fluids-0.1.78/0000755000175000017500000000000013632560624011640 5ustar kurtkurtfluids-0.1.78/bench/0000755000175000017500000000000013632560624012717 5ustar kurtkurtfluids-0.1.78/bench/fluids benchmark.ipynb0000644000175000017500000002145213632560624017167 0ustar kurtkurt{ "cells": [ { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from fluids import *\n", "import matplotlib.pyplot as plt\n", "from math import *\n", "% matplotlib inline\n", "import numpy as np\n", "from scipy.interpolate import *\n", "from scipy.constants import *" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 7.24 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 14.6 µs per loop\n", "100000 loops, best of 3: 10 µs per loop\n", "100000 loops, best of 3: 8.97 µs per loop\n" ] } ], "source": [ "%timeit size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4,P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.09, d=0.08, FL=0.9, Fd=0.46)\n", "%timeit size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.95, FL=0.6, Fd=0.98)\n", "%timeit size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-2, P1=680E3, P2=220E3, Q=0.001, D1=0.01, D2=0.01, d=0.01, FL=0.6, Fd=0.98)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 5.17 times longer than the fastest. This could mean that an intermediate result is being cached \n", "10000 loops, best of 3: 18.6 µs per loop\n", "100000 loops, best of 3: 9.61 µs per loop\n" ] } ], "source": [ "%timeit size_control_valve_g(T=433., MW=44.01, mu=1.4665E-4, gamma=1.30, Z=0.988, P1=680E3, P2=310E3, Q=38/36., D1=0.08, D2=0.1, d=0.05, FL=0.85, Fd=0.42, xT=0.60)\n", "%timeit size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1.3E5, Q=0.46/3600., D1=0.015, D2=0.015, d=0.015, FL=0.98, Fd=0.07, xT=0.8)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 48.59 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 824 ns per loop\n" ] } ], "source": [ "%timeit gravity(55, 1E4)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "General\n", "The slowest run took 13.76 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 1.25 µs per loop\n", "The slowest run took 8.43 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 820 ns per loop\n", "The slowest run took 7.09 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 2.25 µs per loop\n", "The slowest run took 13.90 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 1.8 µs per loop\n", "10000 loops, best of 3: 30.9 µs per loop\n", "Darby\n", "The slowest run took 16.22 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 691 ns per loop\n", "The slowest run took 14.48 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 560 ns per loop\n", "Hooper\n", "The slowest run took 10.39 times longer than the fastest. This could mean that an intermediate result is being cached \n", "1000000 loops, best of 3: 574 ns per loop\n" ] } ], "source": [ "print 'General'\n", "%timeit entrance_rounded(Di=0.1, rc=0.0235)\n", "%timeit spiral(Di=0.01, rmax=.1, rmin=.02, pitch=.01, fd=0.0185)\n", "%timeit contraction_conical(Di1=0.1, Di2=0.04, l=0.04, fd=0.0185)\n", "%timeit diffuser_conical(Di1=2/3., Di2=1, angle=120, fd=0.0185)\n", "%timeit diffuser_conical_staged(Di1=1., Di2=10., DEs=[2,3,4,5,6,7,8,9], ls=[1,1,1,1,1,1,1,1,1], fd=0.01)\n", "print 'Darby'\n", "%timeit Darby3K(NPS=2., Re=10000., name='Valve, Angle valve, 45°, full line size, β = 1')\n", "%timeit Darby3K(NPS=12., Re=10000., K1=950, Ki=0.25, Kd=4)\n", "print 'Hooper'\n", "%timeit Hooper2K(Di=2., Re=10000., name='Valve, Globe, Standard')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 8.49 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 7.66 µs per loop\n", "100000 loops, best of 3: 9.66 µs per loop\n", "1000 loops, best of 3: 233 µs per loop\n", "1000 loops, best of 3: 1.11 ms per loop\n" ] } ], "source": [ "%timeit TANK(D=1.2, L=4, horizontal=False).V_total\n", "%timeit TANK(D=1.2, L=4, horizontal=False).V_from_h(.5)\n", "%timeit TANK(V=10, L_over_D=0.7, sideB='conical', sideB_a=0.5)\n", "%timeit TANK(D=8., L=10., horizontal=False, sideA='torispherical', sideB='torispherical', sideA_a=1.3547, sideB_a=1.3547, sideA_f=1., sideA_k=0.06, sideB_f=1., sideB_k=0.06).h_from_V(.5)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 7.81 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 6.41 µs per loop\n", "100000 loops, best of 3: 7.27 µs per loop\n" ] } ], "source": [ "%timeit dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3)\n", "%timeit dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 4.14 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 4.55 µs per loop\n", "The slowest run took 6.74 times longer than the fastest. This could mean that an intermediate result is being cached \n", "100000 loops, best of 3: 2.8 µs per loop\n" ] } ], "source": [ "%timeit nearest_pipe(Do=.273, schedule='5S')\n", "%timeit gauge_from_t(.5, False, 'BWG'), gauge_from_t(0.005588, True)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 4.86 times longer than the fastest. This could mean that an intermediate result is being cached \n", "10000 loops, best of 3: 31.7 µs per loop\n", "10000 loops, best of 3: 31.3 µs per loop\n" ] } ], "source": [ "%timeit VFD_efficiency(100*hp, load=0.5)\n", "%timeit CSA_motor_efficiency(100*hp, closed=True, poles=6, high_efficiency=True)\n", "# TODO FIX THIS" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 5.30 times longer than the fastest. This could mean that an intermediate result is being cached \n", "10000 loops, best of 3: 38.1 µs per loop\n" ] } ], "source": [ "from fluids.safety_valve import API520_SH\n", "%timeit API520_SH(593+273.15, 1066.325E3)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 } fluids-0.1.78/bench/example.ipynb0000644000175000017500000000171713632560624015423 0ustar kurtkurt{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from fluids import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.011668155513485807" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "friction_factor(Re=1E6, eD=1E-6)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/bench/benchmark compressible.ipynb0000644000175000017500000001672013632560624020372 0ustar kurtkurt{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from fluids import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.82 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 1.74 µs per loop\n" ] } ], "source": [ "%timeit Panhandle_A(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 13.02 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 1.69 µs per loop\n" ] } ], "source": [ "%timeit Panhandle_B(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 14.36 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 1.46 µs per loop\n" ] } ], "source": [ "%timeit Weymouth(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.67 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 2.06 µs per loop\n" ] } ], "source": [ "%timeit Spitzglass_high(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 14.37 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 2.02 µs per loop\n" ] } ], "source": [ "%timeit Spitzglass_low(D=0.154051, P1=6720.3199, P2=0, L=54.864, SG=0.6, Tavg=288.7)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.78 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 1.95 µs per loop\n" ] } ], "source": [ "%timeit Oliphant(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 12.73 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 1.65 µs per loop\n" ] } ], "source": [ "%timeit Fritzsche(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.48 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 1.82 µs per loop\n" ] } ], "source": [ "%timeit Muller(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 11.92 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 1.76 µs per loop\n" ] } ], "source": [ "%timeit IGT(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, Tavg=277.15)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.76 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "10000 loops, best of 3: 12.5 µs per loop\n" ] } ], "source": [ "%timeit isothermal_gas(11.3, 0.00185, P1=1E6, P2=9E5, L=1000, D=0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compressors" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 24.86 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 403 ns per loop\n" ] } ], "source": [ "%timeit isothermal_work_compression(1E5, 1E6, 300)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 31.71 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 346 ns per loop\n" ] } ], "source": [ "%timeit polytropic_exponent(1.4, eta_p=0.78)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 19.87 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 1.1 µs per loop\n" ] } ], "source": [ "%timeit isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 18.17 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 814 ns per loop\n" ] } ], "source": [ "%timeit isentropic_efficiency(1E5, 1E6, 1.4, eta_p=0.78)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/bench/benchmark atmosphere.ipynb0000644000175000017500000001211013632560624020037 0ustar kurtkurt{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from fluids import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ATMOSPHERE_1976" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 10.39 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 5.87 µs per loop\n", "100000 loops, best of 3: 5.87 µs per loop\n", "100000 loops, best of 3: 4.73 µs per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976(5000)\n", "%timeit ATMOSPHERE_1976(500000)\n", "%timeit ATMOSPHERE_1976(0, 4)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 32.26 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 185 ns per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976.density(300, 1E5)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 32.80 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 334 ns per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976.gravity(5000)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 37.69 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 266 ns per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976.sonic_velocity(300)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 23.51 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 588 ns per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976.thermal_conductivity(300)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 34.50 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "1000000 loops, best of 3: 408 ns per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_1976.viscosity(300)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ATMOSPHERE_NRLMSISE00" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1000 loops, best of 3: 1.25 ms per loop\n" ] } ], "source": [ "%timeit ATMOSPHERE_NRLMSISE00(1E3, 45, 45, 150)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "hwm93" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 9.16 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 6.32 µs per loop\n" ] } ], "source": [ "%timeit hwm93(5E5, 45, 50, 365)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "hwm14" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The slowest run took 6.08 times longer than the fastest. This could mean that an intermediate result is being cached.\n", "100000 loops, best of 3: 10.7 µs per loop\n" ] } ], "source": [ "%timeit hwm14(5E5, 45, 50, 365)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/README.rst0000644000175000017500000000704013632560624013330 0ustar kurtkurt====== fluids ====== .. image:: http://img.shields.io/pypi/v/fluids.svg?style=flat :target: https://pypi.python.org/pypi/fluids :alt: Version_status .. image:: http://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat :target: https://fluids.readthedocs.io/ :alt: Documentation .. image:: http://img.shields.io/travis/CalebBell/fluids/master.svg?style=flat :target: https://travis-ci.org/CalebBell/fluids :alt: Build_status .. image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat :target: https://github.com/CalebBell/fluids/blob/master/LICENSE.txt :alt: license .. image:: https://img.shields.io/coveralls/CalebBell/fluids.svg? :target: https://coveralls.io/github/CalebBell/fluids :alt: Coverage .. image:: https://img.shields.io/pypi/pyversions/fluids.svg? :target: https://pypi.python.org/pypi/fluids :alt: Supported_versions .. image:: http://img.shields.io/appveyor/ci/calebbell/fluids.svg? :target: https://ci.appveyor.com/project/calebbell/fluids/branch/master :alt: Build_status .. image:: https://zenodo.org/badge/48924523.svg? :alt: Zendo :target: https://zenodo.org/badge/latestdoi/48924523 .. contents:: What is Fluids? --------------- Fluids is open-source software for engineers and technicians working in the fields of chemical, mechanical, or civil engineering. It includes modules for piping, fittings, pumps, tanks, compressible flow, open-channel flow, and more. The fluids library depends on the SciPy library to provide numerical constants, interpolation, integration, and numerical solving functionality. fluids runs on all operating systems which support Python, is quick to install, and is free of charge. fluids is designed to be easy to use while still providing powerful functionality. If you need to perform some fluid dynamics calculations, give fluids a try. Installation ------------ Get the latest version of fluids from https://pypi.python.org/pypi/fluids/ If you have an installation of Python with pip, simple install it with: $ pip install fluids Alternatively, if you are using `conda `_ as your package management, you can simply install fluids in your environment from `conda-forge `_ channel with: $ conda install -c conda-forge fluids To get the git version, run: $ git clone git://github.com/CalebBell/fluids.git Documentation ------------- fluids's documentation is available on the web: http://fluids.readthedocs.io/ Latest source code ------------------ The latest development version of fluids's sources can be obtained at https://github.com/CalebBell/fluids Bug reports ----------- To report bugs, please use the fluids's Bug Tracker at: https://github.com/CalebBell/fluids/issues If you have further questions about the usage of the library, feel free to contact the author at Caleb.Andrew.Bell@gmail.com. License information ------------------- Fluids is MIT licensed. See ``LICENSE.txt`` for full information on the terms & conditions for usage of this software, and a DISCLAIMER OF ALL WARRANTIES. Although not required by the fluids license, if it is convenient for you, please cite fluids if used in your work. Please also consider contributing any changes you make back, such that they may be incorporated into the main library and all of us will benefit from them. Citation -------- To cite fluids in publications use:: Caleb Bell (2016-2018). fluids: Fluid dynamics component of Chemical Engineering Design Library (ChEDL) https://github.com/CalebBell/fluids. fluids-0.1.78/docs/0000755000175000017500000000000013632560624012570 5ustar kurtkurtfluids-0.1.78/docs/fluids.drag.rst0000644000175000017500000000025013632560624015521 0ustar kurtkurtDrag and terminal velocity (fluids.drag) ======================================== .. automodule:: fluids.drag :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.fittings.rst0000644000175000017500000000025413632560624016437 0ustar kurtkurtFittings pressure drop (fluids.fittings) ======================================== .. automodule:: fluids.fittings :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.safety_valve.rst0000644000175000017500000000030013632560624017270 0ustar kurtkurtSafety/relief valve sizing (fluids.safety_valve) ================================================ .. automodule:: fluids.safety_valve :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.particle_size_distribution.rst0000644000175000017500000000026313632560624022244 0ustar kurtkurtParticle Size Distributions (fluids.particle_size_distribution) =============================================================== .. automodule:: fluids.particle_size_distribution fluids-0.1.78/docs/_static/0000755000175000017500000000000013632560624014216 5ustar kurtkurtfluids-0.1.78/docs/_static/copybutton.js0000644000175000017500000000532113632560624016763 0ustar kurtkurt$(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-default .highlight,' + '.highlight-python3 .highlight') var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); var hide_text = 'Hide the prompts and output'; var show_text = 'Show the prompts and output'; var border_width = pre.css('border-top-width'); var border_style = pre.css('border-top-style'); var border_color = pre.css('border-top-color'); var button_styles = { 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', 'border-color': border_color, 'border-style': border_style, 'border-width': border_width, 'color': border_color, 'text-size': '75%', 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em', 'border-radius': '0 3px 0 0' } // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); if (jthis.find('.gp').length > 0) { var button = $('>>>'); button.css(button_styles) button.attr('title', hide_text); button.data('hidden', 'false'); jthis.prepend(button); } // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap(''); }); // define the behavior of the button when it's clicked $('.copybutton').click(function(e){ e.preventDefault(); var button = $(this); if (button.data('hidden') === 'false') { // hide the code output button.parent().find('.go, .gp, .gt').hide(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); button.css('text-decoration', 'line-through'); button.attr('title', show_text); button.data('hidden', 'true'); } else { // show the code output button.parent().find('.go, .gp, .gt').show(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); button.css('text-decoration', 'none'); button.attr('title', hide_text); button.data('hidden', 'false'); } }); }); fluids-0.1.78/docs/_templates/0000755000175000017500000000000013632560624014725 5ustar kurtkurtfluids-0.1.78/docs/_templates/layout.html0000644000175000017500000000031413632560624017126 0ustar kurtkurt{% extends "!layout.html" %} {% block extrahead %} {% if not embedded %}{% endif %} {{ super() }} {% endblock %} fluids-0.1.78/docs/fluids.two_phase_voidage.rst0000644000175000017500000000030713632560624020276 0ustar kurtkurtTwo-phase flow voidage (fluids.two_phase_voidage) ================================================= .. automodule:: fluids.two_phase_voidage :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.filters.rst0000644000175000017500000000024513632560624016260 0ustar kurtkurtFilter pressure drop (fluids.filters) ===================================== .. automodule:: fluids.filters :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.core.rst0000644000175000017500000000023613632560624015540 0ustar kurtkurtDimensionless numbers (fluids.core) =================================== .. automodule:: fluids.core :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fittings/0000755000175000017500000000000013632560624014417 5ustar kurtkurtfluids-0.1.78/docs/fittings/flush_mounted_beveled_orifice_entrance.png0000644000175000017500000003523413632560624025055 0ustar kurtkurtPNG  IHDRwBsBIT|d IDATxwxTUϤ&H(RKH KYqW( ?W*@*Ez ,O )N_ϓǙ3w|Gcs0 n8*VD* p8vFxn#|>@o |m7>6p Fxn#|>@o |m7>6p FxX0>f>,f>,f>,f>,f>,f>,f>,f>,G1]pAz/^lw)r8S\\zHO<.|"|0qDKoڴivT&iz衇W_I&Zne&?#<+!!AcǎUNNݥz>f> 88XfҐ!CqƩwJII4c),$^wyG'OТEԼysvU|"|xѣ'(<<\N-[0Qz?\+VTJJ|AM:0QBZl۷+>>^=z+W])YTV-m޼YM6$?Qǎ믿\Y>f>J 7ܠM6{;viӦڵk͕`OOHNf>lT\9-YDF$]pA]v6 ֔)S4sL)SFYYY=z  ˇ0#qmذA+W$͘1C;vӧm`ÇiF۷oW%I[nUӦMg+ `ԬYS۶mSBB$j׮,YbseW>f>|Ptt-[月z%=;v0r'Λ7O2 Cƍc=fDT,‡ׯ>3DYf{m0ڴi={;$}j޼fs***ٶg-[:|pW~X۷ownZk֬Qj_XB>ߧy%$;`V :5$Й{ϕϜ˖-? 5YW_՜9s'Nm۶OYiF)4l0C'!!mwnŊnseZj.=ztI_={7|!p8K/t?OLLQz>$),,ٳg vʕlٲm}]p@-NR>\vQYFT^=̙3]w]*U2YeUZU7nc=&I]… MU*GJJ/_vNlݺuܹSpi* ￯iӦ)$$D7nT˖-uaS%|*ŋ.#"" n̔Tx\W\Y]t1_ȥo߾ :uҮ]ԳgO}ܹ̙^zykGLLj$ZJ_JNNVvve(%%%7(W\QZZK[jjs[FFsqE0?WPPk5hςu|(ik˗/_v#::Zj%K#xJYo߮G}T/k9rG6|27"_ƍt5?^ ,"a> p.֨Q|T%i֬Y.ׯ&MxR… /pg_ ð _~|ѢEڿ02|\[QP8xΟ?/Ijܸq׏? 6jG^CUVB ?>},yW̛7OOv>7 CǏ"|lݺތYfEu=hjԨ,X.]5[P-;;[SL׾xb۷φPRw$ҕ+W\ڮ>pړz=\J­ު[jڼy:us]>r[o)u#$$D.m 䆏pms͟?_y2e4jԨEDDh׿_ ]M4ח,YŠp=.|HWo.׵9sƙԩV2335az'O>6nܨ+=|… :Toy5wsymƌ:ry||^|z[… ܆0"{=r-]T{"Tz]yӧ5f(-ZHʕ+J}=|ɒ%Kܺ0|ְO GVÆ Ϸmrg}|\n]IWqx 犇˗ڵkKy| w J^ OW9rDgϖ$8qB}s5jHLŋK6m;wUVWn?z> ORA+˫KW߼yzhذa ב#G\߯kڴiT^z% N"͝Z^ *Cn6޽[&L̙3տ| 4HQQQzϖ6|dffȑ#YM({les-R9Wٲe5yd>}Z/R׻wQƍ+COff7oM6SR쥳-H+88X]tqiի,Y*UTСիkӦMJHHpi/ղeK8pӽT9I#7#|'::Z˖-ȑ#]'lR+Wgry/P:i2 П܅ %)&&&W\љ3gt!z>lD#wإjժS`̙3]?INNV5vX~^NNW#˗/KR^\k׮U\\-(--+C7GxO?֡Cر#_ќ9sԡC⺶%>HHHծ];Kkھ}n;vYfꫯLG{]F@ի5bǏM63gN}  %&$$Dox ;裏^(Qz>>PFUV)&&ٖ{knݺ)))ɣ]>X a{GvRڵ]W^f͚w{_ #|2ںuڶm~ajJWvk?oXbŊڰa|I$w};vu`7,_zw]VD]o߾ BFmիW*I.;v1[uIvR]٣&Mhƍs2/nӶmԽ{wsΩK.zw\گ !!!%^#{ Zd^xL 6LCUFF#<34a-_\.رN:/|DDDXY&$|}ݧ;wowiߺu5k[>>{nOri_4vX6|Vxxf͚.Xr@ff.]'N(--MJOO˗l)))ryFFRSS711+]|Y^Wk;BCC:"""rpVtttr$,,Le˖u>/S"##U\9)::Ze˖-ܢ;dȑjժ#G{=g|%O>Zx233ry{TjUzmfʹw^ 6Lwyo,%1w\mٲEЩStI>}Z'Othŋ(-|^׵QQQᏲe*,,LkJ^2e(..N:PGDGGk޼yܹFK.I֭k0w/;D+33y$''+99Y۷oפIp8MqqqTllbbb\{+驘Sm=hǎ3<ڹsnKtoiKC9ϲsU\mw-?5`֫Q-Zdwbwoӧ%I 4о}|v֬Y!I|M7& 𑙙Sk4i Lxt|K  𑑑W^ywD(#ڵkm6 q^\'Op=~>{=v+WԞ={,ůGZZ=ah%\o?K.u #55u=gĉ%P p߆ӧfe˖2|\tIZ?a/V<_ٳg˗M.|$%%p +H^bv兊'.|;PTT7RU]0 (_Uǎu]pA ,Ж-[$Iݻw=ܣ8ũB SŊU|yx[RRbcc%I111^)]UVUժU]~gܹ|I;Ja -O944 3=;:o 3pGg]mwtpG=6V pპ|[ ;:3pGgz>m^;:k…o]s֮=By{n5mT?>}wZ`7v1ɹ/;7|˗;ʕ+]{9pdž ԢE իWO<̙d`|ܗx| [o՛v=pѣsN&| .]RVVVlذA:t]wݥkZT@ 'kGݻwӒo]7pv]l$;;ml٢]yZ| ("_99%^;:\K.ڭ)zwiԨQ]ԣG5nX .TNN UGxrno➥K:w[X |w:uN>gʕ+JJJtu!33St$ŋEO^OJJ^á*::ZSL?3f^өS\~?~x9/Ç IFdd͛lڴɶ:e…O+WƫjTT6iXjſ 3&&r 0 :kZ~t ,Z} nM u]B+lxlٲzgu˪PBm+%$$讻_|Qҥ3?/IT6ml7>:ꭷr>K)І]K(:rƏ_-[}{k.|nם󑑑kjժU:t PllW *hժU:vs{;{\+GIQbbՔn3fFSjڴir6}֯_=zh„ jРM"ǂ _~?_~Y 6ɓ'5o\cƌч~20 -]T+V5a„l7>9]AAӍAcN0aaÆ7mٲYϮ].Ǵʕ+)ڷoѵkB'oew@j'|bԨQp8F޽;v/_6~GcܸqFXX߁5kX-(_@VV~a͜9SZx[`piҤs_KuFyM 6ի~z5n8.\ոqcm޼ن xKFF޽{ٳ7o>c5o\/^pyC.z)-[Lo(rו2eʨcǎ%Pgm؅?:uݻwk̙Xb߯:襗^5Q,Nrt^x~mIRϞ=5t"ߜ\[VTTT X|)ÿ?x 999?~&OlCus_ IIIΰ_}s5(|1Be"/ba5 s9SNٳg%IÇM7T:>m%<< k],XpM2ŭp7ɹB$ܹs6m'|o|WUB!;;[sѸqt|;KSLQ͚5/@ɹ/ ٳg;Kرn"??t>ҥ\+## hر:x`4kLZnmqu ԓs3f8ܙ3ydeff:R#|*˗/WƍէOGݺu`ر@:9%!6mҡC ͛7/ {լYσԩS+S>KĦ+WέmֶAAA*_k(S"##6<233=K8fiVXz&Nm۶z*UMC Q2e]&ɹ/ ٺuKCj x:|ʕ+'gV.{5 C˖-ĉ]&{NO?=3|_Ç4֭?|}Zx^g{۶moF&M_|ϫFѣ{9UZx> {ARSS]QRRR\')ŋ]nVl%''Mzz._\6E}degg_O9r$_[NN-ZI&i߾}/22RO={9z& s_w6IJLLTٲe]V\QF?י3g\Zwq$Zp^M:U/^}U[֌34f7ouf Zѣzaw>)wx)oPjj$)--M))):wΟ?'OjϞ=/]8l+##C}N:t{9UR%Xyr^TZ{~˝fϞmԮ]8xa1qDFvvƾ} { IƤIOcÆ YSNO;YxWoлFEE_3g›w up|۬X¨^_֭sÆaƩSӧ%Ш.j׮mܹزeѧOqƉ'o2ds[a6bcc1cN2 IO?9WZ5#55zם dffAAAkʕ+g<ٳg.ux3|Xqr^Z;eСCj޼ڵk*Uh֭.\qqqdžahРA1bƍW`[nk֬ZjIN<]6 Qʕ]5f=zT&M*N׵N8Qv֭[շo_M6M7nT:u$N^ٳժU+G 6v_TV-ܹS{Vj!Ch߾}?"VnԢE =ڻwƍWXի%]AZhhhԫWxҥPޱ| S%sz饗tQ?%p(=J4 x}n[nwQQ~'I*r݃J*9罦8|:({7kȑ8p \'/l٢HuQ#FPm?x`}7:w7nCz! 緗D.O[k#ac;EzGիW/HIf%[nх gϺr{nڵM}.pGPP&Oɓ'] :%~tnժ~[6iii={4y|J]M6Ujjڷo3gj#(**Jk֬QfL:{ƌ2dK;k ˗/͛7kҤIСCu]wi;ߪE^p8%dIIIv>`uzϗMQrV^5mRdڵk{߼y{Ý7;_?JΡCt ː$?~\W_}}XB;wg-ZX%йS'|G_cǎye'NqAI޽{Mkʕj֬wSJfܹﶱMvo۶mzWumo߾⎬,]rEϟb믿J~bcժUj޼uݻw{4}|E@˸s_U8++K}6lX6bsImO_^-Z}ݧ]vy4ɸ111>1G y'vʕ+ti3 C+VPfԣGs]r{`Μ9{֬Y-[s./t>СګZahj֬}WÇ;ۮ]VZҽޫ;vti[v1C.|I|xfjժ:w͛7]na;Tu֩uڵ[+deeiÆ $Є֯_vکM6:7tΞ=+鷉ymٲE;vT.]m6KՎ;A5j0}h:B>\egg{ϭ[GjݺV\)0$6:HLL~ziFwu6nhWiZnqNllSo0 C :x.^BgΜYfOS TZ$9rD'NPbbOZZ._tedd(55U.׼;33%txWb۶m֭֭#G:{|%|䝃vZM8Q[l1ߤ$NZRhh󑢣(UPAԯ_?~^<{e#O_7:uᄈtb5h }w}fIRJ.o[nE.+jժÇUrep_U*UP!+%湽-~!IC J;vWĴlR~]z>=ތ,(''G/^tʞ\O?gj̘1>2{OzO?X2e(22<44TQQQQdd*To߾^>L999Ŗ]h۶4hohРzŪ<;o򕝝_~EzkѺuk={p8tR}AѮ];ժUKC ѢE4~b2C.|__bǏ/RSkN6lЖ-[PR%Iedd8I{?T͚5*raL6%|E~y߿W^6iD={rEuZ~6mڤ;{=""† 7|+W嵠 =#:x}]UV,ɓu]6We O|X*T`eѪU+&+2|HСC{rW,M }p8j*l;;(e˖s=~I?ʖ-[Y.oܹ@6|=&L(j|WDDDánݺi׮]ZtGw;; ;˗פItQ=S yr|߆I9rۗvI:t(|Stt$)$$D}|bb׆]r3RR%M6M~|AۼysѵX5n`~>nV=nm[{=rjJ_u͟?*>nIW*:uhѢEڶmڶm,ێ;rgg>˯Ç$=3sk>CZlNn|wA3ТE }Zbז9R\`wVԢE رƏoqU3<˗/G^}ݧ NrYPE6VEޏ|֨Q#-\lzxg֭jԨ$z7* 7ߜ=((Hƍ"Z۶ms>W2eenݚ!>' GHHz|}UmVޞ/S?Y 62aM:LJNNM7ݤdIWɁose%v|@HCCC5a5. z>kY 8G%xT q^?ڳg۫]222K.ܹs:ss2eh̘16W Pbb>WVbbg[ `ŊJMM^.e.:z~g;wNJLLԅ t]xQ999,*##CiiiU;)&&FaaaVtt*VjժFW~ߛ ->|ΝVZyPz1J#%%EǏ׆ t9())?˝k+VԆ 5rǎ߿9"ImN pֵLJJRr{AreffҥK.ugk]Zn}^aRfgg;r{(#<<\˗WUBx㍪^ׯ x|C7n`8z>ms>ĝۡ7]|yϖ8r\:wTRu ]`hEسgGSNx |}jӦ~gg[XX^{5GAGujժڴi{1SSS.PL~ױcԫW/޽ۥQFZdjԨUVQFG߾}uVըQs%7> ԩSս{w]p)Sh(|`+2ڸ8}G.ۧ_Gui_,YZj]u=LkŊj۶m[<$NH2e\Y;z$ШQ|r/_ޣ}fffvGezGh"H}իWK} 䵚.\޽{kÆ .+VԂ Ծ}{֔J^߫[n:rK{&M駟ꦛng97uG~_HODgK/syc8Klb^1m4=32 V\9͙3G={,'|hȐ!9rKSvmI@i p>)))\j׮CmJ7-;;[Ԍ3\ڻv;vN: _44={V 7)%;;[|l˽1ʕ+ci=\j =6lhz?aaa6l*Bq>P,Æ '||yiʔ) ׊tp8{?$R*Bq>_|Q3gti[nkSE4yѣX}Ŋ)(}yr.#|+`wA%p8~>(JٳGC4(Yx=rIf/ͅ>`ZPP=lQFR\r'z>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,E"|K>R`)X,iM=(IENDB`fluids-0.1.78/docs/fittings/curved_wall_diffuser.png0000644000175000017500000010545513632560624021335 0ustar kurtkurtPNG  IHDR&#sBIT|d IDATxyt,Nط(,`AQVoT-jjVl]" "֥ZE=W!!{f;; O&y>Ιk>{ 5cB7&ۼy"7Bpg8l֤IbR;C Doժs;t}nf) )++K>On[PHڵ***p8dQ0T8I-edcdnWLo#FRRR ~=v]YYYʊkJs|+X]B7dž?ϯmfx;KciŊ1;gcɓ'z.t|>IReeetnrssUYY)ۭWGQ0T(Uff1gpXƘ_AM>_orp8R6pl@۷O]wou)Ii׮]  V<O"JInusú[TXXHh3hӦMz%0p8o= !ڻlc"'á,9r_@AH^7oqsKKKnWJJ$) Z\hX"8l6IffovCK.   ~ac?#H[[dcL| 1g3 ⨺Z&Mg}s|Vdv"01\J?\pXPHpXp8@Ac %)6H`~mۘHmM9khP(7%M9Zsjn2(護RIIIt|ҤI4hvoWlr:vjKv=.v$\r|>N@c3 o/z<ZTY QuuTRR Zv]n[rr\V>}ԻwoٳRHf{՘1c 6Lk֬"$-[I⧪J#F;N+''Ǣy^}7*--UMMҔLedd(===.hx2oҥK댻\.}2dE۲e D >1ZbE(=?!55U͵^ŋ#1&EEEz衇}CH@cxbUVV6{WdBHb }>_c9tV\󕕕ZpXuM!$1w^=M>oQMMM+c1Vyyyۭ_^{IPUH6D 1UQQ6999*++K`Ut,֪U]UU.\@cjݺunLPUt,.#Gh5khq ɈL(ҼyfС={l6[+(..c==-ZNJ@LckƍMnctw*++Kv;%h-c.]i[׮]Dhwc &*++uw4E4qD]q$ә0 bŊVW^^ŋ@cdܹmv\.I-"*--=׬Y{ƶ($5B"fyyyzfڴi2eJ1!SXXUVUUUZxq +B#$m t7mRSSu}fEh9c~a8VҁbT!8f=szךnИ1crEEEzG|ǣz(# $ȑ#7opOͫE$I))).e˖<&[nkA!8F~G?Q{n0vTÇbŊ\-1&fDr"$fц xĉu54!GgҥKUZZYn"+))ќ9s vkٲeMN+ܾ[z'c~ܪ*-Z(Er!$ u7jn7w\7^oKCtO>c#9 2h͚5={pۍ1BrrrܦX={GtܹS555Mn @3nK/)77s 8P]vIH.[l鴺1/u779N-_ـH|>_KCl6lXA\F9rN8xQc7/WEEEr-2eQts"$G\۷oovCI'@NnץK^ZYYY-:.D"$M2hznѣ[|l'cL[K1"$2hێ/~ ͜9U Zڈ4`_W]G r.-X@6UBD"$ucn:͚5 6LO=Z}:EHᰖ/_믿^`m{^}9sI`-B" Ξo]6;;[?FݦXiuZ藿zꩣngyF'Ony EH@'fQQQmذۧjڵ1cFts"$2h˴m۶nK/$k cki- s.fI pk ~d~]z*))9ݺu?ϘL1Wf1rL7@'aQEEno1O/N;DH`B":c>3]}Zȑ# /hqN"k1\8֚5ktYg8 :s[o- zq=>FH@eQiifϞٳgl6'?/^zŵ>:tst@}ᇺ_h˥Kp8\CH@bՂ ECW_ D"$0hǎkxSN9Eׯȑ#X]ÚD$9cjjjpBvi-vfϞ~[FfsuI`-:Hb}/~Ѫ=C5kVj!I(=`=Cn񾧜rz)KjZD$c|MtMڱcGuݚ3gnDZʖ#$!I={os=`0}O8XB\pCXv#ǣGyDw[n׏~#-^X={cts"$2( ?(//UwqzGuEcА1FO+UЬY/nf뵺 NN"cvء;S/BCjŊ:sdz<cmБcw^=Zf|>_M7ݤy)+++NUƖfS8᰺N ce˖Wyyyqj:餓#X cta-YD+WikS( N0hZd֯_LЏ~#q:thM-WD"$ B>-\P/<Oa5e{z0av{*!u1c~|M-[Lo1!cǎ=ܣ3ftp(:DĈ1FUUUzg#??cx≺;t饗*555U/D!$ۧ'|RO> X~;'?QZZZ ll6BեtJDc|>6mڤ{L|>1o[tW+===DzNڎ2H<~Z_W_EǏʼn'[oUW\q233cUjR!$!GaouiÆ 9l6|o.C9D $~mݺUCm:ɓF3f̐r*gQ8և~_|Q/6M''I_R~G*AH"C~^z%_R^^BPݻwo]s54h lTx^KJ+H7nk_SE8?^gW\̘#D/2_|_]6l֭[UVVsdeeK/s~JIIٱ;:B"k:cB ;7[o* t D $+.2m߾]{=mݺU{>/8q뢋.ҠAz,~!5>EEEںu6oެ-[/PqqqC!I֔)S}O  0D $$T8Q^^^Kh˖-ڻw~Bjp\:~WӦMĉA0dB"k" ?\7o|>L n+77Wwt֐!CX_ $! &"Puu }ڲe>#߿_ G8qLs9GCUfffBk@x^KݻW}mݺU۶mIZBCݺuӄ t9h3fn7S%:AHhV$쩪ҡC'|/BEEE p(77Wƍ9眣'jԨQJMMMx-h;B"k"Ν;駟O>ZEEE  nkذa?~8 M4IVzzzkAX:)c*++}v}۶mT]]P(l62335zhM4IgqN?tK: B"k@ff1Feee׶m_>ە'oYNS)I&iĉ:餓cYMH,B"k@bў={J_}K:tH%%%tՖQFNĉ5n8 0@x^K ɄB!|>UTThΝڱcvء۷kǎڷo~a$o߾0a&LJOOn<tX!ctkǎڽ{vޭ<߿_1RNQFi„ 7nN>dwq#fXv7:t٣]vi޽ڵkUQQnѣƎqO'>}(--P-=  r:LH3( F޽{w^߿_{վ}~* *[]vRRRԥK3FvN9|4hn7#׫LKTjwUWWB*,,TQQQX"k >\zN=T5J'p\.塃2$!NvcQii!ϡCÇ+??_*++Seejjjպ@#Fhȑ:餓4vX >\={}h6l AiȐ!0`\.N'a: :4蠚 ]@'ҕSUUU\eee///WEE@_Yr8֭w\ 4H_~ӧӭ.H(B"sa9POS1FNXSYYJR[dϚ|>~~|>BŽtW^۷rssuq)77W0`ﯜeee)%%rv L^i"өAyhSYY y xjwDR8st:"˥nݺ_~ׯO>r\r8㱺NVs:>/:[Ý- |"OUUjjjTSS#J˥legg+''G}vK{V>}ԳgOCݺu岺lC"$H<ܗᰪT]]!NퟍjjjS~RTuM]vUϞ=իW=zDCPzzn7]?@o $@BcLxSq4m|u_cdt:p8t:ݻk׮իW4իWg˧ǦNp8~$AHxt@R:PH>/zLNuuu"Nc:]q:&ͦTGoڵk֭[7yܭ[7eee)++KJKKHB"ģ 5^󩺺:D{<NUUUj B |RJJԥKeggK.T.]>]vUffrrrOZZnRSSvt:(ku DhVdh`YPy.I ǼodʲLkz`_؟osF~`t:`0]cjک=]N/uij"N[[k׮(''':V;l nKt$Dhֺu_2:hMjjjV{H---MJOOWJJ/ EHxtY.Fzz222Y疑 x233tDxFF\.W"E ,B"Бv9tlC)))ΛHhE?Yol<ptDtsh!h\.Wt5-ۭhN$i*ԉcW@CL bts߯իW{,ƥX]`$BeŋUVVVg>/lQU4!:Ci͚5 ƍ1z, 9K !:%c,YF+$*f kSʕ+|{W`0U4B"k\m@cт TYYv| DvffY]`߿_֭kѶw@+ytx`9t*-^Xeee->/h!8S9xV^1zzXͳL7b1FK.=ZD}GzWTGG@⁐F~~V\1{ PGG'$B`ѢEZEweXW)8p@k֬i1?M!8Ët8|^zU@l61GH/??_k׮mq1Z`|>_ۋ@<C3GQyyyLhÆ 19-EH⁐ZAA}ј[P(fh@<2VeeeLG7ߌ1hn'(1g7X]EEEz'r_p8.>"N 7P׮]P(`0`2y<999JKK3ft:p8TRRJG[Dx $B5sL͜9mf͚u5_xf͚hB"Il6"sDTdH"DP$ @|sD ڡDE 9"Dkx#$h@B$) )npHn222tyiذa y1r:v:K'tR^)cM"}PYY>Cjrhڴi?~wv)))O?F|X7n|p8))):ugjܸqM~*r!w/ kkC'| ?VDTXX;wJjԩmj#$$%á/X_|$饗^_ ݻyM4E/]pzuM7ySOի5f.#SSS`lذa>1F˗/WiiNqM>=%@v O?]wݥ38O?:z5vX.#!1Ѡf{$o[u cK-ZHҷ?I}PDn7ھ?mڴV͛7G/O8Q?\'Rtɧcͦ;UU]]K/Twu čU83XzG%I#F %S(33S999-{WƎ'xuu n!߿?ڵkwgyF}e@ɧ~'Qvv233[1Foz!uEk׮UnQ&D1C BVD;Zd֬YcƺTEXH>C]*==EjzZrN>xu: :cw\/cTVVkV~_w.x D@r B*))3֯_Bկ~;wWx u0Cm-IZ[nEvE]srabH 6bK?[N<{mp!%$2֭[CjժUr\.h:7( k/BsUNN֭[x 0C(,,l0֒7Ƙh;O?^zţDUI}+))iuHTUUO?aÆųDh!kHӟT%%%Z|N;xZ8'$ڿ~.5h޼y裏4g]q,ts񔔔vct=wՕW^\GQM"~7Rݮ>}4 /{Lƍӟg!` $=cL7]tQffflذA ,Љ'GyDN' h?XH.}yGn{n͙3GYYYZv- WBAAA999͆Du]'áu֩{.hB" 4$ѵ^"^ZGNTЀT&$o{!趡PH]w8Ei(hcL)_?fee51Fƍu5'?I"Kn!3ާOF/1Zd^{5]z饺@D'\p_|Q/ȑ#xb9D 0 y<UTT۷o1z5| |x(DH$Ç7 ROҔ)S|bzW5~Ҵb wyѱW^yE>1Z6˥g?u7 .9|ry^ ><: 3D@Tn6m߾]3fo~󛘜^Ӝ9s|ro>.))QeeeLq2- 5eggkz7ugj1ОKx M:UҷCPL^h >\=r\19τ 4xn7zhn|>96㢓ggggՂ Իwo]Vq9aâ KtɣRSSf<#FhQݮo߾ʊY :B"@R3ƨXQQ̙P(˗[V*###,B"!]?Y(~$鬳Β鴤:ZUU***Iү~+?RSSU]]-cL)€`9 9AwyY^>??_^WNSW]u%5HtZyyjjjO8Qw_ߐvH~  O<K1W_${0a%uHDXHԣG^Zq?fվ]i@rx<*)):DVR߾}-XW}'KƿVPPPbnʕ+u'&vΚDD:px@{ectw@vN=TjIutMKZC D$áC$I3gԜ9s,{nц OK.mg GEHHjgy?%M0oD@r8|&LKFg¾}tO֪Uv-@`m@RtW_l6:D@r84c uͲ*++5sLvT-@r!$$-c:$ۭzJ VXH `P7pawq I"rڳg8̴:ygiڂN"Guw^~e;$B"2ƨ\>}ڶmv-ǣ@ ?^W]uեlZ|ƌc CB"1h…ZlhV fҥKEG Bu93nQl6N9ˠqtsbիu]wӛ"ruuJwv.fcܹSO>dNjAUjR"1ztM7i…9sft-kƍ|X[l_Wm޼:/:vf)--Msv{ajj*m@;yci+P1F6lе^p8zJr")&c{n۷OÇװaì.T(g}[O?W_}۷ȑ#38R;%B" Iչ`8|p 8ŠH߾,!ڌ1ںu~J{h+R#MӬYTQQ#G4js\:묳,v ptmܸXssH`0(>VI@ nM6MѮIMMՕW^ >\~_hĈu9r `QuHofӧOF -DjKII+`0p8\gveff&DYC5jm:u*{-DH$|}ݻw駟naE"o_x:㯾;]p8a٢9oǎN"@GeUWWG}Ȱ"p h|>iii:s+-q`QUU222d, 33_،3WavnΝڽ{w1cԯ_? +;w:,-^ο{D`0~Zbgu98F@@SSSug[X$^{{:RL:)tH͛5w\9Rgy,Y}) Y]^±&|\~_j:쳵l2ݻS~^LVyyyˋ>>| d]Atse1zڴi6lؠ۷+ OUW]K^y>v]ӦMd+yfm޼Yz?.b z5w: )>/&?uO6Mâj1~֮]q /Ԇ 4p@ 2D:,͟?_zS'|@4O0ԦMVcǎgKjϞ= 0[@P(͛7[nرcuYgiѢEڵkW+DKl6Nja5H cmۦٳgwUnn{Nl6^n}Z~|>_ts=WB<6mڤM6[oոqtK.;7ytTϝ$3Y !$섰o6J WEEGAkՊZTUnE**_Ăl 2@BBf2:g3w B2~y.(/$:[qqw"ܹsջwoM8Q_bm5kx+555 !PCLԿ/~V^dng=ݮ hҥ}=zt V tjڵZvΝ~iĉ3fLI5*riݺuZnz!FP{?u)5nX#FФIoF*q554M-ZH7tյkW-]L||RRR|YV1&Zl$ٳC8.DP}玤/#kiڶmL=zWiiRRR[C ў={tRmz蠓04MwuNxb5o޼m Pllϲ}*111@WTT佈kW&MղeZ3bgW\=^lժU9^ %%%zt;O<!4WǏWjj%5l6# !D@˗{"Iӟ.]\tLeG2MSyyy5MRqS0M3j=@ GEEE~]I誫 7ܠkVIII!QپyEQsNV^իWV+4M:uJSNտov-\PwqϹK04l0qz}ѻwo5mڴKG9:vn6K:L2駟~>6 C#G XMij׮];vrss]6Rx=H *T_kEEEi8qƎ[awgINn[k׮զMteee)??_*--UiiJJJr_ x!(((W_}J??1bհaC9INHnWDDl6, XRrrr]@+VPÆ ձczG}T_}3^z%n?,4hǸ!{O{.۷zUm}=zԻ,::ZԶ}}Q8p@%%%ڣaÆ%إunW\nIǏW&Mjl|RSS0@xSNiZvK:sLyf(99Y[VVVZ)..N`@H3 C\sO$j jĈ4iFz;4MOwmݦ޽{WjtU5xrd3ۭ ,+C$ٳRLTf[Nƍx aSIIN:U}).rP9=8pF:vzI&iܸqjӦMP>hBe8p@.KZh{1X,jԨ5jN:w$iZp l61ٳg+33S_~ TZZ*%%#4l<w;4}=cs׃5lP RZZڋ 5k,h͝;Rǥ뽏v 1MSGѢE_رc S۶m5n8M8Qqqq{S+~G6Jժ_t;4׿U۷oY^QsE[$*..;3'8111_23MS К5kժ~iҤI3fkc ar:V5ePcv:w2"##k*))AeϹ!х6lX@_phJKKȑ#X¢g|MرûlsvѢE*...ٳ5kV6}0uV}gz'+h̘1p!D? ezUNSN驧:oyUZ0=$#ѣ&MnA[UAh8"ĥ;{L?EEEiI7N>^xgٴi*mnnz-e^{mijƍUPPx]ve2 C?$N8q>"?!$4M}>ˮꪋ3MS<V_Vԭ[*aBMxxRRR4qDM0A;v ԿM8Q]w7oB֧~xwE={vio>쳼In[=v}YWSO=_|Qn[%%%{կ_?_CB"JKKO?,KIIp4>ӬY{1b%Nւ ~X,ӧtuש}c2҅\cEg]iz|;gLzy3,KJJ}o߮tFSÆ cI:QtRM:!$r)//gYbbb8p@w}y?ynԨQ p@^!<<\]v~_hĉJNNs?kk7KddJM4IǏW&MZbϲ\;4M=:zaÆ)""m}]-X/[,=Zxl"LDHT}Dq/Ǐ_p]4ɓ'kر0az!8pw|9rr=;'$P\zxxz СC:0nΰ*w;::Z>C46lPIIq5*Rv]zKIII>F]1V-Vqý!QAAAUAHQxxu!/Rz(--M6M=]Ϟ=դIIґ#Gt7Ck9Dj u8qƍ:T࠶#$3*qkĉ]v}Tz;~|!ahzw\.:{jݺ>S}j۶KlRÇ;衇W&&akСC5n8uԩN :%$$0aFMI;ɓx<<>5MS>-[L?}5jw;4?{Ub222$7hР*m #$lȑ޽n]'x8%%EK,QrrwY^^~>}'?~xr/V:6K)DpΝ;WPXSٳg٣N:,7MSoyP}bhLX;v7߼6l IJKKSBB%8Ydd|MƞfԩSl2Hy?`v|A}ᇊrg\$$ڇOFjP^|ir\wf̘ hr:ڼyw]~r\zGꫯꩧ۷oUttΝ?+R+W?m۶)22R{ɓէO ۵{nرC)))ue];!; I]tQg_yyy0a~'[3<;Saѣnv|roSaa,Xpq޽~JߠA~{}O`D`l5kf̘>g}&I ןgM6B󒥥ԨQ#-^XW\qEk1MS},YcǞW3@EH! NM#WmD@t:KJJX RnkΜ93gNIKKSZZZ_v֭[_]v'GHQEEEAP]D'ŋxb7%Y6PuTNNqFFF\?]4M~[\sMKZ*P9rDǻwb5K9@}c/^9sɓ/>3@al2͜9S}][ڽ{\.WT!>1MSum˝a;{w&PG۷וW^=zb(,,LZz5k` B"@]fVZnIݻwWNpl6YV!ۭ,}wz5l0FW!Pۗ@A'>0MS?ҔuibpqqADѣu*m!CzN"DHJJJ4o<檸XNRUѣG TXC"+ꪶmjڴi.k!N"qAf9B!48 I @ $Aĸ9hD!!@c8 :@ B"hD!쐈qs 8$FH@  @@b4B"DH ĜID'4B"DH 1ngBD B!4B"tvHĸ9qqt@ $At@@x]ae!hС~դI x<`8B"yVUsΕj~t=**F'4 cP\}&1cTDVzK6Q\\^?W@@2d|Is=jԨ+|D PoX,=裪ń͘1PD P 8DӦMSfTFHfӼydZ+~||f̘8i.qDw !CTj3fiӦ- !ꝲn"t!t͘1C5S $FHz0 a|>!!AӧO/y!ꭁj|nڴij֬Y Wq.q:%P_l6=òZ>t}*p\.qt^ϻ6ӕ@^Z7o,3bcc5cƌ W<$GHzoذan3f(>>>=)2@g v]ק~2jDfdZv/@=WXX c)|5MS\WT!ʵc͞=;eԨ.}ݚ;wbbbԠA5h@ъVTTh(**J 4PTTEDDH BܩStԩ*og,V, bbbҹ˞?{sl6}&2MSn[ngy~~2330f>v8 Bs"##p-,,Laaa6B"\4UPPjb(,,L>Anի,r8>vG_&@}FHx<*))QIIIeψQQQ˻xk?]hYtt|F=j,4r[]ө,t:7|-::y(tUPT:wvXp8]L 6[dd,X,BHr vBLyЇ\.1MSN3#In[<n%wߙRQQN>|>}Zyyyϗnx764UZZju8YV8=*ͦr[sYV&P-ZoviX*((7//'H޿в%Sv)\=zi۽AS԰aC[Y85h@{튈7ascP>B"Z0 KOYRYgKYHTZZ .4/,, TTT/'kb_8pvv9EEE)66{5j bbbLqqq0` +>NXXwenNRY'S uBDz{=B+ O>],l6V¼K񊏏KJHHPƍըQ#{eGH1 {\qqq~y ө v-M W5xˮuȑJo8oRYx5iD JLLT\\(oDJYS 4t:}R{.TB6 ө'Oɓ]j***{ƍ+11Q j֬6mf͚y5nX=D Pxxë4}/**R~~N>*He˂>}VXXx>?v{|;ݻw_p16MֲeKlR-ZP-ԠAl6l65j0 C6cbbX}\.x:}rssLee999SaaJJJT\\rUW}`K:y~r׏R&MԤI5o\-[T֭ղeKjJM6U\\4h@ d!f>H IDATaÆjذ%m_t}ͥ*//O>RYWSvvrsss;L; o>۷GDD(66V5R˖-VZujӦZn͛+""vjn2 Cvvrti(77Wސ);;疓s+))WF畔ĉ:qv\h;ݮf͚m۶jժڵkv)99YɊTXXHN"T(XnݺJ2MS]wP)33SRVV233# UTTT'G=ڵkyX,%&&*))Iر:t:y抏 EH ÐP&M*MYxRTT"*77 eff*;;[:yO:ӭxtq?~\֭y.22RjӦ:u:sj׮ڴiH#DH $=./66뛦3"t*33S:q7L:qN: >}ZNSNSnޝuZ:tH+W.Z W6mԥKuUݻwW׮] v?8"P'!0쉈Ptt*4MJǎ}{IšxKvUTT;vhǎ?}.::Z۷W.]Խ{wSNj֬G@=BH^3 CTV]v+//Oyyyұct:tߣG Qw{I&Сz=z{ر:*j*66VjժRRR|7MSG.K:z>:x8*##Cr:2M3HȗÇua-[LdXdնm[WzR=ԵkW0D~`VV"""ԩS'uѣ:z߯}y*++KAFx<*,,֭[uVے$áΝ;+%%EzR>}Ԯ];%$$q"DP"##վ}{o^ yT999:u8}i߾}ڽ{<YyyyA"m޼Y7o֢E$Iqqqرz>}gϞܹv{PkP>B"!JLLTbbu]^6ήT'N޽{gڵK{Ν;uqvxZn֭['̨]~ׯ>}iӦ2+ s8jӦڴiÇ{7MS999ڿ74ڶmvܩG*33FO{<jʕZr=$''W^+3:0 CqqqS^šcǎiǎڹsl٢۷k*))M[x$aÆj߾J_Sv@HubG]vt&q***޽{?m۶)''G5R_nn6nܨ7j…ljڴhҥeXj& $z0 l6ĨgϞٳ9˥k۶mڸq6mڤ;vѣ5urta>|X|3F={TjjRSS͛DHlС:t &HJJJt m߾]?6lؠM6i5r\-_\˗/$EFF]vJMM5`jՊu@*֭[u5jLӔRFF6mڤNׯ͛)z emٲE_$ 8P պuk $Ta Sf4f3FTZZ{j˖-Zn֮]={(###8NݻW{բEdڷoT >\WRRl6 ڵvɓ'4Mh߾}Z~֭[NvXijϞ=ڳgyEDD(99YC Ѱa4h %&&Qy51#$aS޽ջwos=r\Ԇ f_^7nTNN<O@())Ν;sNkӧFQF[n팦@CH16MM4SWTT;vhƍZz֯_( 5kժUZj~ߪUV4h&LI&FAp8ԫW/KwyJKKu1mܸQk׮ڵki&:_bccկ_?M0A^{ZlI`:Ƈ]@( WRRt 7񨰰P6mիb _^999~QNNK}嗊ЕW^ɓ'kܸqj޼V__&K "E4h͛/Bֺu/hŊ{վ}{ >\=*4Z@00nPv[{}ݧB߿_VҲe~{R-_\˗/WllF_W1b""":@M"$z֭uiӦtjϞ=JOOWzzV^lt?ŋռysr-Ԯ];VaN1 C֭f͚KСCoN Pddd_4M9rDP^^xD:/22RW]u}Q}7ڹs}MH~B"0]q7j͚5ղeKާիu7wz嗕ǪKCHvW?~'}/F]LԮ]4sL%'''бc\5Py0]!0 ꫯ7ڵK+zIc=]Ёd+*F'Uиqc}ZjV^;C111-X@=zЬYt!?W K}_K/[n999N:iƌڷoE8B"0 j̙ڼy>S5JaaaUWQQ^yԑ#GP1p!~q?w}nMUO~~,X/\!$;Ж-[;K.2 {<-[L ]wݥ#Gpm\B"jaկ~7ꭷR.]ۭ_]{+U  r8۴aJNN'N̙35x`}t,Uiio][l /MVikС>}233T%:a(**Jl٢~X 6NSz?Xn;#$ 5nXO>6mڤ_Z2eL'Na4@p P۶moрTٱn[z?"g e˖7P˖-+uM7iԩ:yd@mCH@-o]6lЌ3*=S~W_1 u4i^zI+VP޽+5f=*** `  PjjV\ (&&R۹\.=3>|v*̙5khȐ!n4h,Y.wEH@-gut-\P 6vNĉ5gJajw߭UV骫6i^uȑWPB'ua޽K=Z.==]C ѦM\!B!uPdd}Q}7رcٻw>@'  Ѐj*Uj|zzgv\!:.!!A|,X ~].yw}*))  DaaaJNNij…8qrrrjB4B"kʕ6lX5aedd4OT0`jP-tR͞=[9/7hȑ:vX TB'Gkr8]ӦM>|8P&PO;SK,QӦM/5f:t/ϸ9ba9rkuo۶MG֑#Gj:D!4%ꡮ]jʕ0`Eݶm::uZI'@p`4iKjܸq]wӦM4ik2!@Ζvz*..N?4eʔ|ru]r:5Pk" @=wyGzE4|y<*N"CHaaaz4uԋO?|Q+B"CHv] .u]Wzn[w}mVI\D!TOvH}V^NNnf~"6Iz233]^裏4tPٳ~=z饗d\{tP14;觟~*wǣ .Wkr-رckEd v8_FFFKG-hذav k6l'iW^p-[j޼yT B"@(ӧ^} nOǏ`e]&MRΝ|PQQQ7j Bjʔ)1cF?~\nw1n<&''[o~QI$*04|ٳ/^_A)SԩS'sjР_ڇN"DHe 4_WĔ֜9s*F@87ڷoSm$A8=sAwymٳgWeD!(++K'eP3fhkÆ |/DPy;wnӲeKE/l\`@Et:5g`eM'OV׮]y)**O v .k׮5kVZJ?j".á_ח}rrn?VڎN"K'V0 C>:vX:iGUvvy@L2E:umgϞ "ft ө`@4h@/,O32B"p7Mk߾NPI233]6bU/z{<@@4i$uܹJ̞=[111D!PX,͟?“O?N".Mk^c治\`Mh zIBMZ,6X O4Vm>mkM 5R ȥM AJ! dwgAoWf眙}3o\7g{>~`"jD.ˍ7<%YdI%\?>~cz߿'IQfPx1bE_?w\|ߏUׯ_<yܧ?xZd&@F=z4pن >%YzuYL"Js̉n<q5T)FIQJ"j՜9s'I-7zꩋ~󫘈Z8EVxgRc^b*OgώnႯ=cfqIfdDԲhmm1vR_MMMhѢ6lX,X Dӈ2JI@-+ Ҏu-g-\0R*j ,7@knn|+i׿x:_ DPdǣT*X.gy&v{͋#GFDģ> J9@IQqɴcU9rd}:@Rd܉'Ҏ!%@?~<@RdܩSҎ!%@ƽ{iGꐒ $H$ $^=z4/ǂ -8 Μ9vW+V/8p@qz%@)W#""I8ydiz%@)WODΝK9 @$ȸgϦzDGG:DjUT-$ DԫSL;)2-$I;TDRd\{{Ե$5ա$8fԫ7A!DW* Prz%@47pC@)2&u.K]on>%:7DTHDէ$RuDէ$ȸ|>@1i B%IID[[[9r$ƾ}X,?v<5$>%@ 3Ν;;v숿gϞx뭷qرcoz%@)2NIwXxq;qС8tЇ4iR ɠwL"ty&@Jcm۶ؿ|_|JP KIqbL"!|>bС3& R*=DRd\CCCm۶vkkkJIwQKI IDATq}$s],;v,xnMRȖ$I#/ Rd\%KgK/cǎ_;/Բ]vűc:?OM7ݔb"ȖEĉ^뱲t(2O>WID[[[1~;wn޽B頶%Iׯ;ƔA6mݺ5f̘'O5kTl֏CRdܕ$:ܯ~c頶JXn]}ӦM\.R"Ȯr6mӧDŽ *2kI0>%@|pp_~}ʍ3&͛?*;ӭ<0`@L0!D}r9vӧOI&]UYH  ;ҥKc̘11wسgOڶ~(J۷zk >;wr|U5jTzJ =[n8:th~}aÆży*zNH˖-[UX,ɓ;N7.ydFŘ:ujL<9֮]=\l޼ˢ/~ lK$֬Ym߄ bРA}QFŒ%K*zNHC$1{+.o}+ƎkI9q@) 1mڴXvmZ*Əv$)k׮=eʔ@r/})6n˗/q}dA@>%@|Awgoڴ)VZwq{#>}:o޹&MJ1ԗbӧOm۶0aB cpF2r>? e˖XbEu]Ɔعsg:uso#GCcccs=uXrjOlsOPӧ믿+W &@J$֭[ItkmmR#|>f͚6m7;PcDsk 1}ؼyslذ! .S,}֔JXn]}SNM) Ԏ ]C{/6ƍg@  c*uv>;֯_V'vS:t(۹=hРhnnN1Ԇ׋{c˖-+>]@>%@TzP(Ĕ)SbkEKKKrhll@m۶-Ξ=۹=f̘8p`6466FX~}cƌQdLO 544Dkkkğ .*IXvm}SL1 !} .o @Q2|>ƍv ؼysvP'vn'Ib.³2ƃ<ovoD{)H_w}$IbϞ=C I)s˭pqJ"1H$Ilܸ۾1cD$k׮9sfƬYRJ%@($?8ZZZnŋGPH)!^]y[bY.SUzwѣ bΜ9ӟ4R:<;s@$ʺknosŋ/ I.32FIU,cʕxؿ5*Ν#F)SKI1v \m:g@2 ]>d!Ek1$>2P(5Mէ$Șb PDfTO`uP0h@R'0:(4nu-$@uqȘ%DԳPcccIz'#9PV(,zҧOίRL;)2sln/r\/4 cg""s97 D^{mizb[[[)tlٲرcG̘1#Ҏ=[nO|ѣG'ÇO\T*/9IENDB`fluids-0.1.78/docs/fittings/flush_mounted_exit.png0000644000175000017500000001143413632560624021035 0ustar kurtkurtPNG  IHDR62sBIT|dIDATxuU#jB`tIMj-(Ţ)ZZZLpJ-kYJlœh֢iX"q&{^p~=9O>ihz4I#"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"HbݍF3aDD$1 @LDD$v.###cى &"Hb" &"Hb@N$1 @LDD$1 @LDD$1 @LDD$1 @LDD$1 @LDD$1 @LDD$1 @_6l_w.]Z3fhHj{7ZlY^cӦM+W֗я뾑Ns_kmW^y H8CܹԫZ;w={kVUUCCC5<<\u;tP޽k7ڻwQݻ~Eeꪫ?a ־}Z^;z衇=yIID@[n~ӟ{&Ȏ;mo{[UUOn}ٖO2k}ٺ[P|͵t#=":PG`L>>yΌ3ju}U___^vm-X~MD@gUVմiZ:[ogyZ֭[Z>5Ν[۶mkޚ2e ][~NzSUUӦM;跼-Gn.>}4iRs9W}}}5}={vo[^wW׺uj̙-/"͘1^}Q{sڸqc-Y$̙3kݺuuW{8p#p+k˖-dɒ|ui':\?m神_|u,^֭[Wf:q;D"g+5=X-\|co4gΜz'{^M<5?jcwYgUzO?]7|smyͲe>v"dju뭷{~D@^kٲeGp<ϯ{LD@CzK=پ}{}ӟ 6tg?Yog@49'xG_~e #6nXcǎ?D$tw]\sM+-?uԺ]ÉHǮ]j53gά7` NDX'꥗^jy@=5wܪrHx===1<<\7+h9 F} _GD@;=_O}S㏷sΩիW 7p1;=gw; ȁڴi1JD@Ǜ2eJG4k׮[ꓟdk-i4bŊz'k޼ylp"cPK,_|5{n]>{?Fq&y:u1o{TԟuYG}nuʔ){Z6mZ͞=͛W\rI˿ FfԝwYny__w_͘1E$tV_9yv=S+V~-y릛n-[fʔ)u]wղeˢ|&:Vq;x`q /{Ç~ /z** OD~1Kx?_fkM6E]t\sy;:ܜ9s='8###k޽-_o̙ԇ>KD@[hQG`?m۶g>~]kիW _hG}~_Ֆ-[jcǎ]FQfַU{ig}v};ߩ}s'"PCCC544T]v޽{lV?_;{ݞ={G{:tИϽo߾ڿ3ܹssZ։hMu-[[Fk-ZTk׮ .$"N'9&O\_Wkpp|/֯>}z]wutz;F%"y; &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"5jCȈ :^v"Hb" &"Hb"D}$Gg' &"Hb" &"upj4e' &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"Hb" &"u{222X#]g2IIENDB`fluids-0.1.78/docs/fittings/flush_mounted_sharp_edged_entrance.png0000644000175000017500000001523013632560624024206 0ustar kurtkurtPNG  IHDRWzsBIT|dOIDATxyPr. j4֣ cRGi &GҦNv5әN;v:4Ԫ1ډDZ+ƐcGZ&ŀ0D9 Br)Sc[nUVVC.p!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi qz@qU4B0L#!4B0LsUi !FBi`B2HsU4B0L#!4B0LsUi !E4WH#\Bv"LsUcb\5.\UB4W]HsUccce\Bv"RBȮQ@*l"Ue!HsUY! \UB4Wer! \Bv"%33S!窲;= ʸ*N2 uz@!\”GDW0==Q•ot"%:hٳvk׮UffG޽{;= ]}v-\1Qu!ײe˔-_6[o) *//WyyjjjTWW'8C|>$) * ~׽έ܎rw~Nklln U`#y@wkjjRSSS|]nzQ(׼|jjjԋ;?USSS?`0獍jll ^SS;wjQjjXիIIIi^W .9Q^^ݻEhULLL{֬Yw}W׮]㼄(U\\,Ʌ'lٲEt!=ziН!b֭pႤn׭[wJFBū{ĉ nGb>}cZv-[Q@3V~![Q}}駷}cQ^yvC'BO iϞ=:yd\zU*2$PvVa!۷o_vUmذ(BrN?[Q0իW~z !`ZgoڳgJKKa"4B:~xXa MlFB#Gرc_kU!:z޽˻Wqwx)2e Рy6KOO… xcTt8'1B#Fh^z)%KcFBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FBi`!FŋUQQ@ (v9=@4*)){|> 8PSNٳh[n믫Rt=zTof̘+++ ɓ'U\\R߿_^W/xU5 Μ9걪*mܸQ-/&->y<ӵkGv6֚5kwQSSSN Z$$$h᪭$hСON| 6,J- O>ѯ~+?Uiicp`0>!o߾2d{et=h˖-ڰa***$={t1kJOOwxZnQUU{U߾}ƽ"O?^{MSZZZk׮iƍzyvwMǏC98"ŋU]]ׯV  | B| N Gz ޻woXB?^|E8p +ٳbG? |ǒd:<{>|X%%%TUU\IPC_CˆB4 u@ ;:NGmQ?I׿~z>}Zҍ<˗+??_-bwV._sI l'rG^szl͙3eOhҤIZzvF7oh"M>] =5>{>կ~UO^q}3txu휠p|x%$$())IIIIJNNUJJ(99YԿ;~~闿j*}G  B:u~Ӓ%K4r.,GccyIRLLND矇?)((~3%%%98MGQaax KsN[ Zl]vO?$edd(''-L^`M]|Y4di-. :=ncȐ!zTRR׫4||ӧO+??_sd |'ڽ{w~7ٳG *++ #86kX||4vXmڴIEEEx3}WuI͛7OƍsxZ_F(ҿomڴI999ׯMAI9bɓ$M8ɱBLL 233X5iҤI; zwrJܹ)tUSSx P5a-X AI3fƌ'N/ ߿#cL\ :T uB!>|X+WTBBL:! 魷ҪUYf7xAIᲉ!ҧO-]T?[\WX^^CQQ֬YW]$7B/BG^WzC8qBVRuuF|;.Eiii׾cF8~q˥Ke曺yȑ#wzV]]^z%9sF111O~vi~A8cc:uJҍ@_׻yJ;؏v׶m۴i&}g]"7n&N3gjO 3JJJ4C/dEV-⸎ta+:xÏ 1c~۾usoɓxǏȑ#uλDPuz4s%^ZEEEzjX;Vyyy=ԩSfhƌ.РM%k~Qaa {tS~otׯm~UTTuօߤ M6Msawr ӧosNթZҍビ&M9-p{`0^rr^͙3!3JIIisÇɓ $}+_ѐ!C}NKF}{TUUU455u- ;5C:l ]V::ZWW2m޼͋d?s]V۷o3M}ܹsSO)==Cݯ*qBBBURR|^:A87 Ǝcdžŋu%֪V  | B|+,, _~q}>mۦٳ-z8q{9ލr`PuuuWWW&O܋ ua;]9.HJJRvv'*4? teedd(h߾}Zv>=Eiڴiww \YYr 80UXXѣG롇ҵkT[[~~֭[4~?qaصkӵcڵnt͝;W55ޣw}5kzv(EABBB[@=c^xeeeVUU4tP-_=D5~x~>3u9~n޼Y|T>Krr222]J'ٺ~˰x#22Rk׶ypV7ok:nܣ]A\PZZKcbb].]p(FM>]W\qt8 A\ƍUzuUPAst9A\X||.\2;Ϥ$GP8p@>>*WE0WٲeUL2b VTTT;vx.2erss%I裏\ŋ.l()pEn7~5p/^lÊ:.\KWVV *aQ!Μ9+Vؠ"L {ǴN p5!|JNN.vcǎi͚5Vk T4͛7{VlPzz=Sj۶3g8,@)݊+mqm߾]:uBU`]Yfiƌ5쏈Ν;u)aٲeV;̙3v,&G\}嗪Wx '::6P ?~\f_=<<ƍȐԸK#FPDDm۽SUWOm(}]*﫛jذլY4qDCSL믿n!]'ЦMn׬YԦMp]#e˖ AUVՂ w^BYЫVСCo;.<<\}*T`!pE-?mzK (4UTIk׮7|CA`r͛~v6l|BݦMzGͮKY8S=ԲeK;v6III W_}UqF۷f͚V sLև~(uQ6jsUuY7o.~~~ZlfϞ3E7zQLLwﮓ'OJN 4.p;!p֘駟wUSvt̙vUjܸu` !@u;w1b6nܨ [YB"Zprrr:N˒: .qZdY}E -y%FXj֭[ 0!BZp}L۷۠ .Sfedd_~:}t xz¦ƭ\R))):gllbBʔ)S~˗/G3_X| VCѥ'ZgbŊ->s̙U\r}'NдitaZjjժBBBæ5 7|ӣ>0osΝ;I&iϞ=}|Ǝ ?aÆ:ucѾ}L>~C{U'B+?~z!C2e&O|>ǏW߾}5zh͚5K]ߎ#B[lQvvvҥBCC5jXR"vE+_wٳgBPppzZj)%%E۶mӮ]Fb̙VJ*f߲eKW^zwzᇍP K/),,L-[ԏ?cǪjժz5tPo}zK?z)]xѰ2d6lh5jtO>-Z^hB{VhhZje+-H2ڵk;"2o<9RԬY3ծ][7nT͚5 wQuA }#G'|bԩS㣥K_~ÇUVݻm"Y @t]wcǎo5`;wN6lPPPP?5ʰ}wرc65;;[3:_͞=[#Gɹp&tʔ)zΝ#BJ8?Q5C饗^ɓ5l0ժUKov*:v(???}Ū<<<,Ei޼ᵏMB$uɤ͛p٤ DܹsՠAۊј1ct]~];wTnG.4 ۷O[Ν;Z8UViԨQ/(PLf͚,u]&M25kԽ{w(-BJ$jъϟYfN:WvZ7N+WԿ|9BCC,I֭5kfv='NT@@&Nhgr<`n筷*pرC:uҥKlZFP"W^ ^~e >|7niӦ1b%I6mO/bŊfÇ  dnMsф LjWڵmZDP"5J;v0lשSGoV===5feeeVs h˖-C='jժz饗[4mڴIԴiSmcbԩFۉT~W}8Q_~Ѿ?Xe˖mGyD?(55UW\ѫjx|zͮgժU5i$Vk׮%I3o?ؤbbbԥKCh$#pjYYYF]:uꤰ"֮][~~~_gyFLUUOff&Mu[zH׿,>^|E͟?ߤ`;\eʔ1/Bׯ_ה)S{S UfMgAAA駟jRǏ]v:r䈍+2!NƍJMM5WNGDD诿2gδҌ3okԨQ&ҥK}^[ztRy{{6;;[>W`m!N{zΞ=[d &O@@;OJ999[lѬYTl| +W/cjҤI&ĉ>X絇4yջɓ'/p#0}ڵk ?m:w\}GypƍզMIRժUo>;VǏׯѣG>+X-R-ԥKb믿jС\j֬E)((H3ŋuaٳG7f 0X綗m۶M={Եk׊l駟ڵkZt|||P!s-hL(}]*JT5n\___8p@w}QM6MrssՠA}jڴMVkڴ|&}ݧoVu5#GcǎJHH0o>}DzGtIwYk׮Um\cjUlY-ZduA|򉢢իWM68q|}}oF!Hc/nڴI AݻE!H T"B$իWOwV֭Mj믿SN|+pY!>"""4rH>|4dk>'%%E!!!$͙3 {9}G;TH=:wbbbo$+WN^^^Zj֬mjz#hZnIԩ͛7A6 B k.-YD;vPjjZh~&t}PBBB lǏv.!;;[FҼyLj_remذAZqe#Y 9sƎ[H|}}j*=#v p^|E-\P^^^EMNNV>}l2;T?B:tmۦ*U6##CO]_~5SEFF,A`o׮]S.]8p@w]tI׮]Sjjè#g0:F||v^*!!{ͮ_la IIIttlWʕ}oܸ" %Httvj$/ Tƍ] 20:̑eb.ExQG N 47?^L)>>^.]2m۶5j5k;CE~N{PrrIm!ƍ^:AJuUGޥKPgP|yGPl7ߏ۹|j֬igTimr *}#N.>>^=zБ#G |ŋvPRFU\':t6!@A͛:_~8FI$vPR$&&^+?S׮]sE· N(..N?p!H/t\^98xu9܌n۾h"BDԭ[7&qㆮ\bê%͞={n}lSI䅠ݗq>> ռyty\R:u28 A_/v9Ҋ9?8 =ڶm&Olv˗/۠*;t>/hڵVd qssShhbbblP }V[`̙V9NI@'_I&Z|V\1cƨznܸaN}UR%}]!K%C{Nt#? T͚5P ADAAiӦrsss@5n!pw}{*#rJ}M6u@%~!pׯ_Ϸ{q@%~!p5jPIU\Y+VttJ!peʔ1n׮*#;J(<]CӧUzu 0@wtIZ!pf;ajCrB\A!p9!. CrB\Aqqqj׮U *]e˖U TN]֤:uJڵSŊUBUPAUTѲel DŸ\Y իWnnO&ŋڳgm DŸ\]xxx}={<<`\FuA՜2h IDATW777nFm pegꌈ<_}$W^6mUP8 תU+]V-[ pe)))FnnnjڴI}4zhh͚5 EnP:p[kV``I}y]tIVR lQ`\,11hҥKrJ;VEi 8Xŭˤ~_5@m\d/j̘1jӦNj 1ڮ]v}Ο?1cƨm۶\% :TZjmY05Vq/a\ &///\R^^^,2:8m4m۶M7o֝wi peժUж{ѿoMBb̙ڴivءJ*ٳ< *\~ 4aM:U[gi O .Wv`ttnݺ饗^wi  UƍU^geeiѢEVs\pA_ۧϫrjҤqj",f N>AS{xX֕S+Wlx=qDرC[nUŊu h̘1JMM5ڿi&M>]C т :LL,[[M8QΞ=k`[oF~&O:؇҄ oԩS5n8CYxMfه\?bE]LR @Am&IJHH1([~~~:p~iuEz}۷O3 RեK)''G .<+bDVׯ_7/--M999V;6quݻ,~\Ĉ#BzKΜ9bpE!X̖[%&&mgeeYǭ7*::Z/Vmz^{yy\@i8X 6nh @vvvffzquP^}Uu뮻$IժU#fbDq8ڭ:߶˹_.I޽]&!X̞LS|^V\iw)I ҄ EGG^WZU+V!ɻzzzjŊ6/(Onn/^-[Gv9'Pp,+韛4WZ5j\!FwԱcGwŊ:r6l`!X,oJԩSz#(#BG׀4vX3..NƍСC#@iBy`jٌ;V/ۨLNN.͞=.J#bcǎȑ#ruD_|Ѯ{7;w߮J,f ݕ#!kYjΝ[A.(јp`%5zh[N͚5st9@GBi4 j .(<<\-R۶m]P*qxۧk׮i̘1. vbJXuMO>$+VA(99Y-Z˗/ { B.(!!h懹Pڤ(,,Lǎ˗u1yyy)11Q)))ULLrssզM5i%%!___;_ f_V-VG9|#GT AiϞ=yi޼yѣ5c {LFF^ N 4HO?rss%IwpEp7m](mF~A P@@|}}J*ZjW7n:|.Ȋ+`:tH111[ǎJLJKK3 Ij߾#?^֭|:pZj,}3g|||]`Tʕbg]fMr=5kԁ]6 *8 n]ޖKG5nРWjXە+W;uds w^kFĉ׾lv""" vJ*f̘uj/tUGSzwu=hȑPB۷sٹJ=B{C;"۷ٳ:{V\)wwwnZ> `GSسg/_ݻo߾ eE;l݆ݻwJĈΝ;*Ij޼T nk[ڵk9s0Rpy.jիW'TժUŋ{0:p?$$g[ ڳgƌ;CݻwעEh pqqquiСVBCCW_ە.IS.)egg_~Ν;uUUXQzRv픔ж[n$;;v[lі-[4rHSV^TLW zLOO~zy{{+$$Dӧm\%?`xݣGϡ#Bٚ7o5|p+WN]wݥ}~j߾bcc%Ij۶#Kn+--MWVUZ5=]N'##C6lаaTZ5WV2גc1 a#BgϞO<={gՌ3T\9nnn6lQzH.(D}OլY3 >\׿x@HOOڵkvZo߾4hBBB`%tR9rDСF *h͚5:$K]ty=<M>]}Q>}Ǵ8 KeÇ /;/(''jʕ3k^3_J=zwܡ^xA͵9`_gΜѣ>-Z(**J'NԴiujذa?Cmu=޽[!!!o_~v,.--M˗/WHHׯw}Wю. tU͞=[m۶U[o)22e WV͵k.mݺU+VPԨQ#ݻ-Zd=;޽{+%%E=zД)S m vڵmr`OgϞդITvm=s:uꔣKi9sFoի]j93gݻթS|mz|J݂Ѝ7c)!!A/VhK.ϓ B镚oV]N͍fϞ^zI^^^ouwخqFUVUQKxWKƏ;weMBiS|yG PHH]NN:2dz);5vXI|v?!!!,&ݻw?yY|ᵻvjҹe5mTM4)^0pyVSG(MT\ ҃>h/(siȐ!V˖-5f̘۶rѶ=?&Nh8p`@DFFj-[bŊEѣjݺRRRh߾}XAٲeճgO 0@zʷB"2W4揇Fg{z:i/0Snn xIܹs\nnn+ڵK;w4l>>-2zB{Wŋui[ݻw׀f% (|||ԣG  rtI8-KFFx K/Td˗/kݺu/X@cƌQjjM6i2d,X`(MPNNч+hɼ[ m۶&EqAf|||ԭ[7_aaa Ce8??G%"K.չs$IAAAݻw}.\Lvn m{!M0Ao *(**JK,ѬYŋaÆzM٦Aѣ5lnňիWϰ/((H͛7W.]-\9Э\;w6*TcV_feʔ1U^ԯ_?K RJm___u]}QXXʗ/`QQQڻwa۔՞/_G۷oFQ{zR7̙3JII1iq*#VPZZ 'x"_x2ef RLL AiڴnO<7nP|PgϞUNԻwouEn;v0zmQy/boFRgƦA֕z~iԨQ|||t}I{lAS` :JI&iҤI.r!ۭ/R.]2CYT]w%IVAݢ3iӦF}]ԲeK8qDeʔQLL}]"- kH/As:{a2eԼysj~${&PÆ u]wĉO>Dnnn뮻O?iݺu\nݪ;St C+jŊ7o-[f(nryww .QFFbccc)44T 6ԕ+W l0Q\y- 7MG$飏>2,CYfiս{woFn^FqӦMOb U^s7y9>װaCիWm߿_[V``Ə/IJII17[}-ZH-ZP=LgS۶mӬYta+WN͛7א!C سgOX^|E=s&?)OFF$F[ /lOӯUV顇ҥK&{zjj,YKjfʕ?aM{r DZtyݻW[ye/22Rk׶9S}Uw֩Sjĉӌ3u^mذ虠=ܣݻkѢEf8Gjvp%@7a͟?_5W!C(""Bs*((HjҔ)Sorrr4|pkflqex~իW\ PiĈ}[tɓ'kڹsgXÃT###[ [j>mݺ5b *uSΝ;gx=z֭[f͚8.d۽{;wNӒ%KԶm[UЮ] 5|p'pѣnݺY|RuPll.]F)::Z:y֯_}:<Ő0;vL/_ֱcD(66V111U6mԤI"Y*#d/)PJժUK.vz)<<܊9?P kљ0a<=]k5P 4lP=z0_ʕOؠ"FJǛgԨQ*[ qn!ҥZhar2ehȑ6yRd&ӧTbjA(Eg A(EU`ڶnڶ81P<#E{UfM;TB@)+ mNjjA(eN}嗅>`uܸqիr.!ׯ}|{iӦ9"BJ^{M 2l7jH|<<<Xs جY-I>}\stt,ݸqe,==])))V95?{nn,j |v#%%E钤*##Cɒ$իȐϽA_}j֬)___)00P~~~Srr/Obʗ/ۿ흙Wp)|.^T$dff*))RRR233ovSoETiiiJMMlb8qN82*22Rk&/77W֯_{OM4O?+::\A`Wqqq4hl"Iڱc&M˗+--\A`7gΜQ^]~]"V޽{  oV]tѵk] B9s PbVCDff}Y-\ѥA`uzǵa7iD6mR5l\ *..NڳgIz!]V6 !DFFm۶&}jÆ VqQuAǏ7?oVeʔqeGX_UuO0AsΕ;!cp"k֬Vd[͙3G=*p(9s& -_p !rssoj̘1)֭[p;T@ј0KvvFԾZjڰaZha0A`=Mj_n]m޼Y׷qe 0Illz{ӆ TJWGPHoԵkWm۶ͬtB:|ڶmۤ І oy/^\(P۶mSNteڏ5J˖-:t}(.@WVϞ=hR &hΜ9rw/ޥ%22R B|>cT}:uE猋>!yJ;vIJ3X|dZ|LIRVV}Y}& ;Z&@` !kƍ&V-(IDAT6nܨ͛[4nB^^z7}ݺuyfկ_ߪu0"'vut})""!H" .zuIwE[nU*UlROFF% .V.]t5?c`z͈nBb,Y={ƍ&=zVZ2eجD A\̙35tPeffM'OٳnEzz$~X5\Ĕ)S4ydzzz>m\?B{#HJJ2]ٲe|r=6B{cj^+((H7okL5E+<Bݽ{WA$pp  n8ڠ 0 pApn!  -!Hp!\k+@b @KJJ2]BFn!SO=\|>%%%9_uuu {5~xB! p[nܸq|r\qFZ/Oq~[YYY1_gܸqZvm*Y-~dff7ވ:[lB8o P#E>)L8Qeeeq An#Eaر1Mk۴iRSSXďkn!EiÆ JIO>^! A5B4aYf? i^Btn# ƍ죏>! 4>-[Ӈ"!BiӦ>4dddh.T!BTXXŋ{k* dPa̿ C[l+ꫯT N7T 4EEEZh?rH͙3Ŋ`FmAڼya9j`Lf +r .G}d"o6K [:?~*++=<bj-|b? 8;vШQ Vnt/Y-mٲڵK:;; VJbm)oήU]]][n . -s :)ijnn;LJҡC Prr/###)+>OYYYqf_~NV#Fpmcl&sEZZ222LѯL.㡢am)Glݭ˗/. DGׯ`OA,TYYP(d>>쌋kA,tcc:r3f} jllTcc2d[jnn?!̝;w df ǎSWW$)++Kņ+;2Td[`A˄G:c2Õͦ t%9!pA, lEv~iAseB`p4\=CtttzP(ҩS㒒}B`/NdK:s挳^_4[X # ǎsEEE 2^Xf2^E!ݸqC5551}! AȼǏ;3##Cs1\؇ $ݹsp%DP䴸+--`5`'X[ҽ@III؆ TUU_z%B`p'W^U]]sB.\pƁ@@_}V\zK#G4X%twy#dSjjjrƇVKK߯`U`:B`/H^+^}=c*(('O:B`/Ȏ r.GG,@B^㥀H\!;BގT q2"F˄vgKJJrƉF !!BQ}VZӧOڼ@7|y橸XKx _#rj"ţ#tYʕ+1_ BQ3>{֬YiӦiϞ=1mt qϟի5{lZ^Zfw}^RL^ vѡIRss٩۷oKn޼)Ijkk{`Ǡ]}>ȭ[B!=hҥKZnvءm۶iB5BЙ3g'ȑ#nH`!jhhu>7@|\pA+VPaao߮R{^\#PUU***t eAo>eXFK,QqqKM:yiZYdGƍڽ{>S;w.+3#++K>Ҕgff*%߷vϧ,@ +77W&MR~~RSSDW#Yfi͚2e$ov"޽{w^՘;vN>qƹ; B\ZT__ׯڵk}ӣ&Iuww; [ZZ^ݻuokaº?i;23gԶm۴x yKdW^۵k.ӥB=zFS.œsڶmJKK SG/]3fPYY2uyĤP[nՒ%Kabw ڹsΟ?o*E6evv$)==]~_iiiQNN1chҤI4ilwAh֭ZtiTS̼";BӦMӪUT^^ǏB'Ou/־\fֲ̘eˢ^g s%%%:qN: ( B0kݪ  /m~}ߟ7o=Z1#01}t}7:֮]; h0kQʈ#WAAۧ_~偛A xԩSЊ+bŎPdIOO"8p@tBP:89ʹpӝŋ4@"G*^T!!!ϟGZZRPn]l4h7n\Rb@D\,]˖-Á bZ>}`̙6i}?ɓ'U x|r'HA9999s&]>\\\dׯL ""=2>{l;el ""g}۷oܟJ‚ 0rHvZj,7Fbb"LΑ[N;vg ƴl#GDXX5j|ܾ}iiiغu+6l؀+Wz3^^^ڵ\Ə/8W_}ɿ ͝;&MBAAjժ~@dd$)((1uT|ޠA>}5k֔eǎ֭`{qjɾ " 6 +WiҤ 6oތ͛w֭>|Xᅬ^BmΝEHH\ȶ#"2|WtABBQ?`֬YO|ׯ^7|ɿgϞ+Q^^zꅘ5kСChڴix1ZjĒϾ[|㳲;wlwpp3gS|6qȌƌ#:T*e믂_|'N_ qL0aјz L޽{]_xTa֭[ >dԨQȶp 9{O4QFo2^}dh:ɿrb@DdǏcر믿D[mΝ;?G>kV7 ^ߪU+5lma@Dd |֡C 8Ь>ĉ]TTI&^ߣJWY "2AVV>SɸO?*ʬc7i_'&&Thҥ8~F H ""DEE-ZW^f_xhQboo/ypU|\!"*̝;W2nܸqf}.\V Ə???C+DDe|r0x`T]vaƌ׸?E!"27odL޽n񝝝K}_ xZjY$-\ "*9rD2n&͛cرˇl "2Xzd wnx̙3aooolְ "*UVItABCC+X,=,(9s&4 &M$zlEcǎIƅY4Z?`\p eܸqXp!@ǧW޽{ q=YqF֭- liiiXhƖS6g׮]1...hժErd AvQ=IСC)ɘ1cƠq̓l "-99gI{.Ξ=+צMjE۝'X<M,H[nI9|UC-GVVv!uZ4],HRC&'))IVڏ} J*x-6D$[vvv*c5jd߿9s 0I "-77gm… ׯo;ܸqC4fܸq*D$gH޽+SZ5T^"_rEPOOOt"SH6cϞ7gΜAzz:1yd+$//O2bǒ9 0j5ߑ8D$@aa!N:}aطoRSSK999aҤIi1...{X|d\@@EƧf ''w^:t^m޼\ 9<>nAAF ^/ka@Dckנ鐐={~iϟ79Wd%e?`|!""b@Du tCg(aÆ1>4 >}7of͚b;l۶@%͛HHH(ϝ;gq PXXh%#\w!CWIT*:wGo.$»w?o|v "]:ZΝu,9ݹspww7iGa/\NJ+зo_!44'N, ܹs۷7)OM|NLֿO8{b?ܾ}[ZjqXx뭷_Rxb /]||hߛ7oٳݻw79W=,H6%'w9NǏ+:BBB$}`ڵ U,H6`XxzΝCBBvڅ]vڵk&sՒyz=pa߿cǞVt?GmRh0j(ߤ:R VT:t(.,a@D .f͚et.\ݻk.޽[[T*/щǎÁpԫWs1:Oc\t 6oތӧO١SNѣ&M-Ǐcسg\\\w};w6dXl~~~HNN.,yHHH() Ο?/xPitM>}III{PZ5ԬYڵCv8HI|,4l  A}#Gp1HD&3 )l "ML}D$[@d{XlBWl "M™XlB)Q`@D  "Mha@D M@d{Xl\ 8Xl@Tq "ٸ@Tq "ل0wbɨ]6j֬YSvm 44'Nիq]}a1bQZ5Ԯ]]vő#G/"kNlCnݰcǎRqQuQ{ؽ{`3ƏO?nnnx7~899!..;vHd;XlغukUUlzWƿo 5h'OZƗ_~,~qqԨQ) a@Dؼys322РArȨrw!//,}0V2K_ddQ }1dzjlܸ,}mb@D1鉥Kbڵ^{7CfdXl,C߾}1|III3̐"D$-Jp&h~M&*.D$7}Ç1i$EpYt:vZ;Pd u8z|QPP`~z "لVHYM41Err2fΜi>ɺo3йsgpuu5kSN5ׯ#00fLdѳgO>}l}>|qBCC{nt ׯ_7[d:D$.5Bll,f̘aOl۶~222g._=z 77j'Oɓ'ѥK[oÇeʕ+ *Q 0=25E2D$X/___hZDGG.]>Lצ#((/^4ؾ}v,\ДLXl\n* GFbb" `R_?&==)))1oFeRnd,H6 êUvZԯ_L}aȑxNÆ òeH+dZ֩o߾8<~2]t d\jj*BBBD!ĢEXDZ%"لz3!0gn$''sHMM3f ,XBwd ™3g0m4TZUuEEEx7qRmIIIFFFGFTTX!l| cʔ)8s BBBd_wU :9رc1|NV+D$V ͚5CLL ,Yڵk˺f۶mh41o<VPT:t(Μ9Aɺ?… k׮ M2X d*k֭˗CO4ѣG5jnݺ%3eL6io-+((Ǐg}2߶ "ٸ bsrr#GcǎF]_p1,H6T[ƞ={0}tYӦM_ gEdcPyj9sF2o)SȈ̍2lWyXt`J¬Y;( "+o&:T*̙3oY "XT|6mBddT*~GL0AXl|k^{ j5~g9Rdk޽ݻ7 a…>|Ű "x bڿ?w\vvvXhpfdI,H6lï7|SXl,*'O"44tR/ "dcPq>}2+VO> gFJa@DеkWܾ}`V\޽{+)]p~v^={T83R "mKKKCXX233 WZk֬A=Ό "JOOGPP ;;;cÆ  U83*/,H6իh4HMM5M6!88XĨ\ "X؞Lh4l^:lق3dQ ŋ bر™5`@Dqv/ Mnnnؾ};^z%3#kdc`&5j`ǎxΌ H6ʕ+;vɟ@DnœK {xx 66mڴQ83F\ "XXtɿN:O%@DNœУ~uEll,ZjpfdXl,_^=šE gF֎H6%-- AAAvɟ zA5jx4mTV "XXK.Aʕ+۽jlbdSx dcPRSS*8?3OXl,ׅ йsgy{{Cӡq&F6\p}||{n~'Xl,Grr V OOO3#[dcD Nthذ™c@D'CIϟGpp0]fqqq_™QED$Ws  NjhР™QEdccǎ!44o6޼yshZ~' "XXޑ#G;wlo۶-vڅz)U4,H6g#++`{vڵk+UD,H6ݻ۷oɟ̊ɦRR; g޽;rss ?쳈AZΌ*2Dd֭[ѧOlС'Ddi&ۋ'5k*U,(,cժUׯ ˈ™QetGlԩoWWW3ʄi.\7|;wm۶z gF "2 Ƙ1cPTTd= ?)@DEEaܸq`` n݊jժ)UV,(,7c L0z`{.]8⪔wDd[Uݻ>~/m۶0KN_>lǟ '''"2CCoɑ_PP:lݻw?. Tƒ_999߀p]W%=j.M6ǒooO0uTݻcݺupttT0+/K?o<}~e슊&M9""B_ީR%ftPTT_jǧ?OEEENjꫯrrɞ?ƍCBBK V ?ƨQxb޽{cʕpppP03dK,=___ǣaÆ[XXC?۷/VX{{{3#2Lc}ɟ^rr24 222믿.:ߟ?Y]DDZ+yyyׯm&cٲeRO^-ϟqƕc 6jԨ77gggԨQ...GGGb]]]e?Z޹G5jԀJkk*)??//zC\>^^^f/++ ݺuÇczUV?Y-k_|ɿu8qfϞɟ***•+WڧN駟BբI&#ϛ7o"88Xtٳ'V\ɟZ 55gϖ_~8p,coH?hkZjQFjhܸd.]F1)Lɓ1Xz5'WPPP zѫ?Kl9q֯_/3~]\x{{KmJ.]1ݻwڵk9MxrsЮ];"'deeECxgV3<#JJ *.]@[]vźu̺Ȓ(#`GGG,[o"'dgg",X@4[vpe!--M2  o#ٔ@ -[Z<)"-*v؁˗/ 7loܸ1ѨQ#ɱNBPP233cad IDAT>L6ػwX:*{4i]v@;v !!!y;wƆ lRIj*>ȉȠO+Wb˖-* cƌ3 ~1QySxK"T@j󟹿,88X᧥ kZ____S!"[Uܹsصk`{oV) ¥K6-- \ Ct@ ZDDe)Eۇjv:_.PEq`vQfS>o&3vXSRz)ƕ(b^ "9]Xr+̶9==Fj`RRR1lÇ<뚈0Z7?91c'OUt ['Z888( *c cǎC߾}MIj򷳳ìY0G<#FE2[UVU0"Usm9r_>&Ubڵxw-¼y`gg'k,dDWXr7feeaŊvvv=zIHMشiz%رcvZ砰 [VTMD_b_:zF9۷oGXXd_zBLL j֬)kldkԎⓈ*9^?kԨ;v @v:už={3Ȋ9dK΂b)v؁dMRשS x饗yطo'xN =.D$GQQ[EG6YbR 6DBBڴict4hN'@@-+**l|2n*HǼrjotOUbcceB`@Nt͛7LlX0o<vF'5׫W1111_1śesOY3D$>믢׎7Ψ'{C||<7onTr8;;cƍ+JKKFa@VGt؋IXbnݺ%x]۶mѱcG\rEt_Æ k.LrJ 8PV<75R6r*D3œ=s. R -[_'VZJD$P۱cp!kWA[j't:"1Zx klLOOǣGLX`Q!CUr˗/K.jh֬d_Rcʔ)/XTul,,,Dzz5+sy Ajjiڴid^t+Tu xB-{zEDܹ3Zn- D'Jk}粋PyS{{{ brW0|Ѿ'%%Aիۭm/㫯{%h4T.M6 8uB- ֭[7/~yh4dddlɿا~oVV,*/uZj'OT0"fb+,̙#Odd$Vjܹsh4vvk}ᇘ1cXT* ڵ 8}w}Q&)3g ..N0NVcN> F#xL&OYfARIƲ  x!KXPo٢qhҤIO<`lm/b޼y>@JQ@D>H2Ddp-q6?~!!!}klu/6f̝;WVH)jԩhPBB"ufCDGG#//O0aÆxⳣG"44w1xM :7nV%cy;ƍg ڵkb mʒ<Ĉ+Ç,Cll,VF‚ XU(SإKK. >KD ̙3wo,kFLL ʞŋ( K*)EZœ!"&V۷O`4n߷v튻wuwwΝ;ѪU'kņ%KrUR+ׯ_HBDd )Fl۶ ݻw ƹbh߾}Dz{{{X>@otNxgggܺu Ί%GD U222sNkpvv֭[EoIV4k֬AdygV-YI!2;Qz)CX}`ղ sy7nܐuϊ*{ͬ}cիYE[lA~PPP ۴iShZxyy)UDF[=㛈*69agg%Kpذa$c1LUvZ%CD͜ZƢE0p@Y.'LQ^.]dZjR" HOO=5T.J(ڵ ͕TVT* "x;wnJ\+ӧO/!00۶mC%cҠhx;b@aÆUC*'sӧOɓ͐M׹sglݺUvd 7/T>Dd//)ʡsΈdlT'F6Ok#/:w233-Y/SV}?1c6s=ԬYS26-- AAA,H`Я_?ъSY""be-z-|fΦrСv!k% -- @ '''L0AB)K0x`̞=T>=bcce@"o m{HBDd-^y,^XtS1ge@f!|$$%%Y$)"Nyyyc;uիWp h߾=2dY>yd<쳥>CTdeeɊkݺ56mׇ[PqPV-Xdd`ookCzj|Ge~E(ٖ;wHx{{ެFa@uc;JM6 8{ٓ#"r v777l޼W(#j׮*;s6m JeMӡM6xס"@TAIYhZlP6TEE 5j.\(f͚aȑ6l UEEE84h :y$BCCqmئMBKZHOOҥKewzE|GhԨ;vpU矢###̆ i۶-bccQvmX & **ʤO?M6&CDDVmYf8uꔬwؓq%\ĢELhx嗱qF""e}G?L:i۶-@$W{=c<0l0TR-BNN`=t:^~eLDJJJB˖-c-[ĩSxڟ:uBCCq-XT>7ФI<|P֭[cݺuh֬@ѷzzzٳpuu5!u"R!Cl2T0#2"ZϚ5Kt֭[K&?@;wܯ^3f!]"RRzz:V\)ޤIk fDjӦ !`p]̟?_~ >oٲ%O.zYdUDT~f͚%zad]Zn"J,ϟw ^اO =AAArH1ZB||<ԩ#"3X\׮]_⾿;",,L=55:N:K"RT~~> V0#2VZ!..E.E/zd0eutR%Dfŕ <xi {^f͚!%%`{Æ q мys$'' ٳ:uR0+g"887oޔ#O ^0bPT222pA$"ٲes Zlxԭ[W2+Ǐj*`'''A " `G`Py=Qt:~z*ӮFCk֬1O"2g">>^ P0#RB- .]B@@RSS-Yط߿ի`˗qԩ2MD1{lWw; fDJVE $c"ƕz6m tpp}OXׯ/sDd;w`3fzIƦ!44lXIp9gtbҡZCS澉tlׯ6l`FT7oN'k%l[I'ؽ{wRTҥ`q} y͛'3aƕʡ&h=zdDd>k׮իW۷oΝ;+͛C*tm*):$TfMnDkDd<>GC~:EmQ@ff@Ղ/_tLsѿ{k̈?TPj8~h7wكh߾`ÇQXXhHYf_/epOP'D^x s =x@R"27nUJ7NZ.^(`ggvڙm@6[`/^zQF fD̘ÂXX?5oTVl6o\fJV(~~~t΄ ^xg:B)cƍi fD Gff`@-:"W1w\'* "___qׯ%%%CD;Pb,2h;W,C̙3-Z0˛?j֬v oooX/R+kmg@dQQQ'NJR(#{% ,,LL nݺ233~zvWWW fDYf͠d$_xED 5jXdPGGGGܹcq* ѣGC Ä*MBU)0sss,6X r"2^aa!,X ÷%^|FK`[QQ%6m$-[*U&M6Nf .@шQO!Z-O[`@d^R&M@ղ"%w0|.\X w fD1E@rr2YXh ^SM|̟?_ԨQ`oo`FT5iwudRRXXh`Ib q<믿 WRFR.!"}NC&M$cy;rD B ,VXr偨2Yr%Ďݻ"ӨQ#:1099!!!{w Ot{.((lY%Lϟ/Tjeh4,H-/;;bժUbU'Nۛ7o "2 ^==fZ`$m ^/:RD駟DǏs*4jZVV`\vM*6`/pwwȸDENNVX!^Z5 2Dyyy!>>^qU\@bbEܸ@d%KQDeaΝCpp0v'%%Ydtv0^hn#kU|;@n7o*YţlxE^̓&.t8`{ΝѦM3"2NJ=gϞePF@AA8`ASRR۪T<*///Ϝ9ܺuK*h@\\=v`[ӦM!d v֯_/^n]O :͚5e` &zo ,=(g"zoGAzje&"o%]x-Z=NFػw䱽 ޽;cqYH999\]sttիW*ׯ#$$ΝСbbb@fG͚5øqD/APP:$={N0qDNDetR[k}ONz/2G+V ++ ~~~'(9::bƌ0aˌg|B֭$1}Iףe˖8`̶mЭ[7"7n@HHΞ=+s!&&5jP 3a?Sp޽;&M;;;̜9Sb/e'KDjl_>d Uj?Ddĉ; "ၸ8YEн{wܿ_ʏdNNNXz5̙#zR Yg.4FqЦM}!"" dV>D7rY >GTNDd&vvvظq#^yNjܾ}aaa8qdl.]e(dS˖-~L6DV0`WީYڵkC矗->Ѷ"@Dѣt:Zja׮]NG#,rrr.zmPlܸNNN d D6@BB bϞ=lbD6ݻ}f0lܸ dfyF "-[~L7##aaaqㆅ3#nnnرc^z%ؘ dfy,lEŋ gFd;ܰ}vtQ2vΝӧ ̲X8lܸQ?^pIGMDIq/Kn߾puuELL et Idعs'$c7l`E [n]7ް7oF?oP̏Qbla 4?pfD{vua6Y `\\\i&Y`͚59r$,pvvƦMdw͚54h,* WWWُ6%Ko[8+"쌍7"44T2vx7mj5Qel0w\{Ίȶ8;;cѣdʕ+mj5Q۷_?{l|ΊȶTZVBxxd%K0zh(XUp'->3L:Y'''lܸ={_0j(/XU| MfᬈlV^^zI.Zcƌ5nQ%alGaΊȶ888`ժUݻd… `@T[|駟,mqppʕ+ѧO XZD1E^o(2#E@߾}%c̙cE J"`ĉ?{{{Z  ={6&M@V ^xA2VcȌvaҥ@Quw)ݻڵ+:$V믿bȐ! dFd;?~Çcٲe|Ul Q%憝;wZ (**ˆ#|r2#vvv3fXŁ[\ "ƭ~Ȍv<~#GĒ%K$c+| de "*0=zT2+V 216mL@VpwwGll=o 6(ŋ1n8?3fP Ҹ@Dk׮8|dlrH'L:GCRaܹ sb@Degg#44ǎZ*֯_nݺ)(**-V/`$ "?/[PP޽{c֭ dFd;j5͛wyG4׿}†+D$ʘNNNؼy3ȌvzL4 f[<'5j`ΝVꫯB*PTG42d6md@Dr쌭[K. dFd[;|ᇢ1X~=wnkqYQS3l* `رEt:Zha1YIܹ +cvgdd@ŋ dFd[T*3z=Ǝm۶=9 "*w,ʕ+?/,,Ddd$K>c@DV"իh4t///ׯ㫯*5Uq4 Ο?/VM*z*5jZjHKKC͚5@D֥nݺtr @<==ѵkW\,_oSbccѼys))) dFd~ iW[DdŊ_ $v@FjѤI2#^EEE4*+QvfPBT$np1&9ň9.LrѠc͌1pE(AZhŌJ\2LEA K|2)멪G'ý}gPTTu+++}^~ B̅t^3gic@d`/_L& B iD@hb6D:"''G>2dܹ?"j=qQǟ‘2K KluquuűcD|w2dٹw]ve@D3jA#dFd{xx ٢"( \~]̈ZW_}AQ&z:/2,dee֥K ֭~:G0 yd*Q[PZZ3g輮P(`iiZ?777h4oڵkP(lںu+t^  y& Xoooh465559ecc7nɉ#Dv (,,H9z׹ G 2AOOOh4[̈OUU}YMZi #D游@Vg-..Fhh(?Vo͚5zJO$wwwW0ڵkDZb|zc`asi%%%P(oc{ FOOO 2#21c:{yyʕ+8@Dm4逢"r"Hg}p̄!#zBNNG燋/@Y0d$СCy0jL4Io>0(B 2#2܂ p)15jT8@Dfǐ}zFooo 2#xW;88?m8@Df~1;޸qJɸt|Mx/p̘!g^^^dF԰;w ((H!5j d21lȬݾ}!!!t`,% A^^8;wݻw)"2k>>>7n܀B@\mm-5RSS?nnn8~8coܸCOZ-f̘} ƮZ \N[nATի+@XZs΅J}ױgʠT*E pqqAvv} eH4haoo/lGii) wwwh4QU[[iӦ!))I0'NA`@DԀ2@0YYY @TTcܐרs+PZZ R+WƺAшHBjfqqqسg )HNNFXXX"F0d$ #f* ~~~ؽ{A_T… V6DDV0PwAhh(0555Xv->|l8x 0gk׮>Cjxxx4[~"&Op$TTT`ԩ7oW_7nGF4Eg6DDMT+;w@TŋdF>|5k[nt#>>Mzٳg1rHrt=֬Y'Oj$Ν; ~ݡVѿ 23OuuuARR݋J={6f͚eЩzx~녅a2ަb@DdDwEHHkXj df>n߾M6!99۱cG[4iu]pWFJJ * cƌ1^ca@Ddd4]vEff&^|E 2k vZܹUUUM~/"""TVVBVO?ENNN٥KcٰmrMܽ{;w#G`РAd\|+VΝ;۸1e,[ NNN-6DD& ##AAAd6bɒ% bbb^zt:t  ˡR2?ٳgK 6DD޽{6lΟ?/۱cG>|%ȬuCbb"-ZNAx1}tt֭ы ߿ÇxC/ %Ȭux"bccqԩFoii _D޽'OXbl;;;?QQQ1b "Hyy9g ƶoСC?1#$$$`ݺu1{o6"""3͛޵@T*T*!Ѿ}{skil$1OT*%"&&׮]31cwAhh(d2`|UUgy>>>x0zh6 2Ul$C9_~`8aÆIiĻ Je#F`ҥ8pAG:ĉرA5e< HbY_YYp9rDZ^~~>n:pp0rssapŋTN:!33 B0ƍCZZ V J`\zU}Oۤ/'222^oMZPEEƎcǎ ƶk{mCYY&Ol( ̙E57sV ooo5x=BvS"ԡC>|!!!UUU0a/Af8q *×_~UVeX>//Og~I֊?#--MTL8M4* JmmmrJ={FczKF{)㑙)kmmdf\?ԩS" $%%O>FѣGtdeeO19@Dd"?9r`luu5"""Kܼyr\t񷰰… k۶m[fLlL-/j_uu5"##{n 2k| 8qQ,_YjذaޘXXXR6VDDXj0ؚDGGc׮]dx\.ǭ[Dŏ;ϟdc۷/_yk?0~xZ曂ZJrr2^{5<~X0 HKKCݛ-Z,^XoLtttҸȄݻW0[lɓ%L5k ..bJMΝ}vQ#Mm6?'+++\r͞KK ƞ={%[[[)S? 3ak׮EIRtR1QQQmlL%ojZ̚5 $Lkb޼ybG3gϯz>Caa떖Xp$$6DDv!j$@#֭['Afi&̟?_T3p!tԩz zcbbb#I>- Q+aii[jӟe˖Iώ9Yf d2,Y6mjOtYp!t^С?"O@RR`ŋ#\st&NqHJJ5aLgΜ͛,\eԲQ+TWWӧc˖-.\˗7[>=^xsχ͖KCjjj0p@;wNg'._ ;;; 3k9 "j,,,yfL>]T|fظq+W4pUj9s&={6֯_LfÐF{XW\A``ލ'ObrZbcce{O>L4;3TUUpy12 N A$̬q dPTߴiM&{z?̟?E?-0yd+GڔE^dXZZ6]0`OcǎںQh =Zo~(((@n$4p _";;v 22Սz￯bǎ-RoݺT*Y Qh"^ZTljj*&N'OӧOСCzcΝ ///k ׻aĉeez8@DFmڴ 3g5?j(۷o`Ϟ=:;;;?d[jBJJ8GGG\x...efz8@DFO>?==FBEE`ݻw~1+V@BB`d`@DԦM: <<\ زe t^u^޽[_ic4n8 22m "2oHOOopqV['''K9rzɓ'j?]}!""BԂ~!33NNNsZÇEEEDxx8~Gq8{,<<<$̴q LL0AB .@.ƍO?T}QQQFW^yE[[[#5͢5IDAT58@Ddfj5ƏwozPxgqMxyyAx"~3]?ѣGѣGzd2#I^G̰aÐ; #((999Xj)Y?#G Xl8@Dd0zh<|P02L"iӦaLAׯǼyDo+Ds""3 Z] >yDpK/dTWW9s`ܹIqfͩ5c@Dd l8::6Y~~~FȨaGxx8T*H$%%5#s)""BAABCCqF?ܹz*77())۷ o߾˃w2ֿZ* !!!)Sm6wA>} 2h`С3g/^DXYY-SDD+wŨQ// PEERD~kkklذ3fhһ GW!CGբjؽ{7郏>HtwttZfo6DD:uBzz:&L tSSS]vy{pH'V,]B _oj7|["99٠W6*nݺa˖-o36DD$VEtt4v%QkaÆ pqq1""m҆Arwwƍ1~xiDҥ ׿J.;;;,X.]bol :ϟlϷɓqU\; S. B&aF{z-̟?z2sa\@DDsN̞=SNŤI`H6DD$wu된,jqc" @, ""ӧqY\r娩=ѳgO ;vlt"=WIENDB`fluids-0.1.78/docs/fittings/flush_mounted_beveled_entrance.png0000644000175000017500000003435013632560624023353 0ustar kurtkurtPNG  IHDRW~sBIT|d IDATxyxTd# a l"T(XjA.U ZiEVT ŧ %aSP!,Pd!A~'C993z]ssZ>=}v]pIBB}qqqڴiE|QPn(nE`2n3(nE`2n3(nkW_iڵ!|nܸQZRnԻwo}'~?a0gnk̙{?:[Xe =z̙㴯~hjt|3fLg}H5>3gԬYU^]ׯ׭jQUΧN;_^ǏwWfM}W馛,|&|;+//ϱFբE +8휟!C(55ձ/((H˗/'x>'W_7|Sd]weQE>|>I&9ӧnQE_Q^cƌQVVc;&&Fo 6hN-Zڵk[Tѣu]>E6|x 9L/MMMՔ)S :Բ4JC 0+^йsz-ϱd7xC)))4h֭g}y94h6lhf.e[^{.\ uUݻwW:uuVNSHjܸe;i_V{n*";~M.\$jZ~}w ~UP%igQoA3gTP%X14~ѢE =tL|CsrruԒ%Kt t6͒Zr u벸gLvyc|9 0- oyj͖/`z)u]ھ}7o\5_'xy'n:X] ndng#õxbR ߦMjʕ曭.)iT]tɓ8ի; ^:_'+|/_&M(""Bm۶ռy \ͦxZJժU1=Pljذk.1B]w׿ĉ.&<<\+VЋ/߸`TJ*ڹs>so^ҕ_{5]2d9bM4і-[$S|0@k֬Q=QJxG/vIWw}? P~~VX-[' K*88ؓeT rWSvrJ0`~[ ru{gq`TRܲeK}:xx 8?ydvmZ~}E1tO0y&M護ɓ'5n8UZޮ]ԣGuY fL}VZ1c4n8EDD8ۼyt?ڽ{e`L!| M:qnm۪o߾ڹsW&x7K$::ZSLщ'4gխ[Wҕ^jnVu]۷oL_+ݼ ׈#t1{jҤ 6cǎܹ6nhaŇ/FyE ѠA~{m޼Y]vUΝW_YR/*| kРAڻw-[4͛խ[7uU_u]`Wo@=#ڳgVZ;:۸q.uŴN(6M}֭[?Z6mڤnݺoի+3|"| ܹV^^T``$i֭Զm[XBBO-кuk:x|IG0޽[S6m<tOR~~~E&M7СC3(44TgOڵg}xB;k,lR#^SzzzPf˥VZ_uQppT '5j 7n"##%];P֭' qrbΜ9$${fɥ};%ϟ_˗/z!DZ%ԩcOLL,sJIIO>^F h׮*qz^@Qi#F{ul:tH?J /Btז:nOuѦMԩSR?jժiĉ:~̙Kvܩ[{޽{ 7**#*2mi{ݺu%ӆ $I+qܛoO?ԱmiӦelTXXFGwQ˖-%Ik׮UVO./::5*2%9R={(55U.^':{Wf ѐ!C?jڵڵ[o/2suڹ `P{2z.]Rvvvcl"]%uWrrc;((H..ͦ={ꫯΝ;#(++K&LPN? :mi׮]Y2ϔiiiN6;~7o,IjѢTR\Nxƺ\'mV˖-ɓ'K/ŋ?~|i֬vJJڵk}￯r~=vXXXۦMb/twЊTNM0A?RyE ?|}iΝT)Νs.nߟ%~]jU}A\\nb߳Zzڷo>}3:/0L^qW*>|/]իW;ڵVR"00PKv֬YnM{ַ~kboWf^piη |m6Zn]UV)33i_Ϟ=].ԛDGG룏>җ_~xt$k׮UԫW/m߾ݤ ެMIIqڎ(v\M4);^lO>.ꍺuݻwk%>ZU/Pǎ^۶m3B72|sedd~b޳gӾ]X ((HCÇ+9׿owS=i&xë۷owLPѪU"/^X999N bZhh{9=zT +uեK/`D OQoqB}ETT^|E9rDÆ +Waիڵk+V#:eo՝m6[1_lٲ">~0}ڵ5|GwƠ]v_~dɒ"g l!+|:7۷?^}M5|8qBƍ5\SjȐ!jڴΝK.T),W5JJJr޴i$zy6lKUfi1|ZZbF9^3FgϞt&˗o߾թSGgVRRFUL_?ݻ+::Z/I< … 7}t>}Zk׮u$5h@|rے͛+!!AzJJ|+IG{1$$DQQQ5j}a@Ξ=3gj….fS=4zhu݄ e(| ;vLNKh0aB;uɎp3۷ה)SԫW P _3Ѻx$i̙3fG9wf͚ o$0xrtd5jHG-2%smiʔ)>#r]{I"##5n88qBc`%oիW/nZ+V`Xs׮]-#Ai޽?[nٳGSǎn:sN6mx?Oڽ{֬YΝ;oV{NǼ;|w!I vBŲlի޽{Ua|:wݻ7R@÷/mۖ\չsg^Zv#H7x|"k0<\믺M641w͞=[Ӵ O?^111&U[7j…?~ GDDhԨQ3f ӅXvviںu@WBBB?Q[lю;4p@#NN8 _GxZ~vܩ~I˗/$ /\s)99YΝS^^.],;VY*w ٟ]Z)))TvvvJUj%OGKv]VQ.%XYYYtϕc4%/|<&cZJ:v옢 ߱lrպC=$JHϝ;W'OْWRR<8~Ut/J?OAAA0W㏊*u)Ő9 WppcfZjNcBCCu58@dz5pq9~6m9s\Z#RRRܞ(#,,LkVu Uf\/_ƍ:34n8q8mڴ⊊Wl믗;x%i̙^0ޤHfggW^qp'ުH~_>9sq7ESw+[}'dURE 6Tzzzn SDDUfdx+Qbbby-Zȱݹsg%$$T\u!,p.. 1uu&|0d/&s+|/_b o5TJ6SH`l]c;33 |9==ݣP0<_S}ԢE [꒼ۏ?~\yyyNl٢-[s='xBUVBرc4h_w|NFFF1bbcc/+--X}76l֭[[T"|L~~~cΞ= &ӈ#ti*Pe˖ nݺV_?ÇkҤI^{/^ԼytkԨQ_,?9u5Ss͚5SӦM5m48qBfR:udffjΜ9jҤ|I=zԢjݻw;^wJefl6qNիxQFȑ#1cFN8;;[on 8e"v-{YV}uҩS"Vq)))I'NTxxyyyԢE =:qYqwv٠A5k⊼맚7o3gjر%ӕ#Gw~[͚5Ӱa믿Vt|ƍzKfs6MժU+CBB&I TddqCCCHEFF*::Z 7ܠf͚9ƻ"&&Fgѣ5m4-YD`;zgrk:^wJnۭ~I7|$)..N6m g}k5e=S B(%%EjRNNtĘZCBBoN;͛O?֭[uwy>|n_*E9mժK8uA7nמ={?pz_oj֬iQ̰}v-^X{Q^^U5kVZJNNc[::_{-]TEuM7iʕTر٣Ç7_WO;w-[t{KG%zGu͝;d=Cz7,@EؿnV-_\SLѶm裏]vGQQQN UΝ-70$$$qs@>v]gϞ2k.uEGիS}LLL}t5טYϱ,|Ċ$//OZh#G:-PJ+4ik׮JNN_W=ı_6{fiURS~~>SM4I,~˖-tRiƂxZJJTlR3f(u睶{QKVഄwu7_~E7,,LӧOΝ; ^<:|$ie]x]vm(/nך5k4uT}Ŏݻ^{55lT/R$oWk<IDAT߾رcҴm6ve*F`irӕwZzN]v;]v;wn 6}=ĉj*{]ᛐP/s\Ȯ02Oqdd]Me5SKc۵j*M6NI&>}_nGaƍ$][o-3gvl"|]lǟ;w<%n?״iӜ.vښ4i?33}]~֭s:Kv7vRE4QX~~>3M6+jQQQ;vFn/tl~.=S!#Kw.ς<ƦvRSS]:f^^]XLړ5HW0"11:''G}^yŎZ ѵ^k$9sƱ]3fɓN_YzTx9-Iڱcl٢D͛7ON*s_^j2\^ _~cmۦKgwIWaJI1Ŕ+䐐 :TW&Ϫ+;;AO:jZhc6mn[3>_\… ^V޽{IKK<_~YmڴѾ}1)@=ڿ~m5jȜxO3Nۿu?z衇$iֻK:GVp3%] w^-]TM652ެI&jРc{޼yZxۧyM6իƏ/Mt&M%KI&kgj֬%''K2!C4n8\ׯfΜ)ʣD7FGG_W~c~'Ј#ꫯW#|fٳo[n:t֭kuY|It!YFjР {NիWw[vmnZmݦ &06+*L***R +e\\6mdqEţ8aV Wd/&#|0 _LF`2d/&#|0 _LF`2d/&#|0 _LF`2d/&#|0 _LF`2d/&#|0 _LF`2n[]eIMMUllRSS}HĨN:z?ɃU#Fut=zTPe|FZZbccqj֬'N(44CC QQQ>|y- ^cԨQr_ ӱc\G )QQQ9rd?O[/qƺpႡυ*))Iuԩ\C 9QQQ駟-<WD jܸѣUEJ~ u+oxx=5kZ\YQtpu;rH ^G l%%%zVT S5j(eeeymJt?_m۶饗^ڵk ]@/eZfե@@VbNJ(11QSNW_}eu)P)HbbL?.5n8ORP7j%aM4I۶msiM7ݤcj !|؆ o֥rƌG}T< 3v]k֬ѴiӴc>ӺukM0A=l6[W |D~~֮]Sw3~Ə޽{`")Sk.>өS'7N}!|}T~~>SMݥN7 @={ /mۚP!(K't|AM6M͛77B@y^hĉլY3*FC7$$Dה)SԤI*x k1CT^=*xk\ǏW:uLPQ_״itĉ2GGGk>|WnBF`'~(s|5jȑV B`Æ ?~vYؘ=3=z"##M`6·m۶M&Lƍ[V-5JÇ5\cBu`Ϟ=ڵkSHH FzЅ  /h+ulƍ5n8= _T&ZpLRtM0a@*xM_qZѣ5`B*9·4zh-\q;wV||^*x;·MVjvM;+ r_GoԻwoǫCTA_~z!Wn||Zjeau_@n:_|X]IJJrڮ_> 05ԩSNۅ`\Am,_.^hu GDEoY]+??2>5 ''~5 77~5 /_8 :_'VZ]<:_>t?8_ ʶɓ'nu_l]`JJΝ;gu_ZRJOOWZZeO#| (˭lteFGPٮ˄/5O |a #| %|__& Bp Ae/x _[]_pk3gt˰ /xk@JJRSSku)"|=/^nWZZեX<5ŋ˗/[\5_ ׀,Z/5Η<5 33SRb | ʒTy;/5//xk@vv$n"|=999*o xk@i>= :ʆk[Y;_N;g.ut|5|B !|]T8p+kJ"|] neK A:۷kƌtM7iڵo^^^ =v͛7;7c-vgGGk<۾}{o߾"k񨄄q|PP'qJHHpgU~ﶤ*U(77W;wV\\&O~[~rw6m)]?{L;CƍcEݻWNrlw+[zul6IRXX#GhѢEjذaD4/((HցI&%to᮷A[*U(44O=>ŋpE`=cڿ,YRj(.|*Z{z+![ppq5tP}hUSY\w~NTLLNǏj׮mxei§oլY/%lٳ_{uܴ%*488XWRR~حЬZ㵕k)gJҥth׿|C{cDz*|SRRcǶ[y?%:|=ɪMLLt,oݴ.NHHV[:^lqcҏ?>ȴ: F/EsJWn2K-z׮]_=z0իW/l6z6{Snn;vLLƎ}W_-q-ZOxg)S}vStl⋊Ї~ߔvM7cǎ|7 .]:觟~RZԯ_?7Nճ4_p%Ӻm@$ iOIENDB`fluids-0.1.78/docs/fittings/sharp_edged_entrace_extended_mount.png0000644000175000017500000002571513632560624024207 0ustar kurtkurtPNG  IHDR?aUosBIT|d IDATx{xTO:! "B&$U)n}ꮭ}[P$XbY\qnGm-.T"K0TX CWr3͐\Ιs2zf9sK_v ->7BeH*Kaرc~fu L>?Tkke0aꫯjǎrV„mӧKZZZ, [y睞_|paѡOm۷o;C. +V᧩Im۶ymohh 7ܠ8egg'ԧ~jQ`(VnnD.L/n&EFFZX%l間iӦym[~-[FAeLg϶Nl~Fy+j@0$q/1=~kiDEi.vrrtinnѣG !S[[Z#j󪮔)ب#j3$$$~~L3:?}>F᧡OSSKK ?( {Q᧥g :kR#y18S᧣Cn[.\0 /s :IC_=:zΜ9c3~%~J<[k}l{gX1z+..NSL<˿kO555Ͷ^z=կ~[ӷmY^+&&F?Ν;<^Z3g43~;?F{u{rn< `p[Ox0(u~̚ `$:?Q?Q pOvFt$utt] ?t~PtDC^QGap:? {pGj/(t~08 W{G9?Q 8 (^QGapB8 s~pp(_jmmUuuT]]UUU~y)==]iii^Lb~-\PMMM>lժUKLLo*0Ѐ^7a͘1,7蜟uFׯ7<4,X@s MfϞ u#tWaaaPoaÆ^`󕟟jh>']`'>?*(((u璒Nf+;w͛HM{mktQ0gll)UW^=` `ύ7ި믿}fҒ%K* ,IZfMۋpAf 8,[L3f6c -[,pЊ+XÏ$y=z$iȑ; ) ,QX__N577… jnnӧ5a={VƍӋ/ %$$(99Y(EEEy%&&Fx_K%v˵sN}:{KթC VV||$yaÆr)::ZJMMRrr5ar\KccN8J_~<SZn544C---jmm:O{{{ޮ~kSWW5Қku~>|%%66V VZriذ-jꔎD$EGG@w|)%%E522R))) GtZjmmUCCwttx>>V\x_ :$c1JIIQ\\X)11ѯ-[hʕjkk5477{} jjj.Pjj=..N銍UDD233t;V'O֕W^9OۗttthĈ~Y8?vHw/g{0FvTt=g{d u~Y1>?aСCOaa)wvaK ̙3V.A1QSS%K~Liu yO` ӭ.\c%ɡ5zh .e>9rD_}jjjT[[NMo߅SZج[tt[یw߾yRSS eddhԩ?~Jҋ/+WoԱcz-0^UZZÇ:w:::OmmmҵFΟ?ul¦555Ѻ\.EEErir\jnnVccRRR?4qDj͚5:}!9秶V jllTssեzuvvQ힮/xs=9r\.Bȥ+_riذGW^ꪫUUUj֪^<_מOߓs ."@95X?sC]My.s)++K))) [jz7$IyyyZ|ZެU[m=͛Ң+L8ZEE'H|EyMګV/͛ŕ'+,,zР[ZT Ty=U$+***{^۟{9f#f=s8Һu~! 8lݺU:tH;w (r'? jvM4INsvv~`X`|y7pUy >><GIzgCP w秳SSNѣGTVV &{|wߴia0~w~rrr~]`_VPP駟V$W秬#IڷoE0ٳQv?5 į7߬w~%K͛քQTV\i""".}hUDGGu*C'OTaM$4B`t~a/ F7:?co F70`0~0${=F` {^cot~0?co {`0`{#`=1 F7co F7`0~0ذa?^ ?t37=~"##%IA@8!ؓa'...b7:?cot~0?Ώv?Ɯ F70?cO Fޘ?F~=F`t~9?cot~0 ?1Ǟ Y+66o0_coAX{o=~lD-=~RSS~0?Ώ~\.?tIIIѨQ@7C󓓓cD-=~$o44coD#N@X!ؓ! s~?F`C-g?Ә1ciӦLE^֭. φ _MVcc%^wy6lؠM6M[lQMMե~u),eeeYX?|Msa=#haud(e,$t?;VM[oU! siK.!>jjjpWWo߮\]wuzP?'O| C^vVc=ϕJ>׬ce~_{VUUgyF?{&--M+V˕:T^^ٳgrv5j(UVV*""BNرc.t04l0[o)77}zgeڟZbEnoΜ9#z-￯3gJfΜCY\Qh0hܸq1b~i9rDw"##WUUX'O͛bvBh\}vo}[VZt~?x'EEE5Tr<X5?JJJaÆrt$(**ʧc9'xBo=+??_eee3gʬ.Guk~555iĉ:w$B999Wˍ!PEEEVIW_}?SZre{}Z|~'߯,;t~~_j֭5i$iܸqw>|F믿޲ZCa/ rssU^^_׺ꪫz?}NSL믿nA`eikkw]}z=?s˿\n|8#G^ШQz?q;f"N ?uuuZt]?:g5)w#҃>O>D˗/sPYYoG?-@ ?3gJKKu222TPPy%KL[ s\ڲe{>/ҦMtmYPI˖-Ӈ~Yf_Sjjj(ʴ `3f… V zw۷+11q+++=6%q` 555z_cƌ+*^{5I??z掎۞N ?t~Ռ3 >jƌ! @B~b IҬYt]w wKnjiӦZ~>}Zvn>}Zw믿a+T᧤ijF㣏>mݺxѢEfg ZZZTRRSy甔mڴI|,X`AS[[ 2111>]q)mmm^S1b׸n8p|Ŧ60ЩSGnSNNNnЛo;w|0fV?zvš}窫lsB:?ahժUr>}/jkk}>Y666CKK?ikk>S^^׶ǏH۶mSWWW\}z'u뭷Z3s=uy獍{Aeddĉm6z)KK***<uJƍp6qD[NwuVNscǎyܫqi񪨨lkn{n}ᇺ{4yd⋽ϸquV9rDspOVVeee^s2ٳ%k~gNN)u G#GiuttxsO?

_ R'|RZI.=p&N_]3g:~„ zG_ہ:?Zbb̘1ڴi?GBqAw^-\PÇu]͛7?|$);;[999Oޡ UTT$ǎ=9rD_~hXzcu@\n .hǎVF1GS0eGs-:?&;%?& K?Q?&dGk{̙3.,DĘvHv~IJJJRttGEE)999s>8""BÆ <5HHHPllRSS$϶?ȑ#U]]mu)8RLL.r=cO -[hժUpեX:<'TtIUVVٳjhhVmm$N]]]jllT{{ZZZڪ6555ykջ YFjn*0\. ژ%&&vh%%%||PRSSCZqqq󵱱JKK7L쬸C8ǾQ(((((((رc%~B෿%~B?5O{ w`-? d]cÜc2^?&c {!B1s~? d,o~LF{!K ;n+tݡ=~LF^?!B?&~LF^?&~Bw٩)S(**Jɚ?>luY0E1EFF*??_jllԞ={TQQauY0E17^{sZT ~LF͹s<_xd߿_mmmI&i„ Wgz[oy"=ϢE,zڪrIRTT ,?!WۧfIRvv\.dLxخ]<d^Ν;= =;sg4}ߴ"~Bd0ԗڵkg8pŊ"l2BOz馛,$|2_:;;{nI%K,1oPuu$i֬Y5j"o=.]ja%!Oz^|@(~LFz$q; ?&#k.Ϛg7x#Bc2BOo\'DEns{dd$r|"uYIҜ9snqE9DAzzVp*>MƜo.=H A? 0wx6Y /իW6Q\\bC{A/}Q544X]z֦zJΝ2Yuu֮]ku2YORR~ѣڰa҂:waan7l(蟙hy:p.철F1Y_h͚5:q֯_Ç[Ul$!!A>?W^yE_ C1@hڵ:uꔞ~iBC%&&j:v~ӟjر}L?&tq(?IIIZjN8bs4a/0dt~.5|p_^'NК5k9aS+>L<_Cb GOdݡ'KiÆ ƙ>}8`1YttC@?!2p.YYYVF ӧ[]'oY]'.]ju k(((((((1IENDB`fluids-0.1.78/docs/fittings/bend_rounded.png0000644000175000017500000010173513632560624017564 0ustar kurtkurtPNG  IHDR8 sBIT|d IDATxwX6{iKG@Dl|U;;ELĖDc-1&`] {Xbo_ ;r+3|GÇqUGd@BB4. x"-IKKq1=zǏGZZ""""[.D# x" }69Gѣr #""" 2X{,T ۷۷ΙC*ʏ_X"L2j)4(S $Њ~^^^ۖRz :Ν;? 777<GHQޓD"`޽hݺfcO$Nvv6=8̙3n˗ʕ+'''١L2_6x뿛_:"* Q cF +_ݗl"-- )))HII'Op\~O<3.][[[ x"\XEn8::...X...P`ffTiӦ8rzt'H%2 111ի^x!b֬Yj?o>lݺ;vǏ1*UxxxJ*D*U.zKi"*66|Iz쩇8<4i7o(355ō7PbEcOޛ7oM6a۶mHMMk>ƨX"W5j[F 57"yHHH(tjժHLL,0eHY .Đ!CV_,Tzmۆ[">>zuA:uPn]ԩS|Hbbb׭[^z0#*id2?%񿌌pexyy x*5ܹ(DEEȑ#:GFP^=ԩSGk[,QAM4ѣG?zjpe“Z;ƍ }X`ذa֮]Ǐo///4l 6DFPfM@D{E6m֮]>LQIֹsgDGG+ƣG`iiR,BLL ֬Yhdgg_wwwI&hٲ%\\\t/)֬Y3>|X0Hj9z(4i"l2|*JLY7oFJJZ*888hO""RΞ={жm[k֬A޽~~~8y˜:uٳ*k׮aڵXv-ݻվlllвeK!((nnnZ폈Bqe OjYn//^DZny ֯_K ~U:t耠 4lؐU*UիWetMKYQikkk)V<7oDDD"""> ѰaCt]tAժUi_֭upYH$-dEEXXV\0NRmTbXx1⠍9ѹsgV}nxh۶-z:B}YOM nCH^^sq-j<)ĢEuVhmi=z@ǎaeeht|||Ծk{A4o\CYQiԿ cuM6).&ƍQ^=`ƍ-`$%%!::}w"lƌr9}t dCYǎcTh#7X~=Ok׮imgggt F&"+)) nnnO"ʕ+@fTyyy ߿+n#siii1c*U~ixJOcܹ,މJ%KhlnLEi-*lllD"ʎ³'y ƌWWW3OJ*U0e<~X0x` 6 vvvȐHc>}*=4L~[nFB߾}ajj 1gDr)1GU-///7z?DDDT2)EǪDIJJɓb ^:FJ1`D effbΜ9+ڪY&&LݻsT"""*5ʖ-+!=Q[lQZC1eՋ;:1,I-n!Cg)_<&L/Q%HcErrrh"?^ܭJ?b x11ﰀ'C0x`$&&܆9ѣGV_bse/>}#Gbڵd*a``~aڴi(_3$"""*'A2 Vȑ#Ki֬~wԫWO2 )))011!-Sy. R ݻwmڴAXXŻ6n܈Cx'""ܹs>}:ڴiJ*vvvi5ޕRD&aɒ%=zk[ZZbܸqo`jj Je˖aĈ\.0??=CV )))1|)q-l*Ǎ70vXDDDJ/ 6ZCV bf<(3ǜ9sPvm8p@6j֬CaժU|HH fffѣڶm[v!#1#,)4%ݻwѷo_$$$t&No1i#k׆!mSىn| i&|W*?ھ}{̟?nnnMp}/cV1BS¼x~)zRꊨ(l߾;ܿ/p.88XOِ.ʖ-+=%H||<|||qF544ķ~DtI BS[ШQ#=eCCrʉnShJ,7Jz{{cʕhذ#""ڻwo6m(?SD{.>SW~lhhO>D=y c*WT_ edd૯B^.ލ0n89s;|G.pQFSF Bg]69_\~=zŋzXz5ի̈߰o>/_ŋ*t]ŊQvm=dLte΁/aТE ,^Xk۷o/S:)}}}n|qEtApլY6m;<}&L(pcY|ys\`t8w`*#BSܹM6UxׯN8❈HGL+zTZ9ww.+I%KNN?0իWWmz6gt ^}"""\;iiiXzusaaa"?dxEs}/Ξ=+g'>Sh$77C ҥKrغu+|||}HdddSN9~B۴iܨ9t`*gznݺ!..NZh7lٲZʌ>&>>qJ͘1vCCC4mT+QѢShtWx:t(bbbX+vᣱ/_Ƽy Ulll4-8r`Js^]mݻJXh ĈHГ'O ׭[q߿si֬Vrŋx`XѾ}{$''|ѨQ#-fFDDDB233W}|̙3lI&n(J={ƴhBXرcZjTޠA:u;Q JaeeUӧ {믿쌯P;ժUիWI&i5gҟ[ ƴhB9e+WW_}\t k֬3#"""$ qI_6663g0|S)ܣڛyIdLЦA~)5j`׮]puubfDDD_x ==K9ŋ c ,[L~8YYYѣm&ƍcǎbfDDDD 'N,gϞj9jB.]*۴iXDDDD%Ĝ9scʗ/͛ x5dggGؽ{kt邨(ޮ#"""*!ݻ͛7 j^E޽R#͛!J/"𪁁 ^999O*GEqw"""ƍXb`\`` 5'bURNNBCC%*^"`1b3#""""]0arrr >rssѫW/lڴIT.]j93"""H:t*k֬/B"h_I&᫯]K$,X;Q } 0vXЈ6b\RTVXk7)""""ҹ\ 0B=4?GE4i͛'*+WdNDDDT~;w֭[EϚ5 FF3g/`޼y:uXCCCׯ"""""]ۻw/ׯ;woݺ5ڵk ##ӇHRKQR>[%}QGzz:/,^ΝS1cۻ9M}9rH$Xtv"* RRR#ܿ)))xyYYYFzzZ)SH$(S `ooeˢlٲpttޙr_o/^Ç?gmm CCClٲ(W OOOԮ]e˖;xXv-/_[nŋ 155-ѻwo 4H *pBZ >Dff&RSS " (S R)lmm7˗7jԨz!Qg$??6l?g">>_V)jժ{v>[2*2{{{Qf͚4]lllDuL2;ʞ,--899r_BzظXψ?#ذaF5j~W޼y-[ĉG]Yܹs1iҤB)S]666EwŹ9,,,&&&zxgDDq'Vzߛ7oP|yi=CCC:t7H{c //ݺuCTT0,_\;j˗/۰E@@ 5~nn.=z<$ VQ޷vZGmzzzZ|0l0̟?_T짟~uih"$b8w#}Μ9>|3$"*~X6l(z2̞=[~޼y -[bݜ@ZC!66111tGcܰm6ԪUK,>f͚im###={VV>66|}jBBBlllt&/^۱e._ZR% 4Ç$"*9X`֭qݺuC-pyXB>T߿_SKm 4l/_uqqc.\e˰edee)-[,ڷoPnݚs҉޹y&U&XbƍС\||<:t j[sjN,SRRаaC\~]0 @sA3Ǐh|||ЪU+tM4sDD2d.\0F"a IDAT` )ںuлwo~ׯ'OgJ[va޽&&&ؽ{7Zl̨4AppWV -[D˖-{{{=dHDT'HMMn_5,X׻w͛7 @G#GUK$\;i#ڷotFY&jժ JUV NNN>}˜QQQTΘ1Cc|_j  *vڴi7n3""""]< 7oTb Qb 17n܀R~Hy… EvcǎrFDDDDv,]]]Eo4qDHR12 V"t") `eR4QFXT{ ?D-_.۷/ܹ#쌭[T=z cD#fǏ?v)gjj-[B :ȊF~~˜.](ygQZ5QD1112e`ܻg4hBTT틶mԩSN$fǾ}Զ뢣՞FSb >cǎEϞ=u>ȑ#.]`͚5سg;9DDDTt%%%ȑ# cU^o߾/> *N,sssϟ ƶo?߿?TYf!55;4?~3$"""ulٲEppO>*~F mݺU)Ip1ʕ+c00( $ҡCо}{Ԯ]'对#>> .$:M6mܹZ}o^0&&&F>JFNC֭]IR9rQfTԜ8qcǎ fmmo#G#""mFNSZZ?ǿ<~ZݻWWW(QCϞ=C>}D{3gRƍ AF 簾oq-L4;Q q!G?wY&T2 9?~,ۻwo 4HYQQk3j֭[ߛOFFF Í70k,-[V۷O0&((H#}FܹsERF ,YDQQgTV 3f(0 q"""PbE=fIDDDuDm۶1T1ܹshԨYZZԩS٧!;;| /^\`>|8!>Ϟ=#uٳg5_jj*푗0ݻTXQ>}tR̈#xbqzЧO|簶cfDDD+SXowRԬY.\PwرYr`\>}ЫW/dDE^zzNtСC1 4hM6,?P.Sh9+W9JDDDBS ɓ cxxxhH ĉJ]l tԩS8۷:ʌ2KNN;;;<Dc>|Ppq Tׯ_HI1vQF )6,މJ˗/+,~-E7nXqqq_>Ə(:}`V[`<)v|jj*>s'~z(3""""*j, 뫕k׮-sE-v1cCy]QQ%fVZZf͚1%?t.]*~ #""""*JZۉ]וnYYY4h3bQddd(􄡡V􄙙˜w";;[vM?uT\zU0n֬YZEDDDDŇ^V QZ51yyysRŋ9s`\VHvލN:Gw:DDDT 黀̓Wv)IV׃< 8999 ,--|rI"**J~ԩShҤ"""(bvw~8u`QredDraѣGs߿"""bKLaRJ1CDDD+Ei `Lff^O>ϟ?Ey*Z~w<|S"""R@LAx1K+3F<~CHH2"Mٳ ;;;k˗/ӧO`ق1]L/D~ڴimOܴjѢYYYصkK/_??gΜ)S兺uDbb$""F̴]eU^jSLukCTtO>;w&N5jF>>:ȈtES78 *h="""*c>|L";?}tQ&LQF$VNNoSJԨQCo>899|bt5 rʉnOg[~z.]f͚:Ȉz |}};w܎:,މH1{`;喝4 f̘!j-ϟ?G֭qer[]tӕ;)+++ /^]Ν;V+1337"&&& z^| [[["D"QjzD<>|*UnԱcGDGGk;);;8vCwRxK& }.\❈D:u*֬Y۷o Nb``???9r 'SիWիW۷-ZZ鰲Rz=?.ML9s]WdCb :T^U.ށ.CBBӧزe}Qo>ܼySѬY3XcΟ?nܸ!uʕjSgϰ|r`^,]˖-׮]&MRݮ]*}СCi&&"?X[:t#ݫW` x1P* %K|p8^t=zÆ #22jݸqcQaRӧۧvDDTZ[O?...iCL9p"UgeeaѢEqhذ6S!?~nݺ4w\Q000@Ν?=lق-[V~>++ ]tٳg5LRV3F>իWOp ԕ+WZCHej_ɓ'qGf$R~~>z쉤$bch\]]qatGBBB4͇͛JC*)· 韽 d~~>ݫ_x!8EW]sE``6 fΜCɏ`P`txTÇQZ5jժ!!!nnns/D}1$" Rz.k]ٳG+}߿_j+ծ 8\pA0V /xH7o.0]SСCqݺu+ussClll۷o#88iiiύJobu >>>Έ_0&&&yyy;>>^0F%,V1J/+H޽{#++ ۧ7nܨw!>>^7O8p@9tZˑ/''')}D"%LV`dxd߿_fggc͂q[VmW^ݻF CCCm@J0a.]$?6m7o>[nv!66eʔR _߿?BCCw%"iԨQ011Q`ԭ[WK>١qƂqK,hQQQx{{{jJ鶵R/ZHpˣ_~螔pa̞=[~ܶm[9RJRl߾]30>ӧRpdj߾`̶m ,䡮ݻX5^c͚5qÇj///C ?\?Sg;ΩO*Uϭ^#FdjDDTB=Z i9#҇] 999XbFs玨*Bjj |Wj*FFFXnʕ+笄UZ67o&OHDϞ=ErrwwGFϟ/XNJ/>f͚Ծ x1+j3ifΜ))qqq2e ͛Ǭ(G[j&M(#҇>L0ӧUa`Z).ipɓ'o=I$\rޚT舧O_~?JΟ?VZŋ~"""0`=gFDDEI߾}N=p@"奦_V'Jwww BLL <|Pm}oݺ5"bذa2e{?ݻW _`ݺuzΌE͛7g^ ؠqYYY>|J d矂;5Ec#/_3222رڵDDr'N'|"֭3#"_~Xzuqqq*-G͛7-j sbذaNLLD 0n݂ߧիW h۶$î]`ii E^m6=gFDDEń  mӸqc賂(*vȑFɓ'С`C Qx4XC=h ' iҤ osssoѣ٣̈(, 1c ˤIDCnݺa߾} ?~ ܾ}[MGGG|4RM_pϟWcdd^zi; @tt4LMM"GDDGViN**իW?8'hԨ.^(9sV|?D#)"1uVFaر#<̈H<<<лwo#832dԩ#*6++ Æ Cڵ믿"::˖-CvТE ܿ_T;*o>bɁ >}0nÆ ѣ:])e֭]iǎob dffZ" M@֭[CT sssXZZ־L2v455Y6 ͯW ,,,4AoWWW>}Zcf]o߾;vTSL$%%ɧ5ʖ-[o޾};Zl̊'Ox^xt#%%_.p_Wz&" XjU3}& ;EHH֮]^z!//o޼Am۶R@vv6N<'Nĉ8w[nE6my7oƊ+VDDD;bٲepttZ*?FŊ0.::Z!W"]7o.?655`=f3g ""HMMw:DDDJ1k, MwDEɰa0c qff&BBBsN=f/_bS|}}dDDDfccJ*! ׯƍ#** .]}G4iG*AJJJiԩS1i$T*&v̚5 z[666sNi;+WD###QSA\_}044J۪=occ͵=ο[¢@NBBΟ?me Mpnmvc#奤6*lر_{ԩ`̙ؽ{N uօ<<*Q1tm6CCC)ɓ'6m844TO@VV"##2p@oIÀo>gff֭[cǎСc ""*Rw*UR)!R?W^\\\ФI=gT<b–-[ KZ;77˖-رc޹ӧt;aDDD%R|jjΫ0d"$&&bժU}~p9%օ駟sjӧļypmڲFxx8 ggg eHDDDERݻ0FCSNE^^^rLLLyft ,@jj*V\֚R4 IDATƺu\upp_FS 3}fܴEG\M6ɏwΑW 155ETT uZf RSSa*/`HOOW;GWWW9aaa&CDDT^F2'' wVH$}64) 6ȏO<1իW ±c oѢE⒟YfaWT ƏaÆA*ݞqI"""=СC w[.wu6o,?nܸ1w-ݻQ^ߏ@$''+իWС{w###QdNDDD'ߵk`L׮]Jě={|;|7zF}2L `޽]v'O??~(gGHvpE,\ʕS="""*D1111,uٳgVFHH3RٳgeʔlmmaeeS?*U9?| oo\???;w|'OTի#66;v(7Nb}1\0 UVHRʕ+!??~|Z:2""Çׯ_K.8s###,_\'8!Çh֬֬Y.].\ȻT*Ÿq0f;X='h$!R,??@ZjbX1={$%%! @ * >>г֭NL7ocĉ,މ֭[ í[ƍ[1SSSgoo |AAAHs]]]1i$ŋJkkk˗V%""Fd14))>3=ft 999h߾=.]L0QFKש8899z-55Uu놫WbG<}TaLFDM)֬Y(xwssCHH= ǣjժ0a~7d27NO典8P5ϟ}j8;"""*?1pn>}Z>5sر3R M8q"7o?-J1~x(FAÆ Ե 6Ddd$N """Nٷo`#ZH21Sgt6(Z~Q]||{xx8<❈&)X^&//xG033CJJ WБ;vϯDlӺuk:ݻw A~~xTŋ?rfcaaQ`t1#""Ea*lt^T½~e˖EVVVָ|2*V;{,7otQʕÖ-[дiS-g_,KJz1Bڱo߾B;v|q(=z;.  -gFDDD%9lzꅓ'O:ǏGpp0^~􈈈h5<{LŵjՂƓƍsNsܹ2o񈊊۰aCܸqsGAvDO!"""zG x1ߛ4idtĉ3ׯnj3Dzxx`۶mš5kеkWkB Y`SNZDDDT2}?u 4h2TeddZvtС00SLo^xQ#fffؾ};TR༱16n܈6mšK.xDDDTr}jz]B+++xyyi%)*T*ETTڶm+?w^tܙE<ӂ;KQS*bcc 2zFE?ߣW^ cR)6o {GV+W"""*>Xs i˅ bϟ/*688?Xsssر7۾};BC;? !Y@"K"B atQ@DaPM`Qq`:pQٔU"HE7YȾt=iҝՕ~XSU7on=[J'ٳZlGyD֭S5Lyyyׯ_O\ӦM5k,|0}.\\2ո:tH 40,0L/Ǝt^͚5e5iҤRIKKSm6X^4s } JBCCnʪF*NrתUwyǥ'Nt.IQQQZrZli;w/V*oݺA7t!f+((O?R裏O>W}͘ZJ3gjNo&Tc%%% `kΝN]{4iۮ[vm}j֬}O>!J'u?ܯHLp!Niԩqk׮+W:<jڴi00P 64< _/(//ϾO8,XtO#B .V9R (((#Aݻw۷իFM6ҕ<}z>H?驧Ҵi< <'N8,aXƍ{$ _T2nӧ;ӢE vmƽ)Sؗz-**5c @%9K$F:q}31k۶mj?W2p@Dc>pH 3gz$_>t" qN>-I^ufr4J=88X}@4SïM%8y׹sgEFF%>s:G@Dzgֺl0`ΝkuI0-4U@ӦM%I ¶lЪt% @4kB=?a$x نuP,kѢENDFF[o%b_=zpH0K-4 H@(**JC5; Ks%ԩ%J=z^x~AAz{RQ$_?^_uxX7 oFi/((P^xb^KRzzzpS|תU PN<yƍ!C#5'xEEE*wRttoN}ݖM&Ngy>v)_d[A322O7""CU\\.]x >P~czGW_]I0 N @(߿_gϞu:cǎjG}޽{rssCiʕWunx矑tR5< ~[lq:'22RЌ3ԳgOXnnwRѕ`<<[}wNiFj ٳrrrԭ[7]R$x.%T~s=Iy9]V*/**rgx N'QJMMu:M6 g}Dzo112PZh`Y'OԹsʝoCU]!!!/Զm[XVVxmܸl6#%T@({޽͛+22T}5jҥKZ233չsgmڴɥs\:t霤$D=_neddcǎ.Ӑ`<@ױcǜiҤ".ꫯԺukXVV|Am޼cixTaYGq:n@$'**Jk֬qHϟ?:hݺuW< </((p:)((usH௬f͚/r]^ <wbFot…r_WBBNk_f͚233uk͚5SxTH፜%!e.]VZƍ.j*$Dgև~hvU꺺uj͚5egg[nZb}XÆ ӳ>lñ$??r_}bvZիW>ݻk2@I;s)''ǥ}~:5j5k(..>=zhɒ%41:|x;wξ}I#.g | <4iDWVڵcyyyz5{l#7Tgx+ٟfKTܨD^Z|͘1Ĩ EEE'$VɱoYHPM;CÇw܌Y0l0Tvv233leee\LBcx9Kϥ.eddK- *..VAA},竸X.G]!##C***˼^)phkذ! \ctСRuUj\>"##QLLׯ{$%-<<\f5BCCn駟TF #VXN:W5h "TOb5 xQ6w2͛HI~~~ P8{oAPq(-//O .,u~pDrR4@jh[+VѸf崅o8xٳ}6VI.Ao<*l-]9֭Ӊ'<2&wd 1HG//{z%EEEZh"TKc+>s9hj$%[hH4A .諯riuq#T IJV+CY_i-\ܧD TmdS>AWg..zMR&""HYO_5kT 6P'h1 x㑠-\P:f/0(" 7I>66HY=ϯq ,ps$w/***=(Bs 7uQ*>sڵkuy7GZΪTq_~}EFF5TK *Co ` 0@4o<=s5JM6_ի*E$,xkaiӦZfBBBLPQN[h聇"JۿkF^e$aY$@i7ooGFFꡇ21@ep+,uGZl} <^GwhE , |Ś5kyMpi1G^^ڶmǏf͚3f!3zMpP7ƦMtqIҶmLƚRFF.\h߿{T^=#\-xLK>X,gI+++˾߯_?xcڵ˾}Y#.ziƌ툈h*4&9v};;;Hu}Uhh܁ IN:e.,,41V駟d'41̙3킂#]fΜiNNNVRR܅uMcߦ٣T!CLNBc |qql6XvEٷիG}hD IiNK,o1BAAA&Fp'xxc\>p .(%%Eť#z)#H588ؤH7H#-4&)>p 6H4b IJ>LTsPUܹS{ZLnN!7FLL}ta3;X$mxd׿աP9 14h`ߎ21E{5ja l-4HLLoשSHcA@ИuM ^$XMұcG{߾}{CB{9mo`}7Zv:wlv8Dhw:& U׮]M}mnn8`a=BB{ Oϛ, &V6i$ڵKPÆ ǭHQTTop/nba[nՎ;d4ydÁE]ùl>|X:.77WG+X-4>O>oO:U999&F[jСjԨ IDATBCC0hB&MR^^^P͚5U~}=#`nbQ={}ٳ/LVM][oդIn*l駟4tPkN'N(cƌK/dOO<V^3g8M6͜`LBbi W׽{曵tR۵^0~JJ:w\^}U]4t9s[z=jB4 >V\\QFiȑ yHH^{59sFǎSZZ̙(IK/9gذaԨQC8-4T'77W-*5n4c ";7zhM0a,,,LVoIR``z>>o9sh˖-ykW0x_… eVV2/W_}_ܹsuwyLս{wI??^zWլYzAe\gmڴɃjHد,33S *=ܹsþ[(TBc233trXfVɪL0Av رclз~z 4b h1K,Qvvvs>3քG_qƕٳիr_뭷TzJg.9.\h`5$W`wuŘ+֪U+ӧұ r!ZbKsF_4sRcaaa~Gko6!T}ȢE>kԩSGd,G=/[NN6lPj]vVKػwo;vT*>wއ|.ϵl?/͛K=AUoqWnX LZBǸ/_8zyvYxbbK}jݺU>И?ĉ=re˖Y,ϦMQ@R/e_.nݺ2.9x'ZhLgyF#Gӧ ނ *|LQQ#ܽ رce׬Yӥzr5\jx)ZhLm6fiǎ^+''G_~e;w:H6ݏoe;=vʕewر * P7ɡCgΜ1Z+WTfff/9"XUYɺf3!e{\ff RkM6u/..րԫW Ϟ=k*LY\{K111e;`=t+~p?~M <$%+Uܡ@K,sxj4nx |ٮLzzy4}t1???HxcիW/${PQ7I[aaa||{EܹSnVF_QFzƿ2Ϝ9S=Xݺu|rCſW^*,,TƍյkW*xdeeٷLp-Z̛7-灵lToѬY3}駥 "SNu鴰PcǎU'xB;wTN4`q?QΝ$ =h1I erŋ<6*WֳgO} ;'| &I&zY||-Z3f(**Jg6lX=/`**&ɱoUܱcͲW~:y$ׯk%%%Ƕnݪ?5j8 Iw[nرc:w)S@*(h._m*..ŋ5tPSTTTjQrrnݪ+Wjɒ%ڳgUV-5kL{:v쨠+W^4}tuM/=U_|nb5FDǨ_ޭ[z5 \ÇwcToA IJVݍJݽrLJJ[!xN3Gxcxg飏>Ν;$8pTNÆ aaaQڵb|5w9# ߮o*;;a짟~R5 k |vvƏS_5; 7IG*|exͦiӦo;&???l6`x IJ0qi}gB~ٲe_]vzIV1IXX};::HY<=gy[aK.>}9A| ;xc'$$ >e%&D>wV޽um9$~~~1b>s e˖X5jh(+|#ogG7xΝujŊ0aB\dȑJOOWRR1,j{ff T޽{5zh͞= }D$JEy*?^+Wڵka^ݻW/LRs=zT|ٳeILL /TU=ܦ{jɒ%Z|6lғ ,p)/,,ԗ_~SjW<߮_|Q> * <, 畕9ܹsxb߿:w233V??XӧOɓ'˜SZ5=6lڴiS0xX 畕ݻ׾k.͙3Gg/r;t萚7onOKK?X~kР~i=䓺k:< <|?WV޽{ꫯ/Ν;z'֭[l2_^e U=ԿM൜Vx+_XXzːMEN[hHr୨{^Y7&$$ P۶m5asyX JAAA&E5ȑ#gϚ&WSppX@@I`MBcIMp[fHp/ <zcdffڷm68YƸgx܋XMR2/,,4%V~"cx+}(*$YYYm*$0Bɖ???x܌ IrrrfUJMJ&~$&)Yu7RLF*s7Uil+}qqqenpZ1J&fX)Y *Ƹ,$(%+f-G 0b޽[6M?`9N3G+%tUIUHWUVڲea`YN[hM&F?VKK~H*վ^%$9(yjtt)1\{ P9MapYK]'dҞ`J Vs+" <zclRFx+r$I1Ft%%%[ <@* ջkj /_k վ^.#Ic]V^SV*4> 3$qV@ "Zh|jժ1+.[-"._+"a^gx#VaVw =FjԨiR$ AVM>,&&}o2VI+::axo`v 0 =*>y&Eb *XƇ9'%% \:>[o/٤IU(۷kӦMj׮״+ dIִiS5m0 27?Çk׮]f⳨oēXM2{lM8QwyΞ=kv8DXMraI|r(7'y7ΩS۶m31****u~7*7?8;v I=T(o>q℉X=h1Id; PxLdLނLgb4&րE>TMRPPటkR$痛7/ IoqʻϏo"J\<^_y <3[S4Npp~jLĺK-4&!7x`ETMR2 $7@y?T"7Ivڼ(oI*[qI۵k616VTMReA&FH&VDGG۷[nmb$Mb>;;[yyyBeddY}^TT)CɶnH|x<ڳgݫ'N:yN8 … l:wXXmottjժkV_իX}MWYf[oU۷79kȰ~߾}JIIQJJl٢TT|Tff9tnHH4h&MYfjڴմiSEFF_Yz)%%%{uÃW$ڵktR-[LtCx={hϞ=ZdkuUVt뭷Uoȹx&m۶iڴi5kΞ=<رc:v옖.]jkذڴi{G۷u]g^**BSTT/BolbTlUt͞=[۫Cjr *[U(l9sƌ={[~߿_'OV5W^ܹBBB%PV҃.%߿&ּyv۷; M5ghBO<мKff>S~;4w\O+_zuF>z1=cxEEE)22RPxx"""&IJKKs8.##Cyyy:sϩSnxIIIQ޽uuiرիO5Ay }Hxnjj=ڵ} 2-DQު뮻4|p=C r9=) @-ZP-4`I҅ ~zYFVRjjU]fiСȑ#6AXUW۴izK{B:"""ԵkWuU5-ZEi***yGם2Be$Ӹqc-^X7od^ƍuA;V:SO=eVeTh%O i_T~}ڵkl٢~Zj.~);;(}x`EJU h!vmOt曊q鸽{w18: <V&2zWZꫯ;v"##3~x?*\{z //Sy%.\_||Ky |5< 7mTO?±:uO?ԩS=$)::*ťݻW2y?7n__zΞ=|CyXF>.UkժP-!!ኯeee7`4pFc?**餽{z p^~r_Ҕ)S<檰x+ի;]-ePHֲo>mV[n-w^qq !C… Κrssխ[7z@@֭_j׮]g: х +())I۷owjҤ&NC*Rr+ΩW<Kwtĉ5i$v9998q4f̘J%NW^y&eee9M%QF%iРA.M:tx CV /zi:}U̙33fn%''Ν;h~4y֭[{ "cte˖tPKWj>}.]*f5U.]o߾xYfguy)gϞG` {k.|Wr7և~v_UViΜ9Zx7sٳ:wPb1?IK,qիĉYǞK?K:A޽5f5lUǎW_}+VhժUJOO7;RBBBԱcGuY:uR 0O[oɓ'+??BWӧO7(29$EEEٳ-ZTO>zt7=HO;sRRR7hŊڱc[rzթS'uAɊ0Zo>7NӧOڱc 3xITRy߿w?-[(%%E)))ڷoakٲ&O:(++K|rڵk f@@7oKɺ[CNԂ 4|mٲzիKꦛnrsU*.a~kӦM>q@@u={QRRiUବ,>|XǏׯYu!C+ᗄ_׈#0{PmܸQoV^mx<իWWbb7o͛+>>^W @c()##CO}vھ}RSS=zEGG!RsK3>mkР5koQ͚5u]hEEE)**a/Wzzz?gΜѩSѣGu1?m_CE驧kk>^Vɷ~7|ӥ%Zjٿ/QQQYjԨ7 v8@l)??_YYY***UPPgT?~?fb/I7n^yWr_J/Vu8p^ %l߾]&LМ9s<[=ܣ>HfV&l߾]O>nꉘwܡ~/eJYdIDAT'OjҤI2eN:$**Jo*???p;xIlC;:zQqUiu[njԨQQN:uJ*,,999Zx͛իWo`Kzަ %6m}ڵqU)!!!u~[oUZ{nWuBhŊZbnݪ:gUWN=34hԩcv8SQ3gԜ9stweFujݺզMUVͭxG5o}ZOvΰ0),,Lqqq]jժUjN:jԨO'etI=zTiii:wß48˟@@K*66VQllԩƍ~,'*''߈8$|qIENDB`fluids-0.1.78/docs/fittings/flush_mounted_rounded_entrance.png0000644000175000017500000002203413632560624023401 0ustar kurtkurtPNG  IHDRs{٨sBIT|d IDATxypeLi , BP!) X%jd[UXA@eE]ED]<9 A</%QTD1ܙA1?drN<3~UQt?(ɷnv@v]NNZhq:- M`%cSXؔ!V26eGK0c`%cSXؔ!V26e@M&dldl+2 JƦ )$ @:@M`%cSXؔ!V26ej @Jd(J @V26e@M`%cSXؔa J  JƦ )Cdl+2LXXؔ!V26e@M`%cSI0+t+2<`%`KA4VP  @< @:@2h,cS` @ؔ!V26ej!P@ct+2LX)(26eV Mfdldlp`%eeeҥK~U;>Ӑ!CԫW/?W͙3G{I\$''4vkڴi={*++p8TRR( H{SLQllnfϲAy^\.p Zpgm7pI ;t:5k,O :T~|΢܏^ee @㑟/y?p@IҒ%KԱcGy睒6m裏>̙3R'XSXVVJ|H]v~mϲ0IդI9NKXEGG+&&FIIIjݺN;4%''}믿NJJR핝KOOWzzzDÇ5j(mڴ啕:|gLCO'H?ڵ\.233u}5x` `<z 6LYYYծPLL$SN`\\6mh%$$(66V[VRRN?tSzjkOn%$$"c)++KΝ;%Iwy.\X[ٵkW}'(0''ǏTO>ѠA?Jf̘AwtCZz56`+`MAg?VRիuEr8z'5mڴP3gԾ}tg+cÈ{Lyiʔ)*((gyFǏWqq/ꮻI-16k?Ow^qzշo_}^ǺnM2Ewq\."##b ]{zrFc…rݒZNT\\/\?c)z뭷4nܸF xD;v]Q2dI=oڵׯ$~رcaIǮ{5`xvQQQ5[+((K/Ԩ}ݻʲÇkذaOk.s9kٲ>#B$=zT:tz_Vf͚{111 W~~$]vzug{_Jε;@N twk+WSIү_~^P:r;w˖-e]V붊tg~s?0t0gm4ik?^2Q$UTT(%%Ev:W^U#Gm۶TCTT>C5sE(I>maǎ2eK.mpI.;vl;Hy&%iذa4iRc}Y-_uoFk_=` @Iz'ԱcGn*8T}>tUVާ`9x?\C QII1 Zn瞞S}n=4vX 8P={TRRRP=]P$-^X&LqLll/_Ç룏>СCkn>}4~x7N]vUmJҽޫ{1C^z\N;M{֐!C4~xuʒt\8qbҲeK͞=[Wǎa]cp:Zp˵dɒ:}fJOO2n ++N3224eY\dAұ\x:Ǖ \.(V^M7ݤ:ԩn6p ^o=!~z]uU_-[j„ JOOW-` @s&LޟMKKW_1cƨUVT @eO<z!NSiii3fƍN:YP% B:۷on&{Nǎ5` 8P#F駟 f${ѢE?7z{CݻwWjjRRRԻwoE>`5qEEE;w̙|oI&j޼x9N%$$]v߿ƍWs ֳ]w!os=Gu߉$OPJRLLmM6zyFtt4iu? ^6<<ܳԴt:}&M(::gk֬"##}=Tf]lgSO=@_Usт TTTr"q!-\P ,w}r k_*##Cׯ֭[|{5z())і-[ceggoUvv߯#G<@=>RRR\#G@:zqL$yfm@ù\.۹RTYYY|y')hO_]r+~n%׼OȎG@quk8pnnV[JHH:ϲv}$),,~_.`0r)7ohQbb&NhuiG6{nC.KԢE !pg ̙3='IZxq+:@]vgϞ'to{Uxx)1cF=G^ @EC6^zUԹsgٳLjV+W";{y^i( oC=TkI&ɬ^ L]RRRuV9+/:@ӧ9$iz-(0Fvܩz$G_~eHut`#۲e{= * :@۷+55#j3`mܸU Č3~i&m޼ه6m6ܹs}PB.tSBBrBx$IIIIUNNZhr,@["Dl%`K @-["Dl%`K @-["Dl%`K @-["Dl%`K @-["DlHz'믫((<{Ns$)!!AW_}nFy @(駟em߾][]RУlߞzg;O֭`uO?]m۶K4m4m۶-Х*n>C >\}UYY3áɓ'kܹ'-0`@* -`#׸~۶mխ[7⋪SeBE߾}OzOcM4ᨲ<;;['NTnꫯz^lR;w`5!өoFܹsս{*c[]s5޽,Y"Jݻw{^_psFDDprss=۷Wv픐o]YYY_/믿UW]^z79 i&.(gTTTk]tlСi&9,]r%JKK27J:v .p5Ñɩ"""S븰0^á:;!!Nllk1::ZM4u\ӦMU_>l?17o̙3vj׏=ZgϮ)),,Tbbug/l_IIIUNNZha~L޴iӓJZZ֬Y͛7PffI|MYF7xf̘U ׯWyy$>PZZI***ϪK.?>N6faÆHMMuoݺճ00z-Վ;ѣ ݫ+Wj۶mrJKKSzz$C*,,TBBrsstzvF֭[kSN'۹s ɓ'ѣڵKG֟' oK/TϷi ͙3G/$矯2={x^YoRSSuWV mjժUZb۷$3FG:6//O''A`zy*뢣5uT/QfP_[TVV&ө3g8vٲeCM6ՠAQg뫬s:#u/Z;V={:riC ?Q%j5kIww8ѨQ4k,Ժ?a]w]c,Y,{Z`yy>\yyy )h]x^pƍ5k{jןwyzG @p>))I^xױ6mI@_SNu`yy5TAAAnTd~~~sȑ:7ѣ*++u\qqJJJTt'rԣ>ZǥGyWKԂ {޷kNgy%Vxd#w$}ڿꫯj'Me>Q߾}5}t1Ÿ'zwA͜9S͛7o&I5vh܏/kv֤It5hڵ:t_j+g 5¯_~~}{^xo=Ò[{,|5k7z~nժg\ffx ͙3G~\_k]JIIѤIԣG@0[oX} 7ܠK.qeee_K/դI\=H_r`K @-["Dl%`K @-["Dl%`K @-["Dl%`K @-["Dl%`K @-["D ;V?7iD͛7WN4j(UVV60}t9}\Ҿ}0W @޽5f̘FooA5fpnwXoJMMUCfiiUVV|V|_+j-,,TyyO HRNN`}ʕ+駟P7`-8UVzbjkժUzaÆz?8`>YYYZh.\~-,dt\Zl|Imٲ%Ķr;]l.KV̙3})..NQTT6mf͚)22R W||”pDM6UTTIyp8l544߫1 ,M4I~O׼ysuAm۶UvԶm[5o\͛7Wbb:S|Oo"KJJkΜ9 6::Z й瞫>[=zPV|\)_B>333u7og6m#G/׈#j JM6MgϮCCUzz.ZX% PB2tW߯guUWiԩ֭Lr_jڿ?3j(=ҥLRj*M0A%%%u jW0Mŋ:ӧ/_Ν;[\D!D^xA\sM/11Q>Sl,;nug.]Okذa܅O_|ZoZhQo=AUTTT+B"""T etXRRCj59rV^? @еFw_ׯ_?-_xT tryӺuk}jӦ+ C~1͚5ӆ ԧO?VFAstΜ95$͛7IPt?tR%W]u-ZǪ,(ҝ\>IDAT:G}رy?VvwPNTZZZzá>@w+3;kIҤI?@m۶ͭv}||uꩧ2@3|7${dAGwyu-Zw}h?Wvo' fl~'*..v]\\nV?W%W_}u7߬?V5ݻ]oB7T|jժc_vybb+"c0''N%iRTTBXPPu]XX+*#:|4)tH#-$F  jF iBfd& jF i…^|4iBfd&5 `tH#ӄX4!V32M@ՌL&tH#ӄX4!V32M@ՌL&tH#ӄX4!V32M@ՌL&tH#ry]G|4iBi$Ռ @:@ՌLffdfdfd2  At_02M8 iBiBi$Ռ @:@ՌLfdfdfd8$Ռ @:@ՌLfdfdfdp'Ռ @:@ՌLfdfdfdp'Ռ @:@ՌL`5ҤßCÏBqHK `\p4?t0.Q8%  lϙvIENDB`fluids-0.1.78/docs/fittings/contraction_conical.png0000644000175000017500000006366213632560624021155 0ustar kurtkurtPNG  IHDR42#sBIT|d IDATxy\T7i枹njn(Xʺ޲2d+ZjjZfK.a 0?q 1;|=a2L3{w jРBCCr] 2WPHuYzmtIpce.r O<:u]aKk޼F!CXbF7AXԻwocǎ|&en^z>| *]\aR5rHG>>>FAXP(TXQ Ј#ԤIsHXvf&I/_qd̯SRRt5())Ir劮^$ڷo_jٲc~ ݻWZ`.^h>[n0DvЅ/X\uE7n4"jڵƍasŊS~Y10#,Yzz:uoƢo?lPU{9s挢#Gإ:u(,,LÆ S*U'\aƎO?ԪwZjm݊ТEtT -ZUhƌzꩧ|['NPʕ *pzbbb4gme˖Ր!C΢` aN=ƍ[, v~[/bVNGUTTΝ3gإ͛+,,LVҥ'aNs#<۷PE233uVEGGkJNN"EW^ QeJlvR\9]p!}J*e*ҥKZ`"##gYzu >\ÇWZ'aU|\J*9"9===ծ];_~, <.|wڵ@n4mTӦMә3gtRuͦ7{RJ3fveNJPY}jʕڷnݺ:x𠼽\H=z.}6jH:tʕ+g>P06:|5j\3e= -f///o^#GT>}c*He :T ,1ڵk6l蠪իWl2EFF͕*URhht=ءJ8aR&Mc֭]vdɒ =zT۳z!k*^]}mЭ[7mذ!ǷkN6lP"EXG111v}gϞ9r:v(;T [iÆ ֭hܹ\.ŋg7ݻ.}֭[Waaa Uʕ'򎰜Ozc^~ev 1٣H-\.nR׮]=zU [o)""BJLLq T2eTLQ$ j͚5ԦMʕ+!C(<<\7C²d5:>>^4"F8sΝ(=e˖ ӠATT) ke*, n~vs"EԫW/{CeIIIڵk/.ӴV!Chȑ뮻P%@XOւ 4{l6|P2d+f* '²䕽i,YR Q6mP!@BXv2v֭[mٲ.װaۡJGXv2{8u.\6.](44T?P%{",;a=eff׼ypB]z>+U =jԨp/e ,p[VҼy6My9rŋۡJGXv2pI-ZHfmhѢѣF;fYPX :M{JJJϺujРA WP%k!,;aQ=MS:tȑ#ջwoکRFXv2goiѢE;wO+]4f5maIffnݪh-_\6ټyshС*Sp.e ,pV Zx͛;v_ѢEկ_?]v, a\մgϞV!ChԨQU*0a\dRll˗/ԟ:uꤰ0G~~~v UjӦM7oVZt+Y6mةJ#,;a;8/^%Khǎ6{ א!CX 8=²ӧOkZl{>|}}եK+²/jƍzuIZ ÇN:vve ,( GSLQJJ5o\#GUxq;Te ,(LΜ9͞=[qqq6(<<\>*;²Fׯ_pB[N6Y~})$$D+VCCXv2իZ|ƌk׮ܟwpu]>>>v {e ,(-[ؽ@_cǎսk$²CfGUϞ=o۞~iiƍZl9bsjJ V@@]AXPXm۶MӥK,?C=={hɒ%Zh͏$_aaaj۶myAXv2h;vӭn՞[***J+V͵k5l0UV@itf2k'2(KW힞ԩϟKsUNl>v^yլYS;wVtt]V #2ի%%Nܙڵkh={VjժM}:tH'NTjkڵ, #,'W/Ȱ|=ڱc9VX1kժUիU^+΂i4lh |lpp/^쀪/4g}JOO֭[+,,L*QF#,;aJJJ޽{kժU*Ν;kΜ9:t+VLWxx~,=eڵk*VX>}QmذUnΝԒ%KhsuQXX *UءBP@XU|<#hȾ|rEFFj۶m6~{yyK. S^TH;U yf#FEV ֭[u1Mc5mT-ZЌ3`NJ0  ]%$$rVjѢvek.M6MJҌ3 TIHH… ݻwܟpuQ| 3 ,;aOO[oڴI;w6"c߿_sт t^ÇVZvaUfʹgVZiǎUҴqF͛7O+WmS>BCC5d+VN",;a;ռys׫{T4w\EEEȑ#6WdI 4HaaaP! ²#FhΜ9mM6?ݻw+""B-ҕ+Wl^zi*TC ;e ,p7^^111ׯAUWjٲeTll&G W׮]mJMe ,p7o&OlV~}8p՛ɓZhfΜ?*U =jܸIe ,p'UΜ9c>| 2Ġ\_ffnݪh-_\6ټys9R R%P%aɂ 4tPڵk_e\t/ M6S@> <ڵkE_3ƠۡCH?n j=z!>6lS*..N_} OWp3,3  UjРgN:c̹s4|͙3G2FÆ uFoڴiV_P 4a{l1 w4ȷdڭT%''ۭt]z5W^|9k;:W\׳|/׮]SJJ~ 4:㕞n>vҤI7nJ.m JNRΡzeG ,p56mң>jVti>}ZUaϞ=j֬yQFڵk-j`UΏOچ FP-\P;vh;pT`dYJN>ZjYM;x4h`PUV/֠A}o?\F ʭ[&(>ߟ9sfUPkV,ۿo߾*qMe(VZgZ(QB 0"`/_֕+Wrٳٮ 2jY-ŋP qL@5 ԑ#Gm6v`֭[6oJ\a 9sXߨQ#jʠ=\~]-վ'O\k",@!tuEGG[3 [bN8}Ϝ9{Lڰa^:tA{HOOkc>W_}102Bs̱jѣʖ-k@5^OÇ?XGq@Et kUUjU[ZJ{6*`'OaÆzjr0Xa22Ϸ eʔQn øq%iXk#,@!`P 5keTxv=ٵko ǁ4h`@%gzj-X@ JJJRZZ=???mVoVO>>*^J(Ν;k̘19gyFJJJRBB$[<>S>L;_5jd@%gջwo;vL&Lzo„ zs--M}&MWZ7tPEGGgs.&&FAAAmGև~(??? v5->zT9rDsE[^z\QJIx EDDp|b²/֭[ձcG󶗗N:J*X=^'PإxJOO7)RDW^7ɓQEۏ?-Z'N讻RffKN)$B~-[:(KҚ5k̯ Sڭ6?ʒT^=2eVZ$+TpB2a9:wvӦMs}ŋ5sLIRvA9bk@Vn#sS۶ms}_N:Q"E]4_eu_~e]rE5ʕ+0(|ww IDATP ݺ iر К5k<\~\?(""BeʔիUT)G u1=,W^ѣGf͚\22rt{Xʹk׮),,LZx.Gܺ=,W^lݺU|MuQNzϲW4i>SSN,0 [w ˗.]Ұaԭ[7M4ɑN{[G˗/7oެӧkСz]IW\T}}}Ud9rb(TYFnXb&$$(,,LM6UDDK?ճ έaN|Zv[BCXFz)]rE_-ω'jԨa@%Wp=9*=zT>{=QTѭ,,X jٲeh,ZͯYNOOא!CԩS'=UTȖdUX5f=߿AOjժ|!prva^qFSFEXF.\Tv IKKu=+#2Lw}vM:U_J.]Nl>}b;I&رcUH* - ˌ,reoY|BCC,BXF M6M111UVAYMfd۟|{X=z4h'dYS9VNa9..NÇ3<ܦXBZҌ3l(-IWN[ΝN_LHIIQDD~ahѢjԨyW2u)}HjԨDXF.^h^xb\eʔtcDyCXŭ#]t)VPA԰a;'`+2tm$F*,/_ހJְ]tIp}7\RǏի |0,%$$HÒ%Ḱnm2tupGe@neff˚:u6mZ 5aMsy͛7&LPhhfΜT'NhĈ￯za [ˀ~Ŷ|Ӱ%ѣ׌*pG9駟~1c+_~o+ @۷233?}z!mٲER'p=O6S֭ mX޵ku O>ѠAtR>ά rFFFcʕ+ ͛믫QFjܸ^|EܹS+VԆ 4}t>2333gH1 pV3fРApB%&&]No>6mj[SNԩSRJ97p^ӦMŋr)88X111g8k׮Y3,L&kΜ9y顇ڷ~$JJJ27k,ܹSҍ5$^u}GZx b^c֬Y믿.m޽ڙfeXΝ;mo͆ř_'''kҥ R5p@-_<`)55ժ͞aw5`I8pz;wVǎuEEEI1ꫯ 2l,n.LKKƍ5zhURE={=V^L&ׄe۰a5Sᤤ$-YDW5h \ UXswڥW^yżS񸛏9s$W||A~ʔ)vG:/33Sy}jܸ&Ọlt!B5T~}+n/_/Rҍ~]v5"t}^ŋo߾P UV)%%*egL5JѣGrw<>?OU^p\J7{7ԼysլYS>mf'l۶m4,I68ׯkӦMӧZjZj#͛7O?TyxxX_s*Y맡Cm۶tի~͢Xx dұcTF;bŊI@_Z5hlau$-[VzR>}ԹsgXYIRR)bql׮]qFIիs嫠U}FFfϞ hٳF8=ׯSQ5guA5j /_~P8j{gݣG\eIJOO7u{ʔ)e@p͙3GzRr FfWjԩjԨJ(!???S'NЉ'yfIR"EԡC2+_:uJ!!!ի-沷jJgϞUll16,l ;}?4iCjРAZѥ emٰo>{O8aCi6-H7bLLbbbvW޽UR%s͛7kԨQ2d6o,???}7n5krʙiFŋ7bK?nt9ڻw~?~\[lSFh+S ߯^5jУ>k*33FnŽ)UW?Ŷ>#.^ZZ6mڤ1cƨjժjݺ{=>}W5m4XJ*A)**J.]:=_y5lݻWڵӅ dUV-իg裏˫ JrM6W^[bbb. n"`lkX޺uvfTl\sśBCCբE jdffjǎz5b˱z5w\={* )rvntY?յkW%&&ZjIIIܯ g`GT8pvFr}lbbEX.^~m;)]&M˗]]M4I^z%;}<<\T.]Ok׮e؍GSRRtEgdΜ9z1P܏@^4mTƍn3fhʔ)jР&O~&I.\0owҥ 3]7Ԯ]$I/o޴iu˖-4mp{׼W*U.na:r vZZ>c, ;+[﯐nr⫯%IӦMOJLL4oÚ2eXaaa9imٲżWg}_~9ig>[CժUӠA4tP5n.}ٱ7OZe\o.{],YR}թS'g x*##C]vUNr5|Qث4IRXX'̞=ۼ且?C=sBa_%KT~Gyi(0YQ5,Bx\\\^{5vbŔf͚Wﯞ={jڵ.@7N$UN.\h~ݢE fo||>CmٲEqqqnLe U~ztaѣ76,\ӧ+Tf͚\]vo>|8P*Qz쩠BA׶m[|h2335rH]|Yҍ 6?_wn e0{1soѲe$I 6(?_ռ{}댛N>u֩[nZbîŝn,**ʼkڵհau%vNrB5`IY1An/^\Ԋ+t9-X@}!(0YMuߓO>if͚$TlY[ʶpk=7{tObLSrreʗ/o;css޼yVddd^z%>=z0]pnd*R7u$ks}8Rvׅ ҥKMIIIF''?xcZje? ƍ3g^޽ML~~~k׮gȉS,_rE4o-ɤѣGC6mԷo_uޝرrw~Sjjys>wӦMͯu[S\Qv_|6lؠUVYɓ/,߻w&N}CgΜ1תU+yzz*11Q}Ͻj*y{{gpN5,I|on}k֬Y*^FСVXq7yyy__~a eaC?6o)22RիWײe˴k.-[̜.^h޷|Z`V^񊌌ԨQT~}0YpeƍvUbEUPA?nݪ XesըQ#͜9S_}J,󥤤_3+)VUa-[y,ݸS&MtE\":m{ܹ={>\t/tz7l!rt#ҍ{,X}###s*20ZDDj׮E)--M<ƏmݺuӶmTbE7Ncǎ֭STT6oެҥKȒStt+}DX[/^z;;j(5*:yj׮]-]Ν;g~h`%7,"==] R@IX%,z98eŋ/TEEEã@Ya>|:>>J o ̐fZlvܙݻw_/VyST)62p'?&LkתRJzBϞ=kךccc &00Ъ _ EEEI& .ݻsN>|X9f*%%EJHHБ#GTn]K;",w}ŋ8q .(33jСCvPe[.#;vv!IVAdɒVʕUn] :!5xL&Cz.IJZfv!5lТH"JII1"'SYWrjj*2²c쁰 .7GlGX #, #,8a\a1² Ν3BXUX>s2S U^ݪeլYӪ-..N_ !, \,uy*pepaYNee5_!,*,_!,뮻!,{*pepqճjcd6&dtêfbŊ)==+WXbV$Yڵk[L&>|ؠ\a@VS8`@% n `_epM4j;x2Ϫ_~1jjs ZFFJ,$/*00Р3 #Ըqcрj\aDVSwe@% niӦVm,aD˖-~*p},@*]\bFUF>FMxyye9sNpmeMT IDATp#[j۶m[F|AڀJ\,;0˗ULeffZ>}ZUT1*`$I0 nTRjԨU utɪyCX7ӹsgʀJ\,;0RrrjѾ~5nؠQ'2jʪ}ݺuT~z*pMLv90ھ}ԴiS6///_*[AU#OepC{. }UZzeնf*p=epS{j/tUp-epSmڴQ-ڒY ়տKP ka5l`9o#FPvj>o<p~e($¬ڢuupne(${1+W΢ܹsڴiA{Yx*W,OOOyxxXﶺu0",@![Ϟ=ۀj=ժUKgϞ˽o|||Pkc/zj߾}jڴEN8ʕ+Tk6ѲeKَH&,@!rh~̙cPE^fϞ5jǻKP22Y-5{leddP RJi*QD޽:t`\ӰiŋUreY_^ݻw7*`/;vPnݔc<==g5iāF)Sze>k,ꫯRҥs}L~ʷadY+uŢ[ǏWժU Gy䎷Zyxxh޽0 PNt}GGU%&"*EBBIBqZ0!ظ۞Y#+x\",++I 47{gqf|xq2|T9VZZ6R~]s+;| e!???x\\U2Y~~~z7BXV```cgϞu{F`>`\$~CXjٲ&MtyP -[I&}|uXw!,=Wꫯgp;5lذ:{>}\u>0 wy5㦶2ܵ+Wԅ LGꘟP ,M4骳EEE3"`zc/FaB5ރ 6׸qcEGG_u|*--aN,5n8&V.]uXّ#Gt}]*99+fP2|'T\\*,,*** l*//OyyyTnnN8Qe,IzOW^ po"33Ss$²Gx!C(%%ʱGyD|ILZbo>x-ܢP9=n碢"WJrssURR2HO@r+//EvvN:UA a'|rkvܩ *B]+++֭[_Չk̘1ٳڶm뫬Lk.^K.ҥKWVVVEu[_@X 2oTVV]U?SZzIU.:uJ+VЂ t Te",Vg+RX@@>N:T|tBX2_r9u]***r_?O W||-[vUw.á)SUV)Iqqq5l<ef銏rI&umTwѺutR2f-4aEFFy{NXW^D`^^LȻ+==]SNU6m4uTr@@>HΝ… =%Xe 9R7oru:vײ^Ǚ3gܹ5uToސ1kЁle ,E۷o:[oi̙u_EhJHHg}Rlڴp8lʞȭZ2ja|U>}w*ǚ5kG;0*k8z/^%Kٿ9?}yyUXXhZ 5²dEDD\u'͛MxɵS\\RSS ]o= (i1@XJKKչsk.{W_t:}v-[Laaa СCZh ܠA=ZCÆ s{OdeggE*,,TÆ .:AX2_6g|l̘1ztmݺUO$ >\}Y]iB^Z-Rzz!cv]1112e_uw(;;[͛77a|Y^^:vK.5 Ў;|X7\{"ԩSС.\VZ]uK&M^N_SRRWTT 6v-BBBp5nؠJkab+7m7c߯9shn/NգG9 tvDXT^z7ou릗^zVYfڜNl٢ٳgS˖-5e9*Kii$:{!,jg?H߿^[a9//OIII;w>\q4tP9=Z 64J亶2Nѣ٣w}W.^X5oc59sF… Yq\{"O:Uڵ3B,{~ޥaÆz7/護ު`?uwwީUPnڴua&(_+$vBgP+ 4̙3յkWM:x-F岲2m޼Y׿uZ]9&&FǏ̶VVFXa5o\]kϞ=$-X@'Nmڴ5}t=Cnc7!NJ;eF5k(<<[4զ7jŊO\_OÆ 5zh9 :{"{\ފ 0Ĉ#rJ_j/];vh͚5ڰarsskUKϞ=p8a==i;", 3f-ZH111U'rO?:|٣zmV'r=w*Va`h]tIZűM믿֖-[W_믿VNN{" :;", ꫯJLL$uYawECQQQlT;", WVV&QM6 c0 `Gea߯zK[lQ~~Qxx8{"2i֬YzwTRRxڵԩS.]P!AXaT=:|[4lPcƌQtt4{"[ ӰvDXܴrh֬Yڱc[cD2eZliP0e5v\R .ԑ#Gj={"{WHx#2ZgϞ'|UV/u` аap84j(D"LapgjZzvVGk׮fOd/4l~b8[έU5rH*44=eN8D%&&ԩS=}kfa`'eb_^III Am۶UddMƞ> #2DiiҴj*}'ȨX= ž> #20ө/RVG}ϻ5^nnڠ*au{!,q:ڵkV\իW_ukVZ)""B111޽AU›Ya|ݻrJZJOvk{"=Z 40Jx#Wgٝ-6ebZd͛v*á(mր \!2xӧO/w޽[n=4ibPEtvDX ;pϟKn׾}{M:Uܹ\! 2XTZZΝ͛7P6l!C(**JƍSz͡ #1E/Zt>CoڴilL}/^͛71kvDj3H5h mٲM<*pǏ+!!A/=^F4vX9qy|e tW]wݥ.]Q5$Pk׮ŋm6C:c{PDDnV2Urru_1cFW?x-[Ln׺u=z!*e ٳg^걾}^8hʕݻ^z>|F P%},숰l^?.\XqQFJLLda/Cvڥx}s{OCjӦލ #қ̛7OTzzzxr%%%)>>^t{͛k„ r8ׯi;",{@5}tK|֭[xbmذAn私p(<<\76RYؑrIIrss}Nii._\qr:S^^rssYq̙3:pׯ޽{k|뿱̼s˕u畕)''ϻq=5]TT>/33S:y {#wy{_}Dg`' ~~~+=쳒&M_~2dF{キN(,,TAAA+Ou@V]|JKKXnnuW WQQ5QYuᬺt:}Ǥ=䨬σ=:;+'az3fuP.]RFF222TRRRn˕5//)/ӧ&O̞@-[}vNn8N]Vk׮5''2`,yu:;!, QllƌÞȀ|`Ge^{դI:],숰 4o\cƌQTTBCCY'0VaݻbccM]` #2Kk׮~iM>];w6,#a3:;7`mtvDXb5l@,숰 5;",jvDXb6,ر~gKlvDX`INa숰 JKK%އ;",2I|Iz/JBX`i|9ť",$WH:`'8y2Kb8a+2K",P9,~ a0e]Xe,슰 X 2,/ꀹ,슰 *) , Xe]Xa",2Kl+:;!,$:ˀ5TƱEIDATk>`IeJKK+nv§c6`????+nXReY5;S%U,W^:tI,슰 *)',{*LjS%}rJJ89G2 L8Q3fбcհvEX`IF` 2Dv24܄oaL^ڵ|IݻcUMg`'|ʝ_k*--M PXXvidi3gɓ^;N]V}ȑ#)Ya%U`u۶m/*@XT_^^͛7Ӱana`Wetay۶m4hBBBPC+00j쥺E>s+$$D۶mX >XRMΝ;ر.JC VzeٶmBBB7^yyyy ;S%(,Wpp4ŋ?Tze/5zhSVRyyy+n3 `'._YYY~Zn:͚5Kո|ٿ+C;RSS+mVޠAwY`I;˷rKűq6mڤG}ԬpNV^aaa&V<==ejg@3PeY///yzzE` f͚vyM5B SzG5m4{Mj3 qG=(-`a45i$EEEٻl;5PhƍjڴKSĕ+W駟ڻ lP_e WsQjjRRRlOKKSrrc<))I׮]S||t%:tH?K/}fۊކ#5),ŕQXeff*..N JLLTRR$9sFOYNTn]UZUaaaG^ <甽zxQbW@EPR)QΝ;W`[7qqq:w_EGG+))IJNNVrr┘dS(~"gh96$\]]Wc K|mK_w*繯;Dnx=*&__"_ `BM``UH$,]T9£@!Vv0𐷷ݼOP``k QAAAUL#1 ԩ222ty]xQϟWrrKrrҔYc^֚V<<<̂-66,5*LI1ñdnwҳhjOf+W`rb^TN6 r3F*z*قF!%%E5m4k.m۶ĵZa1%S+33T،P+,e?Xs_+Ok@*Jrr~^reըQC!!!ZU&ooo{\av*ӚH|LYdz!vM?+rZ9Sv9~,g9WD]vMǛ\7___UVMaaa Sj5kVZ]j׮m)+2gj a4ղeKcy6 (p4l׮]SLL)%$$(!!Aqqq5}lUNڵUNթSGuUFekww"ej n:ٳXtI7nQE(,DEEŋ|"##uEFFiڵkQFjԨnFxjԨj׮mьxAaM׮]+-BM!ڵmٲE;vAEsѥKʕ+t.^K.љ3gJ~<<<ԤI5o\-ZPլY 0naյg8+BM6mڤΝ;Ν;kÆ Vty?:uT/^h ׯ-ZEjժڵkWruu-p2;u]ںuk_Ԯ];+V@>6ѣGuAŋl2EDD ߷oF7TRR+ťSS>DGGkpႽK@"ht MR5d :!@1ԫWOӦMٳgl25oܴҥKzꩧԨQ#-^Xe^|g7oř2dY^ѣMݻGFpwwo>رiٳgI&Z|y+ְ}L8Q׮]ӟiS$eee'ЫjյGFR0 Ж-[c8qBC w߭ÇI=ܩqNAǎ3ֳgO(++K#GՠA>Ç/2ajJNm߾]~4ibھuVhB&Lw5k*j3R\2@,ѨGyD+Vu ͘1CZɓ5k,;U ))X*33S-s=gM5ok6nzt_HHHg_s?zDI/ФhΝf^x ;UΉPvf04k,M>ݴ-::Zݺu+t!uƙB͚5kԯ_?Hԩ 6vvzvءTSnݺٳ+D1i$ۦ Խ{w]rs5hٳ%,}ׯzi۶mW+7|IӚ:j7N/}1s=/y 7?**J/_.Uxb=Ȑt=l޼\ݡɖ3????c55`L~޻wF%XUVo}Zj2drJ͙3 6lXhG 5ƍg ou-FN>mWfMv`В%KԺukӶڽ{wtM_K]=szLh$W+WVf?%"իM5`EEEz\۶m ݿqF]f45n8M6ʹvڸq֭k@hhI&.XjմrJK_15ڵ+QQQ:pU,L=C={i[:uuVկ_ߎ \֭d[N}Q7o.//BϹ~zW>|>Ӷ:uh 5ƍ{Ԟ0a.^o_777y睅oٲeV8Կ-_ܴ-;ДuhePN`0?VժU%I1113fL[%&&%KܹSwy<\N:imفIE'3w\K.]dKN#F(=)nͱcJ<^˗/Vt@ӠA]j  ͞=[AO?iڵy=cEN+(##X_|QhWҥKv͚5 4 j׮ljO0Af}7n￿8qB~qO54!>}%IGyLwt K/)**T,E'VV-M8~Ws뭷O>իzg-fJJVZU:յkWYB 8U__.rl|}/v/_V.]tԩb @a5伽5c S{…:xYf͚iȑh4jfSҤ=wUW\)9ȍPAԾ}{Ig&{y7_y\QFh4?66V?Cj=u~<d#@9`0[o1۴i֬Yc',,L?|Z~}\*ad4iRDrUV>|=a]vͬumyqiΝy/]JjԨWns@r7ސ$رczw>[IMMU>}tӶ?C۷o/qm 43<={ѣWsʑիMꫯ*22ҬOfy(uQ{$͙3lR8'N7TV} c04yL2ESN5pDj֬;&I:t>3>FQ={hпիW9M۷}ݧOu) @)B gi&usj͚5իY+Wnӿ[k)""B{VDDKu>`0x ʡN:M裏*..άOHH; 4иqi&EFFjٲe4h`(|MU\Yty=cy4o\~i*xyy։'oU5PN3/_?0O}wޱ)))9r~7 @ij4hoj?:tP~cǎ+b9ϟ?;?ZʹFd[W\_x혔 6L#GTBBU5PUREk֬1M?o߾Ns/]TM6-բ*-ZMsN 4HyN4If͒`gΜQN4fEEEYn,A o߾zMիWkw„ Zb,:wFF͛nA3fPjj(@&O &+WԠA !׆ bccc5ydr- LX*YfYr|;o>qźɓ'5l05lPsQrrr &M7|4nfС=o͚5yf;9s挞~iթSG.]TȍP3< Uuouwwל9sfUZ׊/ZjwZzuP~aOq3۷Ə8^zСC8p`5k֨o߾QƏ[*%%TPFE8)Shԩ6_:ٳgu7mkڴ>s5m4c֭[cɓ7oիF UժU _񑗗<==+77R_ PS Yjj{1}Ǧmz7Oָ}̙35k,%&&a\]]g-((Ȭ;yzz9e<<}L/^~Xr| os/PΝj|7 PӪUO?I&GՀԪU+^ZYYYyuwwaᅳ3gNH׮]~͞=l{o߾jܸ,X|^Ǝ;vZ|FzKS~V ~EEE魷Ҽy󔐐`J*=zFnɢEFF~Ӿ}ti]pA.]|cJ h;zwM61b T233%%%)99Yqqqʒh4M?a Y׮]SRRJKK3;oVV\/))I׮]+LY"{֞BA_#`7 @bbb4{l͟?_QQQy}իz ڡJe^A8͏*ꍂބ(Mܡ7==ݴHqJJtBBi6kddd(..N1115[0uIUVU*U*Ul///E-[o +Wj…ھ}{nFo^wqڵkoQ +h:uJ֭Ӝ9s?Ú8qׯ_&d!,wa-\PyY[oUFԨQ#x㍪V$wԮT";Ž+33Ӣ9>6磵tXBz IDATjԨׯ+((H TPPLX???M,5DKOOז-[j*}w:|]ZMQ[q&{9[ mTreծ][uUj;5P:FQ{:}tkO``Ə_|̮i0 ev5@g0ԦMiƴ-##CW^ULLٿfh4*11Qݧmu,5g˞ ZDُeO('WWW~`z4_f!!!vS#I]*44T.3azJ;T7CrzVsё}턄]Wv(((H.../wjK{-ۯ_? 2Ć83ऌF,X`q7|B=Jڵk~OlXc!n>fɊA5P8M6iΝ>% CΈP8^{Ǿ;:sqLA޽[7o.񩩩ej+gjp@?Pdeei޼yVqj4|V;#rwJMMUÆ xxwwwqzlTc >+t`0}n4m]C3NPj85B F5S#pjNPj85B F5S#pjNPj85B F5S#pjNPj85B F58]v[TJ`0[իW7߬k̘1ڴiSZlnV`0h߾"##W{駟j:vΝ;TCW*UԸqc_={{ΪpKPSjU$髯RmR#NMӦMUZJ 5X~j7c ϪU.]*PV%ʑVJvJJdҥKYj`cj{l۶mz饗˗, 5?߯;/8B ,VԴso>L|BCClٲ7nԩ_~Eon&ڵkٓ+V(kP65Hdd233Ͷ]|Y={T||UWիi[LLL p^CMtty8իC o=Ͼ0ٳgKt eP~LFgZm$kԨQ64bJKKSTTٶ,%''gUnJ|zJرs/H8rΪF… 2ywСDh#;wX)(ԔvM~r+F)4!!!Zl\]]mzIj |A^ uj`/fhr>@)wGSF _{Œ_-[}ƚhr9MJJp|.\0kO4Iݻwuׯ_m۶G3f̰Xj<==W_YuMN9+N TL;wW^yLLLرc%IׯokB ,3,ZHZٵrLeeeZǔ$IWVXaq4O>|L5ƍmzJ̿-322lz=INNV^ʕ+z ,;pX$..N]t̙3m~t6*nIW֭jkO;v4iUV`]razPik˓O>Y&9| 0 *.B ,2nܸ2VPs4ի~zş8?INN6kة@y޽{=zt I'&&j:r*PܩÉ4k_zNʫQFiϞ=4={V:r~ܹS222裏jv@a5p8W\) @i|ZbtR-]]v->~[ꭷСCպukM6e >|ج}A;U(/qjРj֬ D8 R5ԸqcEDDj`r)͝;W}Q͚5eAx&33S?,Yh};wSU(K7o6kܹNʣXϞ={Զm[F[n#[fze*Ϳ7*ߥP&11QٳuҥŨu͛Mۻwחe"Ԕ?ESʕ5` iLq@4-5J!++K۶mӶm4vXuYT߾}T8JO>._}jݺujҤ:?ެh̝;XR%$qʕy(eUb^~eʛ_{>q7g͚exEr^_|aLII`IJJ25} ><}ϟ[o١ڼrTIe4QԩS5vXeeeWk׮U~5k-R%6saM8QjR޽m6{k׮i͚54hU{LwY6.]hɒ%ʕ+5lذBMJJFeϻf͚9sfiԹsg[Tݺu5x` fU;Vw$UREnlb3dP3uT;v~W]`e˖oѵmٲEyr 85 1M|wեKueod*˗kѢE?GEE?0-y6m֬YJ*Д)SR$ᅳ3gݸqc=7O̶s=E^gڵ:u~7IҘ1cLۀ5O>2dv*W2%p ߿ PaHJJĉMի ϒ%K&m۶4o<=3JKK3m?+͛7O/+@al،3jj=Z*<']HE9u^ 㣞={PϞ=  |۷-Zػ5kz3C {333`m=zk̘1rH=ŬzIHH0Çz_m֮]nB_F?д-22"sqqhQ6K@ΝS6mCY5C͠A(yO?@Iק^SviӦe4V}4h{lۉ'tR:uJ>vܩZjIFe-[ }(ʥK/M .,t1zM|ת]v777͘1C֭3{o7}Yfi9gO# ӧUVf<<<`-]la.]>7 zǵ{"^h4GիW5sBA䡾ziϞ=UVM7xFaWQ65҉'bK.رcrwwAP8'x"0 zǭP"E(yh 9.B ^zRgB%P8m.:uRxx+rL v9֙jVһ-ڵ+]gB\IXc< Gjٲo6̜,5(Z3O< +q<.PBB(8eeeٻbh,q%}E4S;--Mɦvff㕔d5O:/R R@@%WWWu82B o}og kfQ I\]]%OOO]>>>﯀($$DuQժUe0l @Lڵd?nB1BBB4b͜9 P&Fvܩ˗믿VddK S^^^$y{{#OUT.M+((HժUSZ_毋Pkٲe/tY}իWװal,ڻ .eo\bƘd1vX#hhIQBZpVb/㥢QDXILPD#U`0ܯ.#?NYXv]v39=z?ϾyO\.L&2,~3\s߼N={NVF1N^fh4hZ466`0(//Ç^s„ Xh S\߱pMhZUHDd2&L={ ??| `ܹHIIq΂>.\`tlʔ)ʕ+DD4x۷oBMjj 4C  Baa!v؁\w>b,^ |LO}7X:m49sJT*X,ZumH___[ Y0Qaǎ8Qkwy?~[暽p1Jx`Vlulo}QcO]/PK7:K. u C&C Y7oӧ^uaӦM 5Gqq1rrrp|W.""Hb߾}ؽ{2 oeee8}4rrrpMGLDDC  wO$?9v43N>Ǐ70IXn._lΜ9HOOǴiL܌CŗC DVV6mdPQˆ666"==騩qdDD41 qqqr劰O" !!۶mBu`'l߾UUU,C ǏcF3ӦMßg<&Ϲt6mڄ۷o;L""^j9Nwyd2رIIIHzWQ^^~STBV* JR 2 r@) HRa ¶T*9jbX񁧧:{^ZjBDjjr,[ 7nEEEĉ&hooGFFn݊A__P 22FXX1j(BRϯW ""ꎡhOꫯ=}btիW?5Ǐ^z ?O0m43DDDPCD4 ]p111hkkԪL0>++ hnnd2V\_=ܠ&""2h9z(3f rss1eʔ^m/:Rk֬AJJ ]7Q_j׿5:;;'OG}^m tRܻw_אH$Xz5n݊cڤn"""s%0D!3}`֭6^jݻQZZ Pս544`˖-Ca;==Fmv؁V̟? b!"rQظqpB,ZȨMYY;f\,҈\ C :x R&-- :l?IIIxR##0*l۶M^~=&NhԦf ŦMR#0djs!hZ{\팈\C ÇT1 73n8Z.59C  1 x7:uU.\+11vȑj\ݻ_ |`r#66 ""QTT;w +V~^p}[`!"rk֬gVطoɶ9990 f[bk$""* 5DD. 55޽{b '|Ҧ %""'w5ygmKK |rGDD4jXEE0ȑ#D&_zmmmf\`$""J 5DDNJW^AEE/##=XXƴilV#3`!"rR6l7+V`ʕf)**2{|ƌd6Y09 dff O|hرc\#3c!"B;v@\\0BJJJ4{<00p@59;P@D4i4ѣ>???>}/Ҁ1{< `@9;""s/_Ba߄ ׿&Mp]4ྉ9бc0}t@/rPjF1C 㗿%bcc!ˑSNAT 5DD4\q !!huSԩSVTZBBٵ GjXh@#Hyf|6 4lMGDD,8RCDdc|RSS*쏌ıc0c ]ooo\hqF:::pYDEE!99Y4R7o͛7h@ә=Α""rW!"?IIIFܹsq!O53q""rW!"˗/cܹ?Q=z4N:O?!aN?#""wő"~t8w݋[no~$XJȱjt=deeȑ#4:鉸8$''#44tHj<<<T c1QUUgӸ~::;;{zz"66)))=zU""jLGMM jjjP[[+7ԥҥKx"^ ЫMHHn: AY 5b1$""Pͯ~+9rAHd/+Wآ4":\~׮]˗W_lRdDGGcN GjhuK1}5kM͛7SO٤?"*ܸqyyyq֭>W‹/e˖aҥzlƈ#XD"Gj9s&{9|kڵ 4DN@믿FAA~mgc;v,.\ ^pX=3""rW!''уCTȑ#mTYÇ(,,DAA PXXΪRΚ5 ,E0i$Ul[FjRXqƄK"<<eeec˖- 4DvQZZbݻ}6 {-ܗ#F`֬Y3gf͚gy鞏H iiiؼy=z4ܹ7w ^GIIZ޽+RzJx'Ogٳeq+4R2S鈈%D 5& ,, Zfggcڵv}޽{QQQ2(["Jӧ} <<<\Z-<==X1Ԙj*8q_DFF˦Ұֆ*[[[QWW6G!@"$$#GѣQF!,, !!!|ajnCף Zbdgg PD5{Mx ߄Drsz=nr z]]]}]=544$矇.G~mBQ31b!&007CYN;#""wgͨGP]]fᦱf:---vO֞m&r* JRR}\πbbq-7ݧ"99(--祈\\.L&!HT*F|}}!ɠP(~~~dP*dPB?* P(Git?""rgtԠ---t4іӟzN;9eTS:;;Q__o'5SzT;T BaUۮ.Jђ³Pbjv.]aJ *]SHMHH{WDDDd](bg[Ѩk[KK P__F&| nݺeL2ǏGxx8J% Jp3kꦼ t7]zވP@DDd7NY"?FҰqFO뉈#DDDHܾ}0fܿ+""GkZ;SSaMfž }}u\ͰxOMUкzߔ4F*GdKlvȶdy!4q'dpRHRN-K;=sҒЖ2r 9%ds8 KBXNxd[~;-սzu9>ھ{}zADDSAcc#륟444HEI~f3RRRd=j]/%%f0HOOGFF2223g ""C]]]аP__˅aeUTT$"" _ssk׮.6mLw퉉X,RSSa4$%%j")) YYY(((Ē%K*bk"XXSkb ''̔})))HOOӑt ,^P]] ~4>vEQ[[ ˅&J? x<O||<233aِ\)ٰa+-޽[pESCB5B'''Ζnggg+ib_UUVZȑ#Xr(L- | "z}bK- (++CjjBF֯_}YgAC5aZBp8M>CTTT .CEE5hJhii 芨NTkbnnvCp8cFٓ|o >PAD:0 Yp8(**rrr4*Y*(&t?@\&xp8cΝ1yL&̛7OPU1D$\KKKа[iׄlF~~ƒ@BBBҥKp8R7`K/TY 3c'5 iGII jkkeeep6QDFwMZ%ke>}Bf̙RWC D4X}g!Gj=Ų!H%-3\PA4y<\.444> hmSZӧOGii)JKK|- v |/2= D:T`G5\8Nvtz߿˖-SSLi9##C`%0Ti](((:1//N3U(ߏ;̙3eAJJJ~c aj5aXH@KK Z~=>%R,C `?644Q c=dzzB&˗ZHq-ȑ#'MM2AH%׮]Z#yf3 N-zB˗/YW__ףI1AB< "Ϛ5}t___D2f>߿EEEC\\BHYW^ شi9ɨH DAwM>ZV0]kCw ܹ~{+"b- 4%]v-쏾ۑvML&lיuUl~֭x9/){GPA3<< 5&,H&0vSyҥlp\srr(HQg'9S5uzY&F6(54,~44g466O>E"O۷oǖ-[WGz?(VM% shhh> 0k"ԄN49eeeŋbϞ=PTVzR[*(54enKSIl)5m .͛c 7WeN"pJ@cc}?.]PDaZCNmt:a0Do|رcW_e  TPA2ѵ&022{_{eee_֮]R|ؿ?9."|8wZ[[ڊ6 鑎4=poo/ǬztiGrrr l67 :d0G?<x ?H[ ?A9spcA:Qd\. 122[n]3g0gi\pESRQ]]cǎ/_ƵkӃn7Ój@ăH5k hivfQUU#G,RT)T$&&bڵ"kѥ'ObѢEzxwxb%)`0`xEBrw CCCؽ{7^%1Tv@G.c FY<Â&6ojHT߀w^={PUU%"e1TdbŊ]vaxxXpEu kx'Tw}7jH[WPѣGq1oǖ ;vH"7^}ZPArI -B%A/a2""ڴi࣏>B]]bHR[PqՀ]&''{XrRArm޼YZfE-BEXjt{հZ+RC5c xpdq߀ʜN\RR""k8|0<jH['u9Stq2.- DylH~N3ĉ8|0`Xp_UUV,\=E0?HIv[*hrzju^ŋ<v[[vڅs7߄bQ/& XVUNMEZF-Ttww}Y|똡?EhDjj* "?v+WPSSW_}AJZdmy%˿ ?"11Qͷ)zVTbϞ=ؾ}ʕOPqI=~ڴi17hA>TP$Mr{_WWÎC͌ i7:z(.E?` Pm ,/^iӦttO?VTAzƪvCCCvLT߱uVn 7܀2̝;sERR鎷3ϠNS"RZ-شiΟ?^xv&lق_~?QSSI =ocr7F(..ٳ1w\TTT`֬YINmmmބ/?F[^^{mۼUUUޞwddDzw9͛qqq|Q DA:裏zxC>x͛}饗555^޿/xƍP1mZC}?f;go~=}wxx8׏ٖtvvxxXbppP:n===hmmw^ z}># d2˖-Ò%KtR*)zغu+N>^xV·m,RZ8->̞=p}&GSd&ii+~tvvŋ _chhOӧ/>%Kl2,]K, :ԩS3gʕ+Dww4 Uwww@;r Z㑮'Xl6n܈[oUڐEzo~gΜa2ڊ, \rي|H >|V] ?'xA/} :zꩀ/_B@ii)Ο?.)BO؝;w㨫CSSZ[[ۋi_>^ F&I:HHH& !7 Z܌7xǏǻヒ'|Rڐ3ї3<78qtjԠ9sƖ Rx߭Ǐ.\ɓWU C X}`W-g@Zl6f̘5oָn)ZLFǥKPSS^{ +11Xp!-Z lүzCn,[[[裏7tW^| __|qqqx&]*Hi###rV\.'ꫯJ+WTB5Mf[[[|;~_tiÆ M+288Ntvv | ?wޙkL&̛7OXlYȉbvLD,,wp8&|\|| TTT`馛>;Rbv;X,̝;ϗ~fϞ-;@n}m޼[oE__222t1ϩcgK)m Xh;fgV+^|El޼۶mC{{;y晨Mo2ruD}:sFh4RDx7=/f] ijX5kĉԮGSBo)h4⥗^~߾}!cXRANr?ϱx 4>FQ#\SA;E.>]Zޮ?~/2>U^_*T>P?HiyoGE[KK .TVV9uǽs={?[*HiոqøӃC+-*ST R"%%Ep%X%tF#vLU+LP![*HilHy{ * PAJ ,mW"g PArmE *S/pL)%"{([[H"|"33Sp%zۮjCgK)-Dƽ*RAJFww7TiCE-`0T:;; CoX-bPO)% 咖O.=ocBe<(<WCZmq2=h.]CBBjH" .A5l %544NJHK$b *GFFV HIIAYYjH. d ?̛7j$[-_RA4cǎn&1TP2=%)'OXBp55zXWP[**H ``B<TSJyT@J̘1999!a- *@M9rrJ1`Pic*J- )ǽʺAŞH^UVV -1TSZnkkXRAڹs'`֬Y(((\ iDl^AerkkJǦFݻׯ\ x *|,1TP$Ν;: $`xeBe/^{=(7|`Xj*ՐV]&1WPQkk4:>L`EbKE7p}ͤ$ՐV"0T;@^^u(..`%KV rnMp5el- *o'|2$׎;Au  WPC=˗b`C?>NjHR[WP3g?r5D~킫!zX*T_b̺JȖ cǎR͛WCZ½VXk{$9op:;wjH*b Cyiy9hooǁw}jHO)$tvvNR{zz&x?nw <ntuu^zaKֻ;WCzP[PׇGŋhllDKK zzz+DK JHsSa۶m(,,nGvv(>v;-Z$v)T,]OY ioKLLEEEB Dkii>Nv"R[PgϞE[[Z[[ֆ.pp}}}fBF!DH~Ԡ&yyy(WME:K_jH/R[ ^^+vRn7E!0P__z444SRRp8BI7Cr={V---0K"x`iBpESΓdX`XD!TVVfϞA\v MMM~\.pq[zzzpY={6cV+Q\\Ten.ۍ .… !2F\hxx?3D"+TRJD],HHHv  }?/Fl(VDzw^lذAZ^n6T1Q p}@N.^/|b 8ev)v=&;{e 4u(:bokDV ,yD?Ioݕ+W&v*5Ll-G~~>rrr͒t}yy9B$*c RIjj*Q^^`],φx=z4c㑗H!f!??˃l3hwjU}*b C t455 c`0 77Wj1}>krrro>|p1T ;eA2:|\? MMM8ydǙL&dggcCZZҐTL&twwܹss, vڅM"0TiX8],/_†LfCxrr￟y"tww]&1*t,>>^:S$.`#.w+"M曝p89;H]mmmAI )n. 5tY 'ӧǽKfffΘ1)))VҟViB< ˠ(X,vw(l.AiLGZ8|-gddDYI{ĵkVBg$`EADaDaӉ:@II >SMq $3g.t{kDz($.[TT4fl/y= (**c0ЀM] $˩SƽuT }ֽbۑ!%qx뭷044l6nk&m$K"pbrJ} A[8|7:PZGÖ +W]Qؔ8%V5,(++gܹzkv-]d9tnfe)fhh---!^pAɕVAtrΎ0UVVСC/_:8> Xf2j0%IHJJ Zul6F>9rWXwaZJPEPA۷֭]QL'[wRn:߿a޽[pESj,J=D {-biooG{{;>㐏IJJBAAt{߿6M´idX#H\ 1T, Dg6t:t:C>F.>\p.\Ldff"##C799IIIHOOGRRHZZey?n7Cp6Ggg'Ӄntuu|^xv´iӐ [q?hPkj ?H. )ҏx0Ҷx$''X<:)))F)`&&&b(,,Ē%KRA򰥂H̚5 f z.`C(v bpp0777+ ,` yx$DbzjV&קkz!q{VPbb",KCuZ&F4NJjEbb"V+V+2331sL1Tz(~ӟ= pB 77HMMErr2, \?2JNNxl*lD<ϛo ٌu։.E^/:::&xހu]]]X #=vz*^/ĉ8x 6n܈[b̙} $;K4 O{.%&%''O9..N Z,Kб,iiiXf$%%!!!AzNBB`6,p (--ۍ ,Z/^ڊk׮appp@__ ǃnc^z{{eͥ=E__o(,vlx'(BHKK/jbd2 -Nqqqa_iwE?6nF#`0US=9)))zFZ/?_RAdΝ;q1'?ᓐe˖aƌp8ZHMMEjj*`20mڴ}F.94yիz|QQThjݢv###mVvttt8s }]}n /P^^5Ivb<{,`Wjj*Μ9.2ʕ+q)tttpGq.\3֭Xo˗wthG:RLee%9`ڵ?y DZxb V^jLwM?Hqĕ+W/qǎ Б{ ,y}\aaa*"=a ."Op8WBJ׾FMvQH!0TQHeeeHII" z8IENDB`fluids-0.1.78/docs/fittings/entrance_mounted_at_an_angle.png0000644000175000017500000005551713632560624023004 0ustar kurtkurtPNG  IHDRiSsBIT|d IDATxwXW {,b(b$ FK ] KFcKTh{K H~!.ﺸÜ73s挙B@[̞=ضmZhHK݀6dffbʔ)wܹk%"""YUBBҔ_;vL"nܸ7o""YՓ'O}}}""6Y}=uCDD&˰Ǐ""ن˗/ Ê Ê Ê ,*33c +""EXxaED$+U3Ca=+""yEX)1Cajϊkɇ,ŠDD$o+U{VDD$+U{VB=tBDD ۰"""`XEX:gÀDD!16xH>dV["""`XmX0 |"LDD&6 Ê ,ŠMa=+""ymX|6gED$+""7B ?~<ƍkkk #"2n +-*,N "z= +(,H.awDDƇaCE9IDDcXI(8 H=D^|yax:'''L>Æ .߿Sbٲeg5lsA߾}%쎈01$..ǏǶm4u hٲDٳpښIsAڵk@0 B5k0aܿ_m|||0i$""#IOOGdd$Ku+Vɓ1j(N "2@IIIƚ5k3gJD${ +v)wH4o\ΈŰ2E@Z$쎈H_~z*ծnP(a4jAAA%"26ܳ229s&/^uy0F ;$">ԩSau\ aerQ1h֬DiY=zܹsXr%TnϞ=hٲ%q] ;$"*9Y9s ##Cm=F`)SFa%Cɘ5k~( uժUôi_p4>}~~~8tƺF!""{3"ð2[nŸqpuu=z@TT6m*QgDDE &;::۳gZhoooܻwO4㞕y̙y!++Km]$ɓ'tvHDTDcʔ)^T\zuL:0HV&n޽5ֵlڵD?2qݻwٳgrJTZUmٳgѭ[7/^C""Yѿ< .DHHYZZbС9s&*W,aDdVT?3gzQqҥ@I!ujԨ)S/9,1PEUVBΝ%ꌈL B]T+;s t邞={vHDrǰ"1cJmmJ>>>x]\0 KBBqFhz M 0D?=zTc]͚5///IÊJL7"007oXۦMDFFSNuGDr"@tt4aaaWD1cX֥b̙Xx1rrrYYYaȐ! AJ$쐈 Êt+/_&Lرcacc#QwDdLVsC@@Ν;~ A$ꌈEY8p֭ӸF&ݺuӧ?zj]OOOtVѣ>caժU -*sss|v࠶v߾}hժ<==qm $"C0Ν;ѧO{e˖B.]dݻ:u*~ϱG`` QT) ;$"C2nݺ6mh\*o߾N$yz*&Lm۶i^:N/uGD@XegggΜQ>fmmfΝ?~|w!nݺ5xQ1)pjƌB 8{,.\Ĝ9sP~},]T"My;wK,A*U֝>};w%쐈Jɓ'?]":$ڶm&Yfb߾}$={&L"J*yamm-|}}Ç22rrrD˖-|G*HP+WU|nݒ yJNN077Zʕ˗ntDVʖ-+ܹD``)bgg'f̘!^x_ܹs{ SXnP(n B#Q||/"o$!!A_Ȗ-[t غuhذaնm[qa}KDZ!?~|SvܩwqqqZȴdggŋ ''BCC$$$e" {{|/򐐐bo0++K̛7O-[V &gϞiW SS1qDaggID&|ӷo߮Xtiϰ+l"Jh׮ \pA\9r+WDժUƻRؠ{BJJ .].77'N%K`iiVZRn7mڔ>}\r%pʕb ÇWyLŊŒ%KDnn%Ӓ%[QBN !.ʕ+E(-Z$rrr>SԮѺukqqI" @u$ "(^-Zǎy`T\fffK'{wdzn߾-rttaaa"##C-[033S KK|/bsssW_GiǏ1c[E#::Zdggk}\2=ǎoW 2BP_%7o^E\|yիWE=Ty4h@رCci߄sզMq}KDBMX !DFF 7"SNҥKZoFP5k֨] Sܾ}[QQQraRVy.\Љ?~HOOzSiii_ePۋPMZ*Ǝ+9 ȀVBdUSU&V\CW^*<֭[>&0 X*ݻwEܽ{wq4+j֬rܾ}DKСC7$ "Za? 4PyhG<}T}ϟiӦ [[[h|||@.iBnݺAd VB 1m4\VZUgE>}TqԨQC\Rciѱ۷/'aP*O||֭pΝŋgڿ|u&._qB'aXYYÇe")qX ɒ%K m8秓Cbƌ*idcc#&Nيd^DZC1l0 VZUO:94xM|Yذa$-[rVyΜ9#ڵkܩS'q] ++7nrܮ]Bf2My0j׮IDIX !DnnXrTRO}T ++ZXXaÆ{B̙3Eҥ9 H,5k;߼ySoe˖Æ aaaQF*k͛uOnnXlVZնm[q!}LuFVBZo*o`ii)DZZN>p@~w@{FŊŝ;wtSzz>}$ 29FVyݻ'UVu2nnnXdU0T?Xvm}]v_rYUC=ߵkWqe/U=k,e}o:… w$ 2 +!^VyhJ?^<{L'c'$$?8ߪÇWs޽|*qqq:LÎ;D&M8 dMvaݻ>Syhzb: &M999O?C:% tRQjUN YmX9xC]t.]K_}ŋEXXXnGҷo_Da%D}||t6kP[n n߾-i$_>|x0x;2&Vy޽+\rwޒOwѧO"M nH% <nnn*_odקdggyڵM?P$ 2&VB (mmmŌ3${|Djj%ӓ#,Y"TIdtL6ܹsGxyy|֫WOܹS=5*߸_~$ӕIdtL>l߾]8;;x ///~6"ycZҵd۳W00%##CL6Mڪ<֯_oƍ6]|Yݛ0Ƞ1TݻwWm߾Ζm9aaa:H]8 aO?d S:EI$$$۫+UyV $;;[|rʜAaUTڮ];qu7}|cG'*4,J*Uhhv$$U&A}L4Iddd|clܸQcURRQQh{֭[ѰaCuO<ѰaC_B $93|6IVVTǏ+ʕ+u2^rr2\]]sN<-[d>&MSNs a$7ӧO&App0^1!dggJژm۶ŪUs*U7|Skc wooo<|.]R{իAjj*ڴi , ڵkYYY NNNRJ+UJ*)?X"lll4no;veʕ+VZ'"m:s ~uƘ1c }aX7V^)S&_xYϟGDDD 6o ,0!ԩٳgfffuGƊaUD8~8ك+W >>x^9pOZ%K0}thm۶-"##ѡC#cİ*Bd$%%!))I۷޽{:Foĉ]"mJKKٳ]v={6\\\$ꎌ J/_TǏS'OmTRGѹsgxyyZO}6&MYWꫯ0eTPA1H23 #((92h +"ܞ={0n8\tIc]͚5///N0q +"ҋl`ƌxZN Uzz:"##^$=z`޼ypss;2 +"2ɘ5k~( u:t(f̘*UH!Ê ӧhѣ2eH Ê Ҟ={0vX\|Yc]JQFRHj +"2X1eO} HЙ4VDDFرcDZc4 xgccwww>|+WD5eggcɒ%hذ!;JإqϊHx ,@hh(={QQQݻDiÊݹs3fe ݃ѣϟFIԝv0dbѢE=ztuApp\T̰""2r٘;w.L"\1a;Ű""2b/^Ο?_mԫWaaabgـDDF(77hӦMR Μ9BׯchӦm%&&>@pq]^,ܳ""22ׯ_qȑߛ3gƏ_}!$$maРA={6֭K{VDDFB͛7WTT֭ۇÇW^LjEFǏkbXwwꫯB Ӿ}{l߾GUl(ԫWH,*##'O/}CDU7oFӦMcǎBk˔)Smȑ#X~}=5jX̑џz1 ЪU+=wGDT|;v,-[Vyk*33 .Dhhhڴipt()Gٳ'ѽ{w""*saРA~kQTbYfaŅ^",, M6-XKٽ{7z7|v_^Gll,:tAW\*T@tt4._jݾ};ZhdVyN:lٲH!"җH|GxzpqqMpAh) Z 4@@@=zd}Pmb֬Yٳ""z}iii(W E[[[$ڵk1i$kiDĉxѹsg:tH?f͚nE | qƓ'Ocٲeʉo`aԩzSN""|ᇈ̙3amm?oaa[[["!!_5,--&''/DÆ zjQa5`deeΝ;PjUu;wD۶m{… wIDLK*TT -ŋѿF&M~ބ0rʏ-[2d033S3?W^oDDJvvU~333{?EV_&M/" k#=ƍ|X|9ك B 9nܸ!EDD\۶Tҥ N<իW7X{E 8ZoZ6Pzu֭._իWaÆ*krssrJbȑHNNeDD\|ʯ۶mD :T9#}*@?3aمq9{2dHNPB~>77W]Vi}޽{:^ >t!P~TRz=x@5JXYYzh0 @|m6֭ZQ(~ڵ?TRLJED:פI{ʚ7nÇ qNjAXNNN",,L<\dVM4)6w%6m6mx"W=|׮]XE1tP{=[.4*U$BCCǏ lCaծ]m7;;[̝;W.]Z܊+si7|3f)1B!֬Y#ԩShh988|; nݺie jժ%~Gqt]xQyHIIwKZ)/^,W^jڵŋ2noo8;;СCXp!ʗ/Ɛ!CЬY3ZLSXXrĉQbE=w=ꫯ(TTIm[ŋ򝺮ͅ---1j(\v _5^| @qA@DƍX~=VZsGagg???\~f͂ʺd?^a *TEڵkjssQt}NDTd`mʔ)ɓ'ƍ.p2eʠaÆ ]6-[8x{{k?@-兛7o'"2~oƏ??c=w$r!$$Xb͛#&&b Izy&°l2 [YYaȐ!1cT"IoDd< |ڻw/u߆ N: Xd \\\0m4I#+W`{A +-jԨ֯_ .O>j1sLԭ[x]! Fnn.,--1{l}cpV:m۶ajT+W,ٽ^h8qByˈ#4o*نzRիΞ= Wh}pssÆ  mҤIBL22e1H +M|-ϟ_~eʔX{Uxzzcǎ8tD>ܹ**W a!Yۀp5 ;r:uꄾ}-"B`ҤI7xzp6yJ5j`…z*߿+WNmkdl8{, 44vvvzp1|@BBk* YŃ$t!++Ky~UVOܑamXa@up:}4ڴi.++ ~-֭ <}T.H/^D@xxg7Tcl͛7ѣG1w\?pqq󑙙)aD O,aD:&ML888`nh0@ڵb \t ^^^9r;vDϞ=qy $œ3=wd|dVV9wygΜAll,իѣG?~<IG||<`Μ9Fw!1S +;h \r111Rd1M4 $<{ }Gz81d ÇGbb"࠶6$% dV~:accԩz쉋/J%%''+/6l7n玌lTbŊ C||<X={мysx{{Ν;vI$O'Nċ/PtiL6M5Ubbb FKP`pqqAPP##::e˖U[{M|ghڴ)i @faE/_*^|С9"aDaɒ%|2 ""k /R 0|\x}X'$Ȱc̙޽{gϞzH>VT+n݊͛7Zjjذa7n1cvIdxp=XXX <<\ȊlÊKn|2{=uXp!1c K!HNNƼyC;i舍7bȑhڴ)֦cW/^l ;%ү)S(/1cۑ}Ο?'O`ʕhԨcԨQhԨbcc!["_Xj`Z;RJ/^ʕ+Qreob߾}vI$ &@PZjw;$۰"2777fOFvI{۷oݻf:"۰➕4ʖ-h9skhׯK!b„ MbzHdV$f͚È)tw???<|P.ktWwtJFaūƥgnnÇ͛L̛7uAPP={&aD%G^;#y;:i5k׮aڴiLOOGxx8\]]dH)QEFFݻ9sݎ6xJʖ-ӧ#)) aaaCΝ;1bܰaNw'vDFF &M#mX(S  &h-OOOoK:u*?{{{_7nAFFVmdVܳ2<+VDxx81rH;v :uB+X/bŊ^`Qӄ׵n:-[ΨQxV$*U˗j֭h֬$ $Rm„ EժUmGꫯ_pmX_>6n܈GSNjrss?A Ǐ%ڵ ;v̘1K;v5o3lÊ{Vƣ]v8pn݊ƍ9s쌈|R.b777 :T'\ڏ{A-0bܽ{W.ILgϞNw޻w~t,c#۰"y]6bbbp Cm]NN,Ycڴi\(X|9oN۹s>}t,c#۰➕nwƮ]ЪU+u9s&իE!;;[."''NNN X'Nɓ'...[N36 +2j={ĩSn:ԫWOm݃0zh4j\( w^ӧL2%^rr2f̘;N:hժ4i޽{?D^݈ ȥ >~}F*TPG6mľ}2\ѢE @bo˗"00PX[[ +++1sLS!:t(ܺu~ِmXm޼Y߭<~X BCwϟwd`V\|΃D֭$N:U… 666"==$8::"** W.vhѢ۷oK L<ХKb_#tOnݺ@]&M]Ѿ}{1U +2m.]7|ZmBUРA[Lϼy󐔔333U+''z*WK5P(]U1HV֭[0xǎ;w.ʗ/g_|(8;;#<<73A<@xx8O>Q'Taaaؿr;ڛ7o{1qȒRwj˖-n$~Ѹqυ+!īرcujԨ!-[YJ֭[F|| RRR4\ժUB(ָr'=+&޽{B׮]UUwU\]|y̛7ָFrr2 4k ۶mYdtR/jժU턆"++ 0rHTXQcO?{<߮Ӳ8tegg狲ejCZ~m\xQ{e:uǎ7$)_'ɓbmٳgTRY}wX aff|-_X}f͚0ѣGnѣK.nLxxx8 ~Kʟ7o7,0=z*GS À$OIIIFnpB6mrZ?wָ|6mʕ !1bDu&Ug+GS ۰nff=B0 eeeaĉ8w\SvRtiL>5j^~1||7#Óٳg<==Ѷmm+ %%@̈́ p9ݻIIIիqVde˖ކC1Qre,\W\aN>=zW^EBқ9s&>} |KsW޵|y~W癙>|8~7ݻUVٳgwwwf'N(q/r$۰a舝;wP^Ŋaii^~z8qC7;wD˖-퍿[P\v 111QFiFʕ˷EahҤ Ο?Ç+쁁K'[z8ꮳڴi[#-spqq)҅pqq۷/'>|(I_/:Ru4iW=???^aEFjzjݺdUVGGGG1{l wAܹs턄1`Qn].L"n߾O4mTxzz#Gh9bXHHHEnݺI˗/ܹstի~ UvIDATJHP7|Su-Chٳ/_T~meeq!ڲeJV>6667n_I&TRjk|hڴ)~7 4]֭ɓ'g.$-ن˕+W[lѣGѨQ#?ءHLLĈ#4Nr {=tǎKӒI&xɠAL|'xWAsNm۶ kUVK.CtÇ㭷ނ%4,XnDDDVFaE/((Hy=tQ2e`ӦM5kVÂM6Wu4h7رcܹ_~nnn9r$ՒT:#zm>iVR&XlܸQ߭lݺUykkkcwnnnVZž'~wѴiB'aۋɓ'Oe뫼e̅ ljÆ nJ(11Q8:: B%+W,tJ*sZ1$$$(o3vx ӧO1`>X`oe˖ի8ȑ#h߾=}Iإt&NL1cPL=wD°"ImٲݺuÃ`ggX=ZmzaժUt>#Rlق&M`s玄]DZaЩS'eƍ-ׯy)lH~W書z*W ڵK}fff6l^>Hc͛7駟u-))IMиqc(/_k׮)k>S{$ ;-K{V'''GibLLۢٵkh޼y{YDϞ=ř3gگ\]]!WdK"JJJ;wV;TXQnCPXRh`ADinn^` J.-y$ `!͛7Yf8pM68wtƨ333 4/_ƢEPJ 6jcǎÇ%P(EulÊ 9T.s3f:t5jswk$&&"44jk0|8;;#44Tr={Z Q7O +* .M6-[7nķ~ =wGEeooI&ƍ8q"֦apqqҥK^7 ,, 7邌ÊEP ::m۶ŕ+W[ٳgy+W$&&b̘1V[{ >M4-[tOq m7774LI: +ҝtƍ˗/aff>|u_{UY(()T7 $MD&fbD?BЌh"E$G?Ȳg~~3³3@xLz쉔TUU!""B5+++cԨQse d\|Y`D[VL 0tPzo~"۷!!!Zosڪ-%,--WWWdamY]fXh?OF``X{4hpij/ӦMk^|#>y3!ڲÀ܌D  )!!.^Ni5͛7a>Z`8qWEEٓp\AAؐT*󍍍ԯ_?z\Pљ]~"##ܼ #6mYYF4j('Nl}6ӄ J%-͘1ɓ'ɣMUUкu봎OLLT\K.TWWޱYpY2eJeffF3gΤ˗/ і XBeYssvʕ+Lo'Bkkk:u*ݻ%ijj"eNWWWG=JeXk_%J)66ݻ'td -KlUUpTPP@˗/'H$jBCCiF˳|r̩:-7|p@.]RiW_}=zΩYGP(&wwK[ndG.XD[Veiҥ$J5GNNN~LW^t .]wϞ=i޼yC/s JeƆ߿Ӳf"r1==SN.SZZիrqq}|V-kі655L&]8""B Νt5k_$ вeѣܬMЮ"##Ue:/{|;vLMP`֭pssL&3QUVVn޼˗/C&|'NS2_uu됛 ҥ Ξ=={vZDʌ[;w}$ Xx1p!@vfWmۀ̞=[<m1~xc7mڤr.[||<4i=z(44Ν;ZڬƎߌɓ'SUUqEGe5yd=|C&Lz?~gOSybbbToUP(sj5++KaWkaYYYѲet =mY-YDy&d2V{Ql)88X=hŊIW}*_"V٦ cP((++ū8~w㊂h˪57__Ν5kСC ͜9SωMBm۶ ;Cx):"⽰3r^zAŋHHBDW[FݺuS{^&a…mzj!$$M#nBRR~7tGFXXx8'3fJ믿Ee 1Q=zذajjj^'vT*:cALL vJfD[V&3aֈFuu51}t7˪ ,^ c9$t'=+.+.+cFˊ1ƘmY іY1ƘxpY13z\V1ƌc1ecqY13z\V1ƌhˊϳb1mYchˊcL<c=іd1mYcc1'ڲÀ1&-+޳b1b1fD[V|1Ce{V1&-+޳b1mYchJ"1ƘcLOD[VBG`1'-++++#0.+cFOeeoo/tcz"ڲrpp:c1=mYuU1De$tcz"ʲcLODYV<1DDe5g#0#  Ø1c%p*cL 1#IENDB`fluids-0.1.78/docs/fittings/contraction_sharp.png0000644000175000017500000010411113632560624020643 0ustar kurtkurtPNG  IHDRrBsBIT|d IDATxy|SU'MMWZB[Rvl:"8#;2諣l, B)mCnLfm4ɇsiMsϕ !$g޽{bҥ.d DD$Uo,X(,,D\\"""r,W@DD*?綶6رÅ9C IVIIG"""a$""ɪ2_\\J!$~ii*!""r@""z .yH 755"""a$""]T 0d'!$!!$I!2%"")`$ɓdd.477;m_{߷Ve#Q|?&r@ꒉ'֓&Mru9dP݌9SNŚ5kPYY} .qElܸ_ѷo_CCҤ;d2xxx 111:u*^~eTUU^dX" Ο?8PRR"DGG鿂5s#i Jr77x#fΜ( 2DFFeϰyfٳ xرcv{3gtREYuÞ@G}V[ngφVc<dFs[[vލ‹/TO`ܹsXf :ݻ;[!2Fwollę3g#++ 馛i&W{f8v= !233lW% ;Ld zǎn7pߥ}T*tZ~ -[`8xU7=<> .ą :jobذaCpp0Z|j[ѝjo#33>>> p 2d鉐L0[l1Vv;h@!~m=1c}~6cРAABB^}U~WDVD6x=sXxm[[[G}$Z)DHHꪫիE}}}Bn:1i$&Dddo./n-rP*ӧT<33S<… &6v555իW럗&Mk׮/"nv+Edd[ř3gL>1m-33S,[L:uˍcg}V :۵-ɚm۶ /7X /MJJ*`[nŪi[5ΤIg;c-sXs5w9Nu߁jZV @c hjj޽{qW35md2r-fڋ̙3qu!==AAAE^^y| 6lםA1zhdggcȐ!x1~x… ؽ{7{9`b!99yyySbΝx饗ܗzi&kltuvЫ;v+x`ݗ_~<j|7ڨ5/((jZ"\> u]x;=|r@̛7co  iȆNUUkB{1chkk3믿.ٳg,oѦaej}ZGjfUV "--MݮV 2Dk֬1?htۯJF^^D,\PL:U(+Lik7UW]%͛7V7eҤI6[w9x^1~}I7a2OOOבhll4/[5ՎNNN`ّ߭ߑF鴮F%*[lԩSM Mǹ Fã1/V{{{lk6;Zn ͖Q4.YmNss]߰T*Xl馛Dzzw޺|;v_|uO]o~=ڪ޳~wڮ߳ێΕW^)+B|'㢬L455㺞N}՚זV ;vtغӟU* 44Ԫ}ٺ>pi,=/m'஻5 7tЯ_?#$$9;-88z߿罵?J%,YiFAMM\zc7v^WV[=eMMMwX5\}`W]^QQQ9s&nF7r]?==l|شi^[bbt\9{msiG\%P*:^?yQ(T*ku//F_+V'Njj*݋-[4:#Gmf:xxxG:3|pܹ6m£>j2o$r:WPpicp. g,x0 #lox'mnǚMVRO[{m#k3n111b޼y/---Fcۚ+.]*V'tjllشi4 \.mf_-K";;[Ԉq b 1|pW/~m_|7n\5َNbb /_.jjjF7EGĂ DMM~*rJ젫VekQdڵkq7Z\ĺutC/>SgB1n8@|Voc6ӝnjs薛&Lƍn bĉVd:Dt'PƊ {Z!}].vw(X[S*?/d2UPioږv?g!x饗n<~a4ݜ9sL:wN`$g_YDڟt#%%dڅ Č3Bt}*ӧ,3upuD "???vnk+W *J 4HVئ5%!*11Q<#&Sjݻ~g#@r[o߾b„ 1!ؿ[EwسgMMMHII>>>BT?믿V_ث6+___1`*AP*bԨQfjŚ5kĈ##G֭3zb$g_U\\,d2 4:UGBPLXxCC!C͛7 .F#?.yd0]Y_KhcccŊ+EMM .ԇf{fDVV8x𠨯jZ[n1ֳѣG b֬Y… &alF& 6r"Ć N2#yxxX NIIIbɒ%ȑ#מ={̎9",YbUGEDDUFf [ ^|E|lQhhh,~7GSXXhrjL&nV}x5ٳbСfSFF>=&&&z˾} MII1Ba}ق,]ۭf۶mt14x뭷ĤIDDDb„ 744>fOx{{81k,uVl~hSH̙3G \.+nVqXB 8PxzzvbM⭷W]u ",,L\uUbժUzmyn U tǐg}: g}VL5ȄDDD=wމ. 7x#GoN–-[PXXu9t_DDD0$>|#G촜oDDyX^]4HjH<<HDDw@""$T1$'DD$I DD$U|$""IpP""*@""$T$=DD$U DD$I $""; I{HHHDDRw@""$@""*IC IL&su DDD.HDDDDD$! DD$I $""b$"""""@""$T1IC 0$q8(IC 0$'!HBHHDDRHDDDDD$! DD$I $""b$"""""@""$T1IC 0$q8(IC 0$'!HBHHDDRHDDDDD$! DD$I $""b$"""""@"""""" a$""IpP""*@"""""" a$""IbO IC 0$'!HBHHDDRHDDDDD$! DDDDDDHDDDD$U DDDDDDHDDĞ@""*@"""""" ,,,tu DDdDW+'J@""g35%;~BR} t>} ""S)/CDDD]ѫ oӦMjݷz  uיiþ:ܰ1sc6Xkj`KR Я!ӧ>FDD 22R,66QQQa`L8b:t.<'W_".]j͘n/1x` >\`03S!ߝ[L/HDDR+\{]~c\ gΜAnn.N<'N //'OttpԨQW\A9Tƹs\MHDDR ߿[mO=z*"tĉ0//d8_,deeaĈ2###QVVjz@"""@pUWuk֬CED8|0:Ç#779J&L)S0ydZ`*. DD$E nf|ngرM$M4 ~gݻQ[[i8L:3fɓj{.S!PTBR9ޅ!!C=GBRAVQODDRĞ@"";P(xgϞ[o⊈cOԄ$!"" v>>>hnn6Gc<I{O<R1b(!"""{bOl҂8s &{x"""ّ|IJ[o '~KLDjkkÐ!Cp)(J9s!!!]n=c<I{L.{j5/_ޭ"""bO iii8y$pv-___455}ǣ1=DD 3jjjm'=[b"*! 6P(`ru<'Ad2~i@]]^y.eϲHh%&B`8t  ѧOڈ@UUx'"")bO d2ߏGyӦMuLSXX{ B67 DD.իW#33|M>>.!@"re˖'deeor۶mmĉHIIq@EDDW]]Lj5jkkj<_c}AhPWWwy`>}' 0׷}hC m݆>?}|}}]\{;}+ߏ#G]ÓO>٣ C D*.\Iҥ$oߎ@W澮|VpBkw|Fh4455lmmmjB@R]V[[ Z Z Jᶩ6m}"** P*.KNDD&a׮]4i;={`ԩ;MC̴)>܁Z-j5 s577^9a*ƂE{}0o5Ys]ߣ1~Ynn.rssͮ@xyy! @?qLHH(2dȞ@ HDVYY'L222W_o߾.lݺ7psR"T*\xuuu444* h4PT` b~fN]5=HD]pp0-ZKv-@ 'ĉq @||< 4ŕ3g 11Ѫu j5'!IQQQ\p/^ŋ ~nLպlP( &xz2 R ^r; ^^^&cp^>̱gZcc״{"msj5ZAq=ǺSRB????( (J@~hۭ@ x"f̘$,, ۷oǘ1c\\B <</^W\}9*"h48{,QRRϣ%%%(++CYYJJJL]JP(aƖȵf?882 XK@/rڟuVu]Vo{aԨQׯJJ $"rرcn6|c>#\.-d2 6 }uy> 6C~UUU;O)<<}Ahh(J%J%BBBR!!!vzDbڵ6mh숲!ȍ?FLL ^y444`̙ŋ{Ç3۪3gފ,NaLdd$(DEE!,,Lt/<<`$l߾i_ҰZGpP 8z7|<~[noJ2nƍ[,!C8"jnn_X37#eG>>>GLL 맿EGGo߾gD;!0b/6o駟⦛nr@U]hC d?f͚ #g!&&ŕ\O8'!Gɓ'q)_ř3g,N典8o Dv_tԋt=zGd!zbp 8t <<ׯW3iZ'!{hmmEAA>>}Z5fLJJD#::_T9ѣ?wy[O+@ 466{Ż ұ?OOg/X˗/wbEJJJcǎE^^~FAs$MbccP=k.L2[m!;;ǜODD/y3-F /~!\]bi6rR2'NaرcpmT <)))HJJB||%''WM=C8z(T*:OLL4Nrr2omhC ,\֭/kvZׅ yyy&C?jjjxرcrsshnT*}KIIAtt*'"Ws׬hDDϟ2.8K/aܹ=j2gkkkR4:1cpTEPZZlѣF~~>Zm<==4 :iiiHKKC|| ']CT*|g/33N܉fLDcո꫱pB;wG_{>,BBB\]eff .Ǐ7yqVAjjgoС:t("""X9k'wMDDbҥx7 ŋq:ϻヒ;ÇsvT^NNqi&44Æ Czz:222dIDY!w}a .Kbܹpө qQU҂_999 %&&^FFy"rw  KDd]v@nn~Y||<-ZᄏWڊ@ygddѣ.Jj5?<8qG/bvvNd-;v,ÝX9If@ %"VKK ֬Ye˖D<22 ,ދ`V8F¡CΝwyDžnZaǎCNNn:t(222///'UNDdf@ %"Ucc#~m fϞcȑ.^Z_ŠzZ;v\r 0@.8r""kV`]_X"jnnᅬ^{ yyy 6 7+z׮]yݻYYY.ɓů\m۠V dĴi0e5 .:8z(zvu9NVQXX>y@"%%ًJDY!w}a v֭[… ȑ#1n8\y=z4BBB\Piwu~m>| &Ad 8qqqGTT<<<V?ѣGѣp~immŋQ]]/ (//Gee%*++QUUҦCCC1`}k85+0Z/,QO҂l=z fbbbXO>BDD֥V444@P[hkkJBuu>~n3(G\\xǣ zDDY!w}az:V3gԩS_q)>}(--E[[mzxx 44MTdhllĮ] ::YYY4emm-ЀjףuuuPըz-d2AOz;DDf@ %"rg---8.Lp׬hDDRQWWZM7VnnVHPO\y͔닠 AT"88X_wL"]CckVptkDDDDDD0IC 0IC 0IC 0IC 0IC 0I OOOFss3R:= nIDDD=_]]ZZZP(lnGBVk4( (JI$ N~W#  EPP<<<D̟?MMMf0\ve[RR>cx{{;:u aaa  E@@d21o<!LQTTc"$$rܠ;2̉ψɄqd"_ٮ]0c wzG /!!99Ν/ G}5Qds֮]ܷ~?6r w $&Oz / HDD$1'Oŋ;-ꩧpmYՓi۷z ɤiӦuZ6sL\hZ|=#"""7`pҤIVO:Ԅ+WnV,[I C dlѣڶ=_^E"""Fcp̘1Vob cܸqXn'!&@2I.FXXU>3(--pBGGDDDn~FFU۝;w< uV^^ɤVVm?`o҈t4!!7oh"2)I/ 111Vmsm!""7n#"""7RVVfp?666k׮uqn";b$:@kz~?;w琈zr 0O< wy#@2ྥO?ׯNj/ &82"""r7Ju[ZZp뭷"999C Ա'ܰB̛7]wyGFDDDn} 6ҥKQPPÇѥIC R ljj7ߌ_6Q' 4gؾ}Փmɤ*z}Qw4Y1g<:uJ#@2ྱ}vxw0tPgFDDDn}45{e]zYeIC TYYYT"(("vm?>nv'WGDDDBVC |w{n=zrܙIC ~8h^f̚5 xל]:~ > o߾,HɤA;ŋԩS_҈ȍBBB?bΜ9xGy)"'pus l?3_|˗߷ˬ]6mBvvv!""<{z)c]jG\\J%y!//[5f dRsu=EEE;w.z!L>.y;إ-"""yO 'p޽裏~zxx#F5kP\\cڵHKKO>---={6RRRl2짢ΝCNN]#""c F=܃ 6 ""K>cq)b֭HKKVŲe˰j*{<^!:w,Zظq#<=s:nxȅ <'IHHe0w\deeu3fX`?Ox׻U;QoHFسgVZ 6 ::nHDDԛg ?ܭv@PtZ z̙n탨7b$?{zzbxꩧ0e DDDDZ///,Zȡ;b$677cܸqxݰVMDDD=CMM端)};vSGNɨ=Æ 4k%z=3fp>O8ޝ7Uot[(-eBPZE6a.(ʎ3"ˆ:p 8,"N[hK[龤M/g6I$^&'gZry`̘19-a$ݻQH۽{7Zje8::`$""j4!_~x-r# 'Nlixf }AT*V!Hv,"""GYYn:[yO l $rrr0gf=%`k Qs%Jb "[bvW^y"#5l $f̘! lNωy1b,X`c]p6mӧ2Qs Qjf,-3lo<==EL^^^f?Naa!郥Kb„ f?f~=BdcB!b%DDDd.* &M!C`$QUVV Elْ%KPSSիW] c$Q Dl޽{~ڵK$g!O?EDD#v9d\+!"""[t),XHSNJRlՆׯ7@jj*r9.D+!"""[ &`Νhٲ%p=z{ݻO?icܾ}[ra SDOl(!Ps<0/^=z6mpW2͛7رcX`зo_B"""3g୷Bhh(UV!##C첬Zuu{x GddpÑ]b8x .]*?dȐ:5\.j={ ,@hh(UV1i> C޽G!==]Ҭ1d <wFUU^ 0OV>Hee%|M|Xz5ϟZƐ!C?j-߷o? x Bw;v,j檈^YgϞHHHرcѡC Te]RSS1o<̚5 F֭[/* EEEM ql5+=fggcĈHLL\رcxg玎˃9V/,՘?zBBB!5Ez聱cbܸq>*J,]+WĨQcǎ:… b e/2+KVYC`FF  ̙3ׯwB  'N4ꅥ !5ES>&LqdªWYYѣG~@ll,N:77:]v ]tZw^=RaYl!0''}AVVCA&ջ~IIV߇~((za aoM Z޽@bY})>HR<(HRӦMCBBrSIOOGdd$ ˱h"3_Y֭[C~~~פR)֬Y7xi'PfSl˖-BG<__@:/0F틽0e?""jLW^0aƏ6mژt aܹz'|nN: #+{.|Mšo߾M?fxQO?wիWc֭Z?t2 d9 ~DDD$H 0a:v(v9FKLLĎ;2dm/^ṃy>suñm6cƌhDDD$;Vs9:w.^sJs"##;rrr ˅9rdoNL:OaÄǧNœ9s}w/zj^Z\ i T*61 +o̘1xm6ɓxȢBCCoٳUЧOfh wСCZcܸqɓ'~Mxm۶hݺ5,X`qJ%ۇL0i' t|7֙2<<iiihժn޼ ///B;dcDDDDd]y$$$gϞb"[nSNiL^x=z@zz:vڅ3gbٲed_֭I&سgݶm&M͛7cڴi&;[ & PRR?GAyy90n8`|w4x%%%D~k׮@-L-%;;[_c%""""V[n޽{QVV5  ҹnee%֭[ :CٸT_~gΜS uh([ 6ݻ6mx4P-r[DDDDDnx7p|L:0%UVV EMZZ^uڵ,Жl,++מoB /իWk1HlX Y/߿?L"v)VfC˗ǵ''"""""yf:u ~إX- h R5/X3g^~e䠬 EEE(..Faa!T*ڴi'|R.&G=}4/_BuXp!:vhc?DDDDD$//zBfffIR\pM>f dȞ̚5 ǎh׮"##1zht$Ǵլ^X"""""2/[ 6;0 !Ȏ0@"""""";HDDDDDdGC a$"""""# DDDDDDv!Ȏ0@"""""";HDDDDDdGC a$"""""# DDDDDDv!Ȏ0@"""""";HDDDDDdGC a$"""""# DDDDDDv!Ȏ0@"""""";HDDDDDdGC a$"""""# DDDDDDv!Ȏ0@"""""";HDDDDDdGC a$"""""# DDDDDDv!Ȏ0@"""""";HDDDDDdG숃5UUUJJJP\\BJBQQ555F ZH$񁓓݅|||OOOӜ( 0QT{.233q=Çx877EEE())AUU%WWWxzz ~~~󃯯ǚVZ]򉈨jEX3DRg2"STHOOGrr2RRR۷oΆB0===BP*(..MUUZ.h۶-Zn6m ((AAAhӦ Znv! @h$""˰լ^X""kRUU .GRR\ VZK׷2///x{{d2rnBH,--B O~~sR٤Z0",,Li׮d2Κ z%"Snn.~g>}Oŋl@DDBCC~ڷo֭[ǂՋB8ݻwq}dggFNN5:::"88N8С:u.DD`Y!P[DDT*q8|0.^JUg=T]vE׮]`,(JZT*rrrp=ܻwOoFzz:q='Hо}{DDD ""ܹ3"##`3!"m KDdn ?#v܉r:߿?z)=zʑ2ׯ_,\RRLB(|qiiA ###uO%=լ^X""sP*駟c۷NsttSO=!C`Ə/͛bb1HOO͛7quyA8;;#**Jh֭v튶mZz""`Y!P[DD|ظq#ܹy1cjAAAx-vI۷_|"::Z+v~/ aY!P[DD/?Ǿ}Z\\\0tP6l\\\DiRSSXv-^u+^yyyB ~:qUܽ{W!!!uZ ###٥lf@=l5ZƁb ;wN뵨(̞=SLi6#v~嗘={6 !!v"#˅@W"99 n쌮]"66ALL٦ "25[ z%"2J¾}b $&& e2F^{  B1c6m EsN`zH$ 5լ^X""c!!!'u gϞ8H!ܹS'ARջM-t'utt`DjV`V/,0{l;vLX֣GSO=%be:u*l٢ EEE6==*--Err2q%$&&"99n4&&ݺuCtt4u놖-[Zr"e KDT*f,^X1k,HR+O.]pڵ:wWȔJ%n޼ /_4]``(~1@DujV`V/,deea8ylذa_ZZ ooo]׭[sPY\.իWq\p׮]Crrrd2#** ]tATTzH"jV`V/,Ν;+v⫯E: QPP |d>>>H$T*d2<==8::c4. 9^m...:[:}}},suuKcOlжm0i$DXQ7 PT;w.6l ,[|9}M.\0˺D۷7iyy9 PPP ڏKKK\R(**wh}M\.7N7778;;k-J:twwWvxCdd$Zj%;::ֹNHDd L;wx>ë*re{E3VBd憶m6z娪BII jjjPVVB TVVP((++CMM JJJRPTTA\!JRاmuaNjZgmNA Fm+닀tG߾}MRC S(ӟ$ -o'N2eLr  5&HR)&]AQPYGC_ӄ݆<8MPn& cȾ4P^^nкpoK]JKKQ]]mкjTM[Sooo",, ;w6<'PHDbqxԅkΝxE̶kw1x .XDDdZwm_ZZ'xBg0~gפ5[J´iӴ/reF@QP@"˘jkfO>ׯz]"`Ŋ&\b@DDu͟?۶mݻM/t7oR85bZ!l޼k׮-[`"W<0tK$,]THDdE~g̞=EyĎ;.)) 555fl݌3ƍCllY{aرD"W_}_|$V*(..uK nF{7k\.\.W6j ?~?"MC+Ƙ?LbS)S=X8:,ARa8z(`ʕxuҥKCNNj"c&"""C YªU7e_wݖ-["??RQ3C ۥKB^z_u޽mZB"""jN80 jjj/CP۶mKKKqy+"TIDDD !"ѧ~*LAftԩ:999Gii#""fA`wP"2,txꩧp sv؁ &P!5GJD$9s栴NNNظqW\peDDDԜ;(>C,Xz}a 3im͑)mrttDvLP ,LTbmp_OKK3YmU}ppphDD_ ]@YY`ٲeoǖ[v-֬Y|TTThkG\dĉZ'%px=8Y<Bff&:w*N2xۨ(:&5 awP"" Xd +V0j[v%"""Sb$"2ׯc֭駟6j{@"""2%@""3[lJ%G-R(&C ݼyvcF)1QVK6j DDDdJ DDf;v F)1Ɋ+PSSDV@!L! 0j(ٳRT*!>@*6L,33ShLHH@tttVMQ@""[l d2/^,v9DDDDZL(-- [nL8"WDDDD!Ȅ>TWWC&3>L!DjN>:u""""LD3"#}]!"""҉!jΜ9&7)1+PSSJ$C Q%%% ڴic%LI構o#Gn݂IRY4;ODD-DDM~9rh"@""""ScKS]]]ƍ CJJ L~aK Q#}gqO>1KHȴ!&"]rrr \#F3۱h^;ODD-DD0{lraڵf= C ߿tbx""""scwP=Mjr PVVx>|쓹KoR<@=ဈ4r9p kΝC@@ُh^;ODDA P^^7n܀ k0i1P(0f믐JoлwoMȾ05@Raԩ½9ƏoHDDDHDTJW_};vYg*"""q""kT*1k,lڴ l2/*"""c$"zB/{,X \i0R^^1cw}|UC >FsA"`ʕX`e5#$''cʂL&Æ 0sL""""29JDvׯၽ{2QHDvKTbɒ%5jJKKѦM8q#G4;(A.ݹs/"~@wߡm۶"WFDDDd^l $"sAt]'NĩS.0(,,ٳ#//Ob(JDDDbwP" wsNWʚ!Ŗ@"j0zh5[YXr%֮]J@@@>s=ZꈈHDJee%6n܈˗#?? J1e^~~~"WhZJDDDb$f _5VZ%tAᣏ>B=Dz0M+,,g}k"//OX%K`"VGDDDd}&?_|v؁2ay~pB>,RŶAN*]E%1l2 ׯ_Gxx "~* |2qy={: Ag}4\]]Q^^njOOOj-?DDԜ%,Yj?ǏgfO.իHJJBbb"pʕ:5ЫW/'@\\-\uƖ{HDD-5 7z;T$t UYRDff&RSSTڵkxaIRO>B֭]SS5R di-?DDԜY--w}g?Fb$RUU #--M槪[hDGGk׮A.]f3 GGGKyl $""{XK=0d|o#HpB3VEdܹsYYYsܹldff"==w՚>>>>Gdd$]"((gA`Kkq`""7 GX3VDGzz:ݻW[tmk ХKiʱ%;NDD!1qqq8p N8w]Tŋ(jʐ|<|Pxlܽ{YYYFIIQvwwGpp0ڵk' <<;vΊ,!HDD!P9sǎhDVAVָJEEEAQQQZZJTTThT*QPPyrqqA`` ڶmڷoۣm۶3@V!HDDYra`*aE^zaa!***PPP[n=eeeP(խ  C( nHJaTOӄ=~ޚp*J 9?sJGVкuk" AAAhժ@Z>.'HDD">|{!;;999χB@iiryk}AT*G%<<< oooEhٲ%ZhVZ /tl $""{czjXBoKpss |||WWWᱛwwwxyy]xÞL&cl:@""7f sAll0j{PRR"tӴv*..RbswwS#Jݤ}xzzè annnpvvw?vrr;]&5;88LVXD!YC+ dC4Yr9jjjp]dddرcصkV-Z`ǎpuu @Q[0BDdj'HDDFVba>CB6M<[l*"' 41/$$ZO#5gs=5 DjwaK QzzurqPQQ>|hJ֭[]cK GDdz%v 6-DDdoHDdгgO_Rl[_>""|rpuuǖ@""7 DD67`p1!DDdoSLp}"77Y gggcԨQ&mAH$! R@ee%***6$jѣNԠĨmP^^n6QTTJeZ5wlWS0fL]ꛓPM;4)汷7<==///MAuu Z%(5g Y"""b&""{>0DDd #""HDD]spDDd_Ȯ999]E1]ӌJ D}]w޽H$޽*3k׮aܹ'\\\S<""0]clS]w˖-iӦ$PXt)~zUUUHKKÖ-[sϡGM"X(\=c$""4&M#~<|?/+4?K,Zٳq9.\{///\tIRb$""{C Auu5o^z۷oGuu5  VtoƢE[n_|^z ѣVX[na"WKDC 56{.u=~8F-[ !!!x7[ayy9/_Ν;?cƌA.]вeK888޽{: 6ƍĉ]ZV}<<<͛7܇Yfǻ`hcUIDATjT*D= //FO* }wWWW`ذa8tQQ#ĉ~8 BݲeK5+W꼞W+ a~XtI]XX(Ys۷9n}޴i׫W/5?h;VO>fΜYo͆gC: ҹӄ ӐLu}xl $""Ɩ}@Ͳ' ɓ'C۶msN梼ϟǀp \ξJKKuV!// kYWV ? nK/Xj痞ٳ={yfxxx`ƍANN6lwww|Wounkyj[{ŋn:Dd>GU[oݏ =.C ٵyO>ȱR)\[PI$ܦOOOd2xyy ǯ/___]vh߾=qf"11?#D~~>u_???rEm-Z@AA222ZFFвeKQUs^7}j蜌=𯳈9T*`޽nԩ?>l"1ծR::'%%!>>^o4Dpp0r9.^g}튊< kݺ5Р}wMe9'M:. $""+v V8vXߢطoι5-rb fs"''O>$v܉d7v].\8pƍ]" QBΚ5 vjp \aÆ 5:޽κilFMaM+1}v OP_m>DdȚ9sO>ZM/ip~M=i$uppY쬎Pk'O Jz͚5p:<<\[o2N>:u:<<\vuuU_z%ѣG묯R_~W^j777w꯿ZR :}UUU?uΝ...jooo0>>ivvvV{{{ \ׇ #56f͚5kĮ]CSIENDB`fluids-0.1.78/docs/fluids.saltation.rst0000644000175000017500000000025113632560624016603 0ustar kurtkurtPneumatic conveying (fluids.saltation) ====================================== .. automodule:: fluids.saltation :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.jet_pump.rst0000644000175000017500000000033013632560624016426 0ustar kurtkurtJet Pump (ejector/eductor) Sizing and Rating (fluids.jet_pump) ============================================================== .. automodule:: fluids.jet_pump :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.pump.rst0000644000175000017500000000023613632560624015571 0ustar kurtkurtPump and motor sizing (fluids.pump) =================================== .. automodule:: fluids.pump :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.flow_meter.rst0000644000175000017500000000041213632560624016747 0ustar kurtkurtOrifice plates, flow nozzles, Venturi tubes, cone and wedge meters (fluids.flow_meter) ====================================================================================== .. automodule:: fluids.flow_meter :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/examples.rst0000644000175000017500000000233613632560624015144 0ustar kurtkurtSolved fluids mechanics problems ================================ .. toctree:: Examples/Crane TP 410 Solved Problems/7.1 Smooth Pipe (Plastic).ipynb Examples/Crane TP 410 Solved Problems/7.2 L, L over D and K from Kv for Conventional Type Valves.ipynb Examples/Crane TP 410 Solved Problems/7.3 L, L over D, K, and Kv for Conventional Type Valves.ipynb Examples/Crane TP 410 Solved Problems/7.4 Venturi Type Valves.ipynb Examples/Crane TP 410 Solved Problems/7.5 Lift Check Valves.ipynb Examples/Crane TP 410 Solved Problems/7.6 Reduced Port Ball Valve.ipynb Examples/Crane TP 410 Solved Problems/7.7 Laminar flow in Valves, Fittings, and Pipe - System from Example 7.6.ipynb Examples/Crane TP 410 Solved Problems/7.8 Laminar flow in Valves, Fittings, and Pipe - SAE oil through a pipe and globe valve.ipynb Examples/Crane TP 410 Solved Problems/7.10 Piping Systems - Steam.ipynb Examples/Crane TP 410 Solved Problems/7.11 Flat heating Coils - Water.ipynb Examples/Crane TP 410 Solved Problems/7.13 Flow given in English Units - Oil.ipynb Examples/Crane TP 410 Solved Problems/7.14 Bernoulli's Theorem-Water.ipynb Examples/Crane TP 410 Solved Problems/7.29 Orifice Flow Rate Calculation.ipynb fluids-0.1.78/docs/fluids.control_valve.rst0000644000175000017500000000031513632560624017463 0ustar kurtkurtControl valve sizing and rating (fluids.control_valve) ====================================================== .. automodule:: fluids.control_valve :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.geometry.rst0000644000175000017500000000027013632560624016441 0ustar kurtkurtTank and helical coil sizing (fluids.geometry) ============================================== .. automodule:: fluids.geometry :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/tutorial.rst0000644000175000017500000017113713632560624015177 0ustar kurtkurtfluids tutorial =============== Importing --------- Fluids can be imported as a standalone library, or all of its functions and classes may be imported with star imports: >>> import fluids # Good practice >>> from fluids import * # Bad practice but convenient All functions are available from either the main fluids module or the submodule; i.e. both fluids.friction_factor and fluids.friction.friction_factor are valid ways of accessing a function. Design philosophy ----------------- Like all libraries, this was developed to scratch my own itches. Since its public release it has been found useful by many others, from students across the world to practicing engineers at some of the world's largest companies. The bulk of this library's API is considered stable; enhancements to functions and classes will still happen, and default methods when using a generic correlation interface may change to newer and more accurate correlations as they are published and reviewed. To the extent possible, correlations are implemented depending on the highest level parameters. The friction_factor correlation does not accept pipe diameter, velocity, viscosity, density, and roughness - it accepts Reynolds number and relative roughness. This makes the API cleaner and encourages modular design. All functions are designed to accept inputs in base SI units. However, any set of consistent units given to a function will return a consistent result; for instance, a function calculating volume doesn't care if given an input in inches or meters; the output units will be the cube of those given to it. The user is directed to unit conversion libraries such as `pint `_ to perform unit conversions if they prefer not to work in SI units. The standard math library is used in all functions except where special functions from numpy or scipy are necessary. SciPy is used for root finding, interpolation, scientific constants, ode integration, and its many special mathematical functions not present in the standard math library. No other libraries will become required dependencies; anything else is optional. To allow use of numpy arrays with fluids, a `vectorized` module is implemented, which wraps all of the fluids functions with np.vectorize. Instead of importing from fluids, the user can import from fluids.vectorized: >>> from fluids.vectorized import * >>> friction_factor(Re=[100, 1000, 10000], eD=0) array([0.64 , 0.064 , 0.03088295]) It is possible to switch back and forth between the namespaces with a subsequent import: >>> from fluids import * Dimensionless numbers --------------------- More than 30 Dimensionless numbers are available in :py:mod:`fluids.core` : Calculation of :py:func:`~.Reynolds` and :py:func:`~.Prandtl` number for water flowing in a 0.01 m diameter pipe at 1.5 m/s: >>> fluids.core.Reynolds(D=0.01, rho=1000, V=1.5, mu=1E-3) 15000.0 >>> fluids.core.Prandtl(rho=1000, mu=1E-3, Cp=4200, k=0.6) 7.000000000000001 Where different parameters may be used with a dimensionless number, either a separate function is created for each or both sets of parameters are can be specified. For example, instead of specifying viscosity and density for the Reynolds number calculation, kinematic viscosity could have been used instead: >>> Reynolds(D=0.01, V=1.5, nu=1E-6) 15000.0 In the case of groups like the Fourier number, used in both heat and mass transfer, two separate functions are available, :py:func:`~.Fourier_heat` and :py:func:`~.Fourier_mass`. The heat transfer version supports specifying either the density, heat capacity, and thermal conductivity - or just the thermal diffusivity. There is no equivalent set of three parameters for the mass transfer version; it always requires mass diffusivity. >>> Fourier_heat(t=1.5, L=2, rho=1000., Cp=4000., k=0.6) 5.625e-08 >>> Fourier_heat(1.5, 2, alpha=1E-7) 3.75e-08 >>> Fourier_mass(t=1.5, L=2, D=1E-9) 3.7500000000000005e-10 Among the coded dimensionless numbers are :py:func:`~.Archimedes`, :py:func:`~.Bejan_L`, :py:func:`~.Bejan_p`, :py:func:`~.Biot`, :py:func:`~.Boiling`, :py:func:`~.Bond`, :py:func:`~.Capillary`, :py:func:`~.Cavitation`, :py:func:`~.Confinement`, :py:func:`~.Dean`, :py:func:`~.Drag`, :py:func:`~.Eckert`, :py:func:`~.Euler`, :py:func:`~.Fourier_heat`, :py:func:`~.Fourier_mass`, :py:func:`~.Froude_densimetric`, :py:func:`~.Froude`, :py:func:`~.Graetz_heat`, :py:func:`~.Grashof`, :py:func:`~.Hagen`, :py:func:`~.Jakob`, :py:func:`~.Knudsen`, :py:func:`~.Lewis`, :py:func:`~.Mach`, :py:func:`~.Nusselt`, :py:func:`~.Ohnesorge`, :py:func:`~.Peclet_heat`, :py:func:`~.Peclet_mass`, :py:func:`~.Power_number`, :py:func:`~.Prandtl`, :py:func:`~.Rayleigh`, :py:func:`~.Reynolds`, :py:func:`~.Schmidt`, :py:func:`~.Sherwood`, :py:func:`~.Stanton`, :py:func:`~.Stokes_number`, :py:func:`~.Strouhal`, :py:func:`~.Suratman`, :py:func:`~.Weber`, :py:func:`~.Morton`. Miscellaneous utilities ----------------------- More than just dimensionless groups are implemented in :py:mod:`fluids.core`. Converters between loss coefficient, L/D equivalent, length of pipe, and pressure drop are available. It is recommended to convert length/diameter equivalents and lengths of pipe at specified friction factors to loss coefficients using the :py:func:`~.K_from_L_equiv` and :py:func:`~.K_from_f` functions respectively. They can all be summed easily afterwards. >>> K_from_f(fd=0.018, L=100., D=.3) 6.0 >>> K_from_L_equiv(L_D=240, fd=0.02) 4.8 Either head loss or pressure drop can be calculated once the total loss coefficient K is known using :py:func:`~.head_from_K` or :py:func:`~.dP_from_K` respectively. Head loss does not require knowledge of the fluid's density, but pressure drop does. >>> head_from_K(K=(6+4.8), V=3) 4.955820795072732 >>> dP_from_K(K=(6+4.8), rho=1000, V=3) 48600.0 If a K value is known and desired to be converted to a L/D ratio or to an equivalent length of pipe, that calculation is available as well with :py:func:`~.L_from_K` or :py:func:`~.L_equiv_from_K` respectively: >>> L_from_K(K=6, fd=0.018, D=.3) 100.0 >>> L_equiv_from_K(3.6, fd=0.02) 180.0 Pressure and head are also convertible with the :py:func:`~.head_from_P` and :py:func:`~.P_from_head` functions: >>> head_from_P(P=98066.5, rho=1000) 10.000000000000002 >>> P_from_head(head=5., rho=800.) 39226.6 Also implemented in :py:mod:`fluids.core`. are the following: :py:func:`~.thermal_diffusivity`: >>> thermal_diffusivity(k=0.02, rho=1., Cp=1000.) 2e-05 Speed of sound in an ideal gas :py:func:`~.c_ideal_gas`: (requires temperature, isentropic exponent Cp/Cv): >>> c_ideal_gas(T=303, k=1.4, MW=28.96) 348.9820361755092 A converter between dynamic and kinematic viscosity :py:func:`~.nu_mu_converter`: >>> nu_mu_converter(rho=998., nu=1.0E-6) 0.000998 >>> nu_mu_converter(998., mu=0.000998) 1e-06 Calculation of :py:func:`~.gravity` on earth as a function of height and latitude (input in degrees and height in meters): >>> gravity(latitude=55, H=1E6) 6.729011976863571 Friction factors ---------------- Friction factor is easily calculable with :py:func:`~.friction_factor`. >>> epsilon = 1.5E-6 # m, clean steel >>> fluids.friction.friction_factor(Re=15000, eD=epsilon/0.01) 0.02808790938573186 The transition to laminar flow is implemented abruptly at Re=2040, one of the latest experimental results which is accurate to +/- 10. If the Reynolds number is in the laminar regime, the transition to a different correlation happens automatically and the well-known solution fd = 64/Re is given. >>> fluids.friction.friction_factor(Re=150) 0.4266666666666667 Friction factor in curved pipes in available as :py:func:`~.friction_factor_curved`. The curved friction factor is applicable for helices and coils, and to a lesser extent curved bends. >>> friction_factor_curved(Re=15000, Di=.01, Dc=2.5, roughness=1.5E-6) 0.02984622907277626 The critical Reynolds number for curved pipes is increased compared to straight pipe flow, and is a function of the curvature of the pipe. The preferred method to calculate the transition (used by default for the automatic regime transition) is the method of Schmidt (1967) :py:func:`~.helical_transition_Re_Schmidt`. >>> helical_transition_Re_Schmidt(Di=.01, Dc=2.5) 3948.7442097768603 Although roughness is a hard value to know without measuring it for a pipe, several hundred pipe conditions have had their roughness values measured in the literature, and they can be searched through using fuzzy matching and the functions :py:func:`~.nearest_material_roughness` and :py:func:`~.material_roughness`. >>> nearest_material_roughness('Used water piping', clean=False) 'Seamless steel tubes, Used water piping' >>> material_roughness('Seamless steel tubes, Used water piping') 0.0015 The material_roughness function can also be used directly, but in that case there is no feedback about the material which was found. >>> material_roughness('glass') 1e-05 As fuzzy string matching is a pretty terrible solution, it is encouraged to find the desired string in the `actual source code of fluids `_. There is one more way of obtaining the roughness of a clean pipe, developed by Farshad and Rieke (2006) :py:func:`~.roughness_Farshad`. It has been established that in commercial pipe, the larger the diameter, the larger the roughness. >>> roughness_Farshad('Carbon steel, bare', D=0.05) 3.529128126365038e-05 Only the following types of clean, new pipe have data available: * 'Plastic coated' * 'Carbon steel, honed bare' * 'Cr13, electropolished bare' * 'Cement lining' * 'Carbon steel, bare' * 'Fiberglass lining' * 'Cr13, bare' There is also a term called `Transmission factor`, used in many pipeline applications. It is effectively a variant on friction factor. They can be inter-converted with the :py:func:`~.transmission_factor` function. >>> transmission_factor(fd=0.0185) # calculate transmission factor 14.704292441876154 >>> transmission_factor(F=20) # calculate Darcy friction factor 0.01 Pipe schedules -------------- ASME/ANSI pipe tables from B36.10M-2004 and B36-19M-2004 are implemented in fluids.piping. Piping can be looked up based on nominal pipe size, outer diameter, or inner diameter with the :py:func:`~.nearest_pipe` function. >>> nearest_pipe(NPS=2) # returns NPS, inside diameter, outer diameter, wall thickness (2, 0.05248, 0.0603, 0.00391) When looking up by actual diameter, the nearest pipe as large or larger then requested is returned: >>> NPS, Di, Do, t = nearest_pipe(Di=0.5) >>> Di 0.57504 >>> nearest_pipe(Do=0.5) (20, 0.47781999999999997, 0.508, 0.01509) By default, the pipe schedule used for the lookup is schedule 40. Other schedules that are available are: '5', '10', '20', '30', '40', '60', '80', '100', '120', '140', '160', 'STD', 'XS', 'XXS', '5S', '10S', '40S', '80S'. >>> nearest_pipe(Do=0.5, schedule='40S') (20, 0.48894, 0.508, 0.009529999999999999) >>> nearest_pipe(Do=0.5, schedule='80') (20, 0.45562, 0.508, 0.02619) If a diameter which is larger than any pipe in the schedule is input, an exception is raised: >>> nearest_pipe(Do=1) Traceback (most recent call last): File "", line 1, in File "fluids/piping.py", line 276, in nearest_pipe raise ValueError('Pipe input is larger than max of selected schedule') ValueError: Pipe input is larger than max of selected schedule Wire gauges ----------- The construction of mechanical systems often uses the "gauge" systems, a variety of old imperial conversions between plate or wire thickness and a dimensionless number. Conversion from and to the gauge system is done by the :py:func:`~.gauge_from_t` and :py:func:`~.t_from_gauge` functions. Looking up the gauge from a wire of known diameter approximately 1.2 mm: >>> gauge_from_t(.0012) 18 The reverse conversion: >>> t_from_gauge(18) 0.001245 Other schedules are also supported: * Birmingham Wire Gauge (BWG) ranges from 0.2 (0.5 inch) to 36 (0.004 inch). * American Wire Gauge (AWG) ranges from 0.167 (0.58 inch) to 51 (0.00099 inch). These are used for electrical wires. * Steel Wire Gauge (SWG) ranges from 0.143 (0.49 inch) to 51 (0.0044 inch). Also called Washburn & Moen wire gauge, American Steel gauge, Wire Co. gauge, and Roebling wire gauge. * Music Wire Gauge (MWG) ranges from 0.167 (0.004 inch) to 46 (0.18 inch). Also called Piano Wire Gauge. * British Standard Wire Gage (BSWG) ranges from 0.143 (0.5 inch) to 51 (0.001 inch). Also called Imperial Wire Gage (IWG). * Stub's Steel Wire Gage (SSWG) ranges from 1 (0.227 inch) to 80 (0.013 inch) >>> t_from_gauge(18, schedule='AWG') 0.00102362 Tank geometry ------------- Sizing of vessels and storage tanks is implemented in an object-oriented way as :py:class:`~.TANK` in :py:mod:`fluids.geometry`. All results use the exact equations; all are documented in the many functions in :py:mod:`fluids.geometry`. >>> T1 = TANK(D=1.2, L=4, horizontal=False) >>> T1.V_total, T1.A # Total volume of the tank and its surface area (4.523893421169302, 17.34159144781566) By default, tanks are cylinders without heads. Tank heads can be specified to be conical, ellipsoidal, torispherical, guppy, or spherical. The heads can be specified independently. The diameter and length are not required; the total volume desired can be specified along with the length to diameter ratio. >>> T1 = TANK(V=10, L_over_D=0.7, sideB='conical', horizontal=False) >>> T1.L, T1.D (1.7731788548899077, 2.5331126498427254) Conical, ellipsoidal, guppy and spherical heads are all governed only by one parameter, `a`, the distance the head extends out from the main tank body. Torispherical heads are governed by two parameters `k` and `f`. If these parameters are not provided, the distance the head extends out will be 25% of the size of the tank's diameter. For torispherical heads, the distance is similar but more complicated. >>> TANK(D=10., V=500, horizontal=False, sideA='ellipsoidal', sideB='ellipsoidal', sideA_a=1, sideB_a=1) Each TANK has __repr__ implemented, to describe the tank when printed. Torispherical tanks default to the ratios specified as ASME F&D. Other standard ratios can also be used; the documentation for :ref:`` lists their values. Here we implement DIN 28011's ratios. >>> TANK(D=0.01, V=0.25, horizontal=False, sideA='torispherical', sideB='torispherical') >>> DIN = TANK(L=3, D=5, horizontal=False, sideA='torispherical', sideB='torispherical', sideA_f=1, sideA_k=0.1, sideB_f=1, sideB_k=0.1) >>> print(DIN) Partial volume lookups are also useful. This is useful when the height of fluid in the tank is known, but not the volume. The reverse calculation is also implemented, and useful when doing dynamic simulation and to calculate the new height after a specified volume of liquid is removed. >>> DIN.h_max 4.937742251701451 >>> DIN.h_from_V(40) 2.3760173045849315 >>> DIN.V_from_h(4.1) 73.83841540117238 Surface areas of the heads and the main body are available as well as the total surface area of the tank. >>> DIN.A_sideA, DIN.A_sideB, DIN.A_lateral, DIN.A (24.7496775831724, 24.7496775831724, 47.12388980384689, 96.62324497019169) Miscellaneous geometry ---------------------- In addition to sizing all sorts of tanks, helical coils are supported and so are a number of other simple calculations. Sphericity is implemented as :py:func:`~.sphericity`, requiring a calculated surface area and volume. For a cube of side length 3, the surface area is 6*a^2=54 and volume a^3=27. Its sphericity is then: >>> sphericity(A=54, V=27) 0.8059959770082346 Aspect ratio of is implemented as :py:func:`~.aspect_ratio`; for example, a rectangle 0.2 m by 2 m: >>> aspect_ratio(.2, 2) 0.1 Circularity, a parameter used to characterize 2d images of particles, is implemented as :py:func:`~.circularity`. For a rectangle, one side length = 1, second side length = 100: >>> D1 = 1 >>> D2 = 100 >>> A = D1*D2 >>> P = 2*D1 + 2*D2 >>> circularity(A, P) 0.030796908671598795 Atmospheric properties ---------------------- Various main classes are available to model the atmosphere, of varying accuracy. They are the US Standard Atmosphere 1976 (:py:class:`~.ATMOSPHERE_1976`), a basic but very quick model; the NRLMSISE 00 model, substantially more powerful and accurate and still the standard to this day (:py:class:`~.ATMOSPHERE_NRLMSISE00`); and two models for wind speed only, Horizontal Wind Model 1993 (:py:func:`~.hwm93`) and Horizontal Wind Model 2014 (:py:func:`~.hwm14`). The two horizontal wind models are actually fortran codes, and are not compiled automatically on installation. Solar models are :py:func:`~.earthsun_distance`, :py:func:`~.solar_position`, :py:func:`~.sunrise_sunset` and :py:func:`~.solar_irradiation`. :py:class:`~.ATMOSPHERE_1976` is the simplest model, and very suitable for basic engineering purposes. It supports atmospheric temperature, density, and pressure as a function of elevation. Optionally, a local temperature difference from earth's average can be specified to correct the model to local conditions but this is only a crude approximation. Conditions 5 km into the air: >>> atm = ATMOSPHERE_1976(Z=5000) >>> atm.T, atm.P, atm.rho (255.67554322180348, 54048.28614576141, 0.7364284207799743) The standard also specifies simplistic formulas for calculating the thermal conductivity, viscosity, speed of sound, and gravity at a given elevation: >>> atm.g, atm.mu, atm.k, atm.v_sonic (9.791241076982665, 1.628248135362207e-05, 0.02273190295142526, 320.5455196704035) Those property routines are static methods, and can be used without instantiating an atmosphere object: >>> ATMOSPHERE_1976.gravity(Z=1E5) 9.505238763515356 >>> ATMOSPHERE_1976.sonic_velocity(T=300) 347.22080908230015 >>> ATMOSPHERE_1976.viscosity(T=400) 2.285266457680251e-05 >>> ATMOSPHERE_1976.thermal_conductivity(T=400) 0.033657148617592114 :py:class:`~.ATMOSPHERE_NRLMSISE00` is the recommended model, and calculates atmospheric density, temperature, and pressure as a function of height, latitude/longitude, day of year, and seconds since start of day. The model can also take into account solar and geomagnetic disturbances which effect the atmosphere at very high elevations if more parameters are provided. It is valid up to 1000 km. This model is somewhat slow; it is a Python port of the Fortran version, created by Joshua Milas. It does not support gravity profiles or transport properties, but does calculate the composition of the atmosphere (He, O, N2, O2, Ar, H2, N2 as constituents). 1000 m elevation, 45 degrees latitude and longitude, 150th day of year, 0 seconds in: >>> atm = ATMOSPHERE_NRLMSISE00(Z=1E3, latitude=45, longitude=45, day=150) >>> atm.T, atm.P, atm.rho (285.54408606237405, 90394.40851588511, 1.1019062026405517) The composition of the atmosphere is specified in terms of individual molecules/m^3: >>> atm.N2_density, atm.O2_density (1.7909954550444606e+25, 4.8047035072477747e+24) This model uses the ideal gas law to convert particle counts to mass density. Mole fractions of each species are available as well. >>> atm.components ['N2', 'O2', 'Ar', 'He', 'O', 'H', 'N'] >>> atm.zs [0.7811046347676225, 0.2095469403691101, 0.009343183088772914, 5.241774494627779e-06, 0.0, 0.0, 0.0] The horizontal wind models have almost the same API, and calculate wind speed and direction as a function of elevation, latitude, longitude, day of year and time of day. hwm93 can also take as an argument local geomagnetic conditions and solar activity, but this effect was found to be so negligible it was removed from future versions of the model such as hwm14. Calculation of wind velocity, meridional (m/sec Northward) and zonal (m/sec Eastward) for 1000 m elevation, 45 degrees latitude and longitude, 150th day of year, 0 seconds in, with both models: >>> hwm93(Z=1000, latitude=45, longitude=45, day=150) (-0.0038965975400060415, 3.8324742317199707) >>> hwm14(Z=1000, latitude=45, longitude=45, day=150) (-0.9920163154602051, 0.4105832874774933) These wind velocities are only historical normals; conditions may vary year to year. The solar radiation model is based around the Sun Position Algorithm (SPA) developed by NREL; it can calculate the position of the sun in the sky at any time for any place on Earth, and can calculate how far away the sun is from Earth. The python implementation used is a slightly modified version of the Python implementation written by Tony Lorenzo and released under the BSD 3-clause license. The algorithm is published with the excellent `pvlib `_ library for solar energy modelling applications. To determine the distance of earth and the sun, use the :py:func:`~.earthsun_distance` function which accepts a single datetime object and returns the distance in meters. >>> from datetime import datetime >>> earthsun_distance(datetime(2003, 10, 17, 13, 30, 30)) 149080606927.64243 To determine when the sun rises, sets, and is at solar noon, use the :py:func:`~.sunrise_sunset` function, which accepts a datetime instance, a latitude, and a longitude in degrees. Note the datetime for all solar calculations should be in the local time zone - but never in daylight savings time. >>> sunrise, sunset, transit = sunrise_sunset(datetime(2018, 4, 17, 13, ... 43, 5), 51.0486, -114.07) >>> sunrise datetime.datetime(2018, 4, 17, 6, 36, 55, 782660) >>> sunset datetime.datetime(2018, 4, 17, 20, 34, 4, 249326) >>> transit datetime.datetime(2018, 4, 17, 13, 35, 46, 686265) To determine where in the sky the sun appears at any location and time, use the :py:func:`~.solar_position` function, which requires a datetime instance, a latitude, and a longitude. >>> apparent_zenith, _, _, _, azimuth, _ = solar_position(datetime(2003, 10, 17, 13, 30, 30), 51.0486, -114.07) >>> apparent_zenith, azimuth (60.36742528727301, 182.5136775668768) The function returns several other properties which may be of interest. Its first return value, apparent_zenith, is the zenith which an observer on the ground would see the sun at after accounting for atmospheric refraction. To more accurately calculate the solar position, the temperature and pressure at ground level are required as well - as they impact the refraction as well; these arguments are accepted as well by :py:func:`~.solar_position` for more accuracy. When specifying pressure, be sure to use the real pressure of the site - not an adjusted to standard conditions one as reported by weather stations! >>> solar_position(datetime(2003, 10, 17, 13, 30, 30), 51.0486, -114.07, T=290, P=8.9E4)[0] 60.3701556038549 The primary application of sun position is for calculating the amount of sunlight received by an object, via the :py:func:`~.solar_irradiation` function. Unlike the previous functions, it requires an installation of `pvlib `_ to work. In addition to the arguments previously discussed, the surface_tilt and surface_azimuth of the object are required. The object is assumed to be a plane only - other objects need to be discretized into planes through finite-element calculations. The elevation is required, as well as the average albedo of the ground surrounding the object (not immediately; within several kilometers). The calculation is then straightforward: >>> solar_irradiation(Z=1100.0, latitude=51.0486, longitude=-114.07, ... moment=datetime(2018, 4, 15, 13, 43, 5), surface_tilt=41.0, ... surface_azimuth=180.0, albedo=0.25) (1065.7622492480543, 945.2657257434173, 120.49652350463705, 95.31534254980346, 25.18118095483359) The first return value is the solar radiation which hits the object, in W/m^2. The next two are the components of the radiation that comes 1) directly from the sun and 2) diffusely, after being reflected from some other object. The final two return values break up the diffuse light into 3) a component reflected only in the sky and clouds and 4) a component caused by earth's albedo, bounding off the surface, then the sky, before hitting the object. Note that if not provided, the temperature and pressure of the ground are obtained via the :py:class:`~.ATMOSPHERE_NRLMSISE00` class, but this quadruples the time required for the calculation. Compressor sizing ----------------- Both isothermal and isentropic/polytropic compression models are implemented in :py:mod:`fluids.compressible`. Isothermal compression calculates the work required to compress a gas from one pressure to another at a specified temperature. This is the best possible case for compression; all actual compressors require more work to do the compression. By making the compression take a large number of stages and cooling the gas between stages, this can be approached reasonable closely. Integrally geared compressors are often used for this purpose The function :py:func:`~.isothermal_work_compression` provides this calculation. >>> isothermal_work_compression(P1=1E5, P2=1E6, T=300) 5743.425357533477 Work is calculated on a J/mol basis. If the second pressure is lower than the first, a negative work will result and you are modeling an expander instead of a compressor. Gas compressibility factor can also be specified. The lower the gas's compressibility factor, the less power required to compress it. >>> isothermal_work_compression(P1=1E6, P2=1E5, T=300) -5743.425357533475 >>> isothermal_work_compression(P1=1E5, P2=1E6, T=300, Z=0.95) 5456.2540896568025 There is only one function implemented to model both isentropic and polytropic compressors, as the only difference is that a polytropic exponent `n` is used instead of the gas's isentropic exponent Cp/Cv `k` and the type of efficiency is changed. The model requires initial temperature, inlet and outlet pressure, isentropic exponent or polytropic exponent, and optionally an efficiency. Compressing air from 1 bar to 10 bar, with inlet temperature of 300 K and efficiency of 78% with the :py:func:`~.isentropic_work_compression` function: >>> isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78) # work, J/mol 10416.873455626454 The model allows for the inlet or outlet pressure or efficiency to be calculated instead of the work: >>> isentropic_work_compression(T1=300, P1=1E5, P2=1E6, k=1.4, W=10416) # Calculate efficiency 0.7800654085434559 >>> isentropic_work_compression(T1=300, P1=1E5, k=1.4, W=10416, eta=0.78) # Calculate P2 999858.5366533266 >>> isentropic_work_compression(T1=300, P2=1E6, k=1.4, W=10416, eta=0.78) # Calculate P1 100014.14833613831 The approximate temperature rise can also be calculated with the function :py:func:`~.isentropic_T_rise_compression`. >>> T2 = isentropic_T_rise_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78) >>> T2, T2-300 # outlet temperature and temperature rise, K (657.960664955096, 357.96066495509604) It is more accurate to use an enthalpy-based model which incorporates departure functions. Polytropic exponents and efficiencies are convertible to isentropic exponents and efficiencies with :py:func:`~.isentropic_efficiency` and :py:func:`~.polytropic_exponent`. For the above example, with k=1.4 and `eta_s`=0.78: >>> eta_p = isentropic_efficiency(P1=1E5, P2=1E6, k=1.4, eta_s=0.78) # with eta_s specified, returns polytropic efficiency >>> n = polytropic_exponent(k=1.4, eta_p=eta_p) >>> eta_p, n (0.8376785349411107, 1.517631868575738) With those results, we can prove the calculation worked by calculating the work required using these polytropic inputs: >>> isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=n, eta=eta_p) 10416.873455626452 The work is the same as calculated with the original inputs. Note that the conversion is specific to three inputs: Inlet pressure; outlet pressure; and isentropic exponent `k`. If any of those change, then the calculated polytropic exponent and efficiency will be different as well. To go in the reverse direction, we take the case of isentropic exponent k =Cp/Cv=1.4, eta_p=0.83 The power is calculated to be: We first need to calculate the polytropic exponent from the polytropic efficiency: >>> n = polytropic_exponent(k=1.4, eta_p=0.83) >>> print(n) 1.5249343832 >>> isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=n, eta=0.83) 10556.494602042329 Converting polytropic efficiency to isentropic efficiency: >>> eta_s = isentropic_efficiency(P1=1E5, P2=1E6, k=1.4, eta_p=0.83) >>> print(eta_s) 0.769683649894 Checking the calculated power is the same: >>> isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=eta_s) 10556.494602042327 Gas pipeline sizing ------------------- The standard isothermal compressible gas flow is fully implemented as :py:func:`~.isothermal_gas`, and through a variety of numerical and analytical expressions, can solve for any of the following parameters: * Mass flow rate * Upstream pressure (numerical) * Downstream pressure (analytical or numerical if an overflow occurs) * Diameter of pipe (numerical) * Length of pipe Solve for the mass flow rate of gas (kg/s) flowing through a 1 km long 0.5 m inner diameter pipeline, initially at 10 bar with a density of 11.3 kg/m^3 going downstream to a pressure of 9 bar. >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=9E5, L=1000, D=0.5) 145.4847572636031 The same case, but sizing the pipe to take 100 kg/s of gas: >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=9E5, L=1000, m=100) 0.42971708911060613 The same case, but determining what the outlet pressure will be if 200 kg/s flow in the 0.5 m diameter pipe: >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, D=0.5, L=1000, m=200) 784701.0681827427 Determining pipe length from known diameter, pressure drop, and mass flow (possible but not necessarily useful): >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=9E5, D=0.5, m=150) 937.3258027759333 Not all specified mass flow rates are possible. At a certain downstream pressure, chocked flow will develop - that downstream pressure is that at which the mass flow rate reaches a maximum. An exception will be raised if such an input is specified: >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, L=1000, D=0.5, m=260) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): File "", line 1, in File "fluids/compressible.py", line 886, in isothermal_gas 'kg/s at a downstream pressure of %f' %(P1, m_max, Pcf)) Exception: The desired mass flow rate cannot be achieved with the specified upstream pressure of 1000000.000000 Pa; the maximum flowrate is 257.216733 kg/s at a downstream pressure of 389699.731765 >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=3E5, L=1000, D=0.5) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): File "", line 1, in File "fluids/compressible.py", line 821, in isothermal_gas due to the formation of choked flow at P2=%f, specified outlet pressure was %f' % (Pcf, P2)) Exception: Given outlet pressure is not physically possible due to the formation of choked flow at P2=389699.731765, specified outlet pressure was 300000.000000 The downstream pressure at which chocked flow occurs can be calculated directly as well: >>> P_isothermal_critical_flow(P=1E6, fd=0.00185, L=1000., D=0.5) 389699.7317645518 A number of limitations exist with respect to the accuracy of this model: * Density dependence is that of an ideal gas. * If calculating the pressure drop, the average gas density cannot be known immediately; iteration must be used to correct this. * The friction factor depends on both the gas density and velocity, so it should be solved for iteratively as well. It changes throughout the pipe as the gas expands and velocity increases. * The model is not easily adapted to include elevation effects due to the acceleration term included in it. * As the gas expands, it will change temperature slightly, further altering the density and friction factor. We can explore how the gas density and friction factor effect the model using the `thermo library `_ for chemical properties. Compute the downstream pressure of 50 kg/s of natural gas flowing in a 0.5 m diameter pipeline for 1 km, roughness = 5E-5 m: >>> from thermo import * >>> from fluids import * >>> D = 0.5 >>> L = 1000 >>> epsilon = 5E-5 >>> S1 = Stream('natural gas', P=1E6, m=50) >>> V = S1.Q/(pi/4*D**2) >>> Re = S1.Reynolds(D=D, V=V) >>> fd = friction_factor(Re=Re, eD=epsilon/D) >>> P2 = isothermal_gas(rho=S1.rho, fd=fd, P1=S1.P, D=D, L=L, m=S1.m) >>> P2 877424.4964411375 In the above example, the friction factor was calculated using the density and velocity of the gas when it enters the stream. However, the average values, at the middle pressure, and more representative. We can iterate to observe the effect of using the average values: >>> for i in range(10): ... S2 = Stream('natural gas', P=0.5*(P2+S1.P), m=50) ... V = S2.Q/(pi/4*D**2) ... Re = S2.Reynolds(D=D, V=V) ... fd = friction_factor(Re=Re, eD=epsilon/D) ... P2 = isothermal_gas(rho=S2.rho, fd=fd, P1=S1.P, D=D, L=L, m=S1.m) ... print('%g' %P2) 868964 868303 868251 868247 868247 868247 868247 868247 868247 868247 As can be seen, the system converges very quickly. The difference in calculated pressure drop is approximately 1%. Gas pipeline sizing: Empirical equations ---------------------------------------- In addition to the actual model, many common simplifications used in industry are implemented as well. These are equally capable of solving for any of the following inputs: * Mass flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe None of these models include an acceleration term. In addition to reducing their accuracy, it allows all solutions for the above variables to be analytical. These models cannot predict the occurrence of chocked flow, and model only turbulent, not laminar, flow. Most of these models do not depend on the gas's viscosity. Rather than using mass flow rate, they use specific gravity and volumetric flow rate. The volumetric flow rate is specified with respect to a reference temperature and pressure. The defaults are 288.7 K and 101325 Pa, dating to the old imperial standard of 60° F. The specific gravity is with respect to air at the reference conditions. As the ideal gas law is used in each of these models, in addition to pressure and specific gravity the average temperature in the pipeline is required. Average compressibility factor is an accepted input to all models and corrects the ideal gas law's ideality. The full list of approximate models is as follows: * :py:func:`~.Panhandle_A` * :py:func:`~.Panhandle_B` * :py:func:`~.Weymouth` * :py:func:`~.Oliphant` * :py:func:`~.Fritzsche` * :py:func:`~.Muller` * :py:func:`~.IGT` * :py:func:`~.Spitzglass_high` * :py:func:`~.Spitzglass_low` As an example, calculating flow for a pipe with diameter 0.34 m, upstream pressure 90 bar and downstream pressure 20 bar, 160 km long, 0.693 specific gravity and with an average temperature in the pipeline of 277.15 K: >>> Panhandle_A(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 42.56082051195928 Each model also includes a pipeline efficiency term, ranging from 0 to 1. These are just empirical correction factors, Some of the models were developed with theory and a correction factor applied always; others are more empirical, and have a default correction factor. 0.92 is the default for the Panhandle A/B, Weymouth, and Oliphant models; the rest default to a correction of 1 i.e. no correction at all. The Muller and IGT models are the most accurate and recent approximations. They both depend on viscosity. >>> Muller(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, Tavg=277.15) 60.45796698148659 >>> IGT(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, Tavg=277.15) 48.92351786788815 These empirical models are included because they are mandated in many industrial applications regardless of their accuracy, and correction factors have already been determined. A great deal of effort was spent converting these models to base SI units and checking the coefficients used in each model with multiple sources. In many cases multiple sets of coefficients are available for a model; the most authoritative or common ones were used in those cases. Drag and terminal velocity -------------------------- A number of spherical particle drag correlations are implemented. In the simplest case, consider a spherical particle of diameter D=1 mm, density=3400 kg/m^3, travelling at 30 m/s in air with viscosity mu=1E-5 Pa*s and density 1.2 kg/m^3. We calculate the particle Reynolds number: >>> Re = Reynolds(V=30, rho=1.2, mu=1E-5, D=1E-3) >>> Re 3599.9999999999995 The drag coefficient `Cd` can be calculated with no other parameters from :py:func:`~.drag_sphere`: >>> drag_sphere(Re) 0.3914804681941151 The terminal velocity of the particle is easily calculated with the :py:func:`~.v_terminal` function. >>> v_terminal(D=1E-3, rhop=3400, rho=1.2, mu=1E-5) 8.971223953182939 Very often, we are not interested in just what the velocity of the particle will be at terminal conditions, but on the distance it will travel and the particle will never have time to reach terminal conditions. An integrating function is available to do that. Consider that same particle being shot directly down from a helicopter 100 m high. The integrating function, :py:func:`~.integrate_drag_sphere`, performs the integral with respect to time. At one second, we can see the (velocity, distance travelled): >>> integrate_drag_sphere(D=1E-3, rhop=3400., rho=1.2, mu=1E-5, t=1, V=30, distance=True) (10.561878111165333, 15.607904177715518) After integrating to 10 seconds, we can see the particle has travelled 97 meters and is almost on the ground. >>> integrate_drag_sphere(D=1E-3, rhop=3400., rho=1.2, mu=1E-5, t=10, V=30, distance=True) (8.97122398706632, 97.13276290361276) For this example simply using the terminal velocity would have given an accurate estimation of distance travelled: >>> 8.971223953182939*10 89.7122395318294 Many engineering applications such as direct contact condensers do operate far from terminal velocity however, and this function is useful there. Pressure drop through packed beds --------------------------------- Twelve different packed bed pressure drop correlations are available. A meta function which allows any of them to be selected and automatically selects the most accurate correlation for the given parameters. Pressure drop through a packed bed depends on the density, viscosity and velocity of the fluid, as well as the diameter of the particles, the amount of free space in the bed (voidage), and to a lesser amount the ratio of particle to tube diameter and the shape of the particles. Consider 0.8 mm pebbles with 40% empty space with water flowing through a 2 m column creeping flow at a superficial velocity of 1 mm/s. We can calculate the pressure drop in Pascals using the :py:func:`~.dP_packed_bed` function: >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, L=2) 2876.565391768883 The method can be specified manually as well, for example the commonly used Ergun equation: >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, L=2, Method='Ergun') 2677.734374999999 Incorporation of the tube diameter will add wall effects to the model. >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, L=2, Dt=0.01) 2510.3251325096853 Models can be used directly as well. The length of the column is an optional input; if not provided, the result will be in terms of Pa/m. >>> KTA(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) # A correlation standardized for use in pebble reactors 1440.409277034248 If the column diameter was 0.5 m, the flow rate in m^3/s would be: >>> .001*(pi/4*0.5**2) # superficial_velocity*A_column 0.00019634954084936208 The holdup (total volume of the column holding fluid not particles) would be: >>> (pi/4*0.5**2)*(2)*0.4 # A_column*H_column*voidage 0.15707963267948966 Not all particles are spherical. There have been correlations published for specific shapes, but what is often performed is simply an adjustment of particle diameter by its sphericity in the correlation, with the effective `dp` used as the product of the actual `dp` and the sphericity of the particle. The less spherical the particles, the higher the pressure drop. This is supported in all of the correlations. >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, L=2, Dt=0.01, sphericity=0.9) 3050.419598116882 While it is easy to measure the volume of particles added to a given column and determine the voidage experimentally, this does not help in the design process. Several authors have methodically filled columns with particles of different sizes and created correlations in terms of sphericity and particle to tube diameter ratios. Three such correlations are implemented in fluids, one generally using sphericity, one for spheres, and one for cylinders (:py:func:`~.voidage_Benyahia_Oneil`, :py:func:`~.voidage_Benyahia_Oneil_spherical` and :py:func:`~.voidage_Benyahia_Oneil_cylindrical` respectively). 1 mm spheres in a 5 cm diameter tube: >>> voidage_Benyahia_Oneil_spherical(Dp=.001, Dt=.05) 0.3906653157443224 1 mm diameter cylinder 5 mm long in a 5 cm diameter tube: >>> V_cyl = V_cylinder(D=0.001, L=0.005) >>> D_sphere_eq = (6*V_cyl/pi)**(1/3.) >>> A_cyl = A_cylinder(D=0.001, L=0.005) >>> sph = sphericity(A=A_cyl, V=V_cyl) >>> voidage_Benyahia_Oneil_cylindrical(Dpe=D_sphere_eq, Dt=0.05, sphericity=sph) 0.3754895273247688 Same calculation, but using the general correlation for all shapes: >>> voidage_Benyahia_Oneil(Dpe=D_sphere_eq, Dt=0.05, sphericity=sph) 0.4425769555048246 Pressure drop through piping ---------------------------- It is straightforward to calculate the pressure drop of fluid flowing in a pipeline with any number of fittings using the fluids library's :py:mod:`fluids.fittings` submodule. 15 m of piping, with a sharp entrance and sharp exit, two 30 degree miter bends, one rounded bend 45 degrees, 1 sharp contraction to half the pipe diameter and 1 sharp expansion back to the normal pipe diameter (water, V=3 m/s, Di=0.05, roughness 0.01 mm): >>> Re = Reynolds(V=3, D=0.05, rho=1000, mu=1E-3) >>> fd = friction_factor(Re, eD=1E-5/0.05) >>> K = K_from_f(fd=fd, L=15, D=0.05) >>> K += entrance_sharp() >>> K += exit_normal() >>> K += 2*bend_miter(angle=30) >>> K += bend_rounded(Di=0.05, angle=45, fd=fd) >>> K += contraction_sharp(Di1=0.05, Di2=0.025) >>> K += diffuser_sharp(Di1=0.025, Di2=0.05) >>> dP_from_K(K, rho=1000, V=3) 37920.51140146369 If the diameter of the piping varies, not all of the loss coefficients will be with respect to the same diameter. Each loss coefficient must be converted to one standard diameter before the total pressure drop can be calculated. The following example is solved with the optional `pint` unit compatibility module. 40 m piping, beveled entrance (10 mm length, 30 degrees, into 5 cm ID pipe) , then a 30 degree miter bend, a sharp contraction to half the pipe diameter (5 m long), a 30 degree miter bend, a rounded 45 degree bend, a sharp expansion to 4 cm ID pipe (15 more meters), and a sharp exit: >>> from fluids.units import * >>> from math import * >>> material = nearest_material_roughness('steel', clean=True) >>> epsilon = material_roughness(material) >>> Q = .01*u.m**3/u.s >>> rho = 1000*u.kg/u.m**3 >>> mu = 1E-4*u.Pa*u.s >>> D1 = 5*u.cm >>> D2 = 2.5*u.cm >>> D3 = 4*u.cm >>> L1 = 20*u.m >>> L2 = 5*u.m >>> L3 = 15*u.m >>> V1 = Q/(pi/4*D1**2) >>> Re = Reynolds(V=V1, D=D1, rho=rho, mu=mu) >>> fd = friction_factor(Re, eD=epsilon/D1) >>> K = K_from_f(fd=fd, L=L1, D=D1) >>> K += entrance_beveled(Di=D1, l=10*u.mm, angle=30*u.degrees) >>> K += bend_miter(angle=30*u.degrees) >>> K += contraction_sharp(Di1=D1, Di2=D2) >>> V2 = Q/(pi/4*D2**2) >>> Re2 = Reynolds(V=V2, D=D2, rho=rho, mu=mu) >>> fd2 = friction_factor(Re2, eD=epsilon/D2) >>> K += change_K_basis(K_from_f(fd=fd2, L=L2, D=D2), D1=D2, D2=D1) >>> K += change_K_basis(K1=bend_miter(angle=30*u.degrees), D1=D2, D2=D1) >>> K += change_K_basis(K1=bend_rounded(Di=D2, angle=45*u.degrees, fd=fd2), D1=D2, D2=D1) >>> V3 = Q/(pi/4*D3**2) >>> Re3 = Reynolds(V=V3, D=D3, rho=rho, mu=mu) >>> fd3 = friction_factor(Re3, eD=epsilon/D3) >>> K += change_K_basis(K_from_f(fd=fd3, L=L3, D=D3), D1=D3, D2=D1) >>> K += diffuser_sharp(Di1=D2, Di2=D3) >>> dP_from_K(K, rho=rho, V=V1) Control valve sizing: Introduction ---------------------------------- The now internationally-standardized methods (IEC 60534) for sizing liquid and gas valves have been implemented. Conversion factors among the different types of valve coefficients are implemented as well. There are two forms of loss coefficient used for vales, an imperial and a metric variable called "valve flow coefficient". Both can be converted to the standard dimensionless loss coefficient. If one knows the actual loss coefficient of a valve, the valve flow coefficient can be calculated in either metric or imperial forms as follows. The flow coefficients are specific to the diameter of the valve. Kv, Cv, and K values can be converted easily with the functions :py:func:`~.K_to_Kv`, :py:func:`~.K_to_Cv`, :py:func:`~.Cv_to_K`, :py:func:`~.Kv_to_K`, :py:func:`~.Cv_to_Kv`, and :py:func:`~.Kv_to_Cv`. >>> from fluids import * >>> K_to_Kv(K=16, D=0.016) 2.56 >>> K_to_Cv(K=16, D=0.016) 2.9596140245853606 If Kv or Cv are known, they can be converted to each other with the proportionality constant 1.156, which is derived from a unit conversion only. This conversion does not require valve diameter. >>> Cv_to_Kv(12) 10.379731865307619 >>> Kv_to_Cv(10.37) 11.988748998027418 If a Cv or Kv is obtained from a valve datasheet, it can be converted into a standard loss coefficient as follows. >>> Kv_to_K(Kv=2.56, D=0.016) 16.000000000000004 >>> Cv_to_K(Cv=3, D=0.016) 15.57211586581753 For a valve with a specified Kv and pressure drop, the flow rate can be calculated easily for the case of non-choked non-compressible flow (neglecting other friction losses), as illustrated in the example below for a 5 cm valve with a pressure drop 370 kPa and density of 870 kg/m^3: >>> Kv = 72.5 >>> D = 0.05 >>> dP = 370E3 >>> K = Kv_to_K(D=D, Kv=Kv) >>> rho = 870 >>> V = (dP/(.5*rho*K))**0.5 # dP = K*0.5*rho*V^2 >>> A = pi/4*D**2 >>> Q = V*A >>> Q 0.04151682468778643 Alternatively, the required Kv can be calculated from an assumed diameter and allowable pressure drop: >>> Q = .05 >>> D = 0.05 >>> dP = 370E3 >>> rho = 870 >>> A = pi/4*D**2 >>> V = Q/A >>> K = dP/(.5*rho*V**2) >>> K_to_Kv(D=D, K=K) 87.31399925838778 The approach documented above is not an adequate procedure for sizing valves however because chocked flow, compressible flow, the effect of inlet and outlet reducers, the effect of viscosity and the effect of laminar/turbulent flow all have large influences on the performance of control valves. Historically, valve manufacturers had their own standards for sizing valves, but these have been standardized today into the IEC 60534 methods. Control valve sizing: Liquid flow --------------------------------- To rigorously size a control valve for liquid flow, the inlet pressure, allowable pressure drop, and desired flow rate must first be known. These need to be determined taking into account the entire pipe network and the various operating conditions it needs to support; sizing the valves can be performed afterward and only if no valve with the desired performance is available does the network need to be redesigned. To illustrate sizing a valve, we borrow an example from Emerson's Control Valve Handbook, 4th edition (2005). It involves a flow of 800 gpm of liquid propane. The inlet and outlet pipe size is 8 inches, but the size of the valve itself is unknown. The desired pressure drop is 25 psi. Converting this problem to SI units and using the thermo library to calculate the necessary properties of the fluid, we calculate the necessary Kv of the valve based on an assumed valve size of 3 inches: >>> from scipy.constants import * >>> from fluids.control_valve import size_control_valve_l >>> from thermo.chemical import Chemical >>> P1 = 300*psi + psi # to Pa >>> P2 = 275*psi + psi # to Pa >>> T = 273.15 + 21 # to K >>> propane = Chemical('propane', P=(P1+P2)/2, T=T) >>> rho = propane.rho >>> Psat = propane.Psat >>> Pc = propane.Pc >>> mu = propane.mu >>> Q = 800*gallon/minute # to m^3/s >>> D1 = D2 = 8*inch # to m >>> d = 3*inch # to m The standard specifies two more parameters specific to a valve: * FL, Liquid pressure recovery factor of a control valve without attached fittings * Fd, Valve style modifier Both of these are factors between 0 and 1. In the Emerson handbook, they are not considered in the sizing procedure and set to 1. These factors are also a function of the diameter of the valve and are normally tabulated next to the values of Cv or Kv for a valve. Now using :py:func:`~.size_control_valve_l` to solve for the flow coefficient: >>> Kv = size_control_valve_l(rho, Psat, Pc, mu, P1, P2, Q, D1, D2, d, FL=1, Fd=1) >>> Kv 109.27127420992377 The handbook states the Cv of the valve is 121; we convert Kv to Cv: >>> Kv_to_Cv(Kv=Kv) 126.3284357953137 The example in the book calculated Cv = 125.7, but doesn't actually use the full calculation method. Either way, the valve will not carry the desired flow rate; we need to try a larger valve size. The 4 inch size is tried next in the example, which has a known Cv of 203. >>> d = 4*inch # to m >>> Kv = size_control_valve_l(rho, Psat, Pc, mu, P1, P2, Q, D1, D2, d, FL=1, Fd=1) >>> Kv_to_Cv(Kv=Kv) 116.0624409988861 The calculated Cv is well under the valve's maximum Cv; we can select it. This model requires a vapor pressure and a critical pressure of the fluid as inputs. There is no clarification in the standard about how to handle mixtures, which do not have these values. It is reasonable to calculate vapor pressure as the bubble pressure, and the mixture's critical pressure through a mole-weighted average. For actual values of Cv, Fl, Fd, and available diameters, an excellent resource is the `Fisher Catalog 12 `_. Control valve sizing: Gas flow ------------------------------ To rigorously size a control valve for gas flow, the inlet pressure, allowable pressure drop, and desired flow rate must first be known. These need to be determined taking into account the entire pipe network and the various operating conditions it needs to support; sizing the valves can be performed afterward and only if no valve with the desired performance is available does the network need to be redesigned. To illustrate sizing a valve, we borrow an example from Emerson's Control Valve Handbook, 4th edition (2005). It involves a flow of 6 million ft^3/hour of natural gas. The inlet and outlet pipe size is 8 inches, but the size of the valve itself is unknown. The desired pressure drop is 150 psi. Converting this problem to SI units and using the thermo library to calculate the necessary properties of the fluid, we calculate the necessary Kv of the valve based on an assumed valve size of 8 inches. >>> from scipy.constants import * >>> from fluids.control_valve import size_control_valve_g >>> from thermo.chemical import Chemical >>> P1 = 214.7*psi >>> P2 = 64.7*psi >>> T = 16 + 273.15 >>> natural_gas = Mixture('natural gas', T=T, P=(P1+P2)/2) >>> Z = natural_gas.Z >>> MW = natural_gas.MW >>> mu = natural_gas.mu >>> gamma = natural_gas.isentropic_exponent >>> Q = 6E6*foot**3/hour >>> D1 = D2 = d = 8*inch # 8-inch Fisher Design V250 The standard specifies three more parameters specific to a valve: * FL, Liquid pressure recovery factor of a control valve without attached fittings * Fd, Valve style modifier * xT, Pressure difference ratio factor of a valve without fittings at choked flow All three of these are factors between 0 and 1. In the Emerson handbook, FL and Fd are not considered in the sizing procedure and set to 1. xT is specified as 0.137 at full opening. These factors are also a function of the diameter of the valve and are normally tabulated next to the values of Cv or Kv for a valve. Now using :py:func:`~.size_control_valve_g` to solve for the flow coefficient: >>> Kv = size_control_valve_g(T, MW, mu, gamma, Z, P1, P2, Q, D1, D2, d, FL=1, Fd=1, xT=.137) >>> Kv_to_Cv(Kv) 1560.9362792230884 The 8-inch valve is rated with Cv = 2190. The valve is adequate to provide the desired flow because the rated Cv is higher. The calculated value in their example is 1515, differing slightly due to the properties used. The example next goes on to determine the actual opening position the valve should be set at to provide the required flow. Their conclusion is approximately 75% open; we can do better using a numerical solver. The values of opening at different positions are obtained in this example from the valve's `datasheet `_. Loading the data and creating interpolation functions so FL, Fd, and xT are all smooth functions: >>> from scipy.interpolate import interp1d >>> from scipy.optimize import newton >>> openings = [.2, .3, .4, .5, .6, .7, .8, .9] >>> Fds = [0.59, 0.75, 0.85, 0.92, 0.96, 0.98, 0.99, 0.99] >>> Fls = [0.9, 0.9, 0.9, 0.85, 0.78, 0.68, 0.57, 0.45] >>> xTs = [0.92, 0.81, 0.85, 0.63, 0.58, 0.48, 0.29, 0.14] >>> Kvs = [24.1, 79.4, 153, 266, 413, 623, 1060, 1890] >>> Fd_interp = interp1d(openings, Fds, kind='cubic') >>> Fl_interp = interp1d(openings, Fls, kind='cubic') >>> xT_interp = interp1d(openings, xTs, kind='cubic') >>> Kv_interp = interp1d(openings, Kvs, kind='cubic') Creating and solving the objective function: >>> def to_solve(opening): ... Fd = float(Fd_interp(opening)) ... Fl = float(Fl_interp(opening)) ... xT = float(xT_interp(opening)) ... Kv_lookup = float(Kv_interp(opening)) ... Kv_calc = size_control_valve_g(T, MW, mu, gamma, Z, P1, P2, Q, D1, D2, d, FL=Fl, Fd=Fd, xT=xT) ... return Kv_calc - Kv_lookup >>> newton(to_solve, .8) # initial guess of 80% 0.7495168349025819 We see the valve should indeed be set to almost exactly 75% open to provide the desired flow. Electric motor sizing --------------------- Motors are available in standard sizes, mostly as designated by the National Electrical Manufacturers Association (NEMA). To easily determine what the power of a motor will actually be once purchased, :py:func:`~.motor_round_size` implements rounding up of a motor power to the nearest size. NEMA standard motors are specified in terms of horsepower. >>> motor_round_size(1E5) # 100 kW motor; 11.8% larger than desired 111854.98073734052 >>> from scipy.constants import hp >>> motor_round_size(1E5)/hp # convert to hp 150.0 Motors are designed to generate a certain amount of power, but they themselves are not 100% efficient at doing this and require more power due to efficiency losses. Many minimum values for motor efficiency are standardized. The Canadian standard for this is implemented in fluids as :py:func:`~.CSA_motor_efficiency`. >>> CSA_motor_efficiency(P=5*hp) 0.855 Most motors are not enclosed (the default assumption), but those that are closed are more efficient. >>> CSA_motor_efficiency(P=5*hp, closed=True) 0.875 The number of poles in a motor also affects its efficiency: >>> CSA_motor_efficiency(P=5*hp, poles=6) 0.875 There is also a schedule of higher efficiency values standardized as well, normally available at somewhat higher cost: >>> CSA_motor_efficiency(P=5*hp, closed=True, poles=6, high_efficiency=True) 0.895 A motor will spin at more or less its design frequency, depending on its type. However, if it does not meet sufficient resistance, it will not be using its design power. This is good and bad - less power is used, but as a motor drops under 50% of its design power, its efficiency becomes terrible. The function :py:func:`~.motor_efficiency_underloaded` has been written based on generic performance curves to estimate the underloaded efficiency of a motor. Just how bad efficiency drops off depends on the design power of a motor - higher power motors do better operating at low loads than small motors. >>> motor_efficiency_underloaded(P=1E3, load=.9) 1 >>> motor_efficiency_underloaded(P=1E3, load=.2) 0.6639347559654663 This needs to be applied on top of the normal motor efficiency; for example, that 1 kW motor at 20% load would have a net efficiency of: >>> motor_efficiency_underloaded(P=1E3, load=.2)*CSA_motor_efficiency(P=1E3) 0.5329404286134798 Many motors have Variable Frequency Drives (VFDs) which allow them to vary the speed of their rotation. The VFD is another source of inefficiency, but by allowing the pump or other piece of equipment to vary its speed, a system may be designed to be less energy intensive. For example, rather than running a pump at a certain high frequency and controlling the flow with a large control valve, the flow rate can be controlled with the VFD directly. The efficiency of a VFD depends on the maximum power it needs to be able to generate, and the power it is actually generating at an instant (load). A table of typical modern VFD efficiencies is implemented in fluids as :py:func:`~.VFD_efficiency`. >>> VFD_efficiency(1E5) # 100 kW 0.97 >>> VFD_efficiency(5E3, load=.2) # 5 kW, 20% load 0.8562 Particle Size Distributions --------------------------- Fluids has means for calculating, fitting, and manipulating particle size distributions through the :py:mod:`fluids.particle_size_distribution` module. In addition to discrete and continuous distributions, there are also means to create interpolating distributions from discrete distributions, and to use any of SciPy's statistical distributions or a custom distribution for calculations. The following example particle size distribution shows some calculations. Note there is one more diameter point than number point - this is how the input should be given when the analysis provides classes and each bin has a range of sizes representing it. Also supported is providing as many diameter values as fraction values. >>> ds = [240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532] >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) >>> psd In the above example, the analysis available was the number of particles counted in each bin. This is equivalent to having normalized the numbers into fractions; they are normalized inside the :py:class:`~.ParticleSizeDistribution` class. If masses in each of the different bins had been known instead, then the same constructor would be given except with `order=3`, representing a mass or volume distribution (they are the same thing for distributions with the same density for all particles). If the data is available as a cumulative distribution, simple add the flag cdf=True and it will be interpreted correctly. The probability distribution and cumulative distribution can be plotted with :py:meth:`~.plot_pdf` and :py:meth:`~.plot_cdf` respectively. Important statistical parameters describing the distribution can be calculated with the methods :py:meth:`fluids.particle_size_distribution.ParticleSizeDistribution.mean_size` or :py:meth:`fluids.particle_size_distribution.ParticleSizeDistribution.mean_size_ISO`. The following example shows calculation of the size-weighted mean diameter; arithmetic mean diameter; Sauter mean diameter; and De Brouckere diameter. >>> psd.mean_size(2, 1) 1857.788857205553 >>> psd.mean_size(1, 0) 1459.3725650679328 >>> psd.mean_size(1, 2) 1857.7888572055529 >>> psd.mean_size(1, 3) 2053.2703977309357 An interpolated distribution exists underneath the discrete data to allow useful properties to be calculated, such as the D10 or D90: >>> psd.dn(0.1), psd.dn(0.9) (1437.071392769334, 3911.479636364713) Or probability density functions: >>> psd.pdf(1000) 0.00010632384327525043 >>> psd.cdf(5000) 0.9897400734854198 Statistical distributions implemented are :py:class:`~.PSDLognormal`, :py:class:`~.PSDGatesGaudinSchuhman`, and :py:class:`~.PSDRosinRammler`. Discrete and continuous distributions share most methods. >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6) >>> psd.pdf(1e-6) # probability density function 4487.892155358317 >>> psd.cdf(7e-6) # cumulative distribution function 0.749508691386811 >>> psd.dn(0.1) # At what diameter is this fraction of particles smaller than? 2.634417591480183e-06 >>> psd.mean_size(3, 2) 4.412484512922977e-06 >>> ds = psd.ds_discrete(pts=1000) # Compare calculations with the discrete distribution >>> fractions = psd.fractions_discrete(ds) >>> ParticleSizeDistribution(ds=ds, fractions=fractions, order=3).mean_size(3, 2) 4.425743630583137e-06 It is straightforward to calculate descriptions of the distribution using the available routines: Volume specific surface area: >>> psd.vssa 1359778.1436801916 Span (D90 - D10): >>> psd.dn(.9) - psd.dn(0.1) 6.855345945193373e-06 Relative span (D90 - D10)/D50: >>> (psd.dn(.9) - psd.dn(0.1))/psd.dn(0.5) 1.3710691890386744 Percentile ratios, D75/D25 and D90/D10: >>> psd.dn(0.75)/psd.dn(0.25) 1.9630310841582574 >>> psd.dn(0.9)/psd.dn(0.1) 3.602224479279158 fluids-0.1.78/docs/fluids.packed_tower.rst0000644000175000017500000000022713632560624017257 0ustar kurtkurtPacking & demister pressure drop (fluids.packed_tower) ====================================================== .. automodule:: fluids.packed_tower fluids-0.1.78/docs/plots/0000755000175000017500000000000013632560624013731 5ustar kurtkurtfluids-0.1.78/docs/plots/contraction_round.py0000644000175000017500000000140013632560624020030 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import contraction_round, contraction_round_methods styles = ['--', '-.', '-', ':', '.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4'] D_ratios = np.linspace(1-1e-9, .01, 1000) radius_ratios = [.1, .06, .04, .02, 0] #np.linspace(0, 0.2, 3) for radius_ratio in radius_ratios: for method, style in zip(contraction_round_methods, styles): Ks = [contraction_round(Di1=1, Di2=Di, rc=Di*radius_ratio, method=method) for Di in D_ratios] Ds2 = D_ratios**2 plt.plot(Ds2, Ks, style, label=method + ', ratio = ' + str(radius_ratio)) plt.legend() plt.title("Comparison of available methods for rounded pipe contractions") plt.xlabel('Area ratio') plt.ylabel('K') #plt.show() fluids-0.1.78/docs/plots/ft_Crane.py0000644000175000017500000000235313632560624016027 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from math import log10 from scipy.interpolate import UnivariateSpline from fluids.friction import Crane_fts_Ds, Crane_fts, ft_Crane, roughness_Farshad, friction_factor roughness = .05E-3 plt.plot(Crane_fts_Ds, Crane_fts, 'o', label='Crane data') spline_obj = UnivariateSpline(Crane_fts_Ds, Crane_fts, k=3, s=5e-6) Ds_interp = np.linspace(Crane_fts_Ds[0], Crane_fts_Ds[-1], 500) plt.plot(Ds_interp, spline_obj(Ds_interp), label='Cubic spline') ft_crane_correlation = [.25/log10(roughness/(Di)/3.7)**2 for Di in Crane_fts_Ds] plt.plot(Crane_fts_Ds, ft_crane_correlation, label='Crane formula') plt.plot(Crane_fts_Ds, [round(i, 3) for i in ft_crane_correlation], '.', label='Crane formula (rounded)') eDs_Farshad = [roughness_Farshad(ID='Carbon steel, bare', D=D)/D for D in Crane_fts_Ds] fts_good = [friction_factor(Re=7.5E6*Di, eD=ed) for ed, Di in zip(eDs_Farshad, Crane_fts_Ds)] plt.plot(Crane_fts_Ds, fts_good, label='Colebrook') plt.plot(Crane_fts_Ds, [round(i, 3) for i in fts_good], 'x', label='Colebrook (rounded)') plt.legend() plt.title("Comparison of implementation options") plt.xlabel('Pipe actual diameter, [m]') plt.ylabel('Darcy friction factor, [-]') #plt.show() fluids-0.1.78/docs/plots/entrance_beveled.py0000644000175000017500000000133613632560624017573 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import entrance_beveled_methods from fluids.fittings import entrance_beveled angles = np.linspace(0, 90, 200) # 90 or 180? Plotted in Rennels only to 90. styles = ['--', '-.', '-', ':', '.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4'] l_ratios = [0.025, 0.05, 0.1, 0.25, .5, .75, 1] for l, style in zip(l_ratios, styles): for method in entrance_beveled_methods: Ks = [entrance_beveled(Di=1.0, l=l, angle=angle, method=method) for angle in angles] plt.plot(angles, Ks, style, label=method + ', l/Di=%g' %l) plt.legend() plt.title("Comparison of available methods for beveled entrances") plt.xlabel('angle') plt.ylabel('K') #plt.show() fluids-0.1.78/docs/plots/diffuser_conical.py0000644000175000017500000000271113632560624017603 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import diffuser_conical_methods, diffuser_conical styles = ['--', '-.', '-', ':', '.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4'] D_ratios = np.linspace(1-1e-9, .01, 100) #D_ratios = np.linspace(1-1e9, .01, 100) angles = np.array([[2, 4, 8, 10], [15, 20, 25, 30], [45, 60, 90, 120], [135, 150, 165, 180]]) f, axarr = plt.subplots(4, 4) for angle, axes in zip(angles.ravel(), axarr.ravel()): for method, style in zip(diffuser_conical_methods, styles): if method == 'Swamee': continue Ks = [diffuser_conical(Di1=Di, Di2=1, Re=1E6, angle=angle, method=method) for Di in D_ratios] Ds2 = D_ratios**2 axes.plot(Ds2, Ks, label=method) # + ', angle = ' + str(angle) #axes.legend() axes.set_title(r'$%g^\circ$ Angle' %angle) #axes.set_xlabel('Area ratio') #axes.set_ylabel('K') for item in ([axes.title, axes.xaxis.label, axes.yaxis.label] + axes.get_xticklabels() + axes.get_yticklabels()): item.set_fontsize(6.5) ttl = axes.title.set_position([.5, .93]) plt.subplots_adjust(wspace=.35, hspace=.35) f.suptitle('Comparison of available methods for conical pipe diffusers\n Area ratio (x) vs. Loss coefficient (y)') plt.legend(loc='upper center', bbox_to_anchor=(1.65, 4.7)) plt.subplots_adjust(right=0.82) #plt.show() fluids-0.1.78/docs/plots/entrance_distance.py0000644000175000017500000000071113632560624017753 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import entrance_distance_methods from fluids.fittings import entrance_distance ts = np.linspace(0,0.3, 1000) for method in entrance_distance_methods: Ks = [entrance_distance(Di=1.0, t=t, method=method) for t in ts] plt.plot(ts, Ks, label=method) plt.legend() plt.title("Comparison of available methods for re-entrant entrances") plt.xlabel('t/Di') plt.ylabel('K') #plt.show() fluids-0.1.78/docs/plots/contraction_conical.py0000644000175000017500000000260313632560624020317 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import contraction_conical_methods, contraction_conical styles = ['--', '-.', '-', ':', '.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4'] D_ratios = np.linspace(1-1e-9, .01, 100) angles = np.array([[2, 4, 8, 10], [15, 20, 25, 30], [45, 60, 90, 120], [135, 150, 165, 180]]) f, axarr = plt.subplots(4, 4) for angle, axes in zip(angles.ravel(), axarr.ravel()): for method, style in zip(contraction_conical_methods, styles): Ks = [contraction_conical(Di1=1, Di2=Di, Re=1E6, angle=angle, method=method) for Di in D_ratios] Ds2 = D_ratios**2 axes.plot(Ds2, Ks, label=method) # + ', angle = ' + str(angle) #axes.legend() axes.set_title(r'$%g^\circ$ Angle' %angle) #axes.set_xlabel('Area ratio') #axes.set_ylabel('K') for item in ([axes.title, axes.xaxis.label, axes.yaxis.label] + axes.get_xticklabels() + axes.get_yticklabels()): item.set_fontsize(6.5) ttl = axes.title.set_position([.5, .93]) plt.subplots_adjust(wspace=.35, hspace=.35) f.suptitle('Comparison of available methods for conical pipe contractions\n Area ratio (x) vs. Loss coefficient (y)') plt.legend(loc='upper center', bbox_to_anchor=(1.65, 4.7)) plt.subplots_adjust(right=0.82) #plt.show() fluids-0.1.78/docs/plots/entrance_rounded.py0000644000175000017500000000075213632560624017626 0ustar kurtkurtimport matplotlib import matplotlib.pyplot as plt import numpy as np from fluids.fittings import entrance_rounded_methods from fluids.fittings import entrance_rounded rcs = np.linspace(0,0.4, 1000) for method in entrance_rounded_methods: Ks = [entrance_rounded(Di=1.0, rc=rc, method=method) for rc in rcs] plt.plot(rcs, Ks, label=method) plt.legend() plt.title('Comparison of available methods for rounded flush entrances to pipes') plt.xlabel('rc/Di') plt.ylabel('K') #plt.show() fluids-0.1.78/docs/plots/bend_rounded_Crane.py0000644000175000017500000000152213632560624020043 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from scipy.interpolate import UnivariateSpline from fluids.optional.pychebfun import chebfun from fluids.fittings import bend_rounded_Crane_ratios, bend_rounded_Crane_fds, bend_rounded_Crane_coeffs ratios = np.linspace(1, 20, 1000) bend_rounded_Crane_obj = UnivariateSpline(bend_rounded_Crane_ratios, bend_rounded_Crane_fds, s=0) fun = chebfun(f=bend_rounded_Crane_obj, domain=[1,20], N=10) plt.plot(bend_rounded_Crane_ratios, bend_rounded_Crane_fds, 'x', label='Crane data') plt.plot(ratios, bend_rounded_Crane_obj(ratios), label='Cubic spline') plt.plot(ratios, fun(ratios), label='Chebyshev approximation') plt.legend() plt.title("Interpolation of Crane ft multipliers for pipe bend losses") plt.xlabel('Bend radius/pipe diameter ratio') plt.ylabel('Friction factor multiplier') #plt.show() fluids-0.1.78/docs/plots/bend_miter.py0000644000175000017500000000237313632560624016420 0ustar kurtkurtimport matplotlib.pyplot as plt import numpy as np from fluids.fittings import bend_miter, bend_miter_methods styles = ['--', '-.', '-', ':', '.', ',', 'o', 'v', '^', '<', '>', '1', '2', '3', '4'] angles = np.linspace(0.0, 120.0, 100) Res = np.array([[1E4, 4E4, 8E4], [2E5, 5E5, 1E6], [5E6, 1E7, 1E8]]) f, axarr = plt.subplots(3, 3) for Re, axes in zip(Res.ravel(), axarr.ravel()): for method, style in zip(bend_miter_methods, styles): Di = 0.05 # Makes Crane go up or down Ks = [bend_miter(angle=angle, Di=Di, Re=Re, roughness=.05E-3, L_unimpeded=Di*20, method=method) for angle in angles] axes.plot(angles, Ks, label=method) # + ', angle = ' + str(angle) axes.set_title(r'Re = %g' %Re) for item in ([axes.title, axes.xaxis.label, axes.yaxis.label] + axes.get_xticklabels() + axes.get_yticklabels()): item.set_fontsize(6.5) ttl = axes.title.set_position([.5, .98]) plt.subplots_adjust(wspace=.35, hspace=.35) f.suptitle('Comparison of available methods for mitre bend losses\n Angle (x) vs. Loss coefficient (y)') plt.legend(loc='upper center', bbox_to_anchor=(1.5, 2.4)) plt.subplots_adjust(right=0.82, top=.85, bottom=.05) #plt.show() fluids-0.1.78/docs/index.rst0000644000175000017500000000645613632560624014444 0ustar kurtkurt.. Fluids documentation master file, created by sphinx-quickstart on Sat Jan 2 17:15:23 2016. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to Fluids's documentation! ================================== Fluids is open-source software for engineers and technicians working in the fields of chemical, mechanical, or civil engineering. It includes modules for piping, fittings, pumps, tanks, compressible flow, open-channel flow, and more. Module Contents: .. toctree:: :maxdepth: 2 tutorial.rst modules.rst examples.rst Installation ------------ .. image:: http://img.shields.io/pypi/v/fluids.svg?style=flat :target: https://pypi.python.org/pypi/fluids :alt: Version_status .. image:: http://img.shields.io/travis/CalebBell/fluids/master.svg?style=flat :target: https://travis-ci.org/CalebBell/fluids :alt: Build_status .. image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat :target: https://github.com/CalebBell/fluids/blob/master/LICENSE.txt :alt: license .. image:: https://img.shields.io/coveralls/CalebBell/fluids.svg? :target: https://coveralls.io/github/CalebBell/fluids :alt: Coverage .. image:: https://img.shields.io/pypi/pyversions/fluids.svg? :target: https://pypi.python.org/pypi/fluids :alt: Supported_versions .. image:: http://img.shields.io/appveyor/ci/calebbell/fluids.svg? :target: https://ci.appveyor.com/project/calebbell/fluids/branch/master :alt: Build_status .. image:: https://zenodo.org/badge/48924523.svg? :alt: Zendo :target: https://zenodo.org/badge/latestdoi/48924523 Get the latest version of fluids from https://pypi.python.org/pypi/fluids/ If you have an installation of Python with pip, simple install it with: $ pip install fluids Alternatively, if you are using `conda `_ as your package management, you can simply install fluids in your environment from `conda-forge `_ channel with: $ conda install -c conda-forge fluids To get the git version, run: $ git clone git://github.com/CalebBell/fluids.git Latest source code ------------------ The latest development version of fluids's sources can be obtained at https://github.com/CalebBell/fluids Bug reports ----------- To report bugs, please use the fluids's Bug Tracker at: https://github.com/CalebBell/fluids/issues If you have further questions about the usage of the library, feel free to contact the author at Caleb.Andrew.Bell@gmail.com. License information ------------------- Fluids is MIT licensed. See ``LICENSE.txt`` for full information on the terms & conditions for usage of this software, and a DISCLAIMER OF ALL WARRANTIES. Although not required by the fluids license, if it is convenient for you, please cite fluids if used in your work. Please also consider contributing any changes you make back, such that they may be incorporated into the main library and all of us will benefit from them. Citation -------- To cite fluids in publications use:: Caleb Bell (2016-2018). fluids: Fluid dynamics component of Chemical Engineering Design Library (ChEDL) https://github.com/CalebBell/fluids. Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` fluids-0.1.78/docs/conf.py0000644000175000017500000002230113632560624014065 0ustar kurtkurt# -*- coding: utf-8 -*- # # Fluids documentation build configuration file, created by # sphinx-quickstart on Sat Jan 2 17:15:23 2016. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os #import sys #from mock import Mock as MagicMock # # #class Mock(MagicMock): # @classmethod # def __getattr__(cls, name): # return Mock() # #MOCK_MODULES = ['scipy', 'scipy.interpolate', 'scipy.constants', 'argparse', #'numpy', 'pandas'] #sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.coverage', 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', 'sphinx.ext.autosummary', 'numpydoc', 'nbsphinx', 'matplotlib.sphinxext.plot_directive', #'sphinxcontrib.katex', ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Fluids' copyright = u'2016 - 2018, Caleb Bell ' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.1' # The full version, including alpha/beta/rc tags. release = '0.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build', '**.ipynb_checkpoints'] # The reST default role (used for this markup: `text`) to use for all # documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. #keep_warnings = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. #html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'Fluids doc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ ('index', 'Fluids.tex', u'Fluids Documentation', u'Caleb Bell', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'fluids', u'Fluids Documentation', [u'Caleb Bell'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'Fluids', u'Fluids Documentation', u'Caleb Bell', 'Fluids', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False html_theme = "nature" numpydoc_show_class_members = True numpydoc_show_inherited_class_members = True numpydoc_class_members_toctree = False autosummary_generate = True add_function_parentheses = False autodoc_default_flags = ['undoc-members', 'show-inheritance'] from sphinx.ext.autodoc import between def setup(app): #app.add_javascript('copybutton.js') # Register a sphinx.ext.autodoc.between listener to ignore everything # between lines that contain the word IGNORE app.connect('autodoc-process-docstring', between('(^Chemical Engineering Design Library).*|(^SOFTWARE.$).*', exclude=True)) return app fluids-0.1.78/docs/fluids.units.rst0000644000175000017500000000766613632560624015770 0ustar kurtkurtSupport for pint Quantities (fluids.units) ========================================== Basic module which wraps all fluids functions and classes to be compatible with the `pint `_ unit handling library. All other object - dicts, lists, etc - are not wrapped. Supports star imports; so the same objects exported when importing from the main library will be imported from here. >>> from fluids.units import * There is no global unit registry in pint, and each registry must be a singleton. However, there is a default registry which is suitable for use in multiple modules at once. This default registry should be imported in one of the following ways (it does not need to be called `u`; it can be imported from pint as `ureg` or any other name): >>> from pint import _DEFAULT_REGISTRY as u Note that if the star import convention is used, it will be imported as `u` for you. Unlike the normal convention, this registry is already initialized. To repeat it again, you CANNOT do the following in your project and work with fluids.units. >>> from pint import UnitRegistry >>> u = UnitRegistry() # NO All dimensional arguments to functions in fluids.units must be provided as Quantity objects. >>> Reynolds(V=3.5*u.m/u.s, D=2*u.m, rho=997.1*u.kg/u.m**3, mu=1E-3*u.Pa*u.s) The result is always one or more Quantity objects, depending on the signature of the function called. For arguments whose documentation specify they are dimensionless, they can optionally be passed in without making them dimensionless numbers with pint. >>> speed_synchronous(50*u.Hz, poles=12) >>> speed_synchronous(50*u.Hz, poles=12*u.dimensionless) It is good practice to use dimensionless quantities as follows, but it is optional. >>> K_separator_Watkins(0.88*u.dimensionless, 985.4*u.kg/u.m**3, 1.3*u.kg/u.m**3, horizontal=True) Like all pint registries, the default unit system can be changed. However, all functions will still return the unit their documentation says they do. To convert to the new base units, use the method .to_base_units(). >>> u.default_system = 'imperial' >>> K_separator_Watkins(0.88*u.dimensionless, 985.4*u.kg/u.m**3, 1.3*u.kg/u.m**3, horizontal=True).to_base_units() The order of the arguments to a function is the same as it is in the regular library; it won't try to infer argument position from their units, an exception will be raised. >>> K_separator_Watkins(985.4*u.kg/u.m**3, 1.3*u.kg/u.m**3, 0.88*u.dimensionless, horizontal=True) Exception: Converting 0.88 dimensionless to units of kg/m^3 raised DimensionalityError: Cannot convert from 'dimensionless' (dimensionless) to 'kilogram / meter ** 3' ([mass] / [length] ** 3) Support for classes is provided by wrapping each class by a proxy class which reads the docstrings of each method and the main class to determine the inputs and outputs. Properties, attributes, inputs, and units are all included. >>> T1 = TANK(L=3*u.m, D=150*u.cm, horizontal=True) >>> T1.V_total, T1.h_max (, ) >>> T1.V_from_h(0.1*u.m) >>> atm = ATMOSPHERE_NRLMSISE00(Z=1E3*u.m, latitude=45*u.degrees, longitude=45*u.degrees, day=150*u.day) >>> atm.rho, atm.O2_density (, ) Note that static methods cannot be used with the base class, only an instantiated class. This is because the proxy class wraps the methods only on creation of the object. >>> ATMOSPHERE_1976.thermal_conductivity(300*u.K) AttributeError: type object 'ATMOSPHERE_1976' has no attribute 'thermal_conductivity' >>> ATMOSPHERE_1976(0*u.m).thermal_conductivity(300*u.K) fluids-0.1.78/docs/fluids.atmosphere.rst0000644000175000017500000000017113632560624016755 0ustar kurtkurtAtmospheric properties (fluids.atmosphere) ========================================== .. automodule:: fluids.atmosphere fluids-0.1.78/docs/fluids.mixing.rst0000644000175000017500000000020613632560624016100 0ustar kurtkurtMixing (fluids.mixing) ====================== .. automodule:: fluids.mixing :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.piping.rst0000644000175000017500000000022613632560624016075 0ustar kurtkurtPipe schedules (fluids.piping) ============================== .. automodule:: fluids.piping :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/modules.rst0000644000175000017500000000010513632560624014766 0ustar kurtkurtAPI Reference ============= .. toctree:: :maxdepth: 4 fluids fluids-0.1.78/docs/fluids.vectorized.rst0000644000175000017500000000165513632560624016774 0ustar kurtkurtSupport for numpy arrays (fluids.vectorized) ============================================ Basic module which wraps all fluids functions with numpy's vectorize. All other object - dicts, classes, etc - are not wrapped. Supports star imports; so the same objects exported when importing from the main library will be imported from here. >>> from fluids.vectorized import * Inputs do not need to be numpy arrays; they can be any iterable: >>> fluids.vectorized.friction_factor(Re=[100, 1000, 10000], eD=0) array([ 0.64 , 0.064 , 0.03088295]) Note that because this needs to import fluids itself, fluids.vectorized needs to be imported separately; the following will cause an error: >>> import fluids >>> fluids.vectorized # Won't work, has not been imported yet The correct syntax is as follows: >>> import fluids.vectorized # Necessary >>> from fluids.vectorized import * # May be used without first importing fluids fluids-0.1.78/docs/fluids.two_phase.rst0000644000175000017500000000023713632560624016602 0ustar kurtkurtTwo phase flow (fluids.two_phase) ================================= .. automodule:: fluids.two_phase :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.separator.rst0000644000175000017500000000026113632560624016606 0ustar kurtkurtLiquid-Vapor Separators (fluids.separator) ========================================== .. automodule:: fluids.separator :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.packed_bed.rst0000644000175000017500000000026613632560624016654 0ustar kurtkurtPacked bed pressure drop (fluids.packed_bed) ============================================ .. automodule:: fluids.packed_bed :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.friction.rst0000644000175000017500000000030413632560624016421 0ustar kurtkurtFriction factor and pipe roughness (fluids.friction) ==================================================== .. automodule:: fluids.friction :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.open_flow.rst0000644000175000017500000000027713632560624016605 0ustar kurtkurtHydrology, weirs and open flow (fluids.open_flow) ================================================= .. automodule:: fluids.open_flow :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/fluids.rst0000644000175000017500000000101513632560624014605 0ustar kurtkurt.. toctree:: fluids.atmosphere fluids.compressible fluids.control_valve fluids.core fluids.drag fluids.filters fluids.fittings fluids.flow_meter fluids.friction fluids.geometry fluids.jet_pump fluids.mixing fluids.open_flow fluids.packed_bed fluids.packed_tower fluids.particle_size_distribution fluids.piping fluids.pump fluids.safety_valve fluids.separator fluids.saltation fluids.two_phase fluids.two_phase_voidage fluids.units fluids.vectorized fluids-0.1.78/docs/fluids.compressible.rst0000644000175000017500000000033213632560624017274 0ustar kurtkurtCompressible flow and compressor sizing (fluids.compressible) ============================================================= .. automodule:: fluids.compressible :members: :undoc-members: :show-inheritance: fluids-0.1.78/docs/Examples/0000755000175000017500000000000013632560624014346 5ustar kurtkurtfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/0000755000175000017500000000000013632560624021150 5ustar kurtkurtfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.5 Lift Check Valves.ipynb0000644000175000017500000000570413632560624025630 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.5 Lift Check Valves" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A lift check valve of type globe (with a wing-guided disc) is added to a 80 mm Schedule 40 horizontal pipe carying water at a flow rate of 300 L/min.\n", "\n", "Calculate the check valve size, and pressure drop. The disc should be fully lifted at the specified flow." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minimum velocity = 1.582563779 meter / second\n", "Velocity in 80 mm valve = 1.04907178712 meter / second\n", "Minimum velocity = 1.02523019353 meter / second\n", "Velocity in 60 mm valve = 1.61936609196 meter / second\n", "Loss coefficient = 24.8796766231 dimensionless\n", "Pressure drop = 13666.0409068 pascal\n" ] } ], "source": [ "from fluids.units import *\n", "from math import *\n", "Q = 300*u.L/u.min\n", "D_80 = 77.9*u.mm\n", "\n", "rho = 998.2*u.kg/u.m**3\n", "# Try: schedule 40, 80 mm valve\n", "D_60 = 62.7*u.mm\n", "v_lift = v_lift_valve_Crane(rho=rho, D1=D_80, D2=D_80, style='lift check straight')\n", "print('Minimum velocity = %s' %v_lift)\n", "\n", "v = Q/(pi/4*D_80**2)\n", "print('Velocity in 80 mm valve = %s' %v.to_base_units())\n", "\n", "# v is lower than the lift velocity; try the 60 mm valve\n", "v_lift = v_lift_valve_Crane(rho=rho, D1=D_60, D2=D_80, style='lift check straight')\n", "print('Minimum velocity = %s' %v_lift)\n", "\n", "v = Q/(pi/4*D_60**2)\n", "print('Velocity in 60 mm valve = %s' %v.to_base_units())\n", "# The desired velocity is close enough\n", "\n", "fd = 0.017 # given, 80 mm pipe upstream\n", "K2 = K_lift_check_valve_Crane(D_60, D_80, fd=fd, angled=False)\n", "print('Loss coefficient = %s'%K2)\n", "v_pipe = Q/(pi/4*D_80**2)\n", "\n", "dP = 0.5*rho*v_pipe**2*K2\n", "print('Pressure drop = %s' %dP.to(u.Pa))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "The values calculated in the example are K2 = 26.3 and pressure drop = 14450 Pa. Interestingly, the formula for minimum lift velocity used in their example does not use the ratio of diameters as the formula in their appendix shows. Otherwise the examples match.\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } ././@LongLink0000644000000000000000000000017200000000000011603 Lustar rootrootfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.2 L, L over D and K from Kv for Conventional Type Valves.ipynbfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.2 L, L over D and K from Kv for Conventio0000644000175000017500000000353113632560624027766 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# 7.2 L, L over D and K from Kv for Conventional Type Valves" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A 150 mm class 125 Y-pattern globe valve with a Kv=500 flow coefficient is given.\n", "\n", "Calculate the resistance coefficient K, L/D equivalent, and the length for complete turbulence in the flow.\n", "\n", "Use schedule 40, 150 mm pipe as a reference." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loss coefficient = 3.5996713984 dimensionless\n", "Equivalent length = 239.978093227 dimensionless\n", "Length for complete turbulence = 36.9566263569 meter\n" ] } ], "source": [ "from fluids.units import *\n", "D = .154*u.m\n", "Kv = 500*u.m**3/u.hour\n", "\n", "K = Kv_to_K(Kv, D)\n", "L_D = L_equiv_from_K(K, fd=.015)\n", "L = D*L_D\n", "\n", "print('Loss coefficient = %s' %K)\n", "print('Equivalent length = %s' % L_D)\n", "print('Length for complete turbulence = %s' %L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results calculated in Crane TP 410M are 3.6, 240, and 37.0 respectively." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 } ././@LongLink0000644000000000000000000000022700000000000011604 Lustar rootrootfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.8 Laminar flow in Valves, Fittings, and Pipe - SAE oil through a pipe and globe valve.ipynbfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.8 Laminar flow in Valves, Fittings, and P0000644000175000017500000000421713632560624030322 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.8 Laminar flow in Valves, Fittings, and Pipe - SAE oil through a pipe and globe valve" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "S.A.E. 30 Oil at 40 degrees Celsius and a flow rate of 600 barrels/hour flows in a 60 m long 200mm schedule 40 pipe and passes through a 200 mm globe valve, full area seat.\n", "\n", "Calculate the pressure drop." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "5781.61276167 pascal" ], "text/latex": [ "$5781.61276167\\ \\mathrm{pascal}$" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from fluids.units import *\n", "from thermo import Stream\n", "from math import *\n", "Q = 600*u.barrel/u.hour\n", "L = 60*u.m\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Di=200*u.mm)\n", "\n", "rho = 869.2*u.kg/u.m**3\n", "mu = 130*u.cP\n", "\n", "V = Q/(pi/4*D_pipe**2)\n", "Re = Reynolds(D=D_pipe, V=V, rho=rho, mu=mu)\n", "fd = friction_factor(Re=Re)\n", "ft = friction_factor(Re=1E6, eD=0.0018*u.inch/D_pipe)\n", "K = K_globe_valve_Crane(D1=D_pipe, D2=D_pipe, fd=ft)\n", "K += K_from_f(fd=fd, L=L, D=D_pipe)\n", "dP_from_K(K=K, V=V, rho=rho)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The example gives a pressure drop of 6382 Pa." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.11 Flat heating Coils - Water.ipynb0000644000175000017500000000555513632560624027274 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "# 7.11 Flat heating Coils - Water" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Water at 80 degrees Celsius flows through a flat heating coil at a rate of 60 L/min. There are 7 180 degree bends in it. The coil is 8 m long, with 0.5 m of straight length on the inlet and exit. The r/D of the bends is 4. The pipe is schedule 40, 25 mm pipe." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pressure drop = 61330.665674 pascal\n" ] } ], "source": [ "from math import *\n", "from fluids.units import *\n", "from thermo.units import Chemical\n", "\n", "water = Chemical('water', P=2*u.bar, T=80*u.degC) # P assumed\n", "rho = water.rho\n", "mu = water.mu\n", "\n", "Q = 60*u.L/u.min\n", "L = (1*8 + 0.5*2)*u.m\n", "\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Di=25*u.mm)\n", "v = Q/(pi/4*D_pipe**2)\n", "Re = Reynolds(rho=rho, mu=mu, D=D_pipe, V=v)\n", "fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)\n", "\n", "K_elbow = bend_rounded(Di=D_pipe, angle=180*u.degrees, fd=fd, bend_diameters=5)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "\n", "K_tot = 7*K_elbow + K_friction\n", "dP = dP_from_K(K=K_tot, rho=rho, V=v)\n", "print('Pressure drop = %s' %dP.to(u.Pa))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The value presented in the solution is 19609 Pa. They chose a constant friction factor of 0.024 in this calculation. If this were used, the result compares much better. Their friction factor can be obtained at a roughness of 0.05 mm." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pressure drop = 18539.7300274 pascal\n" ] } ], "source": [ "fd = 0.024\n", "K_elbow = bend_rounded(Di=D_pipe, angle=180*u.degrees, fd=fd, bend_diameters=5)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "\n", "K_tot = 7*K_elbow + K_friction\n", "dP = dP_from_K(K=K_tot, rho=rho, V=v)\n", "print('Pressure drop = %s' %dP.to(u.Pa))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.29 Orifice Flow Rate Calculation.ipynb0000644000175000017500000000621213632560624030137 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.29 Orifice Flow Rate Calculation" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "0.07366 meter" ], "text/latex": [ "$0.07366\\ \\mathrm{meter}$" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from fluids.units import *\n", "from thermo.units import Chemical\n", "\n", "P1 = 2*u.bar # The full set of equations requires actual pressures not just the pressure difference, so an initial pressure of 2 bar is assumed.\n", "P2 = P1 - 17*u.kPa\n", "taps = 'D'\n", "meter_type = 'ISO 5167 orifice'\n", "Do = 50*u.mm\n", "\n", "NPS, D, _, t_pipe = nearest_pipe(Do=80*u.mm, schedule=80)\n", "\n", "D" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(,\n", " ,\n", " )" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "water = Chemical('water', T=15*u.degC, P=P1)\n", "rho = water.rho\n", "mu = water.mu\n", "k = water.isentropic_exponent\n", "rho, mu, k" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7.70427741167 kilogram / second\n", "462.650196056 liter / minute\n" ] } ], "source": [ "m = differential_pressure_meter_solver(D=D, D2=Do, P1=P1, P2=P2, rho=rho, mu=mu, k=k, meter_type=meter_type, taps=taps)\n", "print(m)\n", "Q = m/rho\n", "print(Q.to('L/min'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The answer given in TP410M is 478 gallons/minute; however the errata\n", "specifies this value is in units of liters/minute insteead.\n", "\n", "This calculation matches their result well, given they did not include expansivity in their calculations and read a value of C from a graph.\n", "\n", "A calculator at flow of fluids, which also does not include expansivity, gives an answer of 476.777 L/min, along with 7.93916 kg/s (http://www.flowoffluids.com/calculators/flow-through-orifices.aspx)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.14 Bernoulli's Theorem-Water.ipynb0000644000175000017500000001031713632560624027420 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.14 Bernoulli's Theorem-Water" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Water at 15 degrees Celsius is flowing through the piping system shown in Crane TP 410M's example at 1500 L/min.\n", "\n", "Calculate the velocity in both 4 and 5 inch sizes; and the pressure drop.\n", "\n", "Note: This problem suggests to handle the changing size elbow by adding on the result of a smooth expansion, which is also used here." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "332625.262817 pascal" ], "text/latex": [ "$332625.262817\\ \\mathrm{pascal}$" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from math import *\n", "from fluids.units import *\n", "from thermo.units import Chemical\n", "\n", "water = Chemical('water', P=2*u.bar, T=15*u.degC)\n", "rho = water.rho\n", "mu = water.mu\n", "\n", "Q = 1500*u.L/u.min\n", "r_d = 1.5\n", "_, D1, _, _ = nearest_pipe(Di=100*u.mm)\n", "_, D2, _, _ = nearest_pipe(Di=125*u.mm)\n", "L1 = 34*u.m\n", "L2 = (22+45)*u.m\n", "dH = 22*u.m\n", "beta = D1/D2\n", "\n", "V1 = Q/(pi/4*D1**2)\n", "V2 = Q/(pi/4*D2**2)\n", "Re1 = Reynolds(rho=rho, mu=mu, V=V1, D=D1)\n", "Re2 = Reynolds(rho=rho, mu=mu, V=V2, D=D2)\n", "fd1 = friction_factor(Re=Re1, eD=0.0018*u.inch/D1)\n", "fd2 = friction_factor(Re=Re2, eD=0.0018*u.inch/D2)\n", "fd = (fd1+fd2)/2\n", "\n", "dP = rho*u.gravity*dH\n", "\n", "K_D1 = bend_rounded(Di=D1, angle=90*u.degrees, fd=fd, bend_diameters=r_d)\n", "K_D1 += diffuser_conical(D1, D2, angle=30*u.degrees, fd=fd)\n", "K_D1 += K_from_f(fd=fd1, L=L1, D=D1)\n", "\n", "K_D2 = bend_rounded(Di=D2, angle=90*u.degrees, fd=fd, bend_diameters=r_d)\n", "K_D2 += K_from_f(fd=fd2, L=L2, D=D2)\n", "\n", "dP += dP_from_K(K=K_D1, rho=rho, V=V1)\n", "dP += dP_from_K(K=K_D2, rho=rho, V=V2)\n", "dP.to(u.Pa)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result calculated in Crane's TP 410m is 26450 Pa. Their friction factor is 0.018. Again, it that value is used, the result calculated matches theirs - except this is off by an order of magnitude.\n", "\n", "In this edition, the gravitational term was forgotten. The prior 8th edition lists a value of 2.6 bar as the result for this problem. If their friction factor is used with this model, the following calculates a pressure drop of 2.62 bar." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "262439.430838 pascal" ], "text/latex": [ "$262439.430838\\ \\mathrm{pascal}$" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fd = fd1 = fd2 = .018\n", "dP = rho*u.gravity*dH\n", "\n", "K_D1 = bend_rounded(Di=D1, angle=90*u.degrees, fd=fd, bend_diameters=r_d)\n", "K_D1 += contraction_round(D1, D2, r_d*D1)\n", "K_D1 += K_from_f(fd=fd1, L=L1, D=D1)\n", "\n", "K_D2 = bend_rounded(Di=D2, angle=90*u.degrees, fd=fd, bend_diameters=r_d)\n", "K_D2 += K_from_f(fd=fd2, L=L2, D=D2)\n", "\n", "dP += dP_from_K(K=K_D1, rho=rho, V=V1)\n", "dP += dP_from_K(K=K_D2, rho=rho, V=V2)\n", "dP.to(u.Pa)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } ././@LongLink0000644000000000000000000000014600000000000011604 Lustar rootrootfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.13 Flow given in English Units - Oil.ipynbfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.13 Flow given in English Units - Oil.ipyn0000644000175000017500000000574113632560624030276 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.13 Flow given in English Units - Oil" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fuel oil at a specific gravity of 0.815 (kinematic viscosity of 2.7 centistokes) flows at 2 inch, schedule 40 steel pipe 100 foot long at a rate of 2 US gallons/second.\n", "\n", "Calculate the pressure drop in bars and psi." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Darcy friction factor = 0.0609076579823 dimensionless\n", "Pressure drop = 176425.270238 pascal\n", "In imperial, pressure drop = 25.5883220737 pound_force_per_square_inch\n" ] } ], "source": [ "from math import *\n", "from fluids.units import *\n", "from thermo import *\n", "\n", "SG = 0.815\n", "rho = SG*999.1*u.kg/u.m**3\n", "nu = 2.7*u.centistokes\n", "mu = nu_mu_converter(rho, nu=nu)\n", "Q = 2*u.gal/u.s\n", "L = 100*u.foot\n", "\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Di=2*u.inch)\n", "v = Q/(pi/4*D_pipe**2)\n", "Re = Reynolds(rho=rho, mu=mu, D=D_pipe, V=v)\n", "fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)\n", "print('Darcy friction factor = %s' %fd)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "dP = dP_from_K(K=K_friction, rho=rho, V=v)\n", "print('Pressure drop = %s' %dP.to(u.Pa))\n", "print('In imperial, pressure drop = %s' %dP.to(u.psi))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pressure drop calculated in the example is 66500 Pa (9.65 psi). The discrepancy is from their friction factor; they use 0.0230. The result is matched exactly if their friction factor is used." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Darcy friction factor = 0.023\n", "Pressure drop = 66621.8559355 pascal\n", "In imperial, pressure drop = 9.66268326827 pound_force_per_square_inch\n" ] } ], "source": [ "fd = 0.023\n", "print('Darcy friction factor = %s' %fd)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "dP = dP_from_K(K=K_friction, rho=rho, V=v)\n", "print('Pressure drop = %s' %dP.to(u.Pa))\n", "print('In imperial, pressure drop = %s' %dP.to(u.psi))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } ././@LongLink0000644000000000000000000000016700000000000011607 Lustar rootrootfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.3 L, L over D, K, and Kv for Conventional Type Valves.ipynbfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.3 L, L over D, K, and Kv for Conventional0000644000175000017500000000412413632560624027665 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.3 L, L over D, K, and Kv for Conventional Type Valves" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "A 100 mm class 600 steel angle valve, has a full area seat.\n", "\n", "Calculate its resistance coefficient K, flow coefficient Kv, the equivalent length of it L/D, and the length for complete turbulent L." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Loss coefficient = 2.47296378211 dimensionless\n", "Valve flow coefficient = 240.316529308 meter ** 3 / hour\n", "Equivalent length = 149.876592855 dimensionless\n", "Length for complete turbulence = 14.5680048255 meter\n" ] } ], "source": [ "from fluids.units import *\n", "NPS, Di, Do, t = nearest_pipe(Do=0.103*u.m, schedule='80')\n", "fd = 0.0165 # provided - note equivalent length is proportional to this value\n", "d = 0.0972*u.m # diameter of seat\n", "K = K_angle_valve_Crane(D1=d, D2=Di, fd=fd, style=1)\n", "Kv = K_to_Kv(K, d)\n", "L_D = L_equiv_from_K(K, fd)\n", "L = L_D*d\n", "\n", "print('Loss coefficient = %s' %K)\n", "print('Valve flow coefficient = %s' %Kv)\n", "print('Equivalent length = %s' % L_D)\n", "print('Length for complete turbulence = %s' %L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The values given in the solution are K=2.475, Kv = 240.2, L/D=150, and L = 14.6." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.1 Smooth Pipe (Plastic).ipynb0000644000175000017500000000366313632560624026341 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.1 Smooth Pipe (Plastic)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "Water at 30 degrees Celsius flows through a 20 m length of 50 mm plastic (smooth wall) pipe, at a flow rate of 200 L/min.\n", "\n", "Calculate the Reynolds number and friction factor." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reynolds number = 101005.004737 dimensionless\n", "Darcy friction factor = 0.0181086578522 dimensionless\n" ] } ], "source": [ "from fluids.units import *\n", "from thermo.units import Stream\n", "from math import *\n", "\n", "Q = 0.2*u.m**3/u.min\n", "T = 30*u.degC\n", "P = 2*u.bar # assumed\n", "water = Stream('water', T=T, P=P, Q=Q)\n", "\n", "NPS, Di, Do, t = nearest_pipe(Di=0.05*u.m)\n", "v = Q/(pi/4*Di**2)\n", "Re = Reynolds(D=Di, rho=water.rho, mu=water.mu, V=v)\n", "print('Reynolds number = %s' %Re)\n", "fd = friction_factor(Re=Re, eD=_roughness['Glass']/Di)\n", "print('Darcy friction factor = %s' %fd)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The values presented in their solution are Re=100600; and fd=0.0179. The difference in values is due to the precision they used." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.6 Reduced Port Ball Valve.ipynb0000644000175000017500000001026713632560624026665 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.6 Reduced Port Ball Valve" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Water is discharged at 15 degrees Celsius from a tank with 7 m of head to atmosphere through:\n", "\n", "* 60 meters of 80 mm schedule 40 pipe\n", "* Six 80 mm standard 90 degree threaded elbows\n", "* One 80 mm flanged ball valve, with a 60 mm diameter seat, 16 degree conical inlet and 30 degree conival outlet.\n", "* The entrance is sharp-edged and flush with the tank" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Velocity = 2.77004132376 meter / second\n", "Flow rate = 792.547439913 liter / minute\n" ] } ], "source": [ "from thermo.units import Chemical\n", "from fluids.units import *\n", "from math import pi\n", "water = Chemical('water', T=15*u.degC)\n", "rho = water.rho\n", "mu = water.mu\n", "\n", "H = 7*u.m\n", "L = 60*u.m\n", "fd = 0.017 # assumed in their example\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Do=80*u.mm)\n", "\n", "K = K_from_f(fd=fd, L=L, D=D_pipe)\n", "K += entrance_sharp()\n", "K += exit_normal()\n", "K += 6*bend_rounded(D_pipe, angle=90*u.degrees, fd=fd, bend_diameters=0.65)\n", "ball_valve_angle = 0.5*(15+30)*u.degrees # use the average angle\n", "K += K_ball_valve_Crane(D1=D_pipe, D2=60*u.mm, angle=ball_valve_angle, fd=fd)\n", "\n", "v = (2*u.gravity*H/K)**0.5\n", "print('Velocity = %s' %v.to_base_units())\n", "Q = v*pi/4*D_pipe**2\n", "print('Flow rate = %s' %Q.to(u.L/u.min))\n", "Re = Reynolds(D=D_pipe, rho=rho, mu=mu, V=v)\n", "fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The radius of curvature of the elbows was not specified; 0.65 bend diameters matches their results most closely. They modified the ball valve equation to support both an inlet and an outlet angle; the average value is used here.\n", "\n", "Their calculated values are 2.74 m/s and flow rate of 781 L/min.\n", "\n", "The calculation can be performed more accurately by iterating; a naive approach is shown below. A very different flow rate is obtained when the roughness of the pipe is considered in the friction factor calculation." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Flow rate = 792.547439913 liter / minute\n", "Flow rate = 473.249278655 liter / minute\n", "Flow rate = 472.693638206 liter / minute\n", "Flow rate = 472.692023884 liter / minute\n", "Flow rate = 472.692019188 liter / minute\n", "Flow rate = 472.692019174 liter / minute\n", "Flow rate = 472.692019174 liter / minute\n" ] } ], "source": [ "fd = 0.017\n", "for i in range(7):\n", " K = K_from_f(fd=fd, L=L, D=D_pipe)\n", " K += entrance_sharp()\n", " K += exit_normal()\n", " K += 6*bend_rounded(D_pipe, angle=90*u.degrees, fd=fd, bend_diameters=0.65)\n", " ball_valve_angle = 0.5*(15+30)*u.degrees # use the average angle\n", " K += K_ball_valve_Crane(D1=D_pipe, D2=60*u.mm, angle=ball_valve_angle, fd=fd)\n", "\n", " v = (2*u.gravity*H/K)**0.5\n", " Q = v*pi/4*D_pipe**2\n", " print('Flow rate = %s' %Q.to(u.L/u.min))\n", " Re = Reynolds(D=D_pipe, rho=rho, mu=mu, V=v)\n", " fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } ././@LongLink0000644000000000000000000000021000000000000011574 Lustar rootrootfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.7 Laminar flow in Valves, Fittings, and Pipe - System from Example 7.6.ipynbfluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.7 Laminar flow in Valves, Fittings, and P0000644000175000017500000001100413632560624030311 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.7 Laminar flow in Valves, Fittings, and Pipe - System from Example 7.6" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SAE oil is discharged at 15 degrees Celsius from a tank with 7 m of head to atmosphere through:\n", "\n", "* 60 meters of 80 mm schedule 40 pipe\n", "* Six 80 mm standard 90 degree threaded elbows\n", "* One 80 mm flanged ball valve, with a 60 mm diameter seat, 16 degree conical inlet and 30 degree conival outlet.\n", "* The entrance is sharp-edged and flush with the tank\n", "\n", "This is the same problem as 7.6, except the properties of the fluid are sufficiently viscous to put it into the laminar regime although not by much." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Flow rate = 792.547439913 liter / minute, Reynolds number = 100000.0\n", "Flow rate = 428.461048981 liter / minute, Reynolds number = 2421.30022376 dimensionless\n", "Flow rate = 485.75141276 liter / minute, Reynolds number = 1308.98515537 dimensionless\n", "Flow rate = 515.733166793 liter / minute, Reynolds number = 1484.01211735 dimensionless\n", "Flow rate = 530.620769781 liter / minute, Reynolds number = 1575.60894058 dimensionless\n", "Flow rate = 537.828263434 liter / minute, Reynolds number = 1621.0918412 dimensionless\n", "Flow rate = 541.275603892 liter / minute, Reynolds number = 1643.11135084 dimensionless\n", "Flow rate = 542.915000096 liter / minute, Reynolds number = 1653.64327082 dimensionless\n", "Flow rate = 543.692496106 liter / minute, Reynolds number = 1658.65176646 dimensionless\n", "Flow rate = 544.060753053 liter / minute, Reynolds number = 1661.02708328 dimensionless\n", "Flow rate = 544.23506934 liter / minute, Reynolds number = 1662.15213975 dimensionless\n", "Flow rate = 544.317558945 liter / minute, Reynolds number = 1662.68469092 dimensionless\n", "Flow rate = 544.356589163 liter / minute, Reynolds number = 1662.93670372 dimensionless\n", "Flow rate = 544.375055237 liter / minute, Reynolds number = 1663.05594438 dimensionless\n", "Flow rate = 544.383791685 liter / minute, Reynolds number = 1663.11235981 dimensionless\n", "Flow rate = 544.387924908 liter / minute, Reynolds number = 1663.13905041 dimensionless\n", "Flow rate = 544.389880327 liter / minute, Reynolds number = 1663.15167776 dimensionless\n", "Flow rate = 544.390805428 liter / minute, Reynolds number = 1663.15765173 dimensionless\n", "Flow rate = 544.39124309 liter / minute, Reynolds number = 1663.16047799 dimensionless\n", "Flow rate = 544.391450145 liter / minute, Reynolds number = 1663.16181509 dimensionless\n" ] } ], "source": [ "from fluids.units import *\n", "from math import pi\n", "rho = 875.*u.kg/u.m**3\n", "mu = 78*u.cP\n", "\n", "H = 7*u.m\n", "L = 60*u.m\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Do=80*u.mm)\n", "\n", "fd = 0.017\n", "Re = 1E5\n", "for i in range(20):\n", " K = K_from_f(fd=fd, L=L, D=D_pipe)\n", " K += entrance_sharp()\n", " K += exit_normal()\n", " K += 6*bend_rounded(D_pipe, angle=90*u.degrees, fd=fd, bend_diameters=0.65)\n", " ball_valve_angle = 0.5*(15+30)*u.degrees # use the average angle\n", " K += K_ball_valve_Crane(D1=D_pipe, D2=60*u.mm, angle=ball_valve_angle, fd=fd)\n", "\n", " v = (2*u.gravity*H/K)**0.5\n", " Q = v*pi/4*D_pipe**2\n", " print('Flow rate = %s, Reynolds number = %s' %(Q.to(u.L/u.min), Re))\n", " Re = Reynolds(D=D_pipe, rho=rho, mu=mu, V=v)\n", " fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "No solution is actually presented in the example; but the result of their initial guess of a velocity of 1.5 m/s gives 511.2 L/min." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.4 Venturi Type Valves.ipynb0000644000175000017500000000460413632560624026267 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.4 Venturi Type Valves" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A 150 by 100 mm class 600 steel gate valve, conically tapered ports, length 550 mm, back of seat ring ~150 mm. The valve is connected to 146 mm schedule 80 pipe. The angle can be calculated to be 13 degrees. The valve is specified to be operating in turbulent conditions." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Darcy friction factor = 0.0180867553648 dimensionless\n", "K2 = 1.25803315 dimensionless\n", "Equivalent length L_D = 69.5554910005 dimensionless\n", "Length for flow in complete turbulence = 10.1551016861 meter\n" ] } ], "source": [ "from fluids.units import *\n", "D1 = 100*u.mm\n", "D2 = 146*u.mm\n", "angle = 13.115*u.degrees\n", "fd = friction_factor(Re=1E5, eD=.0018*u.inch/D1)\n", "\n", "K2 = K_gate_valve_Crane(D1, D2, angle, fd)\n", "L_D = L_equiv_from_K(K2, fd)\n", "L = (L_D*D2).to(u.m)\n", "\n", "print('Darcy friction factor = %s' %fd)\n", "print('K2 = %s' %K2)\n", "print('Equivalent length L_D = %s' %L_D)\n", "print('Length for flow in complete turbulence = %s' %L)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The values calculated in the problem use a friction factor of 0.015; this is the source of the discrepancies. Their procedure for loss in valves and fittings is based around the roughness of commercial steel pipe with a roughness of 0.0018 inches, but in their examples they simply look their friction factors up in a table which does not consider the diameter of the pipe.\n", "Their calculated values are K2 = 1.22, L/D=81.3, and L = 11.9." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 1 } fluids-0.1.78/docs/Examples/Crane TP 410 Solved Problems/7.10 Piping Systems - Steam.ipynb0000644000175000017500000001421113632560624026605 0ustar kurtkurt{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 7.10 Piping Systems - Steam" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "40 bar steam, 450 degrees Celsius flows though a 120 m long horizontal 150mm schedule 80 pipe at a rate of\n", "40000 kg/hr. \n", "\n", "There are three 90 degree weld elbows with rc=1.5, \n", "1 fully open class 600 150mm x 100mm venturi class gate valve, one class 600 150 mm class y pattern globe valve with a seat diameter of 90% the inside pipe diameter (disc fully lifted).\n", "\n", "Calculate the pressure drop through the system." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Density = 12.5195049457 kilogram / meter ** 3\n", "Viscosity = 2.65571609065e-05 pascal * second\n" ] } ], "source": [ "from math import *\n", "from fluids.units import *\n", "from thermo.units import Stream\n", "\n", "m = 40000*u.kg/u.hr\n", "T = 450*u.degC\n", "P = 40*u.bar\n", "\n", "steam = Stream('water', T=T, P=P, m=m)\n", "\n", "rho = steam.rho\n", "mu = steam.mu\n", "print('Density = %s' %rho)\n", "print('Viscosity = %s' %mu)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Crane elbow term = 0.63; calculated = 1.26189256438 dimensionless\n", "Crane globe valve term = 1.44; calculated = 21.1562338391 dimensionless\n", "Crane gate valve term = 1.22; calculated = 2.10552435922 dimensionless\n", "Crane friction term = 12.3; calculated = 33.3833135584 dimensionless\n", "Darcy friction factor = 0.04071651477 dimensionless\n", "Pressure drop = 1008693.59173 pascal\n" ] } ], "source": [ "L = 120*u.m\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Do=150*u.mm, schedule='80')\n", "Q = m/rho\n", "v = Q/(pi/4*D_pipe**2)\n", "Re = Reynolds(rho=rho, mu=mu, D=D_pipe, V=v)\n", "fd = friction_factor(Re=Re, eD=0.0018*u.inch/D_pipe)\n", "K_elbow = bend_rounded(Di=D_pipe, angle=90*u.degrees, fd=fd, bend_diameters=1.5)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "K_globe_valve = K_globe_valve_Crane(D1=0.9*D_pipe, D2=D_pipe, fd=fd)\n", "# Angle and inside diameter are taken from example 7.4,\n", "K_gate_valve = K_gate_valve_Crane(D1=100*u.mm, D2=D_pipe, angle=13.115*u.degrees, fd=fd)\n", "\n", "K_tot = K_gate_valve + K_globe_valve + 3*K_elbow + K_friction\n", "dP = dP_from_K(K=K_tot, rho=rho, V=v)\n", "\n", "print('Crane elbow term = 0.63; calculated = %s' % (3*K_elbow))\n", "print('Crane globe valve term = 1.44; calculated = %s' % (K_globe_valve))\n", "print('Crane gate valve term = 1.22; calculated = %s' % (K_gate_valve))\n", "print('Crane friction term = 12.3; calculated = %s' % (K_friction))\n", "print('Darcy friction factor = %s' %fd)\n", "print('Pressure drop = %s' %dP.to(u.Pa))" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "This compares terribly to the example, which calculates a pressure drop of 274800 Pa!\n", "\n", "Two errors are apparent - their example uses a different coefficient (55) in the globe valve pressure drop equation than that shown in their appendix (340); and they re-use their prior calculated gate valve, despite the friction factor being different in this example.\n", "This, plus their use of a constant 0.015 friction factor, explains the difference. \n", "\n", "The example below uses their calculated globe valve pressure drop and their friction factor. The result (268500 Pa) compares well with their calculation; the additional decimals and better physical properties explain the rest. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Crane elbow term = 0.63; calculated = 0.598864740713 dimensionless\n", "Crane globe valve term = 1.44; calculated = 1.44\n", "Crane gate valve term = 1.22; calculated = 1.16148152353 dimensionless\n", "Crane friction term = 12.3; calculated = 12.2984421973 dimensionless\n", "Darcy friction factor = 0.015\n", "Pressure drop = 269976.656247 pascal\n" ] } ], "source": [ "L = 120*u.m\n", "NPS, D_pipe, Do_pipe, t = nearest_pipe(Do=150*u.mm, schedule='80')\n", "Q = m/rho\n", "v = Q/(pi/4*D_pipe**2)\n", "Re = Reynolds(rho=rho, mu=mu, D=D_pipe, V=v)\n", "fd = 0.015\n", "K_elbow = bend_rounded(Di=D_pipe, angle=90*u.degrees, fd=fd, bend_diameters=1.5)\n", "K_friction = K_from_f(fd=fd, L=L, D=D_pipe)\n", "K_globe_valve = 1.44\n", "# Angle and inside diameter are taken from example 7.4,\n", "K_gate_valve = K_gate_valve_Crane(D1=100*u.mm, D2=D_pipe, angle=13.115*u.degrees, fd=fd)\n", "\n", "K_tot = K_gate_valve + K_globe_valve + 3*K_elbow + K_friction\n", "dP = dP_from_K(K=K_tot, rho=rho, V=v)\n", "\n", "print('Crane elbow term = 0.63; calculated = %s' % (3*K_elbow))\n", "print('Crane globe valve term = 1.44; calculated = %s' % (K_globe_valve))\n", "print('Crane gate valve term = 1.22; calculated = %s' % (K_gate_valve))\n", "print('Crane friction term = 12.3; calculated = %s' % (K_friction))\n", "print('Darcy friction factor = %s' %fd)\n", "print('Pressure drop = %s' %dP.to(u.Pa))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 } fluids-0.1.78/tests/0000755000175000017500000000000013632560624013002 5ustar kurtkurtfluids-0.1.78/tests/spa/0000755000175000017500000000000013632560624013565 5ustar kurtkurtfluids-0.1.78/tests/spa/test_spa.py0000644000175000017500000004600213632560624015763 0ustar kurtkurt# -*- coding: utf-8 -*- """ test_spa unit test suite from pvlib =================================== Vendorized version from: https://github.com/pvlib/pvlib-python/ The rational for not including this library as a strict dependency is to avoid including a dependency on pandas, keeping load time low, and PyPy compatibility . .. moduleauthor :: Tony Lorenzo .. moduleauthor :: Will Holmgren .. moduleauthor :: Volker Beutner < VolkerBeu@gmail.com > Some tests were changed and added as well. The copyright notice (BSD-3 clause) is as follows: BSD 3-Clause License Copyright (c) 2013-2018, Sandia National Laboratories and pvlib python Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ import os import datetime as dt try: from importlib import reload except ImportError: try: from imp import reload except ImportError: pass import numpy as np from numpy.testing import assert_almost_equal, assert_allclose import pandas as pd import unittest import pytest try: from numba import __version__ as numba_version numba_version_int = int(numba_version.split('.')[0] + numba_version.split('.')[1]) except ImportError: numba_version_int = 0 from fluids.optional import spa times = (pd.date_range('2003-10-17 12:30:30', periods=1, freq='D') .tz_localize('MST')) unixtimes = np.array(times.tz_convert('UTC').astype(np.int64)*1.0/10**9) lat = 39.742476 lon = -105.1786 elev = 1830.14 pressure = 820 temp = 11 delta_t = 67.0 atmos_refract= 0.5667 JD = 2452930.312847 JC = 0.0379277986858 JDE = 2452930.313623 JCE = 0.037927819916852 JME = 0.003792781991685 L = 24.0182616917 B = -0.0001011219 R = 0.9965422974 Theta = 204.0182616917 beta = 0.0001011219 X0 = 17185.861179 X1 = 1722.893218 X2 = 18234.075703 X3 = 18420.071012 X4 = 51.686951 dPsi = -0.00399840 dEpsilon = 0.00166657 epsilon0 = 84379.672625 epsilon = 23.440465 dTau = -0.005711 lamd = 204.0085519281 v0 = 318.515579 v = 318.511910 alpha = 202.227408 delta = -9.31434 H = 11.10590 xi = 0.002451 dAlpha = -0.000369 alpha_prime = 202.22704 delta_prime = -9.316179 H_prime = 11.10627 e0 = 39.872046 de = 0.016332 e = 39.888378 theta = 50.11162 theta0 = 90 - e0 Gamma = 14.340241 Phi = 194.340241 year = 1985 month = 2 year_array = np.array([-499, 500, 1000, 1500, 1800, 1900, 1950, 1970, 1985, 1990, 2000, 2005]) month_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) dt_actual = 54.413442486 dt_actual_array = np.array([1.7184831e+04, 5.7088051e+03, 1.5730419e+03, 1.9801820e+02, 1.3596506e+01, -2.1171894e+00, 2.9289261e+01, 4.0824887e+01, 5.4724581e+01, 5.7426651e+01, 6.4108015e+01, 6.5038015e+01]) mix_year_array = np.full((10), year) mix_month_array = np.full((10), month) mix_year_actual = np.full((10), dt_actual) mix_month_actual = mix_year_actual class SpaBase(object): """Test functions common to numpy and numba spa""" def test_julian_day_dt(self): dt = times.tz_convert('UTC')[0] year = dt.year month = dt.month day = dt.day hour = dt.hour minute = dt.minute second = dt.second microsecond = dt.microsecond assert_almost_equal(JD, self.spa.julian_day_dt(year, month, day, hour, minute, second, microsecond), 6) def test_julian_ephemeris_day(self): assert_almost_equal(JDE, self.spa.julian_ephemeris_day(JD, delta_t), 5) def test_julian_century(self): assert_almost_equal(JC, self.spa.julian_century(JD), 6) def test_julian_ephemeris_century(self): assert_almost_equal(JCE, self.spa.julian_ephemeris_century(JDE), 10) def test_julian_ephemeris_millenium(self): assert_almost_equal(JME, self.spa.julian_ephemeris_millennium(JCE), 10) def test_heliocentric_longitude(self): assert_almost_equal(L, self.spa.heliocentric_longitude(JME), 6) def test_heliocentric_latitude(self): assert_almost_equal(B, self.spa.heliocentric_latitude(JME), 6) def test_heliocentric_radius_vector(self): assert_almost_equal(R, self.spa.heliocentric_radius_vector(JME), 6) def test_geocentric_longitude(self): assert_almost_equal(Theta, self.spa.geocentric_longitude(L), 6) def test_geocentric_latitude(self): assert_almost_equal(beta, self.spa.geocentric_latitude(B), 6) def test_mean_elongation(self): assert_almost_equal(X0, self.spa.mean_elongation(JCE), 5) def test_mean_anomaly_sun(self): assert_almost_equal(X1, self.spa.mean_anomaly_sun(JCE), 5) def test_mean_anomaly_moon(self): assert_almost_equal(X2, self.spa.mean_anomaly_moon(JCE), 5) def test_moon_argument_latitude(self): assert_almost_equal(X3, self.spa.moon_argument_latitude(JCE), 5) def test_moon_ascending_longitude(self): assert_almost_equal(X4, self.spa.moon_ascending_longitude(JCE), 6) def test_longitude_nutation(self): assert_almost_equal(dPsi, self.spa.longitude_nutation(JCE, X0, X1, X2, X3, X4), 6) def test_obliquity_nutation(self): assert_almost_equal(dEpsilon, self.spa.obliquity_nutation(JCE, X0, X1, X2, X3, X4), 6) def test_mean_ecliptic_obliquity(self): assert_almost_equal(epsilon0, self.spa.mean_ecliptic_obliquity(JME), 6) def test_true_ecliptic_obliquity(self): assert_almost_equal(epsilon, self.spa.true_ecliptic_obliquity( epsilon0, dEpsilon), 6) def test_aberration_correction(self): assert_almost_equal(dTau, self.spa.aberration_correction(R), 6) def test_apparent_sun_longitude(self): assert_almost_equal(lamd, self.spa.apparent_sun_longitude( Theta, dPsi, dTau), 6) def test_mean_sidereal_time(self): assert_almost_equal(v0, self.spa.mean_sidereal_time(JD, JC), 3) def test_apparent_sidereal_time(self): assert_almost_equal(v, self.spa.apparent_sidereal_time( v0, dPsi, epsilon), 5) def test_geocentric_sun_right_ascension(self): assert_almost_equal(alpha, self.spa.geocentric_sun_right_ascension( lamd, epsilon, beta), 6) def test_geocentric_sun_declination(self): assert_almost_equal(delta, self.spa.geocentric_sun_declination( lamd, epsilon, beta), 6) def test_local_hour_angle(self): assert_almost_equal(H, self.spa.local_hour_angle(v, lon, alpha), 4) def test_equatorial_horizontal_parallax(self): assert_almost_equal(xi, self.spa.equatorial_horizontal_parallax(R), 6) def test_parallax_sun_right_ascension(self): u = self.spa.uterm(lat) x = self.spa.xterm(u, lat, elev) y = self.spa.yterm(u, lat, elev) assert_almost_equal(dAlpha, self.spa.parallax_sun_right_ascension( x, xi, H, delta), 4) def test_topocentric_sun_right_ascension(self): assert_almost_equal(alpha_prime, self.spa.topocentric_sun_right_ascension( alpha, dAlpha), 5) def test_topocentric_sun_declination(self): u = self.spa.uterm(lat) x = self.spa.xterm(u, lat, elev) y = self.spa.yterm(u, lat, elev) assert_almost_equal(delta_prime, self.spa.topocentric_sun_declination( delta, x, y, xi, dAlpha,H), 5) def test_topocentric_local_hour_angle(self): assert_almost_equal(H_prime, self.spa.topocentric_local_hour_angle( H, dAlpha), 5) def test_topocentric_elevation_angle_without_atmosphere(self): assert_almost_equal( e0, self.spa.topocentric_elevation_angle_without_atmosphere( lat, delta_prime, H_prime), 6) def test_atmospheric_refraction_correction(self): assert_almost_equal(de, self.spa.atmospheric_refraction_correction( pressure, temp, e0, atmos_refract), 6) def test_topocentric_elevation_angle(self): assert_almost_equal(e, self.spa.topocentric_elevation_angle(e0, de), 6) def test_topocentric_zenith_angle(self): assert_almost_equal(theta, self.spa.topocentric_zenith_angle(e), 5) def test_topocentric_astronomers_azimuth(self): assert_almost_equal(Gamma, self.spa.topocentric_astronomers_azimuth( H_prime, delta_prime, lat), 5) def test_topocentric_azimuth_angle(self): assert_almost_equal(Phi, self.spa.topocentric_azimuth_angle(Gamma), 5) def test_solar_position(self): assert_almost_equal( np.array([[theta, theta0, e, e0, Phi]]).T, self.spa.solar_position( unixtimes, lat, lon, elev, pressure, temp, delta_t, atmos_refract)[:-1], 5) assert_almost_equal( np.array([[v, alpha, delta]]).T, self.spa.solar_position( unixtimes, lat, lon, elev, pressure, temp, delta_t, atmos_refract, sst=True)[:3], 5) def test_equation_of_time(self): eot = 14.64 M = self.spa.sun_mean_longitude(JME) assert_almost_equal(eot, self.spa.equation_of_time( M, alpha, dPsi, epsilon), 2) def test_transit_sunrise_sunset(self): # tests at greenwich times = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 0), dt.datetime(2004, 12, 4, 0)] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunrise = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 7, 8, 15), dt.datetime(2004, 12, 4, 4, 38, 57)] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunset = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 17, 1, 4), dt.datetime(2004, 12, 4, 19, 2, 2)] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 times = np.array(times) sunrise = np.array(sunrise) sunset = np.array(sunset) result = self.spa.transit_sunrise_sunset(times, -35.0, 0.0, 64.0, 1) assert_almost_equal(sunrise/1e3, result[1]/1e3, 3) assert_almost_equal(sunset/1e3, result[2]/1e3, 3) times = pd.DatetimeIndex([dt.datetime(1994, 1, 2),] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunset = pd.DatetimeIndex([dt.datetime(1994, 1, 2, 16, 59, 55),] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunrise = pd.DatetimeIndex([dt.datetime(1994, 1, 2, 7, 8, 12),] ).tz_localize('UTC').astype(np.int64)*1.0/10**9 times = np.array(times) sunrise = np.array(sunrise) sunset = np.array(sunset) result = self.spa.transit_sunrise_sunset(times, 35.0, 0.0, 64.0, 1) assert_almost_equal(sunrise/1e3, result[1]/1e3, 3) assert_almost_equal(sunset/1e3, result[2]/1e3, 3) # tests from USNO # Golden times = pd.DatetimeIndex([dt.datetime(2015, 1, 2), dt.datetime(2015, 4, 2), dt.datetime(2015, 8, 2), dt.datetime(2015, 12, 2),], ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunrise = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 7, 19), dt.datetime(2015, 4, 2, 5, 43), dt.datetime(2015, 8, 2, 5, 1), dt.datetime(2015, 12, 2, 7, 1),], ).tz_localize('MST').astype(np.int64)*1.0/10**9 sunset = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 16, 49), dt.datetime(2015, 4, 2, 18, 24), dt.datetime(2015, 8, 2, 19, 10), dt.datetime(2015, 12, 2, 16, 38),], ).tz_localize('MST').astype(np.int64)*1.0/10**9 times = np.array(times) sunrise = np.array(sunrise) sunset = np.array(sunset) result = self.spa.transit_sunrise_sunset(times, 39.0, -105.0, 64.0, 1) assert_almost_equal(sunrise/1e3, result[1]/1e3, 1) assert_almost_equal(sunset/1e3, result[2]/1e3, 1) # Beijing times = pd.DatetimeIndex([dt.datetime(2015, 1, 2), dt.datetime(2015, 4, 2), dt.datetime(2015, 8, 2), dt.datetime(2015, 12, 2),], ).tz_localize('UTC').astype(np.int64)*1.0/10**9 sunrise = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 7, 36), dt.datetime(2015, 4, 2, 5, 58), dt.datetime(2015, 8, 2, 5, 13), dt.datetime(2015, 12, 2, 7, 17),], ).tz_localize('Asia/Shanghai' ).astype(np.int64)*1.0/10**9 sunset = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 17, 0), dt.datetime(2015, 4, 2, 18, 39), dt.datetime(2015, 8, 2, 19, 28), dt.datetime(2015, 12, 2, 16, 50),], ).tz_localize('Asia/Shanghai' ).astype(np.int64)*1.0/10**9 times = np.array(times) sunrise = np.array(sunrise) sunset = np.array(sunset) result = self.spa.transit_sunrise_sunset(times, 39.917, 116.383, 64.0,1) assert_almost_equal(sunrise/1e3, result[1]/1e3, 1) assert_almost_equal(sunset/1e3, result[2]/1e3, 1) def test_earthsun_distance(self): times = (pd.date_range('2003-10-17 12:30:30', periods=1, freq='D') .tz_localize('MST')) unixtimes = times.tz_convert('UTC').astype(np.int64)*1.0/10**9 unixtimes = np.array(unixtimes) result = self.spa.earthsun_distance(unixtimes, 64.0, 1) assert_almost_equal(R, result, 6) def test_calculate_deltat(self): result_mix_year = self.spa.calculate_deltat(mix_year_array, month) assert_almost_equal(mix_year_actual, result_mix_year) result_mix_month = self.spa.calculate_deltat(year, mix_month_array) assert_almost_equal(mix_month_actual, result_mix_month) result_array = self.spa.calculate_deltat(year_array, month_array) assert_almost_equal(dt_actual_array, result_array, 3) result_scalar = self.spa.calculate_deltat(year,month) assert_almost_equal(dt_actual, result_scalar) class NumpySpaTest(unittest.TestCase, SpaBase): """Import spa without compiling to numba then run tests""" @classmethod def setUpClass(self): from fluids.optional import spa spa = reload(spa) self.spa = spa @classmethod def tearDownClass(self): pass def test_julian_day(self): assert_almost_equal(JD, self.spa.julian_day(unixtimes)[0], 6) @pytest.mark.skipif(numba_version_int < 17, reason='Numba not installed or version not >= 0.17.0') class NumbaSpaTest(unittest.TestCase, SpaBase): """Import spa, compiling to numba, and run tests""" @classmethod def setUpClass(self): if numba_version_int >= 17: from fluids.optional import spa spa = reload(spa) self.spa = spa @classmethod def tearDownClass(self): pass def test_julian_day(self): assert_almost_equal(JD, self.spa.julian_day(unixtimes[0]), 6) def test_solar_position_singlethreaded(self): assert_almost_equal( np.array([[theta, theta0, e, e0, Phi]]).T, self.spa.solar_position( unixtimes, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=1)[:-1], 5) assert_almost_equal( np.array([[v, alpha, delta]]).T, self.spa.solar_position( unixtimes, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=1, sst=True)[:3], 5) def test_solar_position_multithreaded(self): result = np.array([theta, theta0, e, e0, Phi]) nresult = np.array([result, result, result]).T times = np.array([unixtimes[0], unixtimes[0], unixtimes[0]]) assert_almost_equal( nresult , self.spa.solar_position( times, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=8)[:-1], 5) result = np.array([v, alpha, delta]) nresult = np.array([result, result, result]).T assert_almost_equal( nresult , self.spa.solar_position( times, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=8, sst=True)[:3], 5) try: import astropy except: astropy = None @pytest.mark.skipif(astropy is None, reason='Astropy is not installed') def test_deltat_astropy(): # Can't do a full range of tests because astropy doesn't have # answers before 1960, after 1999 in this version from astropy.time import Time from datetime import datetime def delta_t_astropy(dt): t = Time(dt, scale='utc') return -(dt - t.tt.value).total_seconds() # years = range(1, 3000, 100) + [3000] years = range(1960, 1999, 1) months = range(1, 13) for year in years: for month in months: delta_t_pvlib = spa.calculate_deltat(year, month) dt = datetime(year, month, 1) delta_t_external = delta_t_astropy(dt) assert_allclose(delta_t_pvlib, delta_t_external, atol=.5, rtol=.01) fluids-0.1.78/tests/test_vectorized.py0000644000175000017500000000410313632560624016567 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids.vectorized import * from fluids import * from numpy.testing import assert_allclose import pytest import fluids.vectorized import numpy as np #def test_a_complicated_function(): # # Disturbingly, the following test does not pass even if the new arguments # # are converted to floats; odeint is just behaving differently # orig = [fluids.integrate_drag_sphere(D=D, rhop=rhop, rho=1.2, mu=1.78E-5, t=0.5, V=30, distance=True) for D, rhop in zip([0.002, 0.001], [2200., 2300])] # # ans_vect = fluids.vectorized.integrate_drag_sphere(D=[0.002, 0.001], rhop=[2200., 2300], rho=1.2, mu=1.78E-5, t=0.5, V=30, distance=True) # assert_allclose(ans_vect, orig) def test_Morsi_Alexander(): Cds = [Morsi_Alexander(i) for i in [500, 5000, 5000]] Cds_vect = fluids.vectorized.Morsi_Alexander([500, 5000, 5000]) assert_allclose(Cds, Cds_vect) fluids-0.1.78/tests/test_packed_bed.py0000644000175000017500000001137113632560624016457 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest def test_packed_bed(): dP = Ergun(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1338.8671874999995) dP = Kuo_Nydegger(dp=8E-1, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 0.025651460973648624) dP = Jones_Krier(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1362.2719449873746) dP = Carman(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1614.721678121775) dP = Hicks(dp=0.01, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 3.631703956680737) dP = Brauer(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1441.5479196020563) dP = KTA(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1440.409277034248) dP = Erdim_Akgiray_Demir(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1438.2826958844414) dP = Tallmadge(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1365.2739144209424) dP = Fahien_Schriver(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1470.6175541844711) dP = Idelchik(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) assert_allclose(dP, 1571.909125999067) dP1 = Harrison_Brunner_Hecker(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) dP2 = Harrison_Brunner_Hecker(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=1E-2) assert_allclose([dP1, dP2], [1104.6473821473724, 1255.1625662548427]) dP1 = Montillet_Akkari_Comiti(dp=0.0008, voidage=0.4, L=0.5, vs=0.00132629120, rho=1000., mu=1.00E-003) dP2 = Montillet_Akkari_Comiti(dp=0.08, voidage=0.4, L=0.5, vs=0.05, rho=1000., mu=1.00E-003) dP3 = Montillet_Akkari_Comiti(dp=0.08, voidage=0.3, L=0.5, vs=0.05, rho=1000., mu=1.00E-003, Dt=1) assert_allclose([dP1, dP2, dP3], [1148.1905244077548, 212.67409611116554, 540.501305905986]) dP1 = dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) dP2 = dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01) dP3 = dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01, Method='Ergun') dP4 = dP_packed_bed(dp=8E-4, voidage=0.4, sphericity=0.6, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01, Method='Ergun') dP5 = dP_packed_bed(8E-4, 0.4, 1E-3, 1E3, 1E-3) assert_allclose([dP1, dP2, dP3, dP4, dP5], [1438.2826958844414, 1255.1625662548427, 1338.8671874999995, 3696.2890624999986, 1438.2826958844414]) methods_dP = dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01, AvailableMethods=True) methods_dP.sort() methods_dP_val = ['Harrison, Brunner & Hecker', 'Carman', 'Guo, Sun, Zhang, Ding & Liu', 'Hicks', 'Montillet, Akkari & Comiti', 'Idelchik', 'Erdim, Akgiray & Demir', 'KTA', 'Kuo & Nydegger', 'Ergun', 'Brauer', 'Fahien & Schriver', 'Jones & Krier', 'Tallmadge'] methods_dP_val.sort() assert methods_dP == methods_dP_val with pytest.raises(Exception): dP_packed_bed(8E-4, 0.4, 1E-3, 1E3, 1E-3, Method='Fail') v = voidage_Benyahia_Oneil(1E-3, 1E-2, .8) assert_allclose(v, 0.41395363849210065) v = voidage_Benyahia_Oneil_spherical(.001, .05) assert_allclose(v, 0.3906653157443224) v = voidage_Benyahia_Oneil_cylindrical(.01, .1, .6) assert_allclose(v, 0.38812523109607894) def test_Guo_Sun(): dP = Guo_Sun(dp=14.2E-3, voidage=0.492, vs=0.6, rho=1E3, mu=1E-3, Dt=40.9E-3) assert_allclose(dP, 42019.529911473706) # Confirmed to be 42 kPa from a graph they providedfluids-0.1.78/tests/test_fittings_fits.py0000644000175000017500000005367513632560624017307 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division import os from fluids import * import numpy as np from math import pi, log10, log from random import uniform from numpy.testing import assert_allclose from scipy.constants import * from scipy.optimize import * from scipy.interpolate import * from fluids import fluids_data_dir from fluids.core import Engauge_2d_parser from fluids.optional.pychebfun import * import pytest ### Contractions def test_contraction_conical_Miller_coefficients(): from fluids.fittings import contraction_conical_Miller_tck path = os.path.join(fluids_data_dir, 'Miller 2E 1990 conical contractions K part 1.csv') Kds, l_ratios, A_ratios = Engauge_2d_parser(open(path).readlines()) path = os.path.join(fluids_data_dir, 'Miller 2E 1990 conical contractions K part 2.csv') Kd2, l_ratio2, A_ratio2 = Engauge_2d_parser(open(path).readlines()) Kds.extend(Kd2) l_ratios.extend(l_ratio2) A_ratios.extend(A_ratio2) A_ratios = [[i+1.0 for i in j] for j in A_ratios] # # The second set of data obviously looks terirble when plotted # # Normally the data should be smoothed, but, well, the smoothing # # function also requires smooth functions. # for K, ls, As in zip(Kds, l_ratios, A_ratios): # plt.loglog(ls, np.array(As)-1, label=str(K)) # plt.legend() # plt.show() all_zs = [] all_xs = [] all_ys = [] for z, xs, ys in zip(Kds, l_ratios, A_ratios): for x, y in zip(xs, ys): all_zs.append(z) all_xs.append(x) all_ys.append(y) tck = bisplrep(np.log(all_xs), np.log(all_ys), all_zs, kx=3, ky=1, s=.0001) [assert_allclose(i, j) for i, j in zip(contraction_conical_Miller_tck, tck)] # err = 0.0 # n = 0 # for z, xs, ys in zip(Kds, l_ratios, A_ratios): # for x, y in zip(xs, ys): # predict = bisplev(log(x), log(y), tck) # err += abs(predict - z)/z # n += 1 # 5% relative error seems like the sweetspot # print(err/n, n, err) # import matplotlib.pyplot as plt # ax = plt.gca() # ax.set_xscale("log") # ax.set_yscale("log") # x = np.logspace(np.log10(.1), np.log10(10), 200) # y = np.logspace(np.log10(1.1), np.log10(4), 200) # X, Y = np.meshgrid(x, y, indexing='ij') # func = np.vectorize(lambda x, y: max(min(bisplev(log(x), log(y), tck), .5), 0)) # # Z = func(X.ravel(), Y.ravel()) # Z = [[func(xi, yi) for yi in y.tolist()] for xi in x] # # levels = [.001, .01, .03, .04, .05, .1, .2, .3, .4] # plt.contourf(X, Y-1, Z, levels=levels, cmap='RdGy') # plt.colorbar() # plt.show() @pytest.mark.slow def test_contraction_abrupt_Miller_coefficients(): from fluids.fittings import tck_contraction_abrupt_Miller curve_path = os.path.join(fluids_data_dir, 'Miller 2E 1990 abrupt contraction K.csv') text = open(curve_path).readlines() zs, x_lists, y_lists = Engauge_2d_parser(text) for xs, values in zip(x_lists, y_lists): values[-1] = 0 low = 1e-8 for i in range(2): low = low/10 values.insert(-1, low) xs.insert(-1, 1-low) xs[-1] = 1 inter_objs = [] for rd, As, Ks in zip(zs, x_lists, y_lists): univar = UnivariateSpline(As, Ks, s=1e-5) inter_objs.append(univar) # make a rectangular grid As = np.linspace(0, 1, 1000) Ks_stored = [] for obj in inter_objs: Ks_smoothed = obj(As) Ks_smoothed[Ks_smoothed < 0] = 0 # Avoid zeros Ks_stored.append(Ks_smoothed) # Flatten the data to the form used in creating the spline all_zs = [] all_xs = [] all_ys = [] for z, x, ys in zip(zs, As, Ks_stored): for x, y in zip(As, ys): all_zs.append(z) all_xs.append(x) all_ys.append(y) tck_recalc = bisplrep(all_xs, all_zs, all_ys, s=5e-4) [assert_allclose(i, j, rtol=1e-2) for i, j in zip(tck_contraction_abrupt_Miller, tck_recalc)] # Plotting code # print([i.tolist() for i in tck[:3]]) # for i, (rd, As, Ks) in enumerate(zip(zs, x_lists, y_lists)): # plt.plot(As, Ks, '.') # univar = inter_objs[i] # As2 = np.linspace(0, 1, 1000) # Ks_smoothed = univar(As2) # plt.plot(As2, Ks_smoothed) # # Compute with the spline # Ks_new = bisplev(As2, rd, tck) # plt.plot(As2, Ks_new) # for rd in np.linspace(.1, 0, 100): # As2 = np.linspace(0, 1, 1000) # Ks_new = bisplev(As2, rd, tck) # plt.plot(As2, Ks_new) # plt.show() ### Diffusers @pytest.mark.slow def test_diffuser_conical_Miller_coefficients(): from fluids.fittings import tck_diffuser_conical_Miller path = os.path.join(fluids_data_dir, 'Miller 2E 1990 conical diffuser Kd.csv') Kds, l_ratios, A_ratios = Engauge_2d_parser(open(path).readlines()) # Fixup stupidity A_ratios = [[i+1.0 for i in j] for j in A_ratios] # for K, ls, As in zip(Kds, l_ratios, A_ratios): # plt.loglog(ls, np.array(As)-1) # plt.show() interp_objs = [] for K, ls, As in zip(Kds, l_ratios, A_ratios): univar = UnivariateSpline(np.log10(ls), np.log10(As), s=4e-5) interp_objs.append(univar) # Extrapolation to the left and right looks bad # Extrapolation upwards looks bad too ls_full = np.logspace(log10(0.1), log10(20.0)) ls_stored = [] As_stored = [] for i, (K, ls, As) in enumerate(zip(Kds, l_ratios, A_ratios)): # plt.loglog(ls, As) univar = interp_objs[i] As_full = 10**univar(np.log10(ls_full)) # plt.loglog(ls_full, As_full) # print(len(univar.get_coeffs()), len(univar.get_knots())) ls_smoothed = np.logspace(log10(ls[0]), log10(ls[-1]), 100) As_smoothed = 10**univar(np.log10(ls_smoothed)) # plt.loglog(ls_smoothed, As_smoothed) ls_stored.append(ls_smoothed) As_stored.append(As_smoothed) # plt.show() all_zs = [] all_xs = [] all_ys = [] for z, xs, ys in zip(Kds, ls_stored, As_stored): for x, y in zip(xs, ys): all_zs.append(z) all_xs.append(x) all_ys.append(y) tck_recalc = bisplrep(np.log(all_xs), np.log(all_ys), all_zs, s=.002) [assert_allclose(i, j, rtol=1e-2) for i, j in zip(tck_diffuser_conical_Miller, tck_recalc)] # Plotting code to re-create the graph through solving for points # print([len(i) for i in tck[0:3]]) # # for K, ls in zip(Kds, ls_stored): # def get_right_y(l, K_goal): # try: # def err(y_guess): # if y_guess <= 1.1: # y_guess = 1.1 # if y_guess > 4: # y_guess = 4 # return bisplev(log(l), log(y_guess), tck) - K_goal # # ans = newton(err, 1.3) # ans = bisect(err, 1.1, 4) # # # if abs(err(ans)) > .1: # # ans = None # return ans # except: # return None # As_needed = [get_right_y(l, K) for l in ls] # plt.loglog(ls, As_needed, 'x') # plt.show() ### Entrances def test_entrance_distance_Miller_coefficients(): from fluids.fittings import entrance_distance_Miller_coeffs t_ds = [0.006304, 0.007586, 0.009296, 0.011292, 0.013288, 0.015284, 0.019565, 0.022135, 0.024991, 0.02842, 0.032136, 0.036426, 0.040145, 0.043149, 0.048446, 0.054745, 0.061332, 0.067919, 0.075081, 0.081957, 0.089121, 0.096284, 0.099722, 0.106886, 0.110897, 0.118061, 0.125224, 0.132101, 0.139264, 0.147, 0.153877, 0.16104, 0.167917, 0.175081, 0.181957, 0.189121, 0.196284, 0.199723, 0.206886, 0.214049, 0.221213, 0.228376, 0.235539, 0.242416, 0.249579, 0.250726, 0.257889, 0.264766, 0.271929, 0.279093, 0.286256, 0.293419, 0.300009] Ks = [1.00003, 0.97655, 0.94239, 0.90824, 0.87408, 0.83993, 0.78301, 0.75028, 0.71756, 0.68626, 0.65638, 0.62793, 0.6066, 0.59166, 0.57532, 0.56111, 0.54833, 0.5384, 0.53416, 0.53135, 0.53138, 0.53142, 0.53143, 0.53147, 0.53149, 0.53152, 0.53156, 0.53159, 0.53162, 0.53023, 0.53027, 0.5303, 0.53033, 0.53179, 0.5304, 0.53186, 0.53189, 0.53191, 0.53194, 0.53198, 0.53201, 0.53347, 0.53208, 0.53353, 0.53215, 0.53215, 0.53218, 0.53364, 0.53367, 0.53371, 0.53374, 0.53378, 0.5331] # plt.plot(t_ds, Ks) t_ds2 = np.linspace(t_ds[0], t_ds[-1], 1000) # Ks_Rennels = [entrance_distance(Di=1, t=t) for t in t_ds2] # plt.plot(t_ds2, Ks_Rennels) # plt.show() obj = UnivariateSpline(t_ds, Ks, s=3e-5) # print(len(obj.get_coeffs()), len(obj.get_knots())) # plt.plot(t_ds2, obj(t_ds2)) fun = chebfun(f=obj, domain=[0,.3], N=15) coeffs = chebfun_to_poly(fun, text=False) assert_allclose(coeffs, entrance_distance_Miller_coeffs) def test_entrance_distance_45_Miller_coefficients(): from fluids.fittings import entrance_distance_45_Miller_coeffs t_ds_re_entrant_45 = [0.006375, 0.007586, 0.009296, 0.011292, 0.013288, 0.015284, 0.019565, 0.022135, 0.024991, 0.02842, 0.032136, 0.036426, 0.040109, 0.043328, 0.046868, 0.048443, 0.053379, 0.053594, 0.059318, 0.059855, 0.065044, 0.068836, 0.070768, 0.07678, 0.082793, 0.088805, 0.089663, 0.095963, 0.104267, 0.110566, 0.116866, 0.123451, 0.129751, 0.136337, 0.142637, 0.146933, 0.153807, 0.160394, 0.167268, 0.174143, 0.181018, 0.187893, 0.194769, 0.199927, 0.20709, 0.213966, 0.221129, 0.228292, 0.235455, 0.242332, 0.249495, 0.250641, 0.257804, 0.264967, 0.27213, 0.279006, 0.286169, 0.293333, 0.299815] Ks_re_entrant_45 = [1.0, 0.97655, 0.94239, 0.90824, 0.87408, 0.83993, 0.78301, 0.75028, 0.71756, 0.68626, 0.65638, 0.62793, 0.60642, 0.59113, 0.57033, 0.56535, 0.54225, 0.54403, 0.52128, 0.52003, 0.5028, 0.48752, 0.48147, 0.463, 0.44737, 0.42889, 0.4232, 0.41184, 0.39053, 0.3749, 0.3607, 0.34507, 0.33086, 0.31666, 0.30388, 0.29678, 0.28685, 0.27549, 0.26699, 0.25848, 0.25282, 0.24715, 0.24434, 0.24437, 0.24298, 0.24158, 0.2402, 0.24023, 0.23884, 0.23745, 0.23606, 0.23606, 0.2361, 0.23329, 0.23332, 0.23193, 0.23054, 0.23057, 0.22989] # plt.plot(t_ds_re_entrant_45, Ks_re_entrant_45) obj = UnivariateSpline(t_ds_re_entrant_45, Ks_re_entrant_45, s=1e-4) t_ds_re_entrant_45_long = np.linspace(0, 0.3, 1000) # plt.plot(t_ds_re_entrant_45_long, obj(t_ds_re_entrant_45_long)) fun = chebfun(f=obj, domain=[0,.3], N=15) # plt.plot(t_ds_re_entrant_45_long, fun(t_ds_re_entrant_45_long), '--') # plt.show() coeffs = chebfun_to_poly(fun) assert_allclose(coeffs, entrance_distance_45_Miller_coeffs) def test_entrance_rounded_Miller_coefficients(): from fluids.fittings import entrance_rounded_Miller_coeffs path = os.path.join(fluids_data_dir, 'Miller 2E 1990 entrances rounded beveled K.csv') lines = open(path).readlines() _, ratios, Ks = Engauge_2d_parser(lines) ratios_45, ratios_30, ratios_round = ratios Ks_45, Ks_30, Ks_round = Ks # plt.plot(ratios_round, Ks_round) t_ds2 = np.linspace(ratios_round[0], ratios_round[1], 1000) # Ks_Rennels = [entrance_rounded(Di=1, rc=t) for t in t_ds2] # plt.plot(t_ds2, Ks_Rennels) obj = UnivariateSpline(ratios_round, Ks_round, s=6e-5) # plt.plot(t_ds2, obj(t_ds2)) fun = chebfun(f=obj, domain=[0,.3], N=8) # plt.plot(t_ds2, fun(t_ds2), '--') # plt.show() coeffs = chebfun_to_poly(fun) assert_allclose(coeffs, entrance_rounded_Miller_coeffs) ### Bends def test_bend_rounded_Crane_coefficients(): from fluids.fittings import bend_rounded_Crane_ratios, bend_rounded_Crane_fds, bend_rounded_Crane_coeffs bend_rounded_Crane_obj = UnivariateSpline(bend_rounded_Crane_ratios, bend_rounded_Crane_fds, s=0) fun = chebfun(f=bend_rounded_Crane_obj, domain=[1,20], N=10) coeffs = chebfun_to_poly(fun) assert_allclose(coeffs, bend_rounded_Crane_coeffs) xs = np.linspace(1, 20, 2000) diffs = (abs(fun(xs)-bend_rounded_Crane_obj(xs))/bend_rounded_Crane_obj(xs)) assert np.max(diffs) < .02 assert np.mean(diffs) < .002 @pytest.mark.slow def test_bend_rounded_Miller_K_coefficients(): from fluids import fluids_data_dir from fluids.core import Engauge_2d_parser from fluids.fittings import tck_bend_rounded_Miller Kb_curve_path = os.path.join(fluids_data_dir, 'Miller 2E 1990 smooth bends Kb.csv') lines = open(Kb_curve_path).readlines() all_zs, all_xs, all_ys = Engauge_2d_parser(lines, flat=True) tck_recalc = bisplrep(all_xs, all_ys, all_zs, kx=3, ky=3, s=.001) [assert_allclose(i, j) for i, j in zip(tck_bend_rounded_Miller, tck_recalc)] @pytest.mark.slow def test_bend_rounded_Miller_Re_correction(): from fluids import fluids_data_dir from fluids.core import Engauge_2d_parser from fluids.fittings import tck_bend_rounded_Miller_C_Re Re_curve_path = os.path.join(fluids_data_dir, 'Miller 2E 1990 smooth bends Re correction.csv') text = open(Re_curve_path).readlines() rds, Re_lists, C_lists = Engauge_2d_parser(text) inter_objs = [] for rd, Res, Cs in zip(rds, Re_lists, C_lists): univar = UnivariateSpline(np.log10(Res), Cs) # Default smoothing is great! inter_objs.append(univar) for i, (rd, Res, Cs) in enumerate(zip(rds, Re_lists, C_lists)): # plt.semilogx(Res, Cs) univar = inter_objs[i] Cs_smoothed = univar(np.log10(Res)) # plt.semilogx(Res, Cs_smoothed) # print(univar.get_coeffs(), univar.get_knots()) # plt.show() # make a rectangular grid Res = np.logspace(np.log10(1E4), np.log10(1E8), 100) Cs_stored = [] for obj in inter_objs: Cs_smoothed = obj(np.log10(Res)) # plt.semilogx(Res, Cs_smoothed) Cs_stored.append(Cs_smoothed) # plt.show() # Flatten the data to the form used in creating the spline all_zs = [] all_xs = [] all_ys = [] for z, x, ys in zip(rds, Res, Cs_stored): for x, y in zip(Res, ys): all_zs.append(z) all_xs.append(x) all_ys.append(y) tck_recalc = bisplrep(np.log10(all_xs), all_zs, all_ys) [assert_allclose(i, j) for i, j in zip(tck_bend_rounded_Miller_C_Re, tck_recalc)] spline_obj = lambda Re, r_D : bisplev(np.log10(Re), r_D, tck_recalc) Res = np.logspace(np.log10(1E4), np.log10(1E8), 100) for obj, r_d in zip(inter_objs, rds): Cs_smoothed = obj(np.log10(Res)) # plt.semilogx(Res, Cs_smoothed) # Cs_spline = spline_obj(Res, r_d) # plt.semilogx(Res, Cs_spline, '--') for r in np.linspace(1, 2, 10): Cs_spline = spline_obj(Res, r) # plt.semilogx(Res, Cs_spline, '-') # plt.show() from fluids.fittings import bend_rounded_Miller_C_Re_limit_1 from fluids.fittings import bend_rounded_Miller_C_Re ps = np.linspace(1, 2) qs = [newton(lambda x: bend_rounded_Miller_C_Re(x, i)-1, 2e5) for i in ps] rs = np.polyfit(ps, qs, 4).tolist() assert_allclose(rs, bend_rounded_Miller_C_Re_limit_1) @pytest.mark.slow def test_bend_rounded_Miller_outlet_tangent_correction(): from fluids.fittings import tck_bend_rounded_Miller_C_Re Re_curve_path = os.path.join(fluids_data_dir, 'Miller 2E 1990 smooth bends outlet tangent length correction.csv') text = open(Re_curve_path).readlines() Kbs, length_ratio_lists, Co_lists = Engauge_2d_parser(text) def BioScience_GeneralizedSubstrateDepletion_model(x_in): '''Fit created using zunzun.com, comparing the non-linear, non-logarithmic plot values with pixel positions on the graph. 0 0.00 1 311 2 493 4 721 6 872 10 1074 20 1365 30 1641 40 1661 ''' temp = 0.0 a = 1.0796070184265327E+03 b = 2.7557612059844967E+00 c = -2.1529870432577212E+01 d = 4.1229208061974096E-03 temp = (a * x_in) / (b + x_in) - (c * x_in) - d return temp def fix(y): # Reverse the plot # Convert input "y" to between 0 and 1661 y = y/30 # 0-1 linear y *= 1641 # to max err = lambda x: BioScience_GeneralizedSubstrateDepletion_model(x) - y return float(fsolve(err, 1)) for values in length_ratio_lists: for i in range(len(values)): x = min(values[i], 30) # Do not allow values over 30 values[i] = fix(x) # Plotting code # inter_objs = [] # for Kb, lrs, Cos in zip(Kbs, length_ratio_lists, Co_lists): # univar = UnivariateSpline(lrs, Cos, s=4e-4) # Default smoothing is great! # inter_objs.append(univar) # for i, (Kb, lrs, Cos) in enumerate(zip(Kbs, length_ratio_lists, Co_lists)): # plt.semilogx(lrs, Cos, 'x') # univar = inter_objs[i] # Cs_smoothed = univar(lrs) # plt.semilogx(lrs, Cs_smoothed) # plt.ylim([0.3, 3]) # plt.xlim([0.1, 30]) # plt.show() # Code to literally write the code min_vals = [] tcks = [] for Kb, lrs, Cos in zip(Kbs, length_ratio_lists, Co_lists): univar = splrep(lrs, Cos, s=4e-4) # Default smoothing is great! s = ('tck_bend_rounded_Miller_C_o_%s = ' %str(Kb).replace('.', '_')) template = 'np.array(%s),\n' t1 = template%str(univar[0].tolist()) t2 = template%str(univar[1].tolist()) s = s + '[%s%s3]' %(t1, t2) # print(s) min_vals.append(float(splev(0.01, univar))) tcks.append(univar) # Check the fixed constants above the function from fluids.fittings import tck_bend_rounded_Miller_C_os for tck, tck_recalc in zip(tck_bend_rounded_Miller_C_os, tcks): [assert_allclose(i, j) for i, j in zip(tck, tck_recalc)] from fluids.fittings import bend_rounded_Miller_C_o_limit_0_01 assert_allclose(min_vals, bend_rounded_Miller_C_o_limit_0_01) from fluids.fittings import bend_rounded_Miller_C_o_limits max_ratios = [i[-1] for i in length_ratio_lists] assert_allclose(max_ratios, bend_rounded_Miller_C_o_limits) def test_bend_miter_Miller_coefficients(): from fluids.optional.pychebfun import chebfun, chebfun_to_poly curve_path = os.path.join(fluids_data_dir, 'Miller 2E 1990 Kb mitre bend.csv') text = open(curve_path).readlines() zs, x_lists, y_lists = Engauge_2d_parser(text) x_raw, y_raw = x_lists[0], y_lists[0] univar = UnivariateSpline(x_raw, y_raw, s=1e-4) fun = chebfun(f=univar, domain=[0,120], N=15) # 15 max for many coeffs recalc_coeffs = chebfun_to_poly(fun) from fluids.fittings import bend_miter_Miller_coeffs assert_allclose(bend_miter_Miller_coeffs, recalc_coeffs) def test_diffuser_conical_Idelchik_coefficients(): from fluids.fittings import diffuser_conical_Idelchik_tck, diffuser_conical_Idelchik_angles, diffuser_conical_Idelchik_A_ratios, diffuser_conical_Idelchik_data diffuser_conical_Idelchik_obj = RectBivariateSpline(np.array(diffuser_conical_Idelchik_A_ratios), np.array(diffuser_conical_Idelchik_angles), np.array(diffuser_conical_Idelchik_data), kx=3, ky=1) [assert_allclose(i, j) for i, j in zip(diffuser_conical_Idelchik_obj.tck, diffuser_conical_Idelchik_tck)] def test_entrance_rounded_Idelchik_coeffs(): from fluids.fittings import entrance_rounded_ratios_Idelchik, entrance_rounded_Ks_Idelchik, entrance_rounded_Idelchik_tck tck_refit = splrep(entrance_rounded_ratios_Idelchik, entrance_rounded_Ks_Idelchik, s=0, k=2) [assert_allclose(i, j, rtol=1e-3) for i, j in zip(tck_refit, entrance_rounded_Idelchik_tck)] #entrance_rounded_Idelchik = UnivariateSpline(entrance_rounded_ratios_Idelchik, # entrance_rounded_Ks_Idelchik, # s=0, k=2, ext=3) # def test_entrance_rounded_Harris_coeffs(): from fluids.fittings import entrance_rounded_ratios_Harris, entrance_rounded_Ks_Harris, entrance_rounded_Harris_tck tck_refit = splrep(entrance_rounded_ratios_Harris, entrance_rounded_Ks_Harris, s=0, k=2) [assert_allclose(i, j, rtol=1e-3) for i, j in zip(tck_refit, entrance_rounded_Harris_tck)] #entrance_rounded_Harris = UnivariateSpline(entrance_rounded_ratios_Harris, # entrance_rounded_Ks_Harris, # s=0, k=2, ext=3) def test_entrance_distance_Harris_coeffs(): from fluids.fittings import( entrance_distance_Harris_t_Di, entrance_distance_Harris_Ks, entrance_distance_Harris_tck) tck_refit = splrep(entrance_distance_Harris_t_Di, entrance_distance_Harris_Ks, s=0, k=3) [assert_allclose(i, j, rtol=1e-3) for i, j in zip(tck_refit, entrance_distance_Harris_tck)] #entrance_distance_Harris_obj = UnivariateSpline(entrance_distance_Harris_t_Di, # entrance_distance_Harris_Ks, # s=0, k=3) fluids-0.1.78/tests/test_saltation.py0000644000175000017500000000476213632560624016422 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest def test_Rizk(): V1 = Rizk(0.25, 100E-6, 1.2, 0.078) assert_allclose(V1, 9.8833092829357) def test_Matsumoto_1974(): V2 = Matsumoto_1974(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) assert_allclose(V2, 19.583617317317895) def test_Matsumoto_1975(): V3 = Matsumoto_1975(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) assert_allclose(V3, 18.04523091703009) def test_Matsumoto_1977(): V1 = Matsumoto_1977(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) V2 = Matsumoto_1977(mp=1., rhop=600., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) assert_allclose([V1, V2], [16.64284834446686, 10.586175424073561]) def test_Schade(): V1 = Schade(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1) assert_allclose(V1, 13.697415809497912) def test_Weber_saltation(): V1 = Weber_saltation(mp=1, rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=4) V2 = Weber_saltation(mp=1, rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=2) assert_allclose([V1, V2], [15.227445436331474, 13.020222930460088]) def test_Geldart_Ling(): V1 = Geldart_Ling(1., 1.2, 0.1, 2E-5) V2 = Geldart_Ling(50., 1.2, 0.1, 2E-5) assert_allclose([V1, V2], [7.467495862402707, 44.01407469835619])fluids-0.1.78/tests/particle_size_distribution/0000755000175000017500000000000013632560624020436 5ustar kurtkurtfluids-0.1.78/tests/particle_size_distribution/unsoda_distributions_20140206.csv0000644000175000017500000064071213632560624026416 0ustar kurtkurtcode particle_size particle_fraction 1010 2.0000000000000000e+00 2.9999999999999999e-02 1010 5.0000000000000000e+01 1.7000000000000001e-01 1010 1.0600000000000000e+02 2.7900000000000003e-01 1010 2.5000000000000000e+02 7.3499999999999999e-01 1010 5.0000000000000000e+02 9.2100000000000004e-01 1010 1.0000000000000000e+03 9.9399999999999999e-01 1010 2.0000000000000000e+03 1.0020000000000000e+00 1011 2.0000000000000000e+00 2.9999999999999999e-02 1011 5.0000000000000000e+01 1.7499999999999999e-01 1011 1.0600000000000000e+02 2.9499999999999998e-01 1011 2.5000000000000000e+02 7.5700000000000001e-01 1011 5.0000000000000000e+02 9.2700000000000005e-01 1011 1.0000000000000000e+03 9.9500000000000000e-01 1011 2.0000000000000000e+03 1.0040000000000000e+00 1012 2.0000000000000000e+00 2.5000000000000001e-02 1012 5.0000000000000000e+01 1.7499999999999999e-01 1012 1.0600000000000000e+02 2.8499999999999998e-01 1012 2.5000000000000000e+02 7.3399999999999999e-01 1012 5.0000000000000000e+02 9.0500000000000003e-01 1012 1.0000000000000000e+03 9.8599999999999999e-01 1012 2.0000000000000000e+03 1.0020000000000000e+00 1013 2.0000000000000000e+00 2.0000000000000000e-02 1013 5.0000000000000000e+01 1.4999999999999999e-01 1013 1.0600000000000000e+02 2.8599999999999998e-01 1013 2.5000000000000000e+02 7.5800000000000001e-01 1013 5.0000000000000000e+02 9.2000000000000004e-01 1013 1.0000000000000000e+03 9.9099999999999999e-01 1013 2.0000000000000000e+03 1.0020000000000000e+00 1014 2.0000000000000000e+00 2.0000000000000000e-02 1014 5.0000000000000000e+01 1.3000000000000000e-01 1014 1.0600000000000000e+02 2.5600000000000001e-01 1014 2.5000000000000000e+02 7.4299999999999999e-01 1014 5.0000000000000000e+02 9.1600000000000004e-01 1014 1.0000000000000000e+03 9.8499999999999999e-01 1014 2.0000000000000000e+03 9.9700000000000000e-01 1015 2.0000000000000000e+00 5.9999999999999998e-02 1015 5.0000000000000000e+01 1.7999999999999999e-01 1015 1.0600000000000000e+02 3.0700000000000000e-01 1015 2.5000000000000000e+02 7.5000000000000000e-01 1015 5.0000000000000000e+02 9.1700000000000004e-01 1015 1.0000000000000000e+03 9.8299999999999998e-01 1015 2.0000000000000000e+03 9.8999999999999999e-01 1020 2.0000000000000000e+00 4.4999999999999998e-02 1020 5.0000000000000000e+01 1.0000000000000001e-01 1020 1.0000000000000000e+02 1.2100000000000000e-01 1020 2.5000000000000000e+02 1.7299999999999999e-01 1020 5.0000000000000000e+02 2.0000000000000001e-01 1020 1.0000000000000000e+03 8.0400000000000005e-01 1020 2.0000000000000000e+03 9.9700000000000000e-01 1021 2.0000000000000000e+00 5.9999999999999998e-02 1021 5.0000000000000000e+01 1.1000000000000000e-01 1021 1.0000000000000000e+02 1.4999999999999999e-01 1021 2.5000000000000000e+02 2.4700000000000000e-01 1021 5.0000000000000000e+02 2.8000000000000003e-01 1021 1.0000000000000000e+03 9.0800000000000003e-01 1021 2.0000000000000000e+03 1.0029999999999999e+00 1022 2.0000000000000000e+00 4.2999999999999997e-02 1022 5.0000000000000000e+01 1.0700000000000000e-01 1022 1.0000000000000000e+02 1.3300000000000001e-01 1022 2.5000000000000000e+02 2.0399999999999999e-01 1022 5.0000000000000000e+02 2.3699999999999999e-01 1022 1.0000000000000000e+03 8.6199999999999999e-01 1022 2.0000000000000000e+03 1.0029999999999999e+00 1023 2.0000000000000000e+00 2.0000000000000000e-02 1023 5.0000000000000000e+01 5.9999999999999998e-02 1023 1.0000000000000000e+02 8.0000000000000002e-02 1023 2.5000000000000000e+02 1.6300000000000001e-01 1023 5.0000000000000000e+02 2.1600000000000000e-01 1023 1.0000000000000000e+03 7.7100000000000002e-01 1023 2.0000000000000000e+03 1.0020000000000000e+00 1024 2.0000000000000000e+00 2.0000000000000000e-02 1024 5.0000000000000000e+01 5.0000000000000003e-02 1024 1.0000000000000000e+02 8.0000000000000002e-02 1024 2.5000000000000000e+02 2.1500000000000000e-01 1024 5.0000000000000000e+02 2.7700000000000002e-01 1024 1.0000000000000000e+03 8.1999999999999995e-01 1024 2.0000000000000000e+03 1.0060000000000000e+00 1030 2.0000000000000000e+00 7.2999999999999995e-02 1030 5.0000000000000000e+01 2.0999999999999999e-01 1030 1.0000000000000000e+02 3.0299999999999999e-01 1030 2.5000000000000000e+02 6.8500000000000005e-01 1030 5.0000000000000000e+02 9.1400000000000003e-01 1030 1.0000000000000000e+03 9.9299999999999999e-01 1030 2.0000000000000000e+03 1.0000000000000000e+00 1031 2.0000000000000000e+00 7.8000000000000000e-02 1031 5.0000000000000000e+01 2.0999999999999999e-01 1031 1.0000000000000000e+02 3.1900000000000001e-01 1031 2.5000000000000000e+02 6.9199999999999995e-01 1031 5.0000000000000000e+02 9.0700000000000003e-01 1031 1.0000000000000000e+03 9.4599999999999995e-01 1031 2.0000000000000000e+03 9.4999999999999996e-01 1032 2.0000000000000000e+00 7.8000000000000000e-02 1032 5.0000000000000000e+01 2.0000000000000001e-01 1032 1.0000000000000000e+02 3.0700000000000000e-01 1032 2.5000000000000000e+02 6.7900000000000005e-01 1032 5.0000000000000000e+02 8.9000000000000001e-01 1032 1.0000000000000000e+03 8.9600000000000002e-01 1032 2.0000000000000000e+03 9.1000000000000003e-01 1040 1041 2.0000000000000000e+00 2.0000000000000000e-02 1041 5.0000000000000000e+01 7.0000000000000007e-02 1041 1.2500000000000000e+02 2.3200000000000001e-01 1041 2.5000000000000000e+02 7.6000000000000001e-01 1041 5.0000000000000000e+02 9.2500000000000004e-01 1041 1.0000000000000000e+03 9.8799999999999999e-01 1041 2.0000000000000000e+03 9.9199999999999999e-01 1042 2.0000000000000000e+00 2.9999999999999999e-02 1042 5.0000000000000000e+01 4.0000000000000001e-02 1042 1.2500000000000000e+02 2.0000000000000001e-01 1042 2.5000000000000000e+02 7.5600000000000001e-01 1042 5.0000000000000000e+02 9.1200000000000003e-01 1042 1.0000000000000000e+03 9.6699999999999997e-01 1042 2.0000000000000000e+03 9.7199999999999998e-01 1043 2.0000000000000000e+00 2.9999999999999999e-02 1043 5.0000000000000000e+01 7.0000000000000007e-02 1043 1.2500000000000000e+02 2.2500000000000001e-01 1043 2.5000000000000000e+02 7.7200000000000002e-01 1043 5.0000000000000000e+02 9.5199999999999996e-01 1043 1.0000000000000000e+03 1.0169999999999999e+00 1043 2.0000000000000000e+03 1.0229999999999999e+00 1050 2.0000000000000000e+00 3.2000000000000001e-02 1050 5.0000000000000000e+01 7.8000000000000000e-02 1050 1.2500000000000000e+02 1.1700000000000001e-01 1050 2.5000000000000000e+02 2.1600000000000000e-01 1050 5.0000000000000000e+02 5.7199999999999995e-01 1050 1.0000000000000000e+03 9.6499999999999997e-01 1050 2.0000000000000000e+03 1.0000000000000000e+00 1051 2.0000000000000000e+00 8.2000000000000003e-02 1051 5.0000000000000000e+01 1.2900000000000000e-01 1051 1.2500000000000000e+02 1.4899999999999999e-01 1051 2.5000000000000000e+02 2.1800000000000000e-01 1051 5.0000000000000000e+02 5.1000000000000001e-01 1051 1.0000000000000000e+03 9.4999999999999996e-01 1051 2.0000000000000000e+03 1.0000000000000000e+00 1052 2.0000000000000000e+00 6.5000000000000002e-02 1052 5.0000000000000000e+01 9.0999999999999998e-02 1052 1.2500000000000000e+02 1.1300000000000000e-01 1052 2.5000000000000000e+02 1.7499999999999999e-01 1052 5.0000000000000000e+02 4.4900000000000001e-01 1052 1.0000000000000000e+03 9.1200000000000003e-01 1052 2.0000000000000000e+03 1.0009999999999999e+00 1053 2.0000000000000000e+00 3.6999999999999998e-02 1053 5.0000000000000000e+01 4.9000000000000002e-02 1053 1.2500000000000000e+02 5.8000000000000003e-02 1053 2.5000000000000000e+02 1.0500000000000000e-01 1053 5.0000000000000000e+02 3.6599999999999999e-01 1053 1.0000000000000000e+03 8.8600000000000001e-01 1053 2.0000000000000000e+03 1.0000000000000000e+00 1054 2.0000000000000000e+00 2.5000000000000001e-02 1054 5.0000000000000000e+01 2.8000000000000001e-02 1054 1.2500000000000000e+02 3.2000000000000001e-02 1054 2.5000000000000000e+02 6.5000000000000002e-02 1054 5.0000000000000000e+02 3.0199999999999999e-01 1054 1.0000000000000000e+03 8.5899999999999999e-01 1054 2.0000000000000000e+03 1.0000000000000000e+00 1060 2.0000000000000000e+00 2.0000000000000000e-02 1060 5.0000000000000000e+01 7.0000000000000007e-02 1060 1.2500000000000000e+02 1.1200000000000000e-01 1060 2.5000000000000000e+02 3.4000000000000002e-01 1060 5.0000000000000000e+02 7.2499999999999998e-01 1060 1.0000000000000000e+03 9.7199999999999998e-01 1060 2.0000000000000000e+03 1.0000000000000000e+00 1061 2.0000000000000000e+00 4.0000000000000001e-02 1061 5.0000000000000000e+01 8.9999999999999997e-02 1061 1.2500000000000000e+02 1.2800000000000000e-01 1061 2.5000000000000000e+02 3.4000000000000002e-01 1061 5.0000000000000000e+02 7.0599999999999996e-01 1061 1.0000000000000000e+03 9.6199999999999997e-01 1061 2.0000000000000000e+03 1.0000000000000000e+00 1062 2.0000000000000000e+00 7.0000000000000007e-02 1062 5.0000000000000000e+01 1.2000000000000000e-01 1062 1.2500000000000000e+02 1.4699999999999999e-01 1062 2.5000000000000000e+02 3.2700000000000001e-01 1062 5.0000000000000000e+02 6.7900000000000005e-01 1062 1.0000000000000000e+03 9.5099999999999996e-01 1062 2.0000000000000000e+03 1.0000000000000000e+00 1063 2.0000000000000000e+00 4.0000000000000001e-02 1063 5.0000000000000000e+01 7.0000000000000007e-02 1063 1.2500000000000000e+02 9.8000000000000004e-02 1063 2.5000000000000000e+02 3.0700000000000000e-01 1063 5.0000000000000000e+02 6.4700000000000002e-01 1063 1.0000000000000000e+03 9.1300000000000003e-01 1063 2.0000000000000000e+03 1.0000000000000000e+00 1070 2.0000000000000000e+00 2.1999999999999999e-02 1070 5.0000000000000000e+01 7.1999999999999995e-02 1070 1.2500000000000000e+02 1.4000000000000001e-01 1070 2.5000000000000000e+02 3.5999999999999999e-01 1070 5.0000000000000000e+02 5.9899999999999998e-01 1070 1.0000000000000000e+03 8.8200000000000001e-01 1070 2.0000000000000000e+03 1.0000000000000000e+00 1071 2.0000000000000000e+00 4.7000000000000000e-02 1071 5.0000000000000000e+01 8.2000000000000003e-02 1071 1.2500000000000000e+02 1.1899999999999999e-01 1071 2.5000000000000000e+02 2.9699999999999999e-01 1071 5.0000000000000000e+02 5.3000000000000003e-01 1071 1.0000000000000000e+03 8.3999999999999997e-01 1071 2.0000000000000000e+03 1.0000000000000000e+00 1072 2.0000000000000000e+00 5.2999999999999999e-02 1072 5.0000000000000000e+01 7.4999999999999997e-02 1072 1.2500000000000000e+02 1.0900000000000000e-01 1072 2.5000000000000000e+02 2.8599999999999998e-01 1072 5.0000000000000000e+02 4.8499999999999999e-01 1072 1.0000000000000000e+03 7.7300000000000002e-01 1072 2.0000000000000000e+03 1.0000000000000000e+00 1073 2.0000000000000000e+00 2.9999999999999999e-02 1073 5.0000000000000000e+01 3.5999999999999997e-02 1073 1.2500000000000000e+02 5.6000000000000001e-02 1073 2.5000000000000000e+02 1.8700000000000000e-01 1073 5.0000000000000000e+02 3.8000000000000000e-01 1073 1.0000000000000000e+03 7.0299999999999996e-01 1073 2.0000000000000000e+03 1.0000000000000000e+00 1074 2.0000000000000000e+00 2.5000000000000001e-02 1074 5.0000000000000000e+01 2.7000000000000000e-02 1074 1.2500000000000000e+02 4.9000000000000002e-02 1074 2.5000000000000000e+02 1.6000000000000000e-01 1074 5.0000000000000000e+02 3.7100000000000000e-01 1074 1.0000000000000000e+03 7.2299999999999998e-01 1074 2.0000000000000000e+03 1.0000000000000000e+00 1075 2.0000000000000000e+00 5.2999999999999999e-02 1075 5.0000000000000000e+01 5.8999999999999997e-02 1075 1.2500000000000000e+02 7.2999999999999995e-02 1075 2.5000000000000000e+02 1.8600000000000000e-01 1075 5.0000000000000000e+02 4.2099999999999999e-01 1075 1.0000000000000000e+03 8.4399999999999997e-01 1075 2.0000000000000000e+03 1.0000000000000000e+00 1080 2.0000000000000000e+00 7.0000000000000007e-02 1080 5.0000000000000000e+01 2.7000000000000002e-01 1080 2.0000000000000000e+03 1.0000000000000000e+00 1081 2.0000000000000000e+00 7.0000000000000007e-02 1081 5.0000000000000000e+01 2.7000000000000002e-01 1081 2.0000000000000000e+03 1.0000000000000000e+00 1082 2.0000000000000000e+00 7.0000000000000007e-02 1082 5.0000000000000000e+01 2.7000000000000002e-01 1082 2.0000000000000000e+03 1.0000000000000000e+00 1083 2.0000000000000000e+00 7.0000000000000007e-02 1083 5.0000000000000000e+01 2.7000000000000002e-01 1083 2.0000000000000000e+03 1.0000000000000000e+00 1084 2.0000000000000000e+00 7.0000000000000007e-02 1084 5.0000000000000000e+01 2.7000000000000002e-01 1084 2.0000000000000000e+03 1.0000000000000000e+00 1085 2.0000000000000000e+00 7.0000000000000007e-02 1085 5.0000000000000000e+01 2.7000000000000002e-01 1085 2.0000000000000000e+03 1.0000000000000000e+00 1086 2.0000000000000000e+00 7.0000000000000007e-02 1086 5.0000000000000000e+01 2.7000000000000002e-01 1086 2.0000000000000000e+03 1.0000000000000000e+00 1087 2.0000000000000000e+00 7.0000000000000007e-02 1087 5.0000000000000000e+01 2.7000000000000002e-01 1087 2.0000000000000000e+03 1.0000000000000000e+00 1090 2.0000000000000000e+00 5.0000000000000003e-02 1090 5.0000000000000000e+01 2.1500000000000000e-01 1090 1.2500000000000000e+02 3.4899999999999998e-01 1090 2.5000000000000000e+02 5.7299999999999995e-01 1090 5.0000000000000000e+02 8.1399999999999995e-01 1090 1.0000000000000000e+03 9.7099999999999997e-01 1090 2.0000000000000000e+03 1.0000000000000000e+00 1091 2.0000000000000000e+00 1.6000000000000000e-01 1091 5.0000000000000000e+01 3.3000000000000002e-01 1091 1.2500000000000000e+02 4.0500000000000003e-01 1091 2.5000000000000000e+02 5.6399999999999995e-01 1091 5.0000000000000000e+02 7.8200000000000003e-01 1091 1.0000000000000000e+03 9.7699999999999998e-01 1091 2.0000000000000000e+03 1.0000000000000000e+00 1092 2.0000000000000000e+00 2.8000000000000003e-01 1092 5.0000000000000000e+01 4.2499999999999999e-01 1092 1.2500000000000000e+02 4.8599999999999999e-01 1092 2.5000000000000000e+02 6.2000000000000000e-01 1092 5.0000000000000000e+02 7.8900000000000003e-01 1092 1.0000000000000000e+03 9.5399999999999996e-01 1092 2.0000000000000000e+03 1.0000000000000000e+00 1100 2.0000000000000000e+00 5.2999999999999999e-02 1100 5.0000000000000000e+01 1.1200000000000000e-01 1100 1.2500000000000000e+02 1.6900000000000001e-01 1100 2.5000000000000000e+02 3.9700000000000002e-01 1100 5.0000000000000000e+02 7.5000000000000000e-01 1100 1.0000000000000000e+03 9.8499999999999999e-01 1100 2.0000000000000000e+03 1.0009999999999999e+00 1101 2.0000000000000000e+00 1.1400000000000000e-01 1101 5.0000000000000000e+01 1.9700000000000001e-01 1101 1.2500000000000000e+02 2.4900000000000000e-01 1101 2.5000000000000000e+02 4.7699999999999998e-01 1101 5.0000000000000000e+02 7.9500000000000004e-01 1101 1.0000000000000000e+03 9.8699999999999999e-01 1101 2.0000000000000000e+03 9.9900000000000000e-01 1102 2.0000000000000000e+00 2.2300000000000000e-01 1102 5.0000000000000000e+01 3.0299999999999999e-01 1102 1.2500000000000000e+02 3.4999999999999998e-01 1102 2.5000000000000000e+02 5.5600000000000005e-01 1102 5.0000000000000000e+02 8.1899999999999995e-01 1102 1.0000000000000000e+03 9.9099999999999999e-01 1102 2.0000000000000000e+03 1.0000000000000000e+00 1103 2.0000000000000000e+00 2.9099999999999998e-01 1103 5.0000000000000000e+01 3.4799999999999998e-01 1103 1.2500000000000000e+02 3.8300000000000001e-01 1103 2.5000000000000000e+02 5.6599999999999995e-01 1103 5.0000000000000000e+02 8.3499999999999996e-01 1103 1.0000000000000000e+03 9.8899999999999999e-01 1103 2.0000000000000000e+03 9.9900000000000000e-01 1104 2.0000000000000000e+00 2.9699999999999999e-01 1104 5.0000000000000000e+01 3.1900000000000001e-01 1104 1.2500000000000000e+02 3.4699999999999998e-01 1104 2.5000000000000000e+02 5.1600000000000001e-01 1104 5.0000000000000000e+02 8.2399999999999995e-01 1104 1.0000000000000000e+03 9.9500000000000000e-01 1104 2.0000000000000000e+03 1.0000000000000000e+00 1110 2.0000000000000000e+00 1.0999999999999999e-02 1110 5.0000000000000000e+01 1.1600000000000001e-01 1110 1.2500000000000000e+02 1.9000000000000000e-01 1110 2.5000000000000000e+02 5.7399999999999995e-01 1110 5.0000000000000000e+02 8.7800000000000000e-01 1110 1.0000000000000000e+03 9.8999999999999999e-01 1110 2.0000000000000000e+03 1.0009999999999999e+00 1111 2.0000000000000000e+00 2.1000000000000001e-02 1111 5.0000000000000000e+01 1.6300000000000001e-01 1111 1.2500000000000000e+02 2.3100000000000001e-01 1111 2.5000000000000000e+02 5.9699999999999998e-01 1111 5.0000000000000000e+02 8.8100000000000001e-01 1111 1.0000000000000000e+03 9.8599999999999999e-01 1111 2.0000000000000000e+03 9.9800000000000000e-01 1112 2.0000000000000000e+00 1.7899999999999999e-01 1112 5.0000000000000000e+01 3.3200000000000002e-01 1112 1.2500000000000000e+02 3.9000000000000001e-01 1112 2.5000000000000000e+02 6.9199999999999995e-01 1112 5.0000000000000000e+02 9.0700000000000003e-01 1112 1.0000000000000000e+03 9.8799999999999999e-01 1112 2.0000000000000000e+03 1.0000000000000000e+00 1113 2.0000000000000000e+00 2.7400000000000002e-01 1113 5.0000000000000000e+01 3.6799999999999999e-01 1113 1.2500000000000000e+02 4.2699999999999999e-01 1113 2.5000000000000000e+02 6.8700000000000006e-01 1113 5.0000000000000000e+02 8.8900000000000001e-01 1113 1.0000000000000000e+03 9.7599999999999998e-01 1113 2.0000000000000000e+03 1.0009999999999999e+00 1114 2.0000000000000000e+00 2.6800000000000002e-01 1114 5.0000000000000000e+01 3.7800000000000000e-01 1114 1.2500000000000000e+02 4.3600000000000000e-01 1114 2.5000000000000000e+02 6.9199999999999995e-01 1114 5.0000000000000000e+02 8.9300000000000002e-01 1114 1.0000000000000000e+03 9.7399999999999998e-01 1114 2.0000000000000000e+03 1.0000000000000000e+00 1115 2.0000000000000000e+00 3.1500000000000000e-01 1115 5.0000000000000000e+01 4.4700000000000001e-01 1115 1.2500000000000000e+02 5.1000000000000001e-01 1115 2.5000000000000000e+02 7.4800000000000000e-01 1115 5.0000000000000000e+02 9.1700000000000004e-01 1115 1.0000000000000000e+03 9.8599999999999999e-01 1115 2.0000000000000000e+03 1.0000000000000000e+00 1116 2.0000000000000000e+00 2.8199999999999997e-01 1116 5.0000000000000000e+01 4.0100000000000002e-01 1116 1.2500000000000000e+02 4.9399999999999999e-01 1116 2.5000000000000000e+02 7.3799999999999999e-01 1116 5.0000000000000000e+02 8.9800000000000002e-01 1116 1.0000000000000000e+03 9.8299999999999998e-01 1116 2.0000000000000000e+03 1.0000000000000000e+00 1117 2.0000000000000000e+00 2.4299999999999999e-01 1117 5.0000000000000000e+01 3.3800000000000002e-01 1117 1.2500000000000000e+02 4.1999999999999998e-01 1117 2.5000000000000000e+02 6.6100000000000003e-01 1117 5.0000000000000000e+02 8.3999999999999997e-01 1117 1.0000000000000000e+03 9.5799999999999996e-01 1117 2.0000000000000000e+03 1.0069999999999999e+00 1120 2.0000000000000000e+00 8.5999999999999993e-02 1120 5.0000000000000000e+01 3.8600000000000001e-01 1120 1.0600000000000000e+02 5.0800000000000001e-01 1120 2.5000000000000000e+02 8.1899999999999995e-01 1120 5.0000000000000000e+02 9.8599999999999999e-01 1120 1.0000000000000000e+03 9.9900000000000000e-01 1120 2.0000000000000000e+03 1.0000000000000000e+00 1121 2.0000000000000000e+00 1.8099999999999999e-01 1121 5.0000000000000000e+01 4.5000000000000001e-01 1121 1.0600000000000000e+02 5.7699999999999996e-01 1121 2.5000000000000000e+02 8.5499999999999998e-01 1121 5.0000000000000000e+02 9.8599999999999999e-01 1121 1.0000000000000000e+03 9.9700000000000000e-01 1121 2.0000000000000000e+03 1.0000000000000000e+00 1122 2.0000000000000000e+00 2.6900000000000002e-01 1122 5.0000000000000000e+01 5.3500000000000003e-01 1122 1.0600000000000000e+02 6.3800000000000001e-01 1122 2.5000000000000000e+02 8.7600000000000000e-01 1122 5.0000000000000000e+02 9.8599999999999999e-01 1122 1.0000000000000000e+03 9.9700000000000000e-01 1122 2.0000000000000000e+03 9.9900000000000000e-01 1123 2.0000000000000000e+00 3.1800000000000000e-01 1123 5.0000000000000000e+01 6.5400000000000003e-01 1123 1.0600000000000000e+02 7.2799999999999998e-01 1123 2.5000000000000000e+02 8.9100000000000001e-01 1123 5.0000000000000000e+02 9.8699999999999999e-01 1123 1.0000000000000000e+03 9.9800000000000000e-01 1123 2.0000000000000000e+03 9.9900000000000000e-01 1130 2.0000000000000000e+00 6.7000000000000004e-02 1130 5.0000000000000000e+01 2.8899999999999998e-01 1130 1.2500000000000000e+02 3.9400000000000002e-01 1130 2.5000000000000000e+02 6.6400000000000003e-01 1130 5.0000000000000000e+02 8.7400000000000000e-01 1130 1.0000000000000000e+03 9.8499999999999999e-01 1130 2.0000000000000000e+03 9.9900000000000000e-01 1131 2.0000000000000000e+00 7.4999999999999997e-02 1131 5.0000000000000000e+01 2.9199999999999998e-01 1131 1.2500000000000000e+02 4.6899999999999997e-01 1131 2.5000000000000000e+02 6.4200000000000002e-01 1131 5.0000000000000000e+02 8.8100000000000001e-01 1131 1.0000000000000000e+03 9.7999999999999998e-01 1131 2.0000000000000000e+03 1.0000000000000000e+00 1132 2.0000000000000000e+00 2.1500000000000000e-01 1132 5.0000000000000000e+01 4.2199999999999999e-01 1132 1.2500000000000000e+02 5.1900000000000002e-01 1132 2.5000000000000000e+02 7.1499999999999997e-01 1132 5.0000000000000000e+02 8.8600000000000001e-01 1132 1.0000000000000000e+03 9.8199999999999998e-01 1132 2.0000000000000000e+03 1.0000000000000000e+00 1133 2.0000000000000000e+00 2.8599999999999998e-01 1133 5.0000000000000000e+01 4.3900000000000000e-01 1133 1.2500000000000000e+02 5.2000000000000002e-01 1133 2.5000000000000000e+02 7.2199999999999998e-01 1133 5.0000000000000000e+02 8.8200000000000001e-01 1133 1.0000000000000000e+03 9.7799999999999998e-01 1133 2.0000000000000000e+03 1.0000000000000000e+00 1134 2.0000000000000000e+00 4.0500000000000003e-01 1134 5.0000000000000000e+01 5.1100000000000001e-01 1134 1.2500000000000000e+02 5.9299999999999997e-01 1134 2.5000000000000000e+02 7.5400000000000000e-01 1134 5.0000000000000000e+02 8.9900000000000002e-01 1134 1.0000000000000000e+03 9.7899999999999998e-01 1134 2.0000000000000000e+03 9.9900000000000000e-01 1135 2.0000000000000000e+00 4.0999999999999998e-01 1135 5.0000000000000000e+01 5.0000000000000000e-01 1135 1.2500000000000000e+02 5.6699999999999995e-01 1135 2.5000000000000000e+02 7.4500000000000000e-01 1135 5.0000000000000000e+02 8.7800000000000000e-01 1135 1.0000000000000000e+03 9.5999999999999996e-01 1135 2.0000000000000000e+03 9.9800000000000000e-01 1140 2.0000000000000000e+00 2.0000000000000000e-02 1140 5.0000000000000000e+01 8.0000000000000002e-02 1140 1.2500000000000000e+02 1.8600000000000000e-01 1140 2.5000000000000000e+02 5.7999999999999996e-01 1140 5.0000000000000000e+02 8.5799999999999998e-01 1140 1.0000000000000000e+03 9.7999999999999998e-01 1140 2.0000000000000000e+03 1.0069999999999999e+00 1141 2.0000000000000000e+00 2.0000000000000000e-02 1141 5.0000000000000000e+01 1.0000000000000001e-01 1141 1.2500000000000000e+02 2.0899999999999999e-01 1141 2.5000000000000000e+02 5.9999999999999998e-01 1141 5.0000000000000000e+02 8.6399999999999999e-01 1141 1.0000000000000000e+03 9.7899999999999998e-01 1141 2.0000000000000000e+03 1.0000000000000000e+00 1142 2.0000000000000000e+00 2.9999999999999999e-02 1142 5.0000000000000000e+01 1.3000000000000000e-01 1142 1.2500000000000000e+02 2.4700000000000000e-01 1142 2.5000000000000000e+02 6.1499999999999999e-01 1142 5.0000000000000000e+02 8.6399999999999999e-01 1142 1.0000000000000000e+03 9.7699999999999998e-01 1142 2.0000000000000000e+03 9.9900000000000000e-01 1143 2.0000000000000000e+00 1.0000000000000001e-01 1143 5.0000000000000000e+01 1.9000000000000000e-01 1143 1.2500000000000000e+02 2.9699999999999999e-01 1143 2.5000000000000000e+02 5.9999999999999998e-01 1143 5.0000000000000000e+02 8.4999999999999998e-01 1143 1.0000000000000000e+03 9.6799999999999997e-01 1143 2.0000000000000000e+03 1.0029999999999999e+00 1150 2.0000000000000000e+00 1.0199999999999999e-01 1150 5.0000000000000000e+01 1.9900000000000001e-01 1150 1.2500000000000000e+02 4.2499999999999999e-01 1150 2.5000000000000000e+02 8.2699999999999996e-01 1150 5.0000000000000000e+02 9.6699999999999997e-01 1150 1.0000000000000000e+03 9.9700000000000000e-01 1150 2.0000000000000000e+03 1.0000000000000000e+00 1151 2.0000000000000000e+00 6.8000000000000005e-02 1151 5.0000000000000000e+01 1.5900000000000000e-01 1151 1.2500000000000000e+02 3.9100000000000001e-01 1151 2.5000000000000000e+02 8.8100000000000001e-01 1151 5.0000000000000000e+02 9.7699999999999998e-01 1151 1.0000000000000000e+03 9.9900000000000000e-01 1151 2.0000000000000000e+03 1.0020000000000000e+00 1152 2.0000000000000000e+00 2.4700000000000000e-01 1152 5.0000000000000000e+01 3.2000000000000001e-01 1152 1.2500000000000000e+02 4.7899999999999998e-01 1152 2.5000000000000000e+02 8.5599999999999998e-01 1152 5.0000000000000000e+02 9.6399999999999997e-01 1152 1.0000000000000000e+03 9.9399999999999999e-01 1152 2.0000000000000000e+03 1.0000000000000000e+00 1160 2.0000000000000000e+00 8.0000000000000002e-02 1160 5.0000000000000000e+01 2.0999999999999999e-01 1160 1.0500000000000000e+02 2.6600000000000001e-01 1160 2.5000000000000000e+02 4.2399999999999999e-01 1160 5.0000000000000000e+02 6.7900000000000005e-01 1160 1.0000000000000000e+03 9.1500000000000004e-01 1160 2.0000000000000000e+03 1.0009999999999999e+00 1161 2.0000000000000000e+00 1.7999999999999999e-01 1161 5.0000000000000000e+01 3.5999999999999999e-01 1161 1.0500000000000000e+02 4.1199999999999998e-01 1161 2.5000000000000000e+02 5.4200000000000004e-01 1161 5.0000000000000000e+02 7.3099999999999998e-01 1161 1.0000000000000000e+03 9.0800000000000003e-01 1161 2.0000000000000000e+03 9.9099999999999999e-01 1162 2.0000000000000000e+00 4.8999999999999999e-01 1162 5.0000000000000000e+01 6.2000000000000000e-01 1162 1.0500000000000000e+02 6.5400000000000003e-01 1162 2.5000000000000000e+02 7.1399999999999997e-01 1162 5.0000000000000000e+02 8.1999999999999995e-01 1162 1.0000000000000000e+03 9.3600000000000005e-01 1162 2.0000000000000000e+03 9.9199999999999999e-01 1163 2.0000000000000000e+00 4.6999999999999997e-01 1163 5.0000000000000000e+01 5.8999999999999997e-01 1163 1.0500000000000000e+02 6.3400000000000001e-01 1163 2.5000000000000000e+02 7.0799999999999996e-01 1163 5.0000000000000000e+02 8.0800000000000005e-01 1163 1.0000000000000000e+03 9.2800000000000005e-01 1163 2.0000000000000000e+03 9.9600000000000000e-01 1164 2.0000000000000000e+00 3.2000000000000001e-01 1164 5.0000000000000000e+01 5.0000000000000000e-01 1164 1.0500000000000000e+02 5.6699999999999995e-01 1164 2.5000000000000000e+02 6.5500000000000003e-01 1164 5.0000000000000000e+02 7.6300000000000001e-01 1164 1.0000000000000000e+03 9.1300000000000003e-01 1164 2.0000000000000000e+03 9.9700000000000000e-01 1165 2.0000000000000000e+00 2.5000000000000000e-01 1165 5.0000000000000000e+01 4.4000000000000000e-01 1165 1.0500000000000000e+02 5.0800000000000001e-01 1165 2.5000000000000000e+02 5.9699999999999998e-01 1165 5.0000000000000000e+02 7.1199999999999997e-01 1165 1.0000000000000000e+03 8.8200000000000001e-01 1165 2.0000000000000000e+03 9.9099999999999999e-01 1166 2.0000000000000000e+00 2.0000000000000001e-01 1166 5.0000000000000000e+01 3.9000000000000001e-01 1166 1.0500000000000000e+02 4.6300000000000002e-01 1166 2.5000000000000000e+02 5.7499999999999996e-01 1166 5.0000000000000000e+02 7.2099999999999997e-01 1166 1.0000000000000000e+03 9.0000000000000002e-01 1166 2.0000000000000000e+03 9.7999999999999998e-01 1170 2.0000000000000000e+00 6.9000000000000006e-02 1170 5.0000000000000000e+01 2.6900000000000002e-01 1170 2.0000000000000000e+03 1.0000000000000000e+00 1171 2.0000000000000000e+00 2.1199999999999999e-01 1171 5.0000000000000000e+01 3.9200000000000002e-01 1171 2.0000000000000000e+03 1.0000000000000000e+00 1172 2.0000000000000000e+00 3.8700000000000001e-01 1172 5.0000000000000000e+01 5.8299999999999996e-01 1172 2.0000000000000000e+03 1.0000000000000000e+00 1173 2.0000000000000000e+00 3.9000000000000001e-01 1173 5.0000000000000000e+01 6.2000000000000000e-01 1173 2.0000000000000000e+03 9.9900000000000000e-01 1174 2.0000000000000000e+00 3.5899999999999999e-01 1174 5.0000000000000000e+01 4.6999999999999997e-01 1174 2.0000000000000000e+03 1.0000000000000000e+00 1180 2.0000000000000000e+00 3.8000000000000000e-01 1180 5.0000000000000000e+01 5.9999999999999998e-01 1180 2.0000000000000000e+03 1.0000000000000000e+00 1181 2.0000000000000000e+00 4.7999999999999998e-01 1181 5.0000000000000000e+01 6.9999999999999996e-01 1181 2.0000000000000000e+03 1.0000000000000000e+00 1182 2.0000000000000000e+00 5.4000000000000004e-01 1182 5.0000000000000000e+01 6.7000000000000004e-01 1182 2.0000000000000000e+03 1.0000000000000000e+00 1183 2.0000000000000000e+00 3.2000000000000001e-01 1183 5.0000000000000000e+01 5.0000000000000000e-01 1183 2.0000000000000000e+03 1.0000000000000000e+00 1184 2.0000000000000000e+00 3.3000000000000002e-01 1184 5.0000000000000000e+01 5.3000000000000003e-01 1184 2.0000000000000000e+03 1.0000000000000000e+00 1190 2.0000000000000000e+00 2.2000000000000000e-01 1190 5.0000000000000000e+01 6.8000000000000005e-01 1190 1.0000000000000000e+02 8.7900000000000000e-01 1190 2.5000000000000000e+02 9.9299999999999999e-01 1190 5.0000000000000000e+02 9.9600000000000000e-01 1190 1.0000000000000000e+03 9.9800000000000000e-01 1190 2.0000000000000000e+03 9.9900000000000000e-01 1191 2.0000000000000000e+00 3.5699999999999998e-01 1191 5.0000000000000000e+01 7.6000000000000001e-01 1191 1.0000000000000000e+02 9.0400000000000003e-01 1191 2.5000000000000000e+02 9.8599999999999999e-01 1191 5.0000000000000000e+02 9.8999999999999999e-01 1191 1.0000000000000000e+03 9.9500000000000000e-01 1191 2.0000000000000000e+03 9.9800000000000000e-01 1192 2.0000000000000000e+00 3.9500000000000002e-01 1192 5.0000000000000000e+01 7.5500000000000000e-01 1192 1.0000000000000000e+02 8.8700000000000001e-01 1192 2.5000000000000000e+02 9.9600000000000000e-01 1192 5.0000000000000000e+02 9.9700000000000000e-01 1192 1.0000000000000000e+03 9.9800000000000000e-01 1192 2.0000000000000000e+03 1.0000000000000000e+00 1193 2.0000000000000000e+00 3.4000000000000002e-01 1193 5.0000000000000000e+01 6.5700000000000003e-01 1193 1.0000000000000000e+02 8.2399999999999995e-01 1193 2.5000000000000000e+02 9.9099999999999999e-01 1193 5.0000000000000000e+02 9.9399999999999999e-01 1193 1.0000000000000000e+03 9.9600000000000000e-01 1193 2.0000000000000000e+03 1.0000000000000000e+00 1194 2.0000000000000000e+00 3.5699999999999998e-01 1194 5.0000000000000000e+01 6.4000000000000001e-01 1194 1.0000000000000000e+02 8.1599999999999995e-01 1194 2.5000000000000000e+02 9.9199999999999999e-01 1194 5.0000000000000000e+02 9.9399999999999999e-01 1194 1.0000000000000000e+03 9.9600000000000000e-01 1194 2.0000000000000000e+03 9.9800000000000000e-01 1200 2.0000000000000000e+00 1.4499999999999999e-01 1200 5.0000000000000000e+01 3.9300000000000002e-01 1200 1.2500000000000000e+02 5.9199999999999997e-01 1200 2.5000000000000000e+02 8.5399999999999998e-01 1200 5.0000000000000000e+02 9.8999999999999999e-01 1200 1.0000000000000000e+03 9.9700000000000000e-01 1200 2.0000000000000000e+03 9.9800000000000000e-01 1201 2.0000000000000000e+00 2.3799999999999999e-01 1201 5.0000000000000000e+01 4.7299999999999998e-01 1201 1.2500000000000000e+02 6.1399999999999999e-01 1201 2.5000000000000000e+02 8.5599999999999998e-01 1201 5.0000000000000000e+02 9.9099999999999999e-01 1201 1.0000000000000000e+03 9.9700000000000000e-01 1201 2.0000000000000000e+03 9.9800000000000000e-01 1202 2.0000000000000000e+00 1.7999999999999999e-01 1202 5.0000000000000000e+01 3.5299999999999998e-01 1202 1.2500000000000000e+02 4.9900000000000000e-01 1202 2.5000000000000000e+02 8.1699999999999995e-01 1202 5.0000000000000000e+02 9.8699999999999999e-01 1202 1.0000000000000000e+03 9.9800000000000000e-01 1202 2.0000000000000000e+03 9.9800000000000000e-01 1203 2.0000000000000000e+00 8.0000000000000002e-02 1203 5.0000000000000000e+01 1.9700000000000001e-01 1203 1.2500000000000000e+02 3.6499999999999999e-01 1203 2.5000000000000000e+02 7.5800000000000001e-01 1203 5.0000000000000000e+02 9.8399999999999999e-01 1203 1.0000000000000000e+03 9.9500000000000000e-01 1203 2.0000000000000000e+03 9.9500000000000000e-01 1204 2.0000000000000000e+00 1.3000000000000000e-01 1204 5.0000000000000000e+01 2.2300000000000000e-01 1204 1.2500000000000000e+02 3.8100000000000001e-01 1204 2.5000000000000000e+02 7.5900000000000001e-01 1204 5.0000000000000000e+02 9.8599999999999999e-01 1204 1.0000000000000000e+03 9.9900000000000000e-01 1204 2.0000000000000000e+03 9.9900000000000000e-01 1210 2.0000000000000000e+00 1.2700000000000000e-01 1210 5.0000000000000000e+01 4.3300000000000000e-01 1210 1.2500000000000000e+02 8.0100000000000005e-01 1210 2.5000000000000000e+02 9.4999999999999996e-01 1210 5.0000000000000000e+02 9.9199999999999999e-01 1210 1.0000000000000000e+03 9.9500000000000000e-01 1210 2.0000000000000000e+03 9.9500000000000000e-01 1211 2.0000000000000000e+00 1.9500000000000001e-01 1211 5.0000000000000000e+01 5.0300000000000000e-01 1211 1.2500000000000000e+02 8.4099999999999997e-01 1211 2.5000000000000000e+02 9.6799999999999997e-01 1211 5.0000000000000000e+02 9.9700000000000000e-01 1211 1.0000000000000000e+03 9.9900000000000000e-01 1211 2.0000000000000000e+03 9.9900000000000000e-01 1212 2.0000000000000000e+00 2.1199999999999999e-01 1212 5.0000000000000000e+01 5.1800000000000002e-01 1212 1.2500000000000000e+02 8.4099999999999997e-01 1212 2.5000000000000000e+02 9.6299999999999997e-01 1212 5.0000000000000000e+02 9.9299999999999999e-01 1212 1.0000000000000000e+03 9.9700000000000000e-01 1212 2.0000000000000000e+03 9.9800000000000000e-01 1213 2.0000000000000000e+00 3.3700000000000002e-01 1213 5.0000000000000000e+01 6.7700000000000005e-01 1213 1.2500000000000000e+02 8.8800000000000001e-01 1213 2.5000000000000000e+02 9.6699999999999997e-01 1213 5.0000000000000000e+02 9.9099999999999999e-01 1213 1.0000000000000000e+03 9.9500000000000000e-01 1213 2.0000000000000000e+03 1.0000000000000000e+00 1220 1221 1222 1223 1224 1225 1230 1231 1232 1233 1234 1235 1236 1237 1240 1.0000000000000000e+00 1.2000000000000000e-02 1240 4.0000000000000000e+00 1.2999999999999999e-02 1240 5.0000000000000000e+00 1.7000000000000001e-02 1240 7.0000000000000000e+00 1.7000000000000001e-02 1240 9.0000000000000000e+00 2.4000000000000000e-02 1240 1.6000000000000000e+01 2.9000000000000001e-02 1240 3.0000000000000000e+01 3.5000000000000003e-02 1240 5.1000000000000000e+01 3.6999999999999998e-02 1240 5.3000000000000000e+01 3.6999999999999998e-02 1240 7.5000000000000000e+01 4.2000000000000003e-02 1240 1.1000000000000000e+02 5.2999999999999999e-02 1240 2.5000000000000000e+02 1.0500000000000000e-01 1240 5.0000000000000000e+02 3.7700000000000000e-01 1240 1.0000000000000000e+03 8.6799999999999999e-01 1240 2.0000000000000000e+03 9.7199999999999998e-01 1241 1.0000000000000000e+00 1.2999999999999999e-02 1241 4.0000000000000000e+00 1.2999999999999999e-02 1241 5.0000000000000000e+00 1.7000000000000001e-02 1241 7.0000000000000000e+00 1.7999999999999999e-02 1241 9.0000000000000000e+00 2.3000000000000000e-02 1241 1.6000000000000000e+01 3.1000000000000000e-02 1241 3.0000000000000000e+01 3.5999999999999997e-02 1241 5.1000000000000000e+01 3.7999999999999999e-02 1241 5.3000000000000000e+01 3.9000000000000000e-02 1241 7.5000000000000000e+01 4.3999999999999997e-02 1241 1.1000000000000000e+02 5.5000000000000000e-02 1241 2.5000000000000000e+02 1.0299999999999999e-01 1241 5.0000000000000000e+02 3.7300000000000000e-01 1241 1.0000000000000000e+03 8.6399999999999999e-01 1241 2.0000000000000000e+03 9.7499999999999998e-01 1260 1.0000000000000000e+00 1.2000000000000000e-01 1260 4.0000000000000000e+00 1.5900000000000000e-01 1260 5.0000000000000000e+00 1.6800000000000001e-01 1260 6.0000000000000000e+00 1.9000000000000000e-01 1260 8.0000000000000000e+00 2.2600000000000001e-01 1260 1.5000000000000000e+01 3.0199999999999999e-01 1260 2.7000000000000000e+01 4.0000000000000002e-01 1260 4.4000000000000000e+01 5.5500000000000005e-01 1260 5.3000000000000000e+01 5.8599999999999997e-01 1260 7.5000000000000000e+01 6.9599999999999995e-01 1260 1.1000000000000000e+02 8.2999999999999996e-01 1260 2.5000000000000000e+02 9.4599999999999995e-01 1260 5.0000000000000000e+02 9.7399999999999998e-01 1260 1.0000000000000000e+03 9.9500000000000000e-01 1260 2.0000000000000000e+03 9.9900000000000000e-01 1261 1.0000000000000000e+00 1.1100000000000000e-01 1261 4.0000000000000000e+00 1.5300000000000000e-01 1261 5.0000000000000000e+00 1.6400000000000001e-01 1261 6.0000000000000000e+00 1.8700000000000000e-01 1261 8.0000000000000000e+00 2.3400000000000001e-01 1261 1.5000000000000000e+01 3.1500000000000000e-01 1261 2.7000000000000000e+01 4.2799999999999999e-01 1261 4.4000000000000000e+01 6.0299999999999998e-01 1261 5.3000000000000000e+01 6.3300000000000001e-01 1261 7.5000000000000000e+01 7.7400000000000002e-01 1261 1.1000000000000000e+02 9.0500000000000003e-01 1261 2.5000000000000000e+02 9.7399999999999998e-01 1261 5.0000000000000000e+02 9.8799999999999999e-01 1261 1.0000000000000000e+03 9.9900000000000000e-01 1261 2.0000000000000000e+03 9.9900000000000000e-01 1270 1280 2.0000000000000000e+00 1.3600000000000001e-01 1280 6.0000000000000000e+00 1.8099999999999999e-01 1280 2.0000000000000000e+01 3.3400000000000002e-01 1280 6.3000000000000000e+01 9.3500000000000005e-01 1280 2.0000000000000000e+02 9.8699999999999999e-01 1280 6.3000000000000000e+02 9.9900000000000000e-01 1280 2.0000000000000000e+03 1.0000000000000000e+00 1281 2.0000000000000000e+00 1.9300000000000000e-01 1281 6.0000000000000000e+00 2.6800000000000002e-01 1281 2.0000000000000000e+01 4.6500000000000002e-01 1281 6.3000000000000000e+01 9.7599999999999998e-01 1281 2.0000000000000000e+02 9.9299999999999999e-01 1281 6.3000000000000000e+02 9.9900000000000000e-01 1281 2.0000000000000000e+03 1.0000000000000000e+00 1282 2.0000000000000000e+00 2.4700000000000000e-01 1282 6.0000000000000000e+00 3.3300000000000002e-01 1282 2.0000000000000000e+01 4.3600000000000000e-01 1282 6.3000000000000000e+01 9.7699999999999998e-01 1282 2.0000000000000000e+02 9.9600000000000000e-01 1282 6.3000000000000000e+02 1.0000000000000000e+00 1282 2.0000000000000000e+03 1.0000000000000000e+00 1290 2.0000000000000000e+00 4.2999999999999997e-02 1290 6.3000000000000000e+01 1.1200000000000000e-01 1290 2.0000000000000000e+03 1.0000000000000000e+00 1300 2.0000000000000000e+00 3.1400000000000000e-01 1300 5.0000000000000000e+01 6.1199999999999999e-01 1300 2.0000000000000000e+03 1.0000000000000000e+00 1301 2.0000000000000000e+00 3.1400000000000000e-01 1301 5.0000000000000000e+01 6.1199999999999999e-01 1301 2.0000000000000000e+03 1.0000000000000000e+00 1310 2.0000000000000000e+00 2.0000000000000000e-02 1310 5.0000000000000000e+01 4.3999999999999997e-02 1310 2.0000000000000000e+03 1.0000000000000000e+00 1320 2.0000000000000000e+00 5.4500000000000004e-01 1320 2.0000000000000000e+01 8.5999999999999999e-01 1320 6.3000000000000000e+01 9.5399999999999996e-01 1320 2.0000000000000000e+02 9.8499999999999999e-01 1320 6.3000000000000000e+02 9.9600000000000000e-01 1320 2.0000000000000000e+03 9.9900000000000000e-01 1330 2.0000000000000000e+00 9.1999999999999998e-02 1330 6.3000000000000000e+01 9.6399999999999997e-01 1330 2.0000000000000000e+03 1.0000000000000000e+00 1331 2.0000000000000000e+00 2.3000000000000001e-01 1331 6.3000000000000000e+01 9.7999999999999998e-01 1331 2.0000000000000000e+03 1.0000000000000000e+00 1340 2.0000000000000000e+00 1.6200000000000001e-01 1340 6.0000000000000000e+00 2.0599999999999999e-01 1340 2.0000000000000000e+01 3.5999999999999999e-01 1340 6.0000000000000000e+01 8.2999999999999996e-01 1340 2.0000000000000000e+02 9.2700000000000005e-01 1340 6.0000000000000000e+02 9.9500000000000000e-01 1340 2.0000000000000000e+03 1.0000000000000000e+00 1341 2.0000000000000000e+00 1.5600000000000000e-01 1341 6.0000000000000000e+00 2.0100000000000001e-01 1341 2.0000000000000000e+01 3.7500000000000000e-01 1341 6.0000000000000000e+01 8.8400000000000001e-01 1341 2.0000000000000000e+02 9.4799999999999995e-01 1341 6.0000000000000000e+02 9.9800000000000000e-01 1341 2.0000000000000000e+03 1.0000000000000000e+00 1342 2.0000000000000000e+00 1.6300000000000001e-01 1342 6.0000000000000000e+00 2.0200000000000001e-01 1342 2.0000000000000000e+01 4.0300000000000002e-01 1342 6.0000000000000000e+01 9.0000000000000002e-01 1342 2.0000000000000000e+02 9.5499999999999996e-01 1342 6.0000000000000000e+02 9.9700000000000000e-01 1342 2.0000000000000000e+03 1.0000000000000000e+00 1350 2.0000000000000000e+00 1.7000000000000001e-01 1350 6.0000000000000000e+00 2.1500000000000000e-01 1350 2.0000000000000000e+01 3.8000000000000000e-01 1350 6.0000000000000000e+01 8.1299999999999994e-01 1350 2.0000000000000000e+02 9.2200000000000004e-01 1350 6.0000000000000000e+02 9.8599999999999999e-01 1350 2.0000000000000000e+03 1.0000000000000000e+00 1351 2.0000000000000000e+00 1.7000000000000001e-01 1351 6.0000000000000000e+00 2.1299999999999999e-01 1351 2.0000000000000000e+01 3.7500000000000000e-01 1351 6.0000000000000000e+01 8.4499999999999997e-01 1351 2.0000000000000000e+02 9.2900000000000005e-01 1351 6.0000000000000000e+02 9.8999999999999999e-01 1351 2.0000000000000000e+03 1.0000000000000000e+00 1352 2.0000000000000000e+00 1.7399999999999999e-01 1352 6.0000000000000000e+00 2.2000000000000000e-01 1352 2.0000000000000000e+01 3.9400000000000002e-01 1352 6.0000000000000000e+01 8.5699999999999998e-01 1352 2.0000000000000000e+02 9.2500000000000004e-01 1352 6.0000000000000000e+02 9.9500000000000000e-01 1352 2.0000000000000000e+03 1.0000000000000000e+00 1360 2.0000000000000000e+00 4.3500000000000000e-01 1360 6.0000000000000000e+00 5.0900000000000001e-01 1360 2.0000000000000000e+01 6.7800000000000005e-01 1360 6.3000000000000000e+01 8.7300000000000000e-01 1360 2.0000000000000000e+02 9.7399999999999998e-01 1360 6.3000000000000000e+02 9.9500000000000000e-01 1360 2.0000000000000000e+03 1.0000000000000000e+00 1361 2.0000000000000000e+00 4.0300000000000002e-01 1361 6.0000000000000000e+00 5.1600000000000001e-01 1361 2.0000000000000000e+01 6.4000000000000001e-01 1361 6.3000000000000000e+01 8.7600000000000000e-01 1361 2.0000000000000000e+02 9.8799999999999999e-01 1361 6.3000000000000000e+02 9.9900000000000000e-01 1361 2.0000000000000000e+03 1.0000000000000000e+00 1362 2.0000000000000000e+00 3.2200000000000001e-01 1362 6.0000000000000000e+00 4.3800000000000000e-01 1362 2.0000000000000000e+01 5.8199999999999996e-01 1362 6.3000000000000000e+01 8.4999999999999998e-01 1362 2.0000000000000000e+02 9.8599999999999999e-01 1362 6.3000000000000000e+02 9.9900000000000000e-01 1362 2.0000000000000000e+03 1.0000000000000000e+00 1370 2.0000000000000000e+00 2.5900000000000001e-01 1370 6.0000000000000000e+00 3.7600000000000000e-01 1370 2.0000000000000000e+01 4.6500000000000002e-01 1370 6.3000000000000000e+01 5.7599999999999996e-01 1370 2.0000000000000000e+02 8.0400000000000005e-01 1370 6.3000000000000000e+02 9.7399999999999998e-01 1370 2.0000000000000000e+03 1.0000000000000000e+00 1371 2.0000000000000000e+00 3.3900000000000002e-01 1371 6.0000000000000000e+00 4.2199999999999999e-01 1371 2.0000000000000000e+01 5.0400000000000000e-01 1371 6.3000000000000000e+01 8.8200000000000001e-01 1371 2.0000000000000000e+02 9.3100000000000005e-01 1371 6.3000000000000000e+02 9.9099999999999999e-01 1371 2.0000000000000000e+03 1.0000000000000000e+00 1372 2.0000000000000000e+00 3.5099999999999998e-01 1372 6.0000000000000000e+00 4.5000000000000001e-01 1372 2.0000000000000000e+01 5.5300000000000005e-01 1372 6.3000000000000000e+01 9.0200000000000002e-01 1372 2.0000000000000000e+02 9.4699999999999995e-01 1372 6.3000000000000000e+02 9.9600000000000000e-01 1372 2.0000000000000000e+03 1.0000000000000000e+00 1380 2.0000000000000000e+00 7.8000000000000000e-02 1380 6.0000000000000000e+00 1.1799999999999999e-01 1380 2.0000000000000000e+01 2.0599999999999999e-01 1380 6.3000000000000000e+01 5.7699999999999996e-01 1380 2.0000000000000000e+02 7.7400000000000002e-01 1380 6.3000000000000000e+02 9.8699999999999999e-01 1380 2.0000000000000000e+03 1.0000000000000000e+00 1381 2.0000000000000000e+00 1.1200000000000000e-01 1381 6.0000000000000000e+00 1.5500000000000000e-01 1381 2.0000000000000000e+01 2.3699999999999999e-01 1381 6.3000000000000000e+01 5.4200000000000004e-01 1381 2.0000000000000000e+02 7.3999999999999999e-01 1381 6.3000000000000000e+02 9.7499999999999998e-01 1381 2.0000000000000000e+03 1.0000000000000000e+00 1382 2.0000000000000000e+00 2.6800000000000002e-01 1382 6.0000000000000000e+00 3.1600000000000000e-01 1382 2.0000000000000000e+01 4.0000000000000002e-01 1382 6.3000000000000000e+01 5.0900000000000001e-01 1382 2.0000000000000000e+02 7.8500000000000003e-01 1382 6.3000000000000000e+02 9.7799999999999998e-01 1382 2.0000000000000000e+03 1.0000000000000000e+00 1383 2.0000000000000000e+00 4.0699999999999997e-01 1383 6.0000000000000000e+00 6.2200000000000000e-01 1383 2.0000000000000000e+01 8.1899999999999995e-01 1383 6.3000000000000000e+01 9.6099999999999997e-01 1383 2.0000000000000000e+02 9.9399999999999999e-01 1383 6.3000000000000000e+02 9.9900000000000000e-01 1383 2.0000000000000000e+03 1.0000000000000000e+00 1390 2.0000000000000000e+00 6.6000000000000003e-02 1390 6.3000000000000000e+01 4.2399999999999999e-01 1390 2.0000000000000000e+03 1.0000000000000000e+00 1391 2.0000000000000000e+00 6.6000000000000003e-02 1391 6.3000000000000000e+01 4.2399999999999999e-01 1391 2.0000000000000000e+03 1.0000000000000000e+00 1392 2.0000000000000000e+00 6.6000000000000003e-02 1392 6.3000000000000000e+01 4.2399999999999999e-01 1392 2.0000000000000000e+03 1.0000000000000000e+00 1400 2.0000000000000000e+00 5.8099999999999996e-01 1400 6.0000000000000000e+00 7.3299999999999998e-01 1400 2.0000000000000000e+01 8.5799999999999998e-01 1400 6.3000000000000000e+01 9.8099999999999998e-01 1400 2.0000000000000000e+02 9.9900000000000000e-01 1400 6.3000000000000000e+02 1.0000000000000000e+00 1400 2.0000000000000000e+03 1.0000000000000000e+00 1410 2.5000000000000000e+02 0.0000000000000000e+00 1410 5.0000000000000000e+02 1.0000000000000000e+00 1420 2.0000000000000000e+00 3.2000000000000001e-01 1420 5.0000000000000000e+01 8.0000000000000004e-01 1420 2.0000000000000000e+03 1.0000000000000000e+00 1430 2.0000000000000000e+00 3.7999999999999999e-02 1430 6.0000000000000000e+00 3.9000000000000000e-02 1430 2.0000000000000000e+01 8.4000000000000005e-02 1430 6.3000000000000000e+01 3.8800000000000001e-01 1430 2.0000000000000000e+02 8.2899999999999996e-01 1430 6.3000000000000000e+02 9.7099999999999997e-01 1430 2.0000000000000000e+03 9.9700000000000000e-01 1440 2.0000000000000000e+00 1.8600000000000000e-01 1440 6.0000000000000000e+00 2.2800000000000001e-01 1440 2.0000000000000000e+01 2.9899999999999999e-01 1440 6.3000000000000000e+01 4.3600000000000000e-01 1440 2.0000000000000000e+02 7.8600000000000003e-01 1440 6.3000000000000000e+02 9.3799999999999994e-01 1440 2.0000000000000000e+03 1.0000000000000000e+00 1450 2.0000000000000000e+00 1.4699999999999999e-01 1450 6.0000000000000000e+00 2.0599999999999999e-01 1450 2.0000000000000000e+01 2.4800000000000000e-01 1450 6.3000000000000000e+01 4.0899999999999997e-01 1450 2.0000000000000000e+02 8.2899999999999996e-01 1450 6.3000000000000000e+02 9.7099999999999997e-01 1450 2.0000000000000000e+03 9.9700000000000000e-01 1460 2.0000000000000000e+00 1.2000000000000000e-02 1460 6.0000000000000000e+00 1.4000000000000000e-02 1460 2.0000000000000000e+01 2.0000000000000000e-02 1460 6.3000000000000000e+01 2.1999999999999999e-02 1460 1.0000000000000000e+02 2.5999999999999999e-02 1460 2.0000000000000000e+02 5.8999999999999997e-02 1460 6.3000000000000000e+02 7.0699999999999996e-01 1460 2.0000000000000000e+03 1.0000000000000000e+00 1461 2.0000000000000000e+00 3.0000000000000001e-03 1461 6.0000000000000000e+00 6.0000000000000001e-03 1461 2.0000000000000000e+01 8.0000000000000002e-03 1461 6.3000000000000000e+01 1.0000000000000000e-02 1461 1.0000000000000000e+02 1.4000000000000000e-02 1461 2.0000000000000000e+02 5.0000000000000003e-02 1461 6.3000000000000000e+02 7.0699999999999996e-01 1461 2.0000000000000000e+03 1.0000000000000000e+00 1462 2.0000000000000000e+00 1.6000000000000000e-02 1462 6.0000000000000000e+00 2.1000000000000001e-02 1462 2.0000000000000000e+01 2.9000000000000001e-02 1462 6.3000000000000000e+01 3.5999999999999997e-02 1462 1.0000000000000000e+02 4.4999999999999998e-02 1462 2.0000000000000000e+02 2.0499999999999999e-01 1462 6.3000000000000000e+02 9.8499999999999999e-01 1462 2.0000000000000000e+03 1.0000000000000000e+00 1463 2.0000000000000000e+00 1.0999999999999999e-02 1463 6.0000000000000000e+00 1.0999999999999999e-02 1463 2.0000000000000000e+01 2.0000000000000000e-02 1463 6.3000000000000000e+01 3.1000000000000000e-02 1463 1.0000000000000000e+02 6.2000000000000000e-02 1463 2.0000000000000000e+02 1.7100000000000001e-01 1463 6.3000000000000000e+02 9.9900000000000000e-01 1463 2.0000000000000000e+03 1.0000000000000000e+00 1464 2.0000000000000000e+00 2.5999999999999999e-02 1464 6.0000000000000000e+00 2.5999999999999999e-02 1464 2.0000000000000000e+01 6.0999999999999999e-02 1464 6.3000000000000000e+01 7.1999999999999995e-02 1464 1.0000000000000000e+02 9.5000000000000001e-02 1464 2.0000000000000000e+02 4.8799999999999999e-01 1464 6.3000000000000000e+02 9.9700000000000000e-01 1464 2.0000000000000000e+03 1.0000000000000000e+00 1465 2.0000000000000000e+00 3.2000000000000001e-02 1465 6.0000000000000000e+00 4.2000000000000003e-02 1465 2.0000000000000000e+01 7.3999999999999996e-02 1465 6.3000000000000000e+01 2.0999999999999999e-01 1465 1.0000000000000000e+02 4.7399999999999998e-01 1465 2.0000000000000000e+02 8.7200000000000000e-01 1465 6.3000000000000000e+02 9.8599999999999999e-01 1465 2.0000000000000000e+03 1.0000000000000000e+00 1466 2.0000000000000000e+00 1.4000000000000000e-02 1466 6.0000000000000000e+00 1.4000000000000000e-02 1466 2.0000000000000000e+01 1.7000000000000001e-02 1466 6.3000000000000000e+01 1.0900000000000000e-01 1466 1.0000000000000000e+02 5.0900000000000001e-01 1466 2.0000000000000000e+02 9.7299999999999998e-01 1466 6.3000000000000000e+02 1.0000000000000000e+00 1466 2.0000000000000000e+03 1.0000000000000000e+00 1467 2.0000000000000000e+00 5.0000000000000003e-02 1467 6.0000000000000000e+00 6.5000000000000002e-02 1467 2.0000000000000000e+01 8.8999999999999996e-02 1467 6.3000000000000000e+01 1.2200000000000000e-01 1467 1.0000000000000000e+02 1.2700000000000000e-01 1467 2.0000000000000000e+02 2.8000000000000003e-01 1467 6.3000000000000000e+02 8.2999999999999996e-01 1467 2.0000000000000000e+03 1.0000000000000000e+00 1480 1481 1482 1490 2.0000000000000000e+00 1.5800000000000000e-01 1490 6.0000000000000000e+00 2.3300000000000001e-01 1490 2.0000000000000000e+01 4.3099999999999999e-01 1490 6.3000000000000000e+01 9.5599999999999996e-01 1490 2.0000000000000000e+02 9.9700000000000000e-01 1490 6.3000000000000000e+02 1.0000000000000000e+00 1490 2.0000000000000000e+03 1.0000000000000000e+00 2000 2.0000000000000000e+00 2.1900000000000000e-01 2000 6.0000000000000000e+00 2.6300000000000001e-01 2000 2.0000000000000000e+01 3.9900000000000002e-01 2000 6.0000000000000000e+01 8.2499999999999996e-01 2000 2.0000000000000000e+02 9.3799999999999994e-01 2000 6.0000000000000000e+02 9.9800000000000000e-01 2000 2.0000000000000000e+03 1.0000000000000000e+00 2001 2.0000000000000000e+00 2.3499999999999999e-01 2001 6.0000000000000000e+00 2.7200000000000002e-01 2001 2.0000000000000000e+01 4.7399999999999998e-01 2001 6.0000000000000000e+01 9.2600000000000005e-01 2001 2.0000000000000000e+02 9.7799999999999998e-01 2001 6.0000000000000000e+02 9.9900000000000000e-01 2001 2.0000000000000000e+03 1.0000000000000000e+00 2002 2.0000000000000000e+00 2.4900000000000000e-01 2002 6.0000000000000000e+00 2.8000000000000003e-01 2002 2.0000000000000000e+01 5.0000000000000000e-01 2002 6.0000000000000000e+01 9.5299999999999996e-01 2002 2.0000000000000000e+02 9.8799999999999999e-01 2002 6.0000000000000000e+02 9.9900000000000000e-01 2002 2.0000000000000000e+03 1.0000000000000000e+00 2010 2.0000000000000000e+00 2.5300000000000000e-01 2010 6.0000000000000000e+00 2.9599999999999999e-01 2010 2.0000000000000000e+01 4.4200000000000000e-01 2010 6.0000000000000000e+01 8.2599999999999996e-01 2010 2.0000000000000000e+02 9.4199999999999995e-01 2010 6.0000000000000000e+02 9.9700000000000000e-01 2010 2.0000000000000000e+03 1.0000000000000000e+00 2011 2.0000000000000000e+00 2.5600000000000001e-01 2011 6.0000000000000000e+00 2.8399999999999997e-01 2011 2.0000000000000000e+01 4.4800000000000001e-01 2011 6.0000000000000000e+01 8.5399999999999998e-01 2011 2.0000000000000000e+02 9.7099999999999997e-01 2011 6.0000000000000000e+02 9.9900000000000000e-01 2011 2.0000000000000000e+03 1.0000000000000000e+00 2012 2.0000000000000000e+00 2.5400000000000000e-01 2012 6.0000000000000000e+00 2.8399999999999997e-01 2012 2.0000000000000000e+01 3.7000000000000000e-01 2012 6.0000000000000000e+01 8.7000000000000000e-01 2012 2.0000000000000000e+02 9.8599999999999999e-01 2012 6.0000000000000000e+02 9.9900000000000000e-01 2012 2.0000000000000000e+03 1.0000000000000000e+00 2020 2.0000000000000000e+00 6.2000000000000000e-01 2020 5.0000000000000000e+01 9.5599999999999996e-01 2020 2.0000000000000000e+03 1.0000000000000000e+00 2021 2.0000000000000000e+00 6.2000000000000000e-01 2021 5.0000000000000000e+01 9.5599999999999996e-01 2021 2.0000000000000000e+03 1.0000000000000000e+00 2022 2.0000000000000000e+00 6.2000000000000000e-01 2022 5.0000000000000000e+01 9.5599999999999996e-01 2022 2.0000000000000000e+03 1.0000000000000000e+00 2030 2031 2032 2040 2041 2050 2051 2060 2061 2070 2071 2080 2081 2090 2091 2092 2100 0.0000000000000000e+00 2.5000000000000001e-02 2100 2.0000000000000000e+00 4.1000000000000002e-02 2100 2.0000000000000000e+01 5.0000000000000003e-02 2100 5.0000000000000000e+01 7.5999999999999998e-02 2100 1.0000000000000000e+02 2.5000000000000000e-01 2100 2.5000000000000000e+02 6.9299999999999995e-01 2100 5.0000000000000000e+02 9.5099999999999996e-01 2100 1.0000000000000000e+03 1.0000000000000000e+00 2100 2.0000000000000000e+03 1.0000000000000000e+00 2101 0.0000000000000000e+00 4.2999999999999997e-02 2101 2.0000000000000000e+00 7.0000000000000007e-02 2101 2.0000000000000000e+01 8.4000000000000005e-02 2101 5.0000000000000000e+01 1.2600000000000000e-01 2101 1.0000000000000000e+02 2.8100000000000003e-01 2101 2.5000000000000000e+02 6.7500000000000004e-01 2101 5.0000000000000000e+02 9.3799999999999994e-01 2101 1.0000000000000000e+03 9.9800000000000000e-01 2101 2.0000000000000000e+03 1.0000000000000000e+00 2102 0.0000000000000000e+00 5.3999999999999999e-02 2102 2.0000000000000000e+00 1.0500000000000000e-01 2102 2.0000000000000000e+01 1.0600000000000000e-01 2102 5.0000000000000000e+01 1.4799999999999999e-01 2102 1.0000000000000000e+02 2.8299999999999997e-01 2102 2.5000000000000000e+02 6.7300000000000004e-01 2102 5.0000000000000000e+02 9.3999999999999995e-01 2102 1.0000000000000000e+03 9.9900000000000000e-01 2102 2.0000000000000000e+03 1.0000000000000000e+00 2103 0.0000000000000000e+00 5.7000000000000002e-02 2103 2.0000000000000000e+00 1.0100000000000001e-01 2103 2.0000000000000000e+01 1.0800000000000000e-01 2103 5.0000000000000000e+01 1.6000000000000000e-01 2103 1.0000000000000000e+02 2.9599999999999999e-01 2103 2.5000000000000000e+02 6.8000000000000005e-01 2103 5.0000000000000000e+02 9.4099999999999995e-01 2103 1.0000000000000000e+03 9.9900000000000000e-01 2103 2.0000000000000000e+03 1.0000000000000000e+00 2104 0.0000000000000000e+00 4.3999999999999997e-02 2104 2.0000000000000000e+00 8.5999999999999993e-02 2104 2.0000000000000000e+01 1.0100000000000001e-01 2104 5.0000000000000000e+01 1.2500000000000000e-01 2104 1.0000000000000000e+02 2.7200000000000002e-01 2104 2.5000000000000000e+02 6.8899999999999995e-01 2104 5.0000000000000000e+02 9.4799999999999995e-01 2104 1.0000000000000000e+03 9.9900000000000000e-01 2104 2.0000000000000000e+03 1.0000000000000000e+00 2105 0.0000000000000000e+00 4.2000000000000003e-02 2105 2.0000000000000000e+00 8.3000000000000004e-02 2105 2.0000000000000000e+01 9.6000000000000002e-02 2105 5.0000000000000000e+01 1.2800000000000000e-01 2105 1.0000000000000000e+02 2.7400000000000002e-01 2105 2.5000000000000000e+02 7.1099999999999997e-01 2105 5.0000000000000000e+02 9.5299999999999996e-01 2105 1.0000000000000000e+03 9.9900000000000000e-01 2105 2.0000000000000000e+03 1.0000000000000000e+00 2110 2.0000000000000000e+00 4.0000000000000001e-02 2110 5.0000000000000000e+01 2.2000000000000000e-01 2110 1.2500000000000000e+02 3.6699999999999999e-01 2110 2.5000000000000000e+02 6.5900000000000003e-01 2110 5.0000000000000000e+02 9.0100000000000002e-01 2110 1.0000000000000000e+03 9.8099999999999998e-01 2110 2.0000000000000000e+03 9.9399999999999999e-01 2111 2.0000000000000000e+00 7.0000000000000007e-02 2111 5.0000000000000000e+01 2.7000000000000002e-01 2111 1.2500000000000000e+02 4.2299999999999999e-01 2111 2.5000000000000000e+02 6.6300000000000003e-01 2111 5.0000000000000000e+02 8.9400000000000002e-01 2111 1.0000000000000000e+03 9.8899999999999999e-01 2111 2.0000000000000000e+03 9.9900000000000000e-01 2120 2.0000000000000000e+00 2.9999999999999999e-02 2120 5.0000000000000000e+01 8.9999999999999997e-02 2120 2.0000000000000000e+03 1.0000000000000000e+00 2121 2.0000000000000000e+00 2.9999999999999999e-02 2121 5.0000000000000000e+01 8.0000000000000002e-02 2121 2.0000000000000000e+03 1.0000000000000000e+00 2122 2.0000000000000000e+00 7.0000000000000007e-02 2122 5.0000000000000000e+01 1.3000000000000000e-01 2122 2.0000000000000000e+03 1.0000000000000000e+00 2123 2.0000000000000000e+00 7.0000000000000007e-02 2123 5.0000000000000000e+01 1.2000000000000000e-01 2123 2.0000000000000000e+03 1.0000000000000000e+00 2124 2.0000000000000000e+00 5.0000000000000003e-02 2124 5.0000000000000000e+01 1.0000000000000001e-01 2124 2.0000000000000000e+03 1.0000000000000000e+00 2125 2.0000000000000000e+00 5.0000000000000003e-02 2125 5.0000000000000000e+01 8.0000000000000002e-02 2125 2.0000000000000000e+03 1.0000000000000000e+00 2126 2.0000000000000000e+00 2.9999999999999999e-02 2126 5.0000000000000000e+01 5.0000000000000003e-02 2126 2.0000000000000000e+03 9.8999999999999999e-01 2130 2.0000000000000000e+00 8.0000000000000002e-02 2130 5.0000000000000000e+01 2.8999999999999998e-01 2130 2.0000000000000000e+03 1.0000000000000000e+00 2131 2.0000000000000000e+00 1.3000000000000000e-01 2131 5.0000000000000000e+01 2.8999999999999998e-01 2131 2.0000000000000000e+03 1.0000000000000000e+00 2132 2.0000000000000000e+00 1.4000000000000001e-01 2132 5.0000000000000000e+01 3.2000000000000001e-01 2132 2.0000000000000000e+03 1.0000000000000000e+00 2140 2141 2150 2151 2160 2.0000000000000000e+00 2.5800000000000001e-01 2160 2.0000000000000000e+01 7.0899999999999996e-01 2160 2.0000000000000000e+02 9.7299999999999998e-01 2160 2.0000000000000000e+03 1.0000000000000000e+00 2161 2.0000000000000000e+00 1.5600000000000000e-01 2161 2.0000000000000000e+01 7.6300000000000001e-01 2161 2.0000000000000000e+02 9.8699999999999999e-01 2161 2.0000000000000000e+03 1.0000000000000000e+00 2170 2.0000000000000000e+00 2.2000000000000000e-01 2170 2.0000000000000000e+01 7.3999999999999999e-01 2170 2.0000000000000000e+03 1.0000000000000000e+00 2171 2.0000000000000000e+00 3.5999999999999999e-01 2171 2.0000000000000000e+01 7.5000000000000000e-01 2171 2.0000000000000000e+03 1.0000000000000000e+00 2180 2.0000000000000000e+00 4.0999999999999998e-01 2180 2.0000000000000000e+01 8.4999999999999998e-01 2180 2.0000000000000000e+03 1.0000000000000000e+00 2181 2.0000000000000000e+00 4.8999999999999999e-01 2181 2.0000000000000000e+01 8.8000000000000000e-01 2181 2.0000000000000000e+03 1.0000000000000000e+00 2190 2.0000000000000000e+00 2.9999999999999999e-02 2190 5.0000000000000000e+01 8.0000000000000002e-02 2190 2.0000000000000000e+03 1.0000000000000000e+00 2191 2.0000000000000000e+00 2.9999999999999999e-02 2191 5.0000000000000000e+01 8.0000000000000002e-02 2191 2.0000000000000000e+03 1.0000000000000000e+00 2192 2.0000000000000000e+00 2.9999999999999999e-02 2192 5.0000000000000000e+01 8.0000000000000002e-02 2192 2.0000000000000000e+03 1.0000000000000000e+00 2193 2.0000000000000000e+00 2.9999999999999999e-02 2193 5.0000000000000000e+01 8.0000000000000002e-02 2193 2.0000000000000000e+03 1.0000000000000000e+00 2194 2.0000000000000000e+00 2.9999999999999999e-02 2194 5.0000000000000000e+01 8.0000000000000002e-02 2194 2.0000000000000000e+03 1.0000000000000000e+00 2195 2.0000000000000000e+00 2.9999999999999999e-02 2195 5.0000000000000000e+01 8.0000000000000002e-02 2195 2.0000000000000000e+03 1.0000000000000000e+00 2196 2.0000000000000000e+00 2.9999999999999999e-02 2196 5.0000000000000000e+01 8.0000000000000002e-02 2196 2.0000000000000000e+03 1.0000000000000000e+00 2197 2.0000000000000000e+00 2.9999999999999999e-02 2197 5.0000000000000000e+01 8.0000000000000002e-02 2197 2.0000000000000000e+03 1.0000000000000000e+00 2198 2.0000000000000000e+00 2.9999999999999999e-02 2198 5.0000000000000000e+01 8.0000000000000002e-02 2198 2.0000000000000000e+03 1.0000000000000000e+00 2200 2.0000000000000000e+00 2.0000000000000000e-02 2200 5.0000000000000000e+01 2.8000000000000001e-02 2200 1.0000000000000000e+02 5.3999999999999999e-02 2200 2.5000000000000000e+02 1.9400000000000001e-01 2200 5.0000000000000000e+02 5.6399999999999995e-01 2200 1.0000000000000000e+03 9.6699999999999997e-01 2200 2.0000000000000000e+03 1.0000000000000000e+00 2201 2.0000000000000000e+00 2.0000000000000000e-02 2201 5.0000000000000000e+01 2.8000000000000001e-02 2201 1.0000000000000000e+02 5.3999999999999999e-02 2201 2.5000000000000000e+02 1.9400000000000001e-01 2201 5.0000000000000000e+02 5.6399999999999995e-01 2201 1.0000000000000000e+03 9.6699999999999997e-01 2201 2.0000000000000000e+03 1.0000000000000000e+00 2202 2.0000000000000000e+00 2.0000000000000000e-02 2202 5.0000000000000000e+01 2.8000000000000001e-02 2202 1.0000000000000000e+02 5.3999999999999999e-02 2202 2.5000000000000000e+02 1.9400000000000001e-01 2202 5.0000000000000000e+02 5.6399999999999995e-01 2202 1.0000000000000000e+03 9.6699999999999997e-01 2202 2.0000000000000000e+03 1.0000000000000000e+00 2203 2.0000000000000000e+00 2.0000000000000000e-02 2203 5.0000000000000000e+01 2.8000000000000001e-02 2203 1.0000000000000000e+02 5.3999999999999999e-02 2203 2.5000000000000000e+02 1.9400000000000001e-01 2203 5.0000000000000000e+02 5.6399999999999995e-01 2203 1.0000000000000000e+03 9.6699999999999997e-01 2203 2.0000000000000000e+03 1.0000000000000000e+00 2210 2.0000000000000000e+00 3.7999999999999999e-02 2210 5.0000000000000000e+00 4.3999999999999997e-02 2210 2.0000000000000000e+01 5.2999999999999999e-02 2210 5.3000000000000000e+01 7.4999999999999997e-02 2210 1.0600000000000000e+02 1.6700000000000001e-01 2210 1.8000000000000000e+02 3.2000000000000001e-01 2210 2.5000000000000000e+02 4.8999999999999999e-01 2210 5.0000000000000000e+02 8.5999999999999999e-01 2210 1.0000000000000000e+03 9.7999999999999998e-01 2211 2.0000000000000000e+00 3.7999999999999999e-02 2211 5.0000000000000000e+00 4.3999999999999997e-02 2211 2.0000000000000000e+01 5.2999999999999999e-02 2211 5.3000000000000000e+01 7.4999999999999997e-02 2211 1.0600000000000000e+02 1.6700000000000001e-01 2211 1.8000000000000000e+02 3.2000000000000001e-01 2211 2.5000000000000000e+02 4.8999999999999999e-01 2211 5.0000000000000000e+02 8.5999999999999999e-01 2211 1.0000000000000000e+03 9.7999999999999998e-01 2212 2.0000000000000000e+00 3.7999999999999999e-02 2212 5.0000000000000000e+00 4.3999999999999997e-02 2212 2.0000000000000000e+01 5.2999999999999999e-02 2212 5.3000000000000000e+01 7.4999999999999997e-02 2212 1.0600000000000000e+02 1.6700000000000001e-01 2212 1.8000000000000000e+02 3.2000000000000001e-01 2212 2.5000000000000000e+02 4.8999999999999999e-01 2212 5.0000000000000000e+02 8.5999999999999999e-01 2212 1.0000000000000000e+03 9.7999999999999998e-01 2213 2.0000000000000000e+00 3.7999999999999999e-02 2213 5.0000000000000000e+00 4.3999999999999997e-02 2213 2.0000000000000000e+01 5.2999999999999999e-02 2213 5.3000000000000000e+01 7.4999999999999997e-02 2213 1.0600000000000000e+02 1.6700000000000001e-01 2213 1.8000000000000000e+02 3.2000000000000001e-01 2213 2.5000000000000000e+02 4.8999999999999999e-01 2213 5.0000000000000000e+02 8.5999999999999999e-01 2213 1.0000000000000000e+03 9.7999999999999998e-01 2214 2.0000000000000000e+00 3.7999999999999999e-02 2214 5.0000000000000000e+00 4.3999999999999997e-02 2214 2.0000000000000000e+01 5.2999999999999999e-02 2214 5.3000000000000000e+01 7.4999999999999997e-02 2214 1.0600000000000000e+02 1.6700000000000001e-01 2214 1.8000000000000000e+02 3.2000000000000001e-01 2214 2.5000000000000000e+02 4.8999999999999999e-01 2214 5.0000000000000000e+02 8.5999999999999999e-01 2214 1.0000000000000000e+03 9.7999999999999998e-01 2215 2.0000000000000000e+00 3.7999999999999999e-02 2215 5.0000000000000000e+00 4.3999999999999997e-02 2215 2.0000000000000000e+01 5.2999999999999999e-02 2215 5.3000000000000000e+01 7.4999999999999997e-02 2215 1.0600000000000000e+02 1.6700000000000001e-01 2215 1.8000000000000000e+02 3.2000000000000001e-01 2215 2.5000000000000000e+02 4.8999999999999999e-01 2215 5.0000000000000000e+02 8.5999999999999999e-01 2215 1.0000000000000000e+03 9.7999999999999998e-01 2216 2.0000000000000000e+00 3.7999999999999999e-02 2216 5.0000000000000000e+00 4.3999999999999997e-02 2216 2.0000000000000000e+01 5.2999999999999999e-02 2216 5.3000000000000000e+01 7.4999999999999997e-02 2216 1.0600000000000000e+02 1.6700000000000001e-01 2216 1.8000000000000000e+02 3.2000000000000001e-01 2216 2.5000000000000000e+02 4.8999999999999999e-01 2216 5.0000000000000000e+02 8.5999999999999999e-01 2216 1.0000000000000000e+03 9.7999999999999998e-01 2217 2.0000000000000000e+00 3.7999999999999999e-02 2217 5.0000000000000000e+00 4.3999999999999997e-02 2217 2.0000000000000000e+01 5.2999999999999999e-02 2217 5.3000000000000000e+01 7.4999999999999997e-02 2217 1.0600000000000000e+02 1.6700000000000001e-01 2217 1.8000000000000000e+02 3.2000000000000001e-01 2217 2.5000000000000000e+02 4.8999999999999999e-01 2217 5.0000000000000000e+02 8.5999999999999999e-01 2217 1.0000000000000000e+03 9.7999999999999998e-01 2220 5.3000000000000000e+01 1.6700000000000001e-01 2220 6.1000000000000000e+01 2.3999999999999999e-01 2220 7.5000000000000000e+01 3.3500000000000002e-01 2220 1.0600000000000000e+02 4.1199999999999998e-01 2220 1.2400000000000000e+02 4.6700000000000003e-01 2220 1.4700000000000000e+02 5.2000000000000002e-01 2220 1.7500000000000000e+02 5.8699999999999997e-01 2220 2.4600000000000000e+02 6.7000000000000004e-01 2220 4.2500000000000000e+02 7.2799999999999998e-01 2220 5.0000000000000000e+02 7.7400000000000002e-01 2220 7.0100000000000000e+02 8.1399999999999995e-01 2220 8.4100000000000000e+02 8.4299999999999997e-01 2220 9.9100000000000000e+02 8.9300000000000002e-01 2220 2.0000000000000000e+03 9.3100000000000005e-01 2220 2.3600000000000000e+03 9.5799999999999996e-01 2220 3.3500000000000000e+03 1.0000000000000000e+00 2221 5.3000000000000000e+01 9.5000000000000001e-02 2221 6.1000000000000000e+01 1.4199999999999999e-01 2221 7.5000000000000000e+01 2.0799999999999999e-01 2221 1.0600000000000000e+02 2.6500000000000001e-01 2221 1.2400000000000000e+02 3.0900000000000000e-01 2221 1.4700000000000000e+02 3.5299999999999998e-01 2221 1.7500000000000000e+02 4.1399999999999998e-01 2221 2.4600000000000000e+02 4.9399999999999999e-01 2221 4.2500000000000000e+02 5.5900000000000005e-01 2221 5.0000000000000000e+02 6.1599999999999999e-01 2221 7.0100000000000000e+02 6.7000000000000004e-01 2221 8.4100000000000000e+02 7.0999999999999996e-01 2221 9.9100000000000000e+02 7.8700000000000003e-01 2221 2.0000000000000000e+03 8.5299999999999998e-01 2221 2.3600000000000000e+03 9.0600000000000003e-01 2221 3.3500000000000000e+03 1.0000000000000000e+00 2230 2231 2232 2240 5.0000000000000000e+00 1.4999999999999999e-01 2240 5.0000000000000000e+01 6.8000000000000005e-01 2240 1.0000000000000000e+03 1.0000000000000000e+00 2241 5.0000000000000000e+00 1.4999999999999999e-01 2241 5.0000000000000000e+01 6.8000000000000005e-01 2241 1.0000000000000000e+03 1.0000000000000000e+00 2242 5.0000000000000000e+00 1.4999999999999999e-01 2242 5.0000000000000000e+01 6.8000000000000005e-01 2242 1.0000000000000000e+03 1.0000000000000000e+00 2243 5.0000000000000000e+00 1.4999999999999999e-01 2243 5.0000000000000000e+01 6.8000000000000005e-01 2243 1.0000000000000000e+03 1.0000000000000000e+00 2250 5.0000000000000000e+00 4.0000000000000001e-02 2250 5.0000000000000000e+01 1.0000000000000001e-01 2250 1.0000000000000000e+03 1.0000000000000000e+00 2251 5.0000000000000000e+00 4.0000000000000001e-02 2251 5.0000000000000000e+01 1.0000000000000001e-01 2251 1.0000000000000000e+03 1.0000000000000000e+00 2252 5.0000000000000000e+00 4.0000000000000001e-02 2252 5.0000000000000000e+01 1.0000000000000001e-01 2252 1.0000000000000000e+03 1.0000000000000000e+00 2253 5.0000000000000000e+00 4.0000000000000001e-02 2253 5.0000000000000000e+01 1.0000000000000001e-01 2253 1.0000000000000000e+03 1.0000000000000000e+00 2260 5.0000000000000000e+00 1.3000000000000000e-01 2260 5.0000000000000000e+01 2.7000000000000002e-01 2260 2.0000000000000000e+03 1.0000000000000000e+00 2261 5.0000000000000000e+00 1.3000000000000000e-01 2261 5.0000000000000000e+01 2.7000000000000002e-01 2261 2.0000000000000000e+03 1.0000000000000000e+00 2262 5.0000000000000000e+00 1.3000000000000000e-01 2262 5.0000000000000000e+01 2.7000000000000002e-01 2262 2.0000000000000000e+03 1.0000000000000000e+00 2270 5.0000000000000000e+00 2.9999999999999999e-01 2270 5.0000000000000000e+01 5.6000000000000005e-01 2270 1.0000000000000000e+03 1.0000000000000000e+00 2271 5.0000000000000000e+00 2.9999999999999999e-01 2271 5.0000000000000000e+01 5.6000000000000005e-01 2271 1.0000000000000000e+03 1.0000000000000000e+00 2272 5.0000000000000000e+00 2.9999999999999999e-01 2272 5.0000000000000000e+01 5.6000000000000005e-01 2272 1.0000000000000000e+03 1.0000000000000000e+00 2273 5.0000000000000000e+00 2.9999999999999999e-01 2273 5.0000000000000000e+01 5.6000000000000005e-01 2273 1.0000000000000000e+03 1.0000000000000000e+00 2280 5.0000000000000000e+00 2.0999999999999999e-01 2280 5.0000000000000000e+01 4.5000000000000001e-01 2280 1.0000000000000000e+03 1.0000000000000000e+00 2281 5.0000000000000000e+00 2.0999999999999999e-01 2281 5.0000000000000000e+01 4.5000000000000001e-01 2281 1.0000000000000000e+03 1.0000000000000000e+00 2282 5.0000000000000000e+00 2.0999999999999999e-01 2282 5.0000000000000000e+01 4.5000000000000001e-01 2282 1.0000000000000000e+03 1.0000000000000000e+00 2283 5.0000000000000000e+00 2.0999999999999999e-01 2283 5.0000000000000000e+01 4.5000000000000001e-01 2283 1.0000000000000000e+03 1.0000000000000000e+00 2290 5.0000000000000000e+00 1.6000000000000000e-01 2290 5.0000000000000000e+01 2.0000000000000001e-01 2290 2.0000000000000000e+03 1.0000000000000000e+00 2291 5.0000000000000000e+00 1.6000000000000000e-01 2291 5.0000000000000000e+01 2.0000000000000001e-01 2291 2.0000000000000000e+03 1.0000000000000000e+00 2292 5.0000000000000000e+00 1.6000000000000000e-01 2292 5.0000000000000000e+01 2.0000000000000001e-01 2292 2.0000000000000000e+03 1.0000000000000000e+00 2293 5.0000000000000000e+00 1.6000000000000000e-01 2293 5.0000000000000000e+01 2.0000000000000001e-01 2293 2.0000000000000000e+03 1.0000000000000000e+00 2300 5.0000000000000000e+00 1.6000000000000000e-01 2300 5.0000000000000000e+01 3.5999999999999999e-01 2300 2.0000000000000000e+03 1.0000000000000000e+00 2301 5.0000000000000000e+00 1.6000000000000000e-01 2301 5.0000000000000000e+01 3.5999999999999999e-01 2301 2.0000000000000000e+03 1.0000000000000000e+00 2302 5.0000000000000000e+00 1.6000000000000000e-01 2302 5.0000000000000000e+01 3.4000000000000002e-01 2302 2.0000000000000000e+03 1.0000000000000000e+00 2303 5.0000000000000000e+00 1.6000000000000000e-01 2303 5.0000000000000000e+01 3.4000000000000002e-01 2303 2.0000000000000000e+03 1.0000000000000000e+00 2304 5.0000000000000000e+00 1.7999999999999999e-01 2304 5.0000000000000000e+01 3.5999999999999999e-01 2304 2.0000000000000000e+03 1.0000000000000000e+00 2305 5.0000000000000000e+00 1.7999999999999999e-01 2305 5.0000000000000000e+01 3.5999999999999999e-01 2305 2.0000000000000000e+03 1.0000000000000000e+00 2306 5.0000000000000000e+00 1.6000000000000000e-01 2306 5.0000000000000000e+01 3.4000000000000002e-01 2306 2.0000000000000000e+03 1.0000000000000000e+00 2307 5.0000000000000000e+00 1.6000000000000000e-01 2307 5.0000000000000000e+01 3.4000000000000002e-01 2307 2.0000000000000000e+03 1.0000000000000000e+00 2310 4.5000000000000000e+01 0.0000000000000000e+00 2310 8.5000000000000000e+01 2.0000000000000000e-02 2310 1.2500000000000000e+02 7.0000000000000007e-02 2310 2.5000000000000000e+02 3.8000000000000000e-01 2310 5.0000000000000000e+02 9.0000000000000002e-01 2310 1.0000000000000000e+03 1.0000000000000000e+00 2320 2.0000000000000000e+00 1.4999999999999999e-01 2320 6.0000000000000000e+00 2.0999999999999999e-01 2320 2.0000000000000000e+01 4.0999999999999998e-01 2320 6.3000000000000000e+01 6.7000000000000004e-01 2320 2.0000000000000000e+02 8.0000000000000004e-01 2320 6.3000000000000000e+02 9.4999999999999996e-01 2320 2.0000000000000000e+03 1.0000000000000000e+00 2321 2.0000000000000000e+00 2.0000000000000001e-01 2321 6.0000000000000000e+00 2.5000000000000000e-01 2321 2.0000000000000000e+01 3.9000000000000001e-01 2321 6.3000000000000000e+01 6.3000000000000000e-01 2321 2.0000000000000000e+02 8.2999999999999996e-01 2321 6.3000000000000000e+02 9.4999999999999996e-01 2321 2.0000000000000000e+03 1.0000000000000000e+00 2330 2331 2332 2333 2334 6.3000000000000000e+01 2.0000000000000000e-02 2334 2.0000000000000000e+02 1.9000000000000000e-01 2334 6.3000000000000000e+02 9.2000000000000004e-01 2334 2.0000000000000000e+03 1.0000000000000000e+00 2340 2.0000000000000000e+00 4.8999999999999999e-01 2340 6.0000000000000000e+00 5.6000000000000005e-01 2340 2.0000000000000000e+01 6.4000000000000001e-01 2340 6.3000000000000000e+01 6.5000000000000002e-01 2340 2.0000000000000000e+02 7.9000000000000004e-01 2340 6.3000000000000000e+02 9.7999999999999998e-01 2340 2.0000000000000000e+03 1.0000000000000000e+00 2341 2.0000000000000000e+00 2.9999999999999999e-01 2341 6.0000000000000000e+00 3.8000000000000000e-01 2341 2.0000000000000000e+01 4.6000000000000002e-01 2341 6.3000000000000000e+01 5.3000000000000003e-01 2341 2.0000000000000000e+02 7.0999999999999996e-01 2341 6.3000000000000000e+02 9.8999999999999999e-01 2341 2.0000000000000000e+03 1.0000000000000000e+00 2342 2.0000000000000000e+00 0.0000000000000000e+00 2342 6.0000000000000000e+00 0.0000000000000000e+00 2342 2.0000000000000000e+01 1.0000000000000000e-02 2342 6.3000000000000000e+01 2.9999999999999999e-02 2342 2.0000000000000000e+02 3.3000000000000002e-01 2342 6.3000000000000000e+02 9.4999999999999996e-01 2342 2.0000000000000000e+03 1.0000000000000000e+00 2350 2.0000000000000000e+00 4.5000000000000001e-01 2350 6.0000000000000000e+00 4.7999999999999998e-01 2350 2.0000000000000000e+01 6.6000000000000003e-01 2350 6.3000000000000000e+01 9.3000000000000005e-01 2350 2.0000000000000000e+02 9.6999999999999997e-01 2350 6.3000000000000000e+02 9.8999999999999999e-01 2350 2.0000000000000000e+03 1.0000000000000000e+00 2351 2.0000000000000000e+00 1.6000000000000000e-01 2351 6.0000000000000000e+00 3.4000000000000002e-01 2351 2.0000000000000000e+01 4.6999999999999997e-01 2351 6.3000000000000000e+01 8.0000000000000004e-01 2351 2.0000000000000000e+02 9.7999999999999998e-01 2351 6.3000000000000000e+02 9.8999999999999999e-01 2351 2.0000000000000000e+03 1.0000000000000000e+00 2360 2.0000000000000000e+00 4.5000000000000001e-01 2360 6.0000000000000000e+00 5.5000000000000004e-01 2360 2.0000000000000000e+01 6.8000000000000005e-01 2360 6.3000000000000000e+01 8.2999999999999996e-01 2360 2.0000000000000000e+02 9.2000000000000004e-01 2360 6.3000000000000000e+02 1.0000000000000000e+00 2361 2.0000000000000000e+00 5.6999999999999995e-01 2361 6.0000000000000000e+00 7.2999999999999998e-01 2361 2.0000000000000000e+01 8.7000000000000000e-01 2361 6.3000000000000000e+01 9.7999999999999998e-01 2361 2.0000000000000000e+02 1.0000000000000000e+00 2362 2.0000000000000000e+00 6.3000000000000000e-01 2362 6.0000000000000000e+00 7.9000000000000004e-01 2362 2.0000000000000000e+01 9.2000000000000004e-01 2362 6.3000000000000000e+01 9.5999999999999996e-01 2362 2.0000000000000000e+02 9.8999999999999999e-01 2362 6.3000000000000000e+02 1.0000000000000000e+00 2370 2.0000000000000000e+00 2.3000000000000001e-01 2370 5.0000000000000000e+01 4.1999999999999998e-01 2370 2.0000000000000000e+03 1.0000000000000000e+00 2371 2.0000000000000000e+00 2.3999999999999999e-01 2371 5.0000000000000000e+01 4.4000000000000000e-01 2371 2.0000000000000000e+03 1.0000000000000000e+00 2372 2.0000000000000000e+00 2.6000000000000001e-01 2372 5.0000000000000000e+01 3.8000000000000000e-01 2372 2.0000000000000000e+03 1.0000000000000000e+00 2373 2.0000000000000000e+00 1.4000000000000001e-01 2373 5.0000000000000000e+01 1.6000000000000000e-01 2373 2.0000000000000000e+03 1.0000000000000000e+00 2374 2.0000000000000000e+00 1.9000000000000000e-01 2374 5.0000000000000000e+01 2.5000000000000000e-01 2374 2.0000000000000000e+03 1.0000000000000000e+00 2380 2.0000000000000000e+00 8.0000000000000002e-02 2380 5.0000000000000000e+01 2.5000000000000000e-01 2380 2.0000000000000000e+03 1.0000000000000000e+00 2381 2.0000000000000000e+00 1.0000000000000001e-01 2381 5.0000000000000000e+01 3.1000000000000000e-01 2381 2.0000000000000000e+03 1.0000000000000000e+00 2382 2.0000000000000000e+00 1.4000000000000001e-01 2382 5.0000000000000000e+01 4.4000000000000000e-01 2382 2.0000000000000000e+03 1.0000000000000000e+00 2383 2.0000000000000000e+00 7.0000000000000007e-02 2383 5.0000000000000000e+01 2.3000000000000001e-01 2383 2.0000000000000000e+03 1.0000000000000000e+00 2384 2.0000000000000000e+00 1.0000000000000000e-02 2384 5.0000000000000000e+01 7.0000000000000007e-02 2384 2.0000000000000000e+03 1.0000000000000000e+00 2385 2.0000000000000000e+00 1.0000000000000000e-02 2385 5.0000000000000000e+01 7.0000000000000007e-02 2385 2.0000000000000000e+03 1.0000000000000000e+00 2390 2.0000000000000000e+00 3.1000000000000000e-01 2390 5.0000000000000000e+01 5.7999999999999996e-01 2390 2.0000000000000000e+03 1.0000000000000000e+00 2391 2.0000000000000000e+00 3.3000000000000002e-01 2391 5.0000000000000000e+01 6.6000000000000003e-01 2391 2.0000000000000000e+03 1.0000000000000000e+00 2392 2.0000000000000000e+00 3.4999999999999998e-01 2392 5.0000000000000000e+01 8.0000000000000004e-01 2392 2.0000000000000000e+03 1.0000000000000000e+00 2393 2.0000000000000000e+00 2.8000000000000003e-01 2393 5.0000000000000000e+01 5.6000000000000005e-01 2393 2.0000000000000000e+03 1.0000000000000000e+00 2394 2.0000000000000000e+00 2.3000000000000001e-01 2394 5.0000000000000000e+01 3.5999999999999999e-01 2394 2.0000000000000000e+03 1.0000000000000000e+00 2395 2.0000000000000000e+00 2.8000000000000003e-01 2395 5.0000000000000000e+01 5.2000000000000002e-01 2395 2.0000000000000000e+03 1.0000000000000000e+00 2400 2.0000000000000000e+00 1.6000000000000000e-01 2400 5.0000000000000000e+01 5.4000000000000004e-01 2400 2.0000000000000000e+03 1.0000000000000000e+00 2401 2.0000000000000000e+00 1.7000000000000001e-01 2401 5.0000000000000000e+01 5.6999999999999995e-01 2401 2.0000000000000000e+03 1.0000000000000000e+00 2402 2.0000000000000000e+00 2.5000000000000000e-01 2402 5.0000000000000000e+01 7.0999999999999996e-01 2402 2.0000000000000000e+03 1.0000000000000000e+00 2403 2.0000000000000000e+00 1.1000000000000000e-01 2403 5.0000000000000000e+01 4.2999999999999999e-01 2403 2.0000000000000000e+03 1.0000000000000000e+00 2404 2.0000000000000000e+00 5.0000000000000003e-02 2404 5.0000000000000000e+01 5.9999999999999998e-01 2404 2.0000000000000000e+03 1.0000000000000000e+00 2405 2.0000000000000000e+00 5.0000000000000003e-02 2405 5.0000000000000000e+01 5.9999999999999998e-01 2405 2.0000000000000000e+03 1.0000000000000000e+00 2410 2.0000000000000000e+00 1.7999999999999999e-01 2410 5.0000000000000000e+01 4.4000000000000000e-01 2410 2.0000000000000000e+03 1.0000000000000000e+00 2411 2.0000000000000000e+00 2.0999999999999999e-01 2411 5.0000000000000000e+01 4.6000000000000002e-01 2411 2.0000000000000000e+03 1.0000000000000000e+00 2412 2.0000000000000000e+00 2.8000000000000003e-01 2412 5.0000000000000000e+01 5.3000000000000003e-01 2412 2.0000000000000000e+03 1.0000000000000000e+00 2413 2.0000000000000000e+00 7.0000000000000007e-02 2413 5.0000000000000000e+01 2.3999999999999999e-01 2413 2.0000000000000000e+03 1.0000000000000000e+00 2414 2.0000000000000000e+00 4.0000000000000001e-02 2414 5.0000000000000000e+01 3.4000000000000002e-01 2414 2.0000000000000000e+03 1.0000000000000000e+00 2415 2.0000000000000000e+00 4.0000000000000001e-02 2415 5.0000000000000000e+01 3.4000000000000002e-01 2415 2.0000000000000000e+03 1.0000000000000000e+00 2420 2.0000000000000000e+00 8.0000000000000002e-02 2420 5.0000000000000000e+01 1.9000000000000000e-01 2420 2.0000000000000000e+03 1.0000000000000000e+00 2421 2.0000000000000000e+00 8.0000000000000002e-02 2421 5.0000000000000000e+01 2.0000000000000001e-01 2421 2.0000000000000000e+03 1.0000000000000000e+00 2422 2.0000000000000000e+00 5.9999999999999998e-02 2422 5.0000000000000000e+01 1.3000000000000000e-01 2422 2.0000000000000000e+03 1.0000000000000000e+00 2423 2.0000000000000000e+00 5.9999999999999998e-02 2423 5.0000000000000000e+01 1.1000000000000000e-01 2423 2.0000000000000000e+03 1.0000000000000000e+00 2424 2.0000000000000000e+00 2.9999999999999999e-02 2424 5.0000000000000000e+01 7.0000000000000007e-02 2424 2.0000000000000000e+03 1.0000000000000000e+00 2425 2.0000000000000000e+00 2.9999999999999999e-02 2425 5.0000000000000000e+01 7.0000000000000007e-02 2425 2.0000000000000000e+03 1.0000000000000000e+00 2430 2.0000000000000000e+00 3.1000000000000000e-01 2430 5.0000000000000000e+01 6.8000000000000005e-01 2430 2.0000000000000000e+03 1.0000000000000000e+00 2431 2.0000000000000000e+00 3.4000000000000002e-01 2431 5.0000000000000000e+01 7.7000000000000002e-01 2431 2.0000000000000000e+03 1.0000000000000000e+00 2432 2.0000000000000000e+00 4.1999999999999998e-01 2432 5.0000000000000000e+01 7.9000000000000004e-01 2432 2.0000000000000000e+03 1.0000000000000000e+00 2433 2.0000000000000000e+00 3.4000000000000002e-01 2433 5.0000000000000000e+01 6.8999999999999995e-01 2433 2.0000000000000000e+03 1.0000000000000000e+00 2434 2.0000000000000000e+00 2.3999999999999999e-01 2434 5.0000000000000000e+01 4.6999999999999997e-01 2434 2.0000000000000000e+03 1.0000000000000000e+00 2435 2.0000000000000000e+00 2.3999999999999999e-01 2435 5.0000000000000000e+01 4.2999999999999999e-01 2435 2.0000000000000000e+03 1.0000000000000000e+00 2440 2.0000000000000000e+00 8.9999999999999997e-02 2440 5.0000000000000000e+01 2.6000000000000001e-01 2440 2.0000000000000000e+03 1.0000000000000000e+00 2441 2.0000000000000000e+00 1.4999999999999999e-01 2441 5.0000000000000000e+01 2.9999999999999999e-01 2441 2.0000000000000000e+03 1.0000000000000000e+00 2442 2.0000000000000000e+00 1.3000000000000000e-01 2442 5.0000000000000000e+01 1.7999999999999999e-01 2442 2.0000000000000000e+03 1.0000000000000000e+00 2443 2.0000000000000000e+00 1.1000000000000000e-01 2443 5.0000000000000000e+01 1.4000000000000001e-01 2443 2.0000000000000000e+03 1.0000000000000000e+00 2444 2.0000000000000000e+00 1.1000000000000000e-01 2444 5.0000000000000000e+01 1.2000000000000000e-01 2444 2.0000000000000000e+03 1.0000000000000000e+00 2445 2.0000000000000000e+00 1.1000000000000000e-01 2445 5.0000000000000000e+01 1.2000000000000000e-01 2445 2.0000000000000000e+03 1.0000000000000000e+00 2450 2.0000000000000000e+00 1.6000000000000000e-01 2450 5.0000000000000000e+01 5.5000000000000004e-01 2450 2.0000000000000000e+03 1.0000000000000000e+00 2451 2.0000000000000000e+00 1.9000000000000000e-01 2451 5.0000000000000000e+01 4.0000000000000002e-01 2451 2.0000000000000000e+03 1.0000000000000000e+00 2452 2.0000000000000000e+00 2.3999999999999999e-01 2452 5.0000000000000000e+01 4.6999999999999997e-01 2452 2.0000000000000000e+03 1.0000000000000000e+00 2453 2.0000000000000000e+00 2.2000000000000000e-01 2453 5.0000000000000000e+01 4.8999999999999999e-01 2453 2.0000000000000000e+03 1.0000000000000000e+00 2454 2.0000000000000000e+00 1.7000000000000001e-01 2454 5.0000000000000000e+01 4.1999999999999998e-01 2454 2.0000000000000000e+03 1.0000000000000000e+00 2455 2.0000000000000000e+00 1.7000000000000001e-01 2455 5.0000000000000000e+01 4.1999999999999998e-01 2455 2.0000000000000000e+03 1.0000000000000000e+00 2460 2.0000000000000000e+00 3.8000000000000000e-01 2460 5.0000000000000000e+01 9.6999999999999997e-01 2460 2.0000000000000000e+03 1.0000000000000000e+00 2461 2.0000000000000000e+00 3.8000000000000000e-01 2461 5.0000000000000000e+01 9.6999999999999997e-01 2461 2.0000000000000000e+03 1.0000000000000000e+00 2462 2.0000000000000000e+00 3.8000000000000000e-01 2462 5.0000000000000000e+01 9.6999999999999997e-01 2462 2.0000000000000000e+03 1.0000000000000000e+00 2463 2.0000000000000000e+00 2.9999999999999999e-01 2463 2.0000000000000000e+01 7.0999999999999996e-01 2463 6.0000000000000000e+01 8.3499999999999996e-01 2463 2.0000000000000000e+02 9.0000000000000002e-01 2463 6.0000000000000000e+02 9.5999999999999996e-01 2463 2.0000000000000000e+03 1.0000000000000000e+00 2464 2.0000000000000000e+00 2.2500000000000001e-01 2464 2.0000000000000000e+01 6.9999999999999996e-01 2464 6.0000000000000000e+01 8.4499999999999997e-01 2464 2.0000000000000000e+02 8.8000000000000000e-01 2464 6.0000000000000000e+02 9.2500000000000004e-01 2464 2.0000000000000000e+03 1.0000000000000000e+00 2470 2.0000000000000000e+00 3.8000000000000000e-01 2470 5.0000000000000000e+01 9.6999999999999997e-01 2470 2.0000000000000000e+03 1.0000000000000000e+00 2471 2.0000000000000000e+00 3.8000000000000000e-01 2471 5.0000000000000000e+01 9.6999999999999997e-01 2471 2.0000000000000000e+03 1.0000000000000000e+00 2472 2.0000000000000000e+00 3.8000000000000000e-01 2472 5.0000000000000000e+01 9.6999999999999997e-01 2472 2.0000000000000000e+03 1.0000000000000000e+00 2480 2.0000000000000000e+00 8.0000000000000002e-02 2480 5.0000000000000000e+01 2.0000000000000001e-01 2480 2.0000000000000000e+03 1.0000000000000000e+00 2481 2.0000000000000000e+00 5.9999999999999998e-02 2481 5.0000000000000000e+01 1.2000000000000000e-01 2481 2.0000000000000000e+03 1.0000000000000000e+00 2482 2.0000000000000000e+00 5.0000000000000003e-02 2482 5.0000000000000000e+01 1.2000000000000000e-01 2482 2.0000000000000000e+03 1.0000000000000000e+00 2483 2.0000000000000000e+00 5.0000000000000003e-02 2483 5.0000000000000000e+01 5.9999999999999998e-02 2483 2.0000000000000000e+03 1.0000000000000000e+00 2491 1.0000000000000000e+00 1.9000000000000000e-01 2491 3.0000000000000000e+00 2.9999999999999999e-01 2491 5.0000000000000000e+00 3.7000000000000000e-01 2491 8.0000000000000000e+00 4.7999999999999998e-01 2491 1.4000000000000000e+01 5.9999999999999998e-01 2491 2.4000000000000000e+01 7.5000000000000000e-01 2491 5.0000000000000000e+01 8.9000000000000001e-01 2491 1.0000000000000000e+02 9.6999999999999997e-01 2491 2.5000000000000000e+02 9.8999999999999999e-01 2491 5.0000000000000000e+02 1.0000000000000000e+00 2491 1.0000000000000000e+03 1.0000000000000000e+00 2492 1.0000000000000000e+00 1.9000000000000000e-01 2492 3.0000000000000000e+00 2.9999999999999999e-01 2492 5.0000000000000000e+00 3.7000000000000000e-01 2492 8.0000000000000000e+00 4.7999999999999998e-01 2492 1.4000000000000000e+01 5.9999999999999998e-01 2492 2.4000000000000000e+01 7.5000000000000000e-01 2492 5.0000000000000000e+01 8.9000000000000001e-01 2492 1.0000000000000000e+02 9.6999999999999997e-01 2492 2.5000000000000000e+02 9.8999999999999999e-01 2492 5.0000000000000000e+02 1.0000000000000000e+00 2492 1.0000000000000000e+03 1.0000000000000000e+00 2493 1.0000000000000000e+00 2.3000000000000001e-01 2493 3.0000000000000000e+00 3.3000000000000002e-01 2493 5.0000000000000000e+00 4.0000000000000002e-01 2493 9.0000000000000000e+00 5.1000000000000001e-01 2493 1.5000000000000000e+01 6.5000000000000002e-01 2493 2.6000000000000000e+01 7.8000000000000003e-01 2493 5.0000000000000000e+01 9.1000000000000003e-01 2493 1.0000000000000000e+02 9.6999999999999997e-01 2493 2.5000000000000000e+02 9.8999999999999999e-01 2493 5.0000000000000000e+02 9.8999999999999999e-01 2493 1.0000000000000000e+03 1.0000000000000000e+00 2530 1.0000000000000000e+00 2.0000000000000001e-01 2530 5.0000000000000000e+00 2.8000000000000003e-01 2530 1.0000000000000000e+01 3.2000000000000001e-01 2530 2.0000000000000000e+01 4.0999999999999998e-01 2530 5.0000000000000000e+01 5.5000000000000004e-01 2530 1.0000000000000000e+02 6.8999999999999995e-01 2530 5.0000000000000000e+02 9.7999999999999998e-01 2530 1.0000000000000000e+03 9.8999999999999999e-01 2530 2.0000000000000000e+03 1.0000000000000000e+00 2531 1.0000000000000000e+00 1.4000000000000001e-01 2531 5.0000000000000000e+00 2.0999999999999999e-01 2531 1.0000000000000000e+01 2.9999999999999999e-01 2531 2.0000000000000000e+01 4.0999999999999998e-01 2531 5.0000000000000000e+01 5.8999999999999997e-01 2531 1.0000000000000000e+02 7.1999999999999997e-01 2531 5.0000000000000000e+02 9.6999999999999997e-01 2531 1.0000000000000000e+03 9.8999999999999999e-01 2531 2.0000000000000000e+03 1.0000000000000000e+00 2532 1.0000000000000000e+00 1.1000000000000000e-01 2532 5.0000000000000000e+00 2.0000000000000001e-01 2532 1.0000000000000000e+01 2.3999999999999999e-01 2532 2.0000000000000000e+01 3.1000000000000000e-01 2532 5.0000000000000000e+01 4.0000000000000002e-01 2532 1.0000000000000000e+02 5.6000000000000005e-01 2532 5.0000000000000000e+02 8.9000000000000001e-01 2532 1.0000000000000000e+03 9.5999999999999996e-01 2532 2.0000000000000000e+03 1.0000000000000000e+00 2540 2.0000000000000000e+00 1.7000000000000001e-01 2540 2.0000000000000000e+01 3.2900000000000001e-01 2540 2.0000000000000000e+03 1.0000000000000000e+00 2541 2.0000000000000000e+00 1.4499999999999999e-01 2541 2.0000000000000000e+01 3.5999999999999999e-01 2541 2.0000000000000000e+03 1.0000000000000000e+00 2542 2.0000000000000000e+00 1.7000000000000001e-01 2542 2.0000000000000000e+01 3.9500000000000002e-01 2542 2.0000000000000000e+03 1.0000000000000000e+00 2550 2.0000000000000000e+00 1.1200000000000000e-01 2550 2.0000000000000000e+01 2.5900000000000001e-01 2550 2.0000000000000000e+03 1.0000000000000000e+00 2551 2.0000000000000000e+00 1.2900000000000000e-01 2551 2.0000000000000000e+01 3.0099999999999999e-01 2551 2.0000000000000000e+03 1.0000000000000000e+00 2552 2.0000000000000000e+00 1.7100000000000001e-01 2552 2.0000000000000000e+01 4.6700000000000003e-01 2552 2.0000000000000000e+03 1.0000000000000000e+00 2560 2.0000000000000000e+00 9.4000000000000000e-02 2560 5.0000000000000000e+01 2.8399999999999997e-01 2560 2.0000000000000000e+03 1.0000000000000000e+00 2561 2.0000000000000000e+00 0.0000000000000000e+00 2561 5.0000000000000000e+01 1.2900000000000000e-01 2561 2.0000000000000000e+03 1.0000000000000000e+00 2562 2.0000000000000000e+00 0.0000000000000000e+00 2562 5.0000000000000000e+01 1.0999999999999999e-02 2562 2.0000000000000000e+03 1.0000000000000000e+00 2570 2.0000000000000000e+00 9.0999999999999998e-02 2570 5.0000000000000000e+01 1.8700000000000000e-01 2570 2.0000000000000000e+03 1.0000000000000000e+00 2571 2.0000000000000000e+00 7.5999999999999998e-02 2571 5.0000000000000000e+01 1.7699999999999999e-01 2571 2.0000000000000000e+03 1.0000000000000000e+00 2572 2.0000000000000000e+00 4.2000000000000003e-02 2572 5.0000000000000000e+01 1.0800000000000000e-01 2572 2.0000000000000000e+03 1.0000000000000000e+00 2573 2.0000000000000000e+00 5.2999999999999999e-02 2573 5.0000000000000000e+01 1.2500000000000000e-01 2573 2.0000000000000000e+03 1.0000000000000000e+00 2574 2.0000000000000000e+00 5.0000000000000001e-03 2574 5.0000000000000000e+01 6.5000000000000002e-02 2574 2.0000000000000000e+03 1.0000000000000000e+00 2580 2.0000000000000000e+00 1.8300000000000000e-01 2580 5.0000000000000000e+01 6.6400000000000003e-01 2580 2.0000000000000000e+03 1.0000000000000000e+00 2581 2.0000000000000000e+00 1.2300000000000000e-01 2581 5.0000000000000000e+01 6.2800000000000000e-01 2581 2.0000000000000000e+03 1.0000000000000000e+00 2582 2.0000000000000000e+00 1.7999999999999999e-01 2582 5.0000000000000000e+01 8.1000000000000005e-01 2582 2.0000000000000000e+03 1.0000000000000000e+00 2583 2.0000000000000000e+00 8.0000000000000002e-02 2583 5.0000000000000000e+01 3.1700000000000000e-01 2583 2.0000000000000000e+03 1.0000000000000000e+00 2584 2.0000000000000000e+00 3.0000000000000001e-03 2584 5.0000000000000000e+01 7.2999999999999995e-02 2584 2.0000000000000000e+03 1.0000000000000000e+00 2590 2.0000000000000000e+00 1.8700000000000000e-01 2590 5.0000000000000000e+01 5.1300000000000001e-01 2590 2.0000000000000000e+03 1.0000000000000000e+00 2591 2.0000000000000000e+00 2.1800000000000000e-01 2591 5.0000000000000000e+01 5.0900000000000001e-01 2591 2.0000000000000000e+03 1.0000000000000000e+00 2592 2.0000000000000000e+00 2.4800000000000000e-01 2592 5.0000000000000000e+01 9.5699999999999996e-01 2592 2.0000000000000000e+03 1.0000000000000000e+00 2593 2.0000000000000000e+00 3.5299999999999998e-01 2593 5.0000000000000000e+01 9.4599999999999995e-01 2593 2.0000000000000000e+03 1.0000000000000000e+00 2600 2601 2.0000000000000000e+00 2.6200000000000001e-01 2601 5.0000000000000000e+01 6.7300000000000004e-01 2601 2.0000000000000000e+03 1.0000000000000000e+00 2602 2.0000000000000000e+00 2.4299999999999999e-01 2602 5.0000000000000000e+01 6.6100000000000003e-01 2602 2.0000000000000000e+03 1.0000000000000000e+00 2603 2.0000000000000000e+00 1.6500000000000001e-01 2603 5.0000000000000000e+01 5.4900000000000004e-01 2603 2.0000000000000000e+03 1.0000000000000000e+00 2604 2.0000000000000000e+00 1.6100000000000000e-01 2604 5.0000000000000000e+01 5.4500000000000004e-01 2604 2.0000000000000000e+03 1.0000000000000000e+00 2605 2.0000000000000000e+00 1.2800000000000000e-01 2605 5.0000000000000000e+01 5.3200000000000003e-01 2605 2.0000000000000000e+03 1.0000000000000000e+00 2610 2.0000000000000000e+00 2.7400000000000002e-01 2610 5.0000000000000000e+01 7.6200000000000001e-01 2610 2.0000000000000000e+03 1.0000000000000000e+00 2611 2.0000000000000000e+00 2.4500000000000000e-01 2611 5.0000000000000000e+01 7.2499999999999998e-01 2611 2.0000000000000000e+03 1.0000000000000000e+00 2612 2.0000000000000000e+00 2.1500000000000000e-01 2612 5.0000000000000000e+01 7.2299999999999998e-01 2612 2.0000000000000000e+03 1.0000000000000000e+00 2613 2.0000000000000000e+00 2.0499999999999999e-01 2613 5.0000000000000000e+01 7.2799999999999998e-01 2613 2.0000000000000000e+03 1.0000000000000000e+00 2614 2.0000000000000000e+00 2.2800000000000001e-01 2614 5.0000000000000000e+01 7.2299999999999998e-01 2614 2.0000000000000000e+03 1.0000000000000000e+00 2620 2.0000000000000000e+00 4.7799999999999998e-01 2620 5.0000000000000000e+01 8.3399999999999996e-01 2620 2.0000000000000000e+03 1.0000000000000000e+00 2621 2.0000000000000000e+00 4.9500000000000000e-01 2621 5.0000000000000000e+01 8.2299999999999995e-01 2621 2.0000000000000000e+03 1.0000000000000000e+00 2622 2.0000000000000000e+00 4.6899999999999997e-01 2622 5.0000000000000000e+01 7.6800000000000002e-01 2622 2.0000000000000000e+03 1.0000000000000000e+00 2630 2.0000000000000000e+00 2.5800000000000001e-01 2630 5.0000000000000000e+01 4.5000000000000001e-01 2630 2.0000000000000000e+03 1.0000000000000000e+00 2631 2.0000000000000000e+00 2.4299999999999999e-01 2631 5.0000000000000000e+01 4.0999999999999998e-01 2631 2.0000000000000000e+03 1.0000000000000000e+00 2640 2.0000000000000000e+00 4.5999999999999999e-02 2640 5.0000000000000000e+01 1.4199999999999999e-01 2640 2.0000000000000000e+03 1.0000000000000000e+00 2641 2.0000000000000000e+00 9.0999999999999998e-02 2641 5.0000000000000000e+01 1.6200000000000001e-01 2641 2.0000000000000000e+03 1.0000000000000000e+00 2642 2.0000000000000000e+00 1.2900000000000000e-01 2642 5.0000000000000000e+01 2.4099999999999999e-01 2642 2.0000000000000000e+03 1.0000000000000000e+00 2650 2.0000000000000000e+00 1.4199999999999999e-01 2650 5.0000000000000000e+01 6.4000000000000001e-01 2650 2.0000000000000000e+03 1.0000000000000000e+00 2651 2.0000000000000000e+00 1.4499999999999999e-01 2651 5.0000000000000000e+01 6.2000000000000000e-01 2651 2.0000000000000000e+03 1.0000000000000000e+00 2652 2.0000000000000000e+00 2.2000000000000000e-01 2652 5.0000000000000000e+01 6.8999999999999995e-01 2652 2.0000000000000000e+03 1.0000000000000000e+00 2653 2.0000000000000000e+00 6.5000000000000002e-02 2653 5.0000000000000000e+01 1.9000000000000000e-01 2653 2.0000000000000000e+03 1.0000000000000000e+00 2660 2.0000000000000000e+00 5.7899999999999996e-01 2660 5.0000000000000000e+01 8.4799999999999998e-01 2660 2.0000000000000000e+03 1.0000000000000000e+00 2661 2.0000000000000000e+00 3.9200000000000002e-01 2661 5.0000000000000000e+01 7.4299999999999999e-01 2661 2.0000000000000000e+03 1.0000000000000000e+00 2670 2.0000000000000000e+00 2.0999999999999999e-01 2670 5.0000000000000000e+01 7.9300000000000004e-01 2670 2.0000000000000000e+03 1.0000000000000000e+00 2671 2.0000000000000000e+00 1.7299999999999999e-01 2671 5.0000000000000000e+01 8.1299999999999994e-01 2671 2.0000000000000000e+03 1.0000000000000000e+00 2672 2.0000000000000000e+00 1.1000000000000000e-01 2672 5.0000000000000000e+01 8.4999999999999998e-01 2672 2.0000000000000000e+03 1.0000000000000000e+00 2680 2.0000000000000000e+00 1.7599999999999999e-01 2680 5.0000000000000000e+01 4.9199999999999999e-01 2680 2.0000000000000000e+03 1.0000000000000000e+00 2681 2.0000000000000000e+00 4.0300000000000002e-01 2681 5.0000000000000000e+01 6.9299999999999995e-01 2681 2.0000000000000000e+03 1.0000000000000000e+00 2682 2.0000000000000000e+00 3.8400000000000001e-01 2682 5.0000000000000000e+01 5.8299999999999996e-01 2682 2.0000000000000000e+03 1.0000000000000000e+00 2683 2.0000000000000000e+00 3.5499999999999998e-01 2683 5.0000000000000000e+01 5.7799999999999996e-01 2683 2.0000000000000000e+03 1.0000000000000000e+00 2690 2.0000000000000000e+00 6.3300000000000001e-01 2690 5.0000000000000000e+01 9.1300000000000003e-01 2690 2.0000000000000000e+03 1.0000000000000000e+00 2691 2.0000000000000000e+00 4.3600000000000000e-01 2691 5.0000000000000000e+01 7.4800000000000000e-01 2691 2.0000000000000000e+03 1.0000000000000000e+00 2700 2.0000000000000000e+00 3.2300000000000001e-01 2700 5.0000000000000000e+01 7.9300000000000004e-01 2700 2.0000000000000000e+03 1.0000000000000000e+00 2701 2.0000000000000000e+00 3.1200000000000000e-01 2701 5.0000000000000000e+01 7.8700000000000003e-01 2701 2.0000000000000000e+03 1.0000000000000000e+00 2710 2.0000000000000000e+00 1.6500000000000001e-01 2710 5.0000000000000000e+01 8.2499999999999996e-01 2710 2.0000000000000000e+03 1.0000000000000000e+00 2711 2.0000000000000000e+00 1.8200000000000000e-01 2711 5.0000000000000000e+01 8.4999999999999998e-01 2711 2.0000000000000000e+03 1.0000000000000000e+00 2712 2.0000000000000000e+00 2.4099999999999999e-01 2712 5.0000000000000000e+01 8.6099999999999999e-01 2712 2.0000000000000000e+03 1.0000000000000000e+00 2713 2.0000000000000000e+00 2.2000000000000000e-01 2713 5.0000000000000000e+01 8.7500000000000000e-01 2713 2.0000000000000000e+03 1.0000000000000000e+00 2720 2.0000000000000000e+00 1.4999999999999999e-01 2720 5.0000000000000000e+01 8.0200000000000005e-01 2720 2.0000000000000000e+03 1.0000000000000000e+00 2721 2.0000000000000000e+00 1.5800000000000000e-01 2721 5.0000000000000000e+01 7.5800000000000001e-01 2721 2.0000000000000000e+03 1.0000000000000000e+00 2722 2.0000000000000000e+00 1.7499999999999999e-01 2722 5.0000000000000000e+01 7.2199999999999998e-01 2722 2.0000000000000000e+03 1.0000000000000000e+00 2723 2.0000000000000000e+00 1.5200000000000000e-01 2723 5.0000000000000000e+01 7.1699999999999997e-01 2723 2.0000000000000000e+03 1.0000000000000000e+00 2730 2.0000000000000000e+00 1.4999999999999999e-01 2730 5.0000000000000000e+01 7.3999999999999999e-01 2730 2.0000000000000000e+03 1.0000000000000000e+00 2731 2.0000000000000000e+00 1.7000000000000001e-01 2731 5.0000000000000000e+01 7.5200000000000000e-01 2731 2.0000000000000000e+03 1.0000000000000000e+00 2732 2.0000000000000000e+00 1.7499999999999999e-01 2732 5.0000000000000000e+01 7.4299999999999999e-01 2732 2.0000000000000000e+03 1.0000000000000000e+00 2740 2.0000000000000000e+00 2.9699999999999999e-01 2740 5.0000000000000000e+01 6.9299999999999995e-01 2740 2.0000000000000000e+03 1.0000000000000000e+00 2741 2.0000000000000000e+00 2.3000000000000001e-01 2741 5.0000000000000000e+01 6.8700000000000006e-01 2741 2.0000000000000000e+03 1.0000000000000000e+00 2742 2.0000000000000000e+00 2.4600000000000000e-01 2742 5.0000000000000000e+01 6.2600000000000000e-01 2742 2.0000000000000000e+03 1.0000000000000000e+00 2743 2.0000000000000000e+00 3.1000000000000000e-01 2743 5.0000000000000000e+01 7.3299999999999998e-01 2743 2.0000000000000000e+03 1.0000000000000000e+00 2750 2.0000000000000000e+00 1.8500000000000000e-01 2750 5.0000000000000000e+01 4.8299999999999998e-01 2750 2.0000000000000000e+03 1.0000000000000000e+00 2751 2.0000000000000000e+00 1.8600000000000000e-01 2751 5.0000000000000000e+01 4.4600000000000001e-01 2751 2.0000000000000000e+03 1.0000000000000000e+00 2752 2.0000000000000000e+00 1.9000000000000000e-01 2752 5.0000000000000000e+01 5.0000000000000000e-01 2752 2.0000000000000000e+03 1.0000000000000000e+00 2753 2.0000000000000000e+00 1.7299999999999999e-01 2753 5.0000000000000000e+01 4.5600000000000002e-01 2753 2.0000000000000000e+03 1.0000000000000000e+00 2760 2.0000000000000000e+00 5.6000000000000001e-02 2760 5.0000000000000000e+01 6.0599999999999998e-01 2760 2.0000000000000000e+03 1.0000000000000000e+00 2761 2.0000000000000000e+00 5.0999999999999997e-02 2761 5.0000000000000000e+01 5.9299999999999997e-01 2761 2.0000000000000000e+03 1.0000000000000000e+00 2762 2.0000000000000000e+00 5.0000000000000003e-02 2762 5.0000000000000000e+01 3.5899999999999999e-01 2762 2.0000000000000000e+03 1.0000000000000000e+00 2763 2.0000000000000000e+00 2.8000000000000001e-02 2763 5.0000000000000000e+01 2.3100000000000001e-01 2763 2.0000000000000000e+03 1.0000000000000000e+00 2764 2.0000000000000000e+00 3.5999999999999997e-02 2764 5.0000000000000000e+01 3.1100000000000000e-01 2764 2.0000000000000000e+03 1.0000000000000000e+00 2765 2.0000000000000000e+00 2.8000000000000001e-02 2765 5.0000000000000000e+01 4.0000000000000002e-01 2765 2.0000000000000000e+03 1.0000000000000000e+00 3000 1.0000000000000000e+00 1.0100000000000001e-01 3000 5.0000000000000000e+00 1.5200000000000000e-01 3000 1.0000000000000000e+01 2.2300000000000000e-01 3000 5.0000000000000000e+01 3.2100000000000001e-01 3000 1.0000000000000000e+02 8.8000000000000000e-01 3000 2.5000000000000000e+02 9.9399999999999999e-01 3000 5.0000000000000000e+02 9.9500000000000000e-01 3000 1.0000000000000000e+03 9.9900000000000000e-01 3010 1.0000000000000000e+00 3.7999999999999999e-02 3010 5.0000000000000000e+00 1.1500000000000000e-01 3010 1.0000000000000000e+01 2.2600000000000001e-01 3010 5.0000000000000000e+01 4.9900000000000000e-01 3010 2.5000000000000000e+02 7.5800000000000001e-01 3010 1.0000000000000000e+03 1.0000000000000000e+00 3020 1.0000000000000000e+00 1.0000000000000000e-03 3020 5.0000000000000000e+00 1.4000000000000000e-02 3020 1.0000000000000000e+01 6.6000000000000003e-02 3020 5.0000000000000000e+01 1.3800000000000001e-01 3020 1.0000000000000000e+02 9.1400000000000003e-01 3020 2.5000000000000000e+02 9.6699999999999997e-01 3020 5.0000000000000000e+02 9.7799999999999998e-01 3020 1.0000000000000000e+03 9.9600000000000000e-01 3030 1.0000000000000000e+00 4.1899999999999998e-01 3030 5.0000000000000000e+00 7.3499999999999999e-01 3030 1.0000000000000000e+01 8.7600000000000000e-01 3030 5.0000000000000000e+01 9.7799999999999998e-01 3030 2.5000000000000000e+02 9.8699999999999999e-01 3030 1.0000000000000000e+03 1.0000000000000000e+00 3031 1.0000000000000000e+00 3.3200000000000002e-01 3031 5.0000000000000000e+00 4.2099999999999999e-01 3031 1.0000000000000000e+01 5.8999999999999997e-01 3031 5.0000000000000000e+01 7.8700000000000003e-01 3031 2.5000000000000000e+02 9.0100000000000002e-01 3031 1.0000000000000000e+03 9.2000000000000004e-01 3032 1.0000000000000000e+00 3.4599999999999997e-01 3032 5.0000000000000000e+00 3.8900000000000001e-01 3032 1.0000000000000000e+01 4.3400000000000000e-01 3032 5.0000000000000000e+01 6.5300000000000002e-01 3032 2.5000000000000000e+02 7.7300000000000002e-01 3032 1.0000000000000000e+03 7.8300000000000003e-01 3033 1.0000000000000000e+00 3.3800000000000002e-01 3033 5.0000000000000000e+00 5.0100000000000000e-01 3033 1.0000000000000000e+01 5.0100000000000000e-01 3033 5.0000000000000000e+01 7.1999999999999997e-01 3033 2.5000000000000000e+02 7.3199999999999998e-01 3033 1.0000000000000000e+03 8.6499999999999999e-01 3050 2.0000000000000000e+00 2.9000000000000001e-02 3050 4.0000000000000000e+00 3.9000000000000000e-02 3050 1.0000000000000000e+01 8.5999999999999993e-02 3050 1.5000000000000000e+01 1.1500000000000000e-01 3050 2.5000000000000000e+01 1.6800000000000001e-01 3050 3.9000000000000000e+01 2.2100000000000000e-01 3050 5.5000000000000000e+01 2.7400000000000002e-01 3050 7.4000000000000000e+01 2.7900000000000003e-01 3050 1.0500000000000000e+02 3.5599999999999998e-01 3050 2.5000000000000000e+02 5.9599999999999997e-01 3050 4.2000000000000000e+02 7.3999999999999999e-01 3050 8.4000000000000000e+02 8.4099999999999997e-01 3050 2.0000000000000000e+03 9.2800000000000005e-01 3050 4.7600000000000000e+03 9.6599999999999997e-01 3050 9.5200000000000000e+03 9.8999999999999999e-01 3050 1.9100000000000000e+04 1.0000000000000000e+00 3060 7.4000000000000000e+01 8.5999999999999993e-02 3060 1.0500000000000000e+02 1.0199999999999999e-01 3060 2.5000000000000000e+02 2.8100000000000003e-01 3060 4.2000000000000000e+02 8.3099999999999996e-01 3060 8.4000000000000000e+02 9.9900000000000000e-01 3060 2.0000000000000000e+03 1.0000000000000000e+00 3070 7.4000000000000000e+01 1.0000000000000000e-02 3070 1.0500000000000000e+02 6.2000000000000000e-02 3070 2.5000000000000000e+02 9.1600000000000004e-01 3070 4.2000000000000000e+02 9.9900000000000000e-01 3070 8.4000000000000000e+02 1.0000000000000000e+00 3070 2.0000000000000000e+03 1.0000000000000000e+00 3080 7.4000000000000000e+01 1.0000000000000000e-02 3080 1.0500000000000000e+02 6.2000000000000000e-02 3080 2.5000000000000000e+02 9.1600000000000004e-01 3080 4.2000000000000000e+02 9.9900000000000000e-01 3080 8.4000000000000000e+02 1.0000000000000000e+00 3080 2.0000000000000000e+03 1.0000000000000000e+00 3090 1.0000000000000000e+00 3.9700000000000002e-01 3090 5.0000000000000000e+00 5.2800000000000002e-01 3090 1.0000000000000000e+01 5.9699999999999998e-01 3090 5.0000000000000000e+01 9.7899999999999998e-01 3090 2.5000000000000000e+02 9.8199999999999998e-01 3090 1.0000000000000000e+03 9.9700000000000000e-01 3091 1.0000000000000000e+00 4.0899999999999997e-01 3091 5.0000000000000000e+00 5.3700000000000003e-01 3091 1.0000000000000000e+01 5.9999999999999998e-01 3091 5.0000000000000000e+01 9.7699999999999998e-01 3091 2.5000000000000000e+02 9.9600000000000000e-01 3091 1.0000000000000000e+03 1.0000000000000000e+00 3093 3100 1.0000000000000000e+00 3.0700000000000000e-01 3100 5.0000000000000000e+00 4.5000000000000001e-01 3100 1.0000000000000000e+01 5.4100000000000004e-01 3100 5.0000000000000000e+01 8.5699999999999998e-01 3100 2.5000000000000000e+02 9.8099999999999998e-01 3100 1.0000000000000000e+03 1.0000000000000000e+00 3101 1.0000000000000000e+00 3.4100000000000003e-01 3101 5.0000000000000000e+00 4.7199999999999998e-01 3101 1.0000000000000000e+01 5.8299999999999996e-01 3101 5.0000000000000000e+01 8.9700000000000002e-01 3101 2.5000000000000000e+02 9.8399999999999999e-01 3101 1.0000000000000000e+03 1.0000000000000000e+00 3102 1.0000000000000000e+00 3.4100000000000003e-01 3102 5.0000000000000000e+00 4.4200000000000000e-01 3102 1.0000000000000000e+01 5.4500000000000004e-01 3102 5.0000000000000000e+01 8.8700000000000001e-01 3102 2.5000000000000000e+02 9.7499999999999998e-01 3102 1.0000000000000000e+03 1.0000000000000000e+00 3103 1.0000000000000000e+00 3.3500000000000002e-01 3103 5.0000000000000000e+00 4.4100000000000000e-01 3103 1.0000000000000000e+01 6.0799999999999998e-01 3103 5.0000000000000000e+01 9.4299999999999995e-01 3103 2.5000000000000000e+02 9.8899999999999999e-01 3103 1.0000000000000000e+03 1.0000000000000000e+00 3110 1.0000000000000000e+00 3.0499999999999999e-01 3110 5.0000000000000000e+00 4.4900000000000001e-01 3110 1.0000000000000000e+01 5.4400000000000004e-01 3110 5.0000000000000000e+01 8.7600000000000000e-01 3110 2.5000000000000000e+02 9.8099999999999998e-01 3110 1.0000000000000000e+03 1.0000000000000000e+00 3111 1.0000000000000000e+00 3.4899999999999998e-01 3111 5.0000000000000000e+00 4.7699999999999998e-01 3111 1.0000000000000000e+01 5.8499999999999996e-01 3111 5.0000000000000000e+01 9.3700000000000006e-01 3111 2.5000000000000000e+02 9.8699999999999999e-01 3111 1.0000000000000000e+03 1.0000000000000000e+00 3112 1.0000000000000000e+00 3.3800000000000002e-01 3112 5.0000000000000000e+00 4.5700000000000002e-01 3112 1.0000000000000000e+01 5.6499999999999995e-01 3112 5.0000000000000000e+01 9.2700000000000005e-01 3112 2.5000000000000000e+02 9.8399999999999999e-01 3112 1.0000000000000000e+03 1.0000000000000000e+00 3113 1.0000000000000000e+00 3.3500000000000002e-01 3113 5.0000000000000000e+00 4.4100000000000000e-01 3113 1.0000000000000000e+01 6.0799999999999998e-01 3113 5.0000000000000000e+01 9.4299999999999995e-01 3113 2.5000000000000000e+02 9.8899999999999999e-01 3113 1.0000000000000000e+03 1.0000000000000000e+00 3120 2.0000000000000000e+00 4.3500000000000000e-01 3120 2.0000000000000000e+01 8.8000000000000000e-01 3120 2.0000000000000000e+03 9.7999999999999998e-01 3130 2.0000000000000000e+00 2.9999999999999999e-02 3130 2.0000000000000000e+01 6.7000000000000004e-02 3130 5.0000000000000000e+01 1.2900000000000000e-01 3130 1.0000000000000000e+02 2.2300000000000000e-01 3130 2.5000000000000000e+02 6.4100000000000001e-01 3130 5.0000000000000000e+02 9.7099999999999997e-01 3130 1.0000000000000000e+03 1.0000000000000000e+00 3130 2.0000000000000000e+03 1.0009999999999999e+00 3131 2.0000000000000000e+00 5.5000000000000000e-02 3131 2.0000000000000000e+01 1.0299999999999999e-01 3131 5.0000000000000000e+01 1.4799999999999999e-01 3131 1.0000000000000000e+02 2.5700000000000001e-01 3131 2.5000000000000000e+02 7.0199999999999996e-01 3131 5.0000000000000000e+02 9.7999999999999998e-01 3131 1.0000000000000000e+03 1.0000000000000000e+00 3131 2.0000000000000000e+03 1.0000000000000000e+00 3132 2.0000000000000000e+00 4.3999999999999997e-02 3132 2.0000000000000000e+01 6.7000000000000004e-02 3132 5.0000000000000000e+01 9.9000000000000005e-02 3132 1.0000000000000000e+02 1.9000000000000000e-01 3132 2.5000000000000000e+02 6.8000000000000005e-01 3132 5.0000000000000000e+02 9.7799999999999998e-01 3132 1.0000000000000000e+03 9.9900000000000000e-01 3132 2.0000000000000000e+03 1.0000000000000000e+00 3133 2.0000000000000000e+00 2.9000000000000001e-02 3133 2.0000000000000000e+01 5.9999999999999998e-02 3133 5.0000000000000000e+01 6.8000000000000005e-02 3133 1.0000000000000000e+02 1.5300000000000000e-01 3133 2.5000000000000000e+02 6.8999999999999995e-01 3133 5.0000000000000000e+02 9.7799999999999998e-01 3133 1.0000000000000000e+03 9.9900000000000000e-01 3133 2.0000000000000000e+03 1.0000000000000000e+00 3134 2.0000000000000000e+00 2.9000000000000001e-02 3134 2.0000000000000000e+01 4.7000000000000000e-02 3134 5.0000000000000000e+01 4.8000000000000001e-02 3134 1.0000000000000000e+02 6.9000000000000006e-02 3134 2.5000000000000000e+02 5.0000000000000000e-01 3134 5.0000000000000000e+02 9.8199999999999998e-01 3134 1.0000000000000000e+03 1.0000000000000000e+00 3134 2.0000000000000000e+03 1.0000000000000000e+00 3140 2.0000000000000000e+00 4.8000000000000001e-02 3140 2.0000000000000000e+01 8.1000000000000003e-02 3140 5.0000000000000000e+01 1.0800000000000000e-01 3140 1.0000000000000000e+02 1.9900000000000001e-01 3140 2.5000000000000000e+02 6.7000000000000004e-01 3140 5.0000000000000000e+02 9.7799999999999998e-01 3140 1.0000000000000000e+03 1.0000000000000000e+00 3140 2.0000000000000000e+03 1.0000000000000000e+00 3141 2.0000000000000000e+00 3.3000000000000002e-02 3141 2.0000000000000000e+01 6.6000000000000003e-02 3141 5.0000000000000000e+01 8.4000000000000005e-02 3141 1.0000000000000000e+02 1.6400000000000001e-01 3141 2.5000000000000000e+02 6.4200000000000002e-01 3141 5.0000000000000000e+02 9.7199999999999998e-01 3141 1.0000000000000000e+03 9.9900000000000000e-01 3141 2.0000000000000000e+03 1.0000000000000000e+00 3142 2.0000000000000000e+00 3.5000000000000003e-02 3142 2.0000000000000000e+01 3.7999999999999999e-02 3142 5.0000000000000000e+01 7.6999999999999999e-02 3142 1.0000000000000000e+02 1.6600000000000001e-01 3142 2.5000000000000000e+02 6.6400000000000003e-01 3142 5.0000000000000000e+02 9.7499999999999998e-01 3142 1.0000000000000000e+03 1.0000000000000000e+00 3142 2.0000000000000000e+03 1.0000000000000000e+00 3143 2.0000000000000000e+00 3.5999999999999997e-02 3143 2.0000000000000000e+01 4.9000000000000002e-02 3143 5.0000000000000000e+01 6.6000000000000003e-02 3143 1.0000000000000000e+02 1.4399999999999999e-01 3143 2.5000000000000000e+02 6.5900000000000003e-01 3143 5.0000000000000000e+02 9.8199999999999998e-01 3143 1.0000000000000000e+03 9.9900000000000000e-01 3143 2.0000000000000000e+03 9.9900000000000000e-01 3144 2.0000000000000000e+00 1.0999999999999999e-02 3144 2.0000000000000000e+01 3.7999999999999999e-02 3144 5.0000000000000000e+01 5.1999999999999998e-02 3144 1.0000000000000000e+02 1.1799999999999999e-01 3144 2.5000000000000000e+02 6.3000000000000000e-01 3144 5.0000000000000000e+02 9.8799999999999999e-01 3144 1.0000000000000000e+03 1.0020000000000000e+00 3144 2.0000000000000000e+03 1.0020000000000000e+00 3150 2.0000000000000000e+00 1.0400000000000000e-01 3150 2.0000000000000000e+01 1.1500000000000000e-01 3150 5.0000000000000000e+01 1.6200000000000001e-01 3150 1.0000000000000000e+02 2.7500000000000002e-01 3150 2.5000000000000000e+02 6.8899999999999995e-01 3150 5.0000000000000000e+02 9.7499999999999998e-01 3150 1.0000000000000000e+03 9.9900000000000000e-01 3150 2.0000000000000000e+03 1.0000000000000000e+00 3151 2.0000000000000000e+00 5.1999999999999998e-02 3151 2.0000000000000000e+01 9.2999999999999999e-02 3151 5.0000000000000000e+01 1.4299999999999999e-01 3151 1.0000000000000000e+02 2.4299999999999999e-01 3151 2.5000000000000000e+02 6.6600000000000004e-01 3151 5.0000000000000000e+02 9.7599999999999998e-01 3151 1.0000000000000000e+03 1.0020000000000000e+00 3151 2.0000000000000000e+03 1.0020000000000000e+00 3152 2.0000000000000000e+00 4.3999999999999997e-02 3152 2.0000000000000000e+01 1.0500000000000000e-01 3152 5.0000000000000000e+01 1.5500000000000000e-01 3152 1.0000000000000000e+02 2.7900000000000003e-01 3152 2.5000000000000000e+02 7.1299999999999997e-01 3152 5.0000000000000000e+02 9.7799999999999998e-01 3152 1.0000000000000000e+03 9.9900000000000000e-01 3152 2.0000000000000000e+03 1.0000000000000000e+00 3153 2.0000000000000000e+00 3.5999999999999997e-02 3153 2.0000000000000000e+01 8.3000000000000004e-02 3153 5.0000000000000000e+01 1.1400000000000000e-01 3153 1.0000000000000000e+02 2.0799999999999999e-01 3153 2.5000000000000000e+02 6.6200000000000003e-01 3153 5.0000000000000000e+02 9.7299999999999998e-01 3153 1.0000000000000000e+03 9.9800000000000000e-01 3153 2.0000000000000000e+03 9.9900000000000000e-01 3154 2.0000000000000000e+00 4.4999999999999998e-02 3154 2.0000000000000000e+01 6.5000000000000002e-02 3154 5.0000000000000000e+01 1.0900000000000000e-01 3154 1.0000000000000000e+02 1.9300000000000000e-01 3154 2.5000000000000000e+02 6.8999999999999995e-01 3154 5.0000000000000000e+02 9.8099999999999998e-01 3154 1.0000000000000000e+03 9.9900000000000000e-01 3154 2.0000000000000000e+03 1.0000000000000000e+00 3155 2.0000000000000000e+00 3.4000000000000002e-02 3155 2.0000000000000000e+01 6.0999999999999999e-02 3155 5.0000000000000000e+01 7.8000000000000000e-02 3155 1.0000000000000000e+02 1.5100000000000000e-01 3155 2.5000000000000000e+02 5.8399999999999996e-01 3155 5.0000000000000000e+02 9.6599999999999997e-01 3155 1.0000000000000000e+03 9.9800000000000000e-01 3155 2.0000000000000000e+03 9.9800000000000000e-01 3160 2.0000000000000000e+00 4.7000000000000000e-02 3160 2.0000000000000000e+01 1.0299999999999999e-01 3160 5.0000000000000000e+01 1.4799999999999999e-01 3160 1.0000000000000000e+02 3.4999999999999998e-01 3160 2.5000000000000000e+02 7.7300000000000002e-01 3160 5.0000000000000000e+02 9.5499999999999996e-01 3160 1.0000000000000000e+03 9.9900000000000000e-01 3160 2.0000000000000000e+03 1.0000000000000000e+00 3161 2.0000000000000000e+00 5.8000000000000003e-02 3161 2.0000000000000000e+01 1.1000000000000000e-01 3161 5.0000000000000000e+01 1.4699999999999999e-01 3161 1.0000000000000000e+02 3.6399999999999999e-01 3161 2.5000000000000000e+02 8.0200000000000005e-01 3161 5.0000000000000000e+02 9.5999999999999996e-01 3161 1.0000000000000000e+03 9.9900000000000000e-01 3161 2.0000000000000000e+03 9.9900000000000000e-01 3162 2.0000000000000000e+00 2.9999999999999999e-02 3162 2.0000000000000000e+01 8.2000000000000003e-02 3162 5.0000000000000000e+01 1.1899999999999999e-01 3162 1.0000000000000000e+02 3.5799999999999998e-01 3162 2.5000000000000000e+02 8.3199999999999996e-01 3162 5.0000000000000000e+02 9.6299999999999997e-01 3162 1.0000000000000000e+03 9.9900000000000000e-01 3162 2.0000000000000000e+03 1.0000000000000000e+00 3163 2.0000000000000000e+00 2.8000000000000001e-02 3163 2.0000000000000000e+01 8.9999999999999997e-02 3163 5.0000000000000000e+01 8.9999999999999997e-02 3163 1.0000000000000000e+02 3.5299999999999998e-01 3163 2.5000000000000000e+02 8.8000000000000000e-01 3163 5.0000000000000000e+02 9.7599999999999998e-01 3163 1.0000000000000000e+03 1.0000000000000000e+00 3163 2.0000000000000000e+03 1.0000000000000000e+00 3164 2.0000000000000000e+00 2.4000000000000000e-02 3164 2.0000000000000000e+01 5.0000000000000003e-02 3164 5.0000000000000000e+01 8.5999999999999993e-02 3164 1.0000000000000000e+02 3.3200000000000002e-01 3164 2.5000000000000000e+02 8.4999999999999998e-01 3164 5.0000000000000000e+02 9.6499999999999997e-01 3164 1.0000000000000000e+03 9.9900000000000000e-01 3164 2.0000000000000000e+03 9.9900000000000000e-01 3165 2.0000000000000000e+00 3.1000000000000000e-02 3165 2.0000000000000000e+01 7.4999999999999997e-02 3165 5.0000000000000000e+01 1.0400000000000000e-01 3165 1.0000000000000000e+02 2.8100000000000003e-01 3165 2.5000000000000000e+02 6.8400000000000005e-01 3165 5.0000000000000000e+02 8.9000000000000001e-01 3165 1.0000000000000000e+03 9.9900000000000000e-01 3165 2.0000000000000000e+03 9.9900000000000000e-01 3170 2.0000000000000000e+00 5.0000000000000003e-02 3170 2.0000000000000000e+01 1.1500000000000000e-01 3170 5.0000000000000000e+01 1.8400000000000000e-01 3170 1.0000000000000000e+02 3.6899999999999999e-01 3170 2.5000000000000000e+02 8.1699999999999995e-01 3170 5.0000000000000000e+02 9.6599999999999997e-01 3170 1.0000000000000000e+03 9.9900000000000000e-01 3170 2.0000000000000000e+03 1.0000000000000000e+00 3171 2.0000000000000000e+00 5.6000000000000001e-02 3171 2.0000000000000000e+01 1.0199999999999999e-01 3171 5.0000000000000000e+01 1.4999999999999999e-01 3171 1.0000000000000000e+02 3.5999999999999999e-01 3171 2.5000000000000000e+02 8.5899999999999999e-01 3171 5.0000000000000000e+02 9.7799999999999998e-01 3171 1.0000000000000000e+03 9.9900000000000000e-01 3171 2.0000000000000000e+03 1.0000000000000000e+00 3172 2.0000000000000000e+00 4.5999999999999999e-02 3172 2.0000000000000000e+01 6.4000000000000001e-02 3172 5.0000000000000000e+01 9.4000000000000000e-02 3172 1.0000000000000000e+02 3.1700000000000000e-01 3172 2.5000000000000000e+02 8.9700000000000002e-01 3172 5.0000000000000000e+02 9.8599999999999999e-01 3172 1.0000000000000000e+03 9.9700000000000000e-01 3172 2.0000000000000000e+03 9.9900000000000000e-01 3173 2.0000000000000000e+00 4.9000000000000002e-02 3173 2.0000000000000000e+01 6.4000000000000001e-02 3173 5.0000000000000000e+01 8.5000000000000006e-02 3173 1.0000000000000000e+02 2.8100000000000003e-01 3173 2.5000000000000000e+02 9.0000000000000002e-01 3173 5.0000000000000000e+02 9.8799999999999999e-01 3173 1.0000000000000000e+03 9.9900000000000000e-01 3173 2.0000000000000000e+03 1.0000000000000000e+00 3174 2.0000000000000000e+00 2.0000000000000000e-03 3174 2.0000000000000000e+01 3.7999999999999999e-02 3174 5.0000000000000000e+01 8.3000000000000004e-02 3174 1.0000000000000000e+02 2.0100000000000001e-01 3174 2.5000000000000000e+02 5.6200000000000006e-01 3174 5.0000000000000000e+02 9.3799999999999994e-01 3174 1.0000000000000000e+03 9.9500000000000000e-01 3174 2.0000000000000000e+03 9.9900000000000000e-01 3175 2.0000000000000000e+00 2.0000000000000000e-03 3175 2.0000000000000000e+01 6.0000000000000001e-03 3175 5.0000000000000000e+01 2.9999999999999999e-02 3175 1.0000000000000000e+02 4.0000000000000001e-02 3175 2.5000000000000000e+02 2.1400000000000000e-01 3175 5.0000000000000000e+02 9.5899999999999996e-01 3175 1.0000000000000000e+03 9.9800000000000000e-01 3175 2.0000000000000000e+03 9.9900000000000000e-01 3180 2.0000000000000000e+00 2.0000000000000001e-01 3180 2.0000000000000000e+01 3.0499999999999999e-01 3180 5.0000000000000000e+01 3.6399999999999999e-01 3180 1.0000000000000000e+02 5.0900000000000001e-01 3180 2.5000000000000000e+02 8.6599999999999999e-01 3180 5.0000000000000000e+02 9.8099999999999998e-01 3180 1.0000000000000000e+03 9.9900000000000000e-01 3180 2.0000000000000000e+03 9.9900000000000000e-01 3181 2.0000000000000000e+00 6.4000000000000001e-02 3181 2.0000000000000000e+01 8.2000000000000003e-02 3181 5.0000000000000000e+01 1.1000000000000000e-01 3181 1.0000000000000000e+02 3.1200000000000000e-01 3181 2.5000000000000000e+02 8.1399999999999995e-01 3181 5.0000000000000000e+02 9.6799999999999997e-01 3181 1.0000000000000000e+03 9.9700000000000000e-01 3181 2.0000000000000000e+03 9.9800000000000000e-01 3182 2.0000000000000000e+00 2.8000000000000001e-02 3182 2.0000000000000000e+01 5.0000000000000003e-02 3182 5.0000000000000000e+01 8.0000000000000002e-02 3182 1.0000000000000000e+02 1.0600000000000000e-01 3182 2.5000000000000000e+02 7.1299999999999997e-01 3182 5.0000000000000000e+02 9.9399999999999999e-01 3182 1.0000000000000000e+03 9.9800000000000000e-01 3182 2.0000000000000000e+03 9.9900000000000000e-01 3183 2.0000000000000000e+00 1.7000000000000001e-02 3183 2.0000000000000000e+01 4.2999999999999997e-02 3183 5.0000000000000000e+01 6.7000000000000004e-02 3183 1.0000000000000000e+02 9.7000000000000003e-02 3183 2.5000000000000000e+02 6.0999999999999999e-01 3183 5.0000000000000000e+02 9.8699999999999999e-01 3183 1.0000000000000000e+03 1.0000000000000000e+00 3183 2.0000000000000000e+03 1.0000000000000000e+00 3190 2.0000000000000000e+00 1.6500000000000001e-01 3190 2.0000000000000000e+01 3.5799999999999998e-01 3190 5.0000000000000000e+01 5.2100000000000002e-01 3190 1.0000000000000000e+02 6.6400000000000003e-01 3190 2.5000000000000000e+02 8.5099999999999998e-01 3190 5.0000000000000000e+02 9.6299999999999997e-01 3190 1.0000000000000000e+03 9.9900000000000000e-01 3190 2.0000000000000000e+03 1.0000000000000000e+00 3191 2.0000000000000000e+00 1.6200000000000001e-01 3191 2.0000000000000000e+01 3.5899999999999999e-01 3191 5.0000000000000000e+01 5.2300000000000002e-01 3191 1.0000000000000000e+02 6.6600000000000004e-01 3191 2.5000000000000000e+02 8.4799999999999998e-01 3191 5.0000000000000000e+02 9.6199999999999997e-01 3191 1.0000000000000000e+03 9.9800000000000000e-01 3191 2.0000000000000000e+03 9.9900000000000000e-01 3192 2.0000000000000000e+00 1.6300000000000001e-01 3192 2.0000000000000000e+01 3.7300000000000000e-01 3192 5.0000000000000000e+01 5.5800000000000005e-01 3192 1.0000000000000000e+02 6.8799999999999994e-01 3192 2.5000000000000000e+02 8.5999999999999999e-01 3192 5.0000000000000000e+02 9.6799999999999997e-01 3192 1.0000000000000000e+03 9.9700000000000000e-01 3192 2.0000000000000000e+03 1.0000000000000000e+00 3193 2.0000000000000000e+00 1.3700000000000001e-01 3193 2.0000000000000000e+01 4.1599999999999998e-01 3193 5.0000000000000000e+01 5.8599999999999997e-01 3193 1.0000000000000000e+02 7.1699999999999997e-01 3193 2.5000000000000000e+02 8.7300000000000000e-01 3193 5.0000000000000000e+02 9.6199999999999997e-01 3193 1.0000000000000000e+03 1.0000000000000000e+00 3193 2.0000000000000000e+03 1.0000000000000000e+00 3194 2.0000000000000000e+00 8.6999999999999994e-02 3194 2.0000000000000000e+01 3.5299999999999998e-01 3194 5.0000000000000000e+01 5.4300000000000004e-01 3194 1.0000000000000000e+02 6.9499999999999995e-01 3194 2.5000000000000000e+02 8.6599999999999999e-01 3194 5.0000000000000000e+02 9.5599999999999996e-01 3194 1.0000000000000000e+03 1.0000000000000000e+00 3194 2.0000000000000000e+03 1.0000000000000000e+00 3195 2.0000000000000000e+00 7.9000000000000001e-02 3195 2.0000000000000000e+01 3.2900000000000001e-01 3195 5.0000000000000000e+01 5.5100000000000005e-01 3195 1.0000000000000000e+02 6.8999999999999995e-01 3195 2.5000000000000000e+02 8.6299999999999999e-01 3195 5.0000000000000000e+02 9.5999999999999996e-01 3195 1.0000000000000000e+03 1.0000000000000000e+00 3195 2.0000000000000000e+03 1.0000000000000000e+00 3200 2.0000000000000000e+00 1.5300000000000000e-01 3200 2.0000000000000000e+01 2.3200000000000001e-01 3200 5.0000000000000000e+01 3.4799999999999998e-01 3200 1.0000000000000000e+02 6.3000000000000000e-01 3200 2.5000000000000000e+02 9.2800000000000005e-01 3200 5.0000000000000000e+02 9.8699999999999999e-01 3200 1.0000000000000000e+03 9.9700000000000000e-01 3200 2.0000000000000000e+03 9.9900000000000000e-01 3201 2.0000000000000000e+00 1.5100000000000000e-01 3201 2.0000000000000000e+01 2.0699999999999999e-01 3201 5.0000000000000000e+01 3.2100000000000001e-01 3201 1.0000000000000000e+02 6.2000000000000000e-01 3201 2.5000000000000000e+02 9.1900000000000004e-01 3201 5.0000000000000000e+02 9.8299999999999998e-01 3201 1.0000000000000000e+03 9.9700000000000000e-01 3201 2.0000000000000000e+03 9.9900000000000000e-01 3202 2.0000000000000000e+00 2.2700000000000001e-01 3202 2.0000000000000000e+01 2.8599999999999998e-01 3202 5.0000000000000000e+01 3.7500000000000000e-01 3202 1.0000000000000000e+02 6.7500000000000004e-01 3202 2.5000000000000000e+02 9.3899999999999995e-01 3202 5.0000000000000000e+02 9.8799999999999999e-01 3202 1.0000000000000000e+03 1.0000000000000000e+00 3202 2.0000000000000000e+03 1.0009999999999999e+00 3203 2.0000000000000000e+00 1.0500000000000000e-01 3203 2.0000000000000000e+01 1.3800000000000001e-01 3203 5.0000000000000000e+01 2.3699999999999999e-01 3203 1.0000000000000000e+02 5.6499999999999995e-01 3203 2.5000000000000000e+02 9.2100000000000004e-01 3203 5.0000000000000000e+02 9.8399999999999999e-01 3203 1.0000000000000000e+03 9.9900000000000000e-01 3203 2.0000000000000000e+03 1.0000000000000000e+00 3204 2.0000000000000000e+00 8.3000000000000004e-02 3204 2.0000000000000000e+01 1.6000000000000000e-01 3204 5.0000000000000000e+01 2.4600000000000000e-01 3204 1.0000000000000000e+02 4.1799999999999998e-01 3204 2.5000000000000000e+02 7.5100000000000000e-01 3204 5.0000000000000000e+02 9.4799999999999995e-01 3204 1.0000000000000000e+03 9.9299999999999999e-01 3204 2.0000000000000000e+03 1.0000000000000000e+00 3205 2.0000000000000000e+00 8.2000000000000003e-02 3205 2.0000000000000000e+01 1.2900000000000000e-01 3205 5.0000000000000000e+01 2.3699999999999999e-01 3205 1.0000000000000000e+02 3.5399999999999998e-01 3205 2.5000000000000000e+02 6.6000000000000003e-01 3205 5.0000000000000000e+02 9.2500000000000004e-01 3205 1.0000000000000000e+03 9.8399999999999999e-01 3205 2.0000000000000000e+03 1.0000000000000000e+00 3206 2.0000000000000000e+00 1.7000000000000001e-02 3206 2.0000000000000000e+01 3.9000000000000000e-02 3206 5.0000000000000000e+01 5.9999999999999998e-02 3206 1.0000000000000000e+02 6.7000000000000004e-02 3206 2.5000000000000000e+02 1.8600000000000000e-01 3206 5.0000000000000000e+02 7.0899999999999996e-01 3206 1.0000000000000000e+03 9.9700000000000000e-01 3206 2.0000000000000000e+03 1.0009999999999999e+00 3210 2.0000000000000000e+00 1.6300000000000001e-01 3210 2.0000000000000000e+01 4.0000000000000002e-01 3210 5.0000000000000000e+01 6.7000000000000004e-01 3210 1.0000000000000000e+02 8.7900000000000000e-01 3210 2.5000000000000000e+02 9.6699999999999997e-01 3210 5.0000000000000000e+02 9.9299999999999999e-01 3210 1.0000000000000000e+03 9.7999999999999998e-01 3210 2.0000000000000000e+03 9.9900000000000000e-01 3211 2.0000000000000000e+00 1.4599999999999999e-01 3211 2.0000000000000000e+01 3.3900000000000002e-01 3211 5.0000000000000000e+01 6.3600000000000001e-01 3211 1.0000000000000000e+02 8.9800000000000002e-01 3211 2.5000000000000000e+02 9.7799999999999998e-01 3211 5.0000000000000000e+02 9.9600000000000000e-01 3211 1.0000000000000000e+03 9.9900000000000000e-01 3211 2.0000000000000000e+03 9.9900000000000000e-01 3212 2.0000000000000000e+00 2.7600000000000002e-01 3212 2.0000000000000000e+01 6.9199999999999995e-01 3212 5.0000000000000000e+01 9.1600000000000004e-01 3212 1.0000000000000000e+02 9.7099999999999997e-01 3212 2.5000000000000000e+02 9.9199999999999999e-01 3212 5.0000000000000000e+02 9.9800000000000000e-01 3212 1.0000000000000000e+03 9.9900000000000000e-01 3212 2.0000000000000000e+03 1.0000000000000000e+00 3213 2.0000000000000000e+00 1.3600000000000001e-01 3213 2.0000000000000000e+01 5.9399999999999997e-01 3213 5.0000000000000000e+01 8.4199999999999997e-01 3213 1.0000000000000000e+02 9.3200000000000005e-01 3213 2.5000000000000000e+02 9.7799999999999998e-01 3213 5.0000000000000000e+02 9.9299999999999999e-01 3213 1.0000000000000000e+03 9.9600000000000000e-01 3213 2.0000000000000000e+03 9.9800000000000000e-01 3214 2.0000000000000000e+00 1.1300000000000000e-01 3214 2.0000000000000000e+01 7.0399999999999996e-01 3214 5.0000000000000000e+01 9.8299999999999998e-01 3214 1.0000000000000000e+02 9.8999999999999999e-01 3214 2.5000000000000000e+02 9.9299999999999999e-01 3214 5.0000000000000000e+02 9.9500000000000000e-01 3214 1.0000000000000000e+03 9.9700000000000000e-01 3214 2.0000000000000000e+03 9.9900000000000000e-01 3220 2.0000000000000000e+00 1.8400000000000000e-01 3220 2.0000000000000000e+01 4.3700000000000000e-01 3220 5.0000000000000000e+01 6.9099999999999995e-01 3220 1.0000000000000000e+02 8.0700000000000005e-01 3220 2.5000000000000000e+02 9.5799999999999996e-01 3220 5.0000000000000000e+02 9.8899999999999999e-01 3220 1.0000000000000000e+03 1.0000000000000000e+00 3220 2.0000000000000000e+03 1.0000000000000000e+00 3221 2.0000000000000000e+00 1.9800000000000001e-01 3221 2.0000000000000000e+01 4.6500000000000002e-01 3221 5.0000000000000000e+01 6.5900000000000003e-01 3221 1.0000000000000000e+02 7.6600000000000001e-01 3221 2.5000000000000000e+02 9.4799999999999995e-01 3221 5.0000000000000000e+02 9.8499999999999999e-01 3221 1.0000000000000000e+03 9.9900000000000000e-01 3221 2.0000000000000000e+03 1.0000000000000000e+00 3222 2.0000000000000000e+00 2.5500000000000000e-01 3222 2.0000000000000000e+01 6.6000000000000003e-01 3222 5.0000000000000000e+01 8.4599999999999997e-01 3222 1.0000000000000000e+02 9.1600000000000004e-01 3222 2.5000000000000000e+02 9.9099999999999999e-01 3222 5.0000000000000000e+02 9.9700000000000000e-01 3222 1.0000000000000000e+03 9.9900000000000000e-01 3222 2.0000000000000000e+03 9.9900000000000000e-01 3223 2.0000000000000000e+00 1.9100000000000000e-01 3223 2.0000000000000000e+01 7.2099999999999997e-01 3223 5.0000000000000000e+01 9.3000000000000005e-01 3223 1.0000000000000000e+02 9.5599999999999996e-01 3223 2.5000000000000000e+02 9.9099999999999999e-01 3223 5.0000000000000000e+02 9.9700000000000000e-01 3223 1.0000000000000000e+03 9.9900000000000000e-01 3223 2.0000000000000000e+03 1.0000000000000000e+00 3224 2.0000000000000000e+00 1.5200000000000000e-01 3224 2.0000000000000000e+01 7.5600000000000001e-01 3224 5.0000000000000000e+01 9.4199999999999995e-01 3224 1.0000000000000000e+02 9.5299999999999996e-01 3224 2.5000000000000000e+02 9.6399999999999997e-01 3224 5.0000000000000000e+02 9.7299999999999998e-01 3224 1.0000000000000000e+03 9.8799999999999999e-01 3224 2.0000000000000000e+03 9.9800000000000000e-01 3225 2.0000000000000000e+00 1.7000000000000001e-01 3225 2.0000000000000000e+01 8.0600000000000005e-01 3225 5.0000000000000000e+01 9.6199999999999997e-01 3225 1.0000000000000000e+02 9.7299999999999998e-01 3225 2.5000000000000000e+02 9.9600000000000000e-01 3225 5.0000000000000000e+02 9.9600000000000000e-01 3225 1.0000000000000000e+03 9.9900000000000000e-01 3225 2.0000000000000000e+03 1.0000000000000000e+00 3230 3231 3232 2.0000000000000000e+00 7.0000000000000001e-03 3232 4.0000000000000000e+00 7.0000000000000001e-03 3232 8.0000000000000000e+00 7.0000000000000001e-03 3232 1.6000000000000000e+01 8.0000000000000002e-03 3232 3.2000000000000000e+01 8.9999999999999993e-03 3232 6.3000000000000000e+01 1.2000000000000000e-02 3232 1.2500000000000000e+02 1.0400000000000000e-01 3232 2.5000000000000000e+02 5.8999999999999997e-01 3232 5.0000000000000000e+02 9.0900000000000003e-01 3232 1.0000000000000000e+03 9.8499999999999999e-01 3232 2.0000000000000000e+03 1.0000000000000000e+00 3240 2.0000000000000000e+00 2.4299999999999999e-01 3240 5.0000000000000000e+01 9.8599999999999999e-01 3240 1.0500000000000000e+02 9.8899999999999999e-01 3240 2.5000000000000000e+02 9.9299999999999999e-01 3240 5.0000000000000000e+02 9.9800000000000000e-01 3240 1.0000000000000000e+03 1.0000000000000000e+00 3240 2.0000000000000000e+03 1.0000000000000000e+00 3241 2.0000000000000000e+00 2.7100000000000002e-01 3241 5.0000000000000000e+01 1.0000000000000000e+00 3241 1.0500000000000000e+02 1.0009999999999999e+00 3241 2.5000000000000000e+02 1.0009999999999999e+00 3241 5.0000000000000000e+02 1.0009999999999999e+00 3241 1.0000000000000000e+03 1.0009999999999999e+00 3241 2.0000000000000000e+03 1.0009999999999999e+00 3242 2.0000000000000000e+00 2.0000000000000001e-01 3242 5.0000000000000000e+01 9.9299999999999999e-01 3242 1.0500000000000000e+02 9.9500000000000000e-01 3242 2.5000000000000000e+02 9.9800000000000000e-01 3242 5.0000000000000000e+02 1.0000000000000000e+00 3242 1.0000000000000000e+03 1.0000000000000000e+00 3242 2.0000000000000000e+03 1.0000000000000000e+00 3243 2.0000000000000000e+00 1.7299999999999999e-01 3243 5.0000000000000000e+01 9.7999999999999998e-01 3243 1.0500000000000000e+02 9.8399999999999999e-01 3243 2.5000000000000000e+02 9.9099999999999999e-01 3243 5.0000000000000000e+02 9.9900000000000000e-01 3243 1.0000000000000000e+03 1.0000000000000000e+00 3243 2.0000000000000000e+03 1.0000000000000000e+00 3250 2.0000000000000000e+00 1.8500000000000000e-01 3250 5.0000000000000000e+01 9.8999999999999999e-01 3250 1.0500000000000000e+02 9.9399999999999999e-01 3250 2.5000000000000000e+02 9.9600000000000000e-01 3250 5.0000000000000000e+02 9.9800000000000000e-01 3250 1.0000000000000000e+03 9.9900000000000000e-01 3250 2.0000000000000000e+03 9.9900000000000000e-01 3251 2.0000000000000000e+00 2.8999999999999998e-01 3251 5.0000000000000000e+01 9.9500000000000000e-01 3251 1.0500000000000000e+02 9.9700000000000000e-01 3251 2.5000000000000000e+02 9.9700000000000000e-01 3251 5.0000000000000000e+02 9.9700000000000000e-01 3251 1.0000000000000000e+03 9.9700000000000000e-01 3251 2.0000000000000000e+03 9.9700000000000000e-01 3252 2.0000000000000000e+00 2.2500000000000001e-01 3252 5.0000000000000000e+01 9.9500000000000000e-01 3252 1.0500000000000000e+02 9.9600000000000000e-01 3252 2.5000000000000000e+02 9.9600000000000000e-01 3252 5.0000000000000000e+02 9.9600000000000000e-01 3252 1.0000000000000000e+03 9.9600000000000000e-01 3252 2.0000000000000000e+03 9.9600000000000000e-01 3253 2.0000000000000000e+00 2.0499999999999999e-01 3253 5.0000000000000000e+01 1.0000000000000000e+00 3253 1.0500000000000000e+02 1.0009999999999999e+00 3253 2.5000000000000000e+02 1.0009999999999999e+00 3253 5.0000000000000000e+02 1.0009999999999999e+00 3253 1.0000000000000000e+03 1.0009999999999999e+00 3253 2.0000000000000000e+03 1.0009999999999999e+00 3260 2.0000000000000000e+00 8.9999999999999997e-02 3260 5.0000000000000000e+01 8.8000000000000000e-01 3260 1.0500000000000000e+02 8.9000000000000001e-01 3260 2.5000000000000000e+02 9.4999999999999996e-01 3260 5.0000000000000000e+02 9.8999999999999999e-01 3260 1.0000000000000000e+03 9.8999999999999999e-01 3260 2.0000000000000000e+03 1.0000000000000000e+00 3261 2.0000000000000000e+00 8.9999999999999997e-02 3261 5.0000000000000000e+01 7.8000000000000003e-01 3261 1.0500000000000000e+02 8.0000000000000004e-01 3261 2.5000000000000000e+02 9.1000000000000003e-01 3261 5.0000000000000000e+02 1.0000000000000000e+00 3261 1.0000000000000000e+03 1.0100000000000000e+00 3261 2.0000000000000000e+03 1.0100000000000000e+00 3262 2.0000000000000000e+00 1.0000000000000001e-01 3262 5.0000000000000000e+01 7.9000000000000004e-01 3262 1.0500000000000000e+02 8.1000000000000005e-01 3262 2.5000000000000000e+02 9.2000000000000004e-01 3262 5.0000000000000000e+02 9.8999999999999999e-01 3262 1.0000000000000000e+03 1.0000000000000000e+00 3262 2.0000000000000000e+03 1.0000000000000000e+00 3263 2.0000000000000000e+00 1.0000000000000001e-01 3263 5.0000000000000000e+01 7.3999999999999999e-01 3263 1.0500000000000000e+02 7.6000000000000001e-01 3263 2.5000000000000000e+02 8.9000000000000001e-01 3263 5.0000000000000000e+02 9.8999999999999999e-01 3263 1.0000000000000000e+03 1.0000000000000000e+00 3263 2.0000000000000000e+03 1.0000000000000000e+00 3264 2.0000000000000000e+00 1.3000000000000000e-01 3264 5.0000000000000000e+01 8.9000000000000001e-01 3264 1.0500000000000000e+02 9.1000000000000003e-01 3264 2.5000000000000000e+02 9.6999999999999997e-01 3264 5.0000000000000000e+02 1.0000000000000000e+00 3264 1.0000000000000000e+03 1.0100000000000000e+00 3264 2.0000000000000000e+03 1.0100000000000000e+00 3270 3271 3272 3273 3274 3281 2.0000000000000000e+00 4.8799999999999999e-01 3281 2.0000000000000000e+01 7.3899999999999999e-01 3281 2.0000000000000000e+02 1.0000000000000000e+00 3281 2.0000000000000000e+03 1.0080000000000000e+00 3282 2.0000000000000000e+00 5.4000000000000004e-01 3282 2.0000000000000000e+01 7.8600000000000003e-01 3282 2.0000000000000000e+02 1.0020000000000000e+00 3282 2.0000000000000000e+03 1.0080000000000000e+00 3283 2.0000000000000000e+00 3.2600000000000001e-01 3283 2.0000000000000000e+01 6.8000000000000005e-01 3283 2.0000000000000000e+02 1.0080000000000000e+00 3283 2.0000000000000000e+03 1.0109999999999999e+00 3290 2.0000000000000000e+00 1.0800000000000000e-01 3290 2.0000000000000000e+01 2.8100000000000003e-01 3290 6.3000000000000000e+01 4.7299999999999998e-01 3290 1.2500000000000000e+02 6.8000000000000005e-01 3290 2.0000000000000000e+02 8.3699999999999997e-01 3290 5.0000000000000000e+02 9.8799999999999999e-01 3290 2.0000000000000000e+03 1.0000000000000000e+00 3291 2.0000000000000000e+00 1.0700000000000000e-01 3291 2.0000000000000000e+01 2.7000000000000002e-01 3291 6.3000000000000000e+01 4.5200000000000001e-01 3291 1.2500000000000000e+02 6.4900000000000002e-01 3291 2.0000000000000000e+02 8.2099999999999995e-01 3291 5.0000000000000000e+02 9.8599999999999999e-01 3291 2.0000000000000000e+03 1.0000000000000000e+00 3292 2.0000000000000000e+00 2.3799999999999999e-01 3292 2.0000000000000000e+01 4.0100000000000002e-01 3292 6.3000000000000000e+01 5.2000000000000002e-01 3292 1.2500000000000000e+02 6.9399999999999995e-01 3292 2.0000000000000000e+02 8.3399999999999996e-01 3292 5.0000000000000000e+02 9.9199999999999999e-01 3292 2.0000000000000000e+03 1.0000000000000000e+00 3293 2.0000000000000000e+00 2.6900000000000002e-01 3293 2.0000000000000000e+01 3.7000000000000000e-01 3293 6.3000000000000000e+01 5.5500000000000005e-01 3293 1.2500000000000000e+02 7.7700000000000002e-01 3293 2.0000000000000000e+02 9.3200000000000005e-01 3293 5.0000000000000000e+02 9.9600000000000000e-01 3293 2.0000000000000000e+03 1.0000000000000000e+00 3300 2.0000000000000000e+00 1.0600000000000000e-01 3300 2.0000000000000000e+01 2.5600000000000001e-01 3300 6.3000000000000000e+01 4.6600000000000003e-01 3300 1.2500000000000000e+02 6.7300000000000004e-01 3300 2.0000000000000000e+02 8.3899999999999997e-01 3300 5.0000000000000000e+02 9.9199999999999999e-01 3300 2.0000000000000000e+03 1.0000000000000000e+00 3301 2.0000000000000000e+00 1.2100000000000000e-01 3301 2.0000000000000000e+01 2.6600000000000001e-01 3301 6.3000000000000000e+01 4.5200000000000001e-01 3301 1.2500000000000000e+02 6.5300000000000002e-01 3301 2.0000000000000000e+02 8.2299999999999995e-01 3301 5.0000000000000000e+02 9.8699999999999999e-01 3301 2.0000000000000000e+03 1.0000000000000000e+00 3302 2.0000000000000000e+00 2.0399999999999999e-01 3302 2.0000000000000000e+01 3.3100000000000002e-01 3302 6.3000000000000000e+01 4.8999999999999999e-01 3302 1.2500000000000000e+02 7.1499999999999997e-01 3302 2.0000000000000000e+02 8.8800000000000001e-01 3302 5.0000000000000000e+02 9.8799999999999999e-01 3302 2.0000000000000000e+03 1.0000000000000000e+00 3303 2.0000000000000000e+00 1.8600000000000000e-01 3303 2.0000000000000000e+01 3.3000000000000002e-01 3303 6.3000000000000000e+01 5.1400000000000001e-01 3303 1.2500000000000000e+02 7.4600000000000000e-01 3303 2.0000000000000000e+02 8.8400000000000001e-01 3303 5.0000000000000000e+02 9.8799999999999999e-01 3303 2.0000000000000000e+03 1.0000000000000000e+00 3310 2.0000000000000000e+00 1.1000000000000000e-01 3310 2.0000000000000000e+01 2.3599999999999999e-01 3310 6.3000000000000000e+01 4.0100000000000002e-01 3310 1.2500000000000000e+02 5.7799999999999996e-01 3310 2.0000000000000000e+02 7.6000000000000001e-01 3310 5.0000000000000000e+02 9.8799999999999999e-01 3310 2.0000000000000000e+03 1.0000000000000000e+00 3311 2.0000000000000000e+00 1.2100000000000000e-01 3311 2.0000000000000000e+01 2.3999999999999999e-01 3311 6.3000000000000000e+01 3.9800000000000002e-01 3311 1.2500000000000000e+02 5.7799999999999996e-01 3311 2.0000000000000000e+02 7.5400000000000000e-01 3311 5.0000000000000000e+02 9.8799999999999999e-01 3311 2.0000000000000000e+03 1.0000000000000000e+00 3312 2.0000000000000000e+00 2.4500000000000000e-01 3312 2.0000000000000000e+01 3.6099999999999999e-01 3312 6.3000000000000000e+01 5.0400000000000000e-01 3312 1.2500000000000000e+02 7.1599999999999997e-01 3312 2.0000000000000000e+02 8.8600000000000001e-01 3312 5.0000000000000000e+02 9.9199999999999999e-01 3312 2.0000000000000000e+03 1.0000000000000000e+00 3313 2.0000000000000000e+00 2.2700000000000001e-01 3313 2.0000000000000000e+01 3.5199999999999998e-01 3313 6.3000000000000000e+01 4.7599999999999998e-01 3313 1.2500000000000000e+02 6.5800000000000003e-01 3313 2.0000000000000000e+02 8.2599999999999996e-01 3313 5.0000000000000000e+02 9.9199999999999999e-01 3313 2.0000000000000000e+03 1.0000000000000000e+00 3320 2.0000000000000000e+00 7.9000000000000001e-02 3320 2.0000000000000000e+01 1.7999999999999999e-01 3320 6.3000000000000000e+01 3.3600000000000002e-01 3320 1.2500000000000000e+02 5.0800000000000001e-01 3320 2.0000000000000000e+02 6.5300000000000002e-01 3320 5.0000000000000000e+02 9.0300000000000002e-01 3320 2.0000000000000000e+03 1.0000000000000000e+00 3321 2.0000000000000000e+00 7.9000000000000001e-02 3321 2.0000000000000000e+01 1.8500000000000000e-01 3321 6.3000000000000000e+01 3.4499999999999997e-01 3321 1.2500000000000000e+02 5.1700000000000002e-01 3321 2.0000000000000000e+02 6.5700000000000003e-01 3321 5.0000000000000000e+02 9.1000000000000003e-01 3321 2.0000000000000000e+03 1.0000000000000000e+00 3322 2.0000000000000000e+00 1.3400000000000001e-01 3322 2.0000000000000000e+01 2.3000000000000001e-01 3322 6.3000000000000000e+01 3.6499999999999999e-01 3322 1.2500000000000000e+02 5.3000000000000003e-01 3322 2.0000000000000000e+02 6.6600000000000004e-01 3322 5.0000000000000000e+02 8.9800000000000002e-01 3322 2.0000000000000000e+03 1.0000000000000000e+00 3323 2.0000000000000000e+00 1.0299999999999999e-01 3323 2.0000000000000000e+01 2.0000000000000001e-01 3323 6.3000000000000000e+01 3.3400000000000002e-01 3323 1.2500000000000000e+02 5.0700000000000001e-01 3323 2.0000000000000000e+02 6.5300000000000002e-01 3323 5.0000000000000000e+02 9.0100000000000002e-01 3323 2.0000000000000000e+03 1.0000000000000000e+00 3330 2.0000000000000000e+00 4.2000000000000003e-02 3330 2.0000000000000000e+01 8.1000000000000003e-02 3330 6.3000000000000000e+01 1.1200000000000000e-01 3330 1.2500000000000000e+02 1.7299999999999999e-01 3330 2.0000000000000000e+02 2.8899999999999998e-01 3330 5.0000000000000000e+02 8.1299999999999994e-01 3330 2.0000000000000000e+03 1.0000000000000000e+00 3331 2.0000000000000000e+00 3.5000000000000003e-02 3331 2.0000000000000000e+01 5.3999999999999999e-02 3331 6.3000000000000000e+01 6.4000000000000001e-02 3331 1.2500000000000000e+02 1.0299999999999999e-01 3331 2.0000000000000000e+02 2.0200000000000001e-01 3331 5.0000000000000000e+02 8.9200000000000002e-01 3331 2.0000000000000000e+03 1.0000000000000000e+00 3332 2.0000000000000000e+00 2.5000000000000001e-02 3332 2.0000000000000000e+01 2.9999999999999999e-02 3332 6.3000000000000000e+01 4.0000000000000001e-02 3332 1.2500000000000000e+02 4.5999999999999999e-02 3332 2.0000000000000000e+02 8.7999999999999995e-02 3332 5.0000000000000000e+02 8.6799999999999999e-01 3332 2.0000000000000000e+03 1.0000000000000000e+00 3340 2.0000000000000000e+00 1.4999999999999999e-02 3340 1.6000000000000000e+01 2.5000000000000001e-02 3340 6.3000000000000000e+01 7.4999999999999997e-02 3340 1.2500000000000000e+02 9.5000000000000001e-02 3340 2.5000000000000000e+02 4.6700000000000003e-01 3340 5.0000000000000000e+02 8.3299999999999996e-01 3340 1.0000000000000000e+03 9.6499999999999997e-01 3340 2.0000000000000000e+03 1.0020000000000000e+00 3341 3350 3351 3360 2.0000000000000000e+00 1.5100000000000000e-01 3360 6.0000000000000000e+00 2.0200000000000001e-01 3360 2.0000000000000000e+01 3.6899999999999999e-01 3360 6.0000000000000000e+01 9.7399999999999998e-01 3360 2.0000000000000000e+02 9.9099999999999999e-01 3360 6.0000000000000000e+02 9.9900000000000000e-01 3360 2.0000000000000000e+03 1.0000000000000000e+00 3361 2.0000000000000000e+00 1.4399999999999999e-01 3361 6.0000000000000000e+00 1.9500000000000001e-01 3361 2.0000000000000000e+01 3.6499999999999999e-01 3361 6.0000000000000000e+01 9.7399999999999998e-01 3361 2.0000000000000000e+02 9.8999999999999999e-01 3361 6.0000000000000000e+02 9.9900000000000000e-01 3361 2.0000000000000000e+03 1.0000000000000000e+00 3370 3371 3380 2.0000000000000000e+00 1.2300000000000000e-01 3380 6.0000000000000000e+01 9.4499999999999995e-01 3380 2.0000000000000000e+02 1.0000000000000000e+00 3381 2.0000000000000000e+00 1.3900000000000001e-01 3381 6.0000000000000000e+01 8.4899999999999998e-01 3381 2.0000000000000000e+02 1.0000000000000000e+00 3390 2.0000000000000000e+00 1.4599999999999999e-01 3390 6.0000000000000000e+01 9.4499999999999995e-01 3390 2.0000000000000000e+02 1.0000000000000000e+00 3391 2.0000000000000000e+00 1.7299999999999999e-01 3391 6.0000000000000000e+01 9.4099999999999995e-01 3391 2.0000000000000000e+02 1.0000000000000000e+00 3392 2.0000000000000000e+00 2.3599999999999999e-01 3392 6.0000000000000000e+01 9.5799999999999996e-01 3392 2.0000000000000000e+02 1.0000000000000000e+00 3393 2.0000000000000000e+00 2.6000000000000001e-01 3393 6.0000000000000000e+01 9.5799999999999996e-01 3393 2.0000000000000000e+02 1.0000000000000000e+00 3395 2.0000000000000000e+00 1.8099999999999999e-01 3395 6.0000000000000000e+01 9.7199999999999998e-01 3395 2.0000000000000000e+02 1.0000000000000000e+00 4000 2.0000000000000000e+00 1.4999999999999999e-02 4000 1.0000000000000000e+01 2.8000000000000001e-02 4000 2.0000000000000000e+01 2.9999999999999999e-02 4000 5.0000000000000000e+01 7.8000000000000000e-02 4000 1.0000000000000000e+02 1.2800000000000000e-01 4000 2.0000000000000000e+02 7.3399999999999999e-01 4000 5.0000000000000000e+02 9.9099999999999999e-01 4000 1.0000000000000000e+03 9.9900000000000000e-01 4000 2.0000000000000000e+03 1.0000000000000000e+00 4001 2.0000000000000000e+00 1.2999999999999999e-02 4001 1.0000000000000000e+01 1.2999999999999999e-02 4001 2.0000000000000000e+01 1.4999999999999999e-02 4001 5.0000000000000000e+01 4.1000000000000002e-02 4001 1.0000000000000000e+02 1.2500000000000000e-01 4001 2.0000000000000000e+02 7.5900000000000001e-01 4001 5.0000000000000000e+02 9.9399999999999999e-01 4001 1.0000000000000000e+03 9.9900000000000000e-01 4001 2.0000000000000000e+03 1.0000000000000000e+00 4010 2.0000000000000000e+00 5.9999999999999998e-02 4010 1.0000000000000000e+01 8.3000000000000004e-02 4010 2.0000000000000000e+01 9.8000000000000004e-02 4010 5.0000000000000000e+01 2.4500000000000000e-01 4010 1.0000000000000000e+02 4.8799999999999999e-01 4010 2.0000000000000000e+02 8.7300000000000000e-01 4010 5.0000000000000000e+02 9.9600000000000000e-01 4010 1.0000000000000000e+03 9.9900000000000000e-01 4010 2.0000000000000000e+03 1.0000000000000000e+00 4011 2.0000000000000000e+00 6.5000000000000002e-02 4011 1.0000000000000000e+01 8.0000000000000002e-02 4011 2.0000000000000000e+01 1.0500000000000000e-01 4011 5.0000000000000000e+01 2.3799999999999999e-01 4011 1.0000000000000000e+02 4.2399999999999999e-01 4011 2.0000000000000000e+02 8.8500000000000001e-01 4011 5.0000000000000000e+02 9.9700000000000000e-01 4011 1.0000000000000000e+03 9.9900000000000000e-01 4011 2.0000000000000000e+03 1.0000000000000000e+00 4020 2.0000000000000000e+00 3.5000000000000003e-02 4020 1.0000000000000000e+01 4.4999999999999998e-02 4020 2.0000000000000000e+01 4.4999999999999998e-02 4020 5.0000000000000000e+01 1.4799999999999999e-01 4020 1.0000000000000000e+02 3.6599999999999999e-01 4020 2.0000000000000000e+02 8.1200000000000006e-01 4020 5.0000000000000000e+02 9.9099999999999999e-01 4020 1.0000000000000000e+03 9.9700000000000000e-01 4020 2.0000000000000000e+03 1.0000000000000000e+00 4021 2.0000000000000000e+00 2.5000000000000001e-02 4021 1.0000000000000000e+01 4.0000000000000001e-02 4021 2.0000000000000000e+01 4.0000000000000001e-02 4021 5.0000000000000000e+01 1.2600000000000000e-01 4021 1.0000000000000000e+02 3.4599999999999997e-01 4021 2.0000000000000000e+02 8.1899999999999995e-01 4021 5.0000000000000000e+02 9.9299999999999999e-01 4021 1.0000000000000000e+03 9.9900000000000000e-01 4021 2.0000000000000000e+03 1.0000000000000000e+00 4030 2.0000000000000000e+00 1.2500000000000000e-01 4030 1.0000000000000000e+01 2.0999999999999999e-01 4030 2.0000000000000000e+01 3.5999999999999999e-01 4030 5.0000000000000000e+01 8.1000000000000005e-01 4030 1.0000000000000000e+02 9.2200000000000004e-01 4030 2.0000000000000000e+02 9.5899999999999996e-01 4030 5.0000000000000000e+02 9.8899999999999999e-01 4030 1.0000000000000000e+03 9.9500000000000000e-01 4030 2.0000000000000000e+03 1.0000000000000000e+00 4031 2.0000000000000000e+00 1.1300000000000000e-01 4031 1.0000000000000000e+01 2.0999999999999999e-01 4031 2.0000000000000000e+01 3.5499999999999998e-01 4031 5.0000000000000000e+01 3.1700000000000000e-01 4031 1.0000000000000000e+02 9.2100000000000004e-01 4031 2.0000000000000000e+02 9.5299999999999996e-01 4031 5.0000000000000000e+02 9.9199999999999999e-01 4031 1.0000000000000000e+03 9.9700000000000000e-01 4031 2.0000000000000000e+03 1.0000000000000000e+00 4032 2.0000000000000000e+00 1.3000000000000000e-01 4032 1.0000000000000000e+01 2.3999999999999999e-01 4032 2.0000000000000000e+01 4.0000000000000002e-01 4032 5.0000000000000000e+01 8.1799999999999995e-01 4032 1.0000000000000000e+02 9.4699999999999995e-01 4032 2.0000000000000000e+02 9.6699999999999997e-01 4032 5.0000000000000000e+02 9.8399999999999999e-01 4032 1.0000000000000000e+03 9.9900000000000000e-01 4032 2.0000000000000000e+03 1.0000000000000000e+00 4033 2.0000000000000000e+00 2.3999999999999999e-01 4033 1.0000000000000000e+01 3.4499999999999997e-01 4033 2.0000000000000000e+01 5.0000000000000000e-01 4033 5.0000000000000000e+01 9.2000000000000004e-01 4033 1.0000000000000000e+02 9.6899999999999997e-01 4033 2.0000000000000000e+02 9.7799999999999998e-01 4033 5.0000000000000000e+02 9.8599999999999999e-01 4033 1.0000000000000000e+03 9.9700000000000000e-01 4033 2.0000000000000000e+03 1.0000000000000000e+00 4040 2.0000000000000000e+00 1.0000000000000001e-01 4040 1.0000000000000000e+01 1.7499999999999999e-01 4040 2.0000000000000000e+01 3.1000000000000000e-01 4040 5.0000000000000000e+01 7.5000000000000000e-01 4040 1.0000000000000000e+02 8.8700000000000001e-01 4040 2.0000000000000000e+02 9.7999999999999998e-01 4040 5.0000000000000000e+02 9.9700000000000000e-01 4040 1.0000000000000000e+03 9.8999999999999999e-01 4040 2.0000000000000000e+03 1.0000000000000000e+00 4041 2.0000000000000000e+00 1.1500000000000000e-01 4041 1.0000000000000000e+01 1.8300000000000000e-01 4041 2.0000000000000000e+01 3.1800000000000000e-01 4041 5.0000000000000000e+01 7.6200000000000001e-01 4041 1.0000000000000000e+02 9.0100000000000002e-01 4041 2.0000000000000000e+02 9.8499999999999999e-01 4041 5.0000000000000000e+02 9.9800000000000000e-01 4041 1.0000000000000000e+03 9.9900000000000000e-01 4041 2.0000000000000000e+03 1.0000000000000000e+00 4042 2.0000000000000000e+00 1.1500000000000000e-01 4042 1.0000000000000000e+01 2.1500000000000000e-01 4042 2.0000000000000000e+01 3.5799999999999998e-01 4042 5.0000000000000000e+01 7.7500000000000002e-01 4042 1.0000000000000000e+02 9.3500000000000005e-01 4042 2.0000000000000000e+02 9.8599999999999999e-01 4042 5.0000000000000000e+02 9.9600000000000000e-01 4042 1.0000000000000000e+03 9.9900000000000000e-01 4042 2.0000000000000000e+03 1.0000000000000000e+00 4043 2.0000000000000000e+00 1.7000000000000001e-01 4043 1.0000000000000000e+01 2.3999999999999999e-01 4043 2.0000000000000000e+01 3.7000000000000000e-01 4043 5.0000000000000000e+01 7.5600000000000001e-01 4043 1.0000000000000000e+02 9.6699999999999997e-01 4043 2.0000000000000000e+02 9.9299999999999999e-01 4043 5.0000000000000000e+02 9.9800000000000000e-01 4043 1.0000000000000000e+03 1.0000000000000000e+00 4043 2.0000000000000000e+03 1.0000000000000000e+00 4050 2.0000000000000000e+00 2.5000000000000001e-02 4050 1.0000000000000000e+01 4.4999999999999998e-02 4050 2.0000000000000000e+01 5.9999999999999998e-02 4050 5.0000000000000000e+01 1.6100000000000000e-01 4050 1.0000000000000000e+02 3.4300000000000003e-01 4050 2.0000000000000000e+02 7.6700000000000002e-01 4050 5.0000000000000000e+02 9.8899999999999999e-01 4050 1.0000000000000000e+03 9.9700000000000000e-01 4050 2.0000000000000000e+03 1.0000000000000000e+00 4051 2.0000000000000000e+00 2.8000000000000001e-02 4051 1.0000000000000000e+01 3.3000000000000002e-02 4051 2.0000000000000000e+01 3.5000000000000003e-02 4051 5.0000000000000000e+01 9.1999999999999998e-02 4051 1.0000000000000000e+02 2.5800000000000001e-01 4051 2.0000000000000000e+02 7.4199999999999999e-01 4051 5.0000000000000000e+02 9.9299999999999999e-01 4051 1.0000000000000000e+03 9.9900000000000000e-01 4051 2.0000000000000000e+03 1.0009999999999999e+00 4052 2.0000000000000000e+00 2.0000000000000000e-02 4052 1.0000000000000000e+01 2.5000000000000001e-02 4052 2.0000000000000000e+01 2.3000000000000000e-02 4052 5.0000000000000000e+01 1.0500000000000000e-01 4052 1.0000000000000000e+02 3.2000000000000001e-01 4052 2.0000000000000000e+02 7.7900000000000003e-01 4052 5.0000000000000000e+02 9.8799999999999999e-01 4052 1.0000000000000000e+03 9.9900000000000000e-01 4052 2.0000000000000000e+03 1.0000000000000000e+00 4060 2.0000000000000000e+00 3.3000000000000002e-02 4060 1.0000000000000000e+01 3.5000000000000003e-02 4060 2.0000000000000000e+01 4.0000000000000001e-02 4060 5.0000000000000000e+01 1.2100000000000000e-01 4060 1.0000000000000000e+02 2.9299999999999998e-01 4060 2.0000000000000000e+02 7.4900000000000000e-01 4060 5.0000000000000000e+02 9.9199999999999999e-01 4060 1.0000000000000000e+03 9.9900000000000000e-01 4060 2.0000000000000000e+03 1.0000000000000000e+00 4061 2.0000000000000000e+00 3.5000000000000003e-02 4061 1.0000000000000000e+01 3.5000000000000003e-02 4061 2.0000000000000000e+01 3.5000000000000003e-02 4061 5.0000000000000000e+01 4.4999999999999998e-02 4061 1.0000000000000000e+02 2.5500000000000000e-01 4061 2.0000000000000000e+02 8.1999999999999995e-01 4061 5.0000000000000000e+02 9.9700000000000000e-01 4061 1.0000000000000000e+03 1.0000000000000000e+00 4061 2.0000000000000000e+03 1.0000000000000000e+00 4062 2.0000000000000000e+00 5.5000000000000000e-02 4062 1.0000000000000000e+01 6.5000000000000002e-02 4062 2.0000000000000000e+01 8.0000000000000002e-02 4062 5.0000000000000000e+01 1.4499999999999999e-01 4062 1.0000000000000000e+02 4.7599999999999998e-01 4062 2.0000000000000000e+02 8.9400000000000002e-01 4062 5.0000000000000000e+02 9.9800000000000000e-01 4062 1.0000000000000000e+03 1.0000000000000000e+00 4062 2.0000000000000000e+03 1.0000000000000000e+00 4070 2.0000000000000000e+00 1.0500000000000000e-01 4070 1.0000000000000000e+01 1.6000000000000000e-01 4070 2.0000000000000000e+01 2.6000000000000001e-01 4070 5.0000000000000000e+01 6.5200000000000002e-01 4070 1.0000000000000000e+02 8.9200000000000002e-01 4070 2.0000000000000000e+02 9.7099999999999997e-01 4070 5.0000000000000000e+02 9.9500000000000000e-01 4070 1.0000000000000000e+03 9.9900000000000000e-01 4070 2.0000000000000000e+03 1.0000000000000000e+00 4071 2.0000000000000000e+00 9.8000000000000004e-02 4071 1.0000000000000000e+01 2.2500000000000001e-01 4071 2.0000000000000000e+01 3.4799999999999998e-01 4071 5.0000000000000000e+01 7.2499999999999998e-01 4071 1.0000000000000000e+02 9.4699999999999995e-01 4071 2.0000000000000000e+02 9.8799999999999999e-01 4071 5.0000000000000000e+02 9.9800000000000000e-01 4071 1.0000000000000000e+03 9.9900000000000000e-01 4071 2.0000000000000000e+03 1.0000000000000000e+00 4080 2.0000000000000000e+00 1.4999999999999999e-01 4080 1.0000000000000000e+01 2.5300000000000000e-01 4080 2.0000000000000000e+01 4.1299999999999998e-01 4080 5.0000000000000000e+01 8.6599999999999999e-01 4080 1.0000000000000000e+02 9.5899999999999996e-01 4080 2.0000000000000000e+02 9.6899999999999997e-01 4080 5.0000000000000000e+02 9.8599999999999999e-01 4080 1.0000000000000000e+03 9.9600000000000000e-01 4080 2.0000000000000000e+03 1.0000000000000000e+00 4081 2.0000000000000000e+00 1.7000000000000001e-01 4081 1.0000000000000000e+01 2.7000000000000002e-01 4081 2.0000000000000000e+01 4.2499999999999999e-01 4081 5.0000000000000000e+01 9.1700000000000004e-01 4081 1.0000000000000000e+02 9.8999999999999999e-01 4081 2.0000000000000000e+02 9.9399999999999999e-01 4081 5.0000000000000000e+02 9.9700000000000000e-01 4081 1.0000000000000000e+03 9.9900000000000000e-01 4081 2.0000000000000000e+03 1.0000000000000000e+00 4082 2.0000000000000000e+00 1.5500000000000000e-01 4082 1.0000000000000000e+01 2.7800000000000002e-01 4082 2.0000000000000000e+01 4.1999999999999998e-01 4082 5.0000000000000000e+01 9.2300000000000004e-01 4082 1.0000000000000000e+02 9.8799999999999999e-01 4082 2.0000000000000000e+02 9.9299999999999999e-01 4082 5.0000000000000000e+02 9.9700000000000000e-01 4082 1.0000000000000000e+03 9.9800000000000000e-01 4082 2.0000000000000000e+03 1.0000000000000000e+00 4090 2.0000000000000000e+00 1.1300000000000000e-01 4090 1.0000000000000000e+01 2.1299999999999999e-01 4090 2.0000000000000000e+01 3.7000000000000000e-01 4090 5.0000000000000000e+01 8.8000000000000000e-01 4090 1.0000000000000000e+02 9.8799999999999999e-01 4090 2.0000000000000000e+02 9.9299999999999999e-01 4090 5.0000000000000000e+02 9.9700000000000000e-01 4090 1.0000000000000000e+03 9.8999999999999999e-01 4090 2.0000000000000000e+03 1.0000000000000000e+00 4091 2.0000000000000000e+00 1.3300000000000001e-01 4091 1.0000000000000000e+01 2.6000000000000001e-01 4091 2.0000000000000000e+01 4.1999999999999998e-01 4091 5.0000000000000000e+01 9.1000000000000003e-01 4091 1.0000000000000000e+02 9.9299999999999999e-01 4091 2.0000000000000000e+02 9.9600000000000000e-01 4091 5.0000000000000000e+02 9.9800000000000000e-01 4091 1.0000000000000000e+03 9.9900000000000000e-01 4091 2.0000000000000000e+03 1.0000000000000000e+00 4092 2.0000000000000000e+00 1.6300000000000001e-01 4092 1.0000000000000000e+01 2.7000000000000002e-01 4092 2.0000000000000000e+01 4.3500000000000000e-01 4092 5.0000000000000000e+01 9.0300000000000002e-01 4092 1.0000000000000000e+02 9.8799999999999999e-01 4092 2.0000000000000000e+02 9.9500000000000000e-01 4092 5.0000000000000000e+02 9.9800000000000000e-01 4092 1.0000000000000000e+03 9.9900000000000000e-01 4092 2.0000000000000000e+03 1.0000000000000000e+00 4100 2.0000000000000000e+00 1.1000000000000000e-01 4100 1.0000000000000000e+01 2.1500000000000000e-01 4100 2.0000000000000000e+01 2.5500000000000000e-01 4100 5.0000000000000000e+01 4.6899999999999997e-01 4100 1.0000000000000000e+02 8.2999999999999996e-01 4100 2.0000000000000000e+02 9.7699999999999998e-01 4100 5.0000000000000000e+02 9.9800000000000000e-01 4100 1.0000000000000000e+03 9.9900000000000000e-01 4100 2.0000000000000000e+03 1.0000000000000000e+00 4101 2.0000000000000000e+00 1.6300000000000001e-01 4101 1.0000000000000000e+01 2.6300000000000001e-01 4101 2.0000000000000000e+01 3.1500000000000000e-01 4101 5.0000000000000000e+01 5.8399999999999996e-01 4101 1.0000000000000000e+02 9.4499999999999995e-01 4101 2.0000000000000000e+02 9.9099999999999999e-01 4101 5.0000000000000000e+02 9.8999999999999999e-01 4101 1.0000000000000000e+03 9.8999999999999999e-01 4101 2.0000000000000000e+03 1.0000000000000000e+00 4102 2.0000000000000000e+00 1.8300000000000000e-01 4102 1.0000000000000000e+01 2.7800000000000002e-01 4102 2.0000000000000000e+01 3.3300000000000002e-01 4102 5.0000000000000000e+01 5.9999999999999998e-01 4102 1.0000000000000000e+02 9.5699999999999996e-01 4102 2.0000000000000000e+02 9.9700000000000000e-01 4102 5.0000000000000000e+02 1.0000000000000000e+00 4102 1.0000000000000000e+03 1.0000000000000000e+00 4102 2.0000000000000000e+03 1.0000000000000000e+00 4110 2.0000000000000000e+00 1.1000000000000000e-01 4110 1.0000000000000000e+01 1.8300000000000000e-01 4110 2.0000000000000000e+01 2.3799999999999999e-01 4110 5.0000000000000000e+01 4.5400000000000001e-01 4110 1.0000000000000000e+02 8.5299999999999998e-01 4110 2.0000000000000000e+02 9.8299999999999998e-01 4110 5.0000000000000000e+02 9.9900000000000000e-01 4110 1.0000000000000000e+03 1.0000000000000000e+00 4110 2.0000000000000000e+03 1.0000000000000000e+00 4111 2.0000000000000000e+00 1.2000000000000000e-01 4111 1.0000000000000000e+01 2.2500000000000001e-01 4111 2.0000000000000000e+01 2.6000000000000001e-01 4111 5.0000000000000000e+01 4.7999999999999998e-01 4111 1.0000000000000000e+02 8.4999999999999998e-01 4111 2.0000000000000000e+02 9.7899999999999998e-01 4111 5.0000000000000000e+02 9.9800000000000000e-01 4111 1.0000000000000000e+03 1.0000000000000000e+00 4111 2.0000000000000000e+03 1.0000000000000000e+00 4112 2.0000000000000000e+00 1.5800000000000000e-01 4112 1.0000000000000000e+01 2.1299999999999999e-01 4112 2.0000000000000000e+01 2.4299999999999999e-01 4112 5.0000000000000000e+01 4.4600000000000001e-01 4112 1.0000000000000000e+02 9.4499999999999995e-01 4112 2.0000000000000000e+02 9.9800000000000000e-01 4112 5.0000000000000000e+02 1.0000000000000000e+00 4112 1.0000000000000000e+03 1.0000000000000000e+00 4112 2.0000000000000000e+03 1.0000000000000000e+00 4120 2.0000000000000000e+00 5.0800000000000001e-01 4120 1.0000000000000000e+01 6.6900000000000004e-01 4120 2.0000000000000000e+01 7.8800000000000003e-01 4120 5.0000000000000000e+01 8.5799999999999998e-01 4120 1.0000000000000000e+02 9.5999999999999996e-01 4120 2.0000000000000000e+02 9.9099999999999999e-01 4120 5.0000000000000000e+02 9.9500000000000000e-01 4120 1.0000000000000000e+03 9.9800000000000000e-01 4120 2.0000000000000000e+03 1.0000000000000000e+00 4121 2.0000000000000000e+00 5.3200000000000003e-01 4121 1.0000000000000000e+01 7.5600000000000001e-01 4121 2.0000000000000000e+01 8.7600000000000000e-01 4121 5.0000000000000000e+01 9.1400000000000003e-01 4121 1.0000000000000000e+02 9.4799999999999995e-01 4121 2.0000000000000000e+02 9.6699999999999997e-01 4121 5.0000000000000000e+02 9.7799999999999998e-01 4121 1.0000000000000000e+03 9.8599999999999999e-01 4121 2.0000000000000000e+03 1.0000000000000000e+00 4130 2.0000000000000000e+00 5.3999999999999999e-02 4130 1.0000000000000000e+01 7.2999999999999995e-02 4130 2.0000000000000000e+01 9.4000000000000000e-02 4130 5.0000000000000000e+01 1.8200000000000000e-01 4130 1.0000000000000000e+02 3.0099999999999999e-01 4130 2.0000000000000000e+02 6.2200000000000000e-01 4130 5.0000000000000000e+02 9.6799999999999997e-01 4130 1.0000000000000000e+03 9.8899999999999999e-01 4130 2.0000000000000000e+03 1.0000000000000000e+00 4131 2.0000000000000000e+00 4.2999999999999997e-02 4131 1.0000000000000000e+01 4.3999999999999997e-02 4131 2.0000000000000000e+01 4.8000000000000001e-02 4131 5.0000000000000000e+01 6.0999999999999999e-02 4131 1.0000000000000000e+02 2.1900000000000000e-01 4131 2.0000000000000000e+02 6.7200000000000004e-01 4131 5.0000000000000000e+02 9.7599999999999998e-01 4131 1.0000000000000000e+03 9.9500000000000000e-01 4131 2.0000000000000000e+03 1.0000000000000000e+00 4132 2.0000000000000000e+00 6.8000000000000005e-02 4132 1.0000000000000000e+01 7.0999999999999994e-02 4132 2.0000000000000000e+01 7.5999999999999998e-02 4132 5.0000000000000000e+01 1.0600000000000000e-01 4132 1.0000000000000000e+02 4.8299999999999998e-01 4132 2.0000000000000000e+02 8.6199999999999999e-01 4132 5.0000000000000000e+02 9.7099999999999997e-01 4132 1.0000000000000000e+03 9.9500000000000000e-01 4132 2.0000000000000000e+03 1.0000000000000000e+00 4140 2.0000000000000000e+00 3.5000000000000003e-02 4140 1.0000000000000000e+01 4.8000000000000001e-02 4140 2.0000000000000000e+01 5.9999999999999998e-02 4140 5.0000000000000000e+01 1.2400000000000000e-01 4140 1.0000000000000000e+02 2.4199999999999999e-01 4140 2.0000000000000000e+02 6.9999999999999996e-01 4140 5.0000000000000000e+02 9.8299999999999998e-01 4140 1.0000000000000000e+03 9.9800000000000000e-01 4140 2.0000000000000000e+03 1.0000000000000000e+00 4141 2.0000000000000000e+00 3.3000000000000002e-02 4141 1.0000000000000000e+01 4.2999999999999997e-02 4141 2.0000000000000000e+01 5.5000000000000000e-02 4141 5.0000000000000000e+01 8.2000000000000003e-02 4141 1.0000000000000000e+02 2.0499999999999999e-01 4141 2.0000000000000000e+02 7.2499999999999998e-01 4141 5.0000000000000000e+02 9.8499999999999999e-01 4141 1.0000000000000000e+03 9.9700000000000000e-01 4141 2.0000000000000000e+03 1.0000000000000000e+00 4142 2.0000000000000000e+00 1.7999999999999999e-02 4142 1.0000000000000000e+01 2.1999999999999999e-02 4142 2.0000000000000000e+01 3.3000000000000002e-02 4142 5.0000000000000000e+01 4.2000000000000003e-02 4142 1.0000000000000000e+02 1.9200000000000000e-01 4142 2.0000000000000000e+02 7.0899999999999996e-01 4142 5.0000000000000000e+02 9.5499999999999996e-01 4142 1.0000000000000000e+03 9.8999999999999999e-01 4142 2.0000000000000000e+03 1.0000000000000000e+00 4150 2.0000000000000000e+00 3.5000000000000003e-02 4150 1.0000000000000000e+01 4.8000000000000001e-02 4150 2.0000000000000000e+01 5.5000000000000000e-02 4150 5.0000000000000000e+01 1.2300000000000000e-01 4150 1.0000000000000000e+02 2.0200000000000001e-01 4150 2.0000000000000000e+02 4.8899999999999999e-01 4150 5.0000000000000000e+02 9.4799999999999995e-01 4150 1.0000000000000000e+03 9.8999999999999999e-01 4150 2.0000000000000000e+03 1.0000000000000000e+00 4151 2.0000000000000000e+00 3.5000000000000003e-02 4151 1.0000000000000000e+01 4.0000000000000001e-02 4151 2.0000000000000000e+01 4.8000000000000001e-02 4151 5.0000000000000000e+01 7.0000000000000007e-02 4151 1.0000000000000000e+02 1.9300000000000000e-01 4151 2.0000000000000000e+02 5.9199999999999997e-01 4151 5.0000000000000000e+02 9.2000000000000004e-01 4151 1.0000000000000000e+03 9.6999999999999997e-01 4151 2.0000000000000000e+03 1.0000000000000000e+00 4152 2.0000000000000000e+00 3.5000000000000003e-02 4152 1.0000000000000000e+01 3.5000000000000003e-02 4152 2.0000000000000000e+01 4.0000000000000001e-02 4152 5.0000000000000000e+01 6.3000000000000000e-02 4152 1.0000000000000000e+02 2.7700000000000002e-01 4152 2.0000000000000000e+02 7.3999999999999999e-01 4152 5.0000000000000000e+02 9.5399999999999996e-01 4152 1.0000000000000000e+03 9.8299999999999998e-01 4152 2.0000000000000000e+03 1.0000000000000000e+00 4160 2.0000000000000000e+00 1.1200000000000000e-01 4160 1.0000000000000000e+01 1.4899999999999999e-01 4160 2.0000000000000000e+01 1.9700000000000001e-01 4160 5.0000000000000000e+01 3.3700000000000002e-01 4160 1.0000000000000000e+02 5.6200000000000006e-01 4160 2.0000000000000000e+02 8.6899999999999999e-01 4160 5.0000000000000000e+02 9.8499999999999999e-01 4160 1.0000000000000000e+03 9.9399999999999999e-01 4160 2.0000000000000000e+03 1.0000000000000000e+00 4161 2.0000000000000000e+00 1.1700000000000001e-01 4161 1.0000000000000000e+01 1.4899999999999999e-01 4161 2.0000000000000000e+01 2.0000000000000001e-01 4161 5.0000000000000000e+01 3.5199999999999998e-01 4161 1.0000000000000000e+02 5.4700000000000004e-01 4161 2.0000000000000000e+02 8.7200000000000000e-01 4161 5.0000000000000000e+02 9.8599999999999999e-01 4161 1.0000000000000000e+03 9.9800000000000000e-01 4161 2.0000000000000000e+03 1.0000000000000000e+00 4162 2.0000000000000000e+00 1.9400000000000001e-01 4162 1.0000000000000000e+01 2.3400000000000001e-01 4162 2.0000000000000000e+01 2.7200000000000002e-01 4162 5.0000000000000000e+01 3.5099999999999998e-01 4162 1.0000000000000000e+02 5.2200000000000002e-01 4162 2.0000000000000000e+02 9.1200000000000003e-01 4162 5.0000000000000000e+02 9.9299999999999999e-01 4162 1.0000000000000000e+03 9.9700000000000000e-01 4162 2.0000000000000000e+03 1.0000000000000000e+00 4170 2.0000000000000000e+00 1.1000000000000000e-01 4170 1.0000000000000000e+01 1.4199999999999999e-01 4170 2.0000000000000000e+01 1.9200000000000000e-01 4170 5.0000000000000000e+01 3.2300000000000001e-01 4170 1.0000000000000000e+02 5.5200000000000005e-01 4170 2.0000000000000000e+02 8.7000000000000000e-01 4170 5.0000000000000000e+02 9.8799999999999999e-01 4170 1.0000000000000000e+03 9.9700000000000000e-01 4170 2.0000000000000000e+03 1.0000000000000000e+00 4171 2.0000000000000000e+00 1.1700000000000001e-01 4171 1.0000000000000000e+01 1.5800000000000000e-01 4171 2.0000000000000000e+01 2.0799999999999999e-01 4171 5.0000000000000000e+01 3.4899999999999998e-01 4171 1.0000000000000000e+02 5.6999999999999995e-01 4171 2.0000000000000000e+02 8.7300000000000000e-01 4171 5.0000000000000000e+02 9.8399999999999999e-01 4171 1.0000000000000000e+03 9.9700000000000000e-01 4171 2.0000000000000000e+03 1.0000000000000000e+00 4172 2.0000000000000000e+00 1.9400000000000001e-01 4172 1.0000000000000000e+01 2.3499999999999999e-01 4172 2.0000000000000000e+01 2.7200000000000002e-01 4172 5.0000000000000000e+01 3.5099999999999998e-01 4172 1.0000000000000000e+02 5.2200000000000002e-01 4172 2.0000000000000000e+02 9.1200000000000003e-01 4172 5.0000000000000000e+02 9.9299999999999999e-01 4172 1.0000000000000000e+03 9.9700000000000000e-01 4172 2.0000000000000000e+03 1.0000000000000000e+00 4180 2.0000000000000000e+00 1.1200000000000000e-01 4180 1.0000000000000000e+01 1.7299999999999999e-01 4180 2.0000000000000000e+01 2.8399999999999997e-01 4180 5.0000000000000000e+01 6.7900000000000005e-01 4180 1.0000000000000000e+02 8.6899999999999999e-01 4180 2.0000000000000000e+02 9.3300000000000005e-01 4180 5.0000000000000000e+02 9.8899999999999999e-01 4180 1.0000000000000000e+03 9.9800000000000000e-01 4180 2.0000000000000000e+03 1.0000000000000000e+00 4181 2.0000000000000000e+00 1.3900000000000001e-01 4181 1.0000000000000000e+01 2.0200000000000001e-01 4181 2.0000000000000000e+01 3.1100000000000000e-01 4181 5.0000000000000000e+01 7.2199999999999998e-01 4181 1.0000000000000000e+02 9.0800000000000003e-01 4181 2.0000000000000000e+02 9.5699999999999996e-01 4181 5.0000000000000000e+02 9.9500000000000000e-01 4181 1.0000000000000000e+03 9.9900000000000000e-01 4181 2.0000000000000000e+03 1.0000000000000000e+00 4182 2.0000000000000000e+00 1.3600000000000001e-01 4182 1.0000000000000000e+01 2.0399999999999999e-01 4182 2.0000000000000000e+01 3.2400000000000001e-01 4182 5.0000000000000000e+01 7.3499999999999999e-01 4182 1.0000000000000000e+02 9.2700000000000005e-01 4182 2.0000000000000000e+02 9.5999999999999996e-01 4182 5.0000000000000000e+02 9.8899999999999999e-01 4182 1.0000000000000000e+03 9.9800000000000000e-01 4182 2.0000000000000000e+03 1.0000000000000000e+00 4183 2.0000000000000000e+00 2.1199999999999999e-01 4183 1.0000000000000000e+01 2.5700000000000001e-01 4183 2.0000000000000000e+01 3.5699999999999998e-01 4183 5.0000000000000000e+01 7.1199999999999997e-01 4183 1.0000000000000000e+02 9.3300000000000005e-01 4183 2.0000000000000000e+02 9.7499999999999998e-01 4183 5.0000000000000000e+02 9.9900000000000000e-01 4183 1.0000000000000000e+03 1.0000000000000000e+00 4183 2.0000000000000000e+03 1.0000000000000000e+00 4190 2.0000000000000000e+00 4.2999999999999999e-01 4190 5.0000000000000000e+01 7.6000000000000001e-01 4190 2.5000000000000000e+02 1.0000000000000000e+00 4191 2.0000000000000000e+00 4.2999999999999999e-01 4191 5.0000000000000000e+01 7.6000000000000001e-01 4191 2.5000000000000000e+02 1.0000000000000000e+00 4192 2.0000000000000000e+00 4.2999999999999999e-01 4192 5.0000000000000000e+01 7.6000000000000001e-01 4192 2.5000000000000000e+02 1.0000000000000000e+00 4193 2.0000000000000000e+00 4.2999999999999999e-01 4193 5.0000000000000000e+01 7.6000000000000001e-01 4193 2.5000000000000000e+02 1.0000000000000000e+00 4194 2.0000000000000000e+00 4.2999999999999999e-01 4194 5.0000000000000000e+01 7.6000000000000001e-01 4194 2.5000000000000000e+02 1.0000000000000000e+00 4195 2.0000000000000000e+00 4.2999999999999999e-01 4195 5.0000000000000000e+01 7.6000000000000001e-01 4195 2.5000000000000000e+02 1.0000000000000000e+00 4200 2.0000000000000000e+00 4.2999999999999999e-01 4200 5.0000000000000000e+01 7.6000000000000001e-01 4200 2.5000000000000000e+02 1.0000000000000000e+00 4201 2.0000000000000000e+00 4.2999999999999999e-01 4201 5.0000000000000000e+01 7.6000000000000001e-01 4201 2.5000000000000000e+02 1.0000000000000000e+00 4202 2.0000000000000000e+00 4.2999999999999999e-01 4202 5.0000000000000000e+01 7.6000000000000001e-01 4202 2.5000000000000000e+02 1.0000000000000000e+00 4203 2.0000000000000000e+00 4.2999999999999999e-01 4203 5.0000000000000000e+01 7.6000000000000001e-01 4203 2.5000000000000000e+02 1.0000000000000000e+00 4204 2.0000000000000000e+00 4.2999999999999999e-01 4204 5.0000000000000000e+01 7.6000000000000001e-01 4204 2.5000000000000000e+02 1.0000000000000000e+00 4210 2.0000000000000000e+00 4.2999999999999999e-01 4210 5.0000000000000000e+01 7.6000000000000001e-01 4210 2.5000000000000000e+02 1.0000000000000000e+00 4211 2.0000000000000000e+00 4.2999999999999999e-01 4211 5.0000000000000000e+01 7.6000000000000001e-01 4211 2.5000000000000000e+02 1.0000000000000000e+00 4212 2.0000000000000000e+00 4.2999999999999999e-01 4212 5.0000000000000000e+01 7.6000000000000001e-01 4212 2.5000000000000000e+02 1.0000000000000000e+00 4213 2.0000000000000000e+00 4.2999999999999999e-01 4213 5.0000000000000000e+01 7.6000000000000001e-01 4213 2.5000000000000000e+02 1.0000000000000000e+00 4220 2.0000000000000000e+00 1.7999999999999999e-01 4220 5.0000000000000000e+01 3.4000000000000002e-01 4220 2.5000000000000000e+02 1.0000000000000000e+00 4221 2.0000000000000000e+00 1.7999999999999999e-01 4221 5.0000000000000000e+01 3.4000000000000002e-01 4221 2.5000000000000000e+02 1.0000000000000000e+00 4222 2.0000000000000000e+00 1.7999999999999999e-01 4222 5.0000000000000000e+01 3.4000000000000002e-01 4222 2.5000000000000000e+02 1.0000000000000000e+00 4223 2.0000000000000000e+00 1.7999999999999999e-01 4223 5.0000000000000000e+01 3.4000000000000002e-01 4223 2.5000000000000000e+02 1.0000000000000000e+00 4224 2.0000000000000000e+00 1.7999999999999999e-01 4224 5.0000000000000000e+01 3.4000000000000002e-01 4224 2.5000000000000000e+02 1.0000000000000000e+00 4230 2.0000000000000000e+00 1.7999999999999999e-01 4230 5.0000000000000000e+01 3.4000000000000002e-01 4230 2.5000000000000000e+02 1.0000000000000000e+00 4231 2.0000000000000000e+00 1.7999999999999999e-01 4231 5.0000000000000000e+01 3.4000000000000002e-01 4231 2.5000000000000000e+02 1.0000000000000000e+00 4232 2.0000000000000000e+00 1.7999999999999999e-01 4232 5.0000000000000000e+01 3.4000000000000002e-01 4232 2.5000000000000000e+02 1.0000000000000000e+00 4233 2.0000000000000000e+00 1.7999999999999999e-01 4233 5.0000000000000000e+01 3.4000000000000002e-01 4233 2.5000000000000000e+02 1.0000000000000000e+00 4234 2.0000000000000000e+00 1.7999999999999999e-01 4234 5.0000000000000000e+01 3.4000000000000002e-01 4234 2.5000000000000000e+02 1.0000000000000000e+00 4241 2.0000000000000000e+00 2.8000000000000001e-02 4241 1.6000000000000000e+01 3.9000000000000000e-02 4241 5.0000000000000000e+01 7.4999999999999997e-02 4241 7.5000000000000000e+01 1.1100000000000000e-01 4241 1.0500000000000000e+02 2.2600000000000001e-01 4241 1.5000000000000000e+02 4.4600000000000001e-01 4241 2.1000000000000000e+02 6.9899999999999995e-01 4241 2.0000000000000000e+03 1.0000000000000000e+00 4242 2.0000000000000000e+00 2.4000000000000000e-02 4242 1.6000000000000000e+01 2.9999999999999999e-02 4242 5.0000000000000000e+01 7.4999999999999997e-02 4242 7.5000000000000000e+01 1.3300000000000001e-01 4242 1.0500000000000000e+02 2.8000000000000003e-01 4242 1.5000000000000000e+02 5.8999999999999997e-01 4242 2.1000000000000000e+02 8.1499999999999995e-01 4242 2.0000000000000000e+03 1.0000000000000000e+00 4243 2.0000000000000000e+00 2.4000000000000000e-02 4243 1.6000000000000000e+01 2.8000000000000001e-02 4243 5.0000000000000000e+01 5.9999999999999998e-02 4243 7.5000000000000000e+01 1.1500000000000000e-01 4243 1.0500000000000000e+02 2.5700000000000001e-01 4243 1.5000000000000000e+02 4.6500000000000002e-01 4243 2.1000000000000000e+02 7.0199999999999996e-01 4243 2.0000000000000000e+03 1.0000000000000000e+00 4251 2.0000000000000000e+00 2.9000000000000001e-02 4251 1.6000000000000000e+01 6.6000000000000003e-02 4251 5.0000000000000000e+01 1.5700000000000000e-01 4251 7.5000000000000000e+01 2.2500000000000001e-01 4251 1.0500000000000000e+02 3.5899999999999999e-01 4251 1.5000000000000000e+02 5.6499999999999995e-01 4251 2.1000000000000000e+02 7.6300000000000001e-01 4251 2.0000000000000000e+03 1.0000000000000000e+00 4252 2.0000000000000000e+00 2.5999999999999999e-02 4252 1.6000000000000000e+01 4.0000000000000001e-02 4252 5.0000000000000000e+01 6.2000000000000000e-02 4252 7.5000000000000000e+01 1.1100000000000000e-01 4252 1.0500000000000000e+02 2.6000000000000001e-01 4252 1.5000000000000000e+02 5.8099999999999996e-01 4252 2.1000000000000000e+02 8.1699999999999995e-01 4252 2.0000000000000000e+03 1.0000000000000000e+00 4253 2.0000000000000000e+00 2.3000000000000000e-02 4253 1.6000000000000000e+01 3.4000000000000002e-02 4253 5.0000000000000000e+01 8.1000000000000003e-02 4253 7.5000000000000000e+01 1.6400000000000001e-01 4253 1.0500000000000000e+02 3.4200000000000003e-01 4253 1.5000000000000000e+02 5.7399999999999995e-01 4253 2.1000000000000000e+02 7.8700000000000003e-01 4253 2.0000000000000000e+03 1.0000000000000000e+00 4261 2.0000000000000000e+00 2.9000000000000001e-02 4261 1.6000000000000000e+01 4.8000000000000001e-02 4261 5.0000000000000000e+01 6.7000000000000004e-02 4261 7.5000000000000000e+01 8.3000000000000004e-02 4261 1.0500000000000000e+02 1.6500000000000001e-01 4261 1.5000000000000000e+02 3.9000000000000001e-01 4261 2.1000000000000000e+02 6.8600000000000005e-01 4261 2.0000000000000000e+03 1.0000000000000000e+00 4262 2.0000000000000000e+00 2.3000000000000000e-02 4262 1.6000000000000000e+01 2.9999999999999999e-02 4262 5.0000000000000000e+01 4.1000000000000002e-02 4262 7.5000000000000000e+01 7.0999999999999994e-02 4262 1.0500000000000000e+02 1.6400000000000001e-01 4262 1.5000000000000000e+02 4.3700000000000000e-01 4262 2.1000000000000000e+02 7.2299999999999998e-01 4262 2.0000000000000000e+03 1.0000000000000000e+00 4263 2.0000000000000000e+00 2.5999999999999999e-02 4263 1.6000000000000000e+01 2.9000000000000001e-02 4263 5.0000000000000000e+01 5.0000000000000003e-02 4263 7.5000000000000000e+01 9.0999999999999998e-02 4263 1.0500000000000000e+02 2.2900000000000001e-01 4263 1.5000000000000000e+02 4.8099999999999998e-01 4263 2.1000000000000000e+02 7.5300000000000000e-01 4263 2.0000000000000000e+03 1.0000000000000000e+00 4271 2.0000000000000000e+00 2.5999999999999999e-02 4271 1.6000000000000000e+01 3.4000000000000002e-02 4271 5.0000000000000000e+01 4.5999999999999999e-02 4271 7.5000000000000000e+01 6.8000000000000005e-02 4271 1.0500000000000000e+02 1.8900000000000000e-01 4271 1.5000000000000000e+02 4.6500000000000002e-01 4271 2.1000000000000000e+02 7.3999999999999999e-01 4271 2.0000000000000000e+03 1.0000000000000000e+00 4272 2.0000000000000000e+00 1.7999999999999999e-02 4272 1.6000000000000000e+01 2.8000000000000001e-02 4272 5.0000000000000000e+01 7.9000000000000001e-02 4272 7.5000000000000000e+01 1.3200000000000001e-01 4272 1.0500000000000000e+02 2.7100000000000002e-01 4272 1.5000000000000000e+02 5.1300000000000001e-01 4272 2.1000000000000000e+02 7.7800000000000002e-01 4272 2.0000000000000000e+03 1.0000000000000000e+00 4273 2.0000000000000000e+00 1.4999999999999999e-02 4273 1.6000000000000000e+01 2.7000000000000000e-02 4273 5.0000000000000000e+01 5.8999999999999997e-02 4273 7.5000000000000000e+01 1.3800000000000001e-01 4273 1.0500000000000000e+02 3.2300000000000001e-01 4273 1.5000000000000000e+02 6.0899999999999999e-01 4273 2.1000000000000000e+02 8.2399999999999995e-01 4273 2.0000000000000000e+03 1.0000000000000000e+00 4281 2.0000000000000000e+00 1.7999999999999999e-02 4281 1.6000000000000000e+01 3.9000000000000000e-02 4281 5.0000000000000000e+01 5.7000000000000002e-02 4281 7.5000000000000000e+01 8.0000000000000002e-02 4281 1.0500000000000000e+02 1.6900000000000001e-01 4281 1.5000000000000000e+02 4.2599999999999999e-01 4281 2.1000000000000000e+02 6.9099999999999995e-01 4281 2.0000000000000000e+03 1.0000000000000000e+00 4282 2.0000000000000000e+00 2.7000000000000000e-02 4282 1.6000000000000000e+01 3.5999999999999997e-02 4282 5.0000000000000000e+01 7.3999999999999996e-02 4282 7.5000000000000000e+01 1.3400000000000001e-01 4282 1.0500000000000000e+02 2.8799999999999998e-01 4282 1.5000000000000000e+02 5.6499999999999995e-01 4282 2.1000000000000000e+02 7.9800000000000004e-01 4282 2.0000000000000000e+03 1.0000000000000000e+00 4283 2.0000000000000000e+00 1.9200000000000000e-01 4283 1.6000000000000000e+01 2.9999999999999999e-01 4283 5.0000000000000000e+01 4.7499999999999998e-01 4283 7.5000000000000000e+01 4.9500000000000000e-01 4283 1.0500000000000000e+02 5.1900000000000002e-01 4283 1.5000000000000000e+02 5.6499999999999995e-01 4283 2.1000000000000000e+02 6.3300000000000001e-01 4283 2.0000000000000000e+03 1.0000000000000000e+00 4284 2.0000000000000000e+00 3.7400000000000000e-01 4284 1.6000000000000000e+01 5.7699999999999996e-01 4284 5.0000000000000000e+01 8.6899999999999999e-01 4284 7.5000000000000000e+01 8.8500000000000001e-01 4284 1.0500000000000000e+02 8.9200000000000002e-01 4284 1.5000000000000000e+02 9.0500000000000003e-01 4284 2.1000000000000000e+02 9.2300000000000004e-01 4284 2.0000000000000000e+03 1.0000000000000000e+00 4291 2.0000000000000000e+00 3.3900000000000002e-01 4291 1.6000000000000000e+01 3.9700000000000002e-01 4291 5.0000000000000000e+01 4.3800000000000000e-01 4291 7.5000000000000000e+01 4.6500000000000002e-01 4291 1.0500000000000000e+02 5.9099999999999997e-01 4291 1.5000000000000000e+02 8.4999999999999998e-01 4291 2.1000000000000000e+02 9.4199999999999995e-01 4291 2.0000000000000000e+03 1.0000000000000000e+00 4310 5.0000000000000000e+01 7.4999999999999997e-02 4310 6.3000000000000000e+01 9.5000000000000001e-02 4310 1.2500000000000000e+02 3.2000000000000001e-01 4310 1.5000000000000000e+02 4.2799999999999999e-01 4310 1.8000000000000000e+02 5.8199999999999996e-01 4310 2.5000000000000000e+02 7.9400000000000004e-01 4310 5.0000000000000000e+02 9.7099999999999997e-01 4310 1.0000000000000000e+03 9.9500000000000000e-01 4310 2.0000000000000000e+03 1.0000000000000000e+00 4311 5.0000000000000000e+01 3.1000000000000000e-02 4311 6.3000000000000000e+01 4.2999999999999997e-02 4311 1.2500000000000000e+02 2.6800000000000002e-01 4311 1.5000000000000000e+02 3.7000000000000000e-01 4311 1.8000000000000000e+02 5.4500000000000004e-01 4311 2.5000000000000000e+02 7.9800000000000004e-01 4311 5.0000000000000000e+02 9.8499999999999999e-01 4311 1.0000000000000000e+03 1.0000000000000000e+00 4340 5.0000000000000000e+01 5.1999999999999998e-02 4340 6.3000000000000000e+01 6.5000000000000002e-02 4340 1.2500000000000000e+02 3.3300000000000002e-01 4340 1.5000000000000000e+02 4.5300000000000001e-01 4340 1.8000000000000000e+02 6.1499999999999999e-01 4340 2.5000000000000000e+02 8.4699999999999998e-01 4340 5.0000000000000000e+02 9.9199999999999999e-01 4340 1.0000000000000000e+03 1.0000000000000000e+00 4341 5.0000000000000000e+01 3.7999999999999999e-02 4341 6.3000000000000000e+01 5.1999999999999998e-02 4341 1.2500000000000000e+02 3.0399999999999999e-01 4341 1.5000000000000000e+02 4.2099999999999999e-01 4341 1.8000000000000000e+02 6.6300000000000003e-01 4341 2.5000000000000000e+02 8.1599999999999995e-01 4341 5.0000000000000000e+02 9.8999999999999999e-01 4341 1.0000000000000000e+03 1.0000000000000000e+00 4390 4391 4410 4411 4412 4440 6.0000000000000000e+01 4.2999999999999997e-02 4440 1.0000000000000000e+02 5.0000000000000003e-02 4440 1.5000000000000000e+02 1.1000000000000000e-01 4440 2.0000000000000000e+02 2.3999999999999999e-01 4440 2.5000000000000000e+02 5.3000000000000003e-01 4440 3.0000000000000000e+02 7.7500000000000002e-01 4440 4.0000000000000000e+02 9.3999999999999995e-01 4440 5.0000000000000000e+02 9.7499999999999998e-01 4441 5.0000000000000000e+01 8.0000000000000002e-03 4441 7.5000000000000000e+01 2.0000000000000000e-02 4441 1.5000000000000000e+02 1.0000000000000001e-01 4441 1.7500000000000000e+02 2.0000000000000001e-01 4441 2.0000000000000000e+02 2.9999999999999999e-01 4441 2.5500000000000000e+02 6.9999999999999996e-01 4441 5.0000000000000000e+02 9.5999999999999996e-01 4441 1.0000000000000000e+03 9.7999999999999998e-01 4442 8.0000000000000000e+01 1.0999999999999999e-02 4442 1.6000000000000000e+02 1.2000000000000000e-01 4442 2.5000000000000000e+02 3.8000000000000000e-01 4442 3.0000000000000000e+02 5.4300000000000004e-01 4442 6.0000000000000000e+02 9.5599999999999996e-01 4442 1.0000000000000000e+03 9.8999999999999999e-01 4443 1.4400000000000000e+02 5.0000000000000001e-03 4443 2.1900000000000000e+02 1.2000000000000000e-01 4443 3.0000000000000000e+02 5.3600000000000003e-01 4443 4.9000000000000000e+02 9.4299999999999995e-01 4444 8.0000000000000000e+01 2.8000000000000001e-02 4444 1.6000000000000000e+02 1.3600000000000001e-01 4444 2.4000000000000000e+02 2.9299999999999998e-01 4444 3.1500000000000000e+02 5.0800000000000001e-01 4444 3.8000000000000000e+02 6.7800000000000005e-01 4444 4.4000000000000000e+02 7.9000000000000004e-01 4444 6.3000000000000000e+02 9.5099999999999996e-01 4445 9.4000000000000000e+01 5.9999999999999998e-02 4445 1.2000000000000000e+02 1.4999999999999999e-01 4445 2.0000000000000000e+02 3.7000000000000000e-01 4445 2.8000000000000000e+02 6.6000000000000003e-01 4445 5.0000000000000000e+02 9.8999999999999999e-01 4450 2.0000000000000000e+00 2.7000000000000002e-01 4450 2.0000000000000000e+01 7.3199999999999998e-01 4450 5.0000000000000000e+01 8.8800000000000001e-01 4450 1.0000000000000000e+02 9.4899999999999995e-01 4450 2.0000000000000000e+02 9.8299999999999998e-01 4460 2.0000000000000000e+00 2.5600000000000001e-01 4460 2.0000000000000000e+01 3.4300000000000003e-01 4460 5.0000000000000000e+01 3.9100000000000001e-01 4460 2.0000000000000000e+02 8.0800000000000005e-01 4460 2.0000000000000000e+03 1.0000000000000000e+00 4470 2.0000000000000000e+00 1.2000000000000000e-01 4470 5.0000000000000000e+00 2.3000000000000001e-01 4470 2.0000000000000000e+01 3.2000000000000001e-01 4470 5.0000000000000000e+01 3.5999999999999999e-01 4470 2.0000000000000000e+02 4.6999999999999997e-01 4470 1.0000000000000000e+03 1.0000000000000000e+00 4480 2.0000000000000000e+00 2.0000000000000000e-02 4480 5.0000000000000000e+01 7.5999999999999998e-02 4480 2.0000000000000000e+02 7.6600000000000001e-01 4480 2.0000000000000000e+03 1.0000000000000000e+00 4490 2.0000000000000000e+00 1.4999999999999999e-02 4490 2.0000000000000000e+01 2.5000000000000001e-02 4490 5.0000000000000000e+01 4.4999999999999998e-02 4490 2.0000000000000000e+02 7.7000000000000002e-01 4490 2.0000000000000000e+03 1.0000000000000000e+00 4500 2.0000000000000000e+00 1.0000000000000001e-01 4500 2.0000000000000000e+01 1.6500000000000001e-01 4500 5.0000000000000000e+01 2.3000000000000001e-01 4500 2.0000000000000000e+02 8.1000000000000005e-01 4500 2.0000000000000000e+03 1.0000000000000000e+00 4510 2.0000000000000000e+00 1.0700000000000000e-01 4510 4.0000000000000000e+00 1.2000000000000000e-01 4510 8.0000000000000000e+00 1.3800000000000001e-01 4510 1.6000000000000000e+01 1.8600000000000000e-01 4510 3.2000000000000000e+01 4.0100000000000002e-01 4510 6.3000000000000000e+01 8.3199999999999996e-01 4510 1.2500000000000000e+02 8.7400000000000000e-01 4510 2.5000000000000000e+02 9.3799999999999994e-01 4510 5.0000000000000000e+02 9.8699999999999999e-01 4510 1.0000000000000000e+03 9.9800000000000000e-01 4510 2.0000000000000000e+03 1.0000000000000000e+00 4511 2.0000000000000000e+00 1.0700000000000000e-01 4511 4.0000000000000000e+00 1.2000000000000000e-01 4511 8.0000000000000000e+00 1.3800000000000001e-01 4511 1.6000000000000000e+01 1.8600000000000000e-01 4511 3.2000000000000000e+01 4.0100000000000002e-01 4511 6.3000000000000000e+01 8.3199999999999996e-01 4511 1.2500000000000000e+02 8.7400000000000000e-01 4511 2.5000000000000000e+02 9.3799999999999994e-01 4511 5.0000000000000000e+02 9.8699999999999999e-01 4511 1.0000000000000000e+03 9.9800000000000000e-01 4511 2.0000000000000000e+03 1.0000000000000000e+00 4512 2.0000000000000000e+00 1.0700000000000000e-01 4512 4.0000000000000000e+00 1.2000000000000000e-01 4512 8.0000000000000000e+00 1.3800000000000001e-01 4512 1.6000000000000000e+01 1.8600000000000000e-01 4512 3.2000000000000000e+01 4.0100000000000002e-01 4512 6.3000000000000000e+01 8.3199999999999996e-01 4512 1.2500000000000000e+02 8.7400000000000000e-01 4512 2.5000000000000000e+02 9.3799999999999994e-01 4512 5.0000000000000000e+02 9.8699999999999999e-01 4512 1.0000000000000000e+03 9.9800000000000000e-01 4512 2.0000000000000000e+03 1.0000000000000000e+00 4514 2.0000000000000000e+00 1.0700000000000000e-01 4514 4.0000000000000000e+00 1.2000000000000000e-01 4514 8.0000000000000000e+00 1.3800000000000001e-01 4514 1.6000000000000000e+01 1.8600000000000000e-01 4514 3.2000000000000000e+01 4.0100000000000002e-01 4514 6.3000000000000000e+01 8.3199999999999996e-01 4514 1.2500000000000000e+02 8.7400000000000000e-01 4514 2.5000000000000000e+02 9.3799999999999994e-01 4514 5.0000000000000000e+02 9.8699999999999999e-01 4514 1.0000000000000000e+03 9.9800000000000000e-01 4514 2.0000000000000000e+03 1.0000000000000000e+00 4520 2.0000000000000000e+00 7.0000000000000001e-03 4520 4.0000000000000000e+00 7.0000000000000001e-03 4520 8.0000000000000000e+00 7.0000000000000001e-03 4520 1.6000000000000000e+01 8.0000000000000002e-03 4520 3.2000000000000000e+01 8.9999999999999993e-03 4520 6.3000000000000000e+01 1.2000000000000000e-02 4520 1.2500000000000000e+02 1.0400000000000000e-01 4520 2.5000000000000000e+02 5.8999999999999997e-01 4520 5.0000000000000000e+02 9.0900000000000003e-01 4520 1.0000000000000000e+03 9.8499999999999999e-01 4520 2.0000000000000000e+03 1.0000000000000000e+00 4521 2.0000000000000000e+00 7.0000000000000001e-03 4521 4.0000000000000000e+00 7.0000000000000001e-03 4521 8.0000000000000000e+00 7.0000000000000001e-03 4521 1.6000000000000000e+01 8.0000000000000002e-03 4521 3.2000000000000000e+01 8.9999999999999993e-03 4521 6.3000000000000000e+01 1.2000000000000000e-02 4521 1.2500000000000000e+02 1.0400000000000000e-01 4521 2.5000000000000000e+02 5.8999999999999997e-01 4521 5.0000000000000000e+02 9.0900000000000003e-01 4521 1.0000000000000000e+03 9.8499999999999999e-01 4521 2.0000000000000000e+03 1.0000000000000000e+00 4522 2.0000000000000000e+00 7.0000000000000001e-03 4522 4.0000000000000000e+00 7.0000000000000001e-03 4522 8.0000000000000000e+00 7.0000000000000001e-03 4522 1.6000000000000000e+01 8.0000000000000002e-03 4522 3.2000000000000000e+01 8.9999999999999993e-03 4522 6.3000000000000000e+01 1.2000000000000000e-02 4522 1.2500000000000000e+02 1.0400000000000000e-01 4522 2.5000000000000000e+02 5.8999999999999997e-01 4522 5.0000000000000000e+02 9.0900000000000003e-01 4522 1.0000000000000000e+03 9.8499999999999999e-01 4522 2.0000000000000000e+03 1.0000000000000000e+00 4523 2.0000000000000000e+00 7.0000000000000001e-03 4523 4.0000000000000000e+00 7.0000000000000001e-03 4523 8.0000000000000000e+00 7.0000000000000001e-03 4523 1.6000000000000000e+01 8.0000000000000002e-03 4523 3.2000000000000000e+01 8.9999999999999993e-03 4523 6.3000000000000000e+01 1.2000000000000000e-02 4523 1.2500000000000000e+02 1.0400000000000000e-01 4523 2.5000000000000000e+02 5.8999999999999997e-01 4523 5.0000000000000000e+02 9.0900000000000003e-01 4523 1.0000000000000000e+03 9.8499999999999999e-01 4523 2.0000000000000000e+03 1.0000000000000000e+00 4530 2.0000000000000000e+00 2.6800000000000002e-01 4530 4.0000000000000000e+00 3.2600000000000001e-01 4530 8.0000000000000000e+00 4.1099999999999998e-01 4530 1.6000000000000000e+01 5.4200000000000004e-01 4530 3.2000000000000000e+01 7.0899999999999996e-01 4530 6.3000000000000000e+01 7.9600000000000004e-01 4530 1.2500000000000000e+02 8.3199999999999996e-01 4530 2.5000000000000000e+02 8.7100000000000000e-01 4530 5.0000000000000000e+02 9.6899999999999997e-01 4530 1.0000000000000000e+03 9.9600000000000000e-01 4530 2.0000000000000000e+03 1.0000000000000000e+00 4531 2.0000000000000000e+00 2.6800000000000002e-01 4531 4.0000000000000000e+00 3.2600000000000001e-01 4531 8.0000000000000000e+00 4.1099999999999998e-01 4531 1.6000000000000000e+01 5.4200000000000004e-01 4531 3.2000000000000000e+01 7.0899999999999996e-01 4531 6.3000000000000000e+01 7.9600000000000004e-01 4531 1.2500000000000000e+02 8.3199999999999996e-01 4531 2.5000000000000000e+02 8.7100000000000000e-01 4531 5.0000000000000000e+02 9.6899999999999997e-01 4531 1.0000000000000000e+03 9.9600000000000000e-01 4531 2.0000000000000000e+03 1.0000000000000000e+00 4532 2.0000000000000000e+00 2.6800000000000002e-01 4532 4.0000000000000000e+00 3.2600000000000001e-01 4532 8.0000000000000000e+00 4.1099999999999998e-01 4532 1.6000000000000000e+01 5.4200000000000004e-01 4532 3.2000000000000000e+01 7.0899999999999996e-01 4532 6.3000000000000000e+01 7.9600000000000004e-01 4532 1.2500000000000000e+02 8.3199999999999996e-01 4532 2.5000000000000000e+02 8.7100000000000000e-01 4532 5.0000000000000000e+02 9.6899999999999997e-01 4532 1.0000000000000000e+03 9.9600000000000000e-01 4532 2.0000000000000000e+03 1.0000000000000000e+00 4533 2.0000000000000000e+00 2.6800000000000002e-01 4533 4.0000000000000000e+00 3.2600000000000001e-01 4533 8.0000000000000000e+00 4.1099999999999998e-01 4533 1.6000000000000000e+01 5.4200000000000004e-01 4533 3.2000000000000000e+01 7.0899999999999996e-01 4533 6.3000000000000000e+01 7.9600000000000004e-01 4533 1.2500000000000000e+02 8.3199999999999996e-01 4533 2.5000000000000000e+02 8.7100000000000000e-01 4533 5.0000000000000000e+02 9.6899999999999997e-01 4533 1.0000000000000000e+03 9.9600000000000000e-01 4533 2.0000000000000000e+03 1.0000000000000000e+00 4540 4.0000000000000000e+00 1.9600000000000001e-01 4540 8.0000000000000000e+00 2.1400000000000000e-01 4540 1.6000000000000000e+01 2.4199999999999999e-01 4540 3.2000000000000000e+01 3.0299999999999999e-01 4540 6.3000000000000000e+01 4.6700000000000003e-01 4540 1.2500000000000000e+02 9.3000000000000005e-01 4540 2.5000000000000000e+02 9.9800000000000000e-01 4540 5.0000000000000000e+02 1.0000000000000000e+00 4540 1.0000000000000000e+03 1.0000000000000000e+00 4540 2.0000000000000000e+03 1.0000000000000000e+00 4541 4.0000000000000000e+00 1.9600000000000001e-01 4541 8.0000000000000000e+00 2.1400000000000000e-01 4541 1.6000000000000000e+01 2.4199999999999999e-01 4541 3.2000000000000000e+01 3.0299999999999999e-01 4541 6.3000000000000000e+01 4.6700000000000003e-01 4541 1.2500000000000000e+02 9.3000000000000005e-01 4541 2.5000000000000000e+02 9.9800000000000000e-01 4541 5.0000000000000000e+02 1.0000000000000000e+00 4541 1.0000000000000000e+03 1.0000000000000000e+00 4541 2.0000000000000000e+03 1.0000000000000000e+00 4542 4.0000000000000000e+00 1.9600000000000001e-01 4542 8.0000000000000000e+00 2.1400000000000000e-01 4542 1.6000000000000000e+01 2.4199999999999999e-01 4542 3.2000000000000000e+01 3.0299999999999999e-01 4542 6.3000000000000000e+01 4.6700000000000003e-01 4542 1.2500000000000000e+02 9.3000000000000005e-01 4542 2.5000000000000000e+02 9.9800000000000000e-01 4542 5.0000000000000000e+02 1.0000000000000000e+00 4542 1.0000000000000000e+03 1.0000000000000000e+00 4542 2.0000000000000000e+03 1.0000000000000000e+00 4543 4.0000000000000000e+00 1.9600000000000001e-01 4543 8.0000000000000000e+00 2.1400000000000000e-01 4543 1.6000000000000000e+01 2.4199999999999999e-01 4543 3.2000000000000000e+01 3.0299999999999999e-01 4543 6.3000000000000000e+01 4.6700000000000003e-01 4543 1.2500000000000000e+02 9.3000000000000005e-01 4543 2.5000000000000000e+02 9.9800000000000000e-01 4543 5.0000000000000000e+02 1.0000000000000000e+00 4543 1.0000000000000000e+03 1.0000000000000000e+00 4543 2.0000000000000000e+03 1.0000000000000000e+00 4544 4.0000000000000000e+00 1.9600000000000001e-01 4544 8.0000000000000000e+00 2.1400000000000000e-01 4544 1.6000000000000000e+01 2.4199999999999999e-01 4544 3.2000000000000000e+01 3.0299999999999999e-01 4544 6.3000000000000000e+01 4.6700000000000003e-01 4544 1.2500000000000000e+02 9.3000000000000005e-01 4544 2.5000000000000000e+02 9.9800000000000000e-01 4544 5.0000000000000000e+02 1.0000000000000000e+00 4544 1.0000000000000000e+03 1.0000000000000000e+00 4544 2.0000000000000000e+03 1.0000000000000000e+00 4550 1.0000000000000000e+00 3.5399999999999998e-01 4550 5.0000000000000000e+00 4.6000000000000002e-01 4550 1.0000000000000000e+01 5.5800000000000005e-01 4550 5.0000000000000000e+01 8.8400000000000001e-01 4550 2.5000000000000000e+02 9.5999999999999996e-01 4550 1.0000000000000000e+03 1.0000000000000000e+00 4551 1.0000000000000000e+00 3.9800000000000002e-01 4551 5.0000000000000000e+00 4.9800000000000000e-01 4551 1.0000000000000000e+01 5.8499999999999996e-01 4551 5.0000000000000000e+01 9.1200000000000003e-01 4551 2.5000000000000000e+02 1.0000000000000000e+00 4551 1.0000000000000000e+03 1.0000000000000000e+00 4552 1.0000000000000000e+00 3.0700000000000000e-01 4552 5.0000000000000000e+00 3.8700000000000001e-01 4552 1.0000000000000000e+01 5.8399999999999996e-01 4552 5.0000000000000000e+01 8.9800000000000002e-01 4552 2.5000000000000000e+02 9.9900000000000000e-01 4552 1.0000000000000000e+03 1.0000000000000000e+00 4553 1.0000000000000000e+00 2.3799999999999999e-01 4553 5.0000000000000000e+00 2.8799999999999998e-01 4553 1.0000000000000000e+01 6.5000000000000002e-01 4553 5.0000000000000000e+01 8.3899999999999997e-01 4553 2.5000000000000000e+02 1.0000000000000000e+00 4553 1.0000000000000000e+03 1.0000000000000000e+00 4560 1.0000000000000000e+00 3.5399999999999998e-01 4560 5.0000000000000000e+00 4.6000000000000002e-01 4560 1.0000000000000000e+01 5.5800000000000005e-01 4560 5.0000000000000000e+01 8.8400000000000001e-01 4560 2.5000000000000000e+02 9.5999999999999996e-01 4560 1.0000000000000000e+03 1.0000000000000000e+00 4561 1.0000000000000000e+00 3.9800000000000002e-01 4561 5.0000000000000000e+00 4.9800000000000000e-01 4561 1.0000000000000000e+01 5.8499999999999996e-01 4561 5.0000000000000000e+01 9.1200000000000003e-01 4561 2.5000000000000000e+02 1.0000000000000000e+00 4561 1.0000000000000000e+03 1.0000000000000000e+00 4562 1.0000000000000000e+00 2.3799999999999999e-01 4562 5.0000000000000000e+00 2.8799999999999998e-01 4562 1.0000000000000000e+01 6.5000000000000002e-01 4562 5.0000000000000000e+01 8.3899999999999997e-01 4562 2.5000000000000000e+02 1.0000000000000000e+00 4562 1.0000000000000000e+03 1.0000000000000000e+00 4564 1.0000000000000000e+00 2.3200000000000001e-01 4564 5.0000000000000000e+00 3.1300000000000000e-01 4564 1.0000000000000000e+01 5.2900000000000003e-01 4564 5.0000000000000000e+01 8.4199999999999997e-01 4564 2.5000000000000000e+02 1.0000000000000000e+00 4564 1.0000000000000000e+03 1.0000000000000000e+00 4570 1.0000000000000000e+00 7.0999999999999994e-02 4570 5.0000000000000000e+00 1.9100000000000000e-01 4570 1.0000000000000000e+01 3.1600000000000000e-01 4570 5.0000000000000000e+01 8.3599999999999997e-01 4570 2.5000000000000000e+02 9.6599999999999997e-01 4570 1.0000000000000000e+03 1.0000000000000000e+00 4571 1.0000000000000000e+00 7.1999999999999995e-02 4571 5.0000000000000000e+00 1.6300000000000001e-01 4571 1.0000000000000000e+01 2.7200000000000002e-01 4571 5.0000000000000000e+01 8.1200000000000006e-01 4571 2.5000000000000000e+02 9.6299999999999997e-01 4571 1.0000000000000000e+03 9.9700000000000000e-01 4572 1.0000000000000000e+00 1.4499999999999999e-01 4572 5.0000000000000000e+00 2.3699999999999999e-01 4572 1.0000000000000000e+01 3.1500000000000000e-01 4572 5.0000000000000000e+01 8.6399999999999999e-01 4572 2.5000000000000000e+02 9.7299999999999998e-01 4572 1.0000000000000000e+03 1.0000000000000000e+00 4573 1.0000000000000000e+00 2.4399999999999999e-01 4573 5.0000000000000000e+00 3.3600000000000002e-01 4573 1.0000000000000000e+01 4.0500000000000003e-01 4573 5.0000000000000000e+01 8.1399999999999995e-01 4573 2.5000000000000000e+02 9.6199999999999997e-01 4573 1.0000000000000000e+03 1.0000000000000000e+00 4574 1.0000000000000000e+00 2.2200000000000000e-01 4574 5.0000000000000000e+00 3.0599999999999999e-01 4574 1.0000000000000000e+01 3.9500000000000002e-01 4574 5.0000000000000000e+01 8.2299999999999995e-01 4574 2.5000000000000000e+02 9.3799999999999994e-01 4574 1.0000000000000000e+03 1.0000000000000000e+00 4575 1.0000000000000000e+00 2.0499999999999999e-01 4575 5.0000000000000000e+00 2.7300000000000002e-01 4575 1.0000000000000000e+01 3.1800000000000000e-01 4575 5.0000000000000000e+01 5.4000000000000004e-01 4575 2.5000000000000000e+02 7.6800000000000002e-01 4575 1.0000000000000000e+03 1.0000000000000000e+00 4580 1.0000000000000000e+00 6.9000000000000006e-02 4580 5.0000000000000000e+00 1.0600000000000000e-01 4580 1.0000000000000000e+01 1.1100000000000000e-01 4580 5.0000000000000000e+01 1.7000000000000001e-01 4580 2.5000000000000000e+02 4.0200000000000002e-01 4580 5.0000000000000000e+02 9.2800000000000005e-01 4580 1.0000000000000000e+03 1.0000000000000000e+00 4581 1.0000000000000000e+00 6.7000000000000004e-02 4581 5.0000000000000000e+00 1.1400000000000000e-01 4581 1.0000000000000000e+01 1.2100000000000000e-01 4581 5.0000000000000000e+01 1.8600000000000000e-01 4581 2.5000000000000000e+02 4.0300000000000002e-01 4581 5.0000000000000000e+02 9.1800000000000004e-01 4581 1.0000000000000000e+03 1.0000000000000000e+00 4582 1.0000000000000000e+00 1.5300000000000000e-01 4582 5.0000000000000000e+00 1.9300000000000000e-01 4582 1.0000000000000000e+01 2.1800000000000000e-01 4582 5.0000000000000000e+01 3.4699999999999998e-01 4582 2.5000000000000000e+02 5.2800000000000002e-01 4582 5.0000000000000000e+02 9.1500000000000004e-01 4582 1.0000000000000000e+03 1.0000000000000000e+00 4583 1.0000000000000000e+00 4.2000000000000003e-02 4583 5.0000000000000000e+00 6.4000000000000001e-02 4583 1.0000000000000000e+01 6.5000000000000002e-02 4583 5.0000000000000000e+01 9.5000000000000001e-02 4583 2.5000000000000000e+02 2.6800000000000002e-01 4583 5.0000000000000000e+02 8.6799999999999999e-01 4583 1.0000000000000000e+03 1.0000000000000000e+00 4590 2.0000000000000000e+00 2.3999999999999999e-01 4590 6.0000000000000000e+01 6.4000000000000001e-01 4590 2.0000000000000000e+02 8.4999999999999998e-01 4590 6.0000000000000000e+02 9.6999999999999997e-01 4590 2.0000000000000000e+03 1.0000000000000000e+00 4591 2.0000000000000000e+00 2.3999999999999999e-01 4591 6.0000000000000000e+01 6.4000000000000001e-01 4591 2.0000000000000000e+02 8.4999999999999998e-01 4591 6.0000000000000000e+02 9.6999999999999997e-01 4591 2.0000000000000000e+03 1.0000000000000000e+00 4592 2.0000000000000000e+00 2.3999999999999999e-01 4592 6.0000000000000000e+01 6.4000000000000001e-01 4592 2.0000000000000000e+02 8.4999999999999998e-01 4592 6.0000000000000000e+02 9.6999999999999997e-01 4592 2.0000000000000000e+03 1.0000000000000000e+00 4600 2.0000000000000000e+00 2.3999999999999999e-01 4600 6.0000000000000000e+01 6.4000000000000001e-01 4600 2.0000000000000000e+02 8.4999999999999998e-01 4600 6.0000000000000000e+02 9.6999999999999997e-01 4600 2.0000000000000000e+03 1.0000000000000000e+00 4601 2.0000000000000000e+00 2.3999999999999999e-01 4601 6.0000000000000000e+01 6.3000000000000000e-01 4601 2.0000000000000000e+02 8.3999999999999997e-01 4601 6.0000000000000000e+02 9.5999999999999996e-01 4601 2.0000000000000000e+03 1.0000000000000000e+00 4602 2.0000000000000000e+00 2.3999999999999999e-01 4602 6.0000000000000000e+01 6.3000000000000000e-01 4602 2.0000000000000000e+02 8.3999999999999997e-01 4602 6.0000000000000000e+02 9.5999999999999996e-01 4602 2.0000000000000000e+03 1.0000000000000000e+00 4610 2.0000000000000000e+00 2.3999999999999999e-01 4610 6.0000000000000000e+01 6.4000000000000001e-01 4610 2.0000000000000000e+02 8.4999999999999998e-01 4610 6.0000000000000000e+02 9.6999999999999997e-01 4610 2.0000000000000000e+03 1.0000000000000000e+00 4611 2.0000000000000000e+00 2.3999999999999999e-01 4611 6.0000000000000000e+01 6.3000000000000000e-01 4611 2.0000000000000000e+02 8.3999999999999997e-01 4611 6.0000000000000000e+02 9.5999999999999996e-01 4611 2.0000000000000000e+03 1.0000000000000000e+00 4612 2.0000000000000000e+00 2.3999999999999999e-01 4612 6.0000000000000000e+01 6.3000000000000000e-01 4612 2.0000000000000000e+02 8.3999999999999997e-01 4612 6.0000000000000000e+02 9.5999999999999996e-01 4612 2.0000000000000000e+03 1.0000000000000000e+00 4620 2.0000000000000000e+00 2.3999999999999999e-01 4620 6.0000000000000000e+01 6.4000000000000001e-01 4620 2.0000000000000000e+02 8.4999999999999998e-01 4620 6.0000000000000000e+02 9.6999999999999997e-01 4620 2.0000000000000000e+03 1.0000000000000000e+00 4621 2.0000000000000000e+00 2.3999999999999999e-01 4621 6.0000000000000000e+01 6.3000000000000000e-01 4621 2.0000000000000000e+02 8.3999999999999997e-01 4621 6.0000000000000000e+02 9.5999999999999996e-01 4621 2.0000000000000000e+03 1.0000000000000000e+00 4622 2.0000000000000000e+00 2.3999999999999999e-01 4622 6.0000000000000000e+01 6.3000000000000000e-01 4622 2.0000000000000000e+02 8.3999999999999997e-01 4622 6.0000000000000000e+02 9.5999999999999996e-01 4622 2.0000000000000000e+03 1.0000000000000000e+00 4650 2.0000000000000000e+00 1.0000000000000000e-02 4650 6.0000000000000000e+00 2.0000000000000000e-02 4650 2.0000000000000000e+01 2.9999999999999999e-02 4650 6.0000000000000000e+01 8.0000000000000002e-02 4650 2.0000000000000000e+02 2.0999999999999999e-01 4650 6.0000000000000000e+02 8.9000000000000001e-01 4650 2.0000000000000000e+03 1.0000000000000000e+00 4651 2.0000000000000000e+00 1.0000000000000000e-02 4651 6.0000000000000000e+00 2.0000000000000000e-02 4651 2.0000000000000000e+01 2.9999999999999999e-02 4651 6.0000000000000000e+01 5.0000000000000003e-02 4651 2.0000000000000000e+02 2.3000000000000001e-01 4651 6.0000000000000000e+02 8.3999999999999997e-01 4651 2.0000000000000000e+03 1.0000000000000000e+00 4660 2.0000000000000000e+00 4.0000000000000001e-02 4660 6.0000000000000000e+00 5.0000000000000003e-02 4660 2.0000000000000000e+01 7.0000000000000007e-02 4660 6.0000000000000000e+01 8.9999999999999997e-02 4660 2.0000000000000000e+02 2.5000000000000000e-01 4660 6.0000000000000000e+02 9.2000000000000004e-01 4660 2.0000000000000000e+03 1.0000000000000000e+00 4661 2.0000000000000000e+00 2.9999999999999999e-02 4661 6.0000000000000000e+00 4.0000000000000001e-02 4661 2.0000000000000000e+01 5.0000000000000003e-02 4661 6.0000000000000000e+01 8.0000000000000002e-02 4661 2.0000000000000000e+02 2.0999999999999999e-01 4661 6.0000000000000000e+02 9.3000000000000005e-01 4661 2.0000000000000000e+03 1.0000000000000000e+00 4670 2.0000000000000000e+00 7.0000000000000007e-02 4670 6.0000000000000000e+00 1.3000000000000000e-01 4670 2.0000000000000000e+01 3.7000000000000000e-01 4670 6.0000000000000000e+01 9.6999999999999997e-01 4670 2.0000000000000000e+02 9.8999999999999999e-01 4670 6.0000000000000000e+02 1.0000000000000000e+00 4670 2.0000000000000000e+03 1.0000000000000000e+00 4671 2.0000000000000000e+00 8.9999999999999997e-02 4671 6.0000000000000000e+00 1.4000000000000001e-01 4671 2.0000000000000000e+01 3.4999999999999998e-01 4671 6.0000000000000000e+01 9.6999999999999997e-01 4671 2.0000000000000000e+02 1.0000000000000000e+00 4671 6.0000000000000000e+02 1.0000000000000000e+00 4671 2.0000000000000000e+03 1.0000000000000000e+00 4672 2.0000000000000000e+00 1.7999999999999999e-01 4672 6.0000000000000000e+00 2.3000000000000001e-01 4672 2.0000000000000000e+01 4.4000000000000000e-01 4672 6.0000000000000000e+01 9.3999999999999995e-01 4672 2.0000000000000000e+02 9.8999999999999999e-01 4672 6.0000000000000000e+02 1.0000000000000000e+00 4672 2.0000000000000000e+03 1.0000000000000000e+00 4673 2.0000000000000000e+00 1.4000000000000001e-01 4673 6.0000000000000000e+00 1.9000000000000000e-01 4673 2.0000000000000000e+01 4.0000000000000002e-01 4673 6.0000000000000000e+01 9.4999999999999996e-01 4673 2.0000000000000000e+02 9.6999999999999997e-01 4673 6.0000000000000000e+02 9.8999999999999999e-01 4673 2.0000000000000000e+03 1.0000000000000000e+00 4680 2.0000000000000000e+00 4.7299999999999998e-01 4680 6.0000000000000000e+00 5.6899999999999995e-01 4680 2.0000000000000000e+01 7.3599999999999999e-01 4680 6.0000000000000000e+01 8.9100000000000001e-01 4680 2.0000000000000000e+02 9.8399999999999999e-01 4680 6.0000000000000000e+02 9.9900000000000000e-01 4680 2.0000000000000000e+03 1.0000000000000000e+00 4681 2.0000000000000000e+00 5.4400000000000004e-01 4681 6.0000000000000000e+00 6.3700000000000001e-01 4681 2.0000000000000000e+01 8.0300000000000005e-01 4681 6.0000000000000000e+01 8.8800000000000001e-01 4681 2.0000000000000000e+02 9.7699999999999998e-01 4681 6.0000000000000000e+02 9.9900000000000000e-01 4681 2.0000000000000000e+03 1.0000000000000000e+00 4690 1.0000000000000000e+00 1.7399999999999999e-01 4690 2.0000000000000000e+00 2.3200000000000001e-01 4690 5.0000000000000000e+01 7.6200000000000001e-01 4690 1.0000000000000000e+02 9.2300000000000004e-01 4690 2.5000000000000000e+02 9.9500000000000000e-01 4690 5.0000000000000000e+02 9.9900000000000000e-01 4690 2.0000000000000000e+03 1.0000000000000000e+00 4700 1.0000000000000000e+00 2.6500000000000001e-01 4700 2.0000000000000000e+00 3.3100000000000002e-01 4700 5.0000000000000000e+01 8.8400000000000001e-01 4700 1.0000000000000000e+02 9.6499999999999997e-01 4700 2.5000000000000000e+02 9.9500000000000000e-01 4700 5.0000000000000000e+02 9.9800000000000000e-01 4700 2.0000000000000000e+03 1.0000000000000000e+00 4710 1.0000000000000000e+00 9.4000000000000000e-02 4710 2.0000000000000000e+00 1.2800000000000000e-01 4710 5.0000000000000000e+01 4.9199999999999999e-01 4710 1.0000000000000000e+02 8.0200000000000005e-01 4710 2.5000000000000000e+02 9.9099999999999999e-01 4710 5.0000000000000000e+02 9.9600000000000000e-01 4710 2.0000000000000000e+03 9.9900000000000000e-01 4720 1.0000000000000000e+00 4.0000000000000001e-02 4720 2.0000000000000000e+00 4.5999999999999999e-02 4720 5.0000000000000000e+01 9.0999999999999998e-02 4720 1.0000000000000000e+02 2.9499999999999998e-01 4720 2.5000000000000000e+02 7.4600000000000000e-01 4720 5.0000000000000000e+02 8.9900000000000002e-01 4720 2.0000000000000000e+03 9.9800000000000000e-01 4750 4760 4770 2.0000000000000000e+00 2.3999999999999999e-01 4770 2.0000000000000000e+01 5.0000000000000000e-01 4770 2.0000000000000000e+02 8.7000000000000000e-01 4770 2.0000000000000000e+03 9.7999999999999998e-01 4780 2.0000000000000000e+00 2.6000000000000001e-01 4780 2.0000000000000000e+01 5.1000000000000001e-01 4780 2.0000000000000000e+02 9.1000000000000003e-01 4780 2.0000000000000000e+03 9.7999999999999998e-01 4790 2.0000000000000000e+00 2.7000000000000002e-01 4790 2.0000000000000000e+01 3.2000000000000001e-01 4790 2.0000000000000000e+02 6.9999999999999996e-01 4790 2.0000000000000000e+03 9.8999999999999999e-01 4791 2.0000000000000000e+00 2.3000000000000001e-01 4791 2.0000000000000000e+01 2.7000000000000002e-01 4791 2.0000000000000000e+02 7.5000000000000000e-01 4791 2.0000000000000000e+03 9.7999999999999998e-01 4800 2.0000000000000000e+00 2.3999999999999999e-01 4800 2.0000000000000000e+01 5.0000000000000000e-01 4800 2.0000000000000000e+02 8.7000000000000000e-01 4800 2.0000000000000000e+03 9.7999999999999998e-01 4801 2.0000000000000000e+00 2.3999999999999999e-01 4801 2.0000000000000000e+01 5.0000000000000000e-01 4801 2.0000000000000000e+02 8.7000000000000000e-01 4801 2.0000000000000000e+03 9.7999999999999998e-01 4810 1.0000000000000000e+02 2.0000000000000000e-02 4810 2.5000000000000000e+02 1.3000000000000000e-01 4810 5.0000000000000000e+02 4.7999999999999998e-01 4810 1.0000000000000000e+03 9.8999999999999999e-01 4810 2.0000000000000000e+03 1.0000000000000000e+00 4870 4880 4881 4890 4910 4920 4921 4922 4923 4940 2.5000000000000000e+02 3.6199999999999999e-01 4940 5.0000000000000000e+02 6.2000000000000000e-01 4940 7.0000000000000000e+02 8.4199999999999997e-01 4940 1.4000000000000000e+03 1.0009999999999999e+00 4941 2.5000000000000000e+02 3.4799999999999998e-01 4941 5.0000000000000000e+02 5.9099999999999997e-01 4941 7.0000000000000000e+02 8.3799999999999997e-01 4941 1.4000000000000000e+03 1.0009999999999999e+00 4950 2.0000000000000000e+01 1.0000000000000001e-01 4950 1.5000000000000000e+02 5.0000000000000000e-01 4950 3.0000000000000000e+02 5.9999999999999998e-01 4950 2.0000000000000000e+03 1.0000000000000000e+00 4960 fluids-0.1.78/tests/test_mixing.py0000644000175000017500000000440513632560624015711 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest def test_mixing(): t1 = agitator_time_homogeneous(D=36*.0254, N=56/60., P=957., T=1.83, H=1.83, mu=0.018, rho=1020, homogeneity=.995) t2 = agitator_time_homogeneous(D=1, N=125/60., P=298., T=3, H=2.5, mu=.5, rho=980, homogeneity=.95) t3 = agitator_time_homogeneous(N=125/60., P=298., T=3, H=2.5, mu=.5, rho=980, homogeneity=.95) assert_allclose([t1, t2, t3], [15.143198226374668, 67.7575069865228, 51.70865552491966]) Kp = Kp_helical_ribbon_Rieger(D=1.9, h=1.9, nb=2, pitch=1.9, width=.19, T=2) assert_allclose(Kp, 357.39749163259256) t = time_helical_ribbon_Grenville(357.4, 4/60.) assert_allclose(t, 650.980654028894) CoV = size_tee(Q1=11.7, Q2=2.74, D=0.762, D2=None, n=1, pipe_diameters=5) assert_allclose(CoV, 0.2940930233038544) CoV = COV_motionless_mixer(Ki=.33, Q1=11.7, Q2=2.74, pipe_diameters=4.74/.762) assert_allclose(CoV, 0.0020900028665727685) K = K_motionless_mixer(K=150, L=.762*5, D=.762, fd=.01) assert_allclose(K, 7.5) fluids-0.1.78/tests/test_numerics.py0000644000175000017500000006154213632560624016250 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest import numpy as np from fluids.numerics import * from scipy.integrate import quad from math import * def test_horner(): from fluids.numerics import horner assert_allclose(horner([1.0, 3.0], 2.0), 5.0) assert_allclose(horner([3.0], 2.0), 3.0) poly = [1.12, 432.32, 325.5342, .235532, 32.235] assert_allclose(horner_and_der2(poly, 3.0), (14726.109396, 13747.040732, 8553.7884)) assert_allclose(horner_and_der3(poly, 3.0), (14726.109396, 13747.040732, 8553.7884, 2674.56)) def test_interp(): from fluids.numerics import interp # Real world test data a = [0.29916, 0.29947, 0.31239, 0.31901, 0.32658, 0.33729, 0.34202, 0.34706, 0.35903, 0.36596, 0.37258, 0.38487, 0.38581, 0.40125, 0.40535, 0.41574, 0.42425, 0.43401, 0.44788, 0.45259, 0.47181, 0.47309, 0.49354, 0.49924, 0.51653, 0.5238, 0.53763, 0.54806, 0.55684, 0.57389, 0.58235, 0.59782, 0.60156, 0.62265, 0.62649, 0.64948, 0.65099, 0.6687, 0.67587, 0.68855, 0.69318, 0.70618, 0.71333, 0.72351, 0.74954, 0.74965] b = [0.164534, 0.164504, 0.163591, 0.163508, 0.163439, 0.162652, 0.162224, 0.161866, 0.161238, 0.160786, 0.160295, 0.15928, 0.159193, 0.157776, 0.157467, 0.156517, 0.155323, 0.153835, 0.151862, 0.151154, 0.14784, 0.147613, 0.144052, 0.14305, 0.140107, 0.138981, 0.136794, 0.134737, 0.132847, 0.129303, 0.127637, 0.124758, 0.124006, 0.119269, 0.118449, 0.113605, 0.113269, 0.108995, 0.107109, 0.103688, 0.102529, 0.099567, 0.097791, 0.095055, 0.087681, 0.087648] xs = np.linspace(0.29, 0.76, 100) ys = [interp(xi, a, b) for xi in xs.tolist()] ys_numpy = np.interp(xs, a, b) assert_allclose(ys, ys_numpy, atol=1e-12, rtol=1e-11) def test_splev(): from fluids.numerics import splev as my_splev from scipy.interpolate import splev # Originally Dukler_XA_tck tck = [np.array([-2.4791105294648372, -2.4791105294648372, -2.4791105294648372, -2.4791105294648372, 0.14360803483759585, 1.7199938263676038, 1.7199938263676038, 1.7199938263676038, 1.7199938263676038]), np.array([0.21299880246561081, 0.16299733301915248, -0.042340970712679615, -1.9967836909384598, -2.9917366639619414, 0.0, 0.0, 0.0, 0.0]), 3] my_tck = [tck[0].tolist(), tck[1].tolist(), tck[2]] xs = np.linspace(-3, 2, 100) # test extrapolation ys_scipy = splev(xs, tck, ext=0) ys = my_splev(xs, my_tck, ext=0) assert_allclose(ys, ys_scipy) # test truncating to side values ys_scipy = splev(xs, tck, ext=3) ys = my_splev(xs, my_tck, ext=3) assert_allclose(ys, ys_scipy) # Test returning zeros for bad values ys_scipy = splev(xs, tck, ext=1) ys = my_splev(xs, my_tck, ext=1) assert_allclose(ys, ys_scipy) # Test raising an error when extrapolating is not allowed with pytest.raises(ValueError): my_splev(xs, my_tck, ext=2) with pytest.raises(ValueError): splev(xs, my_tck, ext=2) def test_bisplev(): from fluids.numerics import bisplev as my_bisplev from scipy.interpolate import bisplev tck = [np.array([0.0, 0.0, 0.0, 0.0, 0.0213694, 0.0552542, 0.144818, 0.347109, 0.743614, 0.743614, 0.743614, 0.743614]), np.array([0.0, 0.0, 0.25, 0.5, 0.75, 1.0, 1.0]), np.array([1.0001228445490002, 0.9988161050974387, 0.9987070557919563, 0.9979385859402731, 0.9970983069823832, 0.96602540121758, 0.955136014969614, 0.9476842472211648, 0.9351143114374392, 0.9059649602818451, 0.9218915266550902, 0.9086000082864022, 0.8934758292610783, 0.8737960765592091, 0.83185251064324, 0.8664296734965998, 0.8349705397843921, 0.809133298969704, 0.7752206120745123, 0.7344035693011536, 0.817047920445813, 0.7694560150930563, 0.7250979336267909, 0.6766754605968431, 0.629304180420512, 0.7137237030611423, 0.6408238328161417, 0.5772000233279148, 0.504889627280836, 0.440579886434288, 0.6239736474980684, 0.5273646894226224, 0.43995388722059986, 0.34359277007615313, 0.26986439252143746, 0.5640689738382749, 0.4540959882735219, 0.35278120580740957, 0.24364672351604122, 0.1606942128340308]), 3, 1] my_tck = [tck[0].tolist(), tck[1].tolist(), tck[2].tolist(), tck[3], tck[4]] xs = np.linspace(0, 1, 10) zs = np.linspace(0, 1, 10) ys_scipy = bisplev(xs, zs, tck) ys = my_bisplev(xs, zs, my_tck) assert_allclose(ys, ys_scipy) ys_scipy = bisplev(0.5, .7, tck) ys = my_bisplev(.5, .7, my_tck) assert_allclose(ys, ys_scipy) def test_linspace(): from fluids.numerics import linspace calc = linspace(-3,10, endpoint=True, num=8) expect = np.linspace(-3,10, endpoint=True, num=8) assert_allclose(calc, expect) calc = linspace(-3,10, endpoint=False, num=20) expect = np.linspace(-3,10, endpoint=False, num=20) assert_allclose(calc, expect) calc = linspace(0,1e-10, endpoint=False, num=3) expect = np.linspace(0,1e-10, endpoint=False, num=3) assert_allclose(calc, expect) calc = linspace(0,1e-10, endpoint=False, num=2) expect = np.linspace(0,1e-10, endpoint=False, num=2) assert_allclose(calc, expect) calc = linspace(0,1e-10, endpoint=False, num=1) expect = np.linspace(0,1e-10, endpoint=False, num=1) assert_allclose(calc, expect) calc, calc_step = linspace(0,1e-10, endpoint=False, num=2, retstep=True) expect, expect_step = np.linspace(0,1e-10, endpoint=False, num=2, retstep=True) assert_allclose(calc, expect) assert_allclose(calc_step, expect_step) calc, calc_step = linspace(0,1e-10, endpoint=False, num=1, retstep=True) expect, expect_step = np.linspace(0,1e-10, endpoint=False, num=1, retstep=True) assert_allclose(calc, expect) assert isnan(calc_step) # Cannot compare against numpy expect_step - it did not use to give nan in older versions calc, calc_step = linspace(100, 1000, endpoint=False, num=21, retstep=True) expect, expect_step = np.linspace(100, 1000, endpoint=False, num=21, retstep=True) assert_allclose(calc, expect) assert_allclose(calc_step, expect_step) def test_logspace(): from fluids.numerics import logspace calc = logspace(3,10, endpoint=True, num=8) expect = np.logspace(3,10, endpoint=True, num=8) assert_allclose(calc, expect) calc = logspace(3,10, endpoint=False, num=20) expect = np.logspace(3,10, endpoint=False, num=20) assert_allclose(calc, expect) calc = logspace(0,1e-10, endpoint=False, num=3) expect = np.logspace(0,1e-10, endpoint=False, num=3) assert_allclose(calc, expect) calc = logspace(0,1e-10, endpoint=False, num=2) expect = np.logspace(0,1e-10, endpoint=False, num=2) assert_allclose(calc, expect) calc = logspace(0,1e-10, endpoint=False, num=1) expect = np.logspace(0,1e-10, endpoint=False, num=1) assert_allclose(calc, expect) calc = logspace(0,1e-10, endpoint=False, num=2) expect = np.logspace(0,1e-10, endpoint=False, num=2) assert_allclose(calc, expect) calc = logspace(0,1e-10, endpoint=False, num=1) expect = np.logspace(0,1e-10, endpoint=False, num=1) assert_allclose(calc, expect) calc = logspace(100, 200, endpoint=False, num=21) expect = np.logspace(100, 200, endpoint=False, num=21) assert_allclose(calc, expect) def test_diff(): from fluids.numerics import diff test_arrs = [np.ones(10), np.zeros(10), np.arange(1, 10), np.arange(1, 10)*25.1241251, (np.arange(1, 10)**1.2), (10.1 + np.arange(1, 10)**20), (10.1 + np.linspace(-100, -10, 9)), (np.logspace(-10, -100, 19)**1.241), (np.logspace(10, 100, 15)**1.241) ] for test_arr in test_arrs: arr = test_arr.tolist() for n in range(5): diff_np = np.diff(arr, n=n) diff_py = diff(arr, n=n) assert_allclose(diff_np, diff_py) assert tuple(diff([1,2,3], n=0)) == tuple([1,2,3]) with pytest.raises(Exception): diff([1,2,3], n=-1) def test_fit_integral_linear_extrapolation(): coeffs = [-6.496329615255804e-23,2.1505678500404716e-19, -2.2204849352453665e-16, 1.7454757436517406e-14, 9.796496485269412e-11, -4.7671178529502835e-08, 8.384926355629239e-06, -0.0005955479316119903, 29.114778709934264] Tmin, Tmax = 50.0, 1000.0 Tmin_value, Tmax_value = 29.10061916353635, 32.697696220612684 Tmin_slope, Tmax_slope = 9.512557609301246e-06, 0.005910807286115391 int_coeffs = polyint(coeffs) T_int_T_coeffs, log_coeff = polyint_over_x(coeffs) def func(T): if T < Tmin: Cp = (T - Tmin)*Tmin_slope + Tmin_value elif T > Tmax: Cp = (T - Tmax)*Tmax_slope + Tmax_value else: Cp = horner(coeffs, T) return Cp assert_allclose(func(300), 29.12046448327871, rtol=1e-12) Ts = [0, 1, 25, 49, 50, 51, 500, 999, 1000, 1001, 2000, 50000] T_ends = [0, Tmin, Tmin*2.0, Tmax, Tmax*2.0] expect_values = [0.0, 0.0, 29.10014829193469, -29.10014829193469, 727.50656106565, -727.50656106565, 1425.9184530725483, -1425.9184530725483, 1455.0190674798057, -1455.0190674798057, 1484.119654811151, -1484.119654811151, 14588.023573849947, -14588.023573849947, 30106.09421115182, -30106.09421115182, 30138.789058157658, -30138.789058157658, 30171.489709781912, -30171.489709781912, 65791.88892182804, -65791.88892182804, 8728250.050849704, -8728250.050849704, -1455.0190674798057, 1455.0190674798057, -1425.918919187871, 1425.918919187871, -727.5125064141557, 727.5125064141557, -29.100614407257353, 29.100614407257353, 0.0, 0.0, 29.100587331345196, -29.100587331345196, 13133.004506370142, -13133.004506370142, 28651.075143672013, -28651.075143672013, 28683.76999067785, -28683.76999067785, 28716.470642302105, -28716.470642302105, 64336.869854348224, -64336.869854348224, 8726795.031782223, -8726795.031782223, -2910.0427925248396, 2910.0427925248396, -2880.942644232905, 2880.942644232905, -2182.53623145919, 2182.53623145919, -1484.1243394522915, 1484.1243394522915, -1455.023725045034, 1455.023725045034, -1425.923137713689, 1425.923137713689, 11677.980781325108, -11677.980781325108, 27196.05141862698, -27196.05141862698, 27228.746265632813, -27228.746265632813, 27261.446917257068, -27261.446917257068, 62881.84612930319, -62881.84612930319, 8725340.008057179, -8725340.008057179, -30138.789058157658, 30138.789058157658, -30109.688909865723, 30109.688909865723, -29411.282497092005, 29411.282497092005, -28712.870605085107, 28712.870605085107, -28683.76999067785, 28683.76999067785, -28654.669403346503, 28654.669403346503, -15550.765484307707, 15550.765484307707, -32.6948470058378, 32.6948470058378, 0.0, 0.0, 32.70065162425453, -32.70065162425453, 35653.09986367037, -35653.09986367037, 8698111.261791546, -8698111.261791546, -65791.88892182804, 65791.88892182804, -65762.7887735361, 65762.7887735361, -65064.38236076238, 65064.38236076238, -64365.97046875548, 64365.97046875548, -64336.869854348224, 64336.869854348224, -64307.769267016876, 64307.769267016876, -51203.86534797808, 51203.86534797808, -35685.794710676215, 35685.794710676215, -35653.09986367037, 35653.09986367037, -35620.39921204612, 35620.39921204612, 0.0, 0.0, 8662458.161927875, -8662458.161927875] numericals = [] analyticals = [] analyticals2 = [] for Tend in T_ends: for Tdiff in Ts: for (T1, T2) in zip([Tend, Tdiff], [Tdiff, Tend]): analytical = fit_integral_linear_extrapolation(T1, T2, int_coeffs, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope) analytical2 = (best_fit_integral_value(T2, int_coeffs, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope) - best_fit_integral_value(T1, int_coeffs, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope)) # numerical = quad(func, T1, T2, epsabs=1.49e-14, epsrel=1.49e-14)[0] # numericals.append(numerical) analyticals.append(analytical) analyticals2.append(analytical2) # print(analyticals) # assert_allclose(analyticals, numericals, rtol=1e-7) # assert_allclose(analyticals2, numericals, rtol=1e-7) assert_allclose(analyticals, expect_values, rtol=1e-12) assert_allclose(analyticals2, expect_values, rtol=1e-12) # Cannot have temperatures of 0 absolute for integrals over T cases Ts = [1e-9, 1, 25, 49, 50, 51, 500, 999, 1000, 1001, 2000, 50000] T_ends = [1e-9, Tmin, Tmin*2.0, Tmax, Tmax*2.0] expect_values = [0.0, 0.0, 603.0500198952521, -603.0500198952521, 696.719996723752, -696.719996723752, 716.3030057880156, -716.3030057880156, 716.890916983322, -716.890916983322, 717.467185070396, -717.467185070396, 783.9851859794122, -783.9851859794122, 805.3820356163964, -805.3820356163964, 805.4147468212567, -805.4147468212567, 805.4474311329551, -805.4474311329551, 829.8928106482913, -829.8928106482913, 1199.8352295965128, -1199.8352295965128, -716.890916983322, 716.890916983322, -113.84089708806982, 113.84089708806982, -20.170920259569826, 20.170920259569826, -0.5879111953062761, 0.5879111953062761, 0.0, 0.0, 0.5762680870740127, -0.5762680870740127, 67.09426899609028, -67.09426899609028, 88.4911186330744, -88.4911186330744, 88.5238298379347, -88.5238298379347, 88.5565141496331, -88.5565141496331, 113.00189366496929, -113.00189366496929, 482.94431261319096, -482.94431261319096, -737.0618021522312, 737.0618021522312, -134.01178225697902, 134.01178225697902, -40.34180542847902, 40.34180542847902, -20.75879636421547, 20.75879636421547, -20.170885168909194, 20.170885168909194, -19.59461708183518, 19.59461708183518, 46.923383827181084, -46.923383827181084, 68.3202334641652, -68.3202334641652, 68.3529446690255, -68.3529446690255, 68.38562898072391, -68.38562898072391, 92.8310084960601, -92.8310084960601, 462.77342744428177, -462.77342744428177, -805.4147468212567, 805.4147468212567, -202.36472692600452, 202.36472692600452, -108.69475009750452, 108.69475009750452, -89.11174103324097, 89.11174103324097, -88.5238298379347, 88.5238298379347, -87.94756175086069, 87.94756175086069, -21.42956084184442, 21.42956084184442, -0.03271120486030554, 0.03271120486030554, 0.0, 0.0, 0.03268431169840369, -0.03268431169840369, 24.47806382703459, -24.47806382703459, 394.42048277525623, -394.42048277525623, -829.8928106482913, 829.8928106482913, -226.8427907530391, 226.8427907530391, -133.17281392453913, 133.17281392453913, -113.58980486027556, 113.58980486027556, -113.00189366496929, 113.00189366496929, -112.42562557789527, 112.42562557789527, -45.90762466887901, 45.90762466887901, -24.510775031894894, 24.510775031894894, -24.47806382703459, 24.47806382703459, -24.445379515336185, 24.445379515336185, 0.0, 0.0, 369.94241894822164, -369.94241894822164] numericals = [] analyticals = [] analyticals2 = [] for Tend in T_ends: for Tdiff in Ts: for (T1, T2) in zip([Tend, Tdiff], [Tdiff, Tend]): analytical = fit_integral_over_T_linear_extrapolation(T1, T2, T_int_T_coeffs, log_coeff, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope) analytical2 = (best_fit_integral_over_T_value(T2, T_int_T_coeffs, log_coeff, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope) - best_fit_integral_over_T_value(T1, T_int_T_coeffs, log_coeff, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope)) # numerical = quad(lambda T: func(float(T))/T, T1, T2, epsabs=1.49e-12, epsrel=1.49e-14)[0] # numericals.append(numerical) analyticals.append(analytical) analyticals2.append(analytical2) # # assert_allclose(analyticals, numericals, rtol=1e-7) # assert_allclose(analyticals2, numericals, rtol=1e-7) assert_allclose(analyticals, expect_values, rtol=1e-11) assert_allclose(analyticals2, expect_values, rtol=1e-11) def test_best_bounding_bounds(): def to_solve(x): return exp(x) - 100 vals = best_bounding_bounds(0, 5, to_solve, xs_pos=[4.831, 4.6054], ys_pos= [25.38, 0.0288], xs_neg=[4, 4.533, 4.6051690], ys_neg=[-45.40, -6.933, -0.0001139]) assert_allclose(vals, (4.605169, 4.6054, -0.0001139, 0.0288), rtol=1e-12) vals = best_bounding_bounds(4.60517018598, 5, to_solve, xs_pos=[4.831, 4.6054], ys_pos= [25.38, 0.0288], xs_neg=[4, 4.533, 4.6051690], ys_neg=[-45.40, -6.933, -0.0001139]) assert_allclose(vals, (4.60517018598, 4.6054, -8.091802783383173e-10, 0.0288), rtol=1e-12) vals = best_bounding_bounds(0, 4.60517018599, to_solve, xs_pos=[4.831, 4.6054], ys_pos= [25.38, 0.0288], xs_neg=[4, 4.533, 4.6051690], ys_neg=[-45.40, -6.933, -0.0001139]) assert_allclose(vals, (4.605169, 4.60517018599, -0.0001139, 1.908233571157325e-10), rtol=1e-12) vals = best_bounding_bounds(0, 4.60517018599, fa=to_solve(0), fb=to_solve(4.60517018599), xs_pos=[4.831, 4.6054], ys_pos= [25.38, 0.0288], xs_neg=[4, 4.533, 4.6051690], ys_neg=[-45.40, -6.933, -0.0001139]) assert_allclose(vals, (4.605169, 4.60517018599, -0.0001139, 1.908233571157325e-10), rtol=1e-12) def test_is_poly_positive(): assert not is_poly_positive([4, 3, 2, 1]) for high in range(0, 100, 5): assert is_poly_positive([4, 3, 2, 1], domain=(0, 10**high)) coeffs_4alpha = [2.1570803657937594e-10, 2.008831101045556e-06, -0.004656598178209313, 2.8575882247542514] assert not is_poly_positive(coeffs_4alpha) assert is_poly_positive(coeffs_4alpha, domain=(0, 511)) assert is_poly_positive(coeffs_4alpha, domain=(-10000, 511)) assert not is_poly_positive(coeffs_4alpha, domain=(-20000, 511)) assert not is_poly_positive(coeffs_4alpha, domain=(-15000, 511)) assert not is_poly_positive(coeffs_4alpha, domain=(-13000, 511)) assert not is_poly_positive(coeffs_4alpha, domain=(-11500, 511)) def test_roots_quartic(): coeffs = [1.0, -3.274390673429134, 0.3619541556604501, 2.4841800045762747, -0.49619076425603237] expect_roots = ((-0.8246324500888049+1.1609047395516947e-17j), (0.2041867922778502-3.6197168963943884e-17j), (1.027869356838059+2.910620457054182e-17j), (2.86696697440203-4.51808300211488e-18j)) expect_mp_roots_real = [-0.824632450088805, 0.20418679227785, 1.0278693568380592, 2.86696697440203] roots_calc = roots_quartic(*coeffs) assert_allclose(expect_roots, roots_calc, rtol=1e-9) assert_allclose(expect_mp_roots_real, [i.real for i in roots_calc], rtol=1e-9) def test_array_as_tridiagonals(): A = [[10.0, 2.0, 0.0, 0.0], [3.0, 10.0, 4.0, 0.0], [0.0, 1.0, 7.0, 5.0], [0.0, 0.0, 3.0, 4.0]] tridiagonals = array_as_tridiagonals(A) expect_diags = [[3.0, 1.0, 3.0], [10.0, 10.0, 7.0, 4.0], [2.0, 4.0, 5.0]] assert_allclose(tridiagonals[0], expect_diags[0], rtol=0, atol=0) assert_allclose(tridiagonals[1], expect_diags[1], rtol=0, atol=0) assert_allclose(tridiagonals[2], expect_diags[2], rtol=0, atol=0) A = np.array(A) tridiagonals = array_as_tridiagonals(A) assert_allclose(tridiagonals[0], expect_diags[0], rtol=0, atol=0) assert_allclose(tridiagonals[1], expect_diags[1], rtol=0, atol=0) assert_allclose(tridiagonals[2], expect_diags[2], rtol=0, atol=0) a, b, c = [3.0, 1.0, 3.0], [10.0, 10.0, 7.0, 4.0], [2.0, 4.0, 5.0] expect_mat = tridiagonals_as_array(a, b, c) assert_allclose(expect_mat, A, rtol=0, atol=0) d = [3.0, 4.0, 5.0, 6.0] solved_expect = [0.1487758945386064, 0.756120527306968, -1.001883239171375, 2.2514124293785316] assert_allclose(solve_tridiagonal(a, b, c, d), solved_expect, rtol=1e-12) def test_subset_matrix(): kijs = [[0, 0.00076, 0.00171], [0.00076, 0, 0.00061], [0.00171, 0.00061, 0]] expect = [[0, 0.00061], [0.00061, 0]] got = subset_matrix(kijs, [1,2]) assert_allclose(expect, got, atol=0, rtol=0) got = subset_matrix(kijs, slice(1, 3, 1)) assert_allclose(expect, got, atol=0, rtol=0) expect = [[0, 0.00171], [0.00171, 0]] got = subset_matrix(kijs, [0,2]) assert_allclose(expect, got, atol=0, rtol=0) got = subset_matrix(kijs, slice(0, 3, 2)) assert_allclose(expect, got, atol=0, rtol=0) expect = [[0, 0.00076], [0.00076, 0]] got = subset_matrix(kijs, [0,1]) assert_allclose(expect, got, atol=0, rtol=0) got = subset_matrix(kijs, slice(0, 2, 1)) assert_allclose(expect, got, atol=0, rtol=0) got = subset_matrix(kijs, [0,1, 2]) assert_allclose(kijs, got, atol=0, rtol=0) got = subset_matrix(kijs, slice(0, 3, 1)) assert_allclose(kijs, got, atol=0, rtol=0) def test_translate_bound_func(): def rosen_test(x): x, y = x return (1.0 - x)**2 + 100.0*(y - x**2)**2 f, into, outof = translate_bound_func(rosen_test, low=[-2, -.2], high=[3.0, 4]) point = [.6, .7] in_exp = [0.0800427076735365, -1.2992829841302609] assert_allclose(into(point), in_exp, rtol=1e-12) assert_allclose(outof(in_exp), point, rtol=1e-12) assert f(into([1, 1])) < 1e-20 assert_allclose(outof(into([1, 1])), [1, 1], rtol=1e-12) f, into, outof = translate_bound_func(rosen_test, bounds=[[-2, 3], [-.2, 4]]) point = [.6, .7] in_exp = [0.0800427076735365, -1.2992829841302609] assert_allclose(into(point), in_exp, rtol=1e-12) assert_allclose(outof(in_exp), point, rtol=1e-12) assert f(into([1, 1])) < 1e-20 assert_allclose(outof(into([1, 1])), [1, 1], rtol=1e-12) def test_translate_bound_jac(): from scipy.optimize import rosen_der def rosen_test(x): x, y = x return (1.0 - x)**2 + 100.0*(y - x**2)**2 j, into, outof = translate_bound_jac(rosen_der, low=[-2, -.2], high=[3.0, 4]) f, into, outof = translate_bound_func(rosen_test, low=[-2, -.2], high=[3.0, 4]) point = [3, -2] jac_num = jacobian(f, point, perturbation=1e-8) jac_anal = j(point) assert_allclose(jac_num, jac_anal, rtol=1e-6) def test_translate_bound_f_jac(): from scipy.optimize import rosen_der def rosen_test(x): x, y = x return (1.0 - x)**2 + 100.0*(y - x**2)**2 low, high = [-2, -.2], [3.0, 4] f_j, into, outof = translate_bound_f_jac(rosen_test, rosen_der, low=low, high=high) point = [3, -2] f0, j0 = f_j(point) f0_check = translate_bound_func(rosen_test, low=low, high=high)[0](point) assert_allclose(f0_check, f0, rtol=1e-13) j0_check = translate_bound_jac(rosen_der, low=low, high=high)[0](point) assert_allclose(j0_check, j0, rtol=1e-13)fluids-0.1.78/tests/test_particle_size_distribution.py0000644000175000017500000010061713632560624022054 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * import numpy as np from numpy.testing import assert_allclose from fluids.numerics import assert_close import pytest from fluids.particle_size_distribution import * import scipy.stats from random import uniform from scipy.integrate import quad def test_ASTM_E11_sieves(): sieves = ASTM_E11_sieves.values() tot = sum([i.d_wire for i in sieves]) assert_allclose(tot, 0.105963384) tot = sum([i.opening for i in sieves]) assert_allclose(tot, 0.9876439999999999) assert len(ASTM_E11_sieves) == 56 # Test but do not validate these properties tot = 0.0 for attr in ['Y_variation_avg', 'X_variation_max', 'max_opening', 'd_wire', 'd_wire_min', 'd_wire_max', 'opening', 'opening_inch']: tot += sum(getattr(i, attr) for i in sieves) def test_ISO_3310_2_sieves(): sieves = ISO_3310_1_sieves.values() tot = sum([i.d_wire for i in sieves]) assert_allclose(tot, 0.17564599999999997) tot = sum([i.opening for i in sieves]) assert_allclose(tot, 1.5205579999999994) assert len(ISO_3310_1_sieves) == 99 # Test but do not validate these properties tot = 0.0 for attr in ['Y_variation_avg', 'X_variation_max', 'd_wire', 'd_wire_min', 'd_wire_max', 'opening']: tot += sum(getattr(i, attr) for i in sieves) for l in [ISO_3310_1_R20_3, ISO_3310_1_R20, ISO_3310_1_R10, ISO_3310_1_R40_3]: for i in l: assert i.designation in ISO_3310_1_sieves def test_ParticleSizeDistribution_basic(): ds = [240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532] numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] number_fractions = [0.010640039286298903, 0.01947945653953184, 0.03797675560648224, 0.06711409395973154, 0.102962841708954, 0.13897528237027337, 0.16205598297593715, 0.160582746767065, 0.13504665247994763, 0.09477819610410869, 0.048616794892781146, 0.01816991324275659, 0.0034375511540350305, 0.0001636929120969062] length_fractions = [0.0022265080273913248, 0.005405749400984079, 0.013173675010801534, 0.02909808308708846, 0.05576732372469186, 0.09403390879219536, 0.1370246122004729, 0.16966553692650058, 0.17831420382670332, 0.15641421494054603, 0.10028800800464328, 0.046849963047687335, 0.011078803825079166, 0.0006594091852147985] area_fractions = [0.0003643458522227456, 0.0011833425086503686, 0.0036047198267710797, 0.009951607879295004, 0.023826910138492176, 0.05018962198499494, 0.09139246506396961, 0.1414069073893575, 0.18572285033413602, 0.20362023102799823, 0.16318760564859225, 0.09528884410476045, 0.028165197280747324, 0.0020953509600122053] fractions = [4.8560356399310335e-05, 0.00021291794698947167, 0.0008107432330218852, 0.0027975134942445257, 0.00836789808490677, 0.02201901107895143, 0.05010399231412809, 0.0968727835386488, 0.15899879607747244, 0.2178784903712532, 0.21825921197532888, 0.159302671180342, 0.05885464261922434, 0.0054727677290887945] fraction_cdf = [4.856035639931034e-05, 0.0002614783033887821, 0.0010722215364106676, 0.003869735030655194, 0.012237633115561966, 0.0342566441945134, 0.0843606365086415, 0.18123342004729032, 0.34023221612476284, 0.5581107064960161, 0.7763699184713451, 0.9356725896516871, 0.9945272322709114, 1.0000000000000002] area_cdf = [0.00036434585222274563, 0.0015476883608731143, 0.005152408187644195, 0.015104016066939202, 0.038930926205431385, 0.08912054819042634, 0.18051301325439598, 0.3219199206437535, 0.5076427709778896, 0.7112630020058879, 0.8744506076544801, 0.9697394517592406, 0.9979046490399879, 1.0] length_cdf = [0.0022265080273913248, 0.007632257428375404, 0.020805932439176937, 0.0499040155262654, 0.10567133925095726, 0.1997052480431526, 0.3367298602436255, 0.506395397170126, 0.6847096009968294, 0.8411238159373755, 0.9414118239420188, 0.9882617869897061, 0.9993405908147853, 1.0000000000000002] number_cdf = [0.010640039286298902, 0.030119495825830737, 0.06809625143231296, 0.13521034539204452, 0.2381731871009985, 0.3771484694712718, 0.5392044524472088, 0.6997871992142738, 0.8348338516942214, 0.9296120477983301, 0.9782288426911112, 0.9963987559338677, 0.9998363070879027, 0.9999999999999997] opts = [ {'fractions': numbers, 'cdf': False, 'order': 0}, {'fractions': number_fractions, 'cdf': False, 'order': 0}, {'fractions': length_fractions, 'cdf': False, 'order': 1}, {'fractions': area_fractions, 'cdf': False, 'order': 2}, {'fractions': fractions, 'cdf': False, 'order': 3}, {'fractions': fraction_cdf, 'cdf': True, 'order': 3}, {'fractions': area_cdf, 'cdf': True, 'order': 2}, {'fractions': length_cdf, 'cdf': True, 'order': 1}, {'fractions': number_cdf, 'cdf': True, 'order': 0}] for opt in opts: asme_e799 = ParticleSizeDistribution(ds=ds, **opt) d10 = asme_e799.mean_size(1, 0) assert_close(d10, 1459.3725650679328) d21 = asme_e799.mean_size(2, 1) assert_close(d21, 1857.7888572055529) d20 = asme_e799.mean_size(2, 0) assert_close(d20, 1646.5740462835831) d32 = asme_e799.mean_size(3, 2) assert_close(d32, 2269.3210317450453) # This one is rounded to 2280 in ASME - weird d31 = asme_e799.mean_size(3, 1) assert_close(d31, 2053.2703977309357) # This one is rounded to 2060 in ASME - weird d30 = asme_e799.mean_size(3, 0) assert_close(d30, 1832.39665294744) d43 = asme_e799.mean_size(4, 3) assert_close(d43, 2670.751954612969) # The others are, rounded to the nearest 10, correct. # There's something weird about the end points of some intermediate values of # D3 and D4. Likely just rounding issues. vol_percents_exp = [0.005, 0.021, 0.081, 0.280, 0.837, 2.202, 5.010, 9.687, 15.900, 21.788, 21.826, 15.930, 5.885, 0.547] assert vol_percents_exp == [round(i*100, 3) for i in asme_e799.fractions] assert_allclose(asme_e799.fractions, fractions) assert_allclose(asme_e799.number_fractions, number_fractions) # i, i distributions d00 = asme_e799.mean_size(0, 0) assert_close(d00, 1278.7057976023061) d11 = asme_e799.mean_size(1, 1) assert_close(d11, 1654.6665309027303) d22 = asme_e799.mean_size(2, 2) assert_close(d22, 2054.3809583432208) d33 = asme_e799.mean_size(3, 3) assert_close(d33, 2450.886241250387) d44 = asme_e799.mean_size(4, 4) assert_close(d44, 2826.0471682278476) vssa = asme_e799.vssa assert_close(vssa, 0.0026656187302839165) def test_pdf_lognormal(): pdf = pdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1) assert_allclose(pdf, 405.5420921156425, rtol=1E-12) pdf_sp = scipy.stats.lognorm.pdf(x=1E-4/1E-5, s=1.1)/1E-5 assert_allclose(pdf_sp, pdf) assert 0.0 == pdf_lognormal(d=0, d_characteristic=1E-5, s=1.1) # Check we can get down almost to zero pdf = pdf_lognormal(d=3.7E-24, d_characteristic=1E-5, s=1.1) assert_allclose(pdf, 4.842842147909424e-301) def test_cdf_lognormal(): cdf = cdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1) assert_allclose(cdf, 0.98183698757981763) cdf_sp = scipy.stats.lognorm.cdf(x=1E-4/1E-5, s=1.1) assert_allclose(cdf, cdf_sp) assert cdf_lognormal(d=1e300, d_characteristic=1E-5, s=1.1) == 1.0 assert cdf_lognormal(d=0, d_characteristic=1E-5, s=1.1) == 0.0 def test_pdf_lognormal_basis_integral(): ans = pdf_lognormal_basis_integral(d=1E-4, d_characteristic=1E-5, s=1.1, n=-2) assert_allclose(ans, 56228306549.263626) # Some things: ans = pdf_lognormal_basis_integral(d=1E-100, d_characteristic=1E-5, s=1.1, n=-2) ans2 = pdf_lognormal_basis_integral(d=1E-120, d_characteristic=1E-5, s=1.1, n=-2) assert_allclose(ans, ans2, rtol=1E-12) # Couldn't get the limit for pdf_lognormal_basis_integral when d = 0 # # with Sympy Or wolfram @pytest.mark.fuzz @pytest.mark.slow def test_pdf_lognormal_basis_integral_fuzz(): # The actual integral testing analytical_vales = [] numerical_values = [] for n in [-3, -2, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]: # Errors at -2 (well, prevision loss anyway) for d_max in [1e-3, 1e-2, 2e-2, 3e-2, 4e-2, 5e-2, 6e-2, 7e-2, 8e-2, 1e-1]: d_max = d_max/100 # Make d smaller analytical = (pdf_lognormal_basis_integral(d_max, d_characteristic=1E-5, s=1.1, n=n) - pdf_lognormal_basis_integral(1e-20, d_characteristic=1E-5, s=1.1, n=n)) to_int = lambda d : d**n*pdf_lognormal(d, d_characteristic=1E-5, s=1.1) points = np.logspace(np.log10(d_max/1000), np.log10(d_max*.999), 40) numerical = quad(to_int, 1e-9, d_max, points=points)[0] # points=points analytical_vales.append(analytical) numerical_values.append(numerical) assert_allclose(analytical_vales, numerical_values, rtol=2E-6) def test_cdf_Gates_Gaudin_Schuhman(): ''' d, d_max, n, m = symbols('d, d_max, n, m') expr = (d/d_max)**n pdf = diff(expr, d) ''' cdf = cdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3) assert_allclose(cdf, 0.024681354508800397) cdf = cdf_Gates_Gaudin_Schuhman(d=1.01e-3, d_characteristic=1E-3, m=2.3) assert_allclose(cdf, 1) def test_pdf_Gates_Gaudin_Schuhman(): pdf = pdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3) assert_allclose(pdf, 283.8355768512045) pdf = pdf_Gates_Gaudin_Schuhman(d=2E-3, d_characteristic=1E-3, m=2.3) assert_allclose(pdf, 0) def test_pdf_Gates_Gaudin_Schuhman_basis_integral(): ans = pdf_Gates_Gaudin_Schuhman_basis_integral(d=0, d_characteristic=1e-3, m=2.3, n=5) assert_allclose(ans, 0) ans = pdf_Gates_Gaudin_Schuhman_basis_integral(d=1e-3, d_characteristic=1e-3, m=2.3, n=5) assert_allclose(ans, 3.1506849315068495e-16) @pytest.mark.slow @pytest.mark.fuzz def test_pdf_Gates_Gaudin_Schuhman_basis_integral_fuzz(): '''Note: Test takes 10x longer with the quad/points. ''' analytical_vales = [] numerical_values = [] for n in [-1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]: # Errors at -2 (well, prevision loss anyway) for d_max in [1e-3, 1e-2, 2e-2, 3e-2, 4e-2, 5e-2, 6e-2, 7e-2, 8e-2, 1e-1]: d_max = d_max/100 # d cannot be larger than d_max analytical = (pdf_Gates_Gaudin_Schuhman_basis_integral(d_max, 1E-3, 2.3, n) - pdf_Gates_Gaudin_Schuhman_basis_integral(1E-20, 1E-3, 2.3, n)) to_int = lambda d : d**n*pdf_Gates_Gaudin_Schuhman(d, 1E-3, 2.3) # points = np.logspace(np.log10(d_max/2000), np.log10(d_max*.999), 30) numerical = quad(to_int, 1E-20, d_max)[0] # points=points analytical_vales.append(analytical) numerical_values.append(numerical) # The precision here is amazing actually, 1e-14 passes # assert_allclose(analytical, numerical, rtol=1E-7) assert_allclose(analytical_vales, numerical_values, rtol=1E-7) def test_cdf_Rosin_Rammler(): cdf = cdf_Rosin_Rammler(5E-2, 200, 2) assert_allclose(cdf, 0.3934693402873667) def test_pdf_Rosin_Rammler(): ''' from sympy import * d, k, n = symbols('d, k, n') model = 1 - exp(-k*d**n) print(latex(diff(model, d))) ''' pdf = pdf_Rosin_Rammler(1E-3, 200, 2) assert_allclose(pdf, 0.3999200079994667) # quad to_quad = lambda d: pdf_Rosin_Rammler(d, 200, 2) cdf_int = quad(to_quad, 0, 5e-2)[0] cdf_known = cdf_Rosin_Rammler(5E-2, 200, 2) assert_allclose(cdf_int, cdf_known) assert_allclose(1, quad(to_quad, 0, 5)[0]) assert 0 == pdf_Rosin_Rammler(0, 200, 2) def test_pdf_Rosin_Rammler_basis_integral(): ans = pdf_Rosin_Rammler_basis_integral(5E-2, 200, 2, 3) assert_allclose(ans, -0.00045239898439007338) # Test no error pdf_Rosin_Rammler_basis_integral(0, 200, 2, 3) @pytest.mark.slow @pytest.mark.fuzz def test_pdf_Rosin_Rammler_basis_integral_fuzz(): for n in [1.0, 2.0, 3.0]: # Lower d_maxes have for d_max in [ 1e-3, 1e-2, 2e-2, 3e-2, 4e-2, 5e-2, 6e-2, 7e-2, 8e-2, 1e-1]: analytical = (pdf_Rosin_Rammler_basis_integral(d_max, 200, 2, n) - pdf_Rosin_Rammler_basis_integral(1E-20, 200, 2, n)) to_int = lambda d : d**n*pdf_Rosin_Rammler(d, 200, 2) points = np.logspace(np.log10(d_max/2000), np.log10(d_max*.999), 30) numerical = quad(to_int, 1E-20, d_max, points=points)[0] assert_allclose(analytical, numerical, rtol=1E-5) def testPSDLognormal_meshes(): a = PSDLognormal(s=0.5, d_characteristic=5E-6) ds_expect = [5.011872336272722e-07, 6.309573444801932e-07, 7.943282347242815e-07, 1e-06] ds = a.ds_discrete(d_max=1e-6, method='R10', pts=4) assert_allclose(ds_expect, ds) ds = a.ds_discrete(d_min=1e-6, method='R10', pts=4) assert_allclose(ds, [1e-06, 1.2589254117941672e-06, 1.5848931924611134e-06, 1.9952623149688796e-06]) @pytest.mark.slow def test_PSDLognormal_mean_sizes_numerical(): '''Takes like 10 seconds. ''' # ISO standard example, done numerically a = PSDLognormal(s=0.5, d_characteristic=5E-6) ds = a.ds_discrete(d_max=1, pts=1E5) fractions = a.fractions_discrete(ds) disc = ParticleSizeDistribution(ds=ds, fractions=fractions, order=3) d20 = disc.mean_size(2, 0) assert_allclose(d20, 3.033E-6, rtol=0, atol=1E-9) d10 = disc.mean_size(1, 0) assert_allclose(d10, 2.676E-6, rtol=0, atol=1E-9) d21 = disc.mean_size(2, 1) assert_allclose(d21, 3.436E-6, rtol=0, atol=1E-9) d32 = disc.mean_size(3, 2) # Does match, need 6E6 pts to get the last digit to round right assert_allclose(d32, 4.412E-6, rtol=0, atol=1E-9) d43 = disc.mean_size(4, 3) assert_allclose(d43, 5.666E-6, rtol=0, atol=1E-9) d33 = disc.mean_size(3.0, 3.0) assert_allclose(d33, 5.000E-6, rtol=0, atol=1E-9) d00 = disc.mean_size(0.0, 0.0) assert_allclose(d00, 2.362E-6, rtol=0, atol=1E-9) @pytest.mark.slow def test_PSDCustom_mean_sizes_numerical(): distribution = scipy.stats.lognorm(s=0.5, scale=5E-6) disc = PSDCustom(distribution) d20 = disc.mean_size(2, 0) assert_allclose(d20, 3.0326532985631672e-06, rtol=1E-8) d10 = disc.mean_size(1, 0) assert_allclose(d10, 2.6763071425949508e-06, rtol=1E-8) d21 = disc.mean_size(2, 1) assert_allclose(d21, 3.4364463939548618e-06, rtol=1E-8) d32 = disc.mean_size(3, 2) assert_allclose(d32, 4.4124845129229773e-06, rtol=1E-8) d43 = disc.mean_size(4, 3) assert_allclose(d43, 5.6657422653341318e-06, rtol=1E-3) def test_PSDLognormal_mean_sizes_analytical(): disc = PSDLognormal(s=0.5, d_characteristic=5E-6) d20 = disc.mean_size(2, 0) assert_allclose(d20, 3.033E-6, rtol=0, atol=1E-9) assert_allclose(d20, 3.0326532985631672e-06, rtol=1E-12) assert_allclose(d20, disc.mean_size_ISO(2, 0), rtol=1E-12) d10 = disc.mean_size(1, 0) assert_allclose(d10, 2.676E-6, rtol=0, atol=1E-9) assert_allclose(d10, 2.6763071425949508e-06, rtol=1E-12) assert_allclose(d10, disc.mean_size_ISO(1, 0), rtol=1E-12) d21 = disc.mean_size(2, 1) assert_allclose(d21, 3.436E-6, rtol=0, atol=1E-9) assert_allclose(d21, 3.4364463939548618e-06, rtol=1E-12) assert_allclose(d21, disc.mean_size_ISO(1, 1), rtol=1E-12) d32 = disc.mean_size(3, 2) assert_allclose(d32, 4.412E-6, rtol=0, atol=1E-9) assert_allclose(d32, 4.4124845129229773e-06, rtol=1E-12) assert_allclose(d32, disc.mean_size_ISO(1, 2), rtol=1E-12) d43 = disc.mean_size(4, 3) assert_allclose(d43, 5.666E-6, rtol=0, atol=1E-9) assert_allclose(d43, 5.6657422653341318e-06, rtol=1E-12) assert_allclose(d43, disc.mean_size_ISO(1, 3), rtol=1E-12) assert_allclose(disc.vssa, 1359778.1436801916) # There guys - need more work d33 = disc.mean_size(3.0, 3.0) assert_allclose(d33, 5.000E-6, rtol=0, atol=1E-6) # d00 = disc.mean_size(0.0, 0.0) assert_allclose(d00, 2.362E-6, rtol=1e-4) def test_PSDLognormal_ds_discrete(): ds_discrete_expect = [2.4920844782646124e-07, 5.870554386661556e-07, 1.3829149496067687e-06, 3.2577055451375563e-06, 7.674112874286059e-06, 1.8077756749742233e-05, 4.258541598963051e-05, 0.0001003176268004454] dist = PSDLognormal(s=0.5, d_characteristic=5E-6) # Test the defaults assert_allclose(dist.ds_discrete(pts=8), ds_discrete_expect, rtol=1e-4) ds_discrete_expect = [1e-07, 1.389495494373139e-07, 1.9306977288832497e-07, 2.6826957952797275e-07, 3.727593720314938e-07, 5.179474679231213e-07, 7.196856730011514e-07, 1e-06] # Test end and minimum points assert_allclose(dist.ds_discrete(d_min=1e-7, d_max=1e-6, pts=8), ds_discrete_expect, rtol=1e-12) def test_PSDLognormal_ds_discrete(): # Test the cdf discrete dist = PSDLognormal(s=0.5, d_characteristic=5E-6) ds = dist.ds_discrete(d_min=1e-7, d_max=1e-6, pts=8) ans = dist.fractions_discrete(ds) fractions_expect = [2.55351295663786e-15, 3.831379657981415e-13, 3.762157252396037e-11, 2.41392961175535e-09, 1.01281244724305e-07, 2.7813750147487326e-06, 5.004382447515443e-05, 0.00059054208024234] assert_allclose(fractions_expect, ans, rtol=1e-3) def test_PSDLognormal_dn(): disc = PSDLognormal(s=0.5, d_characteristic=5E-6) # Test input of 1 ans = disc.dn(1) # The answer can vary quite a lot near the end, so it is safest just to # compare with the reverse, plugging it back to cdf assert_allclose(disc.cdf(ans), 1, rtol=1E-12) # assert_allclose(ans, 0.0002964902595794474) # Test zero input assert_allclose(disc.dn(0), 0) # Test 50% input ans = disc.dn(.5) assert_allclose(ans, 5.0e-06, rtol=1E-6) with pytest.raises(Exception): disc.dn(1.5) with pytest.raises(Exception): disc.dn(-.5) # Other orders of n - there is no comparison data for this yet!! assert_allclose(disc.pdf(1E-5), disc.pdf(1E-5, 3)) assert_allclose(disc.pdf(1E-5, 2), 13468.122877854335) assert_allclose(disc.pdf(1E-5, 1), 4628.2482296943508) assert_allclose(disc.pdf(1E-5, 0), 1238.6613794833427) # Some really large s tests - found some issues with this dist = PSDLognormal(s=4, d_characteristic=5E-6) assert_allclose(dist.dn(1e-15), 8.220922763476676e-20, rtol=1e-1) assert_allclose(dist.dn(.99999999), 28055.285560763594) assert_allclose(dist.dn(1e-9), 1.904197766691136e-16, rtol=1e-4) assert_allclose(dist.dn(1-1e-9), 131288.88851649483, rtol=1e-4) def test_PSDLognormal_dn_order_0_1_2(): '''Simple point to test where the order of n should be 0 Yes, the integrals need this many points (which makes them slow) to get the right accuracy. They've been tested and reduced already quite a bit. ''' # test 2, 0 -> 2, 0 disc = PSDLognormal(s=0.5, d_characteristic=5E-6) to_int = lambda d: d**2*disc.pdf(d=d, n=0) points = [5E-6*i for i in np.logspace(np.log10(.1), np.log10(50), 8)] ans_numerical = (quad(to_int, 1E-7, 5E-3, points=points)[0])**0.5 ans_analytical = 3.0326532985631672e-06 # The integral is able to give over to decimals! assert_allclose(ans_numerical, ans_analytical, rtol=1E-10) # test 2, 1 -> 1, 1 integrated pdf to_int = lambda d: d*disc.pdf(d=d, n=1) ans_numerical = (quad(to_int, 1E-7, 5E-3, points=points)[0])**1 ans_analytical = 3.4364463939548618e-06 assert_allclose(ans_numerical, ans_analytical, rtol=1E-10) # test 3, 2 -> 1, 2 integrated pdf to_int = lambda d: d*disc.pdf(d=d, n=2) ans_numerical = (quad(to_int, 1E-7, 5E-3, points=points)[0])**1 ans_analytical = 4.4124845129229773e-06 assert_allclose(ans_numerical, ans_analytical, rtol=1E-8) def test_PSDLognormal_cdf_orders(): # Test cdf of different orders a bunch disc = PSDLognormal(s=0.5, d_characteristic=5E-6) # 16 x 4 = 64 points # had 1e-7 here too as a diameter but too many numerical issues, too sensitive to rounding # errors ds = [2E-6, 3E-6, 4E-6, 5E-6, 6E-6, 7E-6, 1E-5, 2E-5, 3E-5, 5E-5, 7E-5, 1E-4, 2E-4, 4E-4, 1E-3] ans_expect = [[ 0.36972511868508068, 0.68379899882263917, 0.8539928088656249, 0.93319279873114203, 0.96888427729983861, 0.98510775165387254, 0.99805096305713792, 0.9999903391682271, 0.99999981474719135, 0.99999999948654394, 0.99999999999391231, 0.99999999999996592, 1.0, 1.0, 1.0], [ 0.20254040832522924, 0.49136307673913149, 0.71011232639847854, 0.84134474606854293, 0.91381737643345484, 0.95283088619207579, 0.99149043874391107, 0.99991921875653167, 0.99999771392273817, 0.99999998959747816, 0.99999999982864851, 0.99999999999863987, 1.0, 1.0, 1.0000000000000002], [ 0.091334595732478097, 0.30095658738958564, 0.52141804648990697, 0.69146246127401301, 0.80638264936531323, 0.87959096325267294, 0.9703723506333426, 0.999467162897961, 0.99997782059383122, 0.99999983475152954, 0.99999999622288382, 0.99999999995749711, 0.99999999999999833, 1.0000000000000002, 1.0000000000000002], [ 0.033432418408916864, 0.15347299656473007, 0.3276949357115424, 0.5, 0.64231108623683952, 0.74950869138681098, 0.91717148099830148, 0.99721938213769046, 0.99983050191355338, 0.99999793935660408, 0.99999993474010451, 0.99999999896020164, 0.99999999999991951, 1.0, 1.0]] calc = [] for n in range(0, 4): calc.append([disc.cdf(i, n=n) for i in ds]) assert_allclose(ans_expect, calc, rtol=1E-9) def test_PSDLognormal_cdf_vs_pdf(): # test PDF against CDF disc = PSDLognormal(s=0.5, d_characteristic=5E-6) ans_calc = [] ans_expect = [] for i in range(5): # Pick a random start start = uniform(0, 1) end = uniform(start, 1) d_start = disc.dn(start) d_end = disc.dn(end) delta = disc.cdf(d_end) - disc.cdf(d_start) delta_numerical = quad(disc.pdf, d_start, d_end)[0] ans_calc.append(delta_numerical) ans_expect.append(delta) assert_allclose(ans_calc, ans_expect) def test_PSD_lognormal_truncated(): psd = PSDLognormal(s=0.5, d_characteristic=5E-6, d_max=1e-5, d_min=1e-6, order=3) assert_allclose(psd.dn(1), 1e-5) assert_allclose(psd.dn(0), 1e-6) assert_allclose(psd.cdf(psd.dn(0.5)), 0.5) # No longer at d_characteristic # Check the cdf limits of the truncated distribution ds = [1e-8, 1e-7, 1e-6, 2e-6, 5e-6, 9e-6, 1e-5, 1e-4, 1e-3] ans = psd.fractions_discrete(ds) ans_expect = [0.0, 0.0, 0.0, 0.03577517221380477, 0.5090598176028703, 0.41473614196545805, 0.04042886821786684, 0.0, 0.0] assert sum(ans) == 1 assert_allclose(ans, ans_expect) pdfs = [psd.pdf(i) for i in ds] pdfs_expect = [0.0, 0.0, 4896.6230234795203, 81190.803665720552, 174110.24040947447, 48468.576095204902, 33302.599459012476, 0.0, 0.0] assert_allclose(pdfs, pdfs_expect) # Check the mean_size calculations - this is right assert_allclose(psd.mean_size(3, 2), 4.1817574249337556e-06) @pytest.mark.fuzz @pytest.mark.slow def test_PSD_lognormal_truncated_mean_size(): psd = PSDLognormal(s=0.5, d_characteristic=5E-6, d_max=1e-5, d_min=1e-6, order=3) def psd_mean_size_numeric_truncated(psd, p, q): pow1 = q - psd.order to_int = lambda d : d**pow1*psd.pdf(d) denominator = quad(to_int, psd.d_min, psd.d_max)[0] # denominator = self._pdf_basis_integral_definite(d_min=self.d_minimum, d_max=self.d_excessive, n=pow1) root_power = p - q pow3 = p - psd.order # numerator = self._pdf_basis_integral_definite(d_min=self.d_minimum, d_max=self.d_excessive, n=pow3) to_int = lambda d : d**pow3*psd.pdf(d) numerator = quad(to_int, psd.d_min, psd.d_max)[0] return (numerator/denominator)**(1.0/(root_power)) # It really works! for p in range(-3, 4): for q in range(-3, 4): if p != q: assert_allclose(psd.mean_size(p, q), psd_mean_size_numeric_truncated(psd, p, q)) @pytest.mark.slow def test_PSD_PSDlognormal_area_length_count(): '''Compare the average difference between the analytical values for a lognormal distribution with those of a discretized form of it.Note simply adding more points did not tend to help reduce the error. For the particle count case, 700 points has the lowest error. fractions_discrete is still the slowest part. ''' dist = PSDLognormal(s=0.5, d_characteristic=5E-6) ds = dist.ds_discrete(pts=700, d_min=2E-7, d_max=1E-4) fractions = dist.fractions_discrete(ds) psd = ParticleSizeDistribution(ds=ds, fractions=fractions, order=3) # Trim a few at the start and end ans = np.array(psd.number_fractions)[5:-5]/np.array(dist.fractions_discrete(ds, n=0))[5:-5] avg_err = sum(np.abs(ans - 1.0))/len(ans) assert 5E-4 > avg_err ans = np.array(psd.length_fractions)[5:-5]/np.array(dist.fractions_discrete(ds, n=1))[5:-5] avg_err = sum(np.abs(ans - 1.0))/len(ans) assert 1E-4 > avg_err ans = np.array(psd.area_fractions)[5:-5]/np.array(dist.fractions_discrete(ds, n=2))[5:-5] avg_err = sum(np.abs(ans - 1.0))/len(ans) assert 1E-4 > avg_err def test_PSDInterpolated_pchip(): '''For this test, ds is the same length as fractions, and we begin the series with the zero point. Half the test is spend on the `dn` solver tests, and the other half is just that these tests are slow. ''' ds = [360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532] ds = np.array(ds)/1e6 numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] dist = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) psd = PSDInterpolated(dist.Dis, dist.fractions) assert len(psd.fractions) == len(psd.ds) assert len(psd.fractions) == 15 # test fractions_discrete vs input assert_allclose(psd.fractions_discrete(ds), dist.fractions) # test cdf_discrete assert_allclose(psd.cdf_discrete(ds), psd.fraction_cdf[1:]) # test that dn solves backwards for exactly the right value - slow cumulative_fractions = np.cumsum(dist.fractions) ds_for_fractions = np.array([psd.dn(f) for f in cumulative_fractions]) assert_allclose(ds, ds_for_fractions) # test _pdf test_pdf = psd._pdf(1e-3) assert_allclose(test_pdf, 106.28284463095554) # test _cdf test_cdf = psd._cdf(1e-3) assert_allclose(test_cdf, 0.02278897476363087) # test _pdf_basis_integral test_int = psd._pdf_basis_integral(1e-3, 2) assert_allclose(test_int, 1.509707233427664e-08) # Check that the 0 point is created and the points and fractions are the same assert_allclose(psd.ds, [0] + ds.tolist()) assert_allclose(psd.fractions, [0] + dist.fractions) # test mean_size test_mean = psd.mean_size(3, 2) assert_allclose(test_mean, 0.002211577679574544) def test_PSDInterpolated_discrete_range_pts(): ds = [360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532] ds = np.array(ds)/1e6 numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) # test fractions_discrete vs input assert_allclose(psd.fractions_discrete(ds), psd.fractions) # test cdf_discrete assert_allclose(psd.cdf_discrete(ds), psd.interpolated.fraction_cdf[1:]) # test that dn solves backwards for exactly the right value cumulative_fractions = np.cumsum(psd.fractions) ds_for_fractions = np.array([psd.dn(f) for f in cumulative_fractions]) assert_allclose(ds, ds_for_fractions) # test _pdf test_pdf = psd.pdf(1e-3) assert_allclose(test_pdf, 106.28284463095554) # test _cdf test_cdf = psd.cdf(1e-3) assert_allclose(test_cdf, 0.02278897476363087) # test _pdf_basis_integral test_int = psd._pdf_basis_integral(1e-3, 2) assert_allclose(test_int, 1.509707233427664e-08) assert not np.isclose(psd.mean_size(3, 2), psd.interpolated.mean_size(3, 2)) def test_PSDInterpolated_discrete(): ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532]) numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) dn_05 = psd.dn(0.5) assert_allclose(dn_05, 0.002526452452632658) assert_allclose(psd.cdf(dn_05), 0.5, rtol=1e-4) assert_allclose(psd.cdf(0.002, 4), 0.18010145594167873, rtol=5e-3) assert_allclose(psd.pdf(0.002, 2), 466.42761174380007, rtol=5e-3) assert_allclose(psd.pdf(0.002526452452632658), 408.4774528377241, rtol=1e-2) assert_allclose(psd.mean_size(1, 0), psd.interpolated.mean_size(1, 0), rtol=0.05) assert_allclose(psd.cdf(100), 1) assert_allclose(psd.cdf(psd.dn(1)), 1) def test_psd_spacing(): ans_log = psd_spacing(d_min=1, d_max=10, pts=4, method='logarithmic') ans_log_expect = [1.0, 2.154434690031884, 4.641588833612778, 10.0] assert_allclose(ans_log, ans_log_expect) ans_lin = psd_spacing(d_min=0, d_max=10, pts=4, method='linear') ans_lin_expect = [0.0, 3.3333333333333335, 6.666666666666667, 10.0] assert_allclose(ans_lin, ans_lin_expect) with pytest.raises(Exception): psd_spacing(d_min=0, d_max=10, pts=8, method='R5') with pytest.raises(Exception): psd_spacing(d_min=5e-5, d_max=5e-4, method='BADMETHOD') # This example from an iso standard, ISO 9276-2 2014 ans_R5 = psd_spacing(d_max=25, pts=8, method='R5') ans_R5_expect = [0.9952679263837426, 1.5773933612004825, 2.499999999999999, 3.9622329811527823, 6.279716078773949, 9.95267926383743, 15.77393361200483, 25] assert_allclose(ans_R5, ans_R5_expect) ans_R5_reversed = psd_spacing(d_min=0.9952679263837426, pts=8, method='R5') assert_allclose(ans_R5_reversed, ans_R5_expect) ans_R5_float = psd_spacing(d_max=25, pts=8, method='R5.00000001') assert_allclose(ans_R5_float, ans_R5_expect) ans = psd_spacing(d_min=5e-5, d_max=1e-3, method='ISO 3310-1') ans_expect = [5e-05, 5.3e-05, 5.6e-05, 6.3e-05, 7.1e-05, 7.5e-05, 8e-05, 9e-05, 0.0001, 0.000106, 0.000112, 0.000125, 0.00014, 0.00015, 0.00016, 0.00018, 0.0002, 0.000212, 0.000224, 0.00025, 0.00028, 0.0003, 0.000315, 0.000355, 0.0004, 0.000425, 0.00045, 0.0005, 0.00056, 0.0006, 0.00063, 0.00071, 0.0008, 0.00085, 0.0009, 0.001] assert_allclose(ans, ans_expect) assert [] == psd_spacing(d_min=0, d_max=1e-6, method='ISO 3310-1') assert [] == psd_spacing(d_min=1, d_max=1e2, method='ISO 3310-1') assert psd_spacing(d_min=5e-5, d_max=1e-3, method='ISO 3310-1 R20') assert psd_spacing(d_min=5e-5, d_max=1e-3, method='ISO 3310-1 R20/3') assert psd_spacing(d_min=5e-5, d_max=1e-3, method='ISO 3310-1 R40/3') assert psd_spacing(d_min=0e-5, d_max=1e-3, method='ISO 3310-1 R10') ds = psd_spacing(d_min=1e-5, d_max=1e-4, method='ASTM E11') ds_expect = [2e-05, 2.5e-05, 3.2e-05, 3.8e-05, 4.5e-05, 5.3e-05, 6.3e-05, 7.5e-05, 9e-05] assert_allclose(ds, ds_expect)fluids-0.1.78/tests/__init__.py0000644000175000017500000000225113632560624015113 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' fluids-0.1.78/tests/test_filters.py0000644000175000017500000000526313632560624016071 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest from scipy.interpolate import splrep def test_filters(): K1 = round_edge_screen(0.5, 100) K2 = round_edge_screen(0.5, 100, 45) K3 = round_edge_screen(0.5, 100, 85) assert_allclose([K1, K2, K3], [2.0999999999999996, 1.05, 0.18899999999999997]) Ks = [round_edge_open_mesh(0.88, i) for i in ['round bar screen', 'diamond pattern wire', 'knotted net', 'knotless net']] K_values = [0.11687999999999998, 0.09912, 0.15455999999999998, 0.11664] assert_allclose(Ks, K_values) K1 = round_edge_open_mesh(0.96, angle=33.) K2 = round_edge_open_mesh(0.96, angle=50) assert_allclose([K1, K2], [0.02031327712601458, 0.012996000000000014]) with pytest.raises(Exception): round_edge_open_mesh(0.96, subtype='not_filter', angle=33.) K = square_edge_screen(0.99) assert_allclose(K, 0.008000000000000009) K1 = square_edge_grill(.45) K2 = square_edge_grill(.45, l=.15, Dh=.002, fd=.0185) assert_allclose([K1, K2], [5.296296296296296, 12.148148148148147]) K1 = round_edge_grill(.4) K2 = round_edge_grill(.4, l=.15, Dh=.002, fd=.0185) assert_allclose([K1, K2], [1.0, 2.3874999999999997]) def test_grills_rounded(): from fluids.filters import grills_rounded_tck, grills_rounded_alphas, grills_rounded_Ks tck_recalc = splrep(grills_rounded_alphas, grills_rounded_Ks, s=0, k=2) [assert_allclose(i, j) for i, j in zip(grills_rounded_tck, tck_recalc)] fluids-0.1.78/tests/test_control_valve.py0000644000175000017500000004004113632560624017267 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * from numpy.testing import assert_allclose import numpy as np import pytest from scipy.interpolate import splrep def test_control_valve(): from fluids.control_valve import cavitation_index, FF_critical_pressure_ratio_l, is_choked_turbulent_l, is_choked_turbulent_g, Reynolds_valve, loss_coefficient_piping, Reynolds_factor CI = cavitation_index(1E6, 8E5, 2E5) assert_allclose(CI, 4.0) FF = FF_critical_pressure_ratio_l(70100.0, 22120000.0) assert_allclose(FF, 0.9442375225233299) F = is_choked_turbulent_l(460.0, 680.0, 70.1, 0.9442375225233299, 0.9) T = is_choked_turbulent_l(460.0, 680.0, 70.1, 0.9442375225233299, 0.6) assert_allclose([False, True], [F, T]) with pytest.raises(Exception): is_choked_turbulent_l(460.0, 680.0, 70.1, 0.9442375225233299) # Example 4, compressible flow - small flow trim sized for gas flow: assert False == is_choked_turbulent_g(0.536, 1.193, 0.8) # Custom example assert True == is_choked_turbulent_g(0.9, 1.193, 0.7) with pytest.raises(Exception): is_choked_turbulent_g(0.544, 0.929) Rev = Reynolds_valve(3.26e-07, 360, 100.0, 0.6, 0.98, 238.05817216710483) assert_allclose(Rev, 6596953.826574914) Rev = Reynolds_valve(3.26e-07, 360, 150.0, 0.9, 0.46, 164.9954763704956) assert_allclose(Rev, 2967024.346783506) K = loss_coefficient_piping(0.05, 0.08, 0.1) assert_allclose(K, 0.6580810546875) ### Reynolds factor (laminar) # In Example 4, compressible flow with small flow trim sized for gas flow # (Cv in the problem was converted to Kv here to make FR match with N32, N2): f = Reynolds_factor(FL=0.98, C=0.015483, d=15., Rev=1202., full_trim=False) assert_allclose(f, 0.7148753122302025) # Custom, same as above but with full trim: f = Reynolds_factor(FL=0.98, C=0.015483, d=15., Rev=1202., full_trim=True) assert_allclose(f, 0.9875328782172637) # Example 4 with Rev < 10: f = Reynolds_factor(FL=0.98, C=0.015483, d=15., Rev=8., full_trim=False) assert_allclose(f, 0.08339546213461975) # Same, with full_trim f = Reynolds_factor(FL=0.98, C=0.015483, d=15., Rev=8., full_trim=True) assert_allclose(f, 43.619397389803986) def test_control_valve_size_l(): ### Control valve liquid # From [1]_, matching example 1 for a globe, parabolic plug, # flow-to-open valve. Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.15, D2=0.15, d=0.15, FL=0.9, Fd=0.46) assert_allclose(Kv, 164.9954763704956) # Same as above - diameters removed Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1) assert_allclose(Kv, 164.9954763704956) # From [1]_, matching example 2 for a ball, segmented ball, # flow-to-open valve. Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.1, FL=0.6, Fd=0.98) assert_allclose(Kv, 238.05817216710483) # Modified example 1 with non-choked flow, with reducer and expander Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.09, d=0.08, FL=0.9, Fd=0.46) assert_allclose(Kv, 177.44417090966715) # Modified example 2 with non-choked flow, with reducer and expander Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.95, FL=0.6, Fd=0.98) assert_allclose(Kv, 230.1734424266345) # Same, test intermediate values ans = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.95, FL=0.6, Fd=0.98, full_output=True) del ans['choked'] del ans['FR'] ans_expect = {'Kv': 230.1734424266345, 'FF': 0.9442375225233299, 'FLP': 0.620553360954273, 'FP': 0.8112169324177585, 'Rev': 6596962.21111206} for k in ans_expect.keys(): assert_allclose(ans[k], ans_expect[k]) # Modified example 2 with laminar flow at 100x viscosity, 100th flow rate, and 1/10th diameters: Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-2, P1=680E3, P2=220E3, Q=0.001, D1=0.01, D2=0.01, d=0.01, FL=0.6, Fd=0.98) assert_allclose(Kv, 3.0947562381723626) # Last test, laminar full trim Kv = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-2, P1=680E3, P2=220E3, Q=0.001, D1=0.01, D2=0.01, d=0.02, FL=0.6, Fd=0.98) assert_allclose(Kv, 3.0947562381723626) # TODO: find a test where the following is tested, or remove it as unnecessary. # if C/FR >= Ci: # Ci = iterate_piping_laminar(Ci) # Efforts to make this happen have been unsuccessful. # Test the ignore choked option ans = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.1, FL=0.6, Fd=0.98, allow_choked=False, full_output=True) assert_allclose(ans['Kv'], 164.9954763704956) assert_allclose(ans['Rev'], 7805019.992655547) assert ans['choked'] == True # Still true even though the choke is ignored assert ans['FF'] assert ans['FLP'] is None assert ans['FP'] is None assert ans['FR'] is None # Test the laminar switch for Kv, boolean in zip((0.014547698964079439, 0.011190537664676491), (True, False)): ans = size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, P1=680E3, P2=670E3, Q=0.000001, D1=0.1, D2=0.1, d=0.1, FL=0.6, Fd=0.98, allow_laminar=boolean, full_output=True) assert_allclose(ans['Kv'], Kv) def test_control_valve_size_g(): # From [1]_, matching example 3 for non-choked gas flow with attached # fittings and a rotary, eccentric plug, flow-to-open control valve: Kv = size_control_valve_g(T=433., MW=44.01, mu=1.4665E-4, gamma=1.30, Z=0.988, P1=680E3, P2=310E3, Q=38/36., D1=0.08, D2=0.1, d=0.05, FL=0.85, Fd=0.42, xT=0.60) assert_allclose(Kv, 72.58664545391052) # From [1]_, roughly matching example 4 for a small flow trim sized tapered # needle plug valve. Difference is 3% and explained by the difference in # algorithms used. Kv = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1.3E5, Q=0.46/3600., D1=0.015, D2=0.015, d=0.015, FL=0.98, Fd=0.07, xT=0.8) assert_allclose(Kv, 0.016498765335995726) # Diameters removed Kv = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1.3E5, Q=0.46/3600., xT=0.8) assert_allclose(Kv, 0.012691357950765944) ans = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1.3E5, Q=0.46/3600., xT=0.8, full_output=True) assert ans['laminar'] == False assert ans['choked'] == False assert ans['FP'] is None assert ans['FR'] is None assert ans['xTP'] is None assert ans['Rev'] is None # Choked custom example Kv = size_control_valve_g(T=433., MW=44.01, mu=1.4665E-4, gamma=1.30, Z=0.988, P1=680E3, P2=30E3, Q=38/36., D1=0.08, D2=0.1, d=0.05, FL=0.85, Fd=0.42, xT=0.60) assert_allclose(Kv, 70.67468803987839) # Laminar custom example Kv = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1.3E5, Q=0.46/3600., D1=0.015, D2=0.015, d=0.001, FL=0.98, Fd=0.07, xT=0.8) assert_allclose(Kv, 0.016498765335995726) # Laminar custom example with iteration Kv = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=2.7E5, Q=0.1/3600., D1=0.015, D2=0.015, d=0.001, FL=0.98, Fd=0.07, xT=0.8) assert_allclose(Kv, 0.989125783445497) # test not allowing chokes ans_choked = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1e4, Q=0.46/3600., D1=0.015, D2=0.015, d=0.015, FL=0.98, Fd=0.07, xT=0.8, full_output=True, allow_choked=True) ans = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1e4, Q=0.46/3600., D1=0.015, D2=0.015, d=0.015, FL=0.98, Fd=0.07, xT=0.8, full_output=True, allow_choked=False) assert not np.isclose(ans_choked['Kv'], ans['Kv'], rtol=1E-4) # Test not allowing laminar for Kv, boolean in zip((0.001179609179354541, 0.00090739167642657), (True, False)): ans = size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, P1=2.8E5, P2=1e4, Q=1e-5, D1=0.015, D2=0.015, d=0.015, FL=0.98, Fd=0.07, xT=0.8, full_output=True, allow_laminar=boolean) assert_allclose(Kv, ans['Kv']) assert ans['choked'] # Still true even though the choke is ignored assert ans['xTP'] is None assert ans['Y'] assert ans['FP'] is None assert ans['FR'] is None assert ans['Rev'] # Test a warning is issued and a solution is still returned when in an unending loop # Ends with C ratio converged to 0.907207790871228 args = {'P1': 680000.0, 'full_output': True, 'allow_choked': True, 'Q': 0.24873053149856303, 'T': 433.0, 'Z': 0.9908749375670418, 'FL': 0.85, 'allow_laminar': True, 'd': 0.05, 'mu': 2.119519588834806e-05, 'MW': 44.0095, 'Fd': 0.42, 'gamma': 1.2431389717945152, 'D2': 0.1, 'xT': 0.6, 'D1': 0.08} ans = size_control_valve_g(P2=678000., **args) assert ans['warning'] # Test Kv does not reach infinity kwargs = {'P2': 310000.0028935982, 'P1': 680000.0, 'full_output': True, 'allow_choked': True, 'T': 433.0, 'Z': 0.9896087377962123, 'FL': 0.85, 'allow_laminar': True, 'd': 0.05, 'mu': 2.119519588834806e-05, 'MW': 44.0095, 'Fd': 0.42, 'gamma': 1.2431389717945152, 'D2': 0.1, 'xT': 0.6, 'D1': 0.08} size_control_valve_g(Q=1000000000.0, **kwargs) def test_control_valve_choke_P_l(): P2 = control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, 680000.0) assert_allclose(P2, 458887.5306077305) P1 = control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, P2=P2) assert_allclose(P1, 680000.0) def test_control_valve_choke_P_g(): P2 = control_valve_choke_P_g(1, 1.3, 1E5) assert_allclose(P2, 7142.857142857143) P1 = control_valve_choke_P_g(1, 1.3, P2=P2) assert_allclose(P1, 100000.0) def test_control_valve_noise_l_2015(): m = 30 # kg/s P1 = 1E6 P2 = 8E5 Psat = 2.32E3 rho = 997.0 c = 1400.0 Kv = Cv_to_Kv(90) d = .1 Di =.1071 FL = 0.92 Fd = 0.42 rho_air = 1.293 c_air = 343.0 t_pipe = .0036 # Example 1 noise = control_valve_noise_l_2015(m, P1, P2, Psat, rho, c, Kv, d, Di, FL, Fd, t_pipe, rho_pipe=7800.0, c_pipe=5000.0, rho_air=rho_air, c_air=343.0, xFz=None, An=-4.6) assert_allclose(noise, 65.47210071692108) # Example 2 m = 40 # kg/s P1 = 1E6 P2 = 6.5E5 noise = control_valve_noise_l_2015(m, P1, P2, Psat, rho, c, Kv, d, Di, FL, Fd, t_pipe, rho_pipe=7800.0, c_pipe=5000.0, rho_air=rho_air, c_air=343.0, xFz=None, An=-4.6) assert_allclose(noise, 81.58199982219298) # Example 3 m = 40 # kg/s P1 = 1E6 P2 = 6.5E5 noise = control_valve_noise_l_2015(m, P1, P2, Psat, rho, c, Kv, d, Di, FL, Fd, t_pipe, rho_pipe=7800.0, c_pipe=5000.0, rho_air=rho_air, c_air=343.0, xFz=0.254340899267+0.1, An=-4.6) assert_allclose(noise, 69.93930269695811) def test_control_valve_noise_g_2011(): ans = control_valve_noise_g_2011(m=2.22, P1=1E6, P2=7.2E5, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(90.0), d=0.1, Di=0.2031, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(ans, 91.67631681476502) ans = control_valve_noise_g_2011(m=2.29, P1=1E6, P2=6.9E5, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(90.0), d=0.1, Di=0.2031, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(ans, 92.80027236454005) ans = control_valve_noise_g_2011(m=2.59, P1=1E6, P2=4.8E5, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(90.0), d=0.1, Di=0.2031, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(97.65988432967984, ans) ans = control_valve_noise_g_2011(m=1.18, P1=1E6, P2=4.2E5, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(40.0), d=0.2031, Di=0.2031, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(94.16189978031449, ans)# should be 94 ans = control_valve_noise_g_2011(m=1.19, P1=1E6, P2=5E4, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(40.0), d=0.2031, Di=0.2031, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(ans, 97.48317214321824) ans = control_valve_noise_g_2011(m=0.89, P1=1E6, P2=5E4, T1=450, rho=5.3, gamma=1.22, MW=19.8, Kv=Cv_to_Kv(30.0), d=0.1, Di=0.15, FL=None, FLP=0.792, FP=0.98, Fd=0.2959450058448346, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) assert_allclose(ans, 93.38835049261132) def test_opening_quick_data(): from fluids.control_valve import opening_quick_tck, opening_quick, frac_CV_quick tck_recalc = splrep(opening_quick, frac_CV_quick, k=3, s=0) [assert_allclose(i, j) for i, j in zip(opening_quick_tck, tck_recalc)] def test_opening_equal_data(): from fluids.control_valve import opening_equal, frac_CV_equal, opening_equal_tck tck_recalc = splrep(opening_equal, frac_CV_equal, k=3, s=0) [assert_allclose(i, j) for i, j in zip(opening_equal_tck, tck_recalc)] fluids-0.1.78/tests/test_compressible.py0000644000175000017500000003036513632560624017111 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * from numpy.testing import assert_allclose import pytest def test_isothermal_work_compression(): assert_allclose(isothermal_work_compression(1E5, 1E6, 300), 5743.425357533477, rtol=1e-05) def test_isentropic_work_compression(): dH = isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=1) assert_allclose(dH, 8125.161295388634, rtol=1e-05) dH = isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78) assert_allclose(dH, 10416.873455626454, rtol=1e-05) dH = isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78, Z=0.9) assert_allclose(dH, 9375.186110063809, rtol=1e-05) # Other solutions - P1, P2, and eta P1 = isentropic_work_compression(W=9375.186110063809, P2=1E6, T1=300, k=1.4, eta=0.78, Z=0.9) assert_allclose(P1, 1E5, rtol=1E-5) P2 = isentropic_work_compression(W=9375.186110063809, P1=1E5, T1=300, k=1.4, eta=0.78, Z=0.9) assert_allclose(P2, 1E6, rtol=1E-5) eta = isentropic_work_compression(W=9375.186110063809, P1=1E5, P2=1E6, T1=300, k=1.4, Z=0.9, eta=None) assert_allclose(eta, 0.78, rtol=1E-5) with pytest.raises(Exception): isentropic_work_compression(P1=1E5, P2=1E6, k=1.4, T1=None) def test_isentropic_T_rise_compression(): T2 = isentropic_T_rise_compression(286.8, 54050, 432400, 1.4) assert_allclose(T2, 519.5230938217768, rtol=1e-05) T2 = isentropic_T_rise_compression(286.8, 54050, 432400, 1.4, eta=0.78) assert_allclose(T2, 585.1629407971498, rtol=1e-05) # Test against the simpler formula for eta=1: # T2 = T2*(P2/P1)^((k-1)/k) T2_ideal = 286.8*((432400/54050)**((1.4-1)/1.4)) assert_allclose(T2_ideal, 519.5230938217768, rtol=1e-05) def test_isentropic_efficiency(): eta_s = isentropic_efficiency(1E5, 1E6, 1.4, eta_p=0.78) assert_allclose(eta_s, 0.7027614191263858) eta_p = isentropic_efficiency(1E5, 1E6, 1.4, eta_s=0.7027614191263858) assert_allclose(eta_p, 0.78) with pytest.raises(Exception): isentropic_efficiency(1E5, 1E6, 1.4) # Example 7.6 of the reference: eta_s = isentropic_efficiency(1E5, 3E5, 1.4, eta_p=0.75) assert_allclose(eta_s, 0.7095085923615653) eta_p = isentropic_efficiency(1E5, 3E5, 1.4, eta_s=eta_s) assert_allclose(eta_p, 0.75) def test_polytropic_exponent(): assert_allclose(polytropic_exponent(1.4, eta_p=0.78), 1.5780346820809246) assert_allclose(polytropic_exponent(1.4, n=1.5780346820809246), 0.78) with pytest.raises(Exception): polytropic_exponent(1.4) def test_compressible(): T = T_critical_flow(473, 1.289) assert_allclose(T, 413.2809086937528) P = P_critical_flow(1400000, 1.289) assert_allclose(P, 766812.9022792266) TF = [is_critical_flow(670E3, 532E3, 1.11), is_critical_flow(670E3, 101E3, 1.11)] assert_allclose(TF, [False, True]) SE = stagnation_energy(125) assert_allclose(SE, 7812.5) PST = P_stagnation(54050., 255.7, 286.8, 1.4) assert_allclose(PST, 80772.80495900588) Tst = T_stagnation(286.8, 54050, 54050*8, 1.4) assert_allclose(Tst, 519.5230938217768) Tstid = T_stagnation_ideal(255.7, 250, 1005.) assert_allclose(Tstid, 286.79452736318405) def test_Panhandle_A(): # Example 7-18 Gas of Crane TP 410M D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 42.56082051195928 # Test all combinations of relevant missing inputs assert_allclose(Panhandle_A(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Panhandle_A(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Panhandle_A(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Panhandle_A(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Panhandle_A(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Panhandle_A(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Panhandle_B(): # Example 7-18 Gas of Crane TP 410M D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 42.35366178004172 # Test all combinations of relevant missing inputs assert_allclose(Panhandle_B(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Panhandle_B(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Panhandle_B(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Panhandle_B(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Panhandle_B(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Panhandle_B(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Weymouth(): from numpy.testing import assert_allclose D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 32.07729055913029 assert_allclose(Weymouth(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Weymouth(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Weymouth(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Weymouth(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Weymouth(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Weymouth(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Spitzglass_high(): D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 29.42670246281681 assert_allclose(Spitzglass_high(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Spitzglass_high(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Spitzglass_high(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Spitzglass_high(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Spitzglass_high(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Spitzglass_high(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Spitzglass_low(): D = 0.154051 P1 = 6720.3199 P2 = 0 L = 54.864 SG=0.6 Tavg = 288.7 Q = 0.9488775242530617 assert_allclose(Spitzglass_low(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Spitzglass_low(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Spitzglass_low(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2, atol=1E-10) assert_allclose(Spitzglass_low(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Spitzglass_low(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Spitzglass_low(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Oliphant(): D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 28.851535408143057 assert_allclose(Oliphant(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Oliphant(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Oliphant(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Oliphant(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Oliphant(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Oliphant(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Fritzsche(): D = 0.340 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 39.421535157535565 assert_allclose(Fritzsche(D=D, P1=P1, P2=P2, L=L, SG=SG, Tavg=Tavg), Q) assert_allclose(Fritzsche(D=D, Q=Q, P2=P2, L=L, SG=SG, Tavg=Tavg), P1) assert_allclose(Fritzsche(D=D, Q=Q, P1=P1, L=L, SG=SG, Tavg=Tavg), P2) assert_allclose(Fritzsche(D=D, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), L) assert_allclose(Fritzsche(L=L, Q=Q, P1=P1, P2=P2, SG=SG, Tavg=Tavg), D) with pytest.raises(Exception): Fritzsche(D=0.340, P1=90E5, L=160E3, SG=0.693, Tavg=277.15) def test_Muller(): D = 0.340 mu = 1E-5 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 60.45796698148663 assert_allclose(Muller(D=D, P1=P1, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg), Q) assert_allclose(Muller(D=D, Q=Q, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg), P1) assert_allclose(Muller(D=D, Q=Q, P1=P1, L=L, SG=SG, mu=mu, Tavg=Tavg), P2) assert_allclose(Muller(D=D, Q=Q, P1=P1, P2=P2, SG=SG, mu=mu, Tavg=Tavg), L) assert_allclose(Muller(L=L, Q=Q, P1=P1, P2=P2, SG=SG, mu=mu, Tavg=Tavg), D) with pytest.raises(Exception): Muller(D=D, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg) def test_IGT(): D = 0.340 mu = 1E-5 P1 = 90E5 P2 = 20E5 L = 160E3 SG=0.693 Tavg = 277.15 Q = 48.92351786788815 assert_allclose(IGT(D=D, P1=P1, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg), Q) assert_allclose(IGT(D=D, Q=Q, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg), P1) assert_allclose(IGT(D=D, Q=Q, P1=P1, L=L, SG=SG, mu=mu, Tavg=Tavg), P2) assert_allclose(IGT(D=D, Q=Q, P1=P1, P2=P2, SG=SG, mu=mu, Tavg=Tavg), L) assert_allclose(IGT(L=L, Q=Q, P1=P1, P2=P2, SG=SG, mu=mu, Tavg=Tavg), D) with pytest.raises(Exception): IGT(D=D, P2=P2, L=L, SG=SG, mu=mu, Tavg=Tavg) def test_isothermal_gas(): mcalc = isothermal_gas(11.3, 0.00185, P1=1E6, P2=9E5, L=1000, D=0.5) assert_allclose(mcalc, 145.484757264) assert_allclose(isothermal_gas(11.3, 0.00185, P1=1E6, P2=9E5, m=145.484757264, D=0.5), 1000) assert_allclose(isothermal_gas(11.3, 0.00185, P2=9E5, m=145.484757264, L=1000., D=0.5), 1E6) assert_allclose(isothermal_gas(11.3, 0.00185, P1=1E6, m=145.484757264, L=1000., D=0.5), 9E5) assert_allclose(isothermal_gas(11.3, 0.00185, P1=1E6, P2=9E5, m=145.484757264, L=1000.), 0.5) with pytest.raises(Exception): isothermal_gas(11.3, 0.00185, P1=1E6, P2=9E5, L=1000) with pytest.raises(Exception): isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=1E5, L=1000, D=0.5) with pytest.raises(Exception): isothermal_gas(rho=11.3, fd=0.00185, P2=1E6, P1=9E5, L=1000, D=0.5) # Newton can't converge, need a bounded solver P1 = isothermal_gas(rho=11.3, fd=0.00185, m=390, P2=9E5, L=1000, D=0.5) assert_allclose(P1, 2298973.786533209) # Case where the desired flow is greated than the choked flow's rate with pytest.raises(Exception): isothermal_gas(rho=11.3, fd=0.00185, m=400, P2=9E5, L=1000, D=0.5) # test the case where the ideal gas assumption is baked in: rho = 10.75342009105268 # Chemical('nitrogen', P=(1E6+9E5)/2).rho m1 = isothermal_gas(rho=rho, fd=0.00185, P1=1E6, P2=9E5, L=1000, D=0.5) assert_allclose(m1, 141.92260633059334) # They are fairly similar from math import log, pi fd = 0.00185 P1 = 1E6 P2 = 9E5 L = 1000 D = 0.5 T = 298.15 # from scipy.constants import R # from thermo import property_molar_to_mass, Chemical, pi, log R = 296.8029514446658 # property_molar_to_mass(R, Chemical('nitrogen').MW) m2 = (pi**2/16*D**4/(R*T*(fd*L/D + 2*log(P1/P2)))*(P1**2-P2**2))**0.5 assert_allclose(m2, 145.48786057477403) def test_P_isothermal_critical_flow(): P2_max = P_isothermal_critical_flow(P=1E6, fd=0.00185, L=1000., D=0.5) assert_allclose(P2_max, 389699.7317645518)fluids-0.1.78/tests/test_friction.py0000644000175000017500000004533213632560624016237 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log10, log, exp from scipy.optimize import newton from fluids.numerics import secant, logspace, linspace, assert_close import numpy as np from fluids import * from numpy.testing import assert_allclose import pytest def test_friction(): assert_allclose(Moody(1E5, 1E-4), 0.01809185666808665) assert_allclose(Alshul_1952(1E5, 1E-4), 0.018382997825686878) assert_allclose(Wood_1966(1E5, 1E-4), 0.021587570560090762) assert_allclose(Churchill_1973(1E5, 1E-4), 0.01846708694482294) assert_allclose(Eck_1973(1E5, 1E-4), 0.01775666973488564) assert_allclose(Jain_1976(1E5, 1E-4), 0.018436560312693327) assert_allclose(Swamee_Jain_1976(1E5, 1E-4), 0.018452424431901808) assert_allclose(Churchill_1977(1E5, 1E-4), 0.018462624566280075) assert_allclose(Chen_1979(1E5, 1E-4), 0.018552817507472126) assert_allclose(Round_1980(1E5, 1E-4), 0.01831475391244354) assert_allclose(Shacham_1980(1E5, 1E-4), 0.01860641215097828) assert_allclose(Barr_1981(1E5, 1E-4), 0.01849836032779929) assert_allclose(Zigrang_Sylvester_1(1E5, 1E-4), 0.018646892425980794) assert_allclose(Zigrang_Sylvester_2(1E5, 1E-4), 0.01850021312358548) assert_allclose(Haaland(1E5, 1E-4), 0.018265053014793857) assert_allclose(Serghides_1(1E5, 1E-4), 0.01851358983180063) assert_allclose(Serghides_2(1E5, 1E-4), 0.018486377560664482) assert_allclose(Tsal_1989(1E5, 1E-4), 0.018382997825686878) assert_allclose(Tsal_1989(1E8, 1E-4), 0.012165854627780102) assert_allclose(Manadilli_1997(1E5, 1E-4), 0.01856964649724108) assert_allclose(Romeo_2002(1E5, 1E-4), 0.018530291219676177) assert_allclose(Sonnad_Goudar_2006(1E5, 1E-4), 0.0185971269898162) assert_allclose(Rao_Kumar_2007(1E5, 1E-4), 0.01197759334600925) assert_allclose(Buzzelli_2008(1E5, 1E-4), 0.018513948401365277) assert_allclose(Avci_Karagoz_2009(1E5, 1E-4), 0.01857058061066499) assert_allclose(Papaevangelo_2010(1E5, 1E-4), 0.015685600818488177) assert_allclose(Brkic_2011_1(1E5, 1E-4), 0.01812455874141297) assert_allclose(Brkic_2011_2(1E5, 1E-4), 0.018619745410688716) assert_allclose(Fang_2011(1E5, 1E-4), 0.018481390682985432) assert_allclose(Clamond(1E5, 1E-4), 0.01851386607747165) assert_allclose(Clamond(1E5, 1E-4, fast=True), 0.01851486771096876) assert_allclose(Colebrook(1E5, 1E-4), 0.018513866077471648) # Test the colebrook is the clamond when tol=-1 assert Colebrook(1E5, 1E-4, -1) == Clamond(1E5, 1E-4) # Test the colebrook is the analytical solution when Re < 10 # even when the clamond solution is specified assert Colebrook(1, 1E-4, -1) == Colebrook(1, 1e-4) assert_allclose(friction_laminar(128), 0.5) assert_allclose(Blasius(10000), 0.03164) assert_allclose(sum(_roughness.values()), 0.01504508) assert_allclose(friction_factor(Re=1E5, eD=1E-4), 0.01851386607747165) methods_1 = friction_factor(Re=1E5, eD=1E-4, AvailableMethods=True) methods_1.sort() methods_2 = ['Clamond', 'Colebrook', 'Manadilli_1997', 'Haaland', 'Alshul_1952', 'Avci_Karagoz_2009', 'Rao_Kumar_2007', 'Zigrang_Sylvester_2', 'Eck_1973', 'Buzzelli_2008', 'Tsal_1989', 'Papaevangelo_2010', 'Barr_1981', 'Jain_1976', 'Moody', 'Brkic_2011_2', 'Brkic_2011_1', 'Swamee_Jain_1976', 'Wood_1966', 'Shacham_1980', 'Romeo_2002', 'Chen_1979', 'Fang_2011', 'Round_1980', 'Sonnad_Goudar_2006', 'Churchill_1973', 'Churchill_1977', 'Serghides_2', 'Serghides_1', 'Zigrang_Sylvester_1'] methods_2.sort() assert methods_1 == methods_2 assert_allclose(friction_factor(Re=1E5, eD=1E-4, Darcy=False), 0.01851386607747165/4) assert_allclose(friction_factor(Re=128), 0.5) assert_allclose(friction_factor(Re=1E5, eD=0, Method=None), 0.01798977308427384) fd = ft_Crane(.1) assert_allclose(fd, 0.01628845962146481) Di = 0.1 fd_act = Colebrook(7.5E6*Di, eD=roughness_Farshad(ID='Carbon steel, bare', D=Di)/Di) assert_allclose(fd, fd_act, rtol=5e-6) @pytest.mark.slow @pytest.mark.mpmath def test_Colebrook_numerical_mpmath(): # tested at n=500 for both Re and eD Res = logspace(log10(1e-12), log10(1E12), 30) # 1E12 is too large for sympy - it slows down too much eDs = logspace(log10(1e-20), log10(.1), 21) # 1-1e-9 for Re in Res: for eD in eDs: fd_exact = Colebrook(Re, eD, tol=0) fd_numerical = Colebrook(Re, eD, tol=1e-12) assert_close(fd_exact, fd_numerical, rtol=1e-5) @pytest.mark.slow @pytest.mark.mpmath def test_Colebrook_scipy_mpmath(): # Faily grueling test - check the lambertw implementations are matching mostly # NOTE the test is to Re = 1E7; at higher Res the numerical solver is almost # always used Res = np.logspace(np.log10(1e-12), np.log10(1e7), 20) # 1E12 is too large for sympy eDs = np.logspace(np.log10(1e-20), np.log10(.1), 19) # 1-1e-9 for Re in Res: for eD in eDs: Re = float(Re) eD = float(eD) fd_exact = Colebrook(Re, eD, tol=0) fd_scipy = Colebrook(Re, eD) assert_allclose(fd_exact, fd_scipy, rtol=1e-9) @pytest.mark.slow def test_Colebrook_vs_Clamond(): Res = np.logspace(np.log10(10), np.log10(1E50), 40).tolist() eDs = np.logspace(np.log10(1e-20), np.log10(1), 40).tolist() for Re in Res: for eD in eDs: fd_exact = Colebrook(Re, eD) fd_clamond = Clamond(Re, eD) # Interestingly, matches to rtol=1e-9 vs. numerical solver # But does not have such accuracy compared to mpmath if np.isnan(fd_exact) or np.isnan(fd_clamond): continue # older scipy on 3.4 returns a nan sometimes assert_allclose(fd_exact, fd_clamond, rtol=1e-9) # If rtol is moved to 1E-7, eD can be increased to 1 @pytest.mark.mpmath def test_Colebrook_hard_regimes(): fd_inf_regime = Colebrook(104800000000, 2.55e-08) assert_allclose(fd_inf_regime, 0.0037751087365339906, rtol=1e-10) def test_one_phase_dP(): dP = one_phase_dP(10.0, 1000, 1E-5, .1, L=1) assert_allclose(dP, 63.43447321097365) def test_one_phase_dP_gravitational(): dP = one_phase_dP_gravitational(angle=90, rho=2.6) assert_allclose(dP, 25.49729) dP = one_phase_dP_gravitational(angle=90, rho=2.6, L=2) assert_allclose(dP, 25.49729*2) def test_one_phase_dP_dz_acceleration(): dP = one_phase_dP_dz_acceleration(m=1, D=0.1, rho=827.1, dv_dP=-1.1E-5, dP_dL=5E5, dA_dL=0.0001) assert_allclose(dP, 89162.89116373913) @pytest.mark.slow @pytest.mark.thermo @pytest.mark.skip def test_one_phase_dP_dz_acceleration_example(): # This requires thermo! from thermo import Stream, Vm_to_rho from fluids import one_phase_dP, one_phase_dP_acceleration import numpy as np from scipy.integrate import odeint from numpy.testing import assert_allclose P0 = 1E5 s = Stream(['nitrogen', 'methane'], T=300, P=P0, zs=[0.5, 0.5], m=1) rho0 = s.rho D = 0.1 def dP_dz(P, L, acc=False): s.flash(P=float(P), Hm=s.Hm) dPf = one_phase_dP(m=s.m, rho=s.rhog, mu=s.rhog, D=D, roughness=0, L=1) if acc: G = 4.0*s.m/(np.pi*D*D) der = s.VolumeGasMixture.property_derivative_P(P=s.P, T=s.T, zs=s.zs, ws=s.ws) der = 1/Vm_to_rho(der, s.MW) factor = G*G*der dP = dPf/(1.0 + factor) return -dP return -dPf ls = np.linspace(0, .01) dP_noacc = odeint(dP_dz, s.P, ls, args=(False,))[-1] s.flash(P=float(P0), Hm=s.Hm) # Reset the stream object profile = odeint(dP_dz, s.P, ls, args=(True,)) dP_acc = profile[-1] s.flash(P=dP_acc, Hm=s.Hm) rho1 = s.rho dP_acc_numerical = dP_noacc - dP_acc dP_acc_basic = one_phase_dP_acceleration(m=s.m, D=D, rho_o=rho1, rho_i=rho0) assert_allclose(dP_acc_basic, dP_acc_numerical, rtol=1E-4) def test_transmission_factor(): assert_allclose(transmission_factor(fd=0.0185), 14.704292441876154) assert_allclose(transmission_factor(F=14.704292441876154), 0.0185) assert_allclose(transmission_factor(0.0185), 14.704292441876154) # Example in [1]_, lists answer as 12.65 assert_allclose(transmission_factor(fd=0.025), 12.649110640673516) with pytest.raises(Exception): transmission_factor() def test_roughness_Farshad(): e = roughness_Farshad('Cr13, bare', 0.05) assert_allclose(e, 5.3141677781137006e-05) e = roughness_Farshad('Cr13, bare') assert_allclose(e, 5.5e-05) e = roughness_Farshad(coeffs=(0.0021, -1.0055), D=0.05) assert_allclose(e, 5.3141677781137006e-05) tot = sum([abs(j) for i in _Farshad_roughness.values() for j in i]) assert_allclose(tot, 7.0729095) with pytest.raises(Exception): roughness_Farshad('BADID', 0.05) def test_nearest_material_roughness(): hit1 = nearest_material_roughness('condensate pipes', clean=False) assert hit1 == 'Seamless steel tubes, Condensate pipes in open systems or periodically operated steam pipelines' hit2 = nearest_material_roughness('Plastic', clean=True) assert hit2 == 'Plastic coated' def test_material_roughness(): e1 = material_roughness('Plastic coated') assert_allclose(e1, 5e-06) e2 = material_roughness('Plastic coated', D=1E-3) assert_allclose(e2, 5.243618447826409e-06) e3 = material_roughness('Brass') assert_allclose(e3, 1.52e-06) e4 = material_roughness('condensate pipes') assert_allclose(e4, 0.0005) ID = 'Old, poor fitting and manufacture; with an overgrown surface' e5 = [material_roughness(ID, optimism=i) for i in (True, False)] assert_allclose(e5, [0.001, 0.004]) def test_von_Karman(): f = von_Karman(1E-4) f_precalc = 0.01197365149564789 assert_allclose(f, f_precalc) def Prandtl_von_Karman_Nikuradse_numeric(Re): rat = 2.51/Re def to_solve(f): # Good to 1E75, down to 1E-17 v = f**-0.5 return v + 2.0*log10(rat*v) return secant(to_solve, 0.000001) def test_Prandtl_von_Karman_Nikuradse(): Re = 200 assert_allclose(Prandtl_von_Karman_Nikuradse_numeric(Re), Prandtl_von_Karman_Nikuradse(Re)) def test_Prandtl_von_Karman_Nikuradse_full(): # Tested to a very high number of points fds = [] fds_numeric = [] for Re in logspace(1E-15, 30, 40): fds.append(Prandtl_von_Karman_Nikuradse_numeric(Re)) fds_numeric.append(Prandtl_von_Karman_Nikuradse(Re)) assert_allclose(fds, fds_numeric) def test_helical_laminar_fd_White(): fd = helical_laminar_fd_White(250, .02, .1) assert_allclose(fd, 0.4063281817830202) assert_allclose(helical_laminar_fd_White(250, .02, 100), 0.256) def test_helical_laminar_fd_Mori_Nakayama(): fd = helical_laminar_fd_Mori_Nakayama(250, .02, .1) assert_allclose(fd, 0.4222458285779544) assert_allclose(4.4969472, helical_laminar_fd_Mori_Nakayama(20, .02, .1)) def test_helical_laminar_fd_Schmidt(): fd = helical_laminar_fd_Schmidt(250, .02, .1) assert_allclose(fd, 0.47460725672835236) # Test convergence at low curvature assert_allclose(helical_laminar_fd_Schmidt(250, 1, 1E10), friction_laminar(250)) def test_helical_turbulent_fd_Srinivasan(): fd = helical_turbulent_fd_Srinivasan(1E4, 0.01, .02) assert_allclose(fd, 0.0570745212117107) def test_helical_turbulent_fd_Schmidt(): fd = helical_turbulent_fd_Schmidt(1E4, 0.01, .02) assert_allclose(fd, 0.08875550767040916) fd = helical_turbulent_fd_Schmidt(1E4, 0.01, .2) assert_allclose(fd, 0.04476560991345504) assert_allclose(friction_factor(1E4), helical_turbulent_fd_Schmidt(1E4, 0.01, 1E11)) fd = helical_turbulent_fd_Schmidt(1E6, 0.01, .02) assert_allclose(fd, 0.04312877383550924) def test_helical_turbulent_fd_Mori_Nakayama(): # Formula in [1]_ is hard to read, but the powers have been confirmed in # two sources to be 1/5. [3]_ butchers the formula's brackets/power raising, # but is otherwise correct. fd = helical_turbulent_fd_Mori_Nakayama(1E4, 0.01, .2) assert_allclose(fd, 0.037311802071379796) def test_helical_turbulent_fd_Prasad(): # Checks out, formula in [2]_ is the same as in [1]_! fd = helical_turbulent_fd_Prasad(1E4, 0.01, .2) assert_allclose(fd, 0.043313098093994626) assert_allclose(helical_turbulent_fd_Prasad(1E4, 0.01, 1E20), friction_factor(1E4)) def test_helical_turbulent_fd_Czop(): fd = helical_turbulent_fd_Czop(1E4, 0.01, .2) assert_allclose(fd, 0.02979575250574106) def test_helical_turbulent_fd_Guo(): fd = helical_turbulent_fd_Guo(2E5, 0.01, .2) assert_allclose(fd, 0.022189161013253147) def test_helical_turbulent_fd_Ju(): fd = helical_turbulent_fd_Ju(1E4, 0.01, .2) assert_allclose(fd, 0.04945959480770937) assert_allclose(helical_turbulent_fd_Ju(1E4, 0.01, 1E80), friction_factor(1E4)) def test_helical_turbulent_fd_Mandal_Nigam(): fd = helical_turbulent_fd_Mandal_Nigam(1E4, 0.01, .2) assert_allclose(fd, 0.03831658117115902) assert_allclose(helical_turbulent_fd_Mandal_Nigam(1E4, 0.01, 1E80), friction_factor(1E4)) def test_helical_transition_Re_Seth_Stahel(): # Read the original assert_allclose(helical_transition_Re_Seth_Stahel(1, 7.), 7645.0599897402535) assert_allclose(helical_transition_Re_Seth_Stahel(1, 1E20), 1900) def test_helical_transition_Re_Ito(): assert_allclose(helical_transition_Re_Ito(1, 7.), 10729.972844697186) def test_helical_transition_Re_Kubair_Kuloor(): assert_allclose(helical_transition_Re_Kubair_Kuloor(1, 7), 8625.986927588123) def test_helical_transition_Re_Kutateladze_Borishanskii(): assert_allclose(helical_transition_Re_Kutateladze_Borishanskii(1, 7.), 7121.143774574058) assert_allclose(helical_transition_Re_Kutateladze_Borishanskii(1, 1E20), 2300) def test_helical_transition_Re_Schmidt(): assert_allclose(helical_transition_Re_Schmidt(1, 7.), 10540.094061770815) assert_allclose(helical_transition_Re_Schmidt(1, 1E20), 2300) def test_helical_transition_Re_Srinivasan(): assert_allclose(helical_transition_Re_Srinivasan(1, 7.), 11624.704719832524,) assert_allclose(helical_transition_Re_Srinivasan(1, 1E20), 2100) def test_friction_factor_curved(): fd = friction_factor_curved(2E4, 0.01, .02) assert_allclose(fd, 0.050134646621603024) fd = friction_factor_curved(250, .02, .1) assert_allclose(fd, 0.47460725672835236) fd_transition = [friction_factor_curved(i, 0.01, .02) for i in [16779, 16780]] assert_allclose(fd_transition, [0.03323676794260526, 0.057221855744623344]) with pytest.raises(Exception): friction_factor_curved(16779, 0.01, .02, Method='BADMETHOD') with pytest.raises(Exception): friction_factor_curved(16779, 0.01, .02, Rec_method='BADMETHOD') fd_rough_false = friction_factor_curved(20000, 0.01, .02, roughness=.0001, turbulent_method='Guo') assert_allclose(fd_rough_false, 0.1014240343662085) methods = friction_factor_curved(20000, 0.01, .02, AvailableMethods=True) assert sorted(methods) == sorted(['Guo','Ju','Schmidt turbulent','Prasad','Mandel Nigam','Mori Nakayama turbulent','Czop', 'Srinivasan turbulent']) methods = friction_factor_curved(2000, 0.01, .02, AvailableMethods=True) assert sorted(methods) == sorted(['White', 'Schmidt laminar', 'Mori Nakayama laminar']) # Test the Fanning case fd = friction_factor_curved(2E4, 0.01, .02, Darcy=False) assert_allclose(fd, 0.012533661655400756) def test_friction_plate(): fd = friction_plate_Martin_1999(Re=20000, plate_enlargement_factor=1.15) assert_allclose(fd, 2.284018089834134) fd = friction_plate_Martin_1999(Re=1999, plate_enlargement_factor=1.15) assert_allclose(fd, 2.749383588479863) fd = friction_plate_Martin_VDI(Re=20000, plate_enlargement_factor=1.15) assert_allclose(fd, 2.702534119024076) fd = friction_plate_Martin_VDI(Re=1999, plate_enlargement_factor=1.15) assert_allclose(fd, 3.294294334690556) fd = friction_plate_Muley_Manglik(Re=2000, chevron_angle=45, plate_enlargement_factor=1.2) assert_allclose(fd, 1.0880870804075413) def test_friction_Kumar(): from fluids.friction import Kumar_beta_list, Kumar_fd_Res fd = friction_plate_Kumar(2000, 30) assert_allclose(fd, 2.9760669055634517) all_ans_expect = [[[22.22222222222222, 18.900854099814858, 5.181226661414687, 5.139730745446174], [20.88888888888889, 17.09090909090909, 3.656954441625244, 3.609575756782771]], [[13.428571428571427, 12.000171923243482, 1.7788367041690634, 1.7788497785371564], [9.714285714285714, 8.5, 1.2332865464612235, 1.2320492987599356]], [[7.157894736842104, 6.590102034105372, 1.2332865464612235, 1.2320492987599356], [5.052631578947368, 4.571428571428571, 0.9576862861589914, 0.9547729646969146]], [[2.4615384615384617, 2.374448634025773, 0.8393834232628009, 0.8379103279437352], [2.4615384615384617, 2.3414634146341466, 0.7519331759748705, 0.7502394735017442]], [[1.9591836734693877, 1.9015330284979595, 0.6797898512309091, 0.6799788644298855], [1.9591836734693877, 1.9015330284979595, 0.6797898512309091, 0.6799788644298855]]] all_ans = [] for i, beta_main in enumerate(Kumar_beta_list): beta_ans = [] for beta in (beta_main-1, beta_main+1): Re_ans = [] for Re_main in Kumar_fd_Res[i]: for Re in [Re_main-1, Re_main+1]: ans = friction_plate_Kumar(Re, beta) Re_ans.append(ans) beta_ans.append(Re_ans) all_ans.append(beta_ans) assert_allclose(all_ans, all_ans_expect) fluids-0.1.78/tests/test_design_climate.py0000644000175000017500000015260413632560624017372 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from numpy.testing import assert_allclose import pytest import numpy as np from fluids.design_climate import * from fluids.design_climate import _latlongs, stations def test_heating_degree_days(): assert_allclose(heating_degree_days(273, truncate=False), -18.483333333333292) assert 0 == heating_degree_days(273, truncate=True) assert 0 == heating_degree_days(273) assert_allclose(heating_degree_days(273, T_base = 250), 23) assert_allclose(heating_degree_days(279, T_base=300, truncate=False), -21) def test_cooling_degree_days(): assert_allclose( cooling_degree_days(250), 33.15) assert 0 == cooling_degree_days(300) assert_allclose(cooling_degree_days(300, truncate=False), -16.85) assert_allclose(cooling_degree_days(250, T_base=300), 50) @pytest.mark.slow @pytest.mark.online def test_month_average_temperature(): station = get_closest_station(38.8572, -77.0369) station_data = StationDataGSOD(station) Ts_calc = station_data.month_average_temperature(1990, 2000, include_yearly=False, minimum_days=23) Ts_expect = [276.1599380905833, 277.5375516246206, 281.1881231671554, 286.7367003367004, 291.8689638318671, 296.79545454545456, 299.51868686868687, 298.2097914630174, 294.4116161616162, 288.25883023786247, 282.3188552188553, 277.8282339524275] assert_allclose(Ts_calc, Ts_expect, rtol=1E-3) assert station_data.warmest_month(1990, 2000) == 6 assert station_data.coldest_month(1990, 2000) == 0 def test_IntegratedSurfaceDatabaseStation(): # Information confirmed elsewhere i.e. https://geographic.org/global_weather/not_specified_canada/calgary_intl_cs_713930_99999.html values = [713930.0, 99999.0, 'CALGARY INTL CS', 'CA', None, None, 51.1, -114.0, 1081.0, 20040921.0, 20150831.0] test_station = IntegratedSurfaceDatabaseStation(*values) for value, attr in zip(values, test_station.__slots__): assert value == getattr(test_station, attr) def test_data(): assert _latlongs.shape[0] >= 27591 for station in stations: assert abs(station.LAT) <= 90 assert abs(station.LON) <= 180 def test_get_closest_station(): s = get_closest_station(51.02532675, -114.049868485806, 20150000) assert s.NAME == 'CALGARY INTL CS' with pytest.raises(Exception): get_closest_station(51.02532675, -114.049868485806, 90150000) sample_data_random_station_1999 = '''STN--- WBAN YEARMODA TEMP DEWP SLP STP VISIB WDSP MXSPD GUST MAX MIN PRCP SNDP FRSHTT 712650 99999 19990101 12.3 24 3.1 24 1022.8 24 1013.0 24 8.4 24 15.0 24 22.9 29.9 23.7 4.1 0.00G 999.9 001000 712650 99999 19990102 10.1 24 -0.6 24 1034.1 24 1024.1 24 6.8 24 12.7 24 29.9 35.0 23.0* 5.0* 0.00G 999.9 001000 712650 99999 19990103 28.1 24 24.9 24 1007.5 24 997.9 24 3.6 24 24.2 24 36.9 43.9 35.6* 21.2* 0.71G 999.9 001000 712650 99999 19990104 17.8 24 10.8 24 1011.0 24 1001.3 24 8.8 24 26.1 24 30.9 42.0 36.7 13.3 0.04G 999.9 001000 712650 99999 19990105 16.3 22 9.3 22 1022.9 22 1013.1 22 8.0 22 15.4 22 22.9 38.1 20.1 13.3 0.00G 999.9 001000 712650 99999 19990106 19.3 24 14.4 24 1016.3 24 1006.6 24 6.2 24 19.7 24 28.0 34.0 28.4* 10.4* 0.00G 999.9 001000 712650 99999 19990107 17.4 23 8.6 23 1019.5 23 1009.8 23 8.9 23 20.9 23 23.9 35.0 29.1 10.9 0.02G 999.9 001000 712650 99999 19990108 15.5 24 9.8 24 1026.3 24 1016.5 24 7.0 24 9.3 24 20.0 26.0 21.2* 10.4* 0.00G 999.9 001000 712650 99999 19990109 20.8 24 16.2 24 1012.1 24 1002.4 24 3.8 24 9.3 24 18.1 23.9 24.8* 19.4* 0.04G 999.9 001000 712650 99999 19990111 12.2 24 4.7 24 1016.8 24 1007.0 24 7.7 24 14.4 24 27.0 38.1 20.7 7.5 0.02G 999.9 000000 712650 99999 19990112 20.8 24 15.8 24 1011.8 24 1002.1 24 4.6 24 7.8 24 15.9 19.0 24.8 7.5 0.00G 999.9 001000 712650 99999 19990113 10.3 24 2.7 24 1026.1 24 1016.3 24 3.9 24 11.7 24 19.0 23.9 22.5* -0.4* 0.20G 999.9 001000 712650 99999 19990114 -0.7 24 -9.1 24 1034.7 24 1024.5 24 2.1 24 20.1 24 34.0 42.0 15.8* -7.6* 0.00G 999.9 001000 712650 99999 19990115 13.4 22 9.2 22 1016.2 22 1006.4 22 3.2 22 13.5 22 20.0 42.0 19.4* 8.6* 0.55G 999.9 001000 712650 99999 19990116 25.4 24 21.7 24 1009.2 24 999.7 24 5.6 24 18.8 24 26.0 32.1 35.6* 12.2* 0.02G 999.9 001000 712650 99999 19990117 33.3 24 28.0 24 1017.6 24 1008.1 24 6.1 24 8.9 24 19.0 32.1 37.4* 29.8* 0.16G 999.9 000000 712650 99999 19990118 36.6 24 33.9 24 1006.8 24 997.5 24 6.8 24 13.7 24 18.1 21.0 41.4 27.7 0.26G 999.9 010000 712650 99999 19990119 34.2 24 28.5 24 1006.3 24 996.9 24 8.7 24 22.6 24 30.9 36.9 41.4 32.5 0.02G 999.9 000000 712650 99999 19990120 32.3 24 25.8 24 1017.6 24 1008.2 24 8.5 24 12.1 24 20.0 38.1 33.8* 30.2* 0.00G 999.9 000000 712650 99999 19990121 32.0 24 27.5 24 1018.7 24 1009.3 24 7.2 24 4.6 24 11.1 21.0 37.4* 26.6* 0.00G 999.9 000000 712650 99999 19990122 34.0 19 31.6 19 1020.7 19 1011.2 19 6.7 19 21.5 19 28.9 37.9 36.7 26.1 0.02G 999.9 010000 712650 99999 19990123 40.1 24 39.1 24 1013.3 24 1003.9 24 4.8 24 9.9 24 21.0 39.0 48.2* 36.3* 0.33G 999.9 010000 712650 99999 19990124 38.9 24 34.0 24 1009.7 23 1000.3 23 7.7 24 14.4 24 22.9 28.9 48.2* 33.8* 0.12G 999.9 011000 712650 99999 19990125 31.7 23 24.9 23 1021.4 23 1011.8 23 6.3 23 8.1 23 18.1 31.1 41.7 29.3 0.00G 999.9 001000 712650 99999 19990126 31.3 24 23.7 24 1028.3 24 1018.6 24 9.0 24 11.2 24 18.1 25.1 32.7 27.3 0.00I 999.9 000000 712650 99999 19990127 30.5 23 25.8 23 1021.1 23 1011.5 23 6.0 23 11.3 23 23.9 32.1 34.3 22.1 0.00G 999.9 010000 712650 99999 19990128 28.2 23 25.9 23 1015.2 23 1005.7 23 4.4 23 15.0 23 23.9 32.1 34.3 22.1 0.08G 999.9 011000 712650 99999 19990129 21.9 24 16.4 24 1028.6 24 1018.8 24 7.8 24 4.1 24 9.9 21.0 31.3 18.3 0.02G 999.9 001000 712650 99999 19990130 30.1 23 22.0 23 1033.4 23 1023.7 23 7.9 23 9.1 23 14.0 18.1 33.8* 26.6* 0.02G 999.9 000000 712650 99999 19990131 27.4 24 16.6 24 1042.4 24 1032.6 24 9.0 24 9.9 24 15.0 21.0 34.0 24.6 0.00G 999.9 000000 712650 99999 19990201 28.0 24 24.4 24 1030.5 24 1022.4 4 7.4 24 8.5 24 15.9 18.1 33.8* 23.0* 0.00G 999.9 000000 712650 99999 19990202 34.9 24 34.3 24 1012.5 22 1004.2 4 1.7 24 8.7 24 15.0 20.0 37.4* 33.6* 0.04G 999.9 010000 712650 99999 19990203 36.9 24 32.0 24 1009.6 24 998.9 4 9.0 24 12.5 24 16.9 25.1 40.3 33.4 0.14G 999.9 000000 712650 99999 19990204 37.2 24 32.1 24 1008.1 21 998.7 4 8.6 24 9.3 24 21.0 33.0 39.6* 33.8* 0.00G 999.9 010000 712650 99999 19990205 25.7 23 14.5 23 1027.2 23 9999.9 0 9.0 23 9.5 23 23.9 35.9 41.4 21.2 0.06G 999.9 000000 712650 99999 19990206 33.5 24 27.4 24 1014.9 21 1006.3 4 6.8 24 6.7 24 11.1 20.0 39.2* 27.9* 0.00G 999.9 001000 712650 99999 19990207 33.7 24 25.9 24 1015.5 22 1006.2 4 8.4 24 10.0 24 25.1 28.0 37.4* 30.2* 0.02G 999.9 000000 712650 99999 19990208 26.8 21 16.6 21 1016.7 21 9999.9 0 9.0 21 7.2 21 15.9 29.9 34.5 19.8 0.00G 999.9 000000 712650 99999 19990209 38.2 23 30.3 23 1012.0 23 1003.0 4 8.5 23 13.1 23 22.9 28.9 48.2* 32.0* 0.00G 999.9 000000 712650 99999 19990210 37.2 24 26.4 24 1020.4 24 1009.4 4 9.0 24 9.8 24 16.9 35.9 48.4 30.7 0.02G 999.9 000000 712650 99999 19990211 35.6 24 32.6 24 1020.1 23 1011.9 4 8.0 24 9.2 24 15.0 24.1 41.5 30.2 0.00G 999.9 010000 712650 99999 19990212 38.8 24 34.8 24 1006.6 24 997.3 4 7.5 24 13.7 24 25.1 40.0 50.0 31.3 0.02G 999.9 011000 712650 99999 19990213 25.2 24 15.8 24 1013.8 21 1002.8 4 8.1 24 18.3 24 22.9 45.1 32.0* 20.8* 0.18G 999.9 001000 712650 99999 19990214 23.0 24 7.9 24 1028.4 24 1018.2 4 9.0 24 7.6 24 15.0 32.1 32.0* 16.9* 0.00G 999.9 000000 712650 99999 19990215 34.5 21 26.4 21 1021.5 18 1013.0 4 8.9 21 11.6 21 18.1 999.9 41.0* 30.2* 0.00I 999.9 000000 712650 99999 19990216 36.6 24 32.6 24 1016.2 24 1007.4 4 7.6 24 7.6 24 14.0 20.0 42.3 28.9 0.00G 999.9 000000 712650 99999 19990217 37.4 24 33.3 24 1010.6 20 1001.2 4 5.8 24 12.8 24 22.0 28.0 42.3 31.6 0.06G 999.9 010000 712650 99999 19990218 33.2 24 24.0 24 1014.6 23 1004.7 4 8.3 24 10.1 24 15.9 24.1 41.2 29.8 0.02G 999.9 000000 712650 99999 19990219 24.7 24 11.2 24 1019.0 24 1009.2 4 9.0 24 8.5 24 12.0 19.0 34.2 19.0 0.00G 999.9 000000 712650 99999 19990220 23.6 24 11.2 24 1020.3 23 1010.4 4 9.0 24 8.8 24 13.0 16.9 30.2* 18.9* 0.00I 999.9 000000 712650 99999 19990221 21.0 24 2.7 24 1023.8 24 1013.6 4 9.0 24 12.6 24 15.9 26.0 30.6 15.4 0.00G 999.9 000000 712650 99999 19990222 13.1 23 -9.4 23 1031.8 23 1021.4 4 8.9 23 8.2 23 15.9 25.1 26.2 4.5 0.00G 999.9 000000 712650 99999 19990223 18.9 24 1.1 24 1032.5 24 1022.8 4 8.9 24 10.1 24 18.1 21.0 25.7 4.5 0.02G 999.9 000000 712650 99999 19990224 26.5 23 13.4 23 1028.9 22 1019.8 4 8.9 23 13.4 23 18.1 23.9 32.0* 21.2* 0.00G 999.9 000000 712650 99999 19990225 33.4 24 22.1 24 1021.3 24 1012.3 4 9.0 24 11.0 24 20.0 999.9 35.6* 32.0* 0.00I 999.9 000000 712650 99999 19990226 33.5 24 20.7 24 1021.9 24 1012.3 4 9.0 24 7.5 24 12.0 24.1 42.6 26.1 0.00G 999.9 000000 712650 99999 19990227 32.8 24 26.0 24 1017.3 24 1008.7 4 4.7 24 7.1 24 16.9 999.9 42.6 25.9 0.00I 999.9 000000 712650 99999 19990228 37.7 24 35.8 24 998.6 23 990.9 4 4.3 24 11.6 24 16.9 22.0 41.9 25.9 0.37G 999.9 010000 712650 99999 19990301 36.3 24 32.1 24 994.7 23 985.0 4 6.8 24 10.2 24 22.0 35.0 41.0* 32.0* 0.10G 999.9 010000 712650 99999 19990302 33.2 24 19.5 24 1005.5 23 9999.9 0 9.0 24 13.2 24 21.0 30.9 41.0* 24.8* 0.00G 999.9 001000 712650 99999 19990303 34.6 24 31.5 24 1004.4 24 996.3 4 5.6 24 11.8 24 21.0 29.9 42.3 25.0 0.02G 999.9 010000 712650 99999 19990304 28.0 24 18.7 24 1003.4 24 991.9 4 9.0 24 21.1 24 29.9 39.0 36.7 24.8 0.33G 999.9 001000 712650 99999 19990305 23.1 24 10.9 24 1026.0 24 1015.0 4 9.0 24 9.2 24 19.0 42.0 31.8 17.6 0.02G 999.9 000000 712650 99999 19990306 20.1 24 13.9 24 1023.4 21 1014.4 4 2.2 24 19.0 24 27.0 35.0 27.0 15.3 0.06G 999.9 001000 712650 99999 19990307 13.8 24 -2.9 24 1034.1 24 1022.7 4 8.7 24 13.2 24 22.0 36.9 25.3 6.6 0.04G 999.9 001000 712650 99999 19990308 18.6 24 3.4 24 1040.4 24 1030.7 4 9.0 24 6.2 24 9.9 28.9 26.6 6.6 0.00G 999.9 000000 712650 99999 19990309 24.0 24 10.8 24 1029.5 23 1021.2 4 9.0 24 12.3 24 25.1 29.9 27.5 10.9 0.00G 999.9 001000 712650 99999 19990310 24.4 24 5.7 24 1020.0 24 1010.5 4 9.0 24 10.9 24 15.9 32.1 28.4* 18.5* 0.06G 999.9 000000 712650 99999 19990311 28.9 24 14.6 24 1020.3 24 1010.8 4 9.0 24 11.0 24 19.0 28.0 33.8* 25.9* 0.02G 999.9 000000 712650 99999 19990312 28.2 24 13.8 24 1022.6 24 1012.6 4 9.0 24 13.5 24 19.0 28.9 34.0 22.8 0.00G 999.9 000000 712650 99999 19990313 29.5 24 12.7 24 1027.6 24 1017.9 4 9.0 24 7.9 24 14.0 28.9 35.4 22.8 0.00G 999.9 000000 712650 99999 19990314 32.4 24 17.6 24 1022.5 24 1013.8 4 9.0 24 9.8 24 15.0 22.0 35.4 23.5 0.00G 999.9 000000 712650 99999 19990315 34.1 24 15.5 24 1016.4 24 1007.3 4 9.0 24 7.5 24 15.9 21.0 42.8* 28.4* 0.00G 999.9 000000 712650 99999 19990316 37.0 24 22.3 24 1011.8 24 1003.3 4 9.0 24 11.1 24 26.0 999.9 42.8* 32.0* 0.00G 999.9 000000 712650 99999 19990317 39.8 24 33.0 24 1007.6 24 998.9 4 6.1 24 7.2 24 15.0 32.1 50.0* 34.9* 0.00G 999.9 000000 712650 99999 19990318 43.5 24 32.8 24 1004.3 24 994.1 4 8.9 24 17.5 24 34.0 41.0 52.5 33.6 0.00G 999.9 000000 712650 99999 19990319 35.3 24 22.5 24 1021.6 24 1010.9 4 9.0 24 12.8 24 18.1 41.0 47.5 29.3 0.02G 999.9 000000 712650 99999 19990320 32.9 24 23.4 24 1025.4 24 1016.4 4 9.0 24 6.8 24 13.0 22.0 43.3 27.0 0.00G 999.9 000000 712650 99999 19990321 38.0 24 31.7 24 1012.5 24 1004.6 4 8.9 24 11.0 24 18.1 999.9 42.8* 35.6* 99.99 999.9 010000 712650 99999 19990322 35.9 24 29.4 24 1005.4 23 996.1 4 7.8 24 15.6 24 27.0 34.0 43.9 32.9 99.99 999.9 011000 712650 99999 19990323 35.3 24 23.0 24 1015.7 24 1005.3 4 9.0 24 15.4 24 22.9 36.9 43.0 29.7 0.02G 999.9 000000 712650 99999 19990324 39.1 24 26.8 24 1014.2 24 1004.8 4 8.9 24 9.6 24 15.9 26.0 46.4* 34.9* 0.00G 999.9 000000 712650 99999 19990325 33.0 24 18.2 24 1022.4 22 9999.9 0 9.0 24 9.2 24 15.0 22.0 49.1 27.7 0.00G 999.9 001000 712650 99999 19990326 33.3 24 22.8 24 1026.8 24 1017.1 4 9.0 24 7.6 24 13.0 21.0 39.2* 26.6* 0.00G 999.9 001000 712650 99999 19990327 37.3 24 25.6 24 1026.6 24 1017.2 4 9.0 24 2.5 24 7.0 999.9 45.5 27.0 0.00I 999.9 000000 712650 99999 19990328 41.9 24 24.2 24 1021.7 24 1013.0 4 9.0 24 3.6 24 8.0 999.9 50.5 29.1 0.00I 999.9 000000 712650 99999 19990329 47.4 24 29.6 24 1016.6 24 1007.4 4 8.9 24 11.1 24 21.0 30.9 59.9 32.5 0.00I 999.9 000000 712650 99999 19990330 44.7 24 28.6 24 1022.6 24 1012.8 4 9.0 24 10.5 24 21.0 33.0 59.9 36.3 0.02G 999.9 000000 712650 99999 19990331 46.0 24 32.9 24 1018.4 24 1009.9 4 9.0 24 8.6 24 15.0 17.1 55.6 37.4 0.00G 999.9 000000 712650 99999 19990401 46.9 24 41.6 24 1013.6 23 9999.9 0 5.3 24 3.6 24 14.0 999.9 56.3 37.9 0.00I 999.9 000000 712650 99999 19990402 42.7 24 40.9 24 1017.8 22 1007.9 4 3.2 24 9.6 24 16.9 20.0 52.3 38.8 0.00I 999.9 000000 712650 99999 19990403 43.0 24 33.9 24 1016.1 24 1007.3 4 9.0 24 9.0 24 15.0 24.1 48.0 38.8 0.00G 999.9 000000 712650 99999 19990404 42.7 24 35.4 24 1016.1 23 1006.1 4 8.1 24 10.0 24 18.1 999.9 57.0 38.7 99.99 999.9 010000 712650 99999 19990405 38.8 23 23.5 23 1026.1 23 1016.1 4 8.9 23 13.3 23 19.0 27.0 57.0 33.8 0.06G 999.9 000000 712650 99999 19990406 42.6 24 35.7 24 1016.0 24 1009.1 4 8.9 24 14.5 24 21.0 27.0 50.0* 39.2* 0.00G 999.9 010000 712650 99999 19990407 48.8 24 36.6 24 1015.0 24 1004.7 4 9.0 24 16.1 24 25.1 36.9 57.0 38.8 0.12G 999.9 000000 712650 99999 19990408 51.4 23 37.9 23 1010.0 23 9999.9 0 8.4 23 10.9 23 22.9 34.0 64.4* 39.2* 0.00G 999.9 010000 712650 99999 19990409 44.9 24 31.2 24 1009.2 24 1000.5 4 9.0 24 14.4 24 20.0 33.0 64.6 39.0 0.06G 999.9 000000 712650 99999 19990410 42.3 24 23.7 24 1017.0 24 1006.3 4 9.0 24 8.6 24 14.0 27.0 48.7 36.3 0.00G 999.9 000000 712650 99999 19990411 38.0 24 30.0 24 1015.3 24 1007.0 4 8.1 24 20.3 24 35.0 42.0 41.2* 33.8* 0.00G 999.9 010000 712650 99999 19990412 43.0 23 25.8 23 1014.4 22 1003.8 4 8.9 23 12.4 23 19.0 42.9 52.2 32.9 0.12G 999.9 011000 712650 99999 19990413 45.6 24 18.7 24 1017.8 24 1008.8 4 9.0 24 12.2 24 16.9 25.1 56.5 36.0 0.02G 999.9 000000 712650 99999 19990414 50.2 23 22.0 23 1012.4 23 1003.5 4 8.9 23 10.5 23 16.9 28.9 64.4 36.0 0.00G 999.9 000000 712650 99999 19990415 47.2 24 28.2 24 1008.4 24 1000.0 4 9.0 24 6.5 24 12.0 29.9 65.7 38.1 0.00G 999.9 000000 712650 99999 19990416 43.0 24 32.4 24 998.6 24 990.0 4 8.6 24 15.3 24 25.1 30.9 51.1 38.8 0.00G 999.9 010000 712650 99999 19990417 43.2 24 38.8 24 1002.0 22 9999.9 0 8.5 24 6.9 24 12.0 33.0 51.8* 40.5* 0.14G 999.9 000000 712650 99999 19990418 45.0 24 36.6 24 1010.7 22 1000.7 4 9.0 24 7.1 24 15.9 19.0 51.8* 37.4* 0.00G 999.9 010000 712650 99999 19990419 44.2 24 39.3 24 1015.5 23 1006.1 4 8.4 24 6.4 24 13.0 22.0 51.6 37.9 0.02G 999.9 010000 712650 99999 19990420 45.7 23 32.9 23 1015.5 23 1006.0 4 8.9 23 6.8 22 9.9 15.0 55.0 40.1 0.00G 999.9 010000 712650 99999 19990421 45.8 24 35.8 24 1015.9 24 1006.9 4 8.7 24 5.0 24 11.1 17.1 55.0 38.1 0.02G 999.9 000000 712650 99999 19990422 46.9 24 39.8 24 1014.5 21 1004.6 4 7.4 24 7.8 24 14.0 999.9 55.8 38.1 0.00G 999.9 010000 712650 99999 19990423 45.1 24 35.6 24 1018.4 24 1008.6 4 7.1 24 10.7 24 18.1 22.0 50.0 42.4 0.75G 999.9 010000 712650 99999 19990424 43.6 24 17.3 24 1027.5 24 1017.2 4 9.0 24 9.6 24 15.0 27.0 53.6* 33.8* 0.06G 999.9 000000 712650 99999 19990425 45.4 24 24.3 24 1023.8 24 1015.5 4 9.0 24 11.1 24 21.0 26.0 62.6* 37.4* 0.02G 999.9 000000 712650 99999 19990426 53.5 24 32.5 24 1012.2 24 1003.3 4 9.0 24 11.6 24 18.1 26.0 65.1 36.7 0.00G 999.9 000000 712650 99999 19990427 46.4 24 28.6 24 1019.9 24 1009.4 4 9.0 24 8.9 24 13.0 29.9 65.1 41.0 0.00G 999.9 000000 712650 99999 19990428 48.8 24 33.4 24 1025.6 24 9999.9 0 9.0 24 12.3 24 21.0 26.0 51.8* 46.4* 0.00G 999.9 000000 712650 99999 19990429 51.7 24 30.7 24 1026.9 24 9999.9 0 9.0 24 7.3 24 12.0 18.1 55.9 45.5 0.00I 999.9 000000 712650 99999 19990430 54.4 24 28.9 24 1027.0 24 1017.7 4 9.0 24 5.5 24 11.1 18.1 59.4 46.6 0.00G 999.9 000000 712650 99999 19990501 55.9 24 30.6 24 1025.1 24 1016.0 4 9.0 24 4.2 24 8.0 999.9 62.6* 50.0* 0.00I 999.9 000000 712650 99999 19990502 57.4 24 37.8 24 1022.9 24 1013.8 4 9.0 24 3.6 24 8.0 999.9 68.7 45.7 0.00I 999.9 000000 712650 99999 19990503 59.9 24 39.3 24 1020.3 24 1011.3 4 9.0 24 6.9 24 11.1 999.9 68.9 45.7 0.00I 999.9 000000 712650 99999 19990504 59.5 24 40.8 24 1016.0 24 1007.0 4 9.0 24 4.2 24 11.1 999.9 67.6 50.0 0.00I 999.9 000000 712650 99999 19990505 59.7 23 49.5 23 1012.7 23 9999.9 0 9.0 23 11.4 23 19.0 25.1 67.6 50.0 0.00I 999.9 000000 712650 99999 19990506 59.0 24 52.7 24 1009.0 24 1000.4 4 8.2 24 13.0 24 20.0 26.0 65.5 48.2 0.00G 999.9 000000 712650 99999 19990507 57.8 24 53.0 24 1009.6 23 1000.0 4 7.7 24 6.9 24 12.0 27.0 64.2 48.2 0.00G 999.9 010000 712650 99999 19990508 55.2 24 53.4 24 1007.8 24 999.0 4 4.9 24 7.7 24 13.0 21.0 62.2 49.3 99.99 999.9 010000 712650 99999 19990509 55.0 24 47.3 24 1012.3 24 9999.9 0 7.5 24 10.3 24 19.0 22.0 62.1 49.3 0.20G 999.9 010000 712650 99999 19990510 49.6 24 36.8 24 1020.9 24 9999.9 0 9.0 24 6.3 24 13.0 24.1 61.3 40.5 0.06G 999.9 000000 712650 99999 19990511 52.2 24 37.1 24 1025.2 24 1015.6 4 9.0 24 10.0 24 18.1 999.9 57.9 40.5 0.00G 999.9 000000 712650 99999 19990512 51.5 24 32.4 24 1021.5 24 1012.9 4 9.0 24 5.6 24 15.0 26.0 57.6 42.4 0.00G 999.9 000000 712650 99999 19990513 50.1 22 29.9 22 1017.5 22 1008.1 4 8.9 22 9.6 22 16.9 20.0 57.6 42.4 0.00G 999.9 000000 712650 99999 19990514 54.0 22 36.7 22 1022.2 19 9999.9 0 9.0 22 13.6 22 20.0 25.1 57.2* 50.0* 0.00I 999.9 000000 712650 99999 19990515 57.2 24 41.9 24 1024.7 24 1015.3 4 9.0 24 7.2 24 11.1 26.0 60.8 49.5 0.00G 999.9 000000 712650 99999 19990516 57.9 24 45.2 24 1023.1 24 1014.0 4 9.0 24 8.6 24 12.0 999.9 62.8 48.6 0.00I 999.9 000000 712650 99999 19990517 57.7 24 48.1 24 1018.9 24 1010.2 4 9.0 24 8.9 24 14.0 17.1 64.6 48.6 0.00G 999.9 000000 712650 99999 19990518 61.1 24 53.6 24 1013.8 24 1005.2 4 8.8 24 7.6 24 14.0 19.0 66.2* 57.2* 0.00G 999.9 010000 712650 99999 19990519 58.8 24 51.6 24 1016.1 22 9999.9 0 7.2 24 8.9 24 14.0 22.0 68.0* 51.4* 0.26G 999.9 010000 712650 99999 19990520 55.2 24 44.1 24 1023.3 24 1013.8 4 9.0 24 6.2 24 11.1 25.1 68.2 45.1 0.18G 999.9 000000 712650 99999 19990521 57.5 24 50.0 24 1020.4 24 1011.6 4 8.2 24 4.0 24 11.1 999.9 67.1 45.1 0.00G 999.9 000000 712650 99999 19990522 60.2 24 50.6 24 1014.7 24 1005.9 4 8.9 24 5.5 24 12.0 999.9 67.1 50.0 0.00I 999.9 000000 712650 99999 19990523 62.4 22 52.7 22 1012.3 22 9999.9 0 8.9 22 5.6 22 11.1 999.9 69.8 55.8 0.00I 999.9 000000 712650 99999 19990524 57.2 24 53.4 24 999.1 22 9999.9 0 7.1 24 6.6 24 15.0 22.0 60.8* 53.6* 99.99 999.9 010000 712650 99999 19990525 50.4 22 44.3 22 999.2 22 989.7 4 8.8 22 18.1 22 22.9 29.9 55.0* 48.2* 0.41G 999.9 010000 712650 99999 19990526 51.7 24 46.7 24 1005.2 22 995.1 4 9.0 24 11.5 24 20.0 35.9 57.2* 47.7* 0.20G 999.9 010000 712650 99999 19990527 56.0 24 42.7 24 1013.1 24 1003.6 4 9.0 24 8.0 24 15.0 20.0 75.2* 42.8* 0.02G 999.9 000000 712650 99999 19990528 57.1 23 46.4 23 1014.9 23 1005.4 4 8.9 23 6.8 23 13.0 15.9 74.3 42.4 0.00G 999.9 000000 712650 99999 19990529 65.9 24 48.9 24 1018.7 23 1009.1 4 8.9 23 4.6 24 8.9 999.9 79.2 46.4 0.00I 999.9 000000 712650 99999 19990530 64.0 23 53.0 23 1021.1 23 1011.8 4 6.9 22 3.8 23 12.0 999.9 79.3 52.9 0.00I 999.9 000000 712650 99999 19990531 64.7 24 55.2 24 1017.1 24 1008.4 4 8.1 24 2.8 24 7.0 999.9 80.2 52.9 99.99 999.9 010000 712650 99999 19990601 61.3 24 59.3 24 1012.0 22 1003.2 4 2.9 24 5.5 24 12.0 999.9 73.8 57.6 99.99 999.9 010000 712650 99999 19990602 63.5 24 62.4 24 1010.4 15 9999.9 0 2.1 24 3.4 24 8.0 999.9 67.6 57.7 99.99 999.9 010000 712650 99999 19990603 61.4 24 55.6 24 1012.6 21 1001.5 4 7.4 24 11.3 24 16.9 21.0 67.8 57.9 0.00I 999.9 000000 712650 99999 19990604 59.4 23 46.2 23 1021.8 23 1012.1 4 8.9 23 6.4 23 9.9 25.1 65.5 52.5 0.02G 999.9 000000 712650 99999 19990605 58.6 24 45.9 24 1020.7 23 1011.6 4 9.0 24 8.0 24 13.0 999.9 66.6 52.5 0.00G 999.9 010000 712650 99999 19990606 63.2 24 56.3 24 1017.2 24 1008.4 4 7.2 24 6.2 24 15.0 999.9 72.0 52.5 0.00I 999.9 000000 712650 99999 19990607 66.6 24 62.2 24 1014.8 23 1005.9 4 4.4 24 4.7 24 22.9 41.0 77.7 52.5 0.00G 999.9 010000 712650 99999 19990608 72.4 24 59.7 24 1010.9 24 9999.9 0 8.8 24 11.1 24 25.1 41.0 84.2* 57.2* 0.33G 999.9 000000 712650 99999 19990609 68.0 23 58.2 23 1015.3 19 1006.0 4 8.9 23 7.0 23 16.9 31.1 84.2 57.0 0.02G 999.9 000000 712650 99999 19990610 65.0 23 59.5 23 1020.2 21 1010.6 4 8.8 23 13.9 23 18.1 21.0 72.1 60.8 0.00G 999.9 000000 712650 99999 19990611 65.9 24 61.1 24 1021.1 24 1011.8 4 6.3 24 9.9 24 15.9 24.1 71.6* 60.8* 0.00G 999.9 000000 712650 99999 19990612 68.4 24 62.2 24 1021.1 24 1012.0 4 6.6 24 7.6 24 13.0 18.1 73.6 60.3 0.00G 999.9 010000 712650 99999 19990613 69.0 24 60.3 24 1019.1 24 1010.4 4 9.0 24 5.8 24 11.1 999.9 74.5 60.6 0.00I 999.9 000000 712650 99999 19990614 68.4 24 62.2 24 1011.5 19 9999.9 0 7.9 24 9.6 24 22.9 27.0 73.6 61.2 99.99 999.9 010000 712650 99999 19990615 58.0 24 43.5 24 1018.2 24 1007.8 4 9.0 24 11.8 24 15.9 28.0 73.4 49.1 0.22G 999.9 000000 712650 99999 19990616 56.5 24 41.5 24 1022.4 24 1013.2 4 9.0 24 3.8 24 8.0 22.0 63.3 48.7 0.00G 999.9 000000 712650 99999 19990617 59.0 24 46.8 24 1020.8 24 1011.2 4 9.0 24 4.0 24 8.9 999.9 64.6 48.7 0.00I 999.9 000000 712650 99999 19990618 58.9 24 49.6 24 1024.7 24 1015.2 4 9.0 24 8.1 24 14.0 15.0 66.2* 50.0* 0.00I 999.9 000000 712650 99999 19990619 62.9 24 53.5 24 1027.8 24 1018.2 4 9.0 24 2.4 24 7.0 999.9 71.6* 53.6* 0.00I 999.9 000000 712650 99999 19990620 66.2 24 56.4 24 1026.6 24 1017.7 4 9.0 24 6.0 24 8.0 999.9 73.4* 62.6* 0.00I 999.9 000000 712650 99999 19990621 68.0 23 55.6 23 1025.0 23 1015.8 4 8.9 23 4.5 23 7.0 999.9 75.2* 60.8* 0.00I 999.9 000000 712650 99999 19990622 69.3 23 54.3 23 1022.8 23 9999.9 0 9.0 23 4.5 23 8.9 999.9 75.9 59.2 0.00I 999.9 000000 712650 99999 19990623 71.0 23 60.8 23 1018.1 23 1009.6 4 8.9 23 5.8 23 8.0 999.9 82.4* 66.2* 0.00I 999.9 000000 712650 99999 19990624 72.0 23 63.1 23 1013.3 22 1004.5 4 8.7 23 5.3 23 8.9 999.9 82.0 65.5 99.99 999.9 010000 712650 99999 19990625 72.3 24 67.7 24 1011.4 22 1002.2 4 6.9 24 6.6 24 15.9 999.9 78.3 66.9 99.99 999.9 010000 712650 99999 19990626 74.1 21 61.7 21 1013.6 21 9999.9 0 9.0 21 5.1 21 9.9 999.9 83.1* 66.2* 99.99 999.9 010000 712650 99999 19990627 73.3 24 65.5 24 1011.3 22 1002.7 4 8.3 24 6.4 24 13.0 999.9 84.2 66.4 99.99 999.9 010000 712650 99999 19990628 74.8 23 70.1 23 1005.2 22 996.7 4 5.4 23 5.7 23 9.9 17.1 80.6* 71.6* 0.06G 999.9 000000 712650 99999 19990629 72.4 23 63.5 23 1001.1 23 991.5 4 6.8 23 12.2 23 23.9 29.9 82.8 68.7 0.00G 999.9 010000 712650 99999 19990630 61.3 23 50.0 23 1014.4 23 1004.5 4 8.9 23 7.1 23 16.9 32.1 68.0* 51.8* 0.04G 999.9 000000 712650 99999 19990701 65.6 23 60.5 23 1012.3 23 1004.6 4 8.1 23 8.6 23 16.9 999.9 73.4* 60.8* 0.00G 999.9 010000 712650 99999 19990702 71.5 22 62.0 22 1010.5 22 1000.5 4 7.5 22 11.1 22 19.0 21.0 82.4* 62.6* 0.08G 999.9 010000 712650 99999 19990703 71.8 22 64.0 22 1017.3 22 1008.4 4 8.4 22 5.0 22 14.0 32.1 84.9 62.6 0.00G 999.9 010000 712650 99999 19990704 75.5 22 71.1 22 1014.8 20 9999.9 0 5.9 22 6.2 22 13.0 21.0 93.2* 69.8* 99.99 999.9 010000 712650 99999 19990705 80.2 24 71.9 24 1013.3 24 1004.6 4 8.7 24 10.0 24 15.9 20.0 93.4 67.8 0.00I 999.9 000000 712650 99999 19990706 77.9 22 68.1 22 1009.4 22 1000.4 4 6.7 22 12.8 22 21.0 33.0 92.7 66.6 0.00G 999.9 000000 712650 99999 19990707 71.8 23 53.8 23 1012.5 23 1003.4 4 9.0 21 12.5 23 21.0 28.9 89.8 53.4 0.00I 999.9 000000 712650 99999 19990708 67.4 19 51.2 19 1014.2 19 9999.9 0 9.0 19 10.8 19 16.9 21.0 82.8 53.4 0.00I 999.9 000000 712650 99999 19990709 63.4 24 55.3 24 1010.7 23 1002.7 4 9.0 24 8.8 24 20.0 25.1 75.9 55.8 99.99 999.9 010000 712650 99999 19990710 67.3 23 53.7 23 1009.5 23 998.7 4 8.9 23 12.6 23 15.9 26.0 77.2 55.8 0.00G 999.9 000000 712650 99999 19990711 63.2 22 49.5 22 1021.3 22 9999.9 0 9.0 22 7.7 22 14.0 20.0 74.3 55.2 0.00I 999.9 000000 712650 99999 19990712 62.8 23 54.6 23 1023.8 23 1014.5 4 8.9 23 5.0 23 11.1 999.9 73.9 54.0 0.00I 999.9 000000 712650 99999 19990713 67.1 22 55.8 22 1021.2 20 9999.9 0 9.0 22 6.3 22 9.9 999.9 75.2* 59.0* 0.00I 999.9 000000 712650 99999 19990714 69.0 23 61.4 23 1019.4 21 9999.9 0 8.6 23 6.1 23 8.9 999.9 75.2* 64.4* 0.00I 999.9 000000 712650 99999 19990715 69.9 20 60.6 20 1017.3 20 9999.9 0 6.6 20 5.7 20 15.0 999.9 78.8* 64.4* 0.00I 999.9 000000 712650 99999 19990716 72.2 23 64.0 23 1017.9 23 9999.9 0 2.5 15 6.4 23 15.9 999.9 80.6* 64.4* 0.00I 999.9 000000 712650 99999 19990717 72.6 22 65.4 22 1017.4 22 9999.9 0 4.0 21 6.9 22 22.9 999.9 84.2* 66.2* 99.99 999.9 010000 712650 99999 19990718 73.4 23 67.0 23 1018.4 23 9999.9 0 5.3 23 4.8 23 15.0 40.0 87.8* 66.2* 0.02G 999.9 000000 712650 99999 19990719 71.8 22 62.4 22 1016.7 21 9999.9 0 8.7 22 4.7 22 8.0 999.9 77.0* 68.0* 0.00G 999.9 010000 712650 99999 19990720 70.1 22 60.1 22 1019.2 22 9999.9 0 8.6 22 7.3 22 12.0 15.9 73.4* 64.4* 0.00I 999.9 000000 712650 99999 19990721 70.7 23 61.1 23 1019.3 23 9999.9 0 9.0 23 6.7 23 12.0 999.9 75.2* 66.2* 0.00I 999.9 000000 712650 99999 19990722 73.3 22 60.6 22 1015.1 22 9999.9 0 9.0 22 3.4 22 8.9 999.9 82.4* 66.2* 0.00I 999.9 000000 712650 99999 19990723 77.0 22 66.5 22 1013.8 22 9999.9 0 8.7 22 7.0 22 13.0 999.9 84.2* 69.8* 0.00I 999.9 000000 712650 99999 19990724 77.9 24 68.9 24 1008.2 24 9999.9 0 8.3 24 9.6 24 14.0 999.9 87.8* 71.6* 0.00I 999.9 000000 712650 99999 19990725 77.4 24 62.3 24 1007.7 23 9999.9 0 9.0 24 9.8 24 23.9 33.0 89.2 67.1 99.99 999.9 010000 712650 99999 19990726 77.2 24 64.2 24 1009.8 24 9999.9 0 9.0 24 9.6 24 16.9 22.0 86.0* 69.8* 0.00I 999.9 000000 712650 99999 19990727 80.6 24 60.3 24 1011.2 24 9999.9 0 9.0 24 9.6 24 21.0 28.0 91.4* 71.6* 0.00G 999.9 000000 712650 99999 19990728 73.2 21 54.5 21 1011.6 21 9999.9 0 9.0 21 5.8 21 14.0 20.0 82.4* 62.6* 0.00I 999.9 000000 712650 99999 19990729 75.7 21 66.0 21 1005.5 19 9999.9 0 9.0 21 6.7 21 11.1 999.9 87.6 68.9 0.00I 999.9 000000 712650 99999 19990730 78.0 24 68.5 24 1003.5 24 994.5 4 9.0 24 5.3 24 12.0 999.9 88.5 68.9 0.00I 999.9 000000 712650 99999 19990731 75.1 21 70.2 21 1005.6 18 9999.9 0 7.2 21 5.4 21 16.9 26.0 87.8 69.6 99.99 999.9 010000 712650 99999 19990801 75.4 24 61.8 24 1009.3 24 9999.9 0 8.6 24 7.9 24 14.0 15.9 82.4* 68.0* 0.00I 999.9 000000 712650 99999 19990802 69.9 24 56.6 24 1017.6 24 9999.9 0 9.0 24 7.1 24 13.0 16.9 78.8* 60.8* 0.00I 999.9 000000 712650 99999 19990803 69.7 23 54.5 23 1019.9 23 9999.9 0 9.0 23 8.1 23 15.0 19.0 79.2 60.8 0.00I 999.9 000000 712650 99999 19990804 66.9 23 63.0 23 1014.2 21 9999.9 0 7.7 23 5.4 23 8.9 21.0 79.2 60.8 99.99 999.9 010000 712650 99999 19990805 67.5 24 59.5 24 1010.2 24 9999.9 0 8.3 24 4.4 24 11.1 999.9 77.0* 60.8* 0.00I 999.9 000000 712650 99999 19990806 66.8 20 54.0 20 1011.6 20 9999.9 0 8.8 20 9.2 20 18.1 23.9 78.8* 59.0* 99.99 999.9 010000 712650 99999 19990807 64.4 23 55.7 23 1015.9 23 9999.9 0 9.0 23 5.5 23 11.1 15.9 71.6* 57.2* 0.00I 999.9 000000 712650 99999 19990808 68.9 23 62.3 23 1007.8 23 9999.9 0 6.6 23 9.5 23 22.0 29.9 78.8* 64.4* 99.99 999.9 010000 712650 99999 19990809 62.9 22 50.7 22 1013.9 22 9999.9 0 9.0 22 6.6 22 15.0 21.0 69.8* 55.4* 0.00I 999.9 000000 712650 99999 19990810 62.6 23 54.8 23 1010.4 23 9999.9 0 8.7 23 6.9 23 18.1 999.9 74.1 60.8 99.99 999.9 010000 712650 99999 19990811 66.0 23 63.5 23 1008.8 23 9999.9 0 4.0 23 3.8 23 9.9 999.9 71.6* 62.6* 0.00I 999.9 000000 712650 99999 19990812 68.8 21 62.3 21 1013.7 21 9999.9 0 7.6 21 4.3 21 9.9 999.9 78.8* 62.6* 0.00I 999.9 000000 712650 99999 19990813 70.8 21 67.4 21 1007.6 17 9999.9 0 4.9 21 6.0 21 11.1 999.9 75.2* 68.0* 99.99 999.9 010000 712650 99999 19990814 66.3 21 60.6 21 1008.7 21 998.7 4 8.5 21 9.2 21 16.9 22.0 75.9 61.7 99.99 999.9 010000 712650 99999 19990815 66.1 22 55.1 22 1019.5 22 1009.6 4 8.9 22 5.0 22 12.0 999.9 71.8* 60.8* 0.00I 999.9 000000 712650 99999 19990816 67.3 23 58.3 23 1022.2 22 1013.0 4 8.9 23 3.9 23 9.9 999.9 75.2* 62.6* 0.00I 999.9 000000 712650 99999 19990817 73.3 22 63.9 22 1013.4 21 1004.8 4 7.6 22 9.0 22 15.0 21.0 84.7* 66.2* 0.00I 999.9 000000 712650 99999 19990818 68.4 23 59.5 23 1014.0 23 1004.2 4 8.9 23 7.3 23 12.0 15.0 86.0 61.7 0.00I 999.9 000000 712650 99999 19990819 67.5 23 57.1 23 1016.5 23 1007.1 4 8.9 23 6.9 23 11.1 999.9 74.8 61.7 0.00I 999.9 000000 712650 99999 19990820 67.1 24 59.6 24 1016.8 24 1007.8 4 8.8 24 6.3 24 14.0 18.1 71.6 63.0 99.99 999.9 010000 712650 99999 19990821 67.8 23 62.3 23 1017.6 23 1008.2 4 8.9 23 9.0 23 14.0 18.1 72.1 63.0 0.24G 999.9 010000 712650 99999 19990822 68.3 23 60.0 23 1017.8 23 9999.9 0 8.9 23 4.9 23 8.9 999.9 74.1 61.2 0.00G 999.9 000000 712650 99999 19990823 70.8 23 61.3 23 1016.9 23 1007.9 4 8.6 23 3.8 23 7.0 999.9 79.0 61.2 0.00I 999.9 000000 712650 99999 19990824 72.5 23 66.3 23 1014.8 22 1005.9 4 8.4 23 10.3 23 15.0 999.9 79.9 62.6 99.99 999.9 010000 712650 99999 19990825 72.1 23 67.7 23 1014.4 22 1005.3 4 5.7 23 5.2 23 13.0 15.9 76.1 68.9 99.99 999.9 010000 712650 99999 19990826 72.4 23 67.7 23 1012.7 23 1003.8 4 8.6 23 9.3 23 15.0 18.1 75.7 68.9 99.99 999.9 010000 712650 99999 19990827 72.0 24 67.0 24 1011.6 24 1002.4 4 8.7 24 7.2 24 12.0 999.9 75.2* 68.0* 99.99 999.9 010000 712650 99999 19990828 76.7 24 66.3 24 1010.7 24 1001.9 4 6.7 24 8.5 24 16.9 25.1 89.6* 69.8* 99.99 999.9 010000 712650 99999 19990829 67.7 17 47.7 17 1015.5 15 1005.2 4 8.9 17 12.3 17 18.1 27.0 80.6* 62.6* 0.00I 999.9 000000 712650 99999 19990830 60.4 20 48.2 20 1026.3 15 9999.9 0 9.0 20 9.7 20 15.9 21.0 64.4* 53.6* 0.00I 999.9 000000 712650 99999 19990831 64.1 23 55.9 23 1026.3 23 1017.1 4 8.9 23 4.6 23 8.0 999.9 70.2 57.6 0.00I 999.9 000000 712650 99999 19990901 66.9 24 58.9 24 1023.0 22 1014.1 4 8.9 23 3.2 24 6.0 999.9 73.4 56.5 99.99 999.9 010000 712650 99999 19990902 69.7 24 59.6 24 1020.3 24 1011.4 4 8.5 24 2.9 24 8.0 999.9 82.4* 60.8* 0.00I 999.9 000000 712650 99999 19990903 72.2 23 60.2 23 1018.8 23 9999.9 0 8.5 23 3.2 23 8.0 999.9 82.4* 62.6* 0.00I 999.9 000000 712650 99999 19990904 73.4 23 62.7 23 1018.6 23 1009.5 4 7.9 23 3.4 23 9.9 999.9 81.9 62.1 0.00I 999.9 000000 712650 99999 19990905 74.8 23 67.1 23 1018.0 22 1009.2 4 8.0 23 8.7 23 14.0 999.9 80.2 66.4 99.99 999.9 010000 712650 99999 19990906 75.4 23 70.0 23 1012.5 21 9999.9 0 9.0 23 7.2 23 11.1 999.9 80.6* 71.6* 99.99 999.9 010000 712650 99999 19990907 72.0 24 68.1 24 1009.4 21 1000.4 4 7.4 24 7.1 24 14.0 15.9 77.0* 68.0* 99.99 999.9 010000 712650 99999 19990908 72.8 24 66.7 24 1009.0 23 1000.2 4 5.8 24 6.0 24 13.0 21.0 78.8* 68.0* 0.10G 999.9 010000 712650 99999 19990909 72.0 23 67.7 23 1007.3 21 9999.9 0 6.2 23 9.2 23 15.9 999.9 78.6 68.0 0.00G 999.9 010000 712650 99999 19990910 66.2 22 54.2 22 1008.6 20 9999.9 0 9.0 22 8.5 22 15.0 19.0 73.4* 60.8* 0.00I 999.9 000000 712650 99999 19990911 66.6 24 51.5 24 1012.2 24 1002.3 4 9.0 24 14.2 24 19.0 22.0 72.0 59.7 0.00G 999.9 010000 712650 99999 19990912 63.4 21 55.6 21 1019.0 21 1010.0 4 8.9 21 6.4 21 14.0 26.0 73.8 53.8 0.00G 999.9 000000 712650 99999 19990913 68.8 21 65.2 21 1015.0 15 9999.9 0 7.8 21 11.2 21 20.0 999.9 72.0 66.9 99.99 999.9 010000 712650 99999 19990914 66.1 23 59.1 23 1016.0 23 9999.9 0 7.0 23 9.0 23 15.9 999.9 72.0 57.9 0.00H 999.9 010000 712650 99999 19990915 61.6 24 52.0 24 1019.2 24 1009.7 4 9.0 24 5.4 24 13.0 35.0 71.8 53.4 0.00G 999.9 000000 712650 99999 19990916 63.4 24 51.7 24 1017.0 24 1008.2 4 9.0 24 10.9 24 19.0 21.0 71.1 53.4 0.00G 999.9 000000 712650 99999 19990917 61.2 22 46.6 22 1018.0 22 9999.9 0 9.0 22 11.3 22 15.9 24.1 69.8* 53.6* 0.00G 999.9 000000 712650 99999 19990918 60.8 24 50.2 24 1020.3 24 1011.3 4 9.0 24 5.8 24 9.9 15.0 70.5 51.4 0.00I 999.9 000000 712650 99999 19990919 62.9 22 57.8 22 1017.4 22 1008.3 4 8.6 22 5.0 22 11.1 999.9 69.8* 55.4* 0.00I 999.9 000000 712650 99999 19990920 64.0 23 58.7 23 1010.8 22 9999.9 0 8.2 23 7.9 23 14.0 21.0 70.2 55.0 99.99 999.9 010000 712650 99999 19990921 52.0 24 39.8 24 1017.7 24 1007.9 4 9.0 24 9.6 24 15.0 23.9 68.2 45.5 0.00I 999.9 000000 712650 99999 19990922 51.5 23 39.4 23 1015.8 23 1007.4 4 8.9 23 7.3 23 11.1 999.9 64.4* 41.0* 0.00I 999.9 000000 712650 99999 19990923 60.6 24 49.7 24 1008.0 23 999.3 4 9.0 24 10.5 24 21.0 23.9 69.8* 53.6* 99.99 999.9 010000 712650 99999 19990924 61.8 24 53.3 24 1007.1 24 997.5 4 8.9 24 7.7 24 15.9 27.0 69.6 53.4 0.00G 999.9 010000 712650 99999 19990925 56.6 24 46.5 24 1016.2 24 1006.1 4 9.0 24 6.2 24 8.9 19.0 67.6 51.3 0.08G 999.9 000000 712650 99999 19990926 59.3 24 52.2 24 1020.4 24 1011.2 4 9.0 24 9.7 24 20.0 21.0 64.4* 53.6* 0.00G 999.9 000000 712650 99999 19990927 63.9 20 60.6 20 1020.2 20 1010.8 4 6.1 20 7.8 20 14.0 24.1 70.2 55.6 0.00G 999.9 000000 712650 99999 19990928 66.7 4 64.6 4 1020.2 4 1011.0 4 999.9 0 6.8 4 11.1 999.9 70.9 60.3 0.00D 999.9 000000 712650 99999 19990930 57.2 4 51.0 4 1004.7 4 995.6 4 7.3 4 13.7 4 20.0 36.9 69.6 51.3 1.87G 999.9 000000 712650 99999 19991001 58.5 8 42.9 8 1012.8 8 1001.3 4 8.8 8 12.9 8 18.1 32.1 62.6 51.3 0.06G 3.1 000000 712650 99999 19991002 52.7 4 45.8 4 1017.7 4 1008.4 4 8.7 4 4.0 4 7.0 24.1 63.3 46.0 0.00G 3.5 000000 712650 99999 19991004 46.6 9 36.3 9 1024.1 9 1015.1 4 8.7 9 8.4 9 12.0 22.0 54.5 38.7 0.28G 2.8 000000 712650 99999 19991005 47.0 24 38.9 24 1022.1 24 9999.9 0 9.0 24 5.6 24 11.1 25.1 55.4* 40.6* 0.10G 0.4 000000 712650 99999 19991006 49.7 23 37.8 23 1018.7 21 1008.2 4 8.9 23 14.0 23 18.1 25.1 55.8 38.3 0.00G 0.4 010000 712650 99999 19991007 39.0 22 24.8 22 1030.5 22 1020.4 4 8.9 22 7.3 22 9.9 999.9 53.2 34.3 0.00D 1.2 000000 712650 99999 19991008 51.5 21 45.0 21 1022.3 19 1014.6 4 8.7 21 6.6 21 15.0 999.9 59.0* 42.4* 0.02D 2.0 010000 712650 99999 19991009 55.9 19 54.4 19 1018.5 13 9999.9 0 3.5 19 9.2 19 14.0 999.9 61.3 45.0 0.22C 2.0 010000 712650 99999 19991010 56.6 22 56.0 22 1016.1 15 1007.4 4 2.7 22 2.4 22 6.0 999.9 62.6* 51.8* 0.00D 2.0 000000 712650 99999 19991011 57.4 21 45.9 21 1019.3 21 1009.2 4 8.3 21 9.5 21 15.9 23.9 64.4* 49.5* 0.02D 999.9 010000 712650 99999 19991012 49.0 20 40.5 20 1025.9 18 1017.2 4 8.6 20 5.3 20 11.1 999.9 55.6* 42.8* 0.00D 999.9 000000 712650 99999 19991013 55.6 22 52.8 22 1009.6 22 9999.9 0 7.0 22 6.8 22 15.0 999.9 62.1 41.9 0.00H 0.4 010000 712650 99999 19991014 44.2 22 35.8 22 1015.6 20 1004.4 4 8.3 22 13.0 22 22.9 35.0 52.0* 37.4* 1.59D 999.9 010000 712650 99999 19991015 49.7 24 40.7 24 1020.9 24 1011.8 4 9.0 24 6.1 24 12.0 15.0 57.2* 44.6* 0.02D 999.9 000000 712650 99999 19991016 55.7 23 51.6 23 1015.1 23 1006.6 4 8.8 23 6.6 23 15.0 999.9 62.6 42.6 0.00D 2.0 000000 712650 99999 19991017 55.5 24 51.0 24 1014.3 22 1005.0 4 8.3 24 7.4 24 15.9 21.0 64.2 49.1 0.00D 2.4 010000 712650 99999 19991018 47.2 24 39.5 24 1017.8 23 9999.9 0 9.0 24 7.2 24 12.0 15.9 51.8* 42.8* 0.00C 999.9 000000 712650 99999 19991019 46.1 23 37.5 23 1024.8 23 1015.5 4 8.9 23 8.6 23 14.0 20.0 51.3 39.0 0.00G 2.0 000000 712650 99999 19991020 50.3 23 41.1 23 1020.2 22 1011.2 4 8.9 23 9.7 23 21.0 28.9 55.9 40.8 0.00G 999.9 000000 712650 99999 19991021 47.7 24 37.1 24 1018.0 24 1009.5 4 9.0 24 9.0 24 18.1 999.9 56.1 39.4 0.00D 2.0 000000 712650 99999 19991022 52.5 24 44.9 24 999.1 22 990.9 4 9.0 24 15.0 24 22.9 28.0 55.8 39.4 0.00G 2.0 010000 712650 99999 19991023 45.6 24 39.0 24 999.4 24 989.7 4 9.0 24 11.8 24 18.1 29.9 55.8 42.1 0.08G 2.0 000000 712650 99999 19991024 44.0 24 34.6 24 1012.1 24 1001.3 4 9.0 24 12.1 24 18.1 27.0 49.6 39.4 0.00G 999.9 000000 712650 99999 19991025 45.4 23 36.9 23 1017.6 23 1008.3 4 8.9 23 13.0 23 18.1 29.9 53.8 39.4 0.00G 2.4 000000 712650 99999 19991026 51.7 24 39.2 24 1011.6 23 1002.1 4 9.0 24 13.4 24 20.0 28.0 59.2 40.8 0.02G 3.1 000000 712650 99999 19991027 44.4 23 34.1 23 1023.9 23 1013.3 4 8.9 23 8.3 23 14.0 16.9 49.5* 41.0* 0.00G 2.0 000000 712650 99999 19991028 46.6 23 41.1 23 1024.4 23 1016.1 4 8.9 23 6.1 23 11.1 999.9 55.6 40.3 0.00D 0.4 000000 712650 99999 19991029 48.7 23 44.7 23 1024.5 23 1014.2 4 7.4 23 7.0 23 13.0 999.9 57.2 40.3 0.00D 999.9 000000 712650 99999 19991030 51.2 21 47.9 21 1024.6 21 1015.5 4 7.7 21 7.3 21 12.0 999.9 57.6* 48.7* 0.00D 999.9 000000 712650 99999 19991031 55.7 24 48.5 24 1020.6 21 1011.2 4 5.5 24 7.6 24 15.0 25.1 64.4* 48.2* 0.04D 999.9 010000 712650 99999 19991101 47.1 24 43.6 24 1020.6 24 1012.0 4 7.8 24 4.5 24 12.0 999.9 65.8 39.6 0.00D 999.9 000000 712650 99999 19991102 49.3 24 47.8 24 1005.6 22 998.0 4 4.3 24 11.0 24 25.1 35.9 55.8 39.6 0.31D 999.9 010000 712650 99999 19991103 37.1 24 34.0 24 994.6 20 985.3 4 7.5 24 22.1 24 30.9 42.9 40.1* 35.1* 1.46G 999.9 010000 712650 99999 19991104 40.7 24 31.3 24 1015.3 22 1004.0 4 9.0 24 18.0 24 26.0 33.0 46.4* 36.9* 0.06G 999.9 010000 712650 99999 19991105 47.0 23 41.7 23 1018.8 23 1010.1 4 8.9 23 12.2 23 25.1 30.9 55.4* 40.5* 0.00G 999.9 000000 712650 99999 19991106 46.3 22 34.5 22 1021.9 22 9999.9 0 9.0 22 11.4 22 16.9 31.1 56.3 39.7 0.00G 999.9 000000 712650 99999 19991107 39.3 23 27.0 23 1027.0 23 1017.1 4 8.9 23 7.7 23 15.0 19.0 49.6 33.4 0.00D 999.9 000000 712650 99999 19991108 40.3 22 30.1 22 1024.2 22 1015.6 4 8.9 22 5.3 22 11.1 999.9 46.4* 35.6* 0.00D 999.9 000000 712650 99999 19991109 47.0 21 43.1 21 1013.6 21 9999.9 0 7.6 21 6.8 21 16.9 22.0 55.4* 41.0* 0.00C 999.9 000000 712650 99999 19991110 50.6 24 47.7 24 1009.4 23 999.7 4 6.0 24 7.7 24 15.9 19.0 56.3 39.9 0.02D 999.9 010000 712650 99999 19991111 35.2 23 23.5 23 1027.1 23 1015.7 4 8.9 23 12.0 23 18.1 25.1 57.6 30.0 0.14G 999.9 000000 712650 99999 19991112 39.0 22 31.0 22 1024.7 22 1017.2 4 8.7 22 6.2 22 13.0 999.9 44.6* 34.5* 0.00G 999.9 000000 712650 99999 19991113 44.4 22 41.5 22 1017.8 22 1009.0 4 7.5 22 7.3 22 11.1 999.9 48.2* 42.8* 0.02D 999.9 000000 712650 99999 19991114 47.2 24 38.3 24 1005.8 23 996.5 4 5.9 24 13.9 24 22.9 35.0 55.4* 41.0* 0.00D 999.9 000000 712650 99999 19991115 38.7 23 26.2 23 1013.1 21 9999.9 0 8.8 23 12.6 23 19.0 38.1 42.8* 35.6* 0.00G 999.9 000000 712650 99999 19991116 30.4 22 18.3 22 1011.8 22 1001.9 4 8.9 22 13.1 22 22.9 29.9 39.6 26.1 0.00D 999.9 000000 712650 99999 19991117 31.0 22 20.2 22 1019.4 22 1009.5 4 8.9 22 8.7 22 15.0 15.9 39.2* 25.2* 0.00D 999.9 000000 712650 99999 19991118 39.5 22 29.2 22 1020.8 20 9999.9 0 9.0 22 8.5 22 12.0 999.9 44.6* 35.6* 0.00H 999.9 010000 712650 99999 19991119 46.4 21 38.2 21 1018.7 21 1010.2 4 8.2 21 6.0 21 14.0 999.9 51.8* 41.0* 0.00D 999.9 000000 712650 99999 19991120 46.6 24 42.6 24 1015.2 22 1005.4 4 6.2 24 7.0 24 13.0 999.9 53.2 40.8 0.18D 999.9 010000 712650 99999 19991121 44.1 21 43.3 21 1020.5 19 9999.9 0 4.4 21 4.4 21 12.0 999.9 50.9 42.3 0.00B 999.9 000000 712650 99999 19991122 47.7 24 46.4 24 1019.8 21 1010.3 4 3.8 24 7.1 24 13.0 999.9 51.1 43.0 0.02D 999.9 010000 712650 99999 19991123 49.4 24 48.3 24 1023.0 23 1013.5 4 2.4 24 5.8 24 16.9 999.9 55.2 43.2 0.02D 999.9 000000 712650 99999 19991124 48.5 24 44.4 24 1015.8 24 1006.1 4 6.3 24 13.8 24 23.9 29.9 55.2 43.2 0.00D 999.9 010000 712650 99999 19991125 42.3 24 35.0 24 1024.9 24 1015.1 4 9.0 24 6.7 24 19.0 32.1 52.7 38.1 0.00G 999.9 000000 712650 99999 19991126 42.2 24 41.3 24 1013.8 19 1005.4 4 6.1 24 12.2 24 21.0 27.0 45.1 38.1 0.00G 999.9 010000 712650 99999 19991127 43.6 23 39.5 23 1010.4 22 1000.2 4 7.8 23 11.1 23 16.9 21.0 48.2* 41.0* 0.26D 999.9 010000 712650 99999 19991128 41.1 22 30.1 22 1020.2 22 1009.3 4 8.9 22 14.4 22 21.0 28.9 48.7 37.2 0.00D 999.9 000000 712650 99999 19991129 35.4 23 26.6 23 1026.5 21 1016.4 4 8.9 23 11.2 23 16.9 23.9 38.7* 32.0* 0.00D 999.9 001000 712650 99999 19991130 27.9 23 15.6 23 1037.0 23 1026.5 4 8.9 23 7.5 23 12.0 27.0 32.0* 23.0* 0.00G 999.9 000000 712650 99999 19991201 28.0 23 16.0 23 1036.0 23 1026.9 4 8.9 23 5.2 23 8.0 999.9 33.8* 23.0* 0.00D 999.9 001000 712650 99999 19991202 37.9 21 30.9 21 1025.1 21 1016.1 4 8.9 21 10.2 21 16.9 999.9 41.2 22.8 0.00D 999.9 000000 712650 99999 19991203 43.8 23 39.5 23 1017.6 19 1008.4 4 8.9 23 4.6 23 8.9 999.9 48.9 40.5 0.02D 999.9 010000 712650 99999 19991204 46.2 24 44.7 24 1016.4 21 9999.9 0 6.3 24 7.1 24 15.9 999.9 55.4* 42.8* 0.02B 999.9 010000 712650 99999 19991205 47.0 24 46.7 24 1013.0 21 1005.5 4 3.4 24 5.4 24 13.0 999.9 49.6 44.4 0.08C 999.9 010000 712650 99999 19991206 42.9 24 40.1 24 1010.4 17 9999.9 0 7.7 24 8.1 24 12.0 18.1 48.2* 37.4* 0.36C 999.9 010000 712650 99999 19991207 36.3 24 27.5 24 1022.9 24 1012.6 4 8.9 23 9.2 24 15.9 18.1 37.4* 33.8* 0.00D 999.9 000000 712650 99999 19991208 37.4 23 32.7 23 1026.1 23 1016.5 4 7.9 22 5.1 23 14.0 999.9 43.2 30.7 0.00D 999.9 000000 712650 99999 19991209 37.9 24 36.9 24 1025.2 20 1016.4 4 2.9 24 3.0 24 8.9 999.9 43.5 31.8 0.00D 999.9 000000 712650 99999 19991210 42.7 23 38.7 23 1010.8 21 1002.3 4 5.9 23 9.0 23 22.9 35.9 45.5 31.8 0.14D 999.9 010000 712650 99999 19991211 34.2 21 22.8 21 1020.9 21 1010.4 4 8.9 21 15.5 21 23.9 35.9 47.1 31.6 0.00D 999.9 000000 712650 99999 19991212 31.6 22 25.5 22 1022.2 20 1012.7 4 8.9 22 5.8 22 15.0 999.9 37.4* 27.3* 0.00G 999.9 000000 712650 99999 19991213 36.5 24 32.2 24 1018.2 23 9999.9 0 7.5 24 6.2 24 15.0 15.9 41.0* 33.8* 0.02C 999.9 010000 712650 99999 19991214 35.9 22 30.6 22 1018.9 22 1010.1 4 8.5 22 22.7 22 35.0 40.0 41.2 34.0 0.02D 999.9 010000 712650 99999 19991215 40.8 23 38.2 23 1010.8 18 1002.5 4 7.1 23 9.7 23 26.0 32.1 46.4 34.0 0.18D 999.9 010000 712650 99999 19991216 39.8 24 32.1 24 1006.2 22 9999.9 0 8.9 24 20.9 24 28.9 36.9 46.6 37.2 0.06D 999.9 011000 712650 99999 19991217 31.6 23 16.3 23 1016.6 23 1006.0 4 8.9 23 16.9 23 22.9 35.9 41.4 26.6 0.00G 999.9 000000 712650 99999 19991218 27.5 22 17.5 22 1026.6 22 9999.9 0 9.0 22 5.3 22 12.0 999.9 33.6 23.5 0.00C 999.9 000000 712650 99999 19991219 31.0 23 21.3 23 1028.5 23 1019.0 4 8.9 23 10.4 23 22.0 27.0 35.6* 25.0* 0.00D 999.9 000000 712650 99999 19991220 40.4 23 35.3 23 1016.4 22 1008.5 4 8.6 23 10.9 23 23.9 30.9 44.6* 36.7* 0.02D 999.9 010000 712650 99999 19991221 28.2 18 14.5 18 1019.3 17 9999.9 0 9.0 18 19.2 18 29.9 36.9 45.1 24.3 0.02C 999.9 000000 712650 99999 19991222 21.5 23 10.1 23 1024.4 23 9999.9 0 9.0 23 14.9 23 20.0 31.1 28.2 18.7 0.00G 999.9 000000 712650 99999 19991223 22.1 22 10.3 22 1022.4 21 9999.9 0 8.6 22 15.8 22 22.0 26.0 25.0 18.7 0.00G 999.9 001000 712650 99999 19991224 18.5 24 7.7 24 1023.5 24 1013.4 4 9.0 24 8.4 24 15.9 27.0 24.8* 14.0* 0.00G 999.9 000000 712650 99999 19991225 20.8 24 11.4 24 1025.5 24 1016.7 4 9.0 24 11.2 24 30.9 36.9 30.2* 15.8* 0.00G 999.9 001000 712650 99999 19991226 31.1 23 19.8 23 1002.6 20 9999.9 0 8.6 23 26.2 23 36.9 43.9 33.8* 26.6* 0.00G 999.9 001000 712650 99999 19991227 21.9 22 12.4 22 1008.7 22 998.3 4 8.3 22 9.6 22 16.9 999.9 26.6* 17.6* 0.00D 999.9 001000 712650 99999 19991228 18.9 24 11.0 24 1005.5 24 997.5 4 8.3 24 13.9 24 26.0 30.9 27.0* 10.4* 0.00G 999.9 001000 712650 99999 19991229 23.1 24 14.9 24 1004.7 23 994.4 4 8.1 24 13.1 24 29.9 35.9 32.0* 14.0* 0.00G 999.9 001000 712650 99999 19991230 34.5 24 24.7 24 1003.9 24 992.8 4 8.7 24 17.9 24 35.0 45.1 42.3 12.6 0.00G 999.9 001000 712650 99999 19991231 22.9 24 13.1 24 1018.2 24 1008.2 4 9.0 24 6.2 24 11.1 29.9 42.3 16.3 0.02G 999.9 000000 ''' @pytest.mark.slow @pytest.mark.online def test_get_station_year_text(): downloaded_data = get_station_year_text(712650, 99999, 1999) try: downloaded_data = downloaded_data.decode('utf-8') except: pass assert downloaded_data == sample_data_random_station_1999 with pytest.raises(Exception): get_station_year_text(712650, 99999, 19999999999) @pytest.mark.slow @pytest.mark.online def test_geocode(): latlon = geocode('Fredericton, NB') assert_allclose(latlon, (45.966425, -66.645813), rtol=1e-4)fluids-0.1.78/tests/test_core.py0000644000175000017500000002232413632560624015346 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose, assert_equal import pytest import numpy as np def test_core_misc(): alpha = thermal_diffusivity(0.02, 1., 1000.) assert_allclose(alpha, 2e-05) c = c_ideal_gas(1.4, 303., 28.96) assert_allclose(c, 348.9820361755092, rtol=1e-05) def test_core_dimensionless(): Re = Reynolds(2.5, 0.25, 1.1613, 1.9E-5) assert_allclose(Re, 38200.65789473684) Re = Reynolds(2.5, 0.25, nu=1.636e-05) assert_allclose(Re, 38202.93398533008) with pytest.raises(Exception): Reynolds(2.5, 0.25, 1.1613) PeH = Peclet_heat(1.5, 2, 1000., 4000., 0.6) assert_allclose(PeH, 20000000.0) PeH = Peclet_heat(1.5, 2, alpha=1E-7) assert_allclose(PeH, 30000000.0) with pytest.raises(Exception): Peclet_heat(1.5, 2, 1000., 4000.) PeM = Peclet_mass(1.5, 2, 1E-9) assert_allclose(PeM, 3000000000) FH1 = Fourier_heat(1.5, 2, 1000., 4000., 0.6) FH2 = Fourier_heat(1.5, 2, alpha=1E-7) assert_allclose([FH1, FH2], [5.625e-08, 3.75e-08]) with pytest.raises(Exception): Fourier_heat(1.5, 2, 1000., 4000.) FHM = Fourier_mass(1.5, 2, 1E-9) assert_allclose(FHM, 3.7500000000000005e-10) GZh1 = Graetz_heat(1.5, 0.25, 5, 800., 2200., 0.6) GZh2 = Graetz_heat(1.5, 0.25, 5, alpha=1E-7) assert_allclose([GZh1, GZh2], [55000.0, 187500.0]) with pytest.raises(Exception): Graetz_heat(1.5, 0.25, 5, 800., 2200.) Sc1 = Schmidt(D=2E-6, mu=4.61E-6, rho=800) Sc2 = Schmidt(D=1E-9, nu=6E-7) assert_allclose([Sc1, Sc2], [0.00288125, 600.]) with pytest.raises(Exception): Schmidt(D=2E-6, mu=4.61E-6) Le1 = Lewis(D=22.6E-6, alpha=19.1E-6) Le2 = Lewis(D=22.6E-6, rho=800., k=.2, Cp=2200) assert_allclose([Le1, Le2], [0.8451327433628318, 0.00502815768302494]) with pytest.raises(Exception): Lewis(D=22.6E-6, rho=800., k=.2) We = Weber(0.18, 0.001, 900., 0.01) assert_allclose(We, 2.916) Ma = Mach(33., 330) assert_allclose(Ma, 0.1) Kn = Knudsen(1e-10, .001) assert_allclose(Kn, 1e-07) Pr1 = Prandtl(Cp=1637., k=0.010, mu=4.61E-6) Pr2 = Prandtl(Cp=1637., k=0.010, nu=6.4E-7, rho=7.1) Pr3 = Prandtl(nu=6.3E-7, alpha=9E-7) assert_allclose([Pr1, Pr2, Pr3], [0.754657, 0.7438528, 0.7]) with pytest.raises(Exception): Prandtl(Cp=1637., k=0.010) Gr1 = Grashof(L=0.9144, beta=0.000933, T1=178.2, rho=1.1613, mu=1.9E-5) Gr2 = Grashof(L=0.9144, beta=0.000933, T1=378.2, T2=200, nu=1.636e-05) assert_allclose([Gr1, Gr2], [4656936556.178915, 4657491516.530312]) with pytest.raises(Exception): Grashof(L=0.9144, beta=0.000933, T1=178.2, rho=1.1613) Bo1 = Bond(1000., 1.2, .0589, 2) assert_allclose(Bo1, 665187.2339558573) Ra1 = Rayleigh(1.2, 4.6E9) assert_allclose(Ra1, 5520000000) Fr1 = Froude(1.83, 2., 1.63) Fr2 = Froude(1.83, L=2., squared=True) assert_allclose([Fr1, Fr2], [1.0135432593877318, 0.17074638128208924]) St = Strouhal(8, 2., 4.) assert_allclose(St, 4.0) Nu1 = Nusselt(1000., 1.2, 300.) Nu2 = Nusselt(10000., .01, 4000.) assert_allclose([Nu1, Nu2], [4.0, 0.025]) Sh = Sherwood(1000., 1.2, 300.) assert_allclose(Sh, 4.0) Bi1 = Biot(1000., 1.2, 300.) Bi2 = Biot(10000., .01, 4000.) assert_allclose([Bi1, Bi2], [4.0, 0.025]) St1 = Stanton(5000, 5, 800, 2000.) assert_allclose(St1, 0.000625) Eu1 = Euler(1E5, 1000., 4) assert_allclose(Eu1, 6.25) Ca1 = Cavitation(2E5, 1E4, 1000, 10) assert_allclose(Ca1, 3.8) Ec1 = Eckert(10, 2000., 25.) assert_allclose(Ec1, 0.002) Ja1 = Jakob(4000., 2E6, 10.) assert_allclose(Ja1, 0.02) Po1 = Power_number(P=180, L=0.01, N=2.5, rho=800.) assert_allclose(Po1, 144000000) Cd1 = Drag(1000, 0.0001, 5, 2000) assert_allclose(Cd1, 400) Ca1 = Capillary(1.2, 0.01, .1) assert_allclose(Ca1, 0.12) Ar1 = Archimedes(0.002, 0.2804, 2699.37, 4E-5) Ar2 = Archimedes(0.002, 2., 3000, 1E-3) assert_allclose([Ar1, Ar2], [37109.575890227665, 470.4053872]) Oh1 = Ohnesorge(1E-4, 1000., 1E-3, 1E-1) assert_allclose(Oh1, 0.01) Su = Suratman(1E-4, 1000., 1E-3, 1E-1) assert_allclose(Su, 10000.0) BeL1 = Bejan_L(1E4, 1, 1E-3, 1E-6) assert_allclose(BeL1, 10000000000000) Bep1 = Bejan_p(1E4, 1, 1E-3, 1E-6) assert_allclose(Bep1, 10000000000000) Bo = Boiling(300, 3000, 800000) assert_allclose(Bo, 1.25e-05) e_D1 = relative_roughness(0.0254) e_D2 = relative_roughness(0.5, 1E-4) assert_allclose([e_D1, e_D2], [5.9842519685039374e-05, 0.0002]) Co = Confinement(0.001, 1077, 76.5, 4.27E-3) assert_allclose(Co, 0.6596978265315191) De = Dean(10000, 0.1, 0.4) assert_allclose(De, 5000.0) Stk = Stokes_number(V=0.9, Dp=1E-5, D=1E-3, rhop=1000, mu=1E-5) assert_allclose(Stk, 0.5) Hg = Hagen(Re=2610, fd=1.935235) assert_allclose(Hg, 6591507.17175) # Where fd was obtained from: def Hagen2(rho, D, mu): return rho*D**3/mu**2 correct = Hagen2(rho=992., mu=653E-6, D=6.568E-3)*10000 guess = Hagen(Re=2610, fd=1.935235) assert_allclose(correct, guess) Fr = Froude_densimetric(1.83, L=2., rho2=1.2, rho1=800, g=9.81) assert_allclose(Fr, 0.4134543386272418) Fr = Froude_densimetric(1.83, L=2., rho2=1.2, rho1=800, g=9.81, heavy=False) assert_allclose(Fr, 0.016013017679205096) Mo = Morton(1077.0, 76.5, 4.27E-3, 0.023) assert_allclose(Mo, 2.311183104430743e-07) def test_core_misc2(): mu1 = nu_mu_converter(998., nu=1.0E-6) nu1 = nu_mu_converter(998., mu=0.000998) assert_allclose([mu1, nu1], [0.000998, 1E-6]) with pytest.raises(Exception): nu_mu_converter(990) with pytest.raises(Exception): nu_mu_converter(990, 0.000998, 1E-6) g1 = gravity(55, 1E4) assert_allclose(g1, 9.784151976863571) K = K_from_f(fd=0.018, L=100., D=.3) assert_allclose(K, 6.0) K = K_from_L_equiv(240.) assert_allclose(K, 3.6) L_D = L_equiv_from_K(3.6) assert_allclose(L_D, 240.) L = L_from_K(K=6, fd=0.018, D=.3) assert_allclose(L, 100) dP = dP_from_K(K=10, rho=1000, V=3) assert_allclose(dP, 45000) head = head_from_K(K=10, V=1.5) assert_allclose(head, 1.1471807396001694) head = head_from_P(P=98066.5, rho=1000) assert_allclose(head, 10.0) P = P_from_head(head=5., rho=800.) assert_allclose(P, 39226.6) from fluids.core import C2K, K2C, F2C, C2F, F2K, K2F, C2R, K2R, F2R, R2C, R2K, R2F # The following are tests which were deprecated from scipy # but are still desired to be here # Taken from scipy/constants/constants.py as in commit # https://github.com/scipy/scipy/commit/4b7d325cd50e8828b06d628e69426a18283dc5b5 # Also from https://github.com/scipy/scipy/pull/5292 # by Gillu13 (Gilles Aouizerate) # Copyright individual contributors to SciPy def test_fahrenheit_to_celcius(): assert_equal(F2C(32), 0) assert_equal(F2C([32, 32]), [0, 0]) def test_celcius_to_kelvin(): assert_equal(C2K([0, 0]), [273.15, 273.15]) def test_kelvin_to_celcius(): assert_equal(K2C([0, 0]), [-273.15, -273.15]) def test_fahrenheit_to_kelvin(): assert_equal(F2K([32, 32]), [273.15, 273.15]) def test_kelvin_to_fahrenheit(): assert_equal(K2F([273.15, 273.15]), [32, 32]) def test_celcius_to_fahrenheit(): assert_equal(C2F([0, 0]), [32, 32]) def test_celcius_to_rankine(): assert_allclose(C2R([0, 0]), [491.67, 491.67], rtol=0., atol=1e-13) def test_kelvin_to_rankine(): assert_allclose(K2R([273.15, 273.15]), [491.67, 491.67], rtol=0., atol=1e-13) def test_fahrenheit_to_rankine(): assert_allclose(F2R([32, 32]), [491.67, 491.67], rtol=0., atol=1e-13) def test_rankine_to_fahrenheit(): assert_allclose(R2F([491.67, 491.67]), [32., 32.], rtol=0., atol=1e-13) def test_rankine_to_celcius(): assert_allclose(R2C([491.67, 491.67]), [0., 0.], rtol=0., atol=1e-13) def test_rankine_to_kelvin(): assert_allclose(R2K([491.67, 0.]), [273.15, 0.], rtol=0., atol=1e-13) fluids-0.1.78/tests/test_flow_meter.py0000644000175000017500000007150313632560624016564 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * import numpy as np from scipy.constants import inch from scipy.optimize import fsolve from numpy.testing import assert_allclose import pytest def test_flow_meter_discharge(): m = flow_meter_discharge(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, rho=1.1646, C=0.5988, expansibility=0.9975) assert_allclose(m, 0.01120390943807026) def test_orifice_expansibility(): epsilon = orifice_expansibility(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) assert_allclose(epsilon, 0.9974739057343425) # Tested against a value in the standard def test_orifice_expansibility_1989(): # No actual sample points epsilon = orifice_expansibility_1989(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) assert_allclose(epsilon, 0.9970510687411718) def test_C_Reader_Harris_Gallagher(): C = C_Reader_Harris_Gallagher(D=0.07391, Do=0.0222, rho=1.1645909036, mu=0.0000185861753095, m=0.124431876, taps='corner' ) assert_allclose(C, 0.6000085121444034) C = C_Reader_Harris_Gallagher(D=0.07391, Do=0.0222, rho=1.1645909036, mu=0.0000185861753095, m=0.124431876, taps='D' ) assert_allclose(C, 0.5988219225153976) C = C_Reader_Harris_Gallagher(D=0.07391, Do=0.0222, rho=1.1645909036, mu=0.0000185861753095, m=0.124431876, taps='flange' ) assert_allclose(C, 0.5990042535666878) # #def test_Reader_Harris_Gallagher_discharge(): # m = Reader_Harris_Gallagher_discharge(D=0.07366, Do=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, taps='D') # assert_allclose(m, 7.702338035732167) with pytest.raises(Exception): C_Reader_Harris_Gallagher(D=0.07391, Do=0.0222, rho=1.165, mu=1.85E-5, m=0.12, taps='NOTALOCATION') # Test continuity at the low-diameter function kwargs = dict(Do=0.0222, rho=1.1645909036, mu=0.0000185861753095, m=0.124431876, taps='corner') C1 = C_Reader_Harris_Gallagher(D=0.07112, **kwargs) C2 = C_Reader_Harris_Gallagher(D=0.07112-1e-13, **kwargs) assert_allclose(C1, C2) def test_differential_pressure_meter_discharge(): # Orifice m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ISO_5167_ORIFICE, taps='D') assert_allclose(m, 7.702338035732167) # Nozzle meters m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(m, 11.86828167015467) m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ISA_1932_NOZZLE) assert_allclose(m, 11.370262314304702) m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=VENTURI_NOZZLE) assert_allclose(m, 11.471786198133566) # Venturi tubes m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=AS_CAST_VENTURI_TUBE) assert_allclose(m, 11.867774156238344) m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=MACHINED_CONVERGENT_VENTURI_TUBE) assert_allclose(m, 12.000442363269464) m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ROUGH_WELDED_CONVERGENT_VENTURI_TUBE) assert_allclose(m, 11.879834902332082) # Cone meter m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=CONE_METER) assert_allclose(m, 9.997923896460703) # wedge meter m = differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=WEDGE_METER) assert_allclose(m, 8.941980099523539) with pytest.raises(ValueError): differential_pressure_meter_solver(D=.07366, m=7.702338, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type='ISO 5167 orifice', taps='D') def test_differential_pressure_meter_diameter(): # ISO 5167 orifice D2 = differential_pressure_meter_solver(D=0.07366, m=7.702338035732167, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ISO_5167_ORIFICE, taps='D') assert_allclose(D2, 0.05) # Nozzle meters D2 = differential_pressure_meter_solver(D=0.07366, m= 11.86828167015467, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(D2, 0.05) D2 = differential_pressure_meter_solver(D=0.07366, m=11.370262314304702, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ISA_1932_NOZZLE) assert_allclose(D2, 0.05) D2 = differential_pressure_meter_solver(D=0.07366, m=11.471786198133566, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=VENTURI_NOZZLE) assert_allclose(D2, 0.05) # Venturi tubes D2 = differential_pressure_meter_solver(D=0.07366, m=11.867774156238344, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=AS_CAST_VENTURI_TUBE) assert_allclose(D2, 0.05) D2 = differential_pressure_meter_solver(D=0.07366, m=12.000442363269464, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=MACHINED_CONVERGENT_VENTURI_TUBE) assert_allclose(D2, 0.05) D2 = differential_pressure_meter_solver(D=0.07366, m=11.879834902332082, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=ROUGH_WELDED_CONVERGENT_VENTURI_TUBE) assert_allclose(D2, 0.05) # Cone meter D2 = differential_pressure_meter_solver(D=0.07366, m=9.997923896460703, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=CONE_METER) assert_allclose(D2, 0.05) # wedge meter D2 = differential_pressure_meter_solver(D=0.07366, m=8.941980099523539, P1=200000.0, P2=183000.0, rho=999.1, mu=0.0011, k=1.33, meter_type=WEDGE_METER) assert_allclose(D2, 0.05) def test_differential_pressure_meter_P2(): P2 = differential_pressure_meter_solver(D=0.07366, m=7.702338035732167, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ISO_5167_ORIFICE, taps='D') assert_allclose(P2, 183000.0) # Nozzle meters P2 = differential_pressure_meter_solver(D=0.07366, m= 11.86828167015467, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(P2, 183000.0) P2 = differential_pressure_meter_solver(D=0.07366, m=11.370262314304702, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ISA_1932_NOZZLE) assert_allclose(P2, 183000.0) P2 = differential_pressure_meter_solver(D=0.07366, m=11.471786198133566, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=VENTURI_NOZZLE) assert_allclose(P2, 183000.0) # Venturi tubes P2 = differential_pressure_meter_solver(D=0.07366, m=11.867774156238344, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=AS_CAST_VENTURI_TUBE) assert_allclose(P2, 183000.0) P2 = differential_pressure_meter_solver(D=0.07366, m=12.000442363269464, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=MACHINED_CONVERGENT_VENTURI_TUBE) assert_allclose(P2, 183000.0) P2 = differential_pressure_meter_solver(D=0.07366, m=11.879834902332082, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ROUGH_WELDED_CONVERGENT_VENTURI_TUBE) assert_allclose(P2, 183000.0) # Cone meter P2 = differential_pressure_meter_solver(D=0.07366, m=9.997923896460703, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=CONE_METER) assert_allclose(P2, 183000.0) # Wedge meter P2 = differential_pressure_meter_solver(D=0.07366, m=8.941980099523539, P1=200000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=WEDGE_METER) assert_allclose(P2, 183000.0) def test_differential_pressure_meter_P1(): P1 = differential_pressure_meter_solver(D=0.07366, m=7.702338035732167, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ISO_5167_ORIFICE, taps='D') assert_allclose(P1, 200000) # Nozzle meters P1 = differential_pressure_meter_solver(D=0.07366, m=11.86828167015467, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(P1, 200000) P1 = differential_pressure_meter_solver(D=0.07366, m=11.370262314304702, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ISA_1932_NOZZLE) assert_allclose(P1, 200000) P1 = differential_pressure_meter_solver(D=0.07366, m=11.471786198133566, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=VENTURI_NOZZLE) assert_allclose(P1, 200000) # Venturi tubes P1 = differential_pressure_meter_solver(D=0.07366, m=11.867774156238344, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=AS_CAST_VENTURI_TUBE) assert_allclose(P1, 200000) P1 = differential_pressure_meter_solver(D=0.07366, m=12.000442363269464, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=MACHINED_CONVERGENT_VENTURI_TUBE) assert_allclose(P1, 200000) P1 = differential_pressure_meter_solver(D=0.07366, m=11.879834902332082, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=ROUGH_WELDED_CONVERGENT_VENTURI_TUBE) assert_allclose(P1, 200000) # Cone meter P1 = differential_pressure_meter_solver(D=0.07366, m=9.997923896460703, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=CONE_METER) assert_allclose(P1, 200000) # Wedge meter P1 = differential_pressure_meter_solver(D=0.07366, m=8.941980099523539, P2=183000.0, D2=0.05, rho=999.1, mu=0.0011, k=1.33, meter_type=WEDGE_METER) assert_allclose(P1, 200000) def test_K_to_discharge_coefficient(): C = K_to_discharge_coefficient(D=0.07366, Do=0.05, K=5.2314291729754) assert_allclose(C, 0.6151200000000001) def test_discharge_coefficient_to_K(): K = discharge_coefficient_to_K(D=0.07366, Do=0.05, C=0.61512) assert_allclose(K, 5.2314291729754) def test_dP_orifice(): dP = dP_orifice(D=0.07366, Do=0.05, P1=200000.0, P2=183000.0, C=0.61512) assert_allclose(dP, 9069.474705745388) def test_velocity_of_approach_factor(): factor = velocity_of_approach_factor(D=0.0739, Do=0.0222) assert_allclose(factor, 1.0040970074165514) def test_flow_coefficient(): factor = flow_coefficient(D=0.0739, Do=0.0222, C=0.6) assert_allclose(factor, 0.6024582044499308) def test_nozzle_expansibility(): epsilon = nozzle_expansibility(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) assert_allclose(epsilon, 0.9945702344566746) def test_C_long_radius_nozzle(): C = C_long_radius_nozzle(D=0.07391, Do=0.0422, rho=1.2, mu=1.8E-5, m=0.1) assert_allclose(C, 0.9805503704679863) def test_C_ISA_1932_nozzle(): C = C_ISA_1932_nozzle(D=0.07391, Do=0.0422, rho=1.2, mu=1.8E-5, m=0.1) assert_allclose(C, 0.9635849973250495) def test_C_venturi_nozzle(): C = C_venturi_nozzle(D=0.07391, Do=0.0422) assert_allclose(C, 0.9698996454169576) def test_diameter_ratio_cone_meter(): beta = diameter_ratio_cone_meter(D=0.2575, Dc=0.184) assert_allclose(beta, 0.6995709873957624) # Example in 1 matches exactly; beta = diameter_ratio_cone_meter(D=10.137*inch, Dc=7.244*inch) assert_allclose(beta, 0.6995232442563669) def test_diameter_ratio_wedge_meter(): beta = diameter_ratio_wedge_meter(D=6.065*inch, H=1.82*inch) assert_allclose(beta, 0.5024062047655528) beta = diameter_ratio_wedge_meter(D=7.981*inch, H=3.192*inch) assert_allclose(beta, 0.6111198863284705) beta = diameter_ratio_wedge_meter(D=7.981*inch, H=2.394*inch) assert_allclose(beta, 0.5022667856496335) def test_cone_meter_expansibility_Stewart(): eps = cone_meter_expansibility_Stewart(D=1, Dc=0.8930285549745876, P1=1E6, P2=1E6*.85, k=1.2) assert_allclose(eps, 0.91530745625) def test_wedge_meter_expansibility(): data = [[1.0000, 0.9871, 0.9741, 0.9610, 0.9478, 0.9345, 0.9007, 0.8662, 0.8308], [1.0000, 0.9863, 0.9726, 0.9588, 0.9449, 0.9310, 0.8957, 0.8599, 0.8234], [1.0000, 0.9848, 0.9696, 0.9544, 0.9393, 0.9241, 0.8860, 0.8479, 0.8094], [1.0000, 0.9820, 0.9643, 0.9467, 0.9292, 0.9119, 0.8692, 0.8272, 0.7857], [1.0000, 0.9771, 0.9547, 0.9329, 0.9117, 0.8909, 0.8408, 0.7930, 0.7472]] h_ds = [0.2, 0.3, 0.4, 0.5, 0.6] pressure_ratios = [1.0, 0.98, 0.96, 0.94, 0.92, 0.9, 0.85, 0.8, 0.75] calculated = [] for i, h_d in enumerate(h_ds): row = [] beta = diameter_ratio_wedge_meter(D=1, H=h_d) for j, p_ratio in enumerate(pressure_ratios): ans = nozzle_expansibility(D=1, Do=h_d, P1=1E5, P2=1E5*p_ratio, k=1.2, beta=beta) row.append(ans) calculated.append(row) assert_allclose(data, calculated, rtol=1e-4) def test_dP_wedge_meter(): dP = dP_wedge_meter(1, .7, 1E6, 9.5E5) assert_allclose(dP, 20344.849697483587) def test_dP_cone_meter(): dP = dP_cone_meter(1, .7, 1E6, 9.5E5) assert_allclose(dP, 25470.093437973323) def test_C_wedge_meter_Miller(): # Large bore D = 0.15239999999999998 C = C_wedge_meter_Miller(D=D, H=0.3*D) assert_allclose(C, 0.7267069372687651) # Tiny bore C = C_wedge_meter_Miller(D=.6*inch, H=0.3*.6*inch) assert_allclose(C, 0.8683022107124251) # Medium bore C = C_wedge_meter_Miller(D=1.3*inch, H=0.3*1.3*inch) assert_allclose(C, 1.15113726440674) def test_C_wedge_meter_ISO_5167_6_2017(): C = C_wedge_meter_ISO_5167_6_2017(D=0.1524, H=0.3*0.1524) assert_allclose(C, 0.724792059539853) def test_dP_venturi_tube(): dP = dP_venturi_tube(D=0.07366, Do=0.05, P1=200000.0, P2=183000.0) assert_allclose(dP, 1788.5717754177406) def test_C_Reader_Harris_Gallagher_wet_venturi_tube(): # Example 1 # Works don't change anything C = C_Reader_Harris_Gallagher_wet_venturi_tube(mg=5.31926, ml=5.31926/2, rhog=50.0, rhol=800., D=.1, Do=.06, H=1) assert_allclose(C, 0.9754210845876333) # From ISO 5167-4:2003, 5.6, # epsilon = 0.994236 # nozzle_expansibility, orifice_expansibility epsilon = nozzle_expansibility(D=.1, Do=.06, P1=60E5, P2=59.5E5, k=1.3) assert_allclose(epsilon, 0.994236, rtol=0, atol=.0000001) # Example 2 # Had to solve backwards to get ml, but C checks out perfectly C = C_Reader_Harris_Gallagher_wet_venturi_tube(ml=0.434947009566078, mg=6.3817, rhog=50.0, rhol=1000., D=.1, Do=.06, H=1.35) # Don't know what the ml is # 0,976 992 is C assert_allclose(C, 0.9769937323602329) def test_dP_Reader_Harris_Gallagher_wet_venturi_tube(): dP = dP_Reader_Harris_Gallagher_wet_venturi_tube(ml=5.31926/2, mg=5.31926, rhog=50.0, rhol=800., D=.1, Do=.06, H=1, P1=6E6, P2=6E6-5E4) assert_allclose(dP, 16957.43843129572) def test_differential_pressure_meter_dP(): for m in [AS_CAST_VENTURI_TUBE, MACHINED_CONVERGENT_VENTURI_TUBE, ROUGH_WELDED_CONVERGENT_VENTURI_TUBE]: dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, meter_type=m) assert_allclose(dP, 1788.5717754177406) dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, C=0.61512, meter_type=ISO_5167_ORIFICE) assert_allclose(dP, 9069.474705745388) dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, C=0.61512, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(dP, 9069.474705745388) dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, C=0.61512, meter_type=ISA_1932_NOZZLE) assert_allclose(dP, 9069.474705745388) dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, meter_type=CONE_METER) assert_allclose(dP, 8380.848307054845) dP = differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, meter_type=WEDGE_METER) assert_allclose(dP, 7112.927753356824) with pytest.raises(Exception): differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, P2=183000.0, meter_type=VENTURI_NOZZLE) def test_differential_pressure_meter_beta(): beta = differential_pressure_meter_beta(D=0.2575, D2=0.184, meter_type=LONG_RADIUS_NOZZLE) assert_allclose(beta, 0.7145631067961165) beta = differential_pressure_meter_beta(D=0.2575, D2=0.184, meter_type=WEDGE_METER) assert_allclose(beta, 0.8743896375172885) beta = differential_pressure_meter_beta(D=0.2575, D2=0.184, meter_type=CONE_METER) assert_allclose(beta, 0.6995709873957624) def test_cone_meter_expansibility_Stewart_full(): err = lambda Dc, beta : diameter_ratio_cone_meter(D=1, Dc=Dc) - beta solve_Dc = lambda beta : float(fsolve(err, x0=.7, args=(beta))) # Accidentally missed the beta ratio 0.75, oops vals = [[1.0000, 0.9887, 0.9774, 0.9661, 0.9548, 0.9435, 0.9153, 0.8871, 0.8588], [1.0000, 0.9885, 0.9769, 0.9654, 0.9538, 0.9423, 0.9134, 0.8846, 0.8557], [1.0000, 0.9881, 0.9762, 0.9644, 0.9525, 0.9406, 0.9109, 0.8812, 0.8515], [1.0000, 0.9877, 0.9754, 0.9630, 0.9507, 0.9384, 0.9076, 0.8768, 0.8460], [1.0000, 0.9871, 0.9742, 0.9613, 0.9485, 0.9356, 0.9033, 0.8711, 0.8389], [1.0000, 0.9864, 0.9728, 0.9592, 0.9456, 0.9320, 0.8980, 0.8640, 0.8300]] pressure_ratios = [1, 0.98, 0.96, 0.94, 0.92, 0.9, 0.85, 0.8, 0.75] betas = [.45, .5, .55, .6, .65, .7, .75] k = 1.2 for i, beta in enumerate(betas[:-1]): Dc = solve_Dc(beta) for j, pr in enumerate(pressure_ratios): eps = cone_meter_expansibility_Stewart(D=1, Dc=Dc, P1=1E5, P2=pr*1E5, k=1.2) eps = round(eps, 4) assert eps == vals[i][j] def test_C_ISA_1932_nozzle_full(): Cs = [[0.9616, 0.9692, 0.9750, 0.9773, 0.9789, 0.9813, 0.9820, 0.9821, 0.9822], [0.9604, 0.9682, 0.9741, 0.9764, 0.9781, 0.9805, 0.9812, 0.9813, 0.9814], [0.9592, 0.9672, 0.9731, 0.9755, 0.9773, 0.9797, 0.9804, 0.9805, 0.9806], [0.9579, 0.9661, 0.9722, 0.9746, 0.9763, 0.9788, 0.9795, 0.9797, 0.9797], [0.9567, 0.9650, 0.9711, 0.9736, 0.9754, 0.9779, 0.9786, 0.9787, 0.9788], [0.9554, 0.9638, 0.9700, 0.9726, 0.9743, 0.9769, 0.9776, 0.9777, 0.9778], [0.9542, 0.9626, 0.9689, 0.9715, 0.9733, 0.9758, 0.9766, 0.9767, 0.9768], [0.9529, 0.9614, 0.9678, 0.9703, 0.9721, 0.9747, 0.9754, 0.9756, 0.9757], [0.9516, 0.9602, 0.9665, 0.9691, 0.9709, 0.9735, 0.9743, 0.9744, 0.9745], [0.9503, 0.9589, 0.9653, 0.9678, 0.9696, 0.9722, 0.9730, 0.9731, 0.9732], [0.9490, 0.9576, 0.9639, 0.9665, 0.9683, 0.9709, 0.9717, 0.9718, 0.9719], [0.9477, 0.9562, 0.9626, 0.9651, 0.9669, 0.9695, 0.9702, 0.9704, 0.9705], [0.9464, 0.9548, 0.9611, 0.9637, 0.9655, 0.9680, 0.9688, 0.9689, 0.9690], [0.9451, 0.9534, 0.9596, 0.9621, 0.9639, 0.9664, 0.9672, 0.9673, 0.9674], [0.9438, 0.9520, 0.9581, 0.9606, 0.9623, 0.9648, 0.9655, 0.9656, 0.9657], [0.9424, 0.9505, 0.9565, 0.9589, 0.9606, 0.9630, 0.9638, 0.9639, 0.9640], [0.9411, 0.9490, 0.9548, 0.9572, 0.9588, 0.9612, 0.9619, 0.9620, 0.9621], [0.9398, 0.9474, 0.9531, 0.9554, 0.9570, 0.9593, 0.9600, 0.9601, 0.9602], [0.9385, 0.9458, 0.9513, 0.9535, 0.9550, 0.9573, 0.9579, 0.9580, 0.9581], [0.9371, 0.9442, 0.9494, 0.9515, 0.9530, 0.9551, 0.9558, 0.9559, 0.9560], [0.9358, 0.9425, 0.9475, 0.9495, 0.9509, 0.9529, 0.9535, 0.9536, 0.9537], [0.9345, 0.9408, 0.9455, 0.9473, 0.9487, 0.9506, 0.9511, 0.9512, 0.9513], [0.9332, 0.9390, 0.9434, 0.9451, 0.9464, 0.9481, 0.9487, 0.9487, 0.9488], [0.9319, 0.9372, 0.9412, 0.9428, 0.9440, 0.9456, 0.9460, 0.9461, 0.9462], [0.9306, 0.9354, 0.9390, 0.9404, 0.9414, 0.9429, 0.9433, 0.9434, 0.9435], [0.9293, 0.9335, 0.9367, 0.9379, 0.9388, 0.9401, 0.9405, 0.9405, 0.9406], [0.9280, 0.9316, 0.9343, 0.9353, 0.9361, 0.9372, 0.9375, 0.9375, 0.9376], [0.9268, 0.9296, 0.9318, 0.9326, 0.9332, 0.9341, 0.9344, 0.9344, 0.9344], [0.9255, 0.9276, 0.9292, 0.9298, 0.9303, 0.9309, 0.9311, 0.9311, 0.9312], [0.9243, 0.9256, 0.9265, 0.9269, 0.9272, 0.9276, 0.9277, 0.9277, 0.9278], [0.9231, 0.9235, 0.9238, 0.9239, 0.9240, 0.9241, 0.9242, 0.9242, 0.9242], [0.9219, 0.9213, 0.9209, 0.9208, 0.9207, 0.9205, 0.9205, 0.9205, 0.9205], [0.9207, 0.9192, 0.9180, 0.9176, 0.9172, 0.9168, 0.9166, 0.9166, 0.9166], [0.9195, 0.9169, 0.9150, 0.9142, 0.9136, 0.9128, 0.9126, 0.9126, 0.9125], [0.9184, 0.9147, 0.9118, 0.9107, 0.9099, 0.9088, 0.9084, 0.9084, 0.9083], [0.9173, 0.9123, 0.9086, 0.9071, 0.9060, 0.9045, 0.9041, 0.9040, 0.9040], [0.9162, 0.9100, 0.9053, 0.9034, 0.9020, 0.9001, 0.8996, 0.8995, 0.8994]] def C_ISA_1932_nozzle(D, Do, Re_D): beta = Do/D C = (0.9900 - 0.2262*beta**4.1 - (0.00175*beta**2 - 0.0033*beta**4.15)*(1E6/Re_D)**1.15) return C Rd_values = [2E4, 3E4, 5E4, 7E4, 1E5, 3E5, 1E6, 2E6, 1E7] betas = [i/100. for i in range(44, 81)] for i in range(len(betas)): Cs_expect = Cs[i] beta = betas[i] Cs_calc = [round(C_ISA_1932_nozzle(D=1, Do=beta, Re_D=i), 4) for i in Rd_values] assert_allclose(Cs_expect, Cs_calc, atol=1E-4) # There were three typos in there in the values for beta of 0.77 or 0.78. # values: 0.9215, 0.9412, 0.9803 def test_C_long_radius_nozzle_full(): Cs = [[0.9673, 0.9759, 0.9834, 0.9873, 0.9900, 0.9924, 0.9936, 0.9952, 0.9956], [0.9659, 0.9748, 0.9828, 0.9868, 0.9897, 0.9922, 0.9934, 0.9951, 0.9955], [0.9645, 0.9739, 0.9822, 0.9864, 0.9893, 0.9920, 0.9933, 0.9951, 0.9955], [0.9632, 0.9730, 0.9816, 0.9860, 0.9891, 0.9918, 0.9932, 0.9950, 0.9954], [0.9619, 0.9721, 0.9810, 0.9856, 0.9888, 0.9916, 0.9930, 0.9950, 0.9954], [0.9607, 0.9712, 0.9805, 0.9852, 0.9885, 0.9914, 0.9929, 0.9949, 0.9954], [0.9596, 0.9704, 0.9800, 0.9848, 0.9882, 0.9913, 0.9928, 0.9948, 0.9953], [0.9584, 0.9696, 0.9795, 0.9845, 0.9880, 0.9911, 0.9927, 0.9948, 0.9953], [0.9573, 0.9688, 0.9790, 0.9841, 0.9877, 0.9910, 0.9926, 0.9947, 0.9953], [0.9562, 0.9680, 0.9785, 0.9838, 0.9875, 0.9908, 0.9925, 0.9947, 0.9952], [0.9552, 0.9673, 0.9780, 0.9834, 0.9873, 0.9907, 0.9924, 0.9947, 0.9952], [0.9542, 0.9666, 0.9776, 0.9831, 0.9870, 0.9905, 0.9923, 0.9946, 0.9952], [0.9532, 0.9659, 0.9771, 0.9828, 0.9868, 0.9904, 0.9922, 0.9946, 0.9951], [0.9523, 0.9652, 0.9767, 0.9825, 0.9866, 0.9902, 0.9921, 0.9945, 0.9951], [0.9513, 0.9645, 0.9763, 0.9822, 0.9864, 0.9901, 0.9920, 0.9945, 0.9951], [0.9503, 0.9639, 0.9759, 0.9819, 0.9862, 0.9900, 0.9919, 0.9944, 0.9950], [0.9499, 0.9635, 0.9756, 0.9818, 0.9861, 0.9899, 0.9918, 0.9944, 0.9950], [0.9494, 0.9632, 0.9754, 0.9816, 0.9860, 0.9898, 0.9918, 0.9944, 0.9950], [0.9490, 0.9629, 0.9752, 0.9815, 0.9859, 0.9898, 0.9917, 0.9944, 0.9950], [0.9485, 0.9626, 0.9750, 0.9813, 0.9858, 0.9897, 0.9917, 0.9944, 0.9950], [0.9481, 0.9623, 0.9748, 0.9812, 0.9857, 0.9897, 0.9917, 0.9943, 0.9950], [0.9476, 0.9619, 0.9746, 0.9810, 0.9856, 0.9896, 0.9916, 0.9943, 0.9950], [0.9472, 0.9616, 0.9745, 0.9809, 0.9855, 0.9895, 0.9916, 0.9943, 0.9949], [0.9468, 0.9613, 0.9743, 0.9808, 0.9854, 0.9895, 0.9915, 0.9943, 0.9949], [0.9463, 0.9610, 0.9741, 0.9806, 0.9853, 0.9894, 0.9915, 0.9943, 0.9949], [0.9459, 0.9607, 0.9739, 0.9805, 0.9852, 0.9893, 0.9914, 0.9942, 0.9949], [0.9455, 0.9604, 0.9737, 0.9804, 0.9851, 0.9893, 0.9914, 0.9942, 0.9949], [0.9451, 0.9601, 0.9735, 0.9802, 0.9850, 0.9892, 0.9914, 0.9942, 0.9949], [0.9447, 0.9599, 0.9733, 0.9801, 0.9849, 0.9892, 0.9913, 0.9942, 0.9949], [0.9443, 0.9596, 0.9731, 0.9800, 0.9848, 0.9891, 0.9913, 0.9942, 0.9948], [0.9439, 0.9593, 0.9730, 0.9799, 0.9847, 0.9891, 0.9912, 0.9941, 0.9948], [0.9435, 0.9590, 0.9728, 0.9797, 0.9846, 0.9890, 0.9912, 0.9941, 0.9948], [0.9430, 0.9587, 0.9726, 0.9796, 0.9845, 0.9889, 0.9912, 0.9941, 0.9948], [0.9427, 0.9584, 0.9724, 0.9795, 0.9845, 0.9889, 0.9911, 0.9941, 0.9948], [0.9423, 0.9581, 0.9722, 0.9793, 0.9844, 0.9888, 0.9911, 0.9941, 0.9948], [0.9419, 0.9579, 0.9721, 0.9792, 0.9843, 0.9888, 0.9910, 0.9941, 0.9948], [0.9415, 0.9576, 0.9719, 0.9791, 0.9842, 0.9887, 0.9910, 0.9940, 0.9948], [0.9411, 0.9573, 0.9717, 0.9790, 0.9841, 0.9887, 0.9910, 0.9940, 0.9947], [0.9407, 0.9570, 0.9715, 0.9789, 0.9840, 0.9886, 0.9909, 0.9940, 0.9947], [0.9403, 0.9568, 0.9714, 0.9787, 0.9839, 0.9886, 0.9909, 0.9940, 0.9947], [0.9399, 0.9565, 0.9712, 0.9786, 0.9839, 0.9885, 0.9908, 0.9940, 0.9947], [0.9396, 0.9562, 0.9710, 0.9785, 0.9838, 0.9884, 0.9908, 0.9940, 0.9947], [0.9392, 0.9560, 0.9709, 0.9784, 0.9837, 0.9884, 0.9908, 0.9939, 0.9947], [0.9388, 0.9557, 0.9707, 0.9783, 0.9836, 0.9883, 0.9907, 0.9939, 0.9947], [0.9385, 0.9555, 0.9705, 0.9781, 0.9835, 0.9883, 0.9907, 0.9939, 0.9947], [0.9381, 0.9552, 0.9704, 0.9780, 0.9834, 0.9882, 0.9907, 0.9939, 0.9947]] Rd_values = [1E4, 2E4, 5E4, 1E5, 2E5, 5E5, 1E6, 5E6, 1E7] betas = [i/100. for i in list(range(20, 51, 2)) + list(range(51, 81))] def C_long_radius_nozzle(D, Do, Re_D): beta = Do/D return 0.9965 - 0.00653*beta**0.5*(1E6/Re_D)**0.5 for i in range(len(betas)): Cs_expect = Cs[i] beta = betas[i] Cs_calc = [round(C_long_radius_nozzle(D=1, Do=beta, Re_D=i), 4) for i in Rd_values] assert_allclose(Cs_expect, Cs_calc, atol=1E-4) # Errata: # 0.9834 to 0.9805 # 0.9828 to 9800 # 0.9822 to 0.9795 # 0.9816 to 0.979 # 0.981 to 0.9785 # 0.9805 to 0.9780 # 0.98 to 0.9776 # 0.9795 to 0.9771 # 0.979 to 0.9767 # 0.9785 to 0.9763 # 9.9607 to 0.9607 # 0.9875 to 0.9785 def test_C_venturi_nozzle_full(): # Many values do not match well, but the equation has been checked with both standards. betas = [0.32, 0.32, 0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.40, 0.41, 0.42, 0.43, 0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60, 0.61, 0.62, 0.63, 0.64, 0.65, 0.66, 0.67, 0.68, 0.69, 0.70, 0.71, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78] Cs = [0.9847, 0.9846, 0.9845, 0.9843, 0.9841, 0.9838, 0.9836, 0.9833, 0.9830, 0.9826, 0.9823, 0.9818, 0.9814, 0.9809, 0.9804, 0.9798, 0.9792, 0.9786, 0.9779, 0.9771, 0.9763, 0.9755, 0.9745, 0.9736, 0.9725, 0.9714, 0.9702, 0.9689, 0.9676, 0.9661, 0.9646, 0.9630, 0.9613, 0.9595, 0.9576, 0.9556, 0.9535, 0.9512, 0.9489, 0.9464, 0.9438, 0.9411, 0.9382, 0.9352, 0.9321, 0.9288, 0.9253, 0.9236] Cs_calc = [C_venturi_nozzle(D=1, Do=beta) for beta in betas] assert_allclose(Cs, Cs_calc, rtol=5E-3) @pytest.mark.slow def test_fuzz_K_to_discharge_coefficient(): ''' # Testing the different formulas from sympy import * C, beta, K = symbols('C, beta, K') expr = Eq(K, (sqrt(1 - beta**4*(1 - C*C))/(C*beta**2) - 1)**2) solns = solve(expr, C) [i.subs({'K': 5.2314291729754, 'beta': 0.05/0.07366}) for i in solns] [-sqrt(-beta**4/(-2*sqrt(K)*beta**4 + K*beta**4) + 1/(-2*sqrt(K)*beta**4 + K*beta**4)), sqrt(-beta**4/(-2*sqrt(K)*beta**4 + K*beta**4) + 1/(-2*sqrt(K)*beta**4 + K*beta**4)), -sqrt(-beta**4/(2*sqrt(K)*beta**4 + K*beta**4) + 1/(2*sqrt(K)*beta**4 + K*beta**4)), sqrt(-beta**4/(2*sqrt(K)*beta**4 + K*beta**4) + 1/(2*sqrt(K)*beta**4 + K*beta**4))] # Getting the formula from sympy import * C, beta, K = symbols('C, beta, K') expr = Eq(K, (sqrt(1 - beta**4*(1 - C*C))/(C*beta**2) - 1)**2) print(latex(solve(expr, C)[3])) ''' Ds = np.logspace(np.log10(1-1E-9), np.log10(1E-9), 8) for D_ratio in Ds: Ks = np.logspace(np.log10(1E-9), np.log10(50000), 8) Ks_recalc = [] for K in Ks: C = K_to_discharge_coefficient(D=1, Do=D_ratio, K=K) K_calc = discharge_coefficient_to_K(D=1, Do=D_ratio, C=C) Ks_recalc.append(K_calc) assert_allclose(Ks, Ks_recalc)fluids-0.1.78/tests/test_units.py0000644000175000017500000003361113632560624015561 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division import types import numpy as np from numpy.testing import assert_allclose import pytest import fluids from fluids.units import * def assert_pint_allclose(value, magnitude, units): assert_allclose(value.to_base_units().magnitude, magnitude) if type(units) != dict: units = dict(units.dimensionality) assert dict(value.dimensionality) == units def test_convert_input(): from fluids.units import convert_input ans = convert_input(5, 'm', u, False) assert ans == 5 with pytest.raises(Exception): convert_input(5, 'm', u, True) def test_sample_cases(): Re = Reynolds(V=3.5*u.m/u.s, D=2*u.m, rho=997.1*u.kg/u.m**3, mu=1E-3*u.Pa*u.s) assert_allclose(Re.to_base_units().magnitude, 6979700.0) assert dict(Re.dimensionality) == {} # vs = hwm93(5E5*u.m, 45*u.degrees, 50*u.degrees, 365*u.day) # vs_known = [-73.00312042236328, 0.1485661268234253] # for v_known, v_calc in zip(vs_known, vs): # assert_allclose(v_known, v_calc.to_base_units().magnitude) # assert dict(v_calc.dimensionality) == {u'[length]': 1.0, u'[time]': -1.0} A = API520_A_g(m=24270*u.kg/u.hour, T=348.*u.K, Z=0.90, MW=51.*u.g/u.mol, k=1.11, P1=670*u.kPa, Kb=1, Kc=1) assert_allclose(A.to_base_units().magnitude, 0.00369904606468) assert dict(A.dimensionality) == {u'[length]': 2.0} T = T_critical_flow(473*u.K, 1.289) assert_allclose(T.to_base_units().magnitude, 413.280908694) assert dict(T.dimensionality) == {u'[temperature]': 1.0} T2 = T_critical_flow(473*u.K, 1.289*u.dimensionless) assert T == T2 with pytest.raises(Exception): T_critical_flow(473, 1.289) with pytest.raises(Exception): T_critical_flow(473*u.m, 1.289) # boolean P1 = 8*u.bar + 1*u.atm P2 = 1*u.atm assert True == is_critical_flow(P1, P2, k=1.4*u.dimensionless) A = size_control_valve_g(T=433.*u.K, MW=44.01*u.g/u.mol, mu=1.4665E-4*u.Pa*u.s, gamma=1.30, Z=0.988, P1=680*u.kPa, P2=310*u.kPa, Q=38/36.*u.m**3/u.s, D1=0.08*u.m, D2=0.1*u.m, d=0.05*u.m, FL=0.85, Fd=0.42, xT=0.60) assert_allclose(A.to_base_units().magnitude, 0.0201629570705307) assert dict(A.dimensionality) == {u'[length]': 3.0, u'[time]': -1.0} A = API520_round_size(A=1E-4*u.m**2) assert_allclose(A.to_base_units().magnitude, 0.00012645136) assert dict(A.dimensionality) == {u'[length]': 2.0} SS = specific_speed(0.0402*u.m**3/u.s, 100*u.m, 3550*u.rpm) assert_allclose(SS.to_base_units().magnitude, 2.3570565251512066) assert dict(SS.dimensionality) == {u'[length]': 0.75, u'[time]': -1.5} v = Geldart_Ling(1.*u.kg/u.s, 1.2*u.kg/u.m**3, 0.1*u.m, 2E-5*u.Pa*u.s) assert_allclose(v.to_base_units().magnitude, 7.467495862402707) assert dict(v.dimensionality) == {u'[length]': 1.0, u'[time]': -1.0} s = speed_synchronous(50*u.Hz, poles=12) assert_allclose(s.to_base_units().magnitude, 157.07963267948966) assert dict(s.dimensionality) == {u'[time]': -1.0} t = t_from_gauge(.2, False, 'AWG') assert_allclose(t.to_base_units().magnitude, 0.5165) assert dict(t.dimensionality) == {u'[length]': 1.0} dP = Robbins(G=2.03*u.kg/u.m**2/u.s, rhol=1000*u.kg/u.m**3, Fpd=24/u.ft, L=12.2*u.kg/u.m**2/u.s, rhog=1.1853*u.kg/u.m**3, mul=0.001*u.Pa*u.s, H=2*u.m) assert_allclose(dP.to_base_units().magnitude, 619.662459344 ) assert dict(dP.dimensionality) == {u'[length]': -1.0, u'[mass]': 1.0, u'[time]': -2.0} dP = dP_packed_bed(dp=8E-4*u.m, voidage=0.4, vs=1E-3*u.m/u.s, rho=1E3*u.kg/u.m**3, mu=1E-3*u.Pa*u.s) assert_allclose(dP.to_base_units().magnitude, 1438.28269588 ) assert dict(dP.dimensionality) == {u'[length]': -1.0, u'[mass]': 1.0, u'[time]': -2.0} dP = dP_packed_bed(dp=8E-4*u.m, voidage=0.4*u.dimensionless, vs=1E-3*u.m/u.s, rho=1E3*u.kg/u.m**3, mu=1E-3*u.Pa*u.s, Dt=0.01*u.m) assert_allclose(dP.to_base_units().magnitude, 1255.16256625) assert dict(dP.dimensionality) == {u'[length]': -1.0, u'[mass]': 1.0, u'[time]': -2.0} n = C_Chezy_to_n_Manning(26.15*u.m**0.5/u.s, Rh=5*u.m) assert_allclose(n.to_base_units().magnitude, 0.05000613713238358) assert dict(n.dimensionality) == {u'[length]': -0.3333333333333333, u'[time]': 1.0} Q = Q_weir_rectangular_SIA(0.2*u.m, 0.5*u.m, 1*u.m, 2*u.m) assert_allclose(Q.to_base_units().magnitude, 1.0408858453811165) assert dict(Q.dimensionality) == {u'[length]': 3.0, u'[time]': -1.0} t = agitator_time_homogeneous(D=36*.0254*u.m, N=56/60.*u.revolutions/u.second, P=957.*u.W, T=1.83*u.m, H=1.83*u.m, mu=0.018*u.Pa*u.s, rho=1020*u.kg/u.m**3, homogeneity=.995) assert_allclose(t.to_base_units().magnitude, 15.143198226374668) assert dict(t.dimensionality) == {u'[time]': 1.0} K = K_separator_Watkins(0.88*u.dimensionless, 985.4*u.kg/u.m**3, 1.3*u.kg/u.m**3, horizontal=True) assert_allclose(K.to_base_units().magnitude, 0.07951613600476297, rtol=1e-2) assert dict(K.dimensionality) == {u'[length]': 1.0, u'[time]': -1.0} A = current_ideal(V=120*u.V, P=1E4*u.W, PF=1, phase=1) assert_allclose(A.to_base_units().magnitude, 83.33333333333333) assert dict(A.dimensionality) == {u'[current]': 1.0} fd = friction_factor(Re=1E5, eD=1E-4) assert_allclose(fd.to_base_units().magnitude, 0.01851386607747165) assert dict(fd.dimensionality) == {} K = Cv_to_K(2.712*u.gallon/u.minute, .015*u.m) assert_allclose(K.to_base_units().magnitude, 14.719595348352552) assert dict(K.dimensionality) == {} Cv = K_to_Cv(16, .015*u.m) assert_allclose(Cv.to_base_units().magnitude, 0.0001641116865931214) assert dict(Cv.dimensionality) == {u'[length]': 3.0, u'[time]': -1.0} Cd = drag_sphere(200) assert_allclose(Cd.to_base_units().magnitude, 0.7682237950389874) assert dict(Cd.dimensionality) == {} V, D = integrate_drag_sphere(D=0.001*u.m, rhop=2200.*u.kg/u.m**3, rho=1.2*u.kg/u.m**3, mu=1.78E-5*u.Pa*u.s, t=0.5*u.s, V=30*u.m/u.s, distance=True) assert_allclose(V.to_base_units().magnitude, 9.686465044063436) assert dict(V.dimensionality) == {u'[length]': 1.0, u'[time]': -1.0} assert_allclose(D.to_base_units().magnitude, 7.829454643649386) assert dict(D.dimensionality) == {u'[length]': 1.0} Bo = Bond(1000*u.kg/u.m**3, 1.2*u.kg/u.m**3, .0589*u.N/u.m, 2*u.m) assert_allclose(Bo.to_base_units().magnitude, 665187.2339558573) assert dict(Bo.dimensionality) == {} head = head_from_P(P=98066.5*u.Pa, rho=1000*u.kg/u.m**3) assert_allclose(head.to_base_units().magnitude, 10.000000000000002) assert dict(head.dimensionality) == {u'[length]': 1.0} roughness = roughness_Farshad('Cr13, bare', 0.05*u.m) assert_allclose(roughness.to_base_units().magnitude, 5.3141677781137006e-05) assert dict(roughness.dimensionality) == {u'[length]': 1.0} def test_custom_wraps(): A = A_multiple_hole_cylinder(0.01*u.m, 0.1*u.m, [(0.005*u.m, 1)]) assert_allclose(A.to_base_units().magnitude, 0.004830198704894308) assert dict(A.dimensionality) == {u'[length]': 2.0} V = V_multiple_hole_cylinder(0.01*u.m, 0.1*u.m, [(0.005*u.m, 1)]) assert_allclose(V.to_base_units().magnitude, 5.890486225480862e-06) assert dict(V.dimensionality) == {u'[length]': 3.0} # custom compressible flow model wrappers functions = [Panhandle_A, Panhandle_B, Weymouth, Spitzglass_high, Oliphant, Fritzsche] values = [42.56082051195928, 42.35366178004172, 32.07729055913029, 29.42670246281681, 28.851535408143057, 39.421535157535565] for f, v in zip(functions, values): ans = f(D=0.340*u.m, P1=90E5*u.Pa, P2=20E5*u.Pa, L=160E3*u.m, SG=0.693, Tavg=277.15*u.K) assert_pint_allclose(ans, v, {u'[length]': 3.0, u'[time]': -1.0}) ans = IGT(D=0.340*u.m, P1=90E5*u.Pa, P2=20E5*u.Pa, L=160E3*u.m, SG=0.693, mu=1E-5*u.Pa*u.s, Tavg=277.15*u.K) assert_pint_allclose(ans, 48.92351786788815, {u'[length]': 3.0, u'[time]': -1.0}) ans = Muller(D=0.340*u.m, P1=90E5*u.Pa, P2=20E5*u.Pa, L=160E3*u.m, SG=0.693, mu=1E-5*u.Pa*u.s, Tavg=277.15*u.K) assert_pint_allclose(ans, 60.45796698148659, {u'[length]': 3.0, u'[time]': -1.0}) nu = nu_mu_converter(rho=1000*u.kg/u.m**3, mu=1E-4*u.Pa*u.s) assert_pint_allclose(nu, 1E-7, {u'[length]': 2.0, u'[time]': -1.0}) mu = nu_mu_converter(rho=1000*u.kg/u.m**3, nu=1E-7*u.m**2/u.s) assert_pint_allclose(mu, 1E-4, {u'[time]': -1.0, u'[length]': -1.0, u'[mass]': 1.0}) SA = SA_tank(D=1.*u.m, L=0*u.m, sideA='ellipsoidal', sideA_a=2*u.m, sideB='ellipsoidal', sideB_a=2*u.m) assert_pint_allclose(SA, 28.480278854014387, {u'[length]': 2.0}) SA, (sideA_SA, sideB_SA, lateral_SA) = SA_tank(D=1.*u.m, L=0*u.m, sideA='ellipsoidal', sideA_a=2*u.m, sideB='ellipsoidal', sideB_a=2*u.m, full_output=True) expect = [28.480278854014387, 14.240139427007193, 14.240139427007193, 0] for value, expected in zip([SA, sideA_SA, sideB_SA, lateral_SA], expect): assert_pint_allclose(value, expected, {u'[length]': 2.0}) def test_check_signatures(): from fluids.units import check_args_order for name in dir(fluids): obj = getattr(fluids, name) if isinstance(obj, types.FunctionType): if hasattr(obj, 'func_name') and obj.func_name == '': continue # 2 if hasattr(obj, '__name__') and obj.__name__ == '': continue # 3 check_args_order(obj) def test_Tank_units_full(): T1 = TANK(L=3*u.m, D=150*u.cm, horizontal=True, sideA=None, sideB=None) # test all methods V = T1.V_from_h(0.1*u.m, 'full') assert_pint_allclose(V, 0.151783071377, u.m**3) h = T1.h_from_V(0.151783071377*u.m**3, method='brenth') assert_pint_allclose(h, 0.1, u.m) h = T1.h_from_V(0.151783071377*u.m**3, 'brenth') assert_pint_allclose(h, 0.1, u.m) # Check the table and approximations T1.set_table(dx=1*u.cm) assert 151 == len(T1.volumes) assert_pint_allclose(T1.heights[0:3], [0, 0.01, 0.02], u.m) T1.set_table(n=10) assert 10 == len(T1.volumes) T1.set_table(n=10*u.dimensionless) assert 10 == len(T1.volumes) T1.set_chebyshev_approximators(8, 8) T1.set_chebyshev_approximators(8*u.dimensionless, 8) T1.set_chebyshev_approximators(8, 8*u.dimensionless) assert 16 == len(T1.c_forward) assert 16 == len(T1.c_backward) # Check the properties assert_pint_allclose(T1.h_max, 1.5, u.m) assert_pint_allclose(T1.V_total, 5.301437602932776, u.m**3) assert_pint_allclose(T1.L_over_D, 2, u.dimensionless) assert_pint_allclose(T1.A_sideA, 1.76714586764, u.m**2) assert_pint_allclose(T1.A_sideB, 1.76714586764, u.m**2) assert_pint_allclose(T1.A_lateral, 14.1371669412, u.m**2) assert_pint_allclose(T1.A, 17.6714586764, u.m**2) def test_HelicalCoil_units(): C2 = HelicalCoil(Do=30*u.cm, H=20*u.cm, pitch=5*u.cm, Dt=2*u.cm) C3 = HelicalCoil(2*u.cm, 30*u.cm, 5*u.cm, 20*u.cm) for C1 in [C2, C3]: assert_pint_allclose(C1.Dt, 0.02, u.m) assert_pint_allclose(C1.Do, 0.3, u.m) assert_pint_allclose(C1.Do_total, 0.32, u.m) assert_pint_allclose(C1.pitch, 0.05, u.m) assert_pint_allclose(C1.H, 0.2, u.m) assert_pint_allclose(C1.H_total, 0.22, u.m) assert_pint_allclose(C1.N, 4, u.dimensionless) assert_pint_allclose(C1.tube_circumference, 0.942477796077, u.m) assert_pint_allclose(C1.tube_length, 3.7752126215, u.m) assert_pint_allclose(C1.surface_area, 0.237203604749 , u.m**2) assert_pint_allclose(C1.curvature, 0.06, u.dimensionless) assert_pint_allclose(C1.helix_angle, 0.0530019606897, u.radians) def test_ATMOSPHERE_1976_units(): five_km = ATMOSPHERE_1976(5000*u.m) assert_pint_allclose(five_km.T, 255.675543222, u.K) assert_pint_allclose(five_km.P, 54048.2861458, u.Pa) assert_pint_allclose(five_km.rho, 0.73642842078, u.kg/u.m**3) assert_pint_allclose(five_km.g, 9.79124107698, u.m/u.s**2) assert_pint_allclose(five_km.mu, 1.62824813536e-05, u.Pa*u.s) assert_pint_allclose(five_km.k, 0.0227319029514, u.W/u.K/u.m) assert_pint_allclose(five_km.v_sonic, 320.54551967, u.m/u.s) assert_pint_allclose(five_km.sonic_velocity(300*u.K), 347.220809082, u.m/u.s) # Check AttribtueError is property raised on __getstate__ for classes # as they now have a __getattr_ method import copy copy.copy(five_km) copy.deepcopy(five_km) def test_ATMOSPHERE_NRLMSISE00(): a = ATMOSPHERE_NRLMSISE00(Z=1E3*u.m, latitude=45*u.degrees, longitude=45*u.degrees, day=150*u.day) assert_pint_allclose(a.T, 285.544086062, u.K) assert_pint_allclose(a.rho, 1.10190620264, u.kg/u.m**3) assert_pint_allclose(a.O2_density, 4.80470350725e+24, u.count/u.m**3) assert_pint_allclose(a.day, 12960000, u.day)fluids-0.1.78/tests/test_fittings.py0000644000175000017500000006365313632560624016257 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division import os from fluids import * import numpy as np from math import pi, log10, log from random import uniform from numpy.testing import assert_allclose from scipy.constants import * from scipy.optimize import * from scipy.interpolate import * from fluids import fluids_data_dir from fluids.core import Engauge_2d_parser from fluids.optional.pychebfun import * import pytest def log_uniform(low, high): return 10**uniform(log10(low), log10(high)) def test_fittings(): K = entrance_beveled_orifice(Di=0.1, do=.07, l=0.003, angle=45) assert_allclose(K, 1.2987552913818574) ### Exits assert_allclose(exit_normal(), 1.0) K_helix = helix(Di=0.01, rs=0.1, pitch=.03, N=10, fd=.0185) assert_allclose(K_helix, 14.525134924495514) K_spiral = spiral(Di=0.01, rmax=.1, rmin=.02, pitch=.01, fd=0.0185) assert_allclose(K_spiral, 7.950918552775473) ### Contractions K_sharp = contraction_sharp(Di1=1, Di2=0.4) assert_allclose(K_sharp, 0.5301269161591805) K_beveled = contraction_beveled(Di1=0.5, Di2=0.1, l=.7*.1, angle=120) assert_allclose(K_beveled, 0.40946469413070485) ### Expansions (diffusers) K_sharp = diffuser_sharp(Di1=.5, Di2=1) assert_allclose(K_sharp, 0.5625) K = diffuser_curved(Di1=.25**0.5, Di2=1., l=2.) assert_allclose(K, 0.2299781250000002) K = diffuser_pipe_reducer(Di1=.5, Di2=.75, l=1.5, fd1=0.07) assert_allclose(K, 0.06873244301714816) K = diffuser_pipe_reducer(Di1=.5, Di2=.75, l=1.5, fd1=0.07, fd2=.08) assert_allclose(K, 0.06952256647393829) # Misc K1 = Darby3K(NPS=2., Re=10000., name='Valve, Angle valve, 45°, full line size, β = 1') K2 = Darby3K(NPS=12., Re=10000., name='Valve, Angle valve, 45°, full line size, β = 1') K3 = Darby3K(NPS=12., Re=10000., K1=950, Ki=0.25, Kd=4) Ks = [1.1572523963562353, 0.819510280626355, 0.819510280626355] assert_allclose([K1, K2, K3], Ks) with pytest.raises(Exception): Darby3K(NPS=12., Re=10000) with pytest.raises(Exception): Darby3K(NPS=12., Re=10000, name='fail') tot = sum([Darby3K(NPS=2., Re=1000, name=i) for i in Darby.keys()]) assert_allclose(tot, 67.96442287975898) K1 = Hooper2K(Di=2., Re=10000., name='Valve, Globe, Standard') K2 = Hooper2K(Di=2., Re=10000., K1=900, Kinfty=4) assert_allclose([K1, K2], [6.15, 6.09]) tot = sum([Hooper2K(Di=2., Re=10000., name=i) for i in Hooper.keys()]) assert_allclose(tot, 46.18) with pytest.raises(Exception): Hooper2K(Di=2, Re=10000) with pytest.raises(Exception): Hooper2K(Di=2., Re=10000, name='fail') K2 = change_K_basis(K1=32.68875692997804, D1=.01, D2=.02) assert_allclose(K2, 523.0201108796487) ### Entrances def test_entrance_distance_45_Miller(): from fluids.fittings import entrance_distance_45_Miller K = entrance_distance_45_Miller(Di=0.1, Di0=0.14) assert_allclose(K, 0.24407641818143339) def test_entrance_distance(): K1 = entrance_distance(0.1, t=0.0005) assert_allclose(K1, 1.0154100000000004) assert_allclose(entrance_distance(Di=0.1, t=0.05), 0.57) K = entrance_distance(Di=0.1, t=0.0005, method='Miller') assert_allclose(K, 1.0280427936730414) K = entrance_distance(Di=0.1, t=0.0005, method='Idelchik') assert_allclose(K, 0.9249999999999999) K = entrance_distance(Di=0.1, t=0.0005, l=.02, method='Idelchik') assert_allclose(K, 0.8475000000000001) K = entrance_distance(Di=0.1, t=0.0005, method='Harris') assert_allclose(K, 0.8705806231290558, 3e-3) K = entrance_distance(Di=0.1, method='Crane') assert_allclose(K, 0.78) with pytest.raises(Exception): entrance_distance(Di=0.1, t=0.01, method='BADMETHOD') def test_entrance_rounded(): K = entrance_rounded(Di=0.1, rc=0.0235) assert_allclose(K, 0.09839534618360923) assert_allclose(entrance_rounded(Di=0.1, rc=0.2), 0.03) K = entrance_rounded(Di=0.1, rc=0.0235, method='Miller') assert_allclose(K, 0.057734448458542094) K = entrance_rounded(Di=0.1, rc=0.0235, method='Swamee') assert_allclose(K, 0.06818838227156554) K = entrance_rounded(Di=0.1, rc=0.01, method='Crane') assert_allclose(K, .09) K = entrance_rounded(Di=0.1, rc=0.01, method='Harris') assert_allclose(K, 0.04864878230217168) # Limiting condition K = entrance_rounded(Di=0.1, rc=0.0235, method='Harris') assert_allclose(K, 0.0) K = entrance_rounded(Di=0.1, rc=0.01, method='Idelchik') assert_allclose(K, 0.11328005177738182) # Limiting condition K = entrance_rounded(Di=0.1, rc=0.0235, method='Idelchik') assert_allclose(K, 0.03) with pytest.raises(Exception): entrance_rounded(Di=0.1, rc=0.01, method='BADMETHOD') def test_entrance_beveled(): K = entrance_beveled(Di=0.1, l=0.003, angle=45) assert_allclose(K, 0.45086864221916984) K = entrance_beveled(Di=0.1, l=0.003, angle=45, method='Idelchik') assert_allclose(K, 0.3995000000000001) def test_entrance_sharp(): assert_allclose(entrance_sharp(), 0.57) with pytest.raises(Exception): entrance_sharp(method='BADMETHOD') for method in ['Swamee', 'Blevins', 'Idelchik', 'Crane']: assert_allclose(0.5, entrance_sharp(method=method)) entrance_sharp(method='Miller') # Don't bother checking a value for the Miller method def test_entrance_angled(): K_30_Idelchik = 0.9798076211353316 assert_allclose(entrance_angled(30), K_30_Idelchik) assert_allclose(entrance_angled(30, method='Idelchik'), K_30_Idelchik) with pytest.raises(Exception): entrance_angled(30, method='BADMETHOD') ### Bends def test_bend_rounded_Crane(): K = bend_rounded_Crane(Di=.4020, rc=.4*5, angle=30) assert_allclose(K, 0.09321910015613409) K_max = bend_rounded_Crane(Di=.400, rc=.4*25, angle=30) K_limit = bend_rounded_Crane(Di=.400, rc=.4*20, angle=30) assert_allclose(K_max, K_limit) def test_bend_rounded_Miller(): # Miller examples - 9.12 D = .6 Re = Reynolds(V=4, D=D, nu=1.14E-6) kwargs = dict(Di=D, bend_diameters=2, angle=90, Re=Re, roughness=.02E-3) K = bend_rounded_Miller(L_unimpeded=30*D, **kwargs) assert_allclose(K, 0.1513266131915296, rtol=1e-4)# 0.150 in Miller- 1% difference due to fd K = bend_rounded_Miller(L_unimpeded=0*D, **kwargs) assert_allclose(K, 0.1414607344374372, rtol=1e-4) # 0.135 in Miller - Difference mainly from Co interpolation method, OK with that K = bend_rounded_Miller(L_unimpeded=2*D, **kwargs) assert_allclose(K, 0.09343184457353562, rtol=1e-4) # 0.093 in miller def test_bend_rounded(): ### Bends K_5_rc = [bend_rounded(Di=4.020, rc=4.0*5, angle=i, fd=0.0163) for i in [15, 30, 45, 60, 75, 90]] K_5_rc_values = [0.07038212630028828, 0.10680196344492195, 0.13858204974134541, 0.16977191374717754, 0.20114941557508642, 0.23248382866658507] assert_allclose(K_5_rc, K_5_rc_values) K_10_rc = [bend_rounded(Di=34.500, rc=36*10, angle=i, fd=0.0106) for i in [15, 30, 45, 60, 75, 90]] K_10_rc_values = [0.061075866683922314, 0.10162621862720357, 0.14158887563243763, 0.18225270014527103, 0.22309967045081655, 0.26343782210280947] assert_allclose(K_10_rc, K_10_rc_values) K = bend_rounded(Di=4.020, bend_diameters=5, angle=30, fd=0.0163) assert_allclose(K, 0.106920213333191) K = bend_rounded(Di=4.020, bend_diameters=5, angle=30, Re=1E5) assert_allclose(K, 0.11532121658742862) K = bend_rounded(Di=4.020, bend_diameters=5, angle=30, Re=1E5, method='Miller') assert_allclose(K, 0.10276501180879682) K = bend_rounded(Di=.5, bend_diameters=5, angle=30, Re=1E5, method='Crane') assert_allclose(K, 0.08959057097762159) K = bend_rounded(Di=.5, bend_diameters=5, angle=30, Re=1E5, method='Ito') assert_allclose(K, 0.10457946464978755) K = bend_rounded(Di=.5, bend_diameters=5, angle=30, Re=1E5, method='Swamee') assert_allclose(K, 0.055429466248839564) def test_bend_miter(): K_miters = [bend_miter(i) for i in [150, 120, 90, 75, 60, 45, 30, 15]] K_miter_values = [2.7128147734758103, 2.0264994448555864, 1.2020815280171306, 0.8332188430731828, 0.5299999999999998, 0.30419633092708653, 0.15308822558050816, 0.06051389308126326] assert_allclose(K_miters, K_miter_values) K = bend_miter(Di=.6, angle=45, Re=1e6, roughness=1e-5, L_unimpeded=20, method='Miller') assert_allclose(K, 0.2944060416245167) K = bend_miter(Di=.05, angle=45, Re=1e6, roughness=1e-5, method='Crane') assert_allclose(K, 0.28597953150073047) K = bend_miter(angle=45, Re=1e6, method='Rennels') assert_allclose(K, 0.30419633092708653) with pytest.raises(Exception): bend_miter(angle=45, Re=1e6, method='BADMETHOD') def test_bend_miter_Miller(): K = bend_miter_Miller(Di=.6, angle=45, Re=1e6, roughness=1e-5, L_unimpeded=20) assert_allclose(K, 0.2944060416245167) K_default_L_unimpeded = bend_miter_Miller(Di=.6, angle=45, Re=1e6, roughness=1e-5) assert_allclose(K, K_default_L_unimpeded) K_high_angle = bend_miter_Miller(Di=.6, angle=120, Re=1e6, roughness=1e-5, L_unimpeded=20) K_higher_angle = bend_miter_Miller(Di=.6, angle=150, Re=1e6, roughness=1e-5, L_unimpeded=20) assert_allclose(K_high_angle, K_higher_angle) @pytest.mark.slow @pytest.mark.fuzz def test_bend_rounded_Miller_fuzz(): # Tested for quite a while without problems answers = [] for i in range(500): Di = log_uniform(1e-5, 100) rc = uniform(0, 100) angle = uniform(0, 180) Re = log_uniform(1e-5, 1E15) roughness = uniform(1e-10, Di*.95) L_unimpeded = log_uniform(1e-10, Di*1000) ans = bend_rounded_Miller(Di=Di, rc=rc, angle=angle, Re=Re, roughness=roughness, L_unimpeded=L_unimpeded) if np.isnan(ans) or np.isinf(ans): raise Exception answers.append(ans) assert min(answers) >= 0 assert max(answers) < 1E10 @pytest.mark.slow @pytest.mark.fuzz def test_bend_miter_Miller_fuzz(): # Tested for quite a while without problems answers = [] for i in range(10**3): Di = log_uniform(1e-5, 100) angle = uniform(0, 120) Re = log_uniform(1e-5, 1E15) roughness = uniform(1e-10, Di*.95) L_unimpeded = log_uniform(1e-10, Di*1000) ans = bend_miter_Miller(Di=Di, angle=angle, Re=Re, roughness=roughness, L_unimpeded=L_unimpeded) if np.isnan(ans) or np.isinf(ans): raise Exception answers.append(ans) assert min(answers) >= 0 assert max(answers) < 1E10 ### Diffusers def test_diffuser_conical(): K1 = diffuser_conical(Di1=.1**0.5, Di2=1, angle=10., fd=0.020) K2 = diffuser_conical(Di1=1/3., Di2=1, angle=50, fd=0.03) # 2 K3 = diffuser_conical(Di1=2/3., Di2=1, angle=40, fd=0.03) # 3 K4 = diffuser_conical(Di1=1/3., Di2=1, angle=120, fd=0.0185) # #4 K5 = diffuser_conical(Di1=2/3., Di2=1, angle=120, fd=0.0185) # Last K6 = diffuser_conical(Di1=.1**0.5, Di2=1, l=3.908, fd=0.020) Ks = [0.12301652230915454, 0.8081340270019336, 0.32533470783539786, 0.812308728765127, 0.3282650135070033, 0.12300865396254032] assert_allclose([K1, K2, K3, K4, K5, K6], Ks) with pytest.raises(Exception): diffuser_conical(Di1=.1, Di2=0.1, angle=1800., fd=0.020) with pytest.raises(Exception): diffuser_conical(Di1=.1, Di2=0.1, fd=0.020) K1 = diffuser_conical_staged(Di1=1., Di2=10., DEs=[2,3,4,5,6,7,8,9], ls=[1,1,1,1,1,1,1,1,1], fd=0.01) K2 = diffuser_conical(Di1=1., Di2=10.,l=9, fd=0.01) Ks = [1.7681854713484308, 0.973137914861591] assert_allclose([K1, K2], Ks) # Idelchilk Ks_Idelchik = [diffuser_conical(Di1=.1**0.5, Di2=1, l=l, method='Idelchik') for l in [.1, .5, 1, 2, 3, 4, 5, 20]] Ks_Idelchik_expect = [0.8617385829640242, 0.9283647028367953, 0.7082429168951839, 0.291016580744589, 0.18504484868875992, 0.147705693811332, 0.12911637682462676, 0.17] assert_allclose(Ks_Idelchik, Ks_Idelchik_expect, rtol=1e-2) ### Contractions def test_contraction_conical_Crane(): K2 = contraction_conical_Crane(Di1=0.0779, Di2=0.0525, l=0) assert_allclose(K2, 0.2729017979998056) def test_contraction_round(): K_round = contraction_round(Di1=1, Di2=0.4, rc=0.04) assert_allclose(K_round, 0.1783332490866574) K = contraction_round(Di1=1, Di2=0.4, rc=0.04, method='Miller') assert_allclose(K, 0.085659530512986387) K = contraction_round(Di1=1, Di2=0.4, rc=0.04, method='Idelchik') assert_allclose(K, 0.1008) with pytest.raises(Exception): contraction_round(Di1=1, Di2=0.4, rc=0.04, method='BADMETHOD') def test_contraction_round_Miller(): K = contraction_round_Miller(Di1=1, Di2=0.4, rc=0.04) assert_allclose(K, 0.085659530512986387) def test_contraction_conical(): K_conical1 = contraction_conical(Di1=0.1, Di2=0.04, l=0.04, fd=0.0185) K_conical2 = contraction_conical(Di1=0.1, Di2=0.04, angle=73.74, fd=0.0185) assert_allclose([K_conical1, K_conical2], [0.15779041548350314, 0.15779101784158286]) with pytest.raises(Exception): contraction_conical(Di1=0.1, Di2=0.04, fd=0.0185) K = contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='Rennels') assert_allclose(K, 0.47462419839494946) K = contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='Idelchik') assert_allclose(K, 0.391723) K = contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='Crane') assert_allclose(K, 0.41815380146594) K = contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='Swamee') assert_allclose(K, 0.4479863925376303) K = contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='Blevins') assert_allclose(K, 0.365) K = contraction_conical(Di1=0.1, Di2=0.04, l=0.04, Re=1E6, method='Miller') assert_allclose(K, 0.0918289683812792) # high l ratio rounding K = contraction_conical(Di1=0.1, Di2=0.06, l=0.04, Re=1E6, method='Miller') assert_allclose(K, 0.08651515699621345) # low a ratio rounding K = contraction_conical(Di1=0.1, Di2=0.099, l=0.04, Re=1E6, method='Miller') assert_allclose(K, 0.03065262382984957) # low l ratio K = contraction_conical(Di1=0.1, Di2=0.04, l=0.001, Re=1E6, method='Miller') assert_allclose(K, 0.5) # high l ratio rounding K = contraction_conical(Di1=0.1, Di2=0.05, l=1, Re=1E6, method='Miller') assert_allclose(K, 0.04497085709551787) with pytest.raises(Exception): contraction_conical(Di1=0.1, Di2=.04, l=.004, Re=1E6, method='BADMETHOD') ### Valves def test_valve_coefficients(): Cv = Kv_to_Cv(2) assert_allclose(Cv, 2.3121984567073133) Kv = Cv_to_Kv(2.312) assert_allclose(Kv, 1.9998283393826013) K = Kv_to_K(2.312, .015) assert_allclose(K, 15.15337460039990) Kv = K_to_Kv(15.15337460039990, .015) assert_allclose(Kv, 2.312) # Two way conversions K = Cv_to_K(2.712, .015) assert_allclose(K, 14.719595348352552) assert_allclose(K, Kv_to_K(Cv_to_Kv(2.712), 0.015)) Cv = K_to_Cv(14.719595348352552, .015) assert_allclose(Cv, 2.712) assert_allclose(Cv, Kv_to_Cv(K_to_Kv(14.719595348352552, 0.015))) # Code to generate the Kv Cv conversion factor # Round 1 trip; randomly assume Kv = 12, rho = 900; they can be anything # an tit still works dP = 1E5 rho = 900. Kv = 12. Q = Kv/3600. D = .01 V = Q/(pi/4*D**2) K = dP/(.5*rho*V*V) good_K = K def to_solve(x): from scipy.constants import gallon, minute, hour, psi conversion = gallon/minute*hour # from gpm to m^3/hr dP = 1*psi Cv = Kv*x*conversion Q = Cv/3600 D = .01 V = Q/(pi/4*D**2) K = dP/(.5*rho*V*V) return K - good_K from scipy.optimize import newton ans = newton(to_solve, 1.2) assert_allclose(ans, 1.1560992283536566) def test_K_gate_valve_Crane(): K = K_gate_valve_Crane(D1=.01, D2=.02, angle=45, fd=.015) assert_allclose(K, 14.548553268047963) K = K_gate_valve_Crane(D1=.1, D2=.1, angle=0, fd=.015) assert_allclose(K, 0.12) # non-smooth transition test K = K_gate_valve_Crane(D1=.1, D2=.146, angle=45, fd=.015) assert_allclose(K, 2.5577948931946746) K = K_gate_valve_Crane(D1=.1, D2=.146, angle=45.01, fd=.015) assert_allclose(K, 2.5719286772143595) K = K_gate_valve_Crane(D1=.1, D2=.146, angle=13.115) assert_allclose(K, 1.1466029421844073, rtol=1e-4) def test_K_globe_valve_Crane(): K = K_globe_valve_Crane(.01, .02, fd=.015) assert_allclose(K, 87.1) assert_allclose(K_globe_valve_Crane(.01, .01, fd=.015), .015*340) K = K_globe_valve_Crane(.01, .02) assert_allclose(K, 135.9200548324305) def test_K_angle_valve_Crane(): K = K_angle_valve_Crane(.01, .02, fd=.016) assert_allclose(K, 19.58) K = K_angle_valve_Crane(.01, .02, fd=.016, style=1) assert_allclose(K, 43.9) K = K_angle_valve_Crane(.01, .01, fd=.016, style=1) assert_allclose(K, 2.4) with pytest.raises(Exception): K_angle_valve_Crane(.01, .02, fd=.016, style=-1) K = K_angle_valve_Crane(.01, .02) assert_allclose(K, 26.597361811128465) def test_K_swing_check_valve_Crane(): K = K_swing_check_valve_Crane(D=.1, fd=.016) assert_allclose(K, 1.6) K = K_swing_check_valve_Crane(D=.1, fd=.016, angled=False) assert_allclose(K, 0.8) K = K_swing_check_valve_Crane(D=.02) assert_allclose(K, 2.3974274785373257) def test_K_lift_check_valve_Crane(): K = K_lift_check_valve_Crane(.01, .02, fd=.016) assert_allclose(K, 21.58) K = K_lift_check_valve_Crane(.01, .01, fd=.016) assert_allclose(K, 0.88) K = K_lift_check_valve_Crane(.01, .01, fd=.016, angled=False) assert_allclose(K, 9.6) K = K_lift_check_valve_Crane(.01, .02, fd=.016, angled=False) assert_allclose(K, 161.1) K = K_lift_check_valve_Crane(.01, .02) assert_allclose(K, 28.597361811128465) def test_K_tilting_disk_check_valve_Crane(): K = K_tilting_disk_check_valve_Crane(.01, 5, fd=.016) assert_allclose(K, 0.64) K = K_tilting_disk_check_valve_Crane(.25, 5, fd=.016) assert_allclose(K, .48) K = K_tilting_disk_check_valve_Crane(.9, 5, fd=.016) assert_allclose(K, 0.32) K = K_tilting_disk_check_valve_Crane(.01, 15, fd=.016) assert_allclose(K, 1.92) K = K_tilting_disk_check_valve_Crane(.25, 15, fd=.016) assert_allclose(K, 1.44) K = K_tilting_disk_check_valve_Crane(.9, 15, fd=.016) assert_allclose(K, 0.96) K = K_tilting_disk_check_valve_Crane(.01, 5) assert_allclose(K, 1.1626516551826345) def test_K_globe_stop_check_valve_Crane(): K = K_globe_stop_check_valve_Crane(.1, .02, .0165) assert_allclose(K, 4.5225599999999995) K = K_globe_stop_check_valve_Crane(.1, .02, .0165, style=1) assert_allclose(K, 4.51992) K = K_globe_stop_check_valve_Crane(.1, .02, .0165, style=2) assert_allclose(K, 4.513452) with pytest.raises(Exception): K_globe_stop_check_valve_Crane(.1, .02, .0165, style=-1) K = K_globe_stop_check_valve_Crane(.1, .1, .0165) assert_allclose(K, 6.6) K = K_globe_stop_check_valve_Crane(.1, .02, style=1) assert_allclose(K, 4.5235076518969795) def test_K_angle_stop_check_valve_Crane(): K = K_angle_stop_check_valve_Crane(.1, .02, .0165) assert_allclose(K, 4.51728) K = K_angle_stop_check_valve_Crane(.1, .02, .0165, style=1) assert_allclose(K, 4.52124) K = K_angle_stop_check_valve_Crane(.1, .02, .0165, style=2) assert_allclose(K, 4.513452) with pytest.raises(Exception): K_angle_stop_check_valve_Crane(.1, .02, .0165, style=-1) K = K_angle_stop_check_valve_Crane(.1, .1, .0165) assert_allclose(K, 3.3) K = K_angle_stop_check_valve_Crane(.1, .02, style=1) assert_allclose(K, 4.525425593879809) def test_K_ball_valve_Crane(): K = K_ball_valve_Crane(.01, .02, 50, .025) assert_allclose(K, 14.100545785228675) K = K_ball_valve_Crane(.01, .02, 40, .025) assert_allclose(K, 12.48666472974707) K = K_ball_valve_Crane(.01, .01, 0, .025) assert_allclose(K, 0.07500000000000001) K = K_ball_valve_Crane(.01, .02, 50) assert_allclose(K, 14.051310974926592) def test_K_diaphragm_valve_Crane(): K = K_diaphragm_valve_Crane(fd=0.015, style=0) assert_allclose(2.235, K) K = K_diaphragm_valve_Crane(fd=0.015, style=1) assert_allclose(K, 0.585) with pytest.raises(Exception): K_diaphragm_valve_Crane(fd=0.015, style=-1) K = K_diaphragm_valve_Crane(D=.1, style=0) assert_allclose(K, 2.4269804835982565) def test_K_foot_valve_Crane(): K = K_foot_valve_Crane(fd=0.015, style=0) assert_allclose(K, 6.3) K = K_foot_valve_Crane(fd=0.015, style=1) assert_allclose(K, 1.125) with pytest.raises(Exception): K_foot_valve_Crane(fd=0.015, style=-1) K = K_foot_valve_Crane(D=0.2, style=0) assert_allclose(K, 5.912221498436275) def test_K_butterfly_valve_Crane(): K = K_butterfly_valve_Crane(.1, 0.0165) assert_allclose(K, 0.7425) K = K_butterfly_valve_Crane(.3, 0.0165, style=1) assert_allclose(K, 0.8580000000000001) K = K_butterfly_valve_Crane(.6, 0.0165, style=2) assert_allclose(K, 0.9075000000000001) with pytest.raises(Exception): K_butterfly_valve_Crane(.6, 0.0165, style=-1) K = K_butterfly_valve_Crane(D=.1, style=2) assert_allclose(K, 3.5508841974793284) def test_K_plug_valve_Crane(): K = K_plug_valve_Crane(.01, .02, 50, .025) assert_allclose(K, 20.100545785228675) K = K_plug_valve_Crane(.01, .02, 50, .025, style=1) assert_allclose(K, 24.900545785228676) K = K_plug_valve_Crane(.01, .02, 50, .025, style=2) assert_allclose(K, 48.90054578522867) K = K_plug_valve_Crane(.01, .01, 50, .025, style=2) assert_allclose(K, 2.25) with pytest.raises(Exception): K_plug_valve_Crane(.01, .01, 50, .025, style=-1) K = K_plug_valve_Crane(D1=.01, D2=.02, angle=50) assert_allclose(K, 19.80513692341617) def test_v_lift_valve_Crane(): v = v_lift_valve_Crane(rho=998.2, D1=0.0627, D2=0.0779, style='lift check straight') assert_allclose(v, 1.0252301935349286) v = v_lift_valve_Crane(rho=998.2, style='swing check angled') assert_allclose(v, 1.4243074011010037) ### Tees def test_K_branch_converging_Crane(): K = K_branch_converging_Crane(0.1023, 0.1023, 1135*liter/minute, 380*liter/minute, angle=90) assert_allclose(K, -0.04026, atol=.0001) K = K_branch_converging_Crane(0.1023, 0.05, 1135*liter/minute, 380*liter/minute, angle=90) assert_allclose(K, 0.9799379575823042) K = K_branch_converging_Crane(0.1023, 0.1023, 0.018917, 0.0133) assert_allclose(K, 0.2644824555594152) K = K_branch_converging_Crane(0.1023, 0.1023, 0.018917, 0.0133, angle=45) assert_allclose(K, 0.13231793346761025) def test_K_run_converging_Crane(): K = K_run_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633) assert_allclose(K, 0.32575847854551254) K = K_run_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633, angle=30) assert_allclose(K, 0.32920396892611553) K = K_run_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633, angle=60) assert_allclose(K, 0.3757218131135227) def test_K_branch_diverging_Crane(): K = K_branch_diverging_Crane(0.146, 0.146, 1515*liter/minute, 950*liter/minute, angle=45) assert_allclose(K, 0.4640, atol=0.0001) K = K_branch_diverging_Crane(0.146, 0.146, 0.02525, 0.01583, angle=90) assert_allclose(K, 1.0910792393446236) K = K_branch_diverging_Crane(0.146, 0.07, 0.02525, 0.01583, angle=45) assert_allclose(K, 1.1950718299625727) K = K_branch_diverging_Crane(0.146, 0.07, 0.01425, 0.02283, angle=45) assert_allclose(K, 3.7281052908078762) K = K_branch_diverging_Crane(0.146, 0.146, 0.02525, 0.01983, angle=90) assert_allclose(K, 1.1194688533508077) # New test cases post-errata K = K_branch_diverging_Crane(0.146, 0.146, 0.02525, 0.04183, angle=45) assert_allclose(K, 0.30418565498014477) K = K_branch_diverging_Crane(0.146, 0.116, 0.02525, 0.01983, angle=90) assert_allclose(K, 1.1456727552755597) def test_K_run_diverging_Crane(): K = K_run_diverging_Crane(0.146, 0.146, 1515*liter/minute, 950*liter/minute, angle=45) assert_allclose(K, -0.06809, atol=.00001) K = K_run_diverging_Crane(0.146, 0.146, 0.01025, 0.01983, angle=45) assert_allclose(K, 0.041523953539921235) K = K_run_diverging_Crane(0.146, 0.08, 0.02525, 0.01583, angle=90) assert_allclose(K, 0.0593965132275684) fluids-0.1.78/tests/test_safety_valve.py0000644000175000017500000000631313632560624017106 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest def test_safety_valve(): A = API520_round_size(1E-4) assert_allclose(A, 0.00012645136) assert 'E' == API526_letters[API526_A.index(API520_round_size(1E-4))] with pytest.raises(Exception): API520_round_size(1) C1, C2 = API520_C(1.35), API520_C(1.) Cs = [0.02669419967057233, 0.023945830445454768] assert_allclose([C1, C2], Cs) F2 = API520_F2(1.8, 1E6, 7E5) assert_allclose(F2, 0.8600724121105563) Kv_calcs = [API520_Kv(100), API520_Kv(4525), API520_Kv(1E5)] Kvs = [0.6157445891444229, 0.9639390032437682, 0.9973949303006829] assert_allclose(Kv_calcs, Kvs) KN = API520_N(1774700) assert_allclose(KN, 0.9490406958152466) with pytest.raises(Exception): API520_SH(593+273.15, 21E6) with pytest.raises(Exception): API520_SH(1000, 1066E3) # Test under 15 psig sat case assert API520_SH(320, 5E4) == 1 from fluids.safety_valve import _KSH_Pa, _KSH_tempKs KSH_tot = sum([API520_SH(T, P) for P in _KSH_Pa[:-1] for T in _KSH_tempKs]) assert_allclose(229.93, KSH_tot) KW = [API520_W(1E6, 3E5), API520_W(1E6, 1E5)] assert_allclose(KW, [0.9511471848008564, 1]) B_calc = [API520_B(1E6, 3E5), API520_B(1E6, 5E5), API520_B(1E6, 5E5, overpressure=.16), API520_B(1E6, 5E5, overpressure=.21)] Bs = [1, 0.7929945420944432, 0.94825439189912, 1] assert_allclose(B_calc, Bs) with pytest.raises(Exception): API520_B(1E6, 5E5, overpressure=.17) with pytest.raises(Exception): API520_B(1E6, 7E5, overpressure=.16) A1 = API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, Kb=1, Kc=1) A2 = API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, P2=532E3, Kd=0.975, Kb=1, Kc=1) As = [0.0036990460646834414, 0.004248358775943481] assert_allclose([A1, A2], As) A = API520_A_steam(m=69615/3600., T=592.5, P1=12236E3, Kd=0.975, Kb=1, Kc=1) assert_allclose(A, 0.0011034712423692733) fluids-0.1.78/tests/test_packed_tower.py0000644000175000017500000000670413632560624017071 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest def test_packed_tower(): dP = dP_demister_dry_Setekleiv_Svendsen(S=250, voidage=.983, vs=1.2, rho=10, mu=3E-5, L=1) assert_allclose(dP, 320.3280788941329) dP = dP_demister_dry_Setekleiv_Svendsen_lit(S=250, voidage=.983, vs=1.2, rho=10, mu=3E-5, L=1) assert_allclose(dP, 209.083848658307) dP = voidage_experimental(m=126, rho=8000, D=1, H=1) assert_allclose(dP, 0.9799464771704212) S = specific_area_mesh(voidage=.934, d=3e-4) assert_allclose(S, 879.9999999999994) def test_Stichlmair(): dP_dry = Stichlmair_dry(Vg=0.4, rhog=5., mug=5E-5, voidage=0.68, specific_area=260., C1=32., C2=7, C3=1) assert_allclose(dP_dry, 236.80904286559885) dP_wet = Stichlmair_wet(Vg=0.4, Vl = 5E-3, rhog=5., rhol=1200., mug=5E-5, voidage=0.68, specific_area=260., C1=32., C2=7., C3=1.) assert_allclose(dP_wet, 539.8768237253518) Vg = Stichlmair_flood(Vl = 5E-3, rhog=5., rhol=1200., mug=5E-5, voidage=0.68, specific_area=260., C1=32., C2=7., C3=1.) assert_allclose(Vg, 0.6394323542687361) def test_dP_demister_wet_ElDessouky(): # Point from their figure 8 rho = 176.35 V = 6. dw = 0.32 dP_orig = 3.88178*rho**0.375798*V**0.81317*dw**-1.56114147 # 689.4685604448499, compares with maybe 690 Pa/m from figure voidage = 1-rho/7999. dP = dP_demister_wet_ElDessouky(V, voidage, dw/1000.) assert_allclose(dP_orig, dP) assert_allclose(dP, 689.4685604448499) # Test length multiplier assert_allclose(dP*10, dP_demister_wet_ElDessouky(V, voidage, dw/1000., 10)) def test_separation_demister_ElDessouky(): # Point from their figure 6 dw = 0.2 rho = 208.16 d_p = 5 V = 1.35 eta1 = 17.5047*dw**-0.28264*rho**0.099625*V**0.106878*d_p**0.383197 eta1 /=100. # Convert to a 0-1 basis. voidage = 1-rho/7999. eta = separation_demister_ElDessouky(V, voidage, dw/1000., d_p/1000.) assert_allclose(eta1, eta) assert_allclose(eta, 0.8983693041263305) assert 1 == separation_demister_ElDessouky(1.35, 0.92, 0.0002, 0.005) def test_Robbins(): dP = Robbins(Fpd=24, L=12.2, G=2.03, rhol=1000., rhog=1.1853, mul=0.001, H=2) assert_allclose(dP, 619.6624593438099) fluids-0.1.78/tests/test_piping.py0000644000175000017500000000746513632560624015715 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from numpy.testing import assert_allclose import pytest def test_piping(): P1 = nearest_pipe(Di=0.021) assert_allclose(P1, (1, 0.02664, 0.0334, 0.0033799999999999998)) P2 = nearest_pipe(Do=.273, schedule='5S') assert_allclose(P2, (10, 0.26630000000000004, 0.2731, 0.0034)) ans_str = nearest_pipe(Do=0.5, schedule='80') ans_int = nearest_pipe(Do=0.5, schedule=80) ans_float = nearest_pipe(Do=0.5, schedule=80.0) ans_expect = (20, 0.45562, 0.508, 0.02619) assert_allclose(ans_str, ans_expect) assert_allclose(ans_str, ans_int) assert_allclose(ans_str, ans_float) def test_gauge(): g1s = gauge_from_t(.5, False, 'BWG'), gauge_from_t(0.005588, True) assert_allclose(g1s, (0.2, 5)) g2s = gauge_from_t(0.5165, False, 'AWG'), gauge_from_t(0.00462026, True, 'AWG') assert_allclose(g2s, (0.2, 5)) g3s = gauge_from_t(.4305, False, 'SWG'), gauge_from_t(0.0052578, True, 'SWG') assert_allclose(g3s, (0.2, 5)) g4s = gauge_from_t(.005, False, 'MWG'), gauge_from_t(0.0003556, True, 'MWG') assert_allclose(g4s, (0.2, 5)) g5s = gauge_from_t(.432, False, 'BSWG'), gauge_from_t(0.0053848, True, 'BSWG') assert_allclose(g5s, (0.2, 5)) g6s = gauge_from_t(0.227, False, 'SSWG'), gauge_from_t(0.0051816, True, 'SSWG') assert_allclose(g6s, (1, 5)) with pytest.raises(Exception): gauge_from_t(.5, False, 'FAIL') # Not in schedule with pytest.raises(Exception): gauge_from_t(0.02) # Too large g1 = gauge_from_t(0.002) # not in index; gauge 14, 2 mm g2 = gauge_from_t(0.00185) # not in index, gauge 15, within tol (10% default) # Limits between them are 0.0018288 and 0.0021082 m. g3 = gauge_from_t(0.00002) assert_allclose([g1, g2, g3], [14, 15, 0.004]) t1s = t_from_gauge(.2, False, 'BWG'), t_from_gauge(5, True) assert_allclose(t1s, (0.5, 0.005588)) t2s = t_from_gauge(.2, False, 'AWG'), t_from_gauge(5, True, 'AWG') assert_allclose(t2s, (0.5165, 0.00462026)) t3s = t_from_gauge(.2, False, 'SWG'), t_from_gauge(5, True, 'SWG') assert_allclose(t3s, (0.4305, 0.0052578)) t4s = t_from_gauge(.2, False, 'MWG'), t_from_gauge(5, True, 'MWG') assert_allclose(t4s, (0.005, 0.0003556)) t5s = t_from_gauge(.2, False, 'BSWG'), t_from_gauge(5, True, 'BSWG') assert_allclose(t5s, (0.432, 0.0053848)) t6s = t_from_gauge(1, False, 'SSWG'), t_from_gauge(5, True, 'SSWG') assert_allclose(t6s, (0.227, 0.0051816)) with pytest.raises(Exception): t_from_gauge(17.5, schedule='FAIL') with pytest.raises(Exception): t_from_gauge(17.5, schedule='MWG') fluids-0.1.78/tests/test_pump.py0000644000175000017500000001647213632560624015406 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest from scipy.constants import hp def test_Corripio_pump_efficiency(): eta = Corripio_pump_efficiency(461./15850.323) assert_allclose(eta, 0.7058888670951621) def test_Corripio_motor_efficiency(): eta = Corripio_motor_efficiency(137*745.7) assert_allclose(eta, 0.9128920875679222) def test_VFD_efficiency(): eta = VFD_efficiency(10*hp) assert_allclose(eta, 0.96) eta = VFD_efficiency(100*hp, load=0.5) assert_allclose(eta, 0.96) # Lower bound, 3 hp; upper bound, 400 hp; 0.016 load bound etas = VFD_efficiency(1*hp), VFD_efficiency(500*hp), VFD_efficiency(8*hp, load=0.01) assert_allclose(etas, [0.94, 0.97, 0.386]) hp_sum = sum(nema_sizes_hp) assert_allclose(hp_sum, 3356.333333333333) W_sum = sum(nema_sizes) assert_allclose(W_sum, 2502817.33565396) def test_motor_round_size(): sizes = [motor_round_size(i) for i in [.1*hp, .25*hp, 1E5, 3E5]] sizes_calc = [186.42496789556753, 186.42496789556753, 111854.98073734052, 335564.94221202156] assert_allclose(sizes, sizes_calc) with pytest.raises(Exception): motor_round_size(1E100) def test_CSA_motor_efficiency(): nema_high_P_calcs = [CSA_motor_efficiency(k*hp, high_efficiency=True, closed=i, poles=j) for i in [True, False] for j in [2, 4, 6] for k in nema_high_P] nema_high_Ps = [0.77, 0.84, 0.855, 0.865, 0.885, 0.885, 0.885, 0.895, 0.902, 0.91, 0.91, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.941, 0.95, 0.95, 0.954, 0.954, 0.855, 0.865, 0.865, 0.895, 0.895, 0.895, 0.895, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.941, 0.945, 0.95, 0.954, 0.954, 0.954, 0.958, 0.962, 0.962, 0.825, 0.875, 0.885, 0.895, 0.895, 0.895, 0.895, 0.91, 0.91, 0.917, 0.917, 0.93, 0.93, 0.941, 0.941, 0.945, 0.945, 0.95, 0.95, 0.958, 0.958, 0.958, 0.77, 0.84, 0.855, 0.855, 0.865, 0.865, 0.865, 0.885, 0.895, 0.902, 0.91, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.936, 0.941, 0.941, 0.95, 0.95, 0.855, 0.865, 0.865, 0.895, 0.895, 0.895, 0.895, 0.91, 0.917, 0.93, 0.93, 0.936, 0.941, 0.941, 0.945, 0.95, 0.95, 0.954, 0.954, 0.958, 0.958, 0.958, 0.825, 0.865, 0.875, 0.885, 0.895, 0.895, 0.895, 0.902, 0.917, 0.917, 0.924, 0.93, 0.936, 0.941, 0.941, 0.945, 0.945, 0.95, 0.95, 0.954, 0.954, 0.954] assert_allclose(nema_high_P_calcs, nema_high_Ps) nema_min_P_calcs = [CSA_motor_efficiency(k*hp, high_efficiency=False, closed=i, poles=j) for i in [True, False] for j in [2, 4, 6, 8] for k in nema_min_P] nema_min_Ps = [0.755, 0.825, 0.84, 0.855, 0.855, 0.875, 0.875, 0.885, 0.895, 0.902, 0.902, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.945, 0.945, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.954, 0.954, 0.825, 0.84, 0.84, 0.875, 0.875, 0.875, 0.875, 0.895, 0.895, 0.91, 0.91, 0.924, 0.924, 0.93, 0.93, 0.936, 0.941, 0.945, 0.945, 0.95, 0.95, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.958, 0.8, 0.855, 0.865, 0.875, 0.875, 0.875, 0.875, 0.895, 0.895, 0.902, 0.902, 0.917, 0.917, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.74, 0.77, 0.825, 0.84, 0.84, 0.855, 0.855, 0.855, 0.885, 0.885, 0.895, 0.895, 0.91, 0.91, 0.917, 0.917, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.945, 0.945, 0.945, 0.945, 0.945, 0.945, 0.755, 0.825, 0.84, 0.84, 0.84, 0.855, 0.855, 0.875, 0.885, 0.895, 0.902, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.93, 0.936, 0.936, 0.945, 0.945, 0.945, 0.95, 0.95, 0.954, 0.958, 0.958, 0.825, 0.84, 0.84, 0.865, 0.865, 0.875, 0.875, 0.885, 0.895, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.941, 0.941, 0.945, 0.95, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.958, 0.958, 0.8, 0.84, 0.855, 0.865, 0.865, 0.875, 0.875, 0.885, 0.902, 0.902, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.945, 0.945, 0.945, 0.954, 0.954, 0.954, 0.954, 0.954, 0.954, 0.74, 0.755, 0.855, 0.865, 0.865, 0.875, 0.875, 0.885, 0.895, 0.895, 0.902, 0.902, 0.91, 0.91, 0.917, 0.924, 0.936, 0.936, 0.936, 0.936, 0.936, 0.936, 0.945, 0.945, 0.945, 0.945, 0.945, 0.945] def test_motor_efficiency_underloaded(): full_efficiencies = [motor_efficiency_underloaded(P*hp, .99) for P in (0.5, 2.5, 7, 12, 42, 90)] assert_allclose(full_efficiencies, [1, 1, 1, 1, 1, 1]) low_efficiencies = [motor_efficiency_underloaded(P*hp, .25) for P in (0.5, 2.5, 7, 12, 42, 90)] low_ans = [0.6761088414400706, 0.7581996772085579, 0.8679397648030529, 0.9163243775499996, 0.9522559064662419, 0.9798906308690559] assert_allclose(low_efficiencies, low_ans) def test_specific_speed(): nS = specific_speed(0.0402, 100, 3550) assert_allclose(nS, 22.50823182748925) def test_specific_diameter(): Ds = specific_diameter(Q=0.1, H=10., D=0.1) assert_allclose(Ds, 0.5623413251903491) def test_speed_synchronous(): s1, s2 = speed_synchronous(50, poles=12), speed_synchronous(60, phase=1) assert_allclose([s1, s2], [1500, 3600]) def test_current_ideal(): I = current_ideal(V=120, P=1E4, PF=1, phase=1) assert_allclose(I, 83.33333333333333) I = current_ideal(V=208, P=1E4, PF=1, phase=3) assert_allclose(I, 27.757224480270473) I = current_ideal(V=208, P=1E4, PF=0.95, phase=3) assert_allclose(I,29.218131031863656) with pytest.raises(Exception): current_ideal(V=208, P=1E4, PF=0.95, phase=5) def test_power_sources(): assert sum(map(ord, plug_types)) == 1001 assert len(plug_types) == 14 assert sum(voltages_1_phase_residential) == 1262 assert len(voltages_1_phase_residential) == 8 assert sum(voltages_3_phase) == 3800 assert len(voltages_3_phase) == 13 assert frequencies == [50, 60] assert sum([i.voltage for i in residential_power.values()]) == 42071 assert sum([i.freq for i in residential_power.values()]) == 10530 assert len(residential_power) == 203 ca = residential_power['ca'] assert (ca.voltage, ca.freq, ca.plugs) == (120, 60, ('A', 'B')) assert sum([sum(i.voltage) for i in industrial_power.values()]) == 82144 assert sum([i.freq for i in industrial_power.values()]) == 10210 assert len(industrial_power) == 197 ca = industrial_power['ca'] assert (ca.voltage, ca.freq) == ((120, 208, 240, 480, 347, 600), 60) fluids-0.1.78/tests/nrlmsise00/0000755000175000017500000000000013632560624014776 5ustar kurtkurtfluids-0.1.78/tests/nrlmsise00/known_data_longitudes.txt0000644000175000017500000010431013632560624022120 0ustar kurtkurt100.0 5.632E+11 9.289E+12 2.039E+12 5.614E-10 183.0 1027 1.326E+08 9.506E+10 2.027E+07 3.020E+05 100.0 5.641E+11 9.298E+12 2.040E+12 5.618E-10 182.6 1027 1.329E+08 9.516E+10 2.034E+07 3.001E+05 100.0 5.650E+11 9.306E+12 2.041E+12 5.623E-10 182.3 1027 1.332E+08 9.525E+10 2.040E+07 2.981E+05 100.0 5.659E+11 9.314E+12 2.042E+12 5.627E-10 182.0 1027 1.335E+08 9.534E+10 2.046E+07 2.961E+05 100.0 5.668E+11 9.321E+12 2.042E+12 5.631E-10 181.7 1027 1.338E+08 9.543E+10 2.052E+07 2.940E+05 100.0 5.677E+11 9.328E+12 2.043E+12 5.635E-10 181.4 1027 1.341E+08 9.550E+10 2.058E+07 2.920E+05 100.0 5.687E+11 9.335E+12 2.043E+12 5.639E-10 181.1 1027 1.344E+08 9.557E+10 2.064E+07 2.899E+05 100.0 5.696E+11 9.340E+12 2.044E+12 5.642E-10 180.8 1027 1.347E+08 9.564E+10 2.070E+07 2.879E+05 100.0 5.706E+11 9.346E+12 2.044E+12 5.645E-10 180.5 1027 1.349E+08 9.570E+10 2.076E+07 2.858E+05 100.0 5.715E+11 9.350E+12 2.044E+12 5.647E-10 180.2 1027 1.352E+08 9.575E+10 2.081E+07 2.837E+05 100.0 5.725E+11 9.355E+12 2.044E+12 5.649E-10 180.0 1027 1.354E+08 9.580E+10 2.086E+07 2.816E+05 100.0 5.735E+11 9.358E+12 2.043E+12 5.651E-10 179.7 1027 1.357E+08 9.584E+10 2.091E+07 2.795E+05 100.0 5.744E+11 9.361E+12 2.043E+12 5.653E-10 179.4 1027 1.359E+08 9.587E+10 2.096E+07 2.774E+05 100.0 5.754E+11 9.364E+12 2.043E+12 5.654E-10 179.2 1027 1.362E+08 9.590E+10 2.101E+07 2.752E+05 100.0 5.764E+11 9.365E+12 2.042E+12 5.655E-10 179.0 1027 1.364E+08 9.592E+10 2.105E+07 2.731E+05 100.0 5.774E+11 9.367E+12 2.041E+12 5.655E-10 178.7 1027 1.366E+08 9.594E+10 2.110E+07 2.710E+05 100.0 5.785E+11 9.367E+12 2.041E+12 5.655E-10 178.5 1027 1.369E+08 9.595E+10 2.114E+07 2.689E+05 100.0 5.795E+11 9.367E+12 2.040E+12 5.655E-10 178.3 1027 1.371E+08 9.595E+10 2.118E+07 2.667E+05 100.0 5.805E+11 9.367E+12 2.039E+12 5.655E-10 178.1 1027 1.373E+08 9.594E+10 2.121E+07 2.646E+05 100.0 5.815E+11 9.366E+12 2.038E+12 5.654E-10 177.9 1027 1.375E+08 9.593E+10 2.125E+07 2.625E+05 100.0 5.826E+11 9.364E+12 2.036E+12 5.652E-10 177.7 1027 1.377E+08 9.591E+10 2.128E+07 2.604E+05 100.0 5.836E+11 9.362E+12 2.035E+12 5.651E-10 177.5 1027 1.379E+08 9.588E+10 2.131E+07 2.583E+05 100.0 5.847E+11 9.359E+12 2.033E+12 5.649E-10 177.4 1027 1.380E+08 9.585E+10 2.134E+07 2.562E+05 100.0 5.858E+11 9.355E+12 2.032E+12 5.647E-10 177.2 1027 1.382E+08 9.581E+10 2.136E+07 2.542E+05 100.0 5.868E+11 9.351E+12 2.030E+12 5.644E-10 177.1 1027 1.384E+08 9.576E+10 2.138E+07 2.521E+05 100.0 5.879E+11 9.346E+12 2.028E+12 5.641E-10 177.0 1027 1.385E+08 9.571E+10 2.141E+07 2.501E+05 100.0 5.890E+11 9.341E+12 2.026E+12 5.638E-10 176.8 1027 1.387E+08 9.565E+10 2.142E+07 2.480E+05 100.0 5.901E+11 9.335E+12 2.024E+12 5.634E-10 176.7 1027 1.388E+08 9.558E+10 2.144E+07 2.460E+05 100.0 5.912E+11 9.328E+12 2.021E+12 5.630E-10 176.6 1027 1.389E+08 9.551E+10 2.145E+07 2.440E+05 100.0 5.923E+11 9.321E+12 2.019E+12 5.625E-10 176.5 1027 1.390E+08 9.542E+10 2.146E+07 2.421E+05 100.0 5.934E+11 9.313E+12 2.017E+12 5.621E-10 176.5 1027 1.392E+08 9.533E+10 2.147E+07 2.401E+05 100.0 5.945E+11 9.304E+12 2.014E+12 5.615E-10 176.4 1027 1.393E+08 9.524E+10 2.148E+07 2.382E+05 100.0 5.956E+11 9.295E+12 2.011E+12 5.610E-10 176.3 1027 1.394E+08 9.514E+10 2.148E+07 2.363E+05 100.0 5.968E+11 9.285E+12 2.008E+12 5.604E-10 176.3 1027 1.395E+08 9.502E+10 2.148E+07 2.345E+05 100.0 5.979E+11 9.274E+12 2.005E+12 5.598E-10 176.3 1027 1.395E+08 9.491E+10 2.148E+07 2.327E+05 100.0 5.990E+11 9.263E+12 2.002E+12 5.591E-10 176.2 1027 1.396E+08 9.478E+10 2.148E+07 2.309E+05 100.0 6.002E+11 9.252E+12 1.999E+12 5.584E-10 176.2 1027 1.397E+08 9.465E+10 2.147E+07 2.291E+05 100.0 6.013E+11 9.239E+12 1.995E+12 5.577E-10 176.2 1027 1.397E+08 9.451E+10 2.146E+07 2.273E+05 100.0 6.024E+11 9.226E+12 1.992E+12 5.569E-10 176.2 1027 1.398E+08 9.437E+10 2.145E+07 2.256E+05 100.0 6.036E+11 9.213E+12 1.988E+12 5.561E-10 176.2 1027 1.398E+08 9.422E+10 2.144E+07 2.240E+05 100.0 6.047E+11 9.198E+12 1.985E+12 5.553E-10 176.3 1027 1.398E+08 9.406E+10 2.142E+07 2.223E+05 100.0 6.058E+11 9.184E+12 1.981E+12 5.544E-10 176.3 1027 1.398E+08 9.389E+10 2.141E+07 2.207E+05 100.0 6.070E+11 9.168E+12 1.977E+12 5.535E-10 176.3 1027 1.399E+08 9.372E+10 2.138E+07 2.192E+05 100.0 6.081E+11 9.152E+12 1.973E+12 5.525E-10 176.4 1027 1.399E+08 9.354E+10 2.136E+07 2.177E+05 100.0 6.093E+11 9.136E+12 1.969E+12 5.516E-10 176.5 1027 1.398E+08 9.336E+10 2.134E+07 2.162E+05 100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05 100.0 6.115E+11 9.101E+12 1.960E+12 5.495E-10 176.6 1027 1.398E+08 9.297E+10 2.128E+07 2.133E+05 100.0 6.126E+11 9.082E+12 1.955E+12 5.484E-10 176.7 1027 1.398E+08 9.277E+10 2.125E+07 2.120E+05 100.0 6.138E+11 9.063E+12 1.951E+12 5.473E-10 176.8 1027 1.397E+08 9.256E+10 2.121E+07 2.106E+05 100.0 6.149E+11 9.044E+12 1.946E+12 5.462E-10 176.9 1027 1.397E+08 9.234E+10 2.118E+07 2.094E+05 100.0 6.160E+11 9.024E+12 1.941E+12 5.450E-10 177.0 1027 1.396E+08 9.212E+10 2.114E+07 2.081E+05 100.0 6.171E+11 9.003E+12 1.936E+12 5.438E-10 177.1 1027 1.395E+08 9.189E+10 2.110E+07 2.069E+05 100.0 6.182E+11 8.982E+12 1.931E+12 5.426E-10 177.2 1027 1.394E+08 9.166E+10 2.106E+07 2.058E+05 100.0 6.193E+11 8.961E+12 1.926E+12 5.413E-10 177.3 1027 1.394E+08 9.142E+10 2.102E+07 2.047E+05 100.0 6.203E+11 8.939E+12 1.921E+12 5.401E-10 177.4 1027 1.393E+08 9.118E+10 2.097E+07 2.036E+05 100.0 6.214E+11 8.916E+12 1.916E+12 5.387E-10 177.6 1027 1.391E+08 9.093E+10 2.092E+07 2.026E+05 100.0 6.224E+11 8.893E+12 1.911E+12 5.374E-10 177.7 1027 1.390E+08 9.068E+10 2.087E+07 2.017E+05 100.0 6.235E+11 8.870E+12 1.905E+12 5.360E-10 177.8 1027 1.389E+08 9.042E+10 2.082E+07 2.008E+05 100.0 6.245E+11 8.846E+12 1.900E+12 5.346E-10 178.0 1027 1.388E+08 9.016E+10 2.077E+07 1.999E+05 100.0 6.255E+11 8.821E+12 1.894E+12 5.332E-10 178.1 1027 1.386E+08 8.989E+10 2.072E+07 1.991E+05 100.0 6.265E+11 8.796E+12 1.889E+12 5.318E-10 178.3 1027 1.385E+08 8.962E+10 2.066E+07 1.983E+05 100.0 6.275E+11 8.771E+12 1.883E+12 5.303E-10 178.4 1027 1.383E+08 8.935E+10 2.061E+07 1.976E+05 100.0 6.284E+11 8.746E+12 1.877E+12 5.288E-10 178.6 1027 1.381E+08 8.907E+10 2.055E+07 1.969E+05 100.0 6.293E+11 8.720E+12 1.872E+12 5.273E-10 178.7 1027 1.380E+08 8.879E+10 2.049E+07 1.963E+05 100.0 6.302E+11 8.694E+12 1.866E+12 5.258E-10 178.9 1027 1.378E+08 8.850E+10 2.043E+07 1.957E+05 100.0 6.311E+11 8.667E+12 1.860E+12 5.243E-10 179.0 1027 1.376E+08 8.822E+10 2.037E+07 1.951E+05 100.0 6.320E+11 8.640E+12 1.854E+12 5.227E-10 179.2 1027 1.374E+08 8.793E+10 2.031E+07 1.947E+05 100.0 6.328E+11 8.613E+12 1.848E+12 5.212E-10 179.3 1027 1.372E+08 8.763E+10 2.024E+07 1.942E+05 100.0 6.336E+11 8.586E+12 1.842E+12 5.196E-10 179.5 1027 1.370E+08 8.734E+10 2.018E+07 1.939E+05 100.0 6.344E+11 8.559E+12 1.836E+12 5.180E-10 179.6 1027 1.367E+08 8.704E+10 2.011E+07 1.935E+05 100.0 6.352E+11 8.531E+12 1.830E+12 5.164E-10 179.8 1027 1.365E+08 8.674E+10 2.005E+07 1.932E+05 100.0 6.359E+11 8.503E+12 1.824E+12 5.148E-10 179.9 1027 1.363E+08 8.644E+10 1.998E+07 1.930E+05 100.0 6.366E+11 8.475E+12 1.818E+12 5.131E-10 180.0 1027 1.360E+08 8.614E+10 1.991E+07 1.928E+05 100.0 6.373E+11 8.447E+12 1.812E+12 5.115E-10 180.2 1027 1.358E+08 8.584E+10 1.985E+07 1.927E+05 100.0 6.379E+11 8.418E+12 1.806E+12 5.099E-10 180.3 1027 1.355E+08 8.554E+10 1.978E+07 1.926E+05 100.0 6.385E+11 8.390E+12 1.800E+12 5.082E-10 180.4 1027 1.353E+08 8.523E+10 1.971E+07 1.926E+05 100.0 6.391E+11 8.362E+12 1.794E+12 5.066E-10 180.6 1027 1.350E+08 8.493E+10 1.964E+07 1.926E+05 100.0 6.396E+11 8.333E+12 1.788E+12 5.049E-10 180.7 1027 1.347E+08 8.463E+10 1.957E+07 1.927E+05 100.0 6.401E+11 8.305E+12 1.782E+12 5.033E-10 180.8 1027 1.344E+08 8.433E+10 1.950E+07 1.928E+05 100.0 6.406E+11 8.277E+12 1.776E+12 5.017E-10 180.9 1027 1.342E+08 8.403E+10 1.944E+07 1.930E+05 100.0 6.410E+11 8.248E+12 1.770E+12 5.000E-10 181.1 1027 1.339E+08 8.373E+10 1.937E+07 1.932E+05 100.0 6.414E+11 8.220E+12 1.765E+12 4.984E-10 181.2 1027 1.336E+08 8.343E+10 1.930E+07 1.935E+05 100.0 6.418E+11 8.192E+12 1.759E+12 4.968E-10 181.3 1027 1.333E+08 8.313E+10 1.923E+07 1.938E+05 100.0 6.421E+11 8.164E+12 1.753E+12 4.951E-10 181.4 1027 1.330E+08 8.283E+10 1.916E+07 1.942E+05 100.0 6.424E+11 8.136E+12 1.747E+12 4.935E-10 181.5 1027 1.327E+08 8.254E+10 1.909E+07 1.946E+05 100.0 6.426E+11 8.109E+12 1.742E+12 4.919E-10 181.5 1027 1.324E+08 8.225E+10 1.902E+07 1.951E+05 100.0 6.428E+11 8.082E+12 1.736E+12 4.904E-10 181.6 1027 1.321E+08 8.196E+10 1.895E+07 1.956E+05 100.0 6.430E+11 8.054E+12 1.731E+12 4.888E-10 181.7 1027 1.318E+08 8.168E+10 1.889E+07 1.962E+05 100.0 6.431E+11 8.028E+12 1.725E+12 4.873E-10 181.8 1027 1.315E+08 8.140E+10 1.882E+07 1.968E+05 100.0 6.432E+11 8.001E+12 1.720E+12 4.857E-10 181.8 1027 1.311E+08 8.112E+10 1.875E+07 1.975E+05 100.0 6.432E+11 7.975E+12 1.715E+12 4.842E-10 181.9 1027 1.308E+08 8.085E+10 1.869E+07 1.982E+05 100.0 6.432E+11 7.949E+12 1.710E+12 4.827E-10 181.9 1027 1.305E+08 8.058E+10 1.862E+07 1.990E+05 100.0 6.431E+11 7.924E+12 1.704E+12 4.813E-10 182.0 1027 1.302E+08 8.032E+10 1.856E+07 1.998E+05 100.0 6.431E+11 7.899E+12 1.700E+12 4.798E-10 182.0 1027 1.299E+08 8.006E+10 1.849E+07 2.007E+05 100.0 6.429E+11 7.875E+12 1.695E+12 4.784E-10 182.1 1027 1.296E+08 7.981E+10 1.843E+07 2.016E+05 100.0 6.428E+11 7.851E+12 1.690E+12 4.770E-10 182.1 1027 1.293E+08 7.956E+10 1.837E+07 2.026E+05 100.0 6.426E+11 7.827E+12 1.685E+12 4.757E-10 182.1 1027 1.290E+08 7.932E+10 1.831E+07 2.036E+05 100.0 6.423E+11 7.804E+12 1.681E+12 4.743E-10 182.1 1027 1.286E+08 7.908E+10 1.824E+07 2.047E+05 100.0 6.420E+11 7.782E+12 1.677E+12 4.730E-10 182.1 1027 1.283E+08 7.885E+10 1.819E+07 2.058E+05 100.0 6.417E+11 7.760E+12 1.672E+12 4.718E-10 182.1 1027 1.280E+08 7.862E+10 1.813E+07 2.070E+05 100.0 6.413E+11 7.738E+12 1.668E+12 4.705E-10 182.1 1027 1.277E+08 7.841E+10 1.807E+07 2.082E+05 100.0 6.409E+11 7.718E+12 1.664E+12 4.694E-10 182.1 1027 1.274E+08 7.820E+10 1.801E+07 2.095E+05 100.0 6.405E+11 7.698E+12 1.661E+12 4.682E-10 182.1 1027 1.271E+08 7.799E+10 1.796E+07 2.108E+05 100.0 6.400E+11 7.678E+12 1.657E+12 4.671E-10 182.1 1027 1.268E+08 7.780E+10 1.790E+07 2.122E+05 100.0 6.395E+11 7.660E+12 1.654E+12 4.660E-10 182.1 1027 1.265E+08 7.761E+10 1.785E+07 2.136E+05 100.0 6.389E+11 7.642E+12 1.650E+12 4.650E-10 182.1 1027 1.263E+08 7.743E+10 1.780E+07 2.150E+05 100.0 6.384E+11 7.625E+12 1.647E+12 4.640E-10 182.0 1027 1.260E+08 7.725E+10 1.775E+07 2.165E+05 100.0 6.377E+11 7.608E+12 1.644E+12 4.630E-10 182.0 1027 1.257E+08 7.709E+10 1.770E+07 2.181E+05 100.0 6.371E+11 7.592E+12 1.641E+12 4.621E-10 182.0 1027 1.254E+08 7.693E+10 1.765E+07 2.197E+05 100.0 6.364E+11 7.577E+12 1.639E+12 4.612E-10 181.9 1027 1.252E+08 7.678E+10 1.760E+07 2.213E+05 100.0 6.357E+11 7.563E+12 1.636E+12 4.604E-10 181.9 1027 1.249E+08 7.664E+10 1.755E+07 2.230E+05 100.0 6.350E+11 7.550E+12 1.634E+12 4.597E-10 181.9 1027 1.246E+08 7.651E+10 1.751E+07 2.247E+05 100.0 6.342E+11 7.537E+12 1.632E+12 4.589E-10 181.8 1027 1.244E+08 7.639E+10 1.747E+07 2.264E+05 100.0 6.334E+11 7.526E+12 1.630E+12 4.583E-10 181.8 1027 1.242E+08 7.628E+10 1.742E+07 2.282E+05 100.0 6.326E+11 7.515E+12 1.628E+12 4.576E-10 181.7 1027 1.239E+08 7.617E+10 1.738E+07 2.301E+05 100.0 6.317E+11 7.505E+12 1.627E+12 4.571E-10 181.7 1027 1.237E+08 7.608E+10 1.734E+07 2.319E+05 100.0 6.309E+11 7.496E+12 1.625E+12 4.566E-10 181.6 1027 1.235E+08 7.599E+10 1.731E+07 2.338E+05 100.0 6.300E+11 7.488E+12 1.624E+12 4.561E-10 181.6 1027 1.233E+08 7.592E+10 1.727E+07 2.358E+05 100.0 6.291E+11 7.481E+12 1.623E+12 4.557E-10 181.5 1027 1.231E+08 7.585E+10 1.723E+07 2.378E+05 100.0 6.282E+11 7.475E+12 1.622E+12 4.553E-10 181.4 1027 1.229E+08 7.579E+10 1.720E+07 2.398E+05 100.0 6.272E+11 7.469E+12 1.622E+12 4.550E-10 181.4 1027 1.227E+08 7.575E+10 1.717E+07 2.419E+05 100.0 6.263E+11 7.465E+12 1.622E+12 4.548E-10 181.3 1027 1.225E+08 7.571E+10 1.714E+07 2.439E+05 100.0 6.253E+11 7.461E+12 1.621E+12 4.546E-10 181.3 1027 1.223E+08 7.568E+10 1.711E+07 2.461E+05 100.0 6.243E+11 7.459E+12 1.621E+12 4.544E-10 181.2 1027 1.222E+08 7.567E+10 1.708E+07 2.482E+05 100.0 6.233E+11 7.457E+12 1.622E+12 4.543E-10 181.2 1027 1.220E+08 7.566E+10 1.705E+07 2.504E+05 100.0 6.224E+11 7.457E+12 1.622E+12 4.543E-10 181.1 1027 1.219E+08 7.567E+10 1.703E+07 2.526E+05 100.0 6.213E+11 7.457E+12 1.623E+12 4.543E-10 181.1 1027 1.218E+08 7.568E+10 1.700E+07 2.548E+05 100.0 6.203E+11 7.459E+12 1.624E+12 4.544E-10 181.0 1027 1.216E+08 7.570E+10 1.698E+07 2.571E+05 100.0 6.193E+11 7.461E+12 1.625E+12 4.546E-10 181.0 1027 1.215E+08 7.574E+10 1.696E+07 2.594E+05 100.0 6.183E+11 7.464E+12 1.626E+12 4.548E-10 180.9 1027 1.214E+08 7.578E+10 1.694E+07 2.617E+05 100.0 6.173E+11 7.469E+12 1.627E+12 4.550E-10 180.9 1027 1.213E+08 7.584E+10 1.692E+07 2.640E+05 100.0 6.163E+11 7.474E+12 1.629E+12 4.553E-10 180.8 1027 1.212E+08 7.590E+10 1.690E+07 2.663E+05 100.0 6.153E+11 7.480E+12 1.631E+12 4.557E-10 180.8 1027 1.212E+08 7.598E+10 1.689E+07 2.687E+05 100.0 6.143E+11 7.488E+12 1.633E+12 4.561E-10 180.7 1027 1.211E+08 7.606E+10 1.687E+07 2.711E+05 100.0 6.133E+11 7.496E+12 1.635E+12 4.566E-10 180.7 1027 1.211E+08 7.616E+10 1.686E+07 2.735E+05 100.0 6.123E+11 7.505E+12 1.638E+12 4.571E-10 180.7 1027 1.210E+08 7.626E+10 1.685E+07 2.759E+05 100.0 6.113E+11 7.515E+12 1.640E+12 4.577E-10 180.6 1027 1.210E+08 7.637E+10 1.684E+07 2.783E+05 100.0 6.103E+11 7.526E+12 1.643E+12 4.584E-10 180.6 1027 1.210E+08 7.650E+10 1.683E+07 2.807E+05 100.0 6.093E+11 7.538E+12 1.646E+12 4.591E-10 180.6 1027 1.209E+08 7.663E+10 1.682E+07 2.832E+05 100.0 6.084E+11 7.551E+12 1.649E+12 4.598E-10 180.6 1027 1.209E+08 7.678E+10 1.681E+07 2.856E+05 100.0 6.074E+11 7.565E+12 1.653E+12 4.606E-10 180.6 1027 1.209E+08 7.693E+10 1.681E+07 2.880E+05 100.0 6.065E+11 7.579E+12 1.656E+12 4.615E-10 180.5 1027 1.210E+08 7.709E+10 1.680E+07 2.905E+05 100.0 6.056E+11 7.595E+12 1.660E+12 4.624E-10 180.5 1027 1.210E+08 7.726E+10 1.680E+07 2.929E+05 100.0 6.047E+11 7.611E+12 1.664E+12 4.634E-10 180.5 1027 1.210E+08 7.744E+10 1.679E+07 2.954E+05 100.0 6.038E+11 7.629E+12 1.668E+12 4.644E-10 180.5 1027 1.211E+08 7.763E+10 1.679E+07 2.978E+05 100.0 6.029E+11 7.647E+12 1.672E+12 4.654E-10 180.5 1027 1.211E+08 7.783E+10 1.679E+07 3.002E+05 100.0 6.021E+11 7.666E+12 1.677E+12 4.665E-10 180.5 1027 1.212E+08 7.803E+10 1.679E+07 3.027E+05 100.0 6.013E+11 7.685E+12 1.681E+12 4.677E-10 180.5 1027 1.212E+08 7.824E+10 1.679E+07 3.051E+05 100.0 6.005E+11 7.706E+12 1.686E+12 4.689E-10 180.5 1027 1.213E+08 7.846E+10 1.679E+07 3.075E+05 100.0 5.997E+11 7.727E+12 1.691E+12 4.701E-10 180.6 1027 1.214E+08 7.869E+10 1.680E+07 3.099E+05 100.0 5.989E+11 7.749E+12 1.696E+12 4.714E-10 180.6 1027 1.215E+08 7.893E+10 1.680E+07 3.123E+05 100.0 5.982E+11 7.772E+12 1.701E+12 4.727E-10 180.6 1027 1.216E+08 7.917E+10 1.680E+07 3.146E+05 100.0 5.975E+11 7.795E+12 1.706E+12 4.741E-10 180.6 1027 1.217E+08 7.942E+10 1.681E+07 3.170E+05 100.0 5.968E+11 7.819E+12 1.711E+12 4.754E-10 180.6 1027 1.218E+08 7.967E+10 1.682E+07 3.193E+05 100.0 5.961E+11 7.843E+12 1.717E+12 4.769E-10 180.7 1027 1.220E+08 7.993E+10 1.682E+07 3.216E+05 100.0 5.954E+11 7.868E+12 1.722E+12 4.783E-10 180.7 1027 1.221E+08 8.020E+10 1.683E+07 3.239E+05 100.0 5.948E+11 7.894E+12 1.728E+12 4.798E-10 180.7 1027 1.222E+08 8.047E+10 1.684E+07 3.262E+05 100.0 5.942E+11 7.920E+12 1.733E+12 4.813E-10 180.8 1027 1.224E+08 8.075E+10 1.684E+07 3.284E+05 100.0 5.937E+11 7.946E+12 1.739E+12 4.829E-10 180.8 1027 1.225E+08 8.103E+10 1.685E+07 3.306E+05 100.0 5.931E+11 7.973E+12 1.745E+12 4.844E-10 180.8 1027 1.227E+08 8.132E+10 1.686E+07 3.328E+05 100.0 5.926E+11 8.000E+12 1.751E+12 4.860E-10 180.9 1027 1.228E+08 8.161E+10 1.687E+07 3.349E+05 100.0 5.921E+11 8.028E+12 1.757E+12 4.876E-10 180.9 1027 1.230E+08 8.190E+10 1.688E+07 3.370E+05 100.0 5.916E+11 8.056E+12 1.763E+12 4.893E-10 180.9 1027 1.231E+08 8.220E+10 1.689E+07 3.391E+05 100.0 5.911E+11 8.084E+12 1.769E+12 4.909E-10 181.0 1027 1.233E+08 8.250E+10 1.690E+07 3.411E+05 100.0 5.907E+11 8.113E+12 1.775E+12 4.926E-10 181.0 1027 1.235E+08 8.280E+10 1.691E+07 3.431E+05 100.0 5.903E+11 8.141E+12 1.781E+12 4.942E-10 181.1 1027 1.236E+08 8.310E+10 1.692E+07 3.450E+05 100.0 5.899E+11 8.170E+12 1.787E+12 4.959E-10 181.1 1027 1.238E+08 8.340E+10 1.693E+07 3.469E+05 100.0 5.895E+11 8.199E+12 1.793E+12 4.976E-10 181.1 1027 1.240E+08 8.371E+10 1.694E+07 3.488E+05 100.0 5.892E+11 8.228E+12 1.800E+12 4.993E-10 181.2 1027 1.242E+08 8.401E+10 1.695E+07 3.506E+05 100.0 5.889E+11 8.257E+12 1.806E+12 5.009E-10 181.2 1027 1.243E+08 8.432E+10 1.696E+07 3.524E+05 100.0 5.886E+11 8.286E+12 1.812E+12 5.026E-10 181.2 1027 1.245E+08 8.462E+10 1.697E+07 3.541E+05 100.0 5.883E+11 8.314E+12 1.818E+12 5.043E-10 181.3 1027 1.247E+08 8.492E+10 1.698E+07 3.558E+05 100.0 5.881E+11 8.343E+12 1.824E+12 5.059E-10 181.3 1027 1.248E+08 8.522E+10 1.699E+07 3.575E+05 100.0 5.878E+11 8.371E+12 1.830E+12 5.076E-10 181.3 1027 1.250E+08 8.552E+10 1.700E+07 3.591E+05 100.0 5.876E+11 8.400E+12 1.836E+12 5.092E-10 181.4 1027 1.252E+08 8.582E+10 1.701E+07 3.606E+05 100.0 5.874E+11 8.428E+12 1.841E+12 5.109E-10 181.4 1027 1.253E+08 8.611E+10 1.702E+07 3.621E+05 100.0 5.872E+11 8.455E+12 1.847E+12 5.125E-10 181.4 1027 1.255E+08 8.641E+10 1.703E+07 3.636E+05 100.0 5.870E+11 8.483E+12 1.853E+12 5.141E-10 181.4 1027 1.257E+08 8.669E+10 1.703E+07 3.650E+05 100.0 5.869E+11 8.510E+12 1.858E+12 5.156E-10 181.4 1027 1.258E+08 8.698E+10 1.704E+07 3.663E+05 100.0 5.867E+11 8.536E+12 1.864E+12 5.172E-10 181.4 1027 1.260E+08 8.725E+10 1.705E+07 3.676E+05 100.0 5.866E+11 8.562E+12 1.869E+12 5.187E-10 181.4 1027 1.261E+08 8.753E+10 1.706E+07 3.688E+05 100.0 5.865E+11 8.588E+12 1.874E+12 5.201E-10 181.4 1027 1.263E+08 8.779E+10 1.706E+07 3.700E+05 100.0 5.864E+11 8.613E+12 1.880E+12 5.216E-10 181.4 1027 1.264E+08 8.805E+10 1.707E+07 3.712E+05 100.0 5.863E+11 8.637E+12 1.884E+12 5.230E-10 181.4 1027 1.265E+08 8.831E+10 1.707E+07 3.723E+05 100.0 5.862E+11 8.661E+12 1.889E+12 5.244E-10 181.4 1027 1.266E+08 8.856E+10 1.708E+07 3.733E+05 100.0 5.862E+11 8.684E+12 1.894E+12 5.257E-10 181.4 1027 1.268E+08 8.880E+10 1.708E+07 3.743E+05 100.0 5.861E+11 8.706E+12 1.898E+12 5.270E-10 181.4 1027 1.269E+08 8.903E+10 1.709E+07 3.752E+05 100.0 5.861E+11 8.728E+12 1.903E+12 5.282E-10 181.4 1027 1.270E+08 8.926E+10 1.709E+07 3.761E+05 100.0 5.860E+11 8.749E+12 1.907E+12 5.294E-10 181.3 1027 1.270E+08 8.947E+10 1.709E+07 3.769E+05 100.0 5.860E+11 8.769E+12 1.911E+12 5.306E-10 181.3 1027 1.271E+08 8.968E+10 1.709E+07 3.777E+05 100.0 5.859E+11 8.788E+12 1.915E+12 5.317E-10 181.2 1027 1.272E+08 8.988E+10 1.709E+07 3.785E+05 100.0 5.859E+11 8.806E+12 1.919E+12 5.328E-10 181.2 1027 1.273E+08 9.007E+10 1.709E+07 3.792E+05 100.0 5.859E+11 8.823E+12 1.922E+12 5.338E-10 181.1 1027 1.273E+08 9.026E+10 1.709E+07 3.798E+05 100.0 5.859E+11 8.840E+12 1.925E+12 5.347E-10 181.1 1027 1.274E+08 9.043E+10 1.709E+07 3.804E+05 100.0 5.858E+11 8.855E+12 1.928E+12 5.356E-10 181.0 1027 1.274E+08 9.059E+10 1.709E+07 3.809E+05 100.0 5.858E+11 8.870E+12 1.931E+12 5.365E-10 180.9 1027 1.274E+08 9.074E+10 1.708E+07 3.814E+05 100.0 5.858E+11 8.884E+12 1.934E+12 5.372E-10 180.9 1027 1.274E+08 9.088E+10 1.708E+07 3.819E+05 100.0 5.858E+11 8.896E+12 1.936E+12 5.380E-10 180.8 1027 1.274E+08 9.101E+10 1.707E+07 3.823E+05 100.0 5.857E+11 8.908E+12 1.939E+12 5.386E-10 180.7 1027 1.274E+08 9.113E+10 1.707E+07 3.827E+05 100.0 5.857E+11 8.918E+12 1.941E+12 5.392E-10 180.6 1027 1.274E+08 9.124E+10 1.706E+07 3.830E+05 100.0 5.857E+11 8.928E+12 1.943E+12 5.398E-10 180.5 1027 1.274E+08 9.134E+10 1.706E+07 3.833E+05 100.0 5.856E+11 8.937E+12 1.944E+12 5.403E-10 180.4 1027 1.274E+08 9.143E+10 1.705E+07 3.836E+05 100.0 5.856E+11 8.944E+12 1.946E+12 5.407E-10 180.3 1027 1.273E+08 9.151E+10 1.704E+07 3.838E+05 100.0 5.855E+11 8.951E+12 1.947E+12 5.411E-10 180.2 1027 1.272E+08 9.158E+10 1.703E+07 3.839E+05 100.0 5.855E+11 8.956E+12 1.948E+12 5.414E-10 180.0 1027 1.272E+08 9.163E+10 1.702E+07 3.841E+05 100.0 5.854E+11 8.960E+12 1.949E+12 5.416E-10 179.9 1027 1.271E+08 9.168E+10 1.701E+07 3.842E+05 100.0 5.854E+11 8.964E+12 1.950E+12 5.418E-10 179.8 1027 1.270E+08 9.171E+10 1.700E+07 3.843E+05 100.0 5.853E+11 8.966E+12 1.950E+12 5.420E-10 179.7 1027 1.269E+08 9.174E+10 1.698E+07 3.843E+05 100.0 5.852E+11 8.967E+12 1.950E+12 5.421E-10 179.5 1027 1.268E+08 9.175E+10 1.697E+07 3.843E+05 100.0 5.851E+11 8.968E+12 1.951E+12 5.421E-10 179.4 1027 1.267E+08 9.176E+10 1.696E+07 3.843E+05 100.0 5.850E+11 8.967E+12 1.950E+12 5.420E-10 179.2 1027 1.265E+08 9.175E+10 1.694E+07 3.842E+05 100.0 5.848E+11 8.966E+12 1.950E+12 5.419E-10 179.1 1027 1.264E+08 9.173E+10 1.693E+07 3.842E+05 100.0 5.847E+11 8.963E+12 1.950E+12 5.418E-10 179.0 1027 1.262E+08 9.170E+10 1.691E+07 3.840E+05 100.0 5.846E+11 8.960E+12 1.949E+12 5.416E-10 178.8 1027 1.261E+08 9.167E+10 1.690E+07 3.839E+05 100.0 5.844E+11 8.955E+12 1.948E+12 5.413E-10 178.7 1027 1.259E+08 9.162E+10 1.688E+07 3.838E+05 100.0 5.842E+11 8.950E+12 1.947E+12 5.410E-10 178.5 1027 1.257E+08 9.157E+10 1.686E+07 3.836E+05 100.0 5.840E+11 8.944E+12 1.946E+12 5.407E-10 178.3 1027 1.255E+08 9.150E+10 1.685E+07 3.834E+05 100.0 5.838E+11 8.937E+12 1.945E+12 5.403E-10 178.2 1027 1.253E+08 9.143E+10 1.683E+07 3.832E+05 100.0 5.836E+11 8.929E+12 1.943E+12 5.398E-10 178.0 1027 1.251E+08 9.135E+10 1.681E+07 3.830E+05 100.0 5.834E+11 8.921E+12 1.942E+12 5.393E-10 177.9 1027 1.249E+08 9.126E+10 1.679E+07 3.827E+05 100.0 5.831E+11 8.911E+12 1.940E+12 5.388E-10 177.7 1027 1.247E+08 9.116E+10 1.677E+07 3.824E+05 100.0 5.829E+11 8.901E+12 1.938E+12 5.382E-10 177.6 1027 1.244E+08 9.106E+10 1.675E+07 3.822E+05 100.0 5.826E+11 8.891E+12 1.937E+12 5.376E-10 177.4 1027 1.242E+08 9.094E+10 1.673E+07 3.819E+05 100.0 5.823E+11 8.879E+12 1.934E+12 5.370E-10 177.3 1027 1.239E+08 9.083E+10 1.671E+07 3.816E+05 100.0 5.820E+11 8.867E+12 1.932E+12 5.363E-10 177.1 1027 1.237E+08 9.070E+10 1.669E+07 3.812E+05 100.0 5.817E+11 8.855E+12 1.930E+12 5.356E-10 177.0 1027 1.234E+08 9.057E+10 1.667E+07 3.809E+05 100.0 5.814E+11 8.842E+12 1.928E+12 5.348E-10 176.8 1027 1.232E+08 9.043E+10 1.665E+07 3.806E+05 100.0 5.810E+11 8.829E+12 1.925E+12 5.341E-10 176.7 1027 1.229E+08 9.029E+10 1.663E+07 3.802E+05 100.0 5.807E+11 8.815E+12 1.923E+12 5.333E-10 176.6 1027 1.226E+08 9.015E+10 1.660E+07 3.799E+05 100.0 5.803E+11 8.800E+12 1.920E+12 5.324E-10 176.4 1027 1.224E+08 9.000E+10 1.658E+07 3.795E+05 100.0 5.799E+11 8.785E+12 1.918E+12 5.316E-10 176.3 1027 1.221E+08 8.984E+10 1.656E+07 3.792E+05 100.0 5.795E+11 8.770E+12 1.915E+12 5.307E-10 176.2 1027 1.218E+08 8.968E+10 1.654E+07 3.788E+05 100.0 5.791E+11 8.755E+12 1.912E+12 5.298E-10 176.1 1027 1.215E+08 8.952E+10 1.652E+07 3.785E+05 100.0 5.787E+11 8.739E+12 1.910E+12 5.290E-10 175.9 1027 1.212E+08 8.936E+10 1.650E+07 3.781E+05 100.0 5.783E+11 8.723E+12 1.907E+12 5.281E-10 175.8 1027 1.210E+08 8.919E+10 1.648E+07 3.777E+05 100.0 5.778E+11 8.707E+12 1.904E+12 5.271E-10 175.7 1027 1.207E+08 8.902E+10 1.646E+07 3.774E+05 100.0 5.773E+11 8.691E+12 1.902E+12 5.262E-10 175.7 1027 1.204E+08 8.885E+10 1.643E+07 3.770E+05 100.0 5.769E+11 8.675E+12 1.899E+12 5.253E-10 175.6 1027 1.201E+08 8.868E+10 1.641E+07 3.766E+05 100.0 5.764E+11 8.659E+12 1.896E+12 5.244E-10 175.5 1027 1.198E+08 8.851E+10 1.639E+07 3.763E+05 100.0 5.759E+11 8.642E+12 1.893E+12 5.234E-10 175.4 1027 1.195E+08 8.834E+10 1.637E+07 3.759E+05 100.0 5.754E+11 8.626E+12 1.890E+12 5.225E-10 175.4 1027 1.192E+08 8.816E+10 1.635E+07 3.756E+05 100.0 5.749E+11 8.609E+12 1.888E+12 5.216E-10 175.3 1027 1.189E+08 8.799E+10 1.633E+07 3.752E+05 100.0 5.743E+11 8.593E+12 1.885E+12 5.206E-10 175.3 1027 1.187E+08 8.782E+10 1.631E+07 3.749E+05 100.0 5.738E+11 8.577E+12 1.882E+12 5.197E-10 175.2 1027 1.184E+08 8.765E+10 1.630E+07 3.745E+05 100.0 5.732E+11 8.561E+12 1.880E+12 5.188E-10 175.2 1027 1.181E+08 8.748E+10 1.628E+07 3.742E+05 100.0 5.727E+11 8.545E+12 1.877E+12 5.179E-10 175.2 1027 1.178E+08 8.731E+10 1.626E+07 3.739E+05 100.0 5.721E+11 8.529E+12 1.875E+12 5.170E-10 175.2 1027 1.176E+08 8.715E+10 1.624E+07 3.735E+05 100.0 5.716E+11 8.514E+12 1.872E+12 5.162E-10 175.2 1027 1.173E+08 8.699E+10 1.622E+07 3.732E+05 100.0 5.710E+11 8.499E+12 1.870E+12 5.153E-10 175.2 1027 1.170E+08 8.683E+10 1.621E+07 3.729E+05 100.0 5.704E+11 8.484E+12 1.868E+12 5.145E-10 175.2 1027 1.168E+08 8.667E+10 1.619E+07 3.726E+05 100.0 5.698E+11 8.470E+12 1.865E+12 5.136E-10 175.2 1027 1.165E+08 8.652E+10 1.618E+07 3.723E+05 100.0 5.692E+11 8.455E+12 1.863E+12 5.128E-10 175.3 1027 1.163E+08 8.636E+10 1.616E+07 3.720E+05 100.0 5.686E+11 8.442E+12 1.861E+12 5.121E-10 175.3 1027 1.160E+08 8.622E+10 1.615E+07 3.718E+05 100.0 5.680E+11 8.428E+12 1.859E+12 5.113E-10 175.4 1027 1.158E+08 8.608E+10 1.614E+07 3.715E+05 100.0 5.674E+11 8.415E+12 1.857E+12 5.106E-10 175.5 1027 1.156E+08 8.594E+10 1.612E+07 3.712E+05 100.0 5.668E+11 8.403E+12 1.856E+12 5.099E-10 175.6 1027 1.154E+08 8.580E+10 1.611E+07 3.710E+05 100.0 5.662E+11 8.390E+12 1.854E+12 5.092E-10 175.7 1027 1.151E+08 8.567E+10 1.610E+07 3.707E+05 100.0 5.656E+11 8.379E+12 1.852E+12 5.085E-10 175.8 1027 1.149E+08 8.555E+10 1.609E+07 3.705E+05 100.0 5.649E+11 8.368E+12 1.851E+12 5.079E-10 175.9 1027 1.147E+08 8.543E+10 1.608E+07 3.703E+05 100.0 5.643E+11 8.357E+12 1.850E+12 5.073E-10 176.0 1027 1.145E+08 8.531E+10 1.607E+07 3.701E+05 100.0 5.637E+11 8.347E+12 1.848E+12 5.068E-10 176.2 1027 1.144E+08 8.520E+10 1.606E+07 3.698E+05 100.0 5.631E+11 8.337E+12 1.847E+12 5.062E-10 176.3 1027 1.142E+08 8.510E+10 1.606E+07 3.696E+05 100.0 5.624E+11 8.328E+12 1.846E+12 5.057E-10 176.5 1027 1.140E+08 8.500E+10 1.605E+07 3.695E+05 100.0 5.618E+11 8.320E+12 1.845E+12 5.053E-10 176.7 1027 1.139E+08 8.491E+10 1.605E+07 3.693E+05 100.0 5.612E+11 8.312E+12 1.844E+12 5.048E-10 176.9 1027 1.137E+08 8.482E+10 1.604E+07 3.691E+05 100.0 5.606E+11 8.304E+12 1.844E+12 5.044E-10 177.0 1027 1.136E+08 8.474E+10 1.604E+07 3.689E+05 100.0 5.600E+11 8.298E+12 1.843E+12 5.041E-10 177.3 1027 1.134E+08 8.466E+10 1.604E+07 3.688E+05 100.0 5.593E+11 8.291E+12 1.843E+12 5.037E-10 177.5 1027 1.133E+08 8.460E+10 1.603E+07 3.686E+05 100.0 5.587E+11 8.286E+12 1.842E+12 5.034E-10 177.7 1027 1.132E+08 8.453E+10 1.603E+07 3.684E+05 100.0 5.581E+11 8.281E+12 1.842E+12 5.032E-10 177.9 1027 1.131E+08 8.447E+10 1.603E+07 3.683E+05 100.0 5.575E+11 8.276E+12 1.842E+12 5.029E-10 178.2 1027 1.130E+08 8.442E+10 1.603E+07 3.682E+05 100.0 5.569E+11 8.272E+12 1.842E+12 5.027E-10 178.4 1027 1.129E+08 8.438E+10 1.604E+07 3.680E+05 100.0 5.563E+11 8.269E+12 1.842E+12 5.026E-10 178.7 1027 1.128E+08 8.434E+10 1.604E+07 3.679E+05 100.0 5.557E+11 8.267E+12 1.842E+12 5.024E-10 179.0 1027 1.127E+08 8.431E+10 1.604E+07 3.678E+05 100.0 5.551E+11 8.265E+12 1.842E+12 5.023E-10 179.2 1027 1.127E+08 8.428E+10 1.605E+07 3.676E+05 100.0 5.545E+11 8.263E+12 1.843E+12 5.023E-10 179.5 1027 1.126E+08 8.426E+10 1.606E+07 3.675E+05 100.0 5.540E+11 8.262E+12 1.843E+12 5.023E-10 179.8 1027 1.126E+08 8.424E+10 1.606E+07 3.674E+05 100.0 5.534E+11 8.262E+12 1.844E+12 5.023E-10 180.1 1027 1.125E+08 8.424E+10 1.607E+07 3.673E+05 100.0 5.528E+11 8.262E+12 1.845E+12 5.023E-10 180.4 1027 1.125E+08 8.423E+10 1.608E+07 3.671E+05 100.0 5.522E+11 8.263E+12 1.846E+12 5.024E-10 180.7 1027 1.125E+08 8.424E+10 1.609E+07 3.670E+05 100.0 5.517E+11 8.265E+12 1.847E+12 5.025E-10 181.1 1027 1.125E+08 8.425E+10 1.610E+07 3.669E+05 100.0 5.511E+11 8.267E+12 1.848E+12 5.026E-10 181.4 1027 1.125E+08 8.426E+10 1.611E+07 3.668E+05 100.0 5.506E+11 8.269E+12 1.849E+12 5.028E-10 181.7 1027 1.125E+08 8.428E+10 1.613E+07 3.667E+05 100.0 5.501E+11 8.273E+12 1.850E+12 5.030E-10 182.0 1027 1.125E+08 8.431E+10 1.614E+07 3.666E+05 100.0 5.496E+11 8.276E+12 1.852E+12 5.032E-10 182.4 1027 1.126E+08 8.434E+10 1.616E+07 3.664E+05 100.0 5.491E+11 8.281E+12 1.853E+12 5.035E-10 182.7 1027 1.126E+08 8.438E+10 1.617E+07 3.663E+05 100.0 5.486E+11 8.285E+12 1.855E+12 5.038E-10 183.0 1027 1.127E+08 8.443E+10 1.619E+07 3.662E+05 100.0 5.481E+11 8.291E+12 1.856E+12 5.041E-10 183.4 1027 1.127E+08 8.448E+10 1.621E+07 3.660E+05 100.0 5.476E+11 8.296E+12 1.858E+12 5.045E-10 183.7 1027 1.128E+08 8.453E+10 1.623E+07 3.659E+05 100.0 5.471E+11 8.303E+12 1.860E+12 5.049E-10 184.1 1027 1.129E+08 8.459E+10 1.625E+07 3.658E+05 100.0 5.467E+11 8.310E+12 1.862E+12 5.053E-10 184.4 1027 1.129E+08 8.466E+10 1.627E+07 3.656E+05 100.0 5.462E+11 8.317E+12 1.864E+12 5.057E-10 184.8 1027 1.130E+08 8.473E+10 1.630E+07 3.654E+05 100.0 5.458E+11 8.325E+12 1.866E+12 5.062E-10 185.1 1027 1.131E+08 8.480E+10 1.632E+07 3.653E+05 100.0 5.454E+11 8.333E+12 1.868E+12 5.067E-10 185.4 1027 1.132E+08 8.488E+10 1.635E+07 3.651E+05 100.0 5.450E+11 8.342E+12 1.870E+12 5.072E-10 185.8 1027 1.134E+08 8.497E+10 1.637E+07 3.649E+05 100.0 5.446E+11 8.351E+12 1.872E+12 5.077E-10 186.1 1027 1.135E+08 8.506E+10 1.640E+07 3.647E+05 100.0 5.442E+11 8.360E+12 1.874E+12 5.083E-10 186.4 1027 1.136E+08 8.515E+10 1.643E+07 3.645E+05 100.0 5.438E+11 8.370E+12 1.877E+12 5.089E-10 186.7 1027 1.138E+08 8.525E+10 1.646E+07 3.643E+05 100.0 5.435E+11 8.381E+12 1.879E+12 5.095E-10 187.1 1027 1.139E+08 8.536E+10 1.649E+07 3.641E+05 100.0 5.432E+11 8.392E+12 1.882E+12 5.101E-10 187.4 1027 1.141E+08 8.546E+10 1.652E+07 3.638E+05 100.0 5.429E+11 8.403E+12 1.884E+12 5.108E-10 187.7 1027 1.143E+08 8.558E+10 1.656E+07 3.636E+05 100.0 5.426E+11 8.415E+12 1.887E+12 5.114E-10 188.0 1027 1.144E+08 8.569E+10 1.659E+07 3.633E+05 100.0 5.423E+11 8.426E+12 1.889E+12 5.121E-10 188.3 1027 1.146E+08 8.581E+10 1.663E+07 3.630E+05 100.0 5.420E+11 8.439E+12 1.892E+12 5.128E-10 188.5 1027 1.148E+08 8.594E+10 1.667E+07 3.627E+05 100.0 5.418E+11 8.451E+12 1.895E+12 5.136E-10 188.8 1027 1.150E+08 8.607E+10 1.671E+07 3.624E+05 100.0 5.416E+11 8.464E+12 1.898E+12 5.143E-10 189.1 1027 1.152E+08 8.620E+10 1.675E+07 3.621E+05 100.0 5.414E+11 8.478E+12 1.900E+12 5.151E-10 189.3 1027 1.154E+08 8.634E+10 1.679E+07 3.618E+05 100.0 5.412E+11 8.491E+12 1.903E+12 5.159E-10 189.5 1027 1.156E+08 8.647E+10 1.683E+07 3.614E+05 100.0 5.411E+11 8.505E+12 1.906E+12 5.167E-10 189.8 1027 1.159E+08 8.662E+10 1.687E+07 3.610E+05 100.0 5.409E+11 8.519E+12 1.909E+12 5.175E-10 190.0 1027 1.161E+08 8.676E+10 1.692E+07 3.606E+05 100.0 5.408E+11 8.534E+12 1.912E+12 5.184E-10 190.2 1027 1.163E+08 8.691E+10 1.696E+07 3.602E+05 100.0 5.407E+11 8.549E+12 1.915E+12 5.192E-10 190.3 1027 1.166E+08 8.706E+10 1.701E+07 3.598E+05 100.0 5.407E+11 8.564E+12 1.918E+12 5.201E-10 190.5 1027 1.168E+08 8.722E+10 1.706E+07 3.593E+05 100.0 5.406E+11 8.579E+12 1.921E+12 5.210E-10 190.7 1027 1.171E+08 8.738E+10 1.711E+07 3.588E+05 100.0 5.406E+11 8.594E+12 1.924E+12 5.218E-10 190.8 1027 1.174E+08 8.754E+10 1.716E+07 3.583E+05 100.0 5.406E+11 8.610E+12 1.927E+12 5.227E-10 190.9 1027 1.176E+08 8.770E+10 1.721E+07 3.578E+05 100.0 5.406E+11 8.626E+12 1.930E+12 5.237E-10 191.1 1027 1.179E+08 8.786E+10 1.726E+07 3.572E+05 100.0 5.407E+11 8.642E+12 1.933E+12 5.246E-10 191.2 1027 1.182E+08 8.803E+10 1.732E+07 3.566E+05 100.0 5.407E+11 8.658E+12 1.936E+12 5.255E-10 191.2 1027 1.185E+08 8.820E+10 1.737E+07 3.560E+05 100.0 5.408E+11 8.674E+12 1.940E+12 5.264E-10 191.3 1027 1.188E+08 8.837E+10 1.743E+07 3.554E+05 100.0 5.409E+11 8.691E+12 1.943E+12 5.274E-10 191.3 1027 1.191E+08 8.855E+10 1.749E+07 3.548E+05 100.0 5.411E+11 8.707E+12 1.946E+12 5.283E-10 191.4 1027 1.194E+08 8.872E+10 1.755E+07 3.541E+05 100.0 5.413E+11 8.724E+12 1.949E+12 5.293E-10 191.4 1027 1.197E+08 8.890E+10 1.760E+07 3.534E+05 100.0 5.414E+11 8.741E+12 1.952E+12 5.303E-10 191.4 1027 1.200E+08 8.908E+10 1.767E+07 3.526E+05 100.0 5.417E+11 8.758E+12 1.955E+12 5.312E-10 191.4 1027 1.203E+08 8.926E+10 1.773E+07 3.519E+05 100.0 5.419E+11 8.775E+12 1.958E+12 5.322E-10 191.3 1027 1.206E+08 8.944E+10 1.779E+07 3.511E+05 100.0 5.422E+11 8.792E+12 1.961E+12 5.332E-10 191.3 1027 1.210E+08 8.962E+10 1.785E+07 3.502E+05 100.0 5.425E+11 8.809E+12 1.964E+12 5.342E-10 191.2 1027 1.213E+08 8.980E+10 1.792E+07 3.494E+05 100.0 5.428E+11 8.826E+12 1.967E+12 5.351E-10 191.1 1027 1.216E+08 8.999E+10 1.798E+07 3.485E+05 100.0 5.431E+11 8.843E+12 1.970E+12 5.361E-10 191.1 1027 1.220E+08 9.017E+10 1.805E+07 3.476E+05 100.0 5.435E+11 8.860E+12 1.973E+12 5.371E-10 190.9 1027 1.223E+08 9.035E+10 1.812E+07 3.466E+05 100.0 5.439E+11 8.878E+12 1.976E+12 5.381E-10 190.8 1027 1.226E+08 9.054E+10 1.819E+07 3.456E+05 100.0 5.443E+11 8.895E+12 1.979E+12 5.390E-10 190.7 1027 1.230E+08 9.072E+10 1.826E+07 3.446E+05 100.0 5.447E+11 8.912E+12 1.982E+12 5.400E-10 190.5 1027 1.233E+08 9.090E+10 1.832E+07 3.436E+05 100.0 5.451E+11 8.928E+12 1.985E+12 5.410E-10 190.4 1027 1.237E+08 9.109E+10 1.840E+07 3.425E+05 100.0 5.456E+11 8.945E+12 1.988E+12 5.419E-10 190.2 1027 1.240E+08 9.127E+10 1.847E+07 3.413E+05 100.0 5.461E+11 8.962E+12 1.991E+12 5.429E-10 190.0 1027 1.244E+08 9.145E+10 1.854E+07 3.402E+05 100.0 5.466E+11 8.979E+12 1.994E+12 5.438E-10 189.8 1027 1.247E+08 9.163E+10 1.861E+07 3.390E+05 100.0 5.472E+11 8.995E+12 1.996E+12 5.448E-10 189.5 1027 1.251E+08 9.181E+10 1.868E+07 3.378E+05 100.0 5.477E+11 9.011E+12 1.999E+12 5.457E-10 189.3 1027 1.254E+08 9.199E+10 1.876E+07 3.365E+05 100.0 5.483E+11 9.028E+12 2.002E+12 5.466E-10 189.1 1027 1.258E+08 9.217E+10 1.883E+07 3.352E+05 100.0 5.489E+11 9.043E+12 2.004E+12 5.475E-10 188.8 1027 1.262E+08 9.234E+10 1.890E+07 3.338E+05 100.0 5.495E+11 9.059E+12 2.007E+12 5.484E-10 188.6 1027 1.265E+08 9.251E+10 1.898E+07 3.325E+05 100.0 5.501E+11 9.075E+12 2.009E+12 5.493E-10 188.3 1027 1.269E+08 9.268E+10 1.905E+07 3.311E+05 100.0 5.508E+11 9.090E+12 2.012E+12 5.502E-10 188.0 1027 1.272E+08 9.285E+10 1.912E+07 3.296E+05 100.0 5.515E+11 9.105E+12 2.014E+12 5.510E-10 187.7 1027 1.276E+08 9.302E+10 1.920E+07 3.281E+05 100.0 5.521E+11 9.120E+12 2.016E+12 5.518E-10 187.4 1027 1.279E+08 9.318E+10 1.927E+07 3.266E+05 100.0 5.528E+11 9.134E+12 2.019E+12 5.527E-10 187.1 1027 1.283E+08 9.334E+10 1.935E+07 3.251E+05 100.0 5.536E+11 9.148E+12 2.021E+12 5.535E-10 186.8 1027 1.286E+08 9.349E+10 1.942E+07 3.235E+05 100.0 5.543E+11 9.162E+12 2.023E+12 5.542E-10 186.5 1027 1.290E+08 9.365E+10 1.949E+07 3.219E+05 100.0 5.550E+11 9.176E+12 2.025E+12 5.550E-10 186.2 1027 1.293E+08 9.380E+10 1.957E+07 3.202E+05 100.0 5.558E+11 9.189E+12 2.027E+12 5.557E-10 185.9 1027 1.297E+08 9.394E+10 1.964E+07 3.185E+05 100.0 5.566E+11 9.202E+12 2.028E+12 5.565E-10 185.6 1027 1.300E+08 9.408E+10 1.971E+07 3.168E+05 100.0 5.574E+11 9.214E+12 2.030E+12 5.572E-10 185.2 1027 1.303E+08 9.422E+10 1.979E+07 3.151E+05 100.0 5.582E+11 9.226E+12 2.032E+12 5.578E-10 184.9 1027 1.307E+08 9.435E+10 1.986E+07 3.133E+05 100.0 5.590E+11 9.237E+12 2.033E+12 5.585E-10 184.6 1027 1.310E+08 9.448E+10 1.993E+07 3.115E+05 100.0 5.598E+11 9.249E+12 2.035E+12 5.591E-10 184.3 1027 1.313E+08 9.461E+10 2.000E+07 3.096E+05 100.0 5.606E+11 9.259E+12 2.036E+12 5.597E-10 183.9 1027 1.317E+08 9.473E+10 2.007E+07 3.078E+05 100.0 5.615E+11 9.270E+12 2.037E+12 5.603E-10 183.6 1027 1.320E+08 9.484E+10 2.014E+07 3.059E+05 100.0 5.624E+11 9.280E+12 2.038E+12 5.608E-10 183.3 1027 1.323E+08 9.495E+10 2.020E+07 3.040E+05 100.0 5.632E+11 9.289E+12 2.039E+12 5.614E-10 183.0 1027 1.326E+08 9.506E+10 2.027E+07 3.020E+05fluids-0.1.78/tests/nrlmsise00/__init__.py0000644000175000017500000000225113632560624017107 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' fluids-0.1.78/tests/nrlmsise00/known_data_hours.txt0000644000175000017500000000442713632560624021113 0ustar kurtkurt100.0 6.107E+11 8.796E+12 1.895E+12 5.317E-10 178.3 1027 1.378E+08 8.957E+10 2.070E+07 1.963E+05 100.0 6.087E+11 8.389E+12 1.810E+12 5.079E-10 180.4 1027 1.341E+08 8.519E+10 1.982E+07 1.893E+05 100.0 6.047E+11 7.973E+12 1.725E+12 4.837E-10 181.9 1027 1.295E+08 8.082E+10 1.889E+07 1.941E+05 100.0 5.990E+11 7.639E+12 1.659E+12 4.642E-10 182.1 1027 1.251E+08 7.738E+10 1.810E+07 2.104E+05 100.0 5.924E+11 7.466E+12 1.626E+12 4.542E-10 181.4 1027 1.219E+08 7.565E+10 1.759E+07 2.374E+05 100.0 5.869E+11 7.502E+12 1.635E+12 4.562E-10 180.7 1027 1.207E+08 7.607E+10 1.739E+07 2.726E+05 100.0 5.840E+11 7.745E+12 1.684E+12 4.702E-10 180.6 1027 1.217E+08 7.861E+10 1.746E+07 3.114E+05 100.0 5.835E+11 8.138E+12 1.759E+12 4.927E-10 181.1 1027 1.241E+08 8.265E+10 1.770E+07 3.481E+05 100.0 5.834E+11 8.559E+12 1.834E+12 5.165E-10 181.4 1027 1.266E+08 8.699E+10 1.793E+07 3.770E+05 100.0 5.805E+11 8.866E+12 1.884E+12 5.336E-10 180.9 1027 1.275E+08 9.022E+10 1.803E+07 3.952E+05 100.0 5.724E+11 8.964E+12 1.892E+12 5.384E-10 179.2 1027 1.260E+08 9.138E+10 1.792E+07 4.034E+05 100.0 5.592E+11 8.853E+12 1.863E+12 5.313E-10 177.0 1027 1.222E+08 9.048E+10 1.762E+07 4.048E+05 100.0 5.433E+11 8.624E+12 1.818E+12 5.177E-10 175.4 1027 1.173E+08 8.843E+10 1.726E+07 4.031E+05 100.0 5.286E+11 8.402E+12 1.781E+12 5.049E-10 175.6 1027 1.131E+08 8.642E+10 1.694E+07 4.011E+05 100.0 5.186E+11 8.276E+12 1.767E+12 4.980E-10 178.2 1027 1.106E+08 8.536E+10 1.677E+07 3.996E+05 100.0 5.153E+11 8.281E+12 1.780E+12 4.988E-10 182.7 1027 1.104E+08 8.556E+10 1.681E+07 3.977E+05 100.0 5.195E+11 8.404E+12 1.815E+12 5.066E-10 187.7 1027 1.126E+08 8.688E+10 1.709E+07 3.936E+05 100.0 5.309E+11 8.611E+12 1.863E+12 5.192E-10 190.9 1027 1.166E+08 8.900E+10 1.763E+07 3.848E+05 100.0 5.480E+11 8.862E+12 1.918E+12 5.344E-10 190.9 1027 1.221E+08 9.152E+10 1.843E+07 3.694E+05 100.0 5.678E+11 9.107E+12 1.969E+12 5.492E-10 187.7 1027 1.280E+08 9.395E+10 1.941E+07 3.456E+05 100.0 5.860E+11 9.290E+12 2.006E+12 5.603E-10 183.0 1027 1.335E+08 9.570E+10 2.038E+07 3.140E+05 100.0 5.993E+11 9.368E+12 2.020E+12 5.651E-10 178.7 1027 1.376E+08 9.629E+10 2.114E+07 2.779E+05 100.0 6.071E+11 9.313E+12 2.007E+12 5.620E-10 176.5 1027 1.397E+08 9.547E+10 2.147E+07 2.430E+05 100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05fluids-0.1.78/tests/nrlmsise00/data_from_C_version.txt0000644000175000017500000001423313632560624021505 0ustar kurtkurt 6.665177E+05 1.138806E+08 1.998211E+07 4.022764E+05 3.557465E+03 4.074714E-15 3.475312E+04 4.095913E+06 2.667273E+04 1.250540E+03 1.241416E+03 3.407293E+06 1.586333E+08 1.391117E+07 3.262560E+05 1.559618E+03 5.001846E-15 4.854208E+04 4.380967E+06 6.956682E+03 1.166754E+03 1.161710E+03 1.123767E+05 6.934130E+04 4.247105E+01 1.322750E-01 2.618848E-05 2.756772E-18 2.016750E+04 5.741256E+03 2.374394E+04 1.239892E+03 1.239891E+03 5.411554E+07 1.918893E+11 6.115826E+12 1.225201E+12 6.023212E+10 3.584426E-10 1.059880E+07 2.615737E+05 2.819879E-42 1.027318E+03 2.068878E+02 1.851122E+06 1.476555E+08 1.579356E+07 2.633795E+05 1.588781E+03 4.809630E-15 5.816167E+04 5.478984E+06 1.264446E+03 1.212396E+03 1.208135E+03 8.673095E+05 1.278862E+08 1.822577E+07 2.922214E+05 2.402962E+03 4.355866E-15 3.686389E+04 3.897276E+06 2.667273E+04 1.220146E+03 1.212712E+03 5.776251E+05 6.979139E+07 1.236814E+07 2.492868E+05 1.405739E+03 2.470651E-15 5.291986E+04 1.069814E+06 2.667273E+04 1.116385E+03 1.112999E+03 3.740304E+05 4.782720E+07 5.240380E+06 1.759875E+05 5.501649E+02 1.571889E-15 8.896776E+04 1.979741E+06 9.121815E+03 1.031247E+03 1.024848E+03 6.748339E+05 1.245315E+08 2.369010E+07 4.911583E+05 4.578781E+03 4.564420E-15 3.244595E+04 5.370833E+06 2.667273E+04 1.306052E+03 1.293374E+03 5.528601E+05 1.198041E+08 3.495798E+07 9.339618E+05 1.096255E+04 4.974543E-15 2.686428E+04 4.889974E+06 2.805445E+04 1.361868E+03 1.347389E+03 1.375488E+14 0.000000E+00 2.049687E+19 5.498695E+18 2.451733E+17 1.261066E-03 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.814648E+02 4.427443E+13 0.000000E+00 6.597567E+18 1.769929E+18 7.891680E+16 4.059139E-04 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.274180E+02 2.127829E+12 0.000000E+00 3.170791E+17 8.506280E+16 3.792741E+15 1.950822E-05 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.374389E+02 1.412184E+11 0.000000E+00 2.104370E+16 5.645392E+15 2.517142E+14 1.294709E-06 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.795551E+02 1.254884E+10 0.000000E+00 1.874533E+15 4.923051E+14 2.239685E+13 1.147668E-07 0.000000E+00 0.000000E+00 0.000000E+00 1.027318E+03 2.190732E+02 5.196477E+05 1.274494E+08 4.850450E+07 1.720838E+06 2.354487E+04 5.881940E-15 2.500078E+04 6.279210E+06 2.667273E+04 1.426412E+03 1.408608E+03 4.260860E+07 1.241342E+11 4.929562E+12 1.048407E+12 4.993465E+10 2.914304E-10 8.831229E+06 2.252516E+05 2.415246E-42 1.027318E+03 1.934071E+02 DAY 172 81 172 172 172 UT 29000 29000 75000 29000 29000 ALT 400 400 1000 100 400 LAT 60 60 60 60 0 LONG -70 -70 -70 -70 -70 LST 16 16 16 16 16 F107A 150 150 150 150 150 F107 150 150 150 150 150 TINF 1250.54 1166.75 1239.89 1027.32 1212.40 TG 1241.42 1161.71 1239.89 206.89 1208.14 HE 6.665e+05 3.407e+06 1.124e+05 5.412e+07 1.851e+06 O 1.139e+08 1.586e+08 6.934e+04 1.919e+11 1.477e+08 N2 1.998e+07 1.391e+07 4.247e+01 6.116e+12 1.579e+07 O2 4.023e+05 3.263e+05 1.323e-01 1.225e+12 2.634e+05 AR 3.557e+03 1.560e+03 2.619e-05 6.023e+10 1.589e+03 H 3.475e+04 4.854e+04 2.017e+04 1.060e+07 5.816e+04 N 4.096e+06 4.381e+06 5.741e+03 2.616e+05 5.479e+06 ANM 2.667e+04 6.957e+03 2.374e+04 2.820e-42 1.264e+03 RHO 4.075e-15 5.002e-15 2.757e-18 3.584e-10 4.810e-15 DAY 172 172 172 172 172 UT 29000 29000 29000 29000 29000 ALT 400 400 400 400 400 LAT 60 60 60 60 60 LONG 0 -70 -70 -70 -70 LST 16 4 16 16 16 F107A 150 150 70 150 150 F107 150 150 150 180 150 TINF 1220.15 1116.39 1031.25 1306.05 1361.87 TG 1212.71 1113.00 1024.85 1293.37 1347.39 HE 8.673e+05 5.776e+05 3.740e+05 6.748e+05 5.529e+05 O 1.279e+08 6.979e+07 4.783e+07 1.245e+08 1.198e+08 N2 1.823e+07 1.237e+07 5.240e+06 2.369e+07 3.496e+07 O2 2.922e+05 2.493e+05 1.760e+05 4.912e+05 9.340e+05 AR 2.403e+03 1.406e+03 5.502e+02 4.579e+03 1.096e+04 H 3.686e+04 5.292e+04 8.897e+04 3.245e+04 2.686e+04 N 3.897e+06 1.070e+06 1.980e+06 5.371e+06 4.890e+06 ANM 2.667e+04 2.667e+04 9.122e+03 2.667e+04 2.805e+04 RHO 4.356e-15 2.471e-15 1.572e-15 4.564e-15 4.975e-15 DAY 172 172 172 172 172 UT 29000 29000 29000 29000 29000 ALT 0 10 30 50 70 LAT 60 60 60 60 60 LONG -70 -70 -70 -70 -70 LST 16 16 16 16 16 F107A 150 150 150 150 150 F107 150 150 150 150 150 TINF 1027.32 1027.32 1027.32 1027.32 1027.32 TG 281.46 227.42 237.44 279.56 219.07 HE 1.375e+14 4.427e+13 2.128e+12 1.412e+11 1.255e+10 O 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 N2 2.050e+19 6.598e+18 3.171e+17 2.104e+16 1.875e+15 O2 5.499e+18 1.770e+18 8.506e+16 5.645e+15 4.923e+14 AR 2.452e+17 7.892e+16 3.793e+15 2.517e+14 2.240e+13 H 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 N 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 ANM 0.000e+00 0.000e+00 0.000e+00 0.000e+00 0.000e+00 RHO 1.261e-03 4.059e-04 1.951e-05 1.295e-06 1.148e-07 fluids-0.1.78/tests/nrlmsise00/known_data_day_of_year.txt0000644000175000017500000010525513632560624022235 0ustar kurtkurt100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05 100.0 6.093E+11 9.119E+12 1.965E+12 5.506E-10 176.5 1027 1.397E+08 9.318E+10 2.131E+07 2.150E+05 100.0 6.083E+11 9.120E+12 1.967E+12 5.507E-10 176.5 1027 1.395E+08 9.320E+10 2.131E+07 2.153E+05 100.0 6.073E+11 9.122E+12 1.968E+12 5.509E-10 176.4 1027 1.394E+08 9.324E+10 2.131E+07 2.156E+05 100.0 6.064E+11 9.126E+12 1.970E+12 5.511E-10 176.4 1027 1.392E+08 9.329E+10 2.131E+07 2.160E+05 100.0 6.054E+11 9.131E+12 1.972E+12 5.514E-10 176.4 1027 1.391E+08 9.334E+10 2.132E+07 2.164E+05 100.0 6.046E+11 9.137E+12 1.974E+12 5.518E-10 176.3 1027 1.390E+08 9.341E+10 2.132E+07 2.168E+05 100.0 6.037E+11 9.144E+12 1.976E+12 5.522E-10 176.3 1027 1.389E+08 9.349E+10 2.133E+07 2.173E+05 100.0 6.029E+11 9.152E+12 1.979E+12 5.527E-10 176.3 1027 1.388E+08 9.358E+10 2.134E+07 2.178E+05 100.0 6.021E+11 9.161E+12 1.982E+12 5.533E-10 176.3 1027 1.388E+08 9.368E+10 2.135E+07 2.184E+05 100.0 6.014E+11 9.172E+12 1.984E+12 5.539E-10 176.3 1027 1.387E+08 9.380E+10 2.136E+07 2.190E+05 100.0 6.007E+11 9.183E+12 1.988E+12 5.546E-10 176.2 1027 1.387E+08 9.392E+10 2.137E+07 2.196E+05 100.0 6.001E+11 9.196E+12 1.991E+12 5.554E-10 176.2 1027 1.387E+08 9.405E+10 2.138E+07 2.203E+05 100.0 5.995E+11 9.209E+12 1.995E+12 5.562E-10 176.2 1027 1.386E+08 9.420E+10 2.140E+07 2.210E+05 100.0 5.989E+11 9.224E+12 1.998E+12 5.571E-10 176.2 1027 1.386E+08 9.435E+10 2.142E+07 2.217E+05 100.0 5.983E+11 9.240E+12 2.002E+12 5.580E-10 176.2 1027 1.387E+08 9.452E+10 2.143E+07 2.225E+05 100.0 5.978E+11 9.257E+12 2.006E+12 5.590E-10 176.1 1027 1.387E+08 9.469E+10 2.145E+07 2.233E+05 100.0 5.974E+11 9.275E+12 2.011E+12 5.601E-10 176.1 1027 1.387E+08 9.488E+10 2.147E+07 2.241E+05 100.0 5.969E+11 9.294E+12 2.015E+12 5.612E-10 176.1 1027 1.388E+08 9.508E+10 2.149E+07 2.250E+05 100.0 5.965E+11 9.314E+12 2.020E+12 5.624E-10 176.1 1027 1.388E+08 9.528E+10 2.151E+07 2.259E+05 100.0 5.962E+11 9.335E+12 2.024E+12 5.636E-10 176.1 1027 1.389E+08 9.550E+10 2.154E+07 2.269E+05 100.0 5.959E+11 9.357E+12 2.029E+12 5.649E-10 176.1 1027 1.390E+08 9.572E+10 2.156E+07 2.278E+05 100.0 5.956E+11 9.380E+12 2.034E+12 5.663E-10 176.0 1027 1.391E+08 9.595E+10 2.158E+07 2.288E+05 100.0 5.953E+11 9.404E+12 2.040E+12 5.677E-10 176.0 1027 1.392E+08 9.620E+10 2.161E+07 2.299E+05 100.0 5.951E+11 9.429E+12 2.045E+12 5.691E-10 176.0 1027 1.393E+08 9.645E+10 2.164E+07 2.309E+05 100.0 5.949E+11 9.455E+12 2.051E+12 5.706E-10 176.0 1027 1.394E+08 9.671E+10 2.167E+07 2.320E+05 100.0 5.947E+11 9.481E+12 2.056E+12 5.722E-10 176.0 1027 1.395E+08 9.697E+10 2.169E+07 2.331E+05 100.0 5.945E+11 9.509E+12 2.062E+12 5.738E-10 176.0 1027 1.397E+08 9.725E+10 2.172E+07 2.343E+05 100.0 5.944E+11 9.537E+12 2.068E+12 5.754E-10 176.0 1027 1.398E+08 9.753E+10 2.175E+07 2.355E+05 100.0 5.943E+11 9.566E+12 2.074E+12 5.771E-10 176.0 1027 1.400E+08 9.782E+10 2.178E+07 2.367E+05 100.0 5.942E+11 9.596E+12 2.080E+12 5.788E-10 176.0 1027 1.401E+08 9.812E+10 2.181E+07 2.379E+05 100.0 5.941E+11 9.627E+12 2.086E+12 5.806E-10 176.0 1027 1.403E+08 9.842E+10 2.185E+07 2.391E+05 100.0 5.941E+11 9.658E+12 2.093E+12 5.824E-10 176.0 1027 1.405E+08 9.873E+10 2.188E+07 2.404E+05 100.0 5.940E+11 9.690E+12 2.099E+12 5.842E-10 176.0 1027 1.407E+08 9.904E+10 2.191E+07 2.417E+05 100.0 5.940E+11 9.722E+12 2.105E+12 5.861E-10 176.0 1027 1.409E+08 9.936E+10 2.194E+07 2.430E+05 100.0 5.940E+11 9.755E+12 2.112E+12 5.880E-10 176.0 1027 1.411E+08 9.969E+10 2.198E+07 2.443E+05 100.0 5.940E+11 9.789E+12 2.119E+12 5.899E-10 176.0 1027 1.413E+08 1.000E+11 2.201E+07 2.457E+05 100.0 5.940E+11 9.823E+12 2.125E+12 5.919E-10 176.0 1027 1.415E+08 1.003E+11 2.204E+07 2.470E+05 100.0 5.940E+11 9.857E+12 2.132E+12 5.939E-10 176.0 1027 1.417E+08 1.007E+11 2.208E+07 2.484E+05 100.0 5.940E+11 9.892E+12 2.138E+12 5.959E-10 176.0 1027 1.419E+08 1.010E+11 2.211E+07 2.498E+05 100.0 5.940E+11 9.928E+12 2.145E+12 5.979E-10 176.0 1027 1.421E+08 1.014E+11 2.215E+07 2.512E+05 100.0 5.940E+11 9.963E+12 2.152E+12 5.999E-10 176.1 1027 1.423E+08 1.017E+11 2.218E+07 2.526E+05 100.0 5.939E+11 9.999E+12 2.158E+12 6.020E-10 176.1 1027 1.425E+08 1.021E+11 2.221E+07 2.541E+05 100.0 5.939E+11 1.004E+13 2.165E+12 6.040E-10 176.1 1027 1.427E+08 1.024E+11 2.225E+07 2.555E+05 100.0 5.939E+11 1.007E+13 2.172E+12 6.061E-10 176.1 1027 1.429E+08 1.028E+11 2.228E+07 2.569E+05 100.0 5.938E+11 1.011E+13 2.178E+12 6.082E-10 176.1 1027 1.431E+08 1.031E+11 2.231E+07 2.584E+05 100.0 5.937E+11 1.014E+13 2.185E+12 6.102E-10 176.1 1027 1.433E+08 1.035E+11 2.234E+07 2.598E+05 100.0 5.936E+11 1.018E+13 2.191E+12 6.123E-10 176.2 1027 1.435E+08 1.038E+11 2.237E+07 2.613E+05 100.0 5.935E+11 1.022E+13 2.198E+12 6.144E-10 176.2 1027 1.437E+08 1.041E+11 2.241E+07 2.627E+05 100.0 5.934E+11 1.025E+13 2.204E+12 6.164E-10 176.2 1027 1.439E+08 1.045E+11 2.244E+07 2.642E+05 100.0 5.932E+11 1.029E+13 2.210E+12 6.185E-10 176.2 1027 1.441E+08 1.048E+11 2.246E+07 2.656E+05 100.0 5.930E+11 1.033E+13 2.217E+12 6.205E-10 176.3 1027 1.443E+08 1.052E+11 2.249E+07 2.670E+05 100.0 5.927E+11 1.036E+13 2.223E+12 6.225E-10 176.3 1027 1.444E+08 1.055E+11 2.252E+07 2.685E+05 100.0 5.925E+11 1.040E+13 2.229E+12 6.245E-10 176.3 1027 1.446E+08 1.058E+11 2.255E+07 2.699E+05 100.0 5.921E+11 1.043E+13 2.234E+12 6.265E-10 176.4 1027 1.448E+08 1.062E+11 2.257E+07 2.713E+05 100.0 5.918E+11 1.047E+13 2.240E+12 6.284E-10 176.4 1027 1.449E+08 1.065E+11 2.260E+07 2.727E+05 100.0 5.914E+11 1.050E+13 2.245E+12 6.303E-10 176.4 1027 1.450E+08 1.068E+11 2.262E+07 2.741E+05 100.0 5.909E+11 1.054E+13 2.251E+12 6.322E-10 176.5 1027 1.452E+08 1.071E+11 2.264E+07 2.754E+05 100.0 5.904E+11 1.057E+13 2.256E+12 6.340E-10 176.5 1027 1.453E+08 1.074E+11 2.266E+07 2.768E+05 100.0 5.898E+11 1.060E+13 2.261E+12 6.358E-10 176.6 1027 1.454E+08 1.077E+11 2.268E+07 2.781E+05 100.0 5.892E+11 1.064E+13 2.265E+12 6.376E-10 176.6 1027 1.455E+08 1.080E+11 2.270E+07 2.794E+05 100.0 5.885E+11 1.067E+13 2.270E+12 6.393E-10 176.7 1027 1.455E+08 1.083E+11 2.271E+07 2.807E+05 100.0 5.877E+11 1.070E+13 2.274E+12 6.409E-10 176.7 1027 1.456E+08 1.085E+11 2.273E+07 2.819E+05 100.0 5.869E+11 1.073E+13 2.278E+12 6.425E-10 176.8 1027 1.456E+08 1.088E+11 2.274E+07 2.831E+05 100.0 5.860E+11 1.076E+13 2.282E+12 6.440E-10 176.8 1027 1.457E+08 1.090E+11 2.275E+07 2.843E+05 100.0 5.851E+11 1.079E+13 2.285E+12 6.455E-10 176.9 1027 1.457E+08 1.093E+11 2.276E+07 2.854E+05 100.0 5.840E+11 1.081E+13 2.289E+12 6.469E-10 176.9 1027 1.457E+08 1.095E+11 2.276E+07 2.866E+05 100.0 5.829E+11 1.084E+13 2.292E+12 6.483E-10 177.0 1027 1.456E+08 1.097E+11 2.277E+07 2.876E+05 100.0 5.818E+11 1.086E+13 2.294E+12 6.496E-10 177.0 1027 1.456E+08 1.099E+11 2.277E+07 2.887E+05 100.0 5.805E+11 1.089E+13 2.297E+12 6.508E-10 177.1 1027 1.455E+08 1.101E+11 2.277E+07 2.897E+05 100.0 5.792E+11 1.091E+13 2.299E+12 6.519E-10 177.2 1027 1.454E+08 1.103E+11 2.277E+07 2.907E+05 100.0 5.778E+11 1.093E+13 2.301E+12 6.530E-10 177.2 1027 1.453E+08 1.104E+11 2.276E+07 2.916E+05 100.0 5.763E+11 1.095E+13 2.302E+12 6.540E-10 177.3 1027 1.452E+08 1.106E+11 2.276E+07 2.925E+05 100.0 5.747E+11 1.097E+13 2.303E+12 6.549E-10 177.4 1027 1.451E+08 1.107E+11 2.275E+07 2.933E+05 100.0 5.730E+11 1.099E+13 2.304E+12 6.557E-10 177.5 1027 1.449E+08 1.108E+11 2.274E+07 2.941E+05 100.0 5.713E+11 1.100E+13 2.305E+12 6.564E-10 177.5 1027 1.447E+08 1.109E+11 2.272E+07 2.948E+05 100.0 5.694E+11 1.102E+13 2.305E+12 6.570E-10 177.6 1027 1.445E+08 1.110E+11 2.271E+07 2.955E+05 100.0 5.675E+11 1.103E+13 2.305E+12 6.576E-10 177.7 1027 1.443E+08 1.111E+11 2.269E+07 2.961E+05 100.0 5.655E+11 1.104E+13 2.304E+12 6.580E-10 177.8 1027 1.440E+08 1.111E+11 2.267E+07 2.967E+05 100.0 5.634E+11 1.105E+13 2.304E+12 6.584E-10 177.9 1027 1.437E+08 1.112E+11 2.264E+07 2.972E+05 100.0 5.612E+11 1.106E+13 2.302E+12 6.586E-10 178.0 1027 1.434E+08 1.112E+11 2.262E+07 2.977E+05 100.0 5.589E+11 1.107E+13 2.301E+12 6.588E-10 178.1 1027 1.431E+08 1.112E+11 2.259E+07 2.981E+05 100.0 5.565E+11 1.107E+13 2.299E+12 6.589E-10 178.1 1027 1.427E+08 1.112E+11 2.256E+07 2.984E+05 100.0 5.540E+11 1.107E+13 2.297E+12 6.588E-10 178.2 1027 1.424E+08 1.111E+11 2.252E+07 2.987E+05 100.0 5.515E+11 1.108E+13 2.294E+12 6.587E-10 178.3 1027 1.420E+08 1.111E+11 2.249E+07 2.990E+05 100.0 5.488E+11 1.108E+13 2.291E+12 6.584E-10 178.4 1027 1.415E+08 1.110E+11 2.245E+07 2.992E+05 100.0 5.461E+11 1.107E+13 2.288E+12 6.581E-10 178.5 1027 1.411E+08 1.109E+11 2.241E+07 2.993E+05 100.0 5.433E+11 1.107E+13 2.284E+12 6.576E-10 178.6 1027 1.406E+08 1.108E+11 2.236E+07 2.994E+05 100.0 5.404E+11 1.106E+13 2.280E+12 6.571E-10 178.7 1027 1.401E+08 1.107E+11 2.232E+07 2.994E+05 100.0 5.374E+11 1.106E+13 2.275E+12 6.564E-10 178.9 1027 1.396E+08 1.105E+11 2.227E+07 2.993E+05 100.0 5.343E+11 1.105E+13 2.271E+12 6.556E-10 179.0 1027 1.390E+08 1.104E+11 2.222E+07 2.992E+05 100.0 5.311E+11 1.104E+13 2.265E+12 6.548E-10 179.1 1027 1.385E+08 1.102E+11 2.216E+07 2.990E+05 100.0 5.279E+11 1.102E+13 2.260E+12 6.538E-10 179.2 1027 1.379E+08 1.100E+11 2.211E+07 2.988E+05 100.0 5.246E+11 1.101E+13 2.254E+12 6.527E-10 179.3 1027 1.373E+08 1.098E+11 2.205E+07 2.985E+05 100.0 5.212E+11 1.099E+13 2.248E+12 6.515E-10 179.4 1027 1.366E+08 1.095E+11 2.198E+07 2.981E+05 100.0 5.177E+11 1.098E+13 2.241E+12 6.502E-10 179.5 1027 1.360E+08 1.093E+11 2.192E+07 2.977E+05 100.0 5.142E+11 1.096E+13 2.234E+12 6.488E-10 179.7 1027 1.353E+08 1.090E+11 2.185E+07 2.973E+05 100.0 5.106E+11 1.093E+13 2.227E+12 6.473E-10 179.8 1027 1.346E+08 1.087E+11 2.179E+07 2.967E+05 100.0 5.069E+11 1.091E+13 2.220E+12 6.457E-10 179.9 1027 1.339E+08 1.084E+11 2.171E+07 2.961E+05 100.0 5.032E+11 1.089E+13 2.212E+12 6.441E-10 180.1 1027 1.331E+08 1.081E+11 2.164E+07 2.955E+05 100.0 4.994E+11 1.086E+13 2.204E+12 6.423E-10 180.2 1027 1.324E+08 1.078E+11 2.157E+07 2.948E+05 100.0 4.955E+11 1.083E+13 2.195E+12 6.404E-10 180.3 1027 1.316E+08 1.074E+11 2.149E+07 2.941E+05 100.0 4.916E+11 1.080E+13 2.187E+12 6.384E-10 180.5 1027 1.308E+08 1.071E+11 2.141E+07 2.933E+05 100.0 4.876E+11 1.077E+13 2.178E+12 6.363E-10 180.6 1027 1.300E+08 1.067E+11 2.133E+07 2.924E+05 100.0 4.836E+11 1.074E+13 2.168E+12 6.342E-10 180.7 1027 1.292E+08 1.063E+11 2.124E+07 2.915E+05 100.0 4.796E+11 1.070E+13 2.159E+12 6.319E-10 180.9 1027 1.283E+08 1.059E+11 2.116E+07 2.905E+05 100.0 4.754E+11 1.067E+13 2.149E+12 6.296E-10 181.0 1027 1.274E+08 1.054E+11 2.107E+07 2.895E+05 100.0 4.713E+11 1.063E+13 2.139E+12 6.272E-10 181.2 1027 1.266E+08 1.050E+11 2.098E+07 2.885E+05 100.0 4.671E+11 1.059E+13 2.129E+12 6.247E-10 181.3 1027 1.257E+08 1.045E+11 2.089E+07 2.874E+05 100.0 4.629E+11 1.055E+13 2.118E+12 6.221E-10 181.4 1027 1.248E+08 1.041E+11 2.080E+07 2.863E+05 100.0 4.586E+11 1.051E+13 2.108E+12 6.195E-10 181.6 1027 1.239E+08 1.036E+11 2.071E+07 2.851E+05 100.0 4.544E+11 1.047E+13 2.097E+12 6.167E-10 181.7 1027 1.229E+08 1.031E+11 2.061E+07 2.839E+05 100.0 4.500E+11 1.042E+13 2.086E+12 6.139E-10 181.9 1027 1.220E+08 1.026E+11 2.051E+07 2.826E+05 100.0 4.457E+11 1.038E+13 2.074E+12 6.111E-10 182.1 1027 1.210E+08 1.021E+11 2.042E+07 2.813E+05 100.0 4.414E+11 1.033E+13 2.063E+12 6.082E-10 182.2 1027 1.201E+08 1.016E+11 2.032E+07 2.800E+05 100.0 4.370E+11 1.028E+13 2.051E+12 6.052E-10 182.4 1027 1.191E+08 1.010E+11 2.022E+07 2.786E+05 100.0 4.327E+11 1.023E+13 2.040E+12 6.022E-10 182.5 1027 1.181E+08 1.005E+11 2.012E+07 2.772E+05 100.0 4.283E+11 1.018E+13 2.028E+12 5.991E-10 182.7 1027 1.172E+08 9.995E+10 2.001E+07 2.758E+05 100.0 4.239E+11 1.013E+13 2.016E+12 5.960E-10 182.8 1027 1.162E+08 9.939E+10 1.991E+07 2.743E+05 100.0 4.196E+11 1.008E+13 2.004E+12 5.928E-10 183.0 1027 1.152E+08 9.882E+10 1.981E+07 2.729E+05 100.0 4.152E+11 1.003E+13 1.992E+12 5.896E-10 183.2 1027 1.142E+08 9.825E+10 1.970E+07 2.714E+05 100.0 4.108E+11 9.978E+12 1.979E+12 5.863E-10 183.3 1027 1.132E+08 9.767E+10 1.960E+07 2.698E+05 100.0 4.065E+11 9.924E+12 1.967E+12 5.830E-10 183.5 1027 1.122E+08 9.709E+10 1.949E+07 2.683E+05 100.0 4.022E+11 9.870E+12 1.955E+12 5.797E-10 183.7 1027 1.112E+08 9.650E+10 1.939E+07 2.667E+05 100.0 3.978E+11 9.816E+12 1.942E+12 5.763E-10 183.8 1027 1.102E+08 9.591E+10 1.928E+07 2.652E+05 100.0 3.936E+11 9.761E+12 1.930E+12 5.730E-10 184.0 1027 1.092E+08 9.531E+10 1.917E+07 2.636E+05 100.0 3.893E+11 9.705E+12 1.917E+12 5.696E-10 184.1 1027 1.082E+08 9.472E+10 1.907E+07 2.620E+05 100.0 3.850E+11 9.649E+12 1.905E+12 5.662E-10 184.3 1027 1.072E+08 9.411E+10 1.896E+07 2.604E+05 100.0 3.808E+11 9.593E+12 1.892E+12 5.627E-10 184.5 1027 1.063E+08 9.351E+10 1.885E+07 2.588E+05 100.0 3.766E+11 9.537E+12 1.880E+12 5.593E-10 184.7 1027 1.053E+08 9.291E+10 1.875E+07 2.571E+05 100.0 3.725E+11 9.480E+12 1.867E+12 5.558E-10 184.8 1027 1.043E+08 9.230E+10 1.864E+07 2.555E+05 100.0 3.684E+11 9.423E+12 1.855E+12 5.524E-10 185.0 1027 1.033E+08 9.170E+10 1.853E+07 2.539E+05 100.0 3.643E+11 9.366E+12 1.842E+12 5.489E-10 185.2 1027 1.023E+08 9.110E+10 1.843E+07 2.522E+05 100.0 3.603E+11 9.309E+12 1.830E+12 5.455E-10 185.3 1027 1.014E+08 9.049E+10 1.832E+07 2.506E+05 100.0 3.563E+11 9.253E+12 1.818E+12 5.421E-10 185.5 1027 1.004E+08 8.989E+10 1.822E+07 2.490E+05 100.0 3.523E+11 9.196E+12 1.806E+12 5.386E-10 185.7 1027 9.949E+07 8.929E+10 1.811E+07 2.474E+05 100.0 3.484E+11 9.139E+12 1.794E+12 5.352E-10 185.8 1027 9.856E+07 8.870E+10 1.801E+07 2.457E+05 100.0 3.446E+11 9.083E+12 1.782E+12 5.318E-10 186.0 1027 9.763E+07 8.811E+10 1.791E+07 2.441E+05 100.0 3.408E+11 9.027E+12 1.770E+12 5.284E-10 186.2 1027 9.672E+07 8.752E+10 1.780E+07 2.425E+05 100.0 3.371E+11 8.971E+12 1.758E+12 5.251E-10 186.3 1027 9.581E+07 8.694E+10 1.770E+07 2.410E+05 100.0 3.334E+11 8.915E+12 1.746E+12 5.217E-10 186.5 1027 9.492E+07 8.636E+10 1.760E+07 2.394E+05 100.0 3.298E+11 8.860E+12 1.735E+12 5.184E-10 186.7 1027 9.404E+07 8.578E+10 1.750E+07 2.378E+05 100.0 3.263E+11 8.806E+12 1.723E+12 5.152E-10 186.8 1027 9.317E+07 8.522E+10 1.740E+07 2.363E+05 100.0 3.228E+11 8.752E+12 1.712E+12 5.119E-10 187.0 1027 9.232E+07 8.465E+10 1.731E+07 2.348E+05 100.0 3.193E+11 8.698E+12 1.701E+12 5.087E-10 187.2 1027 9.148E+07 8.410E+10 1.721E+07 2.332E+05 100.0 3.160E+11 8.645E+12 1.690E+12 5.055E-10 187.3 1027 9.065E+07 8.355E+10 1.712E+07 2.318E+05 100.0 3.127E+11 8.593E+12 1.680E+12 5.024E-10 187.5 1027 8.984E+07 8.301E+10 1.703E+07 2.303E+05 100.0 3.094E+11 8.541E+12 1.669E+12 4.993E-10 187.6 1027 8.904E+07 8.248E+10 1.693E+07 2.288E+05 100.0 3.063E+11 8.490E+12 1.659E+12 4.963E-10 187.8 1027 8.826E+07 8.196E+10 1.684E+07 2.274E+05 100.0 3.032E+11 8.440E+12 1.649E+12 4.933E-10 188.0 1027 8.749E+07 8.144E+10 1.676E+07 2.260E+05 100.0 3.002E+11 8.391E+12 1.639E+12 4.904E-10 188.1 1027 8.674E+07 8.094E+10 1.667E+07 2.247E+05 100.0 2.972E+11 8.342E+12 1.629E+12 4.875E-10 188.3 1027 8.601E+07 8.044E+10 1.658E+07 2.233E+05 100.0 2.943E+11 8.294E+12 1.619E+12 4.847E-10 188.4 1027 8.529E+07 7.996E+10 1.650E+07 2.220E+05 100.0 2.915E+11 8.248E+12 1.610E+12 4.819E-10 188.6 1027 8.459E+07 7.948E+10 1.642E+07 2.207E+05 100.0 2.888E+11 8.202E+12 1.601E+12 4.792E-10 188.7 1027 8.391E+07 7.901E+10 1.634E+07 2.194E+05 100.0 2.861E+11 8.157E+12 1.592E+12 4.765E-10 188.9 1027 8.325E+07 7.856E+10 1.626E+07 2.182E+05 100.0 2.835E+11 8.113E+12 1.583E+12 4.739E-10 189.0 1027 8.260E+07 7.812E+10 1.619E+07 2.170E+05 100.0 2.810E+11 8.070E+12 1.575E+12 4.714E-10 189.2 1027 8.197E+07 7.768E+10 1.611E+07 2.158E+05 100.0 2.786E+11 8.029E+12 1.567E+12 4.689E-10 189.3 1027 8.136E+07 7.726E+10 1.604E+07 2.147E+05 100.0 2.762E+11 7.988E+12 1.559E+12 4.665E-10 189.5 1027 8.077E+07 7.685E+10 1.597E+07 2.136E+05 100.0 2.740E+11 7.948E+12 1.551E+12 4.642E-10 189.6 1027 8.020E+07 7.645E+10 1.590E+07 2.125E+05 100.0 2.718E+11 7.910E+12 1.544E+12 4.619E-10 189.7 1027 7.964E+07 7.607E+10 1.584E+07 2.115E+05 100.0 2.696E+11 7.873E+12 1.537E+12 4.597E-10 189.9 1027 7.911E+07 7.570E+10 1.578E+07 2.105E+05 100.0 2.676E+11 7.837E+12 1.530E+12 4.576E-10 190.0 1027 7.859E+07 7.534E+10 1.571E+07 2.095E+05 100.0 2.656E+11 7.802E+12 1.523E+12 4.556E-10 190.1 1027 7.810E+07 7.499E+10 1.566E+07 2.086E+05 100.0 2.637E+11 7.768E+12 1.517E+12 4.536E-10 190.2 1027 7.762E+07 7.465E+10 1.560E+07 2.077E+05 100.0 2.619E+11 7.735E+12 1.511E+12 4.517E-10 190.4 1027 7.716E+07 7.433E+10 1.555E+07 2.069E+05 100.0 2.602E+11 7.704E+12 1.505E+12 4.499E-10 190.5 1027 7.673E+07 7.402E+10 1.549E+07 2.061E+05 100.0 2.585E+11 7.674E+12 1.500E+12 4.481E-10 190.6 1027 7.631E+07 7.373E+10 1.544E+07 2.053E+05 100.0 2.570E+11 7.645E+12 1.495E+12 4.465E-10 190.7 1027 7.591E+07 7.345E+10 1.540E+07 2.045E+05 100.0 2.555E+11 7.618E+12 1.490E+12 4.449E-10 190.8 1027 7.553E+07 7.318E+10 1.535E+07 2.038E+05 100.0 2.540E+11 7.592E+12 1.485E+12 4.433E-10 190.9 1027 7.518E+07 7.292E+10 1.531E+07 2.032E+05 100.0 2.527E+11 7.567E+12 1.480E+12 4.419E-10 191.0 1027 7.484E+07 7.268E+10 1.527E+07 2.025E+05 100.0 2.514E+11 7.544E+12 1.476E+12 4.405E-10 191.1 1027 7.452E+07 7.246E+10 1.523E+07 2.020E+05 100.0 2.502E+11 7.522E+12 1.472E+12 4.393E-10 191.2 1027 7.422E+07 7.224E+10 1.520E+07 2.014E+05 100.0 2.491E+11 7.501E+12 1.469E+12 4.381E-10 191.3 1027 7.395E+07 7.205E+10 1.516E+07 2.009E+05 100.0 2.481E+11 7.481E+12 1.466E+12 4.369E-10 191.4 1027 7.369E+07 7.186E+10 1.513E+07 2.004E+05 100.0 2.472E+11 7.463E+12 1.463E+12 4.359E-10 191.5 1027 7.346E+07 7.169E+10 1.510E+07 2.000E+05 100.0 2.463E+11 7.446E+12 1.460E+12 4.350E-10 191.6 1027 7.324E+07 7.154E+10 1.508E+07 1.996E+05 100.0 2.455E+11 7.431E+12 1.458E+12 4.341E-10 191.6 1027 7.305E+07 7.139E+10 1.506E+07 1.993E+05 100.0 2.448E+11 7.417E+12 1.455E+12 4.333E-10 191.7 1027 7.287E+07 7.127E+10 1.504E+07 1.989E+05 100.0 2.442E+11 7.405E+12 1.454E+12 4.326E-10 191.8 1027 7.272E+07 7.115E+10 1.502E+07 1.987E+05 100.0 2.436E+11 7.393E+12 1.452E+12 4.320E-10 191.9 1027 7.259E+07 7.105E+10 1.500E+07 1.984E+05 100.0 2.432E+11 7.384E+12 1.451E+12 4.314E-10 191.9 1027 7.248E+07 7.097E+10 1.499E+07 1.982E+05 100.0 2.428E+11 7.375E+12 1.450E+12 4.310E-10 192.0 1027 7.239E+07 7.090E+10 1.498E+07 1.981E+05 100.0 2.425E+11 7.368E+12 1.449E+12 4.306E-10 192.0 1027 7.232E+07 7.084E+10 1.497E+07 1.980E+05 100.0 2.423E+11 7.363E+12 1.449E+12 4.303E-10 192.1 1027 7.227E+07 7.080E+10 1.497E+07 1.979E+05 100.0 2.421E+11 7.358E+12 1.449E+12 4.301E-10 192.1 1027 7.224E+07 7.078E+10 1.496E+07 1.979E+05 100.0 2.420E+11 7.355E+12 1.449E+12 4.300E-10 192.2 1027 7.223E+07 7.076E+10 1.496E+07 1.979E+05 100.0 2.421E+11 7.354E+12 1.449E+12 4.299E-10 192.2 1027 7.224E+07 7.076E+10 1.497E+07 1.979E+05 100.0 2.421E+11 7.354E+12 1.450E+12 4.300E-10 192.2 1027 7.227E+07 7.078E+10 1.497E+07 1.980E+05 100.0 2.423E+11 7.355E+12 1.451E+12 4.301E-10 192.3 1027 7.233E+07 7.081E+10 1.498E+07 1.981E+05 100.0 2.426E+11 7.358E+12 1.453E+12 4.303E-10 192.3 1027 7.240E+07 7.086E+10 1.499E+07 1.982E+05 100.0 2.429E+11 7.362E+12 1.454E+12 4.306E-10 192.3 1027 7.250E+07 7.091E+10 1.500E+07 1.984E+05 100.0 2.433E+11 7.367E+12 1.456E+12 4.310E-10 192.3 1027 7.262E+07 7.099E+10 1.502E+07 1.987E+05 100.0 2.438E+11 7.374E+12 1.458E+12 4.314E-10 192.4 1027 7.276E+07 7.107E+10 1.503E+07 1.989E+05 100.0 2.444E+11 7.382E+12 1.461E+12 4.319E-10 192.4 1027 7.291E+07 7.117E+10 1.505E+07 1.992E+05 100.0 2.451E+11 7.392E+12 1.463E+12 4.325E-10 192.4 1027 7.309E+07 7.129E+10 1.508E+07 1.996E+05 100.0 2.458E+11 7.403E+12 1.466E+12 4.332E-10 192.4 1027 7.330E+07 7.142E+10 1.510E+07 2.000E+05 100.0 2.466E+11 7.415E+12 1.470E+12 4.340E-10 192.4 1027 7.352E+07 7.156E+10 1.513E+07 2.004E+05 100.0 2.475E+11 7.428E+12 1.473E+12 4.349E-10 192.4 1027 7.376E+07 7.172E+10 1.516E+07 2.008E+05 100.0 2.485E+11 7.443E+12 1.477E+12 4.358E-10 192.4 1027 7.402E+07 7.189E+10 1.519E+07 2.013E+05 100.0 2.496E+11 7.459E+12 1.481E+12 4.368E-10 192.3 1027 7.431E+07 7.207E+10 1.523E+07 2.018E+05 100.0 2.508E+11 7.477E+12 1.485E+12 4.379E-10 192.3 1027 7.461E+07 7.226E+10 1.526E+07 2.024E+05 100.0 2.520E+11 7.496E+12 1.490E+12 4.390E-10 192.3 1027 7.494E+07 7.247E+10 1.530E+07 2.029E+05 100.0 2.533E+11 7.516E+12 1.495E+12 4.403E-10 192.3 1027 7.529E+07 7.270E+10 1.534E+07 2.036E+05 100.0 2.548E+11 7.537E+12 1.500E+12 4.416E-10 192.3 1027 7.566E+07 7.293E+10 1.539E+07 2.042E+05 100.0 2.563E+11 7.560E+12 1.505E+12 4.430E-10 192.2 1027 7.605E+07 7.318E+10 1.544E+07 2.049E+05 100.0 2.578E+11 7.583E+12 1.511E+12 4.444E-10 192.2 1027 7.646E+07 7.344E+10 1.548E+07 2.056E+05 100.0 2.595E+11 7.608E+12 1.517E+12 4.460E-10 192.1 1027 7.689E+07 7.371E+10 1.553E+07 2.063E+05 100.0 2.613E+11 7.634E+12 1.523E+12 4.476E-10 192.1 1027 7.734E+07 7.400E+10 1.559E+07 2.071E+05 100.0 2.631E+11 7.662E+12 1.529E+12 4.493E-10 192.0 1027 7.781E+07 7.430E+10 1.564E+07 2.079E+05 100.0 2.650E+11 7.690E+12 1.535E+12 4.510E-10 192.0 1027 7.831E+07 7.461E+10 1.570E+07 2.087E+05 100.0 2.670E+11 7.720E+12 1.542E+12 4.528E-10 191.9 1027 7.882E+07 7.493E+10 1.576E+07 2.096E+05 100.0 2.691E+11 7.751E+12 1.549E+12 4.547E-10 191.9 1027 7.936E+07 7.526E+10 1.582E+07 2.105E+05 100.0 2.713E+11 7.783E+12 1.556E+12 4.566E-10 191.8 1027 7.991E+07 7.561E+10 1.589E+07 2.114E+05 100.0 2.736E+11 7.816E+12 1.564E+12 4.586E-10 191.7 1027 8.049E+07 7.596E+10 1.595E+07 2.123E+05 100.0 2.760E+11 7.849E+12 1.571E+12 4.607E-10 191.7 1027 8.108E+07 7.633E+10 1.602E+07 2.132E+05 100.0 2.784E+11 7.884E+12 1.579E+12 4.628E-10 191.6 1027 8.170E+07 7.671E+10 1.609E+07 2.142E+05 100.0 2.810E+11 7.920E+12 1.587E+12 4.650E-10 191.5 1027 8.234E+07 7.709E+10 1.616E+07 2.152E+05 100.0 2.836E+11 7.957E+12 1.595E+12 4.673E-10 191.4 1027 8.300E+07 7.749E+10 1.624E+07 2.162E+05 100.0 2.863E+11 7.995E+12 1.604E+12 4.696E-10 191.4 1027 8.367E+07 7.790E+10 1.631E+07 2.173E+05 100.0 2.891E+11 8.034E+12 1.612E+12 4.720E-10 191.3 1027 8.437E+07 7.831E+10 1.639E+07 2.183E+05 100.0 2.920E+11 8.074E+12 1.621E+12 4.744E-10 191.2 1027 8.508E+07 7.874E+10 1.647E+07 2.194E+05 100.0 2.950E+11 8.114E+12 1.630E+12 4.768E-10 191.1 1027 8.582E+07 7.917E+10 1.655E+07 2.205E+05 100.0 2.980E+11 8.156E+12 1.639E+12 4.794E-10 191.0 1027 8.657E+07 7.962E+10 1.663E+07 2.216E+05 100.0 3.012E+11 8.198E+12 1.648E+12 4.819E-10 190.9 1027 8.735E+07 8.007E+10 1.671E+07 2.227E+05 100.0 3.044E+11 8.241E+12 1.658E+12 4.845E-10 190.8 1027 8.814E+07 8.053E+10 1.680E+07 2.238E+05 100.0 3.078E+11 8.285E+12 1.667E+12 4.872E-10 190.7 1027 8.895E+07 8.099E+10 1.689E+07 2.249E+05 100.0 3.112E+11 8.329E+12 1.677E+12 4.899E-10 190.6 1027 8.977E+07 8.147E+10 1.697E+07 2.261E+05 100.0 3.147E+11 8.374E+12 1.687E+12 4.926E-10 190.5 1027 9.062E+07 8.195E+10 1.706E+07 2.273E+05 100.0 3.183E+11 8.419E+12 1.697E+12 4.954E-10 190.3 1027 9.148E+07 8.243E+10 1.715E+07 2.284E+05 100.0 3.219E+11 8.465E+12 1.706E+12 4.982E-10 190.2 1027 9.236E+07 8.292E+10 1.725E+07 2.296E+05 100.0 3.257E+11 8.512E+12 1.717E+12 5.010E-10 190.1 1027 9.326E+07 8.342E+10 1.734E+07 2.308E+05 100.0 3.295E+11 8.559E+12 1.727E+12 5.039E-10 190.0 1027 9.417E+07 8.393E+10 1.743E+07 2.319E+05 100.0 3.334E+11 8.606E+12 1.737E+12 5.068E-10 189.9 1027 9.510E+07 8.443E+10 1.753E+07 2.331E+05 100.0 3.374E+11 8.654E+12 1.747E+12 5.097E-10 189.7 1027 9.604E+07 8.495E+10 1.762E+07 2.343E+05 100.0 3.415E+11 8.702E+12 1.758E+12 5.126E-10 189.6 1027 9.700E+07 8.546E+10 1.772E+07 2.355E+05 100.0 3.457E+11 8.751E+12 1.768E+12 5.156E-10 189.5 1027 9.797E+07 8.598E+10 1.782E+07 2.366E+05 100.0 3.499E+11 8.800E+12 1.779E+12 5.185E-10 189.4 1027 9.896E+07 8.650E+10 1.792E+07 2.378E+05 100.0 3.542E+11 8.849E+12 1.789E+12 5.215E-10 189.2 1027 9.996E+07 8.703E+10 1.802E+07 2.390E+05 100.0 3.586E+11 8.898E+12 1.800E+12 5.245E-10 189.1 1027 1.010E+08 8.755E+10 1.812E+07 2.401E+05 100.0 3.631E+11 8.947E+12 1.810E+12 5.275E-10 189.0 1027 1.020E+08 8.808E+10 1.822E+07 2.413E+05 100.0 3.676E+11 8.996E+12 1.821E+12 5.305E-10 188.8 1027 1.030E+08 8.861E+10 1.832E+07 2.424E+05 100.0 3.722E+11 9.045E+12 1.831E+12 5.335E-10 188.7 1027 1.041E+08 8.913E+10 1.842E+07 2.435E+05 100.0 3.769E+11 9.094E+12 1.842E+12 5.365E-10 188.6 1027 1.051E+08 8.966E+10 1.852E+07 2.447E+05 100.0 3.816E+11 9.143E+12 1.852E+12 5.395E-10 188.4 1027 1.062E+08 9.019E+10 1.862E+07 2.458E+05 100.0 3.864E+11 9.192E+12 1.863E+12 5.425E-10 188.3 1027 1.073E+08 9.071E+10 1.872E+07 2.468E+05 100.0 3.912E+11 9.241E+12 1.873E+12 5.455E-10 188.1 1027 1.084E+08 9.124E+10 1.883E+07 2.479E+05 100.0 3.961E+11 9.289E+12 1.884E+12 5.484E-10 188.0 1027 1.094E+08 9.176E+10 1.893E+07 2.489E+05 100.0 4.011E+11 9.338E+12 1.894E+12 5.514E-10 187.8 1027 1.105E+08 9.228E+10 1.903E+07 2.500E+05 100.0 4.061E+11 9.385E+12 1.904E+12 5.543E-10 187.7 1027 1.116E+08 9.280E+10 1.913E+07 2.510E+05 100.0 4.112E+11 9.433E+12 1.914E+12 5.572E-10 187.5 1027 1.128E+08 9.331E+10 1.923E+07 2.519E+05 100.0 4.163E+11 9.479E+12 1.924E+12 5.601E-10 187.4 1027 1.139E+08 9.381E+10 1.933E+07 2.529E+05 100.0 4.214E+11 9.526E+12 1.934E+12 5.630E-10 187.3 1027 1.150E+08 9.432E+10 1.943E+07 2.538E+05 100.0 4.266E+11 9.571E+12 1.944E+12 5.658E-10 187.1 1027 1.161E+08 9.481E+10 1.953E+07 2.547E+05 100.0 4.318E+11 9.616E+12 1.954E+12 5.686E-10 187.0 1027 1.172E+08 9.530E+10 1.963E+07 2.556E+05 100.0 4.371E+11 9.661E+12 1.963E+12 5.713E-10 186.8 1027 1.183E+08 9.579E+10 1.973E+07 2.564E+05 100.0 4.424E+11 9.705E+12 1.973E+12 5.740E-10 186.7 1027 1.194E+08 9.626E+10 1.983E+07 2.572E+05 100.0 4.477E+11 9.747E+12 1.982E+12 5.767E-10 186.5 1027 1.205E+08 9.673E+10 1.993E+07 2.580E+05 100.0 4.530E+11 9.789E+12 1.991E+12 5.793E-10 186.4 1027 1.217E+08 9.719E+10 2.002E+07 2.587E+05 100.0 4.583E+11 9.831E+12 2.000E+12 5.818E-10 186.2 1027 1.228E+08 9.764E+10 2.012E+07 2.594E+05 100.0 4.637E+11 9.871E+12 2.009E+12 5.843E-10 186.1 1027 1.239E+08 9.809E+10 2.021E+07 2.601E+05 100.0 4.690E+11 9.910E+12 2.017E+12 5.868E-10 185.9 1027 1.250E+08 9.852E+10 2.030E+07 2.607E+05 100.0 4.744E+11 9.948E+12 2.025E+12 5.892E-10 185.8 1027 1.260E+08 9.894E+10 2.039E+07 2.613E+05 100.0 4.797E+11 9.986E+12 2.033E+12 5.915E-10 185.6 1027 1.271E+08 9.936E+10 2.048E+07 2.618E+05 100.0 4.851E+11 1.002E+13 2.041E+12 5.938E-10 185.5 1027 1.282E+08 9.976E+10 2.057E+07 2.623E+05 100.0 4.904E+11 1.006E+13 2.049E+12 5.960E-10 185.3 1027 1.293E+08 1.001E+11 2.066E+07 2.628E+05 100.0 4.958E+11 1.009E+13 2.056E+12 5.981E-10 185.2 1027 1.303E+08 1.005E+11 2.074E+07 2.632E+05 100.0 5.011E+11 1.012E+13 2.064E+12 6.001E-10 185.0 1027 1.313E+08 1.009E+11 2.083E+07 2.636E+05 100.0 5.063E+11 1.015E+13 2.071E+12 6.021E-10 184.9 1027 1.324E+08 1.012E+11 2.091E+07 2.639E+05 100.0 5.116E+11 1.018E+13 2.077E+12 6.040E-10 184.7 1027 1.334E+08 1.016E+11 2.099E+07 2.642E+05 100.0 5.168E+11 1.021E+13 2.084E+12 6.059E-10 184.6 1027 1.344E+08 1.019E+11 2.107E+07 2.645E+05 100.0 5.220E+11 1.024E+13 2.090E+12 6.076E-10 184.4 1027 1.353E+08 1.022E+11 2.114E+07 2.647E+05 100.0 5.271E+11 1.027E+13 2.096E+12 6.093E-10 184.3 1027 1.363E+08 1.025E+11 2.122E+07 2.649E+05 100.0 5.322E+11 1.029E+13 2.101E+12 6.109E-10 184.1 1027 1.373E+08 1.028E+11 2.129E+07 2.650E+05 100.0 5.372E+11 1.031E+13 2.107E+12 6.124E-10 184.0 1027 1.382E+08 1.031E+11 2.136E+07 2.651E+05 100.0 5.422E+11 1.034E+13 2.112E+12 6.138E-10 183.9 1027 1.391E+08 1.033E+11 2.143E+07 2.651E+05 100.0 5.471E+11 1.036E+13 2.117E+12 6.152E-10 183.7 1027 1.400E+08 1.036E+11 2.149E+07 2.651E+05 100.0 5.519E+11 1.037E+13 2.121E+12 6.164E-10 183.6 1027 1.408E+08 1.038E+11 2.156E+07 2.651E+05 100.0 5.567E+11 1.039E+13 2.125E+12 6.176E-10 183.4 1027 1.417E+08 1.040E+11 2.162E+07 2.650E+05 100.0 5.614E+11 1.041E+13 2.129E+12 6.187E-10 183.3 1027 1.425E+08 1.042E+11 2.168E+07 2.649E+05 100.0 5.660E+11 1.042E+13 2.133E+12 6.197E-10 183.2 1027 1.433E+08 1.044E+11 2.174E+07 2.647E+05 100.0 5.705E+11 1.043E+13 2.136E+12 6.206E-10 183.0 1027 1.441E+08 1.046E+11 2.179E+07 2.645E+05 100.0 5.750E+11 1.045E+13 2.139E+12 6.214E-10 182.9 1027 1.448E+08 1.047E+11 2.184E+07 2.642E+05 100.0 5.793E+11 1.046E+13 2.142E+12 6.221E-10 182.8 1027 1.455E+08 1.048E+11 2.189E+07 2.639E+05 100.0 5.835E+11 1.046E+13 2.144E+12 6.227E-10 182.6 1027 1.462E+08 1.050E+11 2.194E+07 2.636E+05 100.0 5.877E+11 1.047E+13 2.146E+12 6.233E-10 182.5 1027 1.469E+08 1.051E+11 2.199E+07 2.632E+05 100.0 5.917E+11 1.048E+13 2.148E+12 6.237E-10 182.4 1027 1.475E+08 1.051E+11 2.203E+07 2.628E+05 100.0 5.957E+11 1.048E+13 2.150E+12 6.241E-10 182.2 1027 1.481E+08 1.052E+11 2.207E+07 2.623E+05 100.0 5.995E+11 1.048E+13 2.151E+12 6.243E-10 182.1 1027 1.487E+08 1.053E+11 2.211E+07 2.618E+05 100.0 6.032E+11 1.048E+13 2.152E+12 6.245E-10 182.0 1027 1.493E+08 1.053E+11 2.214E+07 2.613E+05 100.0 6.068E+11 1.048E+13 2.153E+12 6.246E-10 181.9 1027 1.498E+08 1.053E+11 2.217E+07 2.607E+05 100.0 6.103E+11 1.048E+13 2.153E+12 6.246E-10 181.7 1027 1.503E+08 1.053E+11 2.221E+07 2.601E+05 100.0 6.137E+11 1.047E+13 2.153E+12 6.245E-10 181.6 1027 1.508E+08 1.053E+11 2.223E+07 2.595E+05 100.0 6.169E+11 1.047E+13 2.153E+12 6.244E-10 181.5 1027 1.512E+08 1.053E+11 2.226E+07 2.588E+05 100.0 6.200E+11 1.046E+13 2.153E+12 6.241E-10 181.4 1027 1.516E+08 1.053E+11 2.228E+07 2.582E+05 100.0 6.230E+11 1.046E+13 2.152E+12 6.238E-10 181.3 1027 1.520E+08 1.052E+11 2.230E+07 2.574E+05 100.0 6.259E+11 1.045E+13 2.151E+12 6.234E-10 181.1 1027 1.523E+08 1.052E+11 2.232E+07 2.567E+05 100.0 6.286E+11 1.044E+13 2.150E+12 6.229E-10 181.0 1027 1.527E+08 1.051E+11 2.234E+07 2.559E+05 100.0 6.312E+11 1.042E+13 2.149E+12 6.224E-10 180.9 1027 1.530E+08 1.050E+11 2.235E+07 2.551E+05 100.0 6.337E+11 1.041E+13 2.147E+12 6.218E-10 180.8 1027 1.532E+08 1.049E+11 2.236E+07 2.543E+05 100.0 6.361E+11 1.040E+13 2.145E+12 6.211E-10 180.7 1027 1.535E+08 1.048E+11 2.237E+07 2.535E+05 100.0 6.383E+11 1.038E+13 2.143E+12 6.203E-10 180.6 1027 1.537E+08 1.047E+11 2.238E+07 2.526E+05 100.0 6.404E+11 1.037E+13 2.141E+12 6.195E-10 180.5 1027 1.538E+08 1.045E+11 2.239E+07 2.517E+05 100.0 6.423E+11 1.035E+13 2.139E+12 6.186E-10 180.4 1027 1.540E+08 1.044E+11 2.239E+07 2.508E+05 100.0 6.441E+11 1.033E+13 2.136E+12 6.176E-10 180.3 1027 1.541E+08 1.042E+11 2.239E+07 2.499E+05 100.0 6.458E+11 1.031E+13 2.133E+12 6.166E-10 180.2 1027 1.542E+08 1.041E+11 2.239E+07 2.490E+05 100.0 6.474E+11 1.029E+13 2.130E+12 6.155E-10 180.1 1027 1.543E+08 1.039E+11 2.239E+07 2.480E+05 100.0 6.488E+11 1.027E+13 2.127E+12 6.144E-10 180.0 1027 1.543E+08 1.037E+11 2.238E+07 2.471E+05 100.0 6.501E+11 1.025E+13 2.124E+12 6.132E-10 179.9 1027 1.544E+08 1.035E+11 2.238E+07 2.461E+05 100.0 6.513E+11 1.022E+13 2.120E+12 6.120E-10 179.8 1027 1.544E+08 1.033E+11 2.237E+07 2.452E+05 100.0 6.524E+11 1.020E+13 2.117E+12 6.107E-10 179.7 1027 1.543E+08 1.031E+11 2.236E+07 2.442E+05 100.0 6.533E+11 1.018E+13 2.113E+12 6.094E-10 179.6 1027 1.543E+08 1.029E+11 2.235E+07 2.432E+05 100.0 6.541E+11 1.015E+13 2.109E+12 6.080E-10 179.5 1027 1.542E+08 1.027E+11 2.233E+07 2.422E+05 100.0 6.548E+11 1.013E+13 2.105E+12 6.067E-10 179.4 1027 1.541E+08 1.024E+11 2.232E+07 2.412E+05 100.0 6.554E+11 1.010E+13 2.101E+12 6.052E-10 179.3 1027 1.540E+08 1.022E+11 2.230E+07 2.402E+05 100.0 6.558E+11 1.007E+13 2.097E+12 6.038E-10 179.2 1027 1.539E+08 1.019E+11 2.229E+07 2.392E+05 100.0 6.562E+11 1.005E+13 2.093E+12 6.023E-10 179.1 1027 1.537E+08 1.017E+11 2.227E+07 2.383E+05 100.0 6.564E+11 1.002E+13 2.088E+12 6.008E-10 179.1 1027 1.535E+08 1.015E+11 2.225E+07 2.373E+05 100.0 6.566E+11 9.991E+12 2.084E+12 5.993E-10 179.0 1027 1.533E+08 1.012E+11 2.223E+07 2.363E+05 100.0 6.566E+11 9.963E+12 2.080E+12 5.977E-10 178.9 1027 1.531E+08 1.009E+11 2.221E+07 2.353E+05 100.0 6.566E+11 9.935E+12 2.075E+12 5.962E-10 178.8 1027 1.529E+08 1.007E+11 2.219E+07 2.344E+05 100.0 6.564E+11 9.907E+12 2.071E+12 5.946E-10 178.7 1027 1.527E+08 1.004E+11 2.216E+07 2.334E+05 100.0 6.561E+11 9.879E+12 2.066E+12 5.930E-10 178.7 1027 1.524E+08 1.002E+11 2.214E+07 2.325E+05 100.0 6.558E+11 9.850E+12 2.062E+12 5.914E-10 178.6 1027 1.521E+08 9.989E+10 2.211E+07 2.316E+05 100.0 6.554E+11 9.821E+12 2.058E+12 5.898E-10 178.5 1027 1.519E+08 9.962E+10 2.209E+07 2.306E+05 100.0 6.549E+11 9.793E+12 2.053E+12 5.882E-10 178.4 1027 1.516E+08 9.935E+10 2.206E+07 2.297E+05 100.0 6.543E+11 9.765E+12 2.049E+12 5.866E-10 178.4 1027 1.513E+08 9.909E+10 2.204E+07 2.289E+05 100.0 6.536E+11 9.736E+12 2.044E+12 5.851E-10 178.3 1027 1.510E+08 9.883E+10 2.201E+07 2.280E+05 100.0 6.529E+11 9.708E+12 2.040E+12 5.835E-10 178.2 1027 1.506E+08 9.856E+10 2.198E+07 2.271E+05 100.0 6.521E+11 9.680E+12 2.036E+12 5.819E-10 178.2 1027 1.503E+08 9.830E+10 2.195E+07 2.263E+05 100.0 6.513E+11 9.653E+12 2.031E+12 5.804E-10 178.1 1027 1.500E+08 9.804E+10 2.193E+07 2.255E+05 100.0 6.504E+11 9.625E+12 2.027E+12 5.788E-10 178.0 1027 1.496E+08 9.779E+10 2.190E+07 2.247E+05 100.0 6.494E+11 9.598E+12 2.023E+12 5.773E-10 178.0 1027 1.493E+08 9.753E+10 2.187E+07 2.239E+05 100.0 6.484E+11 9.572E+12 2.019E+12 5.758E-10 177.9 1027 1.489E+08 9.728E+10 2.184E+07 2.232E+05 100.0 6.473E+11 9.545E+12 2.015E+12 5.743E-10 177.8 1027 1.486E+08 9.704E+10 2.182E+07 2.224E+05 100.0 6.462E+11 9.520E+12 2.011E+12 5.729E-10 177.8 1027 1.482E+08 9.680E+10 2.179E+07 2.217E+05 100.0 6.450E+11 9.495E+12 2.007E+12 5.715E-10 177.7 1027 1.479E+08 9.656E+10 2.176E+07 2.211E+05 100.0 6.438E+11 9.470E+12 2.004E+12 5.701E-10 177.7 1027 1.475E+08 9.633E+10 2.173E+07 2.204E+05 100.0 6.426E+11 9.446E+12 2.000E+12 5.687E-10 177.6 1027 1.471E+08 9.611E+10 2.171E+07 2.198E+05 100.0 6.413E+11 9.422E+12 1.997E+12 5.674E-10 177.5 1027 1.468E+08 9.589E+10 2.168E+07 2.192E+05 100.0 6.401E+11 9.400E+12 1.993E+12 5.661E-10 177.5 1027 1.464E+08 9.568E+10 2.166E+07 2.186E+05 100.0 6.388E+11 9.377E+12 1.990E+12 5.649E-10 177.4 1027 1.461E+08 9.547E+10 2.163E+07 2.181E+05 100.0 6.374E+11 9.356E+12 1.987E+12 5.637E-10 177.4 1027 1.457E+08 9.527E+10 2.161E+07 2.176E+05 100.0 6.361E+11 9.335E+12 1.984E+12 5.625E-10 177.3 1027 1.453E+08 9.508E+10 2.158E+07 2.171E+05 100.0 6.347E+11 9.316E+12 1.982E+12 5.614E-10 177.3 1027 1.450E+08 9.490E+10 2.156E+07 2.167E+05 100.0 6.334E+11 9.297E+12 1.979E+12 5.603E-10 177.2 1027 1.447E+08 9.472E+10 2.154E+07 2.163E+05 100.0 6.320E+11 9.278E+12 1.977E+12 5.593E-10 177.2 1027 1.443E+08 9.455E+10 2.152E+07 2.159E+05 100.0 6.307E+11 9.261E+12 1.974E+12 5.584E-10 177.1 1027 1.440E+08 9.439E+10 2.149E+07 2.155E+05 100.0 6.293E+11 9.245E+12 1.972E+12 5.574E-10 177.1 1027 1.437E+08 9.424E+10 2.147E+07 2.152E+05 100.0 6.279E+11 9.229E+12 1.970E+12 5.566E-10 177.1 1027 1.433E+08 9.410E+10 2.146E+07 2.149E+05 100.0 6.266E+11 9.215E+12 1.969E+12 5.558E-10 177.0 1027 1.430E+08 9.397E+10 2.144E+07 2.147E+05 100.0 6.252E+11 9.201E+12 1.967E+12 5.550E-10 177.0 1027 1.427E+08 9.385E+10 2.142E+07 2.145E+05 100.0 6.239E+11 9.188E+12 1.966E+12 5.543E-10 176.9 1027 1.424E+08 9.373E+10 2.141E+07 2.143E+05 100.0 6.225E+11 9.177E+12 1.965E+12 5.536E-10 176.9 1027 1.421E+08 9.363E+10 2.139E+07 2.142E+05 100.0 6.212E+11 9.166E+12 1.964E+12 5.531E-10 176.8 1027 1.419E+08 9.354E+10 2.138E+07 2.140E+05 100.0 6.199E+11 9.156E+12 1.963E+12 5.525E-10 176.8 1027 1.416E+08 9.345E+10 2.136E+07 2.140E+05 100.0 6.186E+11 9.148E+12 1.962E+12 5.521E-10 176.8 1027 1.413E+08 9.338E+10 2.135E+07 2.139E+05 100.0 6.174E+11 9.140E+12 1.962E+12 5.517E-10 176.7 1027 1.411E+08 9.332E+10 2.134E+07 2.139E+05 100.0 6.161E+11 9.134E+12 1.962E+12 5.513E-10 176.7 1027 1.408E+08 9.327E+10 2.133E+07 2.140E+05 100.0 6.149E+11 9.129E+12 1.962E+12 5.510E-10 176.7 1027 1.406E+08 9.322E+10 2.133E+07 2.141E+05 100.0 6.138E+11 9.124E+12 1.962E+12 5.508E-10 176.6 1027 1.404E+08 9.319E+10 2.132E+07 2.142E+05 100.0 6.126E+11 9.121E+12 1.963E+12 5.507E-10 176.6 1027 1.402E+08 9.317E+10 2.132E+07 2.143E+05 100.0 6.115E+11 9.119E+12 1.963E+12 5.506E-10 176.6 1027 1.400E+08 9.317E+10 2.131E+07 2.145E+05 100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05fluids-0.1.78/tests/nrlmsise00/nrlmsise_00_test.py0000644000175000017500000001457113632560624020552 0ustar kurtkurt# -*- coding: utf-8 -*- """ 12/19/2013 Author: Joshua Milas Python Version: 3.3.2 The NRLMSISE-00 model 2001 ported to python Based off of Dominik Brodowski 20100516 version available here http://www.brodo.de/english/pub/nrlmsise/ This is the test program, and the output should be compaired to The MIT License (MIT) Copyright (c) 2016 Joshua Milas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* -------------------------------------------------------------------- */ /* --------- N R L M S I S E - 0 0 M O D E L 2 0 0 1 ---------- */ /* -------------------------------------------------------------------- */ /* This file is part of the NRLMSISE-00 C source code package - release * 20041227 * * The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and * Doug Drob. They also wrote a NRLMSISE-00 distribution package in * FORTRAN which is available at * http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm * * Dominik Brodowski implemented and maintains this C version. You can * reach him at mail@brodo.de. See the file "DOCUMENTATION" for details, * and check http://www.brodo.de/english/pub/nrlmsise/index.html for * updated releases of this package. */ """ from __future__ import division, print_function import time from fluids.nrlmsise00.nrlmsise_00 import gtd7 from fluids.nrlmsise00.nrlmsise_00_header import nrlmsise_output, nrlmsise_input, nrlmsise_flags , ap_array import pytest @pytest.mark.slow def test_gtd7(): output = [nrlmsise_output() for _ in range(17)] Input = [nrlmsise_input() for _ in range(17)] flags = nrlmsise_flags() aph = ap_array() for i in range(7): aph.a[i]=100 flags.switches[0] = 0 for i in range(1, 24): flags.switches[i]=1 for i in range(17): Input[i].doy=172; Input[i].year=0; #/* without effect */ Input[i].sec=29000; Input[i].alt=400; Input[i].g_lat=60; Input[i].g_long=-70; Input[i].lst=16; Input[i].f107A=150; Input[i].f107=150; Input[i].ap=4; Input[1].doy=81; Input[2].sec=75000; Input[2].alt=1000; Input[3].alt=100; Input[10].alt=0; Input[11].alt=10; Input[12].alt=30; Input[13].alt=50; Input[14].alt=70; Input[16].alt=100; Input[4].g_lat=0; Input[5].g_long=0; Input[6].lst=4; Input[7].f107A=70; Input[8].f107=180; Input[9].ap=40; Input[15].ap_a = aph Input[16].ap_a = aph #evaluate 0 to 14 for i in range(15): gtd7(Input[i], flags, output[i]) #/* evaluate 15 and 16 */ flags.switches[9] = -1 for i in range(15, 17): gtd7(Input[i], flags, output[i]) #/* output type 1 */ for i in range(17): print('\n', end='') for j in range(9): print('%E ' % output[i].d[j], end='') print('%E ' % output[i].t[0], end='') print('%E ' % output[i].t[1]) #/* DL omitted */ #/* output type 2 */ for i in range(3): print('\n', end='') print("\nDAY ", end='') for j in range(5): print(" %3i" % Input[i*5+j].doy, end='') print("\nUT ", end='') for j in range(5): print(" %5.0f" % Input[i*5+j].sec, end='') print("\nALT ", end='') for j in range(5): print(" %4.0f" % Input[i*5+j].alt, end='') print("\nLAT ", end='') for j in range(5): print(" %3.0f" % Input[i*5+j].g_lat, end='') print("\nLONG ", end='') for j in range(5): print(" %3.0f" % Input[i*5+j].g_long, end='') print("\nLST ", end='') for j in range(5): print(" %5.0f" % Input[i*5+j].lst, end='') print("\nF107A ", end='') for j in range(5): print(" %3.0f" % Input[i*5+j].f107A, end='') print("\nF107 ", end='') for j in range(5): print(" %3.0f" % Input[i*5+j].f107, end='') print('\n\n', end='') print("\nTINF ", end='') for j in range(5): print(" %7.2f" % output[i*5+j].t[0], end='') print("\nTG ", end='') for j in range(5): print(" %7.2f" % output[i*5+j].t[1], end='') print("\nHE ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[0], end='') print("\nO ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[1], end='') print("\nN2 ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[2], end='') print("\nO2 ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[3], end='') print("\nAR ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[4], end='') print("\nH ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[6], end='') print("\nN ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[7], end='') print("\nANM ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[8], end='') print("\nRHO ", end='') for j in range(5): print(" %1.3e" % output[i*5+j].d[5], end='') print('\n') if __name__ == '__main__': # start = time.clock() test_gtd7() # print(time.clock() - start) fluids-0.1.78/tests/nrlmsise00/known_data_latitudes.txt0000644000175000017500000004222413632560624021746 0ustar kurtkurt100.0 1.651E+11 6.146E+12 1.188E+12 3.571E-10 215.5 1027 5.260E+07 5.944E+10 1.020E+07 2.073E+05 100.0 1.643E+11 6.151E+12 1.192E+12 3.575E-10 215.6 1027 5.258E+07 5.951E+10 1.023E+07 2.065E+05 100.0 1.635E+11 6.158E+12 1.195E+12 3.580E-10 215.7 1027 5.256E+07 5.959E+10 1.026E+07 2.056E+05 100.0 1.627E+11 6.165E+12 1.199E+12 3.585E-10 215.8 1027 5.256E+07 5.967E+10 1.030E+07 2.046E+05 100.0 1.620E+11 6.172E+12 1.202E+12 3.590E-10 215.9 1027 5.258E+07 5.975E+10 1.034E+07 2.036E+05 100.0 1.613E+11 6.180E+12 1.206E+12 3.595E-10 216.1 1027 5.261E+07 5.984E+10 1.038E+07 2.026E+05 100.0 1.607E+11 6.188E+12 1.210E+12 3.601E-10 216.3 1027 5.267E+07 5.993E+10 1.042E+07 2.015E+05 100.0 1.601E+11 6.197E+12 1.214E+12 3.608E-10 216.5 1027 5.274E+07 6.002E+10 1.046E+07 2.003E+05 100.0 1.595E+11 6.208E+12 1.218E+12 3.615E-10 216.7 1027 5.283E+07 6.013E+10 1.051E+07 1.992E+05 100.0 1.591E+11 6.219E+12 1.223E+12 3.622E-10 216.9 1027 5.294E+07 6.024E+10 1.056E+07 1.980E+05 100.0 1.586E+11 6.232E+12 1.227E+12 3.631E-10 217.1 1027 5.308E+07 6.036E+10 1.061E+07 1.967E+05 100.0 1.583E+11 6.246E+12 1.232E+12 3.640E-10 217.3 1027 5.324E+07 6.049E+10 1.067E+07 1.954E+05 100.0 1.580E+11 6.262E+12 1.237E+12 3.650E-10 217.5 1027 5.343E+07 6.065E+10 1.073E+07 1.942E+05 100.0 1.578E+11 6.280E+12 1.243E+12 3.661E-10 217.7 1027 5.365E+07 6.081E+10 1.080E+07 1.929E+05 100.0 1.577E+11 6.300E+12 1.249E+12 3.674E-10 217.9 1027 5.389E+07 6.100E+10 1.086E+07 1.916E+05 100.0 1.576E+11 6.323E+12 1.255E+12 3.688E-10 218.0 1027 5.418E+07 6.122E+10 1.094E+07 1.904E+05 100.0 1.577E+11 6.348E+12 1.262E+12 3.704E-10 218.1 1027 5.449E+07 6.146E+10 1.101E+07 1.891E+05 100.0 1.579E+11 6.377E+12 1.270E+12 3.721E-10 218.1 1027 5.485E+07 6.173E+10 1.110E+07 1.880E+05 100.0 1.582E+11 6.409E+12 1.278E+12 3.741E-10 218.1 1027 5.524E+07 6.203E+10 1.119E+07 1.868E+05 100.0 1.586E+11 6.444E+12 1.287E+12 3.762E-10 218.0 1027 5.567E+07 6.237E+10 1.128E+07 1.858E+05 100.0 1.592E+11 6.484E+12 1.296E+12 3.786E-10 217.9 1027 5.615E+07 6.274E+10 1.139E+07 1.848E+05 100.0 1.599E+11 6.528E+12 1.306E+12 3.813E-10 217.6 1027 5.668E+07 6.316E+10 1.150E+07 1.839E+05 100.0 1.608E+11 6.576E+12 1.317E+12 3.841E-10 217.3 1027 5.726E+07 6.362E+10 1.161E+07 1.831E+05 100.0 1.619E+11 6.629E+12 1.329E+12 3.873E-10 216.9 1027 5.789E+07 6.413E+10 1.174E+07 1.824E+05 100.0 1.631E+11 6.688E+12 1.342E+12 3.908E-10 216.4 1027 5.857E+07 6.469E+10 1.188E+07 1.818E+05 100.0 1.646E+11 6.751E+12 1.356E+12 3.945E-10 215.9 1027 5.931E+07 6.531E+10 1.202E+07 1.814E+05 100.0 1.662E+11 6.820E+12 1.371E+12 3.986E-10 215.2 1027 6.011E+07 6.597E+10 1.217E+07 1.811E+05 100.0 1.681E+11 6.895E+12 1.387E+12 4.031E-10 214.4 1027 6.096E+07 6.670E+10 1.234E+07 1.809E+05 100.0 1.702E+11 6.975E+12 1.404E+12 4.078E-10 213.5 1027 6.188E+07 6.749E+10 1.252E+07 1.810E+05 100.0 1.725E+11 7.062E+12 1.423E+12 4.129E-10 212.5 1027 6.287E+07 6.834E+10 1.270E+07 1.812E+05 100.0 1.751E+11 7.155E+12 1.442E+12 4.184E-10 211.5 1027 6.391E+07 6.925E+10 1.290E+07 1.815E+05 100.0 1.779E+11 7.254E+12 1.463E+12 4.243E-10 210.3 1027 6.503E+07 7.022E+10 1.311E+07 1.821E+05 100.0 1.810E+11 7.359E+12 1.485E+12 4.305E-10 209.0 1027 6.621E+07 7.127E+10 1.334E+07 1.829E+05 100.0 1.844E+11 7.471E+12 1.508E+12 4.370E-10 207.6 1027 6.746E+07 7.237E+10 1.357E+07 1.838E+05 100.0 1.881E+11 7.589E+12 1.532E+12 4.440E-10 206.1 1027 6.877E+07 7.355E+10 1.382E+07 1.850E+05 100.0 1.921E+11 7.713E+12 1.557E+12 4.513E-10 204.6 1027 7.015E+07 7.478E+10 1.408E+07 1.864E+05 100.0 1.964E+11 7.843E+12 1.584E+12 4.590E-10 203.0 1027 7.160E+07 7.609E+10 1.435E+07 1.880E+05 100.0 2.010E+11 7.979E+12 1.612E+12 4.670E-10 201.3 1027 7.312E+07 7.745E+10 1.464E+07 1.898E+05 100.0 2.059E+11 8.121E+12 1.641E+12 4.753E-10 199.5 1027 7.469E+07 7.888E+10 1.494E+07 1.919E+05 100.0 2.112E+11 8.268E+12 1.670E+12 4.840E-10 197.7 1027 7.633E+07 8.036E+10 1.525E+07 1.942E+05 100.0 2.169E+11 8.420E+12 1.701E+12 4.929E-10 195.8 1027 7.803E+07 8.190E+10 1.557E+07 1.967E+05 100.0 2.228E+11 8.577E+12 1.733E+12 5.022E-10 194.0 1027 7.978E+07 8.349E+10 1.590E+07 1.994E+05 100.0 2.292E+11 8.738E+12 1.765E+12 5.116E-10 192.0 1027 8.159E+07 8.513E+10 1.624E+07 2.024E+05 100.0 2.358E+11 8.902E+12 1.798E+12 5.213E-10 190.1 1027 8.344E+07 8.681E+10 1.660E+07 2.056E+05 100.0 2.429E+11 9.070E+12 1.832E+12 5.312E-10 188.1 1027 8.533E+07 8.853E+10 1.696E+07 2.090E+05 100.0 2.503E+11 9.240E+12 1.866E+12 5.412E-10 186.2 1027 8.726E+07 9.027E+10 1.733E+07 2.126E+05 100.0 2.580E+11 9.411E+12 1.900E+12 5.513E-10 184.2 1027 8.922E+07 9.204E+10 1.771E+07 2.164E+05 100.0 2.660E+11 9.583E+12 1.935E+12 5.615E-10 182.3 1027 9.120E+07 9.382E+10 1.809E+07 2.204E+05 100.0 2.744E+11 9.755E+12 1.970E+12 5.717E-10 180.4 1027 9.320E+07 9.561E+10 1.848E+07 2.246E+05 100.0 2.831E+11 9.926E+12 2.004E+12 5.818E-10 178.5 1027 9.520E+07 9.740E+10 1.887E+07 2.290E+05 100.0 2.921E+11 1.010E+13 2.038E+12 5.919E-10 176.6 1027 9.720E+07 9.918E+10 1.926E+07 2.335E+05 100.0 3.014E+11 1.026E+13 2.072E+12 6.018E-10 174.8 1027 9.920E+07 1.009E+11 1.965E+07 2.382E+05 100.0 3.110E+11 1.043E+13 2.105E+12 6.115E-10 173.0 1027 1.012E+08 1.027E+11 2.004E+07 2.430E+05 100.0 3.208E+11 1.058E+13 2.137E+12 6.209E-10 171.3 1027 1.031E+08 1.044E+11 2.043E+07 2.480E+05 100.0 3.308E+11 1.074E+13 2.168E+12 6.301E-10 169.6 1027 1.050E+08 1.060E+11 2.081E+07 2.530E+05 100.0 3.409E+11 1.088E+13 2.198E+12 6.389E-10 168.0 1027 1.069E+08 1.076E+11 2.118E+07 2.580E+05 100.0 3.512E+11 1.102E+13 2.226E+12 6.472E-10 166.4 1027 1.087E+08 1.091E+11 2.155E+07 2.631E+05 100.0 3.616E+11 1.116E+13 2.253E+12 6.551E-10 164.9 1027 1.105E+08 1.105E+11 2.190E+07 2.683E+05 100.0 3.721E+11 1.128E+13 2.278E+12 6.625E-10 163.5 1027 1.121E+08 1.119E+11 2.224E+07 2.733E+05 100.0 3.825E+11 1.139E+13 2.301E+12 6.693E-10 162.2 1027 1.137E+08 1.132E+11 2.256E+07 2.784E+05 100.0 3.930E+11 1.149E+13 2.323E+12 6.755E-10 160.9 1027 1.152E+08 1.143E+11 2.287E+07 2.833E+05 100.0 4.034E+11 1.158E+13 2.342E+12 6.811E-10 159.7 1027 1.166E+08 1.154E+11 2.316E+07 2.882E+05 100.0 4.136E+11 1.166E+13 2.359E+12 6.860E-10 158.5 1027 1.180E+08 1.163E+11 2.342E+07 2.929E+05 100.0 4.237E+11 1.173E+13 2.373E+12 6.901E-10 157.5 1027 1.192E+08 1.171E+11 2.367E+07 2.974E+05 100.0 4.335E+11 1.178E+13 2.386E+12 6.936E-10 156.5 1027 1.202E+08 1.178E+11 2.389E+07 3.017E+05 100.0 4.431E+11 1.182E+13 2.395E+12 6.963E-10 155.6 1027 1.212E+08 1.183E+11 2.409E+07 3.057E+05 100.0 4.523E+11 1.185E+13 2.403E+12 6.982E-10 154.8 1027 1.221E+08 1.187E+11 2.426E+07 3.094E+05 100.0 4.612E+11 1.186E+13 2.408E+12 6.994E-10 154.0 1027 1.228E+08 1.190E+11 2.441E+07 3.129E+05 100.0 4.697E+11 1.186E+13 2.410E+12 6.998E-10 153.4 1027 1.234E+08 1.192E+11 2.453E+07 3.160E+05 100.0 4.778E+11 1.185E+13 2.410E+12 6.995E-10 152.8 1027 1.239E+08 1.192E+11 2.462E+07 3.188E+05 100.0 4.853E+11 1.183E+13 2.407E+12 6.984E-10 152.2 1027 1.243E+08 1.191E+11 2.469E+07 3.211E+05 100.0 4.924E+11 1.179E+13 2.402E+12 6.966E-10 151.8 1027 1.245E+08 1.188E+11 2.473E+07 3.231E+05 100.0 4.990E+11 1.174E+13 2.395E+12 6.941E-10 151.4 1027 1.247E+08 1.184E+11 2.474E+07 3.246E+05 100.0 5.049E+11 1.168E+13 2.386E+12 6.910E-10 151.1 1027 1.247E+08 1.179E+11 2.473E+07 3.258E+05 100.0 5.104E+11 1.161E+13 2.374E+12 6.872E-10 150.9 1027 1.246E+08 1.173E+11 2.470E+07 3.265E+05 100.0 5.152E+11 1.153E+13 2.361E+12 6.829E-10 150.7 1027 1.244E+08 1.166E+11 2.464E+07 3.268E+05 100.0 5.195E+11 1.144E+13 2.345E+12 6.780E-10 150.6 1027 1.241E+08 1.158E+11 2.455E+07 3.266E+05 100.0 5.232E+11 1.135E+13 2.329E+12 6.726E-10 150.6 1027 1.238E+08 1.149E+11 2.445E+07 3.260E+05 100.0 5.264E+11 1.124E+13 2.310E+12 6.668E-10 150.6 1027 1.233E+08 1.139E+11 2.432E+07 3.250E+05 100.0 5.290E+11 1.113E+13 2.290E+12 6.606E-10 150.7 1027 1.228E+08 1.128E+11 2.418E+07 3.237E+05 100.0 5.310E+11 1.101E+13 2.270E+12 6.540E-10 150.9 1027 1.223E+08 1.117E+11 2.402E+07 3.219E+05 100.0 5.326E+11 1.089E+13 2.248E+12 6.471E-10 151.1 1027 1.216E+08 1.105E+11 2.385E+07 3.198E+05 100.0 5.337E+11 1.077E+13 2.225E+12 6.400E-10 151.4 1027 1.209E+08 1.093E+11 2.366E+07 3.173E+05 100.0 5.343E+11 1.064E+13 2.201E+12 6.327E-10 151.7 1027 1.202E+08 1.080E+11 2.346E+07 3.146E+05 100.0 5.345E+11 1.051E+13 2.177E+12 6.252E-10 152.1 1027 1.195E+08 1.067E+11 2.326E+07 3.115E+05 100.0 5.344E+11 1.037E+13 2.153E+12 6.177E-10 152.5 1027 1.187E+08 1.054E+11 2.305E+07 3.083E+05 100.0 5.339E+11 1.024E+13 2.129E+12 6.101E-10 153.0 1027 1.180E+08 1.041E+11 2.283E+07 3.048E+05 100.0 5.332E+11 1.011E+13 2.104E+12 6.025E-10 153.5 1027 1.172E+08 1.027E+11 2.260E+07 3.011E+05 100.0 5.322E+11 9.975E+12 2.080E+12 5.950E-10 154.0 1027 1.164E+08 1.014E+11 2.238E+07 2.973E+05 100.0 5.309E+11 9.845E+12 2.056E+12 5.875E-10 154.6 1027 1.157E+08 1.001E+11 2.216E+07 2.933E+05 100.0 5.296E+11 9.717E+12 2.032E+12 5.802E-10 155.2 1027 1.149E+08 9.875E+10 2.194E+07 2.893E+05 100.0 5.281E+11 9.592E+12 2.009E+12 5.731E-10 155.8 1027 1.142E+08 9.747E+10 2.172E+07 2.852E+05 100.0 5.265E+11 9.471E+12 1.986E+12 5.661E-10 156.5 1027 1.135E+08 9.623E+10 2.150E+07 2.811E+05 100.0 5.249E+11 9.354E+12 1.964E+12 5.594E-10 157.1 1027 1.129E+08 9.502E+10 2.130E+07 2.769E+05 100.0 5.234E+11 9.241E+12 1.943E+12 5.529E-10 157.8 1027 1.123E+08 9.386E+10 2.110E+07 2.728E+05 100.0 5.218E+11 9.133E+12 1.923E+12 5.467E-10 158.5 1027 1.118E+08 9.274E+10 2.091E+07 2.688E+05 100.0 5.204E+11 9.030E+12 1.904E+12 5.408E-10 159.3 1027 1.113E+08 9.167E+10 2.072E+07 2.648E+05 100.0 5.190E+11 8.933E+12 1.886E+12 5.352E-10 160.0 1027 1.109E+08 9.066E+10 2.055E+07 2.609E+05 100.0 5.178E+11 8.842E+12 1.869E+12 5.300E-10 160.7 1027 1.105E+08 8.971E+10 2.039E+07 2.571E+05 100.0 5.168E+11 8.757E+12 1.853E+12 5.251E-10 161.4 1027 1.102E+08 8.882E+10 2.024E+07 2.535E+05 100.0 5.159E+11 8.678E+12 1.839E+12 5.206E-10 162.1 1027 1.100E+08 8.800E+10 2.010E+07 2.499E+05 100.0 5.153E+11 8.605E+12 1.825E+12 5.164E-10 162.9 1027 1.099E+08 8.724E+10 1.998E+07 2.466E+05 100.0 5.150E+11 8.539E+12 1.813E+12 5.126E-10 163.6 1027 1.098E+08 8.655E+10 1.987E+07 2.433E+05 100.0 5.149E+11 8.480E+12 1.802E+12 5.093E-10 164.3 1027 1.098E+08 8.592E+10 1.977E+07 2.403E+05 100.0 5.150E+11 8.427E+12 1.793E+12 5.063E-10 164.9 1027 1.099E+08 8.537E+10 1.969E+07 2.374E+05 100.0 5.155E+11 8.381E+12 1.785E+12 5.037E-10 165.6 1027 1.101E+08 8.488E+10 1.962E+07 2.347E+05 100.0 5.162E+11 8.342E+12 1.778E+12 5.015E-10 166.2 1027 1.103E+08 8.446E+10 1.956E+07 2.322E+05 100.0 5.172E+11 8.309E+12 1.772E+12 4.997E-10 166.8 1027 1.107E+08 8.411E+10 1.952E+07 2.298E+05 100.0 5.186E+11 8.283E+12 1.768E+12 4.983E-10 167.4 1027 1.111E+08 8.384E+10 1.949E+07 2.277E+05 100.0 5.202E+11 8.263E+12 1.765E+12 4.972E-10 168.0 1027 1.116E+08 8.362E+10 1.948E+07 2.257E+05 100.0 5.221E+11 8.249E+12 1.764E+12 4.965E-10 168.6 1027 1.121E+08 8.348E+10 1.948E+07 2.239E+05 100.0 5.244E+11 8.242E+12 1.763E+12 4.962E-10 169.1 1027 1.128E+08 8.340E+10 1.949E+07 2.223E+05 100.0 5.269E+11 8.241E+12 1.764E+12 4.963E-10 169.6 1027 1.135E+08 8.339E+10 1.951E+07 2.208E+05 100.0 5.297E+11 8.245E+12 1.766E+12 4.966E-10 170.0 1027 1.143E+08 8.343E+10 1.954E+07 2.195E+05 100.0 5.327E+11 8.255E+12 1.769E+12 4.974E-10 170.5 1027 1.152E+08 8.354E+10 1.959E+07 2.184E+05 100.0 5.360E+11 8.270E+12 1.773E+12 4.984E-10 170.9 1027 1.161E+08 8.370E+10 1.964E+07 2.174E+05 100.0 5.396E+11 8.290E+12 1.778E+12 4.997E-10 171.3 1027 1.171E+08 8.391E+10 1.971E+07 2.166E+05 100.0 5.433E+11 8.315E+12 1.784E+12 5.013E-10 171.7 1027 1.182E+08 8.418E+10 1.978E+07 2.159E+05 100.0 5.472E+11 8.344E+12 1.791E+12 5.031E-10 172.0 1027 1.193E+08 8.450E+10 1.986E+07 2.153E+05 100.0 5.513E+11 8.377E+12 1.799E+12 5.052E-10 172.4 1027 1.204E+08 8.485E+10 1.995E+07 2.148E+05 100.0 5.555E+11 8.414E+12 1.808E+12 5.075E-10 172.7 1027 1.216E+08 8.525E+10 2.004E+07 2.145E+05 100.0 5.598E+11 8.454E+12 1.817E+12 5.100E-10 173.0 1027 1.229E+08 8.569E+10 2.014E+07 2.142E+05 100.0 5.641E+11 8.497E+12 1.826E+12 5.127E-10 173.2 1027 1.241E+08 8.616E+10 2.024E+07 2.140E+05 100.0 5.685E+11 8.543E+12 1.837E+12 5.155E-10 173.5 1027 1.254E+08 8.666E+10 2.034E+07 2.139E+05 100.0 5.729E+11 8.590E+12 1.847E+12 5.184E-10 173.8 1027 1.267E+08 8.718E+10 2.044E+07 2.138E+05 100.0 5.773E+11 8.640E+12 1.858E+12 5.214E-10 174.0 1027 1.280E+08 8.772E+10 2.055E+07 2.138E+05 100.0 5.815E+11 8.690E+12 1.869E+12 5.245E-10 174.2 1027 1.293E+08 8.828E+10 2.065E+07 2.139E+05 100.0 5.857E+11 8.741E+12 1.881E+12 5.276E-10 174.5 1027 1.306E+08 8.885E+10 2.075E+07 2.140E+05 100.0 5.897E+11 8.792E+12 1.892E+12 5.308E-10 174.7 1027 1.319E+08 8.942E+10 2.084E+07 2.141E+05 100.0 5.935E+11 8.843E+12 1.903E+12 5.339E-10 175.0 1027 1.332E+08 8.999E+10 2.093E+07 2.142E+05 100.0 5.970E+11 8.893E+12 1.914E+12 5.369E-10 175.2 1027 1.344E+08 9.056E+10 2.102E+07 2.143E+05 100.0 6.004E+11 8.942E+12 1.925E+12 5.399E-10 175.4 1027 1.356E+08 9.112E+10 2.109E+07 2.144E+05 100.0 6.034E+11 8.990E+12 1.936E+12 5.428E-10 175.7 1027 1.368E+08 9.166E+10 2.116E+07 2.145E+05 100.0 6.061E+11 9.035E+12 1.946E+12 5.455E-10 176.0 1027 1.378E+08 9.219E+10 2.122E+07 2.146E+05 100.0 6.084E+11 9.078E+12 1.955E+12 5.481E-10 176.2 1027 1.389E+08 9.269E+10 2.127E+07 2.147E+05 100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05 100.0 6.120E+11 9.155E+12 1.973E+12 5.528E-10 176.8 1027 1.407E+08 9.361E+10 2.134E+07 2.147E+05 100.0 6.131E+11 9.189E+12 1.980E+12 5.548E-10 177.1 1027 1.415E+08 9.402E+10 2.135E+07 2.147E+05 100.0 6.138E+11 9.218E+12 1.987E+12 5.566E-10 177.5 1027 1.422E+08 9.438E+10 2.135E+07 2.146E+05 100.0 6.141E+11 9.243E+12 1.993E+12 5.581E-10 177.8 1027 1.429E+08 9.471E+10 2.134E+07 2.145E+05 100.0 6.139E+11 9.264E+12 1.998E+12 5.594E-10 178.2 1027 1.434E+08 9.499E+10 2.131E+07 2.144E+05 100.0 6.132E+11 9.280E+12 2.003E+12 5.603E-10 178.6 1027 1.438E+08 9.522E+10 2.127E+07 2.142E+05 100.0 6.121E+11 9.292E+12 2.006E+12 5.610E-10 179.0 1027 1.442E+08 9.541E+10 2.122E+07 2.139E+05 100.0 6.106E+11 9.298E+12 2.008E+12 5.614E-10 179.4 1027 1.444E+08 9.554E+10 2.115E+07 2.137E+05 100.0 6.086E+11 9.300E+12 2.009E+12 5.615E-10 179.9 1027 1.445E+08 9.562E+10 2.107E+07 2.134E+05 100.0 6.062E+11 9.297E+12 2.010E+12 5.613E-10 180.3 1027 1.446E+08 9.565E+10 2.098E+07 2.131E+05 100.0 6.034E+11 9.289E+12 2.009E+12 5.608E-10 180.8 1027 1.445E+08 9.563E+10 2.088E+07 2.128E+05 100.0 6.002E+11 9.275E+12 2.008E+12 5.601E-10 181.3 1027 1.444E+08 9.556E+10 2.076E+07 2.125E+05 100.0 5.966E+11 9.258E+12 2.005E+12 5.590E-10 181.9 1027 1.441E+08 9.543E+10 2.063E+07 2.121E+05 100.0 5.927E+11 9.235E+12 2.002E+12 5.577E-10 182.4 1027 1.438E+08 9.526E+10 2.050E+07 2.118E+05 100.0 5.885E+11 9.208E+12 1.998E+12 5.561E-10 183.0 1027 1.434E+08 9.504E+10 2.035E+07 2.115E+05 100.0 5.841E+11 9.177E+12 1.993E+12 5.542E-10 183.5 1027 1.429E+08 9.477E+10 2.020E+07 2.112E+05 100.0 5.794E+11 9.142E+12 1.987E+12 5.521E-10 184.1 1027 1.423E+08 9.446E+10 2.003E+07 2.109E+05 100.0 5.745E+11 9.103E+12 1.980E+12 5.498E-10 184.7 1027 1.416E+08 9.411E+10 1.986E+07 2.107E+05 100.0 5.694E+11 9.061E+12 1.973E+12 5.473E-10 185.3 1027 1.409E+08 9.372E+10 1.969E+07 2.105E+05 100.0 5.642E+11 9.016E+12 1.965E+12 5.447E-10 186.0 1027 1.402E+08 9.330E+10 1.951E+07 2.103E+05 100.0 5.589E+11 8.969E+12 1.957E+12 5.418E-10 186.6 1027 1.394E+08 9.285E+10 1.933E+07 2.103E+05 100.0 5.536E+11 8.919E+12 1.948E+12 5.389E-10 187.2 1027 1.385E+08 9.237E+10 1.914E+07 2.103E+05 100.0 5.482E+11 8.867E+12 1.940E+12 5.358E-10 187.8 1027 1.376E+08 9.187E+10 1.896E+07 2.104E+05 100.0 5.429E+11 8.814E+12 1.930E+12 5.327E-10 188.5 1027 1.367E+08 9.135E+10 1.877E+07 2.106E+05 100.0 5.375E+11 8.759E+12 1.921E+12 5.295E-10 189.1 1027 1.358E+08 9.082E+10 1.858E+07 2.109E+05 100.0 5.323E+11 8.704E+12 1.911E+12 5.262E-10 189.7 1027 1.349E+08 9.028E+10 1.840E+07 2.113E+05 100.0 5.272E+11 8.649E+12 1.902E+12 5.230E-10 190.3 1027 1.339E+08 8.973E+10 1.822E+07 2.118E+05 100.0 5.222E+11 8.593E+12 1.892E+12 5.197E-10 190.9 1027 1.330E+08 8.919E+10 1.804E+07 2.124E+05 100.0 5.174E+11 8.538E+12 1.883E+12 5.165E-10 191.4 1027 1.320E+08 8.864E+10 1.786E+07 2.132E+05 100.0 5.127E+11 8.484E+12 1.874E+12 5.134E-10 192.0 1027 1.311E+08 8.810E+10 1.770E+07 2.141E+05 100.0 5.083E+11 8.431E+12 1.865E+12 5.103E-10 192.5 1027 1.302E+08 8.757E+10 1.753E+07 2.151E+05 100.0 5.041E+11 8.380E+12 1.856E+12 5.073E-10 193.0 1027 1.293E+08 8.706E+10 1.737E+07 2.163E+05 100.0 5.002E+11 8.330E+12 1.848E+12 5.044E-10 193.5 1027 1.285E+08 8.656E+10 1.722E+07 2.177E+05 100.0 4.965E+11 8.283E+12 1.841E+12 5.017E-10 194.0 1027 1.276E+08 8.608E+10 1.708E+07 2.192E+05 100.0 4.932E+11 8.238E+12 1.834E+12 4.991E-10 194.4 1027 1.269E+08 8.562E+10 1.694E+07 2.209E+05 100.0 4.901E+11 8.196E+12 1.827E+12 4.967E-10 194.7 1027 1.261E+08 8.520E+10 1.682E+07 2.227E+05 100.0 4.873E+11 8.156E+12 1.821E+12 4.944E-10 195.1 1027 1.255E+08 8.480E+10 1.670E+07 2.247E+05 100.0 4.849E+11 8.120E+12 1.816E+12 4.924E-10 195.4 1027 1.248E+08 8.443E+10 1.659E+07 2.268E+05 100.0 4.828E+11 8.087E+12 1.811E+12 4.905E-10 195.6 1027 1.243E+08 8.409E+10 1.649E+07 2.292E+05 100.0 4.810E+11 8.057E+12 1.808E+12 4.889E-10 195.9 1027 1.237E+08 8.379E+10 1.639E+07 2.317E+05 100.0 4.796E+11 8.032E+12 1.804E+12 4.875E-10 196.0 1027 1.233E+08 8.353E+10 1.631E+07 2.343E+05 100.0 4.785E+11 8.010E+12 1.802E+12 4.863E-10 196.1 1027 1.229E+08 8.330E+10 1.624E+07 2.372E+05 100.0 4.778E+11 7.991E+12 1.801E+12 4.853E-10 196.2 1027 1.225E+08 8.311E+10 1.617E+07 2.401E+05 100.0 4.775E+11 7.977E+12 1.800E+12 4.846E-10 196.3 1027 1.222E+08 8.297E+10 1.612E+07 2.433E+05 100.0 4.774E+11 7.967E+12 1.800E+12 4.841E-10 196.2 1027 1.220E+08 8.286E+10 1.607E+07 2.466E+05fluids-0.1.78/tests/nrlmsise00/test_nrlmsise00_file_output.py0000644000175000017500000000423613632560624023027 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' import hashlib import os import subprocess import pytest known_hash = 'bb504fc1ab541260f13b2d2d89884c4d' @pytest.mark.slow def test_NRLMSISE00_against_C_output(): # Test results currently match up exactly with those of the C test file. script = os.path.join(os.path.dirname(__file__), 'nrlmsise_00_test.py') # Load known data known = os.path.join(os.path.dirname(__file__), 'data_from_C_version.txt') # On a separate process, run the test script, and capture its output from sys import platform if platform == "linux" or platform == "linux2" or platform == "darwin": # Run the test only on linux; print statements to files have different # formats on windows proc = subprocess.Popen(["python", script], stdout=subprocess.PIPE) response = proc.communicate()[0] # Hash it, check it is as expected. hasher = hashlib.md5() hasher.update(response) expect = hasher.hexdigest() assert expect == known_hash fluids-0.1.78/tests/nrlmsise00/known_data_high_height.txt0000644000175000017500000025077013632560624022226 0ustar kurtkurt100.0 6.104E+11 9.118E+12 1.964E+12 5.506E-10 176.5 1027 1.398E+08 9.317E+10 2.131E+07 2.147E+05 101.0 5.788E+11 7.514E+12 1.590E+12 4.541E-10 178.0 1027 1.287E+08 7.482E+10 1.942E+07 2.266E+05 102.0 5.423E+11 6.179E+12 1.282E+12 3.737E-10 180.2 1027 1.193E+08 5.975E+10 1.776E+07 2.389E+05 103.0 5.030E+11 5.074E+12 1.031E+12 3.072E-10 183.2 1027 1.114E+08 4.749E+10 1.628E+07 2.519E+05 104.0 4.629E+11 4.166E+12 8.283E+11 2.524E-10 187.0 1027 1.049E+08 3.760E+10 1.496E+07 2.658E+05 105.0 4.233E+11 3.422E+12 6.648E+11 2.076E-10 191.6 1027 9.941E+07 2.969E+10 1.377E+07 2.807E+05 106.0 3.852E+11 2.814E+12 5.335E+11 1.709E-10 196.9 1027 9.487E+07 2.340E+10 1.270E+07 2.968E+05 107.0 3.492E+11 2.318E+12 4.285E+11 1.410E-10 203.2 1027 9.107E+07 1.842E+10 1.172E+07 3.143E+05 108.0 3.157E+11 1.914E+12 3.447E+11 1.166E-10 210.3 1027 8.787E+07 1.449E+10 1.082E+07 3.332E+05 109.0 2.848E+11 1.585E+12 2.778E+11 9.673E-11 218.3 1027 8.515E+07 1.141E+10 9.995E+06 3.537E+05 110.0 2.565E+11 1.316E+12 2.245E+11 8.050E-11 227.2 1027 8.280E+07 8.998E+09 9.233E+06 3.758E+05 111.0 2.309E+11 1.097E+12 1.819E+11 6.725E-11 237.1 1027 8.072E+07 7.110E+09 8.527E+06 3.997E+05 112.0 2.077E+11 9.175E+11 1.480E+11 5.640E-11 248.1 1027 7.885E+07 5.634E+09 7.872E+06 4.254E+05 113.0 1.868E+11 7.706E+11 1.208E+11 4.749E-11 260.2 1027 7.710E+07 4.479E+09 7.264E+06 4.530E+05 114.0 1.680E+11 6.499E+11 9.905E+10 4.017E-11 273.4 1027 7.544E+07 3.575E+09 6.700E+06 4.826E+05 115.0 1.513E+11 5.506E+11 8.157E+10 3.413E-11 287.7 1027 7.382E+07 2.866E+09 6.177E+06 5.143E+05 116.0 1.363E+11 4.686E+11 6.750E+10 2.914E-11 303.2 1027 7.223E+07 2.309E+09 5.693E+06 5.483E+05 117.0 1.230E+11 4.008E+11 5.616E+10 2.501E-11 319.7 1027 7.064E+07 1.871E+09 5.246E+06 5.848E+05 118.0 1.113E+11 3.447E+11 4.698E+10 2.157E-11 337.2 1027 6.907E+07 1.525E+09 4.836E+06 6.242E+05 119.0 1.010E+11 2.981E+11 3.954E+10 1.872E-11 355.4 1027 6.753E+07 1.252E+09 4.460E+06 6.671E+05 120.0 9.190E+10 2.595E+11 3.351E+10 1.635E-11 373.9 1027 6.603E+07 1.036E+09 4.119E+06 7.142E+05 121.0 8.404E+10 2.275E+11 2.861E+10 1.438E-11 392.3 1027 6.462E+07 8.639E+08 3.811E+06 7.666E+05 122.0 7.728E+10 2.010E+11 2.463E+10 1.275E-11 409.9 1027 6.333E+07 7.276E+08 3.536E+06 8.255E+05 123.0 7.154E+10 1.792E+11 2.140E+10 1.141E-11 426.1 1027 6.220E+07 6.193E+08 3.291E+06 8.930E+05 124.0 6.685E+10 1.615E+11 1.880E+10 1.031E-11 439.1 836 6.134E+07 5.342E+08 3.080E+06 9.726E+05 125.0 6.258E+10 1.460E+11 1.658E+10 9.359E-12 452.1 836 6.045E+07 4.628E+08 2.885E+06 1.059E+06 126.0 5.873E+10 1.325E+11 1.468E+10 8.524E-12 464.7 836 5.958E+07 4.029E+08 2.705E+06 1.152E+06 127.0 5.524E+10 1.206E+11 1.305E+10 7.791E-12 476.9 836 5.871E+07 3.525E+08 2.539E+06 1.254E+06 128.0 5.206E+10 1.102E+11 1.164E+10 7.145E-12 488.6 836 5.784E+07 3.097E+08 2.386E+06 1.363E+06 129.0 4.917E+10 1.010E+11 1.042E+10 6.572E-12 500.0 836 5.698E+07 2.733E+08 2.245E+06 1.481E+06 130.0 4.652E+10 9.278E+10 9.360E+09 6.062E-12 511.0 836 5.614E+07 2.420E+08 2.114E+06 1.607E+06 131.0 4.409E+10 8.546E+10 8.430E+09 5.606E-12 521.6 836 5.530E+07 2.152E+08 1.992E+06 1.743E+06 132.0 4.185E+10 7.889E+10 7.614E+09 5.196E-12 531.9 836 5.448E+07 1.920E+08 1.880E+06 1.887E+06 133.0 3.979E+10 7.299E+10 6.894E+09 4.828E-12 541.8 836 5.367E+07 1.718E+08 1.775E+06 2.040E+06 134.0 3.788E+10 6.767E+10 6.259E+09 4.495E-12 551.5 836 5.288E+07 1.543E+08 1.678E+06 2.202E+06 135.0 3.611E+10 6.286E+10 5.695E+09 4.193E-12 560.8 836 5.211E+07 1.389E+08 1.587E+06 2.374E+06 136.0 3.446E+10 5.848E+10 5.194E+09 3.918E-12 569.7 836 5.135E+07 1.254E+08 1.503E+06 2.554E+06 137.0 3.293E+10 5.451E+10 4.747E+09 3.668E-12 578.4 836 5.061E+07 1.135E+08 1.424E+06 2.744E+06 138.0 3.150E+10 5.088E+10 4.347E+09 3.440E-12 586.9 836 4.989E+07 1.029E+08 1.351E+06 2.942E+06 139.0 3.017E+10 4.756E+10 3.988E+09 3.230E-12 595.0 836 4.919E+07 9.360E+07 1.283E+06 3.149E+06 140.0 2.891E+10 4.452E+10 3.666E+09 3.038E-12 602.9 836 4.851E+07 8.529E+07 1.219E+06 3.365E+06 141.0 2.774E+10 4.173E+10 3.376E+09 2.861E-12 610.5 836 4.785E+07 7.786E+07 1.160E+06 3.588E+06 142.0 2.664E+10 3.916E+10 3.114E+09 2.698E-12 617.8 836 4.721E+07 7.121E+07 1.105E+06 3.819E+06 143.0 2.560E+10 3.679E+10 2.876E+09 2.548E-12 624.9 836 4.658E+07 6.524E+07 1.053E+06 4.056E+06 144.0 2.462E+10 3.461E+10 2.661E+09 2.408E-12 631.8 836 4.598E+07 5.987E+07 1.004E+06 4.301E+06 145.0 2.370E+10 3.258E+10 2.466E+09 2.279E-12 638.5 836 4.539E+07 5.502E+07 9.591E+05 4.551E+06 146.0 2.283E+10 3.071E+10 2.288E+09 2.159E-12 644.9 836 4.482E+07 5.064E+07 9.167E+05 4.806E+06 147.0 2.200E+10 2.896E+10 2.125E+09 2.047E-12 651.1 836 4.427E+07 4.667E+07 8.770E+05 5.067E+06 148.0 2.122E+10 2.735E+10 1.977E+09 1.943E-12 657.1 836 4.374E+07 4.306E+07 8.399E+05 5.330E+06 149.0 2.048E+10 2.584E+10 1.841E+09 1.846E-12 663.0 836 4.322E+07 3.978E+07 8.051E+05 5.597E+06 150.0 1.977E+10 2.444E+10 1.717E+09 1.755E-12 668.6 836 4.271E+07 3.680E+07 7.725E+05 5.866E+06 151.0 1.911E+10 2.313E+10 1.602E+09 1.670E-12 674.1 836 4.222E+07 3.407E+07 7.420E+05 6.137E+06 152.0 1.847E+10 2.190E+10 1.497E+09 1.591E-12 679.3 836 4.175E+07 3.158E+07 7.133E+05 6.408E+06 153.0 1.786E+10 2.076E+10 1.400E+09 1.516E-12 684.4 836 4.129E+07 2.930E+07 6.864E+05 6.679E+06 154.0 1.728E+10 1.968E+10 1.311E+09 1.446E-12 689.3 836 4.084E+07 2.720E+07 6.612E+05 6.948E+06 155.0 1.673E+10 1.868E+10 1.229E+09 1.380E-12 694.1 836 4.041E+07 2.528E+07 6.375E+05 7.216E+06 156.0 1.620E+10 1.773E+10 1.152E+09 1.318E-12 698.7 836 3.998E+07 2.351E+07 6.152E+05 7.481E+06 157.0 1.570E+10 1.685E+10 1.082E+09 1.259E-12 703.2 836 3.957E+07 2.189E+07 5.942E+05 7.742E+06 158.0 1.521E+10 1.601E+10 1.016E+09 1.204E-12 707.5 836 3.917E+07 2.039E+07 5.745E+05 7.998E+06 159.0 1.475E+10 1.523E+10 9.553E+08 1.152E-12 711.7 836 3.878E+07 1.901E+07 5.560E+05 8.250E+06 160.0 1.431E+10 1.449E+10 8.988E+08 1.103E-12 715.7 836 3.840E+07 1.773E+07 5.385E+05 8.495E+06 161.0 1.388E+10 1.378E+10 8.462E+08 1.056E-12 719.6 836 3.804E+07 1.655E+07 5.221E+05 8.734E+06 162.0 1.347E+10 1.313E+10 7.973E+08 1.012E-12 723.4 836 3.768E+07 1.545E+07 5.066E+05 8.965E+06 163.0 1.308E+10 1.251E+10 7.516E+08 9.700E-13 727.1 836 3.732E+07 1.444E+07 4.920E+05 9.188E+06 164.0 1.270E+10 1.192E+10 7.090E+08 9.305E-13 730.6 836 3.698E+07 1.350E+07 4.782E+05 9.403E+06 165.0 1.234E+10 1.137E+10 6.692E+08 8.930E-13 734.0 836 3.665E+07 1.263E+07 4.652E+05 9.608E+06 166.0 1.199E+10 1.084E+10 6.320E+08 8.574E-13 737.3 836 3.632E+07 1.182E+07 4.529E+05 9.804E+06 167.0 1.165E+10 1.035E+10 5.972E+08 8.235E-13 740.5 836 3.600E+07 1.107E+07 4.414E+05 9.990E+06 168.0 1.133E+10 9.880E+09 5.646E+08 7.913E-13 743.6 836 3.569E+07 1.037E+07 4.304E+05 1.017E+07 169.0 1.102E+10 9.435E+09 5.340E+08 7.607E-13 746.6 836 3.539E+07 9.723E+06 4.201E+05 1.033E+07 170.0 1.072E+10 9.013E+09 5.054E+08 7.315E-13 749.5 836 3.509E+07 9.118E+06 4.103E+05 1.049E+07 171.0 1.043E+10 8.612E+09 4.785E+08 7.037E-13 752.3 836 3.480E+07 8.553E+06 4.010E+05 1.063E+07 172.0 1.015E+10 8.232E+09 4.532E+08 6.772E-13 755.0 836 3.451E+07 8.027E+06 3.922E+05 1.076E+07 173.0 9.877E+09 7.871E+09 4.295E+08 6.520E-13 757.6 836 3.423E+07 7.536E+06 3.839E+05 1.088E+07 174.0 9.615E+09 7.528E+09 4.071E+08 6.279E-13 760.2 836 3.396E+07 7.077E+06 3.761E+05 1.099E+07 175.0 9.363E+09 7.202E+09 3.861E+08 6.048E-13 762.6 836 3.369E+07 6.649E+06 3.686E+05 1.109E+07 176.0 9.118E+09 6.891E+09 3.663E+08 5.828E-13 765.0 836 3.343E+07 6.249E+06 3.615E+05 1.118E+07 177.0 8.882E+09 6.596E+09 3.476E+08 5.618E-13 767.3 836 3.317E+07 5.875E+06 3.548E+05 1.125E+07 178.0 8.653E+09 6.315E+09 3.300E+08 5.417E-13 769.5 836 3.292E+07 5.525E+06 3.485E+05 1.132E+07 179.0 8.432E+09 6.047E+09 3.134E+08 5.225E-13 771.7 836 3.267E+07 5.197E+06 3.424E+05 1.137E+07 180.0 8.218E+09 5.792E+09 2.977E+08 5.041E-13 773.8 836 3.243E+07 4.890E+06 3.367E+05 1.141E+07 181.0 8.010E+09 5.549E+09 2.829E+08 4.865E-13 775.8 836 3.219E+07 4.603E+06 3.312E+05 1.144E+07 182.0 7.809E+09 5.317E+09 2.690E+08 4.696E-13 777.7 836 3.195E+07 4.333E+06 3.260E+05 1.147E+07 183.0 7.613E+09 5.095E+09 2.557E+08 4.534E-13 779.6 836 3.172E+07 4.081E+06 3.211E+05 1.148E+07 184.0 7.424E+09 4.884E+09 2.432E+08 4.379E-13 781.4 836 3.149E+07 3.844E+06 3.164E+05 1.148E+07 185.0 7.241E+09 4.683E+09 2.314E+08 4.230E-13 783.2 836 3.127E+07 3.622E+06 3.119E+05 1.147E+07 186.0 7.063E+09 4.490E+09 2.202E+08 4.087E-13 784.9 836 3.105E+07 3.413E+06 3.076E+05 1.146E+07 187.0 6.890E+09 4.307E+09 2.096E+08 3.950E-13 786.6 836 3.083E+07 3.217E+06 3.036E+05 1.143E+07 188.0 6.722E+09 4.131E+09 1.996E+08 3.818E-13 788.2 836 3.062E+07 3.033E+06 2.997E+05 1.140E+07 189.0 6.559E+09 3.964E+09 1.901E+08 3.692E-13 789.7 836 3.041E+07 2.861E+06 2.960E+05 1.136E+07 190.0 6.401E+09 3.803E+09 1.810E+08 3.570E-13 791.2 836 3.020E+07 2.698E+06 2.925E+05 1.131E+07 191.0 6.248E+09 3.650E+09 1.725E+08 3.454E-13 792.6 836 3.000E+07 2.546E+06 2.891E+05 1.126E+07 192.0 6.098E+09 3.503E+09 1.644E+08 3.342E-13 794.0 836 2.979E+07 2.402E+06 2.859E+05 1.119E+07 193.0 5.953E+09 3.363E+09 1.567E+08 3.234E-13 795.4 836 2.960E+07 2.267E+06 2.828E+05 1.112E+07 194.0 5.812E+09 3.229E+09 1.493E+08 3.130E-13 796.7 836 2.940E+07 2.140E+06 2.799E+05 1.105E+07 195.0 5.675E+09 3.100E+09 1.424E+08 3.030E-13 798.0 836 2.921E+07 2.020E+06 2.771E+05 1.097E+07 196.0 5.541E+09 2.978E+09 1.358E+08 2.934E-13 799.2 836 2.902E+07 1.907E+06 2.744E+05 1.088E+07 197.0 5.412E+09 2.860E+09 1.295E+08 2.841E-13 800.4 836 2.883E+07 1.801E+06 2.719E+05 1.079E+07 198.0 5.285E+09 2.747E+09 1.236E+08 2.752E-13 801.5 836 2.864E+07 1.701E+06 2.694E+05 1.070E+07 199.0 5.162E+09 2.639E+09 1.179E+08 2.666E-13 802.7 836 2.846E+07 1.607E+06 2.671E+05 1.060E+07 200.0 5.043E+09 2.536E+09 1.125E+08 2.583E-13 803.7 836 2.828E+07 1.519E+06 2.648E+05 1.049E+07 201.0 4.926E+09 2.436E+09 1.074E+08 2.503E-13 804.8 836 2.808E+07 1.435E+06 2.627E+05 1.039E+07 202.0 4.813E+09 2.341E+09 1.025E+08 2.426E-13 805.8 836 2.791E+07 1.356E+06 2.606E+05 1.028E+07 203.0 4.702E+09 2.250E+09 9.786E+07 2.352E-13 806.8 836 2.773E+07 1.282E+06 2.586E+05 1.016E+07 204.0 4.595E+09 2.163E+09 9.345E+07 2.280E-13 807.7 836 2.756E+07 1.212E+06 2.567E+05 1.004E+07 205.0 4.490E+09 2.079E+09 8.924E+07 2.211E-13 808.6 836 2.739E+07 1.146E+06 2.549E+05 9.926E+06 206.0 4.388E+09 1.999E+09 8.523E+07 2.145E-13 809.5 836 2.722E+07 1.083E+06 2.531E+05 9.805E+06 207.0 4.288E+09 1.922E+09 8.142E+07 2.080E-13 810.4 836 2.706E+07 1.025E+06 2.515E+05 9.682E+06 208.0 4.191E+09 1.848E+09 7.778E+07 2.018E-13 811.2 836 2.689E+07 9.690E+05 2.498E+05 9.557E+06 209.0 4.097E+09 1.777E+09 7.432E+07 1.958E-13 812.0 836 2.673E+07 9.165E+05 2.483E+05 9.431E+06 210.0 4.005E+09 1.709E+09 7.102E+07 1.900E-13 812.8 836 2.657E+07 8.670E+05 2.468E+05 9.304E+06 211.0 3.915E+09 1.644E+09 6.787E+07 1.844E-13 813.5 836 2.641E+07 8.203E+05 2.453E+05 9.176E+06 212.0 3.827E+09 1.581E+09 6.487E+07 1.790E-13 814.2 836 2.625E+07 7.761E+05 2.439E+05 9.047E+06 213.0 3.742E+09 1.521E+09 6.201E+07 1.738E-13 814.9 836 2.610E+07 7.344E+05 2.426E+05 8.917E+06 214.0 3.659E+09 1.463E+09 5.928E+07 1.687E-13 815.6 836 2.594E+07 6.950E+05 2.413E+05 8.787E+06 215.0 3.577E+09 1.407E+09 5.668E+07 1.639E-13 816.3 836 2.579E+07 6.578E+05 2.401E+05 8.657E+06 216.0 3.498E+09 1.354E+09 5.419E+07 1.591E-13 816.9 836 2.564E+07 6.226E+05 2.389E+05 8.527E+06 217.0 3.421E+09 1.303E+09 5.182E+07 1.546E-13 817.5 836 2.549E+07 5.894E+05 2.377E+05 8.397E+06 218.0 3.345E+09 1.254E+09 4.956E+07 1.501E-13 818.1 836 2.534E+07 5.580E+05 2.366E+05 8.267E+06 219.0 3.271E+09 1.206E+09 4.740E+07 1.459E-13 818.7 836 2.519E+07 5.283E+05 2.355E+05 8.137E+06 220.0 3.199E+09 1.161E+09 4.534E+07 1.417E-13 819.3 836 2.505E+07 5.002E+05 2.345E+05 8.008E+06 221.0 3.129E+09 1.117E+09 4.338E+07 1.377E-13 819.8 836 2.490E+07 4.737E+05 2.335E+05 7.879E+06 222.0 3.061E+09 1.076E+09 4.150E+07 1.339E-13 820.3 836 2.476E+07 4.486E+05 2.325E+05 7.752E+06 223.0 2.994E+09 1.035E+09 3.970E+07 1.301E-13 820.8 836 2.462E+07 4.248E+05 2.316E+05 7.625E+06 224.0 2.928E+09 9.965E+08 3.799E+07 1.265E-13 821.3 836 2.448E+07 4.024E+05 2.307E+05 7.498E+06 225.0 2.865E+09 9.593E+08 3.635E+07 1.230E-13 821.8 836 2.434E+07 3.811E+05 2.298E+05 7.373E+06 226.0 2.802E+09 9.235E+08 3.479E+07 1.196E-13 822.3 836 2.420E+07 3.610E+05 2.289E+05 7.249E+06 227.0 2.742E+09 8.890E+08 3.329E+07 1.163E-13 822.7 836 2.406E+07 3.420E+05 2.281E+05 7.126E+06 228.0 2.682E+09 8.560E+08 3.187E+07 1.131E-13 823.1 836 2.393E+07 3.240E+05 2.273E+05 7.004E+06 229.0 2.624E+09 8.241E+08 3.050E+07 1.100E-13 823.6 836 2.379E+07 3.070E+05 2.265E+05 6.884E+06 230.0 2.567E+09 7.935E+08 2.920E+07 1.070E-13 824.0 836 2.366E+07 2.909E+05 2.258E+05 6.764E+06 231.0 2.512E+09 7.641E+08 2.795E+07 1.040E-13 824.4 836 2.353E+07 2.756E+05 2.250E+05 6.646E+06 232.0 2.458E+09 7.358E+08 2.676E+07 1.012E-13 824.7 836 2.339E+07 2.612E+05 2.243E+05 6.530E+06 233.0 2.405E+09 7.086E+08 2.562E+07 9.849E-14 825.1 836 2.326E+07 2.475E+05 2.236E+05 6.415E+06 234.0 2.353E+09 6.824E+08 2.453E+07 9.584E-14 825.5 836 2.313E+07 2.346E+05 2.229E+05 6.301E+06 235.0 2.303E+09 6.572E+08 2.349E+07 9.327E-14 825.8 836 2.300E+07 2.223E+05 2.223E+05 6.189E+06 236.0 2.254E+09 6.330E+08 2.249E+07 9.078E-14 826.1 836 2.288E+07 2.107E+05 2.216E+05 6.078E+06 237.0 2.205E+09 6.096E+08 2.154E+07 8.836E-14 826.5 836 2.275E+07 1.998E+05 2.210E+05 5.969E+06 238.0 2.158E+09 5.872E+08 2.063E+07 8.601E-14 826.8 836 2.262E+07 1.894E+05 2.204E+05 5.861E+06 239.0 2.112E+09 5.656E+08 1.976E+07 8.373E-14 827.1 836 2.250E+07 1.795E+05 2.198E+05 5.755E+06 240.0 2.067E+09 5.448E+08 1.892E+07 8.152E-14 827.4 836 2.238E+07 1.702E+05 2.192E+05 5.650E+06 241.0 2.023E+09 5.248E+08 1.813E+07 7.938E-14 827.6 836 2.225E+07 1.614E+05 2.186E+05 5.547E+06 242.0 1.980E+09 5.056E+08 1.736E+07 7.730E-14 827.9 836 2.213E+07 1.530E+05 2.181E+05 5.446E+06 243.0 1.938E+09 4.871E+08 1.663E+07 7.527E-14 828.2 836 2.201E+07 1.451E+05 2.175E+05 5.346E+06 244.0 1.897E+09 4.692E+08 1.593E+07 7.331E-14 828.4 836 2.189E+07 1.375E+05 2.170E+05 5.247E+06 245.0 1.857E+09 4.521E+08 1.526E+07 7.141E-14 828.7 836 2.177E+07 1.304E+05 2.165E+05 5.151E+06 246.0 1.817E+09 4.355E+08 1.462E+07 6.956E-14 828.9 836 2.165E+07 1.237E+05 2.160E+05 5.055E+06 247.0 1.779E+09 4.196E+08 1.401E+07 6.776E-14 829.2 836 2.154E+07 1.173E+05 2.155E+05 4.962E+06 248.0 1.741E+09 4.043E+08 1.343E+07 6.602E-14 829.4 836 2.142E+07 1.112E+05 2.150E+05 4.870E+06 249.0 1.704E+09 3.896E+08 1.286E+07 6.432E-14 829.6 836 2.130E+07 1.055E+05 2.145E+05 4.779E+06 250.0 1.669E+09 3.754E+08 1.233E+07 6.268E-14 829.8 836 2.119E+07 1.000E+05 2.141E+05 4.690E+06 251.0 1.633E+09 3.617E+08 1.181E+07 6.108E-14 830.0 836 2.107E+07 9.489E+04 2.136E+05 4.602E+06 252.0 1.599E+09 3.486E+08 1.132E+07 5.952E-14 830.2 836 2.096E+07 9.001E+04 2.131E+05 4.516E+06 253.0 1.565E+09 3.359E+08 1.085E+07 5.801E-14 830.4 836 2.085E+07 8.537E+04 2.127E+05 4.432E+06 254.0 1.532E+09 3.237E+08 1.040E+07 5.654E-14 830.6 836 2.073E+07 8.098E+04 2.123E+05 4.349E+06 255.0 1.500E+09 3.120E+08 9.964E+06 5.512E-14 830.8 836 2.062E+07 7.682E+04 2.118E+05 4.267E+06 256.0 1.469E+09 3.006E+08 9.550E+06 5.373E-14 830.9 836 2.051E+07 7.288E+04 2.114E+05 4.187E+06 257.0 1.438E+09 2.897E+08 9.154E+06 5.238E-14 831.1 836 2.040E+07 6.914E+04 2.110E+05 4.109E+06 258.0 1.408E+09 2.793E+08 8.774E+06 5.107E-14 831.3 836 2.029E+07 6.559E+04 2.106E+05 4.031E+06 259.0 1.378E+09 2.691E+08 8.410E+06 4.980E-14 831.4 836 2.018E+07 6.223E+04 2.102E+05 3.956E+06 260.0 1.350E+09 2.594E+08 8.062E+06 4.856E-14 831.6 836 2.008E+07 5.904E+04 2.098E+05 3.881E+06 261.0 1.321E+09 2.500E+08 7.728E+06 4.735E-14 831.7 836 1.997E+07 5.602E+04 2.094E+05 3.808E+06 262.0 1.294E+09 2.410E+08 7.408E+06 4.618E-14 831.9 836 1.986E+07 5.315E+04 2.090E+05 3.736E+06 263.0 1.267E+09 2.323E+08 7.102E+06 4.504E-14 832.0 836 1.976E+07 5.043E+04 2.087E+05 3.666E+06 264.0 1.240E+09 2.239E+08 6.809E+06 4.393E-14 832.2 836 1.965E+07 4.785E+04 2.083E+05 3.597E+06 265.0 1.214E+09 2.158E+08 6.528E+06 4.285E-14 832.3 836 1.955E+07 4.541E+04 2.079E+05 3.529E+06 266.0 1.189E+09 2.081E+08 6.258E+06 4.180E-14 832.4 836 1.944E+07 4.309E+04 2.076E+05 3.462E+06 267.0 1.164E+09 2.006E+08 6.001E+06 4.078E-14 832.5 836 1.934E+07 4.089E+04 2.072E+05 3.397E+06 268.0 1.140E+09 1.933E+08 5.753E+06 3.978E-14 832.6 836 1.924E+07 3.881E+04 2.068E+05 3.333E+06 269.0 1.116E+09 1.864E+08 5.516E+06 3.882E-14 832.8 836 1.914E+07 3.683E+04 2.065E+05 3.270E+06 270.0 1.093E+09 1.797E+08 5.290E+06 3.787E-14 832.9 836 1.904E+07 3.495E+04 2.062E+05 3.209E+06 271.0 1.071E+09 1.732E+08 5.072E+06 3.696E-14 833.0 836 1.894E+07 3.317E+04 2.058E+05 3.148E+06 272.0 1.048E+09 1.670E+08 4.864E+06 3.606E-14 833.1 836 1.884E+07 3.148E+04 2.055E+05 3.089E+06 273.0 1.027E+09 1.610E+08 4.664E+06 3.520E-14 833.2 836 1.874E+07 2.988E+04 2.051E+05 3.031E+06 274.0 1.005E+09 1.552E+08 4.473E+06 3.435E-14 833.3 836 1.864E+07 2.836E+04 2.048E+05 2.973E+06 275.0 9.846E+08 1.497E+08 4.289E+06 3.353E-14 833.4 836 1.854E+07 2.692E+04 2.045E+05 2.917E+06 276.0 9.642E+08 1.443E+08 4.113E+06 3.272E-14 833.5 836 1.844E+07 2.555E+04 2.042E+05 2.863E+06 277.0 9.442E+08 1.391E+08 3.945E+06 3.194E-14 833.6 836 1.835E+07 2.426E+04 2.038E+05 2.809E+06 278.0 9.247E+08 1.341E+08 3.783E+06 3.118E-14 833.6 836 1.825E+07 2.303E+04 2.035E+05 2.756E+06 279.0 9.056E+08 1.293E+08 3.628E+06 3.044E-14 833.7 836 1.815E+07 2.186E+04 2.032E+05 2.704E+06 280.0 8.869E+08 1.247E+08 3.480E+06 2.972E-14 833.8 836 1.806E+07 2.075E+04 2.029E+05 2.653E+06 281.0 8.686E+08 1.202E+08 3.338E+06 2.902E-14 833.9 836 1.796E+07 1.970E+04 2.026E+05 2.603E+06 282.0 8.507E+08 1.159E+08 3.201E+06 2.833E-14 834.0 836 1.787E+07 1.870E+04 2.023E+05 2.554E+06 283.0 8.332E+08 1.118E+08 3.071E+06 2.767E-14 834.0 836 1.778E+07 1.775E+04 2.020E+05 2.507E+06 284.0 8.160E+08 1.078E+08 2.945E+06 2.702E-14 834.1 836 1.768E+07 1.685E+04 2.017E+05 2.459E+06 285.0 7.992E+08 1.040E+08 2.825E+06 2.638E-14 834.2 836 1.759E+07 1.600E+04 2.014E+05 2.413E+06 286.0 7.827E+08 1.002E+08 2.710E+06 2.577E-14 834.2 836 1.750E+07 1.519E+04 2.011E+05 2.368E+06 287.0 7.666E+08 9.667E+07 2.600E+06 2.516E-14 834.3 836 1.741E+07 1.443E+04 2.008E+05 2.324E+06 288.0 7.509E+08 9.323E+07 2.494E+06 2.458E-14 834.4 836 1.732E+07 1.370E+04 2.005E+05 2.280E+06 289.0 7.354E+08 8.990E+07 2.392E+06 2.401E-14 834.4 836 1.723E+07 1.300E+04 2.002E+05 2.238E+06 290.0 7.203E+08 8.670E+07 2.295E+06 2.345E-14 834.5 836 1.714E+07 1.235E+04 1.999E+05 2.196E+06 291.0 7.055E+08 8.361E+07 2.202E+06 2.291E-14 834.5 836 1.705E+07 1.172E+04 1.996E+05 2.155E+06 292.0 6.910E+08 8.064E+07 2.112E+06 2.238E-14 834.6 836 1.696E+07 1.113E+04 1.993E+05 2.115E+06 293.0 6.769E+08 7.777E+07 2.026E+06 2.186E-14 834.6 836 1.687E+07 1.057E+04 1.990E+05 2.075E+06 294.0 6.630E+08 7.500E+07 1.944E+06 2.136E-14 834.7 836 1.679E+07 1.004E+04 1.987E+05 2.037E+06 295.0 6.494E+08 7.234E+07 1.865E+06 2.087E-14 834.7 836 1.670E+07 9.533E+03 1.985E+05 1.999E+06 296.0 6.361E+08 6.977E+07 1.789E+06 2.039E-14 834.8 836 1.661E+07 9.053E+03 1.982E+05 1.961E+06 297.0 6.231E+08 6.729E+07 1.717E+06 1.992E-14 834.8 836 1.653E+07 8.598E+03 1.979E+05 1.925E+06 298.0 6.103E+08 6.490E+07 1.647E+06 1.947E-14 834.9 836 1.644E+07 8.165E+03 1.976E+05 1.889E+06 299.0 5.978E+08 6.260E+07 1.580E+06 1.902E-14 834.9 836 1.636E+07 7.754E+03 1.973E+05 1.854E+06 300.0 5.856E+08 6.037E+07 1.516E+06 1.859E-14 835.0 836 1.627E+07 7.364E+03 1.970E+05 1.819E+06 301.0 5.736E+08 5.823E+07 1.455E+06 1.817E-14 835.0 836 1.619E+07 6.994E+03 1.968E+05 1.785E+06 302.0 5.619E+08 5.617E+07 1.396E+06 1.776E-14 835.1 836 1.610E+07 6.643E+03 1.965E+05 1.752E+06 303.0 5.504E+08 5.418E+07 1.340E+06 1.735E-14 835.1 836 1.602E+07 6.309E+03 1.962E+05 1.720E+06 304.0 5.392E+08 5.226E+07 1.285E+06 1.696E-14 835.1 836 1.594E+07 5.992E+03 1.960E+05 1.688E+06 305.0 5.281E+08 5.041E+07 1.234E+06 1.658E-14 835.2 836 1.586E+07 5.691E+03 1.957E+05 1.657E+06 306.0 5.174E+08 4.862E+07 1.184E+06 1.621E-14 835.2 836 1.577E+07 5.406E+03 1.954E+05 1.626E+06 307.0 5.068E+08 4.690E+07 1.136E+06 1.584E-14 835.2 836 1.569E+07 5.135E+03 1.952E+05 1.596E+06 308.0 4.965E+08 4.524E+07 1.090E+06 1.549E-14 835.3 836 1.561E+07 4.877E+03 1.949E+05 1.567E+06 309.0 4.864E+08 4.364E+07 1.046E+06 1.514E-14 835.3 836 1.553E+07 4.633E+03 1.946E+05 1.538E+06 310.0 4.765E+08 4.210E+07 1.004E+06 1.480E-14 835.3 836 1.545E+07 4.401E+03 1.944E+05 1.510E+06 311.0 4.668E+08 4.061E+07 9.633E+05 1.447E-14 835.4 836 1.537E+07 4.180E+03 1.941E+05 1.482E+06 312.0 4.573E+08 3.918E+07 9.245E+05 1.415E-14 835.4 836 1.529E+07 3.971E+03 1.938E+05 1.455E+06 313.0 4.480E+08 3.780E+07 8.873E+05 1.384E-14 835.4 836 1.521E+07 3.772E+03 1.936E+05 1.428E+06 314.0 4.388E+08 3.646E+07 8.515E+05 1.353E-14 835.4 836 1.514E+07 3.584E+03 1.933E+05 1.402E+06 315.0 4.299E+08 3.518E+07 8.172E+05 1.323E-14 835.5 836 1.506E+07 3.404E+03 1.931E+05 1.376E+06 316.0 4.212E+08 3.393E+07 7.844E+05 1.294E-14 835.5 836 1.498E+07 3.234E+03 1.928E+05 1.351E+06 317.0 4.126E+08 3.274E+07 7.528E+05 1.265E-14 835.5 836 1.490E+07 3.072E+03 1.926E+05 1.326E+06 318.0 4.043E+08 3.158E+07 7.225E+05 1.237E-14 835.5 836 1.483E+07 2.919E+03 1.923E+05 1.302E+06 319.0 3.960E+08 3.047E+07 6.935E+05 1.210E-14 835.6 836 1.475E+07 2.773E+03 1.920E+05 1.278E+06 320.0 3.880E+08 2.940E+07 6.656E+05 1.183E-14 835.6 836 1.468E+07 2.635E+03 1.918E+05 1.255E+06 321.0 3.801E+08 2.836E+07 6.389E+05 1.157E-14 835.6 836 1.460E+07 2.503E+03 1.914E+05 1.232E+06 322.0 3.724E+08 2.736E+07 6.132E+05 1.132E-14 835.6 836 1.453E+07 2.378E+03 1.912E+05 1.209E+06 323.0 3.649E+08 2.640E+07 5.886E+05 1.107E-14 835.7 836 1.445E+07 2.260E+03 1.909E+05 1.187E+06 324.0 3.575E+08 2.547E+07 5.650E+05 1.083E-14 835.7 836 1.438E+07 2.147E+03 1.907E+05 1.166E+06 325.0 3.502E+08 2.458E+07 5.423E+05 1.060E-14 835.7 836 1.430E+07 2.040E+03 1.904E+05 1.144E+06 326.0 3.432E+08 2.371E+07 5.206E+05 1.037E-14 835.7 836 1.423E+07 1.938E+03 1.902E+05 1.124E+06 327.0 3.362E+08 2.288E+07 4.997E+05 1.014E-14 835.7 836 1.416E+07 1.842E+03 1.899E+05 1.103E+06 328.0 3.294E+08 2.208E+07 4.797E+05 9.920E-15 835.7 836 1.409E+07 1.750E+03 1.897E+05 1.083E+06 329.0 3.227E+08 2.130E+07 4.605E+05 9.705E-15 835.8 836 1.401E+07 1.663E+03 1.894E+05 1.064E+06 330.0 3.162E+08 2.055E+07 4.420E+05 9.495E-15 835.8 836 1.394E+07 1.580E+03 1.892E+05 1.044E+06 331.0 3.098E+08 1.983E+07 4.243E+05 9.290E-15 835.8 836 1.387E+07 1.502E+03 1.890E+05 1.025E+06 332.0 3.036E+08 1.914E+07 4.073E+05 9.089E-15 835.8 836 1.380E+07 1.427E+03 1.887E+05 1.007E+06 333.0 2.974E+08 1.847E+07 3.911E+05 8.893E-15 835.8 836 1.373E+07 1.356E+03 1.885E+05 9.886E+05 334.0 2.914E+08 1.782E+07 3.754E+05 8.702E-15 835.8 836 1.366E+07 1.289E+03 1.882E+05 9.707E+05 335.0 2.855E+08 1.719E+07 3.604E+05 8.515E-15 835.9 836 1.359E+07 1.225E+03 1.880E+05 9.532E+05 336.0 2.798E+08 1.659E+07 3.460E+05 8.332E-15 835.9 836 1.352E+07 1.164E+03 1.878E+05 9.360E+05 337.0 2.741E+08 1.601E+07 3.322E+05 8.154E-15 835.9 836 1.345E+07 1.106E+03 1.875E+05 9.191E+05 338.0 2.686E+08 1.545E+07 3.189E+05 7.979E-15 835.9 836 1.338E+07 1.051E+03 1.873E+05 9.025E+05 339.0 2.632E+08 1.491E+07 3.062E+05 7.809E-15 835.9 836 1.332E+07 9.989E+02 1.870E+05 8.863E+05 340.0 2.579E+08 1.439E+07 2.940E+05 7.642E-15 835.9 836 1.325E+07 9.493E+02 1.868E+05 8.703E+05 341.0 2.527E+08 1.388E+07 2.822E+05 7.480E-15 835.9 836 1.318E+07 9.023E+02 1.866E+05 8.546E+05 342.0 2.476E+08 1.340E+07 2.710E+05 7.320E-15 835.9 836 1.311E+07 8.575E+02 1.863E+05 8.393E+05 343.0 2.426E+08 1.293E+07 2.602E+05 7.165E-15 836.0 836 1.305E+07 8.150E+02 1.861E+05 8.242E+05 344.0 2.377E+08 1.248E+07 2.498E+05 7.013E-15 836.0 836 1.298E+07 7.747E+02 1.858E+05 8.094E+05 345.0 2.329E+08 1.204E+07 2.399E+05 6.864E-15 836.0 836 1.292E+07 7.363E+02 1.856E+05 7.949E+05 346.0 2.283E+08 1.162E+07 2.303E+05 6.719E-15 836.0 836 1.285E+07 6.998E+02 1.854E+05 7.806E+05 347.0 2.237E+08 1.122E+07 2.211E+05 6.577E-15 836.0 836 1.279E+07 6.652E+02 1.851E+05 7.666E+05 348.0 2.192E+08 1.082E+07 2.123E+05 6.438E-15 836.0 836 1.272E+07 6.323E+02 1.849E+05 7.529E+05 349.0 2.148E+08 1.045E+07 2.039E+05 6.302E-15 836.0 836 1.266E+07 6.010E+02 1.847E+05 7.394E+05 350.0 2.105E+08 1.008E+07 1.958E+05 6.170E-15 836.0 836 1.259E+07 5.713E+02 1.844E+05 7.262E+05 351.0 2.062E+08 9.731E+06 1.880E+05 6.040E-15 836.0 836 1.253E+07 5.430E+02 1.842E+05 7.132E+05 352.0 2.021E+08 9.392E+06 1.805E+05 5.913E-15 836.0 836 1.247E+07 5.162E+02 1.840E+05 7.005E+05 353.0 1.980E+08 9.064E+06 1.733E+05 5.789E-15 836.0 836 1.240E+07 4.907E+02 1.837E+05 6.880E+05 354.0 1.941E+08 8.748E+06 1.665E+05 5.668E-15 836.1 836 1.234E+07 4.665E+02 1.835E+05 6.757E+05 355.0 1.902E+08 8.444E+06 1.598E+05 5.549E-15 836.1 836 1.228E+07 4.434E+02 1.833E+05 6.636E+05 356.0 1.864E+08 8.150E+06 1.535E+05 5.433E-15 836.1 836 1.221E+07 4.215E+02 1.830E+05 6.518E+05 357.0 1.826E+08 7.866E+06 1.474E+05 5.320E-15 836.1 836 1.215E+07 4.007E+02 1.828E+05 6.402E+05 358.0 1.790E+08 7.592E+06 1.416E+05 5.209E-15 836.1 836 1.209E+07 3.810E+02 1.826E+05 6.288E+05 359.0 1.754E+08 7.328E+06 1.359E+05 5.101E-15 836.1 836 1.203E+07 3.622E+02 1.823E+05 6.176E+05 360.0 1.719E+08 7.074E+06 1.306E+05 4.994E-15 836.1 836 1.197E+07 3.443E+02 1.821E+05 6.066E+05 361.0 1.684E+08 6.828E+06 1.254E+05 4.891E-15 836.1 836 1.191E+07 3.274E+02 1.819E+05 5.958E+05 362.0 1.651E+08 6.590E+06 1.204E+05 4.789E-15 836.1 836 1.185E+07 3.112E+02 1.816E+05 5.853E+05 363.0 1.618E+08 6.361E+06 1.156E+05 4.690E-15 836.1 836 1.179E+07 2.959E+02 1.814E+05 5.749E+05 364.0 1.585E+08 6.140E+06 1.111E+05 4.593E-15 836.1 836 1.173E+07 2.813E+02 1.812E+05 5.647E+05 365.0 1.554E+08 5.927E+06 1.067E+05 4.498E-15 836.1 836 1.167E+07 2.675E+02 1.809E+05 5.547E+05 366.0 1.522E+08 5.722E+06 1.024E+05 4.405E-15 836.1 836 1.161E+07 2.543E+02 1.807E+05 5.448E+05 367.0 1.492E+08 5.523E+06 9.839E+04 4.314E-15 836.1 836 1.155E+07 2.418E+02 1.805E+05 5.352E+05 368.0 1.462E+08 5.331E+06 9.450E+04 4.225E-15 836.1 836 1.150E+07 2.299E+02 1.803E+05 5.257E+05 369.0 1.433E+08 5.147E+06 9.076E+04 4.138E-15 836.1 836 1.144E+07 2.186E+02 1.800E+05 5.164E+05 370.0 1.404E+08 4.968E+06 8.717E+04 4.053E-15 836.1 836 1.138E+07 2.079E+02 1.798E+05 5.073E+05 371.0 1.376E+08 4.796E+06 8.373E+04 3.970E-15 836.2 836 1.132E+07 1.976E+02 1.796E+05 4.983E+05 372.0 1.349E+08 4.630E+06 8.042E+04 3.889E-15 836.2 836 1.127E+07 1.879E+02 1.793E+05 4.895E+05 373.0 1.322E+08 4.469E+06 7.724E+04 3.809E-15 836.2 836 1.121E+07 1.787E+02 1.791E+05 4.809E+05 374.0 1.296E+08 4.315E+06 7.419E+04 3.731E-15 836.2 836 1.115E+07 1.699E+02 1.789E+05 4.724E+05 375.0 1.270E+08 4.165E+06 7.127E+04 3.655E-15 836.2 836 1.110E+07 1.616E+02 1.787E+05 4.640E+05 376.0 1.245E+08 4.021E+06 6.845E+04 3.580E-15 836.2 836 1.104E+07 1.537E+02 1.784E+05 4.559E+05 377.0 1.220E+08 3.882E+06 6.575E+04 3.507E-15 836.2 836 1.099E+07 1.461E+02 1.782E+05 4.478E+05 378.0 1.195E+08 3.748E+06 6.316E+04 3.436E-15 836.2 836 1.093E+07 1.390E+02 1.780E+05 4.399E+05 379.0 1.172E+08 3.618E+06 6.067E+04 3.366E-15 836.2 836 1.088E+07 1.322E+02 1.778E+05 4.322E+05 380.0 1.148E+08 3.493E+06 5.828E+04 3.298E-15 836.2 836 1.082E+07 1.257E+02 1.775E+05 4.246E+05 381.0 1.126E+08 3.373E+06 5.598E+04 3.231E-15 836.2 836 1.077E+07 1.195E+02 1.773E+05 4.171E+05 382.0 1.103E+08 3.256E+06 5.378E+04 3.165E-15 836.2 836 1.071E+07 1.137E+02 1.771E+05 4.098E+05 383.0 1.081E+08 3.144E+06 5.166E+04 3.101E-15 836.2 836 1.066E+07 1.081E+02 1.769E+05 4.026E+05 384.0 1.060E+08 3.035E+06 4.963E+04 3.038E-15 836.2 836 1.061E+07 1.028E+02 1.767E+05 3.955E+05 385.0 1.039E+08 2.930E+06 4.768E+04 2.977E-15 836.2 836 1.055E+07 9.778E+01 1.764E+05 3.886E+05 386.0 1.018E+08 2.829E+06 4.580E+04 2.917E-15 836.2 836 1.050E+07 9.299E+01 1.762E+05 3.818E+05 387.0 9.978E+07 2.732E+06 4.400E+04 2.858E-15 836.2 836 1.045E+07 8.845E+01 1.760E+05 3.751E+05 388.0 9.780E+07 2.637E+06 4.227E+04 2.800E-15 836.2 836 1.040E+07 8.412E+01 1.758E+05 3.685E+05 389.0 9.586E+07 2.547E+06 4.061E+04 2.744E-15 836.2 836 1.034E+07 8.001E+01 1.756E+05 3.620E+05 390.0 9.396E+07 2.459E+06 3.901E+04 2.689E-15 836.2 836 1.029E+07 7.610E+01 1.753E+05 3.557E+05 391.0 9.209E+07 2.374E+06 3.748E+04 2.635E-15 836.2 836 1.024E+07 7.238E+01 1.751E+05 3.495E+05 392.0 9.027E+07 2.292E+06 3.601E+04 2.582E-15 836.2 836 1.019E+07 6.885E+01 1.749E+05 3.434E+05 393.0 8.848E+07 2.213E+06 3.460E+04 2.530E-15 836.2 836 1.014E+07 6.549E+01 1.747E+05 3.374E+05 394.0 8.673E+07 2.137E+06 3.324E+04 2.480E-15 836.2 836 1.009E+07 6.229E+01 1.745E+05 3.315E+05 395.0 8.501E+07 2.064E+06 3.193E+04 2.430E-15 836.2 836 1.004E+07 5.925E+01 1.742E+05 3.257E+05 396.0 8.332E+07 1.993E+06 3.068E+04 2.381E-15 836.2 836 9.988E+06 5.636E+01 1.740E+05 3.200E+05 397.0 8.167E+07 1.924E+06 2.948E+04 2.334E-15 836.2 836 9.938E+06 5.361E+01 1.738E+05 3.144E+05 398.0 8.006E+07 1.858E+06 2.832E+04 2.287E-15 836.2 836 9.888E+06 5.100E+01 1.736E+05 3.089E+05 399.0 7.847E+07 1.794E+06 2.721E+04 2.242E-15 836.2 836 9.839E+06 4.851E+01 1.734E+05 3.035E+05 400.0 7.692E+07 1.733E+06 2.615E+04 2.197E-15 836.2 836 9.790E+06 4.615E+01 1.732E+05 2.982E+05 401.0 7.540E+07 1.673E+06 2.512E+04 2.153E-15 836.2 836 9.741E+06 4.390E+01 1.729E+05 2.930E+05 402.0 7.391E+07 1.616E+06 2.414E+04 2.111E-15 836.2 836 9.693E+06 4.177E+01 1.727E+05 2.879E+05 403.0 7.245E+07 1.560E+06 2.319E+04 2.069E-15 836.2 836 9.644E+06 3.973E+01 1.725E+05 2.829E+05 404.0 7.102E+07 1.507E+06 2.229E+04 2.028E-15 836.2 836 9.596E+06 3.780E+01 1.723E+05 2.780E+05 405.0 6.961E+07 1.455E+06 2.142E+04 1.988E-15 836.2 836 9.549E+06 3.596E+01 1.721E+05 2.732E+05 406.0 6.824E+07 1.405E+06 2.058E+04 1.948E-15 836.2 836 9.501E+06 3.421E+01 1.719E+05 2.684E+05 407.0 6.689E+07 1.357E+06 1.977E+04 1.910E-15 836.2 836 9.454E+06 3.255E+01 1.716E+05 2.637E+05 408.0 6.557E+07 1.310E+06 1.900E+04 1.872E-15 836.2 836 9.407E+06 3.097E+01 1.714E+05 2.592E+05 409.0 6.428E+07 1.265E+06 1.826E+04 1.835E-15 836.3 836 9.360E+06 2.946E+01 1.712E+05 2.547E+05 410.0 6.301E+07 1.222E+06 1.755E+04 1.799E-15 836.3 836 9.314E+06 2.803E+01 1.710E+05 2.502E+05 411.0 6.177E+07 1.180E+06 1.686E+04 1.764E-15 836.3 836 9.267E+06 2.667E+01 1.708E+05 2.459E+05 412.0 6.055E+07 1.140E+06 1.620E+04 1.729E-15 836.3 836 9.221E+06 2.537E+01 1.706E+05 2.416E+05 413.0 5.936E+07 1.101E+06 1.557E+04 1.695E-15 836.3 836 9.176E+06 2.414E+01 1.704E+05 2.374E+05 414.0 5.819E+07 1.063E+06 1.496E+04 1.662E-15 836.3 836 9.130E+06 2.297E+01 1.702E+05 2.333E+05 415.0 5.704E+07 1.027E+06 1.438E+04 1.629E-15 836.3 836 9.085E+06 2.186E+01 1.699E+05 2.293E+05 416.0 5.592E+07 9.916E+05 1.382E+04 1.598E-15 836.3 836 9.040E+06 2.080E+01 1.697E+05 2.253E+05 417.0 5.482E+07 9.577E+05 1.328E+04 1.566E-15 836.3 836 8.995E+06 1.979E+01 1.695E+05 2.214E+05 418.0 5.374E+07 9.250E+05 1.276E+04 1.536E-15 836.3 836 8.950E+06 1.883E+01 1.693E+05 2.176E+05 419.0 5.268E+07 8.934E+05 1.227E+04 1.506E-15 836.3 836 8.906E+06 1.792E+01 1.691E+05 2.138E+05 420.0 5.165E+07 8.629E+05 1.179E+04 1.477E-15 836.3 836 8.862E+06 1.705E+01 1.689E+05 2.101E+05 421.0 5.063E+07 8.334E+05 1.133E+04 1.448E-15 836.3 836 8.818E+06 1.622E+01 1.687E+05 2.065E+05 422.0 4.964E+07 8.050E+05 1.089E+04 1.420E-15 836.3 836 8.774E+06 1.544E+01 1.685E+05 2.029E+05 423.0 4.866E+07 7.775E+05 1.046E+04 1.392E-15 836.3 836 8.731E+06 1.469E+01 1.683E+05 1.994E+05 424.0 4.771E+07 7.510E+05 1.006E+04 1.365E-15 836.3 836 8.688E+06 1.398E+01 1.681E+05 1.960E+05 425.0 4.677E+07 7.253E+05 9.666E+03 1.339E-15 836.3 836 8.645E+06 1.330E+01 1.678E+05 1.926E+05 426.0 4.585E+07 7.006E+05 9.290E+03 1.313E-15 836.3 836 8.602E+06 1.266E+01 1.676E+05 1.893E+05 427.0 4.495E+07 6.767E+05 8.929E+03 1.287E-15 836.3 836 8.560E+06 1.205E+01 1.674E+05 1.860E+05 428.0 4.407E+07 6.537E+05 8.582E+03 1.262E-15 836.3 836 8.517E+06 1.147E+01 1.672E+05 1.828E+05 429.0 4.321E+07 6.314E+05 8.249E+03 1.238E-15 836.3 836 8.475E+06 1.091E+01 1.670E+05 1.796E+05 430.0 4.236E+07 6.099E+05 7.929E+03 1.214E-15 836.3 836 8.433E+06 1.039E+01 1.668E+05 1.765E+05 431.0 4.153E+07 5.891E+05 7.621E+03 1.191E-15 836.3 836 8.392E+06 9.885E+00 1.666E+05 1.735E+05 432.0 4.071E+07 5.691E+05 7.325E+03 1.168E-15 836.3 836 8.350E+06 9.407E+00 1.664E+05 1.705E+05 433.0 3.992E+07 5.497E+05 7.041E+03 1.145E-15 836.3 836 8.309E+06 8.954E+00 1.662E+05 1.676E+05 434.0 3.914E+07 5.310E+05 6.768E+03 1.123E-15 836.3 836 8.268E+06 8.522E+00 1.660E+05 1.647E+05 435.0 3.837E+07 5.130E+05 6.506E+03 1.102E-15 836.3 836 8.227E+06 8.111E+00 1.658E+05 1.619E+05 436.0 3.762E+07 4.955E+05 6.253E+03 1.081E-15 836.3 836 8.187E+06 7.720E+00 1.656E+05 1.591E+05 437.0 3.688E+07 4.787E+05 6.011E+03 1.060E-15 836.3 836 8.146E+06 7.348E+00 1.654E+05 1.563E+05 438.0 3.616E+07 4.624E+05 5.778E+03 1.040E-15 836.3 836 8.106E+06 6.993E+00 1.652E+05 1.537E+05 439.0 3.545E+07 4.467E+05 5.554E+03 1.020E-15 836.3 836 8.066E+06 6.657E+00 1.650E+05 1.510E+05 440.0 3.476E+07 4.315E+05 5.339E+03 1.001E-15 836.3 836 8.027E+06 6.336E+00 1.648E+05 1.484E+05 441.0 3.408E+07 4.169E+05 5.133E+03 9.815E-16 836.3 836 7.987E+06 6.031E+00 1.646E+05 1.459E+05 442.0 3.342E+07 4.027E+05 4.934E+03 9.629E-16 836.3 836 7.948E+06 5.741E+00 1.644E+05 1.434E+05 443.0 3.276E+07 3.891E+05 4.743E+03 9.446E-16 836.3 836 7.909E+06 5.465E+00 1.642E+05 1.409E+05 444.0 3.212E+07 3.759E+05 4.560E+03 9.266E-16 836.3 836 7.870E+06 5.202E+00 1.640E+05 1.385E+05 445.0 3.150E+07 3.631E+05 4.384E+03 9.091E-16 836.3 836 7.831E+06 4.952E+00 1.637E+05 1.361E+05 446.0 3.088E+07 3.508E+05 4.214E+03 8.919E-16 836.3 836 7.793E+06 4.713E+00 1.635E+05 1.338E+05 447.0 3.028E+07 3.389E+05 4.051E+03 8.750E-16 836.3 836 7.754E+06 4.487E+00 1.633E+05 1.315E+05 448.0 2.969E+07 3.274E+05 3.895E+03 8.585E-16 836.3 836 7.716E+06 4.271E+00 1.631E+05 1.292E+05 449.0 2.911E+07 3.164E+05 3.744E+03 8.423E-16 836.3 836 7.678E+06 4.066E+00 1.629E+05 1.270E+05 450.0 2.854E+07 3.056E+05 3.600E+03 8.264E-16 836.3 836 7.641E+06 3.871E+00 1.627E+05 1.249E+05 451.0 2.799E+07 2.953E+05 3.461E+03 8.108E-16 836.3 836 7.603E+06 3.685E+00 1.625E+05 1.225E+05 452.0 2.744E+07 2.853E+05 3.327E+03 7.956E-16 836.3 836 7.566E+06 3.508E+00 1.623E+05 1.205E+05 453.0 2.691E+07 2.757E+05 3.199E+03 7.806E-16 836.3 836 7.529E+06 3.340E+00 1.621E+05 1.184E+05 454.0 2.638E+07 2.663E+05 3.076E+03 7.660E-16 836.3 836 7.492E+06 3.180E+00 1.619E+05 1.164E+05 455.0 2.587E+07 2.573E+05 2.957E+03 7.516E-16 836.3 836 7.455E+06 3.027E+00 1.617E+05 1.144E+05 456.0 2.537E+07 2.486E+05 2.843E+03 7.376E-16 836.3 836 7.419E+06 2.882E+00 1.615E+05 1.124E+05 457.0 2.487E+07 2.402E+05 2.734E+03 7.238E-16 836.3 836 7.382E+06 2.744E+00 1.613E+05 1.105E+05 458.0 2.439E+07 2.321E+05 2.628E+03 7.103E-16 836.3 836 7.346E+06 2.613E+00 1.612E+05 1.086E+05 459.0 2.391E+07 2.243E+05 2.527E+03 6.970E-16 836.3 836 7.310E+06 2.487E+00 1.610E+05 1.068E+05 460.0 2.345E+07 2.167E+05 2.430E+03 6.840E-16 836.3 836 7.274E+06 2.368E+00 1.608E+05 1.050E+05 461.0 2.299E+07 2.094E+05 2.336E+03 6.713E-16 836.3 836 7.239E+06 2.255E+00 1.606E+05 1.032E+05 462.0 2.255E+07 2.023E+05 2.247E+03 6.588E-16 836.3 836 7.203E+06 2.147E+00 1.604E+05 1.014E+05 463.0 2.211E+07 1.955E+05 2.160E+03 6.466E-16 836.3 836 7.168E+06 2.044E+00 1.602E+05 9.971E+04 464.0 2.168E+07 1.889E+05 2.077E+03 6.346E-16 836.3 836 7.133E+06 1.947E+00 1.600E+05 9.802E+04 465.0 2.126E+07 1.825E+05 1.997E+03 6.229E-16 836.3 836 7.098E+06 1.854E+00 1.598E+05 9.635E+04 466.0 2.085E+07 1.764E+05 1.920E+03 6.114E-16 836.3 836 7.064E+06 1.765E+00 1.596E+05 9.471E+04 467.0 2.044E+07 1.704E+05 1.847E+03 6.001E-16 836.3 836 7.029E+06 1.681E+00 1.594E+05 9.310E+04 468.0 2.005E+07 1.647E+05 1.776E+03 5.890E-16 836.3 836 6.995E+06 1.600E+00 1.592E+05 9.152E+04 469.0 1.966E+07 1.591E+05 1.708E+03 5.782E-16 836.3 836 6.961E+06 1.524E+00 1.590E+05 8.997E+04 470.0 1.928E+07 1.538E+05 1.642E+03 5.675E-16 836.3 836 6.927E+06 1.451E+00 1.588E+05 8.844E+04 471.0 1.890E+07 1.486E+05 1.579E+03 5.571E-16 836.3 836 6.893E+06 1.382E+00 1.586E+05 8.694E+04 472.0 1.854E+07 1.436E+05 1.518E+03 5.469E-16 836.3 836 6.859E+06 1.316E+00 1.584E+05 8.546E+04 473.0 1.818E+07 1.388E+05 1.460E+03 5.369E-16 836.3 836 6.826E+06 1.253E+00 1.582E+05 8.401E+04 474.0 1.783E+07 1.341E+05 1.404E+03 5.271E-16 836.3 836 6.792E+06 1.193E+00 1.580E+05 8.259E+04 475.0 1.748E+07 1.296E+05 1.350E+03 5.174E-16 836.3 836 6.759E+06 1.136E+00 1.578E+05 8.119E+04 476.0 1.714E+07 1.253E+05 1.299E+03 5.080E-16 836.3 836 6.726E+06 1.082E+00 1.576E+05 7.981E+04 477.0 1.681E+07 1.210E+05 1.249E+03 4.987E-16 836.3 836 6.694E+06 1.031E+00 1.574E+05 7.846E+04 478.0 1.649E+07 1.170E+05 1.201E+03 4.897E-16 836.3 836 6.661E+06 9.817E-01 1.573E+05 7.713E+04 479.0 1.617E+07 1.131E+05 1.155E+03 4.808E-16 836.3 836 6.629E+06 9.349E-01 1.571E+05 7.583E+04 480.0 1.586E+07 1.093E+05 1.111E+03 4.721E-16 836.3 836 6.596E+06 8.904E-01 1.569E+05 7.454E+04 481.0 1.555E+07 1.056E+05 1.068E+03 4.635E-16 836.3 836 6.564E+06 8.480E-01 1.567E+05 7.328E+04 482.0 1.525E+07 1.020E+05 1.028E+03 4.551E-16 836.3 836 6.532E+06 8.077E-01 1.565E+05 7.204E+04 483.0 1.495E+07 9.863E+04 9.883E+02 4.469E-16 836.3 836 6.501E+06 7.693E-01 1.563E+05 7.082E+04 484.0 1.467E+07 9.532E+04 9.505E+02 4.388E-16 836.3 836 6.469E+06 7.327E-01 1.561E+05 6.963E+04 485.0 1.438E+07 9.212E+04 9.142E+02 4.309E-16 836.3 836 6.438E+06 6.978E-01 1.559E+05 6.845E+04 486.0 1.411E+07 8.904E+04 8.792E+02 4.232E-16 836.3 836 6.406E+06 6.647E-01 1.557E+05 6.729E+04 487.0 1.383E+07 8.605E+04 8.457E+02 4.156E-16 836.3 836 6.375E+06 6.331E-01 1.555E+05 6.616E+04 488.0 1.357E+07 8.317E+04 8.134E+02 4.081E-16 836.3 836 6.344E+06 6.030E-01 1.554E+05 6.504E+04 489.0 1.331E+07 8.039E+04 7.823E+02 4.008E-16 836.3 836 6.314E+06 5.744E-01 1.552E+05 6.394E+04 490.0 1.305E+07 7.770E+04 7.525E+02 3.937E-16 836.3 836 6.283E+06 5.471E-01 1.550E+05 6.286E+04 491.0 1.280E+07 7.510E+04 7.238E+02 3.867E-16 836.3 836 6.252E+06 5.212E-01 1.548E+05 6.180E+04 492.0 1.255E+07 7.258E+04 6.962E+02 3.798E-16 836.3 836 6.222E+06 4.964E-01 1.546E+05 6.076E+04 493.0 1.231E+07 7.016E+04 6.696E+02 3.730E-16 836.3 836 6.192E+06 4.729E-01 1.544E+05 5.973E+04 494.0 1.207E+07 6.781E+04 6.441E+02 3.664E-16 836.3 836 6.162E+06 4.505E-01 1.542E+05 5.873E+04 495.0 1.184E+07 6.554E+04 6.195E+02 3.599E-16 836.3 836 6.132E+06 4.291E-01 1.540E+05 5.774E+04 496.0 1.161E+07 6.335E+04 5.959E+02 3.535E-16 836.3 836 6.102E+06 4.088E-01 1.538E+05 5.676E+04 497.0 1.139E+07 6.124E+04 5.732E+02 3.473E-16 836.3 836 6.073E+06 3.894E-01 1.537E+05 5.581E+04 498.0 1.117E+07 5.919E+04 5.514E+02 3.411E-16 836.3 836 6.043E+06 3.710E-01 1.535E+05 5.487E+04 499.0 1.096E+07 5.722E+04 5.304E+02 3.351E-16 836.3 836 6.014E+06 3.534E-01 1.533E+05 5.394E+04 500.0 1.075E+07 5.531E+04 5.102E+02 3.292E-16 836.3 836 5.985E+06 3.367E-01 1.531E+05 5.304E+04 501.0 1.054E+07 5.346E+04 4.908E+02 3.235E-16 836.3 836 5.956E+06 3.207E-01 1.529E+05 5.214E+04 502.0 1.034E+07 5.168E+04 4.722E+02 3.178E-16 836.3 836 5.927E+06 3.056E-01 1.527E+05 5.127E+04 503.0 1.014E+07 4.996E+04 4.542E+02 3.122E-16 836.3 836 5.899E+06 2.911E-01 1.525E+05 5.040E+04 504.0 9.944E+06 4.829E+04 4.370E+02 3.068E-16 836.3 836 5.870E+06 2.773E-01 1.524E+05 4.956E+04 505.0 9.753E+06 4.668E+04 4.204E+02 3.014E-16 836.3 836 5.842E+06 2.642E-01 1.522E+05 4.872E+04 506.0 9.566E+06 4.513E+04 4.044E+02 2.962E-16 836.3 836 5.814E+06 2.517E-01 1.520E+05 4.791E+04 507.0 9.383E+06 4.362E+04 3.890E+02 2.910E-16 836.3 836 5.786E+06 2.399E-01 1.518E+05 4.710E+04 508.0 9.203E+06 4.217E+04 3.743E+02 2.860E-16 836.3 836 5.758E+06 2.285E-01 1.516E+05 4.631E+04 509.0 9.027E+06 4.077E+04 3.601E+02 2.810E-16 836.3 836 5.730E+06 2.177E-01 1.514E+05 4.553E+04 510.0 8.854E+06 3.941E+04 3.464E+02 2.762E-16 836.3 836 5.702E+06 2.075E-01 1.513E+05 4.477E+04 511.0 8.684E+06 3.810E+04 3.333E+02 2.714E-16 836.3 836 5.675E+06 1.977E-01 1.511E+05 4.402E+04 512.0 8.518E+06 3.683E+04 3.206E+02 2.667E-16 836.3 836 5.647E+06 1.883E-01 1.509E+05 4.328E+04 513.0 8.355E+06 3.561E+04 3.085E+02 2.621E-16 836.3 836 5.620E+06 1.795E-01 1.507E+05 4.255E+04 514.0 8.195E+06 3.442E+04 2.968E+02 2.576E-16 836.3 836 5.593E+06 1.710E-01 1.505E+05 4.184E+04 515.0 8.038E+06 3.328E+04 2.855E+02 2.532E-16 836.3 836 5.566E+06 1.629E-01 1.504E+05 4.114E+04 516.0 7.885E+06 3.217E+04 2.747E+02 2.489E-16 836.3 836 5.539E+06 1.553E-01 1.502E+05 4.045E+04 517.0 7.734E+06 3.110E+04 2.643E+02 2.447E-16 836.3 836 5.513E+06 1.479E-01 1.500E+05 3.977E+04 518.0 7.586E+06 3.007E+04 2.543E+02 2.405E-16 836.3 836 5.486E+06 1.410E-01 1.498E+05 3.911E+04 519.0 7.441E+06 2.907E+04 2.447E+02 2.364E-16 836.3 836 5.460E+06 1.343E-01 1.496E+05 3.845E+04 520.0 7.299E+06 2.811E+04 2.354E+02 2.324E-16 836.3 836 5.433E+06 1.280E-01 1.494E+05 3.781E+04 521.0 7.160E+06 2.718E+04 2.265E+02 2.285E-16 836.3 836 5.407E+06 1.220E-01 1.493E+05 3.718E+04 522.0 7.023E+06 2.627E+04 2.179E+02 2.246E-16 836.3 836 5.381E+06 1.163E-01 1.491E+05 3.655E+04 523.0 6.889E+06 2.540E+04 2.097E+02 2.208E-16 836.3 836 5.355E+06 1.108E-01 1.489E+05 3.594E+04 524.0 6.758E+06 2.456E+04 2.018E+02 2.171E-16 836.3 836 5.330E+06 1.056E-01 1.487E+05 3.534E+04 525.0 6.629E+06 2.375E+04 1.942E+02 2.134E-16 836.3 836 5.304E+06 1.006E-01 1.486E+05 3.475E+04 526.0 6.502E+06 2.296E+04 1.868E+02 2.099E-16 836.3 836 5.279E+06 9.589E-02 1.484E+05 3.417E+04 527.0 6.378E+06 2.220E+04 1.798E+02 2.064E-16 836.3 836 5.253E+06 9.139E-02 1.482E+05 3.360E+04 528.0 6.257E+06 2.147E+04 1.730E+02 2.029E-16 836.3 836 5.228E+06 8.709E-02 1.480E+05 3.304E+04 529.0 6.138E+06 2.075E+04 1.665E+02 1.995E-16 836.3 836 5.203E+06 8.301E-02 1.478E+05 3.249E+04 530.0 6.021E+06 2.007E+04 1.602E+02 1.962E-16 836.3 836 5.178E+06 7.911E-02 1.477E+05 3.195E+04 531.0 5.906E+06 1.940E+04 1.541E+02 1.930E-16 836.3 836 5.153E+06 7.540E-02 1.475E+05 3.141E+04 532.0 5.794E+06 1.876E+04 1.483E+02 1.898E-16 836.3 836 5.129E+06 7.186E-02 1.473E+05 3.089E+04 533.0 5.683E+06 1.814E+04 1.427E+02 1.866E-16 836.3 836 5.104E+06 6.849E-02 1.471E+05 3.038E+04 534.0 5.575E+06 1.754E+04 1.374E+02 1.836E-16 836.3 836 5.080E+06 6.528E-02 1.470E+05 2.987E+04 535.0 5.469E+06 1.696E+04 1.322E+02 1.806E-16 836.3 836 5.055E+06 6.222E-02 1.468E+05 2.937E+04 536.0 5.365E+06 1.640E+04 1.272E+02 1.776E-16 836.3 836 5.031E+06 5.931E-02 1.466E+05 2.888E+04 537.0 5.263E+06 1.586E+04 1.224E+02 1.747E-16 836.3 836 5.007E+06 5.653E-02 1.464E+05 2.840E+04 538.0 5.163E+06 1.534E+04 1.178E+02 1.718E-16 836.3 836 4.983E+06 5.388E-02 1.462E+05 2.793E+04 539.0 5.065E+06 1.483E+04 1.134E+02 1.690E-16 836.3 836 4.959E+06 5.136E-02 1.461E+05 2.746E+04 540.0 4.969E+06 1.434E+04 1.091E+02 1.663E-16 836.3 836 4.935E+06 4.895E-02 1.459E+05 2.701E+04 541.0 4.875E+06 1.387E+04 1.050E+02 1.636E-16 836.3 836 4.912E+06 4.666E-02 1.457E+05 2.656E+04 542.0 4.782E+06 1.341E+04 1.011E+02 1.610E-16 836.3 836 4.888E+06 4.448E-02 1.455E+05 2.612E+04 543.0 4.691E+06 1.297E+04 9.726E+01 1.584E-16 836.3 836 4.865E+06 4.240E-02 1.454E+05 2.568E+04 544.0 4.602E+06 1.254E+04 9.360E+01 1.558E-16 836.3 836 4.842E+06 4.042E-02 1.452E+05 2.526E+04 545.0 4.515E+06 1.213E+04 9.009E+01 1.533E-16 836.3 836 4.819E+06 3.853E-02 1.450E+05 2.484E+04 546.0 4.430E+06 1.173E+04 8.670E+01 1.509E-16 836.3 836 4.796E+06 3.673E-02 1.449E+05 2.442E+04 547.0 4.346E+06 1.134E+04 8.345E+01 1.484E-16 836.3 836 4.773E+06 3.501E-02 1.447E+05 2.402E+04 548.0 4.263E+06 1.097E+04 8.032E+01 1.461E-16 836.3 836 4.750E+06 3.338E-02 1.445E+05 2.362E+04 549.0 4.183E+06 1.061E+04 7.730E+01 1.438E-16 836.3 836 4.727E+06 3.182E-02 1.443E+05 2.323E+04 550.0 4.103E+06 1.026E+04 7.440E+01 1.415E-16 836.3 836 4.705E+06 3.034E-02 1.442E+05 2.284E+04 551.0 4.026E+06 9.922E+03 7.161E+01 1.392E-16 836.3 836 4.682E+06 2.892E-02 1.440E+05 2.246E+04 552.0 3.949E+06 9.595E+03 6.893E+01 1.370E-16 836.3 836 4.660E+06 2.757E-02 1.438E+05 2.209E+04 553.0 3.875E+06 9.280E+03 6.634E+01 1.349E-16 836.3 836 4.638E+06 2.629E-02 1.436E+05 2.172E+04 554.0 3.801E+06 8.975E+03 6.386E+01 1.328E-16 836.3 836 4.616E+06 2.506E-02 1.435E+05 2.136E+04 555.0 3.730E+06 8.680E+03 6.146E+01 1.307E-16 836.3 836 4.594E+06 2.389E-02 1.433E+05 2.101E+04 556.0 3.659E+06 8.395E+03 5.916E+01 1.287E-16 836.3 836 4.572E+06 2.278E-02 1.431E+05 2.066E+04 557.0 3.590E+06 8.119E+03 5.695E+01 1.267E-16 836.3 836 4.550E+06 2.172E-02 1.430E+05 2.032E+04 558.0 3.522E+06 7.853E+03 5.482E+01 1.247E-16 836.3 836 4.529E+06 2.071E-02 1.428E+05 1.998E+04 559.0 3.456E+06 7.595E+03 5.277E+01 1.228E-16 836.3 836 4.507E+06 1.974E-02 1.426E+05 1.965E+04 560.0 3.390E+06 7.346E+03 5.079E+01 1.209E-16 836.3 836 4.486E+06 1.882E-02 1.425E+05 1.933E+04 561.0 3.326E+06 7.105E+03 4.889E+01 1.190E-16 836.3 836 4.464E+06 1.795E-02 1.423E+05 1.901E+04 562.0 3.264E+06 6.872E+03 4.706E+01 1.172E-16 836.3 836 4.443E+06 1.711E-02 1.421E+05 1.869E+04 563.0 3.202E+06 6.647E+03 4.531E+01 1.154E-16 836.3 836 4.422E+06 1.632E-02 1.419E+05 1.839E+04 564.0 3.142E+06 6.429E+03 4.361E+01 1.136E-16 836.3 836 4.401E+06 1.556E-02 1.418E+05 1.808E+04 565.0 3.082E+06 6.218E+03 4.198E+01 1.119E-16 836.3 836 4.380E+06 1.484E-02 1.416E+05 1.778E+04 566.0 3.024E+06 6.015E+03 4.042E+01 1.102E-16 836.3 836 4.359E+06 1.415E-02 1.414E+05 1.749E+04 567.0 2.967E+06 5.818E+03 3.891E+01 1.085E-16 836.3 836 4.339E+06 1.349E-02 1.413E+05 1.720E+04 568.0 2.911E+06 5.627E+03 3.745E+01 1.069E-16 836.3 836 4.318E+06 1.286E-02 1.411E+05 1.692E+04 569.0 2.857E+06 5.443E+03 3.606E+01 1.053E-16 836.3 836 4.298E+06 1.227E-02 1.409E+05 1.664E+04 570.0 2.803E+06 5.265E+03 3.471E+01 1.037E-16 836.3 836 4.277E+06 1.170E-02 1.408E+05 1.636E+04 571.0 2.750E+06 5.093E+03 3.342E+01 1.022E-16 836.3 836 4.257E+06 1.115E-02 1.406E+05 1.609E+04 572.0 2.698E+06 4.926E+03 3.217E+01 1.006E-16 836.3 836 4.237E+06 1.064E-02 1.404E+05 1.583E+04 573.0 2.648E+06 4.765E+03 3.097E+01 9.913E-17 836.3 836 4.217E+06 1.014E-02 1.403E+05 1.557E+04 574.0 2.598E+06 4.610E+03 2.982E+01 9.767E-17 836.3 836 4.197E+06 9.674E-03 1.401E+05 1.531E+04 575.0 2.549E+06 4.459E+03 2.871E+01 9.622E-17 836.3 836 4.177E+06 9.225E-03 1.399E+05 1.506E+04 576.0 2.501E+06 4.313E+03 2.764E+01 9.481E-17 836.3 836 4.157E+06 8.798E-03 1.398E+05 1.481E+04 577.0 2.454E+06 4.172E+03 2.661E+01 9.342E-17 836.3 836 4.137E+06 8.391E-03 1.396E+05 1.457E+04 578.0 2.408E+06 4.036E+03 2.562E+01 9.205E-17 836.3 836 4.118E+06 8.002E-03 1.394E+05 1.433E+04 579.0 2.363E+06 3.905E+03 2.467E+01 9.071E-17 836.3 836 4.098E+06 7.632E-03 1.393E+05 1.409E+04 580.0 2.318E+06 3.777E+03 2.375E+01 8.939E-17 836.3 836 4.079E+06 7.278E-03 1.391E+05 1.386E+04 581.0 2.275E+06 3.654E+03 2.287E+01 8.809E-17 836.3 836 4.060E+06 6.942E-03 1.389E+05 1.363E+04 582.0 2.232E+06 3.535E+03 2.202E+01 8.682E-17 836.3 836 4.041E+06 6.621E-03 1.388E+05 1.341E+04 583.0 2.190E+06 3.420E+03 2.120E+01 8.557E-17 836.3 836 4.021E+06 6.315E-03 1.386E+05 1.319E+04 584.0 2.149E+06 3.308E+03 2.041E+01 8.434E-17 836.3 836 4.002E+06 6.023E-03 1.385E+05 1.297E+04 585.0 2.109E+06 3.200E+03 1.965E+01 8.314E-17 836.3 836 3.984E+06 5.744E-03 1.383E+05 1.276E+04 586.0 2.069E+06 3.096E+03 1.892E+01 8.195E-17 836.3 836 3.965E+06 5.479E-03 1.381E+05 1.255E+04 587.0 2.031E+06 2.995E+03 1.822E+01 8.079E-17 836.3 836 3.946E+06 5.226E-03 1.380E+05 1.234E+04 588.0 1.993E+06 2.898E+03 1.754E+01 7.965E-17 836.3 836 3.927E+06 4.985E-03 1.378E+05 1.214E+04 589.0 1.955E+06 2.804E+03 1.689E+01 7.852E-17 836.3 836 3.909E+06 4.755E-03 1.376E+05 1.194E+04 590.0 1.919E+06 2.712E+03 1.627E+01 7.742E-17 836.3 836 3.891E+06 4.535E-03 1.375E+05 1.175E+04 591.0 1.883E+06 2.624E+03 1.566E+01 7.634E-17 836.3 836 3.872E+06 4.326E-03 1.373E+05 1.155E+04 592.0 1.848E+06 2.539E+03 1.508E+01 7.527E-17 836.3 836 3.854E+06 4.126E-03 1.371E+05 1.136E+04 593.0 1.813E+06 2.456E+03 1.452E+01 7.422E-17 836.3 836 3.836E+06 3.936E-03 1.370E+05 1.118E+04 594.0 1.779E+06 2.377E+03 1.399E+01 7.320E-17 836.3 836 3.818E+06 3.755E-03 1.368E+05 1.099E+04 595.0 1.746E+06 2.299E+03 1.347E+01 7.218E-17 836.3 836 3.800E+06 3.582E-03 1.367E+05 1.081E+04 596.0 1.713E+06 2.225E+03 1.297E+01 7.119E-17 836.3 836 3.782E+06 3.417E-03 1.365E+05 1.064E+04 597.0 1.681E+06 2.152E+03 1.249E+01 7.022E-17 836.3 836 3.764E+06 3.259E-03 1.363E+05 1.046E+04 598.0 1.650E+06 2.083E+03 1.203E+01 6.926E-17 836.3 836 3.746E+06 3.109E-03 1.362E+05 1.029E+04 599.0 1.619E+06 2.015E+03 1.158E+01 6.831E-17 836.3 836 3.729E+06 2.966E-03 1.360E+05 1.012E+04 600.0 1.589E+06 1.950E+03 1.115E+01 6.739E-17 836.3 836 3.711E+06 2.830E-03 1.359E+05 9.958E+03 601.0 1.559E+06 1.886E+03 1.074E+01 6.648E-17 836.3 836 3.694E+06 2.699E-03 1.357E+05 9.795E+03 602.0 1.530E+06 1.825E+03 1.034E+01 6.558E-17 836.3 836 3.676E+06 2.575E-03 1.355E+05 9.635E+03 603.0 1.501E+06 1.766E+03 9.962E+00 6.470E-17 836.3 836 3.659E+06 2.457E-03 1.354E+05 9.477E+03 604.0 1.473E+06 1.709E+03 9.594E+00 6.384E-17 836.3 836 3.642E+06 2.344E-03 1.352E+05 9.323E+03 605.0 1.446E+06 1.654E+03 9.239E+00 6.299E-17 836.3 836 3.625E+06 2.236E-03 1.351E+05 9.170E+03 606.0 1.419E+06 1.600E+03 8.898E+00 6.216E-17 836.3 836 3.608E+06 2.134E-03 1.349E+05 9.021E+03 607.0 1.393E+06 1.548E+03 8.570E+00 6.133E-17 836.3 836 3.591E+06 2.036E-03 1.347E+05 8.873E+03 608.0 1.367E+06 1.498E+03 8.253E+00 6.053E-17 836.3 836 3.574E+06 1.942E-03 1.346E+05 8.729E+03 609.0 1.341E+06 1.450E+03 7.949E+00 5.973E-17 836.3 836 3.557E+06 1.853E-03 1.344E+05 8.586E+03 610.0 1.316E+06 1.403E+03 7.656E+00 5.896E-17 836.3 836 3.541E+06 1.768E-03 1.343E+05 8.446E+03 611.0 1.292E+06 1.357E+03 7.374E+00 5.819E-17 836.3 836 3.524E+06 1.687E-03 1.341E+05 8.309E+03 612.0 1.268E+06 1.313E+03 7.102E+00 5.744E-17 836.3 836 3.508E+06 1.609E-03 1.340E+05 8.173E+03 613.0 1.244E+06 1.271E+03 6.840E+00 5.669E-17 836.3 836 3.491E+06 1.536E-03 1.338E+05 8.040E+03 614.0 1.221E+06 1.230E+03 6.588E+00 5.597E-17 836.3 836 3.475E+06 1.465E-03 1.336E+05 7.909E+03 615.0 1.198E+06 1.190E+03 6.345E+00 5.525E-17 836.3 836 3.459E+06 1.398E-03 1.335E+05 7.780E+03 616.0 1.176E+06 1.152E+03 6.112E+00 5.455E-17 836.3 836 3.442E+06 1.334E-03 1.333E+05 7.654E+03 617.0 1.154E+06 1.115E+03 5.887E+00 5.386E-17 836.3 836 3.426E+06 1.273E-03 1.332E+05 7.529E+03 618.0 1.133E+06 1.079E+03 5.670E+00 5.317E-17 836.3 836 3.410E+06 1.215E-03 1.330E+05 7.407E+03 619.0 1.112E+06 1.044E+03 5.462E+00 5.251E-17 836.3 836 3.394E+06 1.159E-03 1.329E+05 7.286E+03 620.0 1.091E+06 1.010E+03 5.261E+00 5.185E-17 836.3 836 3.379E+06 1.106E-03 1.327E+05 7.168E+03 621.0 1.071E+06 9.776E+02 5.067E+00 5.120E-17 836.3 836 3.363E+06 1.055E-03 1.326E+05 7.051E+03 622.0 1.051E+06 9.461E+02 4.881E+00 5.056E-17 836.3 836 3.347E+06 1.007E-03 1.324E+05 6.936E+03 623.0 1.032E+06 9.156E+02 4.702E+00 4.994E-17 836.3 836 3.331E+06 9.612E-04 1.322E+05 6.824E+03 624.0 1.012E+06 8.861E+02 4.529E+00 4.932E-17 836.3 836 3.316E+06 9.172E-04 1.321E+05 6.713E+03 625.0 9.936E+05 8.575E+02 4.363E+00 4.872E-17 836.3 836 3.300E+06 8.753E-04 1.319E+05 6.604E+03 626.0 9.752E+05 8.299E+02 4.202E+00 4.812E-17 836.3 836 3.285E+06 8.353E-04 1.318E+05 6.497E+03 627.0 9.571E+05 8.032E+02 4.048E+00 4.754E-17 836.3 836 3.270E+06 7.972E-04 1.316E+05 6.391E+03 628.0 9.394E+05 7.774E+02 3.900E+00 4.696E-17 836.3 836 3.254E+06 7.608E-04 1.315E+05 6.288E+03 629.0 9.220E+05 7.523E+02 3.757E+00 4.639E-17 836.3 836 3.239E+06 7.260E-04 1.313E+05 6.186E+03 630.0 9.050E+05 7.281E+02 3.619E+00 4.584E-17 836.3 836 3.224E+06 6.929E-04 1.312E+05 6.085E+03 631.0 8.882E+05 7.047E+02 3.486E+00 4.529E-17 836.3 836 3.209E+06 6.613E-04 1.310E+05 5.987E+03 632.0 8.718E+05 6.821E+02 3.358E+00 4.475E-17 836.3 836 3.194E+06 6.311E-04 1.309E+05 5.890E+03 633.0 8.557E+05 6.602E+02 3.235E+00 4.422E-17 836.3 836 3.179E+06 6.024E-04 1.307E+05 5.794E+03 634.0 8.398E+05 6.389E+02 3.117E+00 4.370E-17 836.3 836 3.165E+06 5.749E-04 1.306E+05 5.700E+03 635.0 8.243E+05 6.184E+02 3.003E+00 4.318E-17 836.3 836 3.150E+06 5.487E-04 1.304E+05 5.608E+03 636.0 8.091E+05 5.986E+02 2.893E+00 4.268E-17 836.3 836 3.135E+06 5.237E-04 1.303E+05 5.517E+03 637.0 7.941E+05 5.793E+02 2.787E+00 4.218E-17 836.3 836 3.121E+06 4.999E-04 1.301E+05 5.428E+03 638.0 7.795E+05 5.608E+02 2.685E+00 4.169E-17 836.3 836 3.106E+06 4.771E-04 1.299E+05 5.340E+03 639.0 7.651E+05 5.428E+02 2.587E+00 4.121E-17 836.3 836 3.092E+06 4.554E-04 1.298E+05 5.254E+03 640.0 7.510E+05 5.254E+02 2.492E+00 4.074E-17 836.3 836 3.077E+06 4.347E-04 1.296E+05 5.169E+03 641.0 7.371E+05 5.085E+02 2.401E+00 4.027E-17 836.3 836 3.063E+06 4.149E-04 1.295E+05 5.085E+03 642.0 7.235E+05 4.922E+02 2.313E+00 3.981E-17 836.3 836 3.049E+06 3.960E-04 1.293E+05 5.003E+03 643.0 7.102E+05 4.764E+02 2.229E+00 3.936E-17 836.3 836 3.035E+06 3.780E-04 1.292E+05 4.922E+03 644.0 6.971E+05 4.612E+02 2.147E+00 3.892E-17 836.3 836 3.021E+06 3.608E-04 1.290E+05 4.843E+03 645.0 6.842E+05 4.464E+02 2.069E+00 3.848E-17 836.3 836 3.006E+06 3.444E-04 1.289E+05 4.765E+03 646.0 6.716E+05 4.321E+02 1.993E+00 3.805E-17 836.3 836 2.993E+06 3.288E-04 1.287E+05 4.688E+03 647.0 6.593E+05 4.183E+02 1.920E+00 3.763E-17 836.3 836 2.979E+06 3.139E-04 1.286E+05 4.612E+03 648.0 6.471E+05 4.049E+02 1.850E+00 3.721E-17 836.3 836 2.965E+06 2.996E-04 1.284E+05 4.538E+03 649.0 6.352E+05 3.919E+02 1.783E+00 3.680E-17 836.3 836 2.951E+06 2.860E-04 1.283E+05 4.465E+03 650.0 6.235E+05 3.794E+02 1.718E+00 3.640E-17 836.3 836 2.937E+06 2.730E-04 1.281E+05 4.393E+03 651.0 6.120E+05 3.673E+02 1.655E+00 3.600E-17 836.3 836 2.924E+06 2.606E-04 1.280E+05 4.322E+03 652.0 6.008E+05 3.555E+02 1.595E+00 3.561E-17 836.3 836 2.910E+06 2.488E-04 1.279E+05 4.252E+03 653.0 5.897E+05 3.442E+02 1.537E+00 3.522E-17 836.3 836 2.897E+06 2.375E-04 1.277E+05 4.184E+03 654.0 5.789E+05 3.332E+02 1.481E+00 3.484E-17 836.3 836 2.883E+06 2.268E-04 1.276E+05 4.116E+03 655.0 5.683E+05 3.225E+02 1.427E+00 3.447E-17 836.3 836 2.870E+06 2.165E-04 1.274E+05 4.050E+03 656.0 5.578E+05 3.122E+02 1.375E+00 3.410E-17 836.3 836 2.857E+06 2.067E-04 1.273E+05 3.985E+03 657.0 5.476E+05 3.023E+02 1.325E+00 3.374E-17 836.3 836 2.844E+06 1.973E-04 1.271E+05 3.921E+03 658.0 5.375E+05 2.926E+02 1.277E+00 3.338E-17 836.3 836 2.830E+06 1.884E-04 1.270E+05 3.858E+03 659.0 5.276E+05 2.833E+02 1.230E+00 3.303E-17 836.3 836 2.817E+06 1.799E-04 1.268E+05 3.796E+03 660.0 5.180E+05 2.742E+02 1.185E+00 3.269E-17 836.3 836 2.804E+06 1.717E-04 1.267E+05 3.735E+03 661.0 5.085E+05 2.655E+02 1.142E+00 3.235E-17 836.3 836 2.791E+06 1.640E-04 1.265E+05 3.675E+03 662.0 4.991E+05 2.570E+02 1.101E+00 3.201E-17 836.3 836 2.779E+06 1.565E-04 1.264E+05 3.616E+03 663.0 4.900E+05 2.488E+02 1.061E+00 3.168E-17 836.3 836 2.766E+06 1.495E-04 1.262E+05 3.557E+03 664.0 4.810E+05 2.409E+02 1.022E+00 3.136E-17 836.3 836 2.753E+06 1.427E-04 1.261E+05 3.500E+03 665.0 4.722E+05 2.332E+02 9.852E-01 3.104E-17 836.3 836 2.740E+06 1.363E-04 1.259E+05 3.444E+03 666.0 4.635E+05 2.258E+02 9.494E-01 3.072E-17 836.3 836 2.728E+06 1.301E-04 1.258E+05 3.389E+03 667.0 4.550E+05 2.186E+02 9.150E-01 3.041E-17 836.3 836 2.715E+06 1.242E-04 1.256E+05 3.335E+03 668.0 4.467E+05 2.117E+02 8.818E-01 3.010E-17 836.3 836 2.703E+06 1.186E-04 1.255E+05 3.281E+03 669.0 4.385E+05 2.049E+02 8.498E-01 2.980E-17 836.3 836 2.690E+06 1.133E-04 1.254E+05 3.228E+03 670.0 4.305E+05 1.984E+02 8.190E-01 2.950E-17 836.3 836 2.678E+06 1.082E-04 1.252E+05 3.177E+03 671.0 4.226E+05 1.921E+02 7.893E-01 2.921E-17 836.3 836 2.665E+06 1.033E-04 1.251E+05 3.126E+03 672.0 4.149E+05 1.860E+02 7.607E-01 2.892E-17 836.3 836 2.653E+06 9.862E-05 1.249E+05 3.076E+03 673.0 4.073E+05 1.801E+02 7.331E-01 2.864E-17 836.3 836 2.641E+06 9.417E-05 1.248E+05 3.026E+03 674.0 3.999E+05 1.744E+02 7.065E-01 2.836E-17 836.3 836 2.629E+06 8.993E-05 1.246E+05 2.978E+03 675.0 3.926E+05 1.688E+02 6.810E-01 2.808E-17 836.3 836 2.617E+06 8.588E-05 1.245E+05 2.930E+03 676.0 3.854E+05 1.635E+02 6.563E-01 2.781E-17 836.3 836 2.605E+06 8.201E-05 1.244E+05 2.883E+03 677.0 3.783E+05 1.583E+02 6.325E-01 2.754E-17 836.3 836 2.593E+06 7.832E-05 1.242E+05 2.837E+03 678.0 3.714E+05 1.533E+02 6.097E-01 2.728E-17 836.3 836 2.581E+06 7.479E-05 1.241E+05 2.792E+03 679.0 3.647E+05 1.484E+02 5.876E-01 2.702E-17 836.3 836 2.569E+06 7.142E-05 1.239E+05 2.747E+03 680.0 3.580E+05 1.437E+02 5.664E-01 2.676E-17 836.3 836 2.557E+06 6.821E-05 1.238E+05 2.703E+03 681.0 3.515E+05 1.391E+02 5.459E-01 2.651E-17 836.3 836 2.545E+06 6.514E-05 1.236E+05 2.660E+03 682.0 3.451E+05 1.347E+02 5.261E-01 2.626E-17 836.3 836 2.534E+06 6.221E-05 1.235E+05 2.618E+03 683.0 3.388E+05 1.305E+02 5.071E-01 2.601E-17 836.3 836 2.522E+06 5.941E-05 1.234E+05 2.576E+03 684.0 3.326E+05 1.263E+02 4.888E-01 2.577E-17 836.3 836 2.510E+06 5.674E-05 1.232E+05 2.535E+03 685.0 3.265E+05 1.223E+02 4.712E-01 2.553E-17 836.3 836 2.499E+06 5.419E-05 1.231E+05 2.494E+03 686.0 3.206E+05 1.184E+02 4.542E-01 2.530E-17 836.3 836 2.487E+06 5.176E-05 1.229E+05 2.454E+03 687.0 3.147E+05 1.147E+02 4.378E-01 2.507E-17 836.3 836 2.476E+06 4.943E-05 1.228E+05 2.415E+03 688.0 3.090E+05 1.111E+02 4.220E-01 2.484E-17 836.3 836 2.465E+06 4.721E-05 1.226E+05 2.377E+03 689.0 3.034E+05 1.076E+02 4.067E-01 2.461E-17 836.3 836 2.453E+06 4.509E-05 1.225E+05 2.339E+03 690.0 2.979E+05 1.042E+02 3.921E-01 2.439E-17 836.3 836 2.442E+06 4.307E-05 1.224E+05 2.302E+03 691.0 2.925E+05 1.009E+02 3.779E-01 2.417E-17 836.3 836 2.431E+06 4.114E-05 1.222E+05 2.265E+03 692.0 2.871E+05 9.767E+01 3.643E-01 2.395E-17 836.3 836 2.420E+06 3.929E-05 1.221E+05 2.229E+03 693.0 2.819E+05 9.458E+01 3.512E-01 2.374E-17 836.3 836 2.409E+06 3.753E-05 1.219E+05 2.193E+03 694.0 2.768E+05 9.160E+01 3.385E-01 2.353E-17 836.3 836 2.398E+06 3.585E-05 1.218E+05 2.158E+03 695.0 2.718E+05 8.870E+01 3.263E-01 2.332E-17 836.3 836 2.387E+06 3.424E-05 1.217E+05 2.124E+03 696.0 2.668E+05 8.590E+01 3.146E-01 2.312E-17 836.3 836 2.376E+06 3.271E-05 1.215E+05 2.090E+03 697.0 2.620E+05 8.319E+01 3.033E-01 2.291E-17 836.3 836 2.365E+06 3.124E-05 1.214E+05 2.057E+03 698.0 2.572E+05 8.057E+01 2.924E-01 2.272E-17 836.3 836 2.354E+06 2.984E-05 1.212E+05 2.024E+03 699.0 2.526E+05 7.802E+01 2.818E-01 2.252E-17 836.3 836 2.343E+06 2.851E-05 1.211E+05 1.992E+03 700.0 2.480E+05 7.556E+01 2.717E-01 2.233E-17 836.3 836 2.333E+06 2.723E-05 1.210E+05 1.960E+03 701.0 2.435E+05 7.318E+01 2.619E-01 2.213E-17 836.3 836 2.322E+06 2.601E-05 1.208E+05 1.929E+03 702.0 2.391E+05 7.087E+01 2.525E-01 2.195E-17 836.3 836 2.311E+06 2.485E-05 1.207E+05 1.899E+03 703.0 2.347E+05 6.864E+01 2.434E-01 2.176E-17 836.3 836 2.301E+06 2.374E-05 1.206E+05 1.868E+03 704.0 2.305E+05 6.648E+01 2.347E-01 2.158E-17 836.3 836 2.290E+06 2.268E-05 1.204E+05 1.839E+03 705.0 2.263E+05 6.438E+01 2.263E-01 2.139E-17 836.3 836 2.280E+06 2.167E-05 1.203E+05 1.810E+03 706.0 2.222E+05 6.236E+01 2.181E-01 2.121E-17 836.3 836 2.270E+06 2.070E-05 1.201E+05 1.781E+03 707.0 2.182E+05 6.039E+01 2.103E-01 2.104E-17 836.3 836 2.259E+06 1.977E-05 1.200E+05 1.753E+03 708.0 2.142E+05 5.849E+01 2.028E-01 2.086E-17 836.3 836 2.249E+06 1.889E-05 1.199E+05 1.725E+03 709.0 2.103E+05 5.665E+01 1.955E-01 2.069E-17 836.3 836 2.239E+06 1.805E-05 1.197E+05 1.697E+03 710.0 2.065E+05 5.487E+01 1.885E-01 2.052E-17 836.3 836 2.228E+06 1.724E-05 1.196E+05 1.671E+03 711.0 2.028E+05 5.315E+01 1.817E-01 2.035E-17 836.3 836 2.218E+06 1.647E-05 1.195E+05 1.644E+03 712.0 1.991E+05 5.147E+01 1.752E-01 2.019E-17 836.3 836 2.208E+06 1.574E-05 1.193E+05 1.618E+03 713.0 1.955E+05 4.986E+01 1.689E-01 2.003E-17 836.3 836 2.198E+06 1.504E-05 1.192E+05 1.592E+03 714.0 1.920E+05 4.829E+01 1.629E-01 1.987E-17 836.3 836 2.188E+06 1.437E-05 1.191E+05 1.567E+03 715.0 1.885E+05 4.677E+01 1.570E-01 1.971E-17 836.3 836 2.178E+06 1.373E-05 1.189E+05 1.542E+03 716.0 1.851E+05 4.531E+01 1.514E-01 1.955E-17 836.3 836 2.168E+06 1.311E-05 1.188E+05 1.518E+03 717.0 1.818E+05 4.388E+01 1.460E-01 1.939E-17 836.3 836 2.158E+06 1.253E-05 1.186E+05 1.494E+03 718.0 1.785E+05 4.251E+01 1.408E-01 1.924E-17 836.3 836 2.149E+06 1.197E-05 1.185E+05 1.470E+03 719.0 1.753E+05 4.117E+01 1.357E-01 1.909E-17 836.3 836 2.139E+06 1.144E-05 1.184E+05 1.447E+03 720.0 1.721E+05 3.988E+01 1.309E-01 1.894E-17 836.3 836 2.129E+06 1.093E-05 1.182E+05 1.424E+03 721.0 1.690E+05 3.863E+01 1.262E-01 1.879E-17 836.3 836 2.120E+06 1.044E-05 1.181E+05 1.402E+03 722.0 1.660E+05 3.742E+01 1.217E-01 1.865E-17 836.3 836 2.110E+06 9.979E-06 1.180E+05 1.380E+03 723.0 1.630E+05 3.625E+01 1.173E-01 1.850E-17 836.3 836 2.100E+06 9.535E-06 1.178E+05 1.358E+03 724.0 1.600E+05 3.511E+01 1.132E-01 1.836E-17 836.3 836 2.091E+06 9.111E-06 1.177E+05 1.336E+03 725.0 1.571E+05 3.401E+01 1.091E-01 1.822E-17 836.3 836 2.081E+06 8.706E-06 1.176E+05 1.315E+03 726.0 1.543E+05 3.295E+01 1.052E-01 1.808E-17 836.3 836 2.072E+06 8.320E-06 1.174E+05 1.294E+03 727.0 1.515E+05 3.192E+01 1.015E-01 1.795E-17 836.3 836 2.062E+06 7.950E-06 1.173E+05 1.274E+03 728.0 1.488E+05 3.092E+01 9.784E-02 1.781E-17 836.3 836 2.053E+06 7.597E-06 1.172E+05 1.254E+03 729.0 1.461E+05 2.995E+01 9.435E-02 1.768E-17 836.3 836 2.044E+06 7.260E-06 1.170E+05 1.234E+03 730.0 1.435E+05 2.901E+01 9.099E-02 1.754E-17 836.3 836 2.035E+06 6.938E-06 1.169E+05 1.215E+03 731.0 1.409E+05 2.811E+01 8.774E-02 1.741E-17 836.3 836 2.025E+06 6.630E-06 1.168E+05 1.196E+03 732.0 1.384E+05 2.723E+01 8.462E-02 1.728E-17 836.3 836 2.016E+06 6.336E-06 1.166E+05 1.177E+03 733.0 1.359E+05 2.638E+01 8.160E-02 1.716E-17 836.3 836 2.007E+06 6.055E-06 1.165E+05 1.158E+03 734.0 1.334E+05 2.555E+01 7.869E-02 1.703E-17 836.3 836 1.998E+06 5.786E-06 1.164E+05 1.140E+03 735.0 1.311E+05 2.475E+01 7.589E-02 1.691E-17 836.3 836 1.989E+06 5.530E-06 1.162E+05 1.122E+03 736.0 1.287E+05 2.398E+01 7.319E-02 1.678E-17 836.3 836 1.980E+06 5.285E-06 1.161E+05 1.104E+03 737.0 1.264E+05 2.323E+01 7.058E-02 1.666E-17 836.3 836 1.971E+06 5.051E-06 1.160E+05 1.087E+03 738.0 1.241E+05 2.251E+01 6.807E-02 1.654E-17 836.3 836 1.962E+06 4.827E-06 1.159E+05 1.070E+03 739.0 1.219E+05 2.180E+01 6.565E-02 1.642E-17 836.3 836 1.953E+06 4.613E-06 1.157E+05 1.053E+03 740.0 1.197E+05 2.112E+01 6.331E-02 1.631E-17 836.3 836 1.944E+06 4.409E-06 1.156E+05 1.037E+03 741.0 1.176E+05 2.047E+01 6.106E-02 1.619E-17 836.3 836 1.936E+06 4.214E-06 1.155E+05 1.020E+03 742.0 1.154E+05 1.983E+01 5.889E-02 1.608E-17 836.3 836 1.927E+06 4.028E-06 1.153E+05 1.004E+03 743.0 1.134E+05 1.921E+01 5.680E-02 1.596E-17 836.3 836 1.918E+06 3.850E-06 1.152E+05 9.884E+02 744.0 1.113E+05 1.861E+01 5.478E-02 1.585E-17 836.3 836 1.910E+06 3.679E-06 1.151E+05 9.729E+02 745.0 1.093E+05 1.803E+01 5.284E-02 1.574E-17 836.3 836 1.901E+06 3.517E-06 1.149E+05 9.576E+02 746.0 1.074E+05 1.747E+01 5.096E-02 1.563E-17 836.3 836 1.892E+06 3.361E-06 1.148E+05 9.426E+02 747.0 1.055E+05 1.693E+01 4.915E-02 1.552E-17 836.3 836 1.884E+06 3.213E-06 1.147E+05 9.278E+02 748.0 1.036E+05 1.640E+01 4.741E-02 1.542E-17 836.3 836 1.875E+06 3.071E-06 1.145E+05 9.133E+02 749.0 1.017E+05 1.589E+01 4.572E-02 1.531E-17 836.3 836 1.867E+06 2.935E-06 1.144E+05 8.989E+02 750.0 9.990E+04 1.540E+01 4.410E-02 1.520E-17 836.3 836 1.858E+06 2.806E-06 1.143E+05 8.849E+02 751.0 9.812E+04 1.492E+01 4.254E-02 1.510E-17 836.3 836 1.850E+06 2.682E-06 1.142E+05 8.710E+02 752.0 9.636E+04 1.445E+01 4.103E-02 1.500E-17 836.3 836 1.842E+06 2.564E-06 1.140E+05 8.573E+02 753.0 9.464E+04 1.400E+01 3.958E-02 1.490E-17 836.3 836 1.833E+06 2.451E-06 1.139E+05 8.439E+02 754.0 9.295E+04 1.357E+01 3.817E-02 1.480E-17 836.3 836 1.825E+06 2.343E-06 1.138E+05 8.307E+02 755.0 9.129E+04 1.315E+01 3.682E-02 1.470E-17 836.3 836 1.817E+06 2.239E-06 1.136E+05 8.177E+02 756.0 8.966E+04 1.274E+01 3.552E-02 1.460E-17 836.3 836 1.809E+06 2.141E-06 1.135E+05 8.049E+02 757.0 8.805E+04 1.234E+01 3.426E-02 1.450E-17 836.3 836 1.801E+06 2.046E-06 1.134E+05 7.923E+02 758.0 8.648E+04 1.196E+01 3.305E-02 1.441E-17 836.3 836 1.793E+06 1.956E-06 1.133E+05 7.799E+02 759.0 8.494E+04 1.159E+01 3.188E-02 1.431E-17 836.3 836 1.785E+06 1.870E-06 1.131E+05 7.677E+02 760.0 8.342E+04 1.123E+01 3.075E-02 1.422E-17 836.3 836 1.777E+06 1.788E-06 1.130E+05 7.557E+02 761.0 8.193E+04 1.088E+01 2.966E-02 1.412E-17 836.3 836 1.769E+06 1.709E-06 1.129E+05 7.439E+02 762.0 8.047E+04 1.054E+01 2.862E-02 1.403E-17 836.3 836 1.761E+06 1.634E-06 1.128E+05 7.323E+02 763.0 7.904E+04 1.022E+01 2.760E-02 1.394E-17 836.3 836 1.753E+06 1.562E-06 1.126E+05 7.209E+02 764.0 7.763E+04 9.901E+00 2.663E-02 1.385E-17 836.3 836 1.745E+06 1.493E-06 1.125E+05 7.096E+02 765.0 7.625E+04 9.594E+00 2.569E-02 1.376E-17 836.3 836 1.737E+06 1.428E-06 1.124E+05 6.985E+02 766.0 7.489E+04 9.297E+00 2.478E-02 1.367E-17 836.3 836 1.729E+06 1.365E-06 1.122E+05 6.876E+02 767.0 7.355E+04 9.009E+00 2.391E-02 1.359E-17 836.3 836 1.722E+06 1.305E-06 1.121E+05 6.769E+02 768.0 7.224E+04 8.730E+00 2.306E-02 1.350E-17 836.3 836 1.714E+06 1.248E-06 1.120E+05 6.663E+02 769.0 7.096E+04 8.460E+00 2.225E-02 1.341E-17 836.3 836 1.706E+06 1.193E-06 1.119E+05 6.559E+02 770.0 6.970E+04 8.198E+00 2.146E-02 1.333E-17 836.3 836 1.698E+06 1.141E-06 1.117E+05 6.457E+02 771.0 6.846E+04 7.945E+00 2.071E-02 1.325E-17 836.3 836 1.691E+06 1.091E-06 1.116E+05 6.357E+02 772.0 6.724E+04 7.699E+00 1.998E-02 1.316E-17 836.3 836 1.683E+06 1.043E-06 1.115E+05 6.258E+02 773.0 6.604E+04 7.461E+00 1.927E-02 1.308E-17 836.3 836 1.676E+06 9.970E-07 1.114E+05 6.160E+02 774.0 6.487E+04 7.231E+00 1.859E-02 1.300E-17 836.3 836 1.668E+06 9.532E-07 1.112E+05 6.064E+02 775.0 6.372E+04 7.007E+00 1.794E-02 1.292E-17 836.3 836 1.661E+06 9.115E-07 1.111E+05 5.970E+02 776.0 6.258E+04 6.791E+00 1.731E-02 1.284E-17 836.3 836 1.653E+06 8.715E-07 1.110E+05 5.877E+02 777.0 6.147E+04 6.581E+00 1.670E-02 1.276E-17 836.3 836 1.646E+06 8.333E-07 1.109E+05 5.785E+02 778.0 6.038E+04 6.378E+00 1.611E-02 1.268E-17 836.3 836 1.639E+06 7.968E-07 1.107E+05 5.695E+02 779.0 5.931E+04 6.181E+00 1.554E-02 1.260E-17 836.3 836 1.631E+06 7.619E-07 1.106E+05 5.607E+02 780.0 5.826E+04 5.991E+00 1.500E-02 1.253E-17 836.3 836 1.624E+06 7.286E-07 1.105E+05 5.520E+02 781.0 5.722E+04 5.806E+00 1.447E-02 1.245E-17 836.3 836 1.617E+06 6.967E-07 1.104E+05 5.434E+02 782.0 5.621E+04 5.627E+00 1.396E-02 1.238E-17 836.3 836 1.610E+06 6.662E-07 1.103E+05 5.350E+02 783.0 5.521E+04 5.453E+00 1.347E-02 1.230E-17 836.3 836 1.602E+06 6.371E-07 1.101E+05 5.266E+02 784.0 5.423E+04 5.285E+00 1.300E-02 1.223E-17 836.3 836 1.595E+06 6.092E-07 1.100E+05 5.185E+02 785.0 5.327E+04 5.123E+00 1.254E-02 1.215E-17 836.3 836 1.588E+06 5.826E-07 1.099E+05 5.104E+02 786.0 5.233E+04 4.965E+00 1.210E-02 1.208E-17 836.3 836 1.581E+06 5.571E-07 1.098E+05 5.025E+02 787.0 5.140E+04 4.812E+00 1.168E-02 1.201E-17 836.3 836 1.574E+06 5.328E-07 1.096E+05 4.947E+02 788.0 5.049E+04 4.664E+00 1.127E-02 1.194E-17 836.3 836 1.567E+06 5.095E-07 1.095E+05 4.870E+02 789.0 4.960E+04 4.520E+00 1.087E-02 1.187E-17 836.3 836 1.560E+06 4.873E-07 1.094E+05 4.795E+02 790.0 4.872E+04 4.381E+00 1.049E-02 1.180E-17 836.3 836 1.553E+06 4.660E-07 1.093E+05 4.720E+02 791.0 4.786E+04 4.247E+00 1.012E-02 1.173E-17 836.3 836 1.546E+06 4.457E-07 1.092E+05 4.647E+02 792.0 4.701E+04 4.116E+00 9.766E-03 1.166E-17 836.3 836 1.539E+06 4.262E-07 1.090E+05 4.575E+02 793.0 4.618E+04 3.989E+00 9.424E-03 1.159E-17 836.3 836 1.532E+06 4.076E-07 1.089E+05 4.504E+02 794.0 4.536E+04 3.867E+00 9.093E-03 1.153E-17 836.3 836 1.526E+06 3.898E-07 1.088E+05 4.435E+02 795.0 4.456E+04 3.748E+00 8.775E-03 1.146E-17 836.3 836 1.519E+06 3.728E-07 1.087E+05 4.366E+02 796.0 4.378E+04 3.633E+00 8.468E-03 1.139E-17 836.3 836 1.512E+06 3.566E-07 1.085E+05 4.298E+02 797.0 4.300E+04 3.521E+00 8.171E-03 1.133E-17 836.3 836 1.505E+06 3.411E-07 1.084E+05 4.232E+02 798.0 4.224E+04 3.413E+00 7.885E-03 1.126E-17 836.3 836 1.499E+06 3.262E-07 1.083E+05 4.166E+02 799.0 4.150E+04 3.309E+00 7.609E-03 1.120E-17 836.3 836 1.492E+06 3.120E-07 1.082E+05 4.102E+02 800.0 4.076E+04 3.207E+00 7.343E-03 1.113E-17 836.3 836 1.485E+06 2.984E-07 1.081E+05 4.039E+02 801.0 4.005E+04 3.109E+00 7.086E-03 1.107E-17 836.3 836 1.479E+06 2.854E-07 1.079E+05 3.976E+02 802.0 3.934E+04 3.013E+00 6.838E-03 1.101E-17 836.3 836 1.472E+06 2.730E-07 1.078E+05 3.915E+02 803.0 3.865E+04 2.921E+00 6.599E-03 1.095E-17 836.3 836 1.466E+06 2.611E-07 1.077E+05 3.854E+02 804.0 3.796E+04 2.832E+00 6.369E-03 1.088E-17 836.3 836 1.459E+06 2.498E-07 1.076E+05 3.795E+02 805.0 3.730E+04 2.745E+00 6.146E-03 1.082E-17 836.3 836 1.453E+06 2.389E-07 1.075E+05 3.736E+02 806.0 3.664E+04 2.661E+00 5.932E-03 1.076E-17 836.3 836 1.446E+06 2.285E-07 1.073E+05 3.679E+02 807.0 3.599E+04 2.579E+00 5.724E-03 1.070E-17 836.3 836 1.440E+06 2.186E-07 1.072E+05 3.622E+02 808.0 3.536E+04 2.500E+00 5.525E-03 1.064E-17 836.3 836 1.433E+06 2.091E-07 1.071E+05 3.566E+02 809.0 3.474E+04 2.424E+00 5.332E-03 1.058E-17 836.3 836 1.427E+06 2.000E-07 1.070E+05 3.511E+02 810.0 3.413E+04 2.350E+00 5.146E-03 1.053E-17 836.3 836 1.421E+06 1.913E-07 1.069E+05 3.457E+02 811.0 3.352E+04 2.278E+00 4.966E-03 1.047E-17 836.3 836 1.414E+06 1.830E-07 1.068E+05 3.404E+02 812.0 3.294E+04 2.208E+00 4.793E-03 1.041E-17 836.3 836 1.408E+06 1.751E-07 1.066E+05 3.351E+02 813.0 3.236E+04 2.141E+00 4.626E-03 1.035E-17 836.3 836 1.402E+06 1.675E-07 1.065E+05 3.300E+02 814.0 3.179E+04 2.075E+00 4.465E-03 1.030E-17 836.3 836 1.396E+06 1.602E-07 1.064E+05 3.249E+02 815.0 3.123E+04 2.012E+00 4.309E-03 1.024E-17 836.3 836 1.390E+06 1.533E-07 1.063E+05 3.199E+02 816.0 3.068E+04 1.950E+00 4.159E-03 1.018E-17 836.3 836 1.383E+06 1.466E-07 1.062E+05 3.149E+02 817.0 3.014E+04 1.891E+00 4.014E-03 1.013E-17 836.3 836 1.377E+06 1.403E-07 1.060E+05 3.101E+02 818.0 2.961E+04 1.833E+00 3.875E-03 1.007E-17 836.3 836 1.371E+06 1.342E-07 1.059E+05 3.053E+02 819.0 2.909E+04 1.777E+00 3.740E-03 1.002E-17 836.3 836 1.365E+06 1.284E-07 1.058E+05 3.006E+02 820.0 2.858E+04 1.723E+00 3.610E-03 9.967E-18 836.3 836 1.359E+06 1.228E-07 1.057E+05 2.960E+02 821.0 2.808E+04 1.670E+00 3.484E-03 9.913E-18 836.3 836 1.353E+06 1.175E-07 1.056E+05 2.915E+02 822.0 2.759E+04 1.619E+00 3.363E-03 9.860E-18 836.3 836 1.347E+06 1.124E-07 1.055E+05 2.870E+02 823.0 2.710E+04 1.570E+00 3.246E-03 9.807E-18 836.3 836 1.341E+06 1.076E-07 1.053E+05 2.826E+02 824.0 2.663E+04 1.522E+00 3.133E-03 9.755E-18 836.3 836 1.335E+06 1.029E-07 1.052E+05 2.782E+02 825.0 2.616E+04 1.476E+00 3.024E-03 9.703E-18 836.3 836 1.329E+06 9.846E-08 1.051E+05 2.740E+02 826.0 2.570E+04 1.431E+00 2.919E-03 9.652E-18 836.3 836 1.324E+06 9.421E-08 1.050E+05 2.698E+02 827.0 2.525E+04 1.387E+00 2.818E-03 9.601E-18 836.3 836 1.318E+06 9.014E-08 1.049E+05 2.656E+02 828.0 2.481E+04 1.345E+00 2.720E-03 9.550E-18 836.3 836 1.312E+06 8.624E-08 1.048E+05 2.615E+02 829.0 2.438E+04 1.304E+00 2.626E-03 9.500E-18 836.3 836 1.306E+06 8.252E-08 1.046E+05 2.575E+02 830.0 2.395E+04 1.264E+00 2.535E-03 9.450E-18 836.3 836 1.300E+06 7.895E-08 1.045E+05 2.536E+02 831.0 2.353E+04 1.226E+00 2.447E-03 9.401E-18 836.3 836 1.295E+06 7.555E-08 1.044E+05 2.497E+02 832.0 2.312E+04 1.189E+00 2.362E-03 9.352E-18 836.3 836 1.289E+06 7.229E-08 1.043E+05 2.459E+02 833.0 2.272E+04 1.153E+00 2.280E-03 9.303E-18 836.3 836 1.283E+06 6.917E-08 1.042E+05 2.421E+02 834.0 2.232E+04 1.118E+00 2.201E-03 9.255E-18 836.3 836 1.278E+06 6.618E-08 1.041E+05 2.384E+02 835.0 2.193E+04 1.084E+00 2.125E-03 9.207E-18 836.3 836 1.272E+06 6.333E-08 1.040E+05 2.348E+02 836.0 2.154E+04 1.051E+00 2.051E-03 9.159E-18 836.3 836 1.266E+06 6.060E-08 1.038E+05 2.312E+02 837.0 2.117E+04 1.019E+00 1.980E-03 9.112E-18 836.3 836 1.261E+06 5.799E-08 1.037E+05 2.276E+02 838.0 2.080E+04 9.878E-01 1.912E-03 9.065E-18 836.3 836 1.255E+06 5.549E-08 1.036E+05 2.241E+02 839.0 2.044E+04 9.578E-01 1.845E-03 9.019E-18 836.3 836 1.250E+06 5.310E-08 1.035E+05 2.207E+02 840.0 2.008E+04 9.288E-01 1.782E-03 8.973E-18 836.3 836 1.244E+06 5.081E-08 1.034E+05 2.173E+02 841.0 1.973E+04 9.006E-01 1.720E-03 8.927E-18 836.3 836 1.239E+06 4.862E-08 1.033E+05 2.140E+02 842.0 1.938E+04 8.733E-01 1.660E-03 8.881E-18 836.3 836 1.233E+06 4.653E-08 1.032E+05 2.107E+02 843.0 1.905E+04 8.468E-01 1.603E-03 8.836E-18 836.3 836 1.228E+06 4.453E-08 1.030E+05 2.075E+02 844.0 1.871E+04 8.211E-01 1.548E-03 8.791E-18 836.3 836 1.223E+06 4.261E-08 1.029E+05 2.044E+02 845.0 1.839E+04 7.963E-01 1.494E-03 8.747E-18 836.3 836 1.217E+06 4.078E-08 1.028E+05 2.012E+02 846.0 1.807E+04 7.721E-01 1.442E-03 8.702E-18 836.3 836 1.212E+06 3.903E-08 1.027E+05 1.982E+02 847.0 1.775E+04 7.488E-01 1.393E-03 8.658E-18 836.3 836 1.207E+06 3.735E-08 1.026E+05 1.951E+02 848.0 1.744E+04 7.261E-01 1.345E-03 8.615E-18 836.3 836 1.201E+06 3.574E-08 1.025E+05 1.922E+02 849.0 1.714E+04 7.041E-01 1.298E-03 8.572E-18 836.3 836 1.196E+06 3.421E-08 1.024E+05 1.892E+02 850.0 1.684E+04 6.828E-01 1.253E-03 8.529E-18 836.3 836 1.191E+06 3.274E-08 1.023E+05 1.863E+02 851.0 1.655E+04 6.621E-01 1.210E-03 8.486E-18 836.3 836 1.186E+06 3.133E-08 1.021E+05 1.835E+02 852.0 1.626E+04 6.421E-01 1.168E-03 8.444E-18 836.3 836 1.180E+06 2.999E-08 1.020E+05 1.807E+02 853.0 1.598E+04 6.227E-01 1.128E-03 8.402E-18 836.3 836 1.175E+06 2.870E-08 1.019E+05 1.780E+02 854.0 1.570E+04 6.039E-01 1.089E-03 8.360E-18 836.3 836 1.170E+06 2.747E-08 1.018E+05 1.752E+02 855.0 1.543E+04 5.856E-01 1.052E-03 8.318E-18 836.3 836 1.165E+06 2.629E-08 1.017E+05 1.726E+02 856.0 1.516E+04 5.679E-01 1.015E-03 8.277E-18 836.3 836 1.160E+06 2.517E-08 1.016E+05 1.700E+02 857.0 1.490E+04 5.508E-01 9.805E-04 8.236E-18 836.3 836 1.155E+06 2.409E-08 1.015E+05 1.674E+02 858.0 1.464E+04 5.342E-01 9.467E-04 8.196E-18 836.3 836 1.150E+06 2.305E-08 1.014E+05 1.648E+02 859.0 1.438E+04 5.180E-01 9.141E-04 8.155E-18 836.3 836 1.145E+06 2.207E-08 1.013E+05 1.623E+02 860.0 1.413E+04 5.024E-01 8.827E-04 8.115E-18 836.3 836 1.140E+06 2.112E-08 1.011E+05 1.598E+02 861.0 1.389E+04 4.872E-01 8.523E-04 8.075E-18 836.3 836 1.135E+06 2.022E-08 1.010E+05 1.574E+02 862.0 1.365E+04 4.725E-01 8.230E-04 8.036E-18 836.3 836 1.130E+06 1.935E-08 1.009E+05 1.550E+02 863.0 1.341E+04 4.583E-01 7.947E-04 7.997E-18 836.3 836 1.125E+06 1.852E-08 1.008E+05 1.527E+02 864.0 1.318E+04 4.445E-01 7.674E-04 7.958E-18 836.3 836 1.120E+06 1.773E-08 1.007E+05 1.504E+02 865.0 1.295E+04 4.311E-01 7.410E-04 7.919E-18 836.3 836 1.115E+06 1.697E-08 1.006E+05 1.481E+02 866.0 1.273E+04 4.181E-01 7.155E-04 7.880E-18 836.3 836 1.110E+06 1.625E-08 1.005E+05 1.458E+02 867.0 1.250E+04 4.055E-01 6.910E-04 7.842E-18 836.3 836 1.105E+06 1.555E-08 1.004E+05 1.436E+02 868.0 1.229E+04 3.933E-01 6.672E-04 7.804E-18 836.3 836 1.101E+06 1.489E-08 1.003E+05 1.414E+02 869.0 1.208E+04 3.815E-01 6.443E-04 7.766E-18 836.3 836 1.096E+06 1.425E-08 1.002E+05 1.393E+02 870.0 1.187E+04 3.700E-01 6.222E-04 7.729E-18 836.3 836 1.091E+06 1.364E-08 1.000E+05 1.372E+02 871.0 1.166E+04 3.588E-01 6.009E-04 7.692E-18 836.3 836 1.086E+06 1.306E-08 9.993E+04 1.351E+02 872.0 1.146E+04 3.481E-01 5.803E-04 7.655E-18 836.3 836 1.082E+06 1.250E-08 9.982E+04 1.330E+02 873.0 1.126E+04 3.376E-01 5.604E-04 7.618E-18 836.3 836 1.077E+06 1.197E-08 9.971E+04 1.310E+02 874.0 1.107E+04 3.274E-01 5.411E-04 7.581E-18 836.3 836 1.072E+06 1.146E-08 9.961E+04 1.290E+02 875.0 1.088E+04 3.176E-01 5.226E-04 7.545E-18 836.3 836 1.068E+06 1.097E-08 9.950E+04 1.271E+02 876.0 1.069E+04 3.081E-01 5.047E-04 7.509E-18 836.3 836 1.063E+06 1.050E-08 9.939E+04 1.252E+02 877.0 1.050E+04 2.988E-01 4.874E-04 7.473E-18 836.3 836 1.058E+06 1.005E-08 9.928E+04 1.233E+02 878.0 1.032E+04 2.898E-01 4.707E-04 7.438E-18 836.3 836 1.054E+06 9.626E-09 9.917E+04 1.214E+02 879.0 1.014E+04 2.811E-01 4.546E-04 7.402E-18 836.3 836 1.049E+06 9.215E-09 9.906E+04 1.196E+02 880.0 9.968E+03 2.727E-01 4.390E-04 7.367E-18 836.3 836 1.045E+06 8.823E-09 9.896E+04 1.178E+02 881.0 9.796E+03 2.645E-01 4.240E-04 7.332E-18 836.3 836 1.040E+06 8.447E-09 9.885E+04 1.160E+02 882.0 9.627E+03 2.566E-01 4.095E-04 7.298E-18 836.3 836 1.035E+06 8.087E-09 9.874E+04 1.142E+02 883.0 9.461E+03 2.489E-01 3.955E-04 7.263E-18 836.3 836 1.031E+06 7.743E-09 9.863E+04 1.125E+02 884.0 9.298E+03 2.414E-01 3.820E-04 7.229E-18 836.3 836 1.026E+06 7.414E-09 9.853E+04 1.108E+02 885.0 9.137E+03 2.342E-01 3.689E-04 7.195E-18 836.3 836 1.022E+06 7.098E-09 9.842E+04 1.091E+02 886.0 8.980E+03 2.272E-01 3.563E-04 7.161E-18 836.3 836 1.018E+06 6.796E-09 9.831E+04 1.075E+02 887.0 8.825E+03 2.204E-01 3.441E-04 7.127E-18 836.3 836 1.013E+06 6.507E-09 9.821E+04 1.059E+02 888.0 8.673E+03 2.138E-01 3.324E-04 7.094E-18 836.3 836 1.009E+06 6.231E-09 9.810E+04 1.043E+02 889.0 8.524E+03 2.074E-01 3.210E-04 7.061E-18 836.3 836 1.004E+06 5.966E-09 9.799E+04 1.027E+02 890.0 8.377E+03 2.011E-01 3.101E-04 7.028E-18 836.3 836 1.000E+06 5.713E-09 9.789E+04 1.011E+02 891.0 8.233E+03 1.951E-01 2.995E-04 6.995E-18 836.3 836 9.957E+05 5.470E-09 9.778E+04 9.962E+01 892.0 8.091E+03 1.893E-01 2.893E-04 6.962E-18 836.3 836 9.914E+05 5.238E-09 9.768E+04 9.812E+01 893.0 7.952E+03 1.836E-01 2.794E-04 6.930E-18 836.3 836 9.871E+05 5.015E-09 9.757E+04 9.664E+01 894.0 7.815E+03 1.781E-01 2.699E-04 6.898E-18 836.3 836 9.829E+05 4.802E-09 9.746E+04 9.518E+01 895.0 7.681E+03 1.728E-01 2.607E-04 6.866E-18 836.3 836 9.786E+05 4.599E-09 9.736E+04 9.375E+01 896.0 7.549E+03 1.677E-01 2.518E-04 6.834E-18 836.3 836 9.744E+05 4.404E-09 9.725E+04 9.234E+01 897.0 7.419E+03 1.626E-01 2.432E-04 6.802E-18 836.3 836 9.702E+05 4.217E-09 9.715E+04 9.095E+01 898.0 7.292E+03 1.578E-01 2.349E-04 6.771E-18 836.3 836 9.660E+05 4.038E-09 9.704E+04 8.958E+01 899.0 7.166E+03 1.531E-01 2.269E-04 6.740E-18 836.3 836 9.618E+05 3.867E-09 9.694E+04 8.823E+01 900.0 7.043E+03 1.485E-01 2.192E-04 6.709E-18 836.3 836 9.576E+05 3.703E-09 9.683E+04 8.691E+01 901.0 6.923E+03 1.441E-01 2.118E-04 6.678E-18 836.3 836 9.535E+05 3.546E-09 9.673E+04 8.560E+01 902.0 6.804E+03 1.398E-01 2.046E-04 6.647E-18 836.3 836 9.494E+05 3.396E-09 9.662E+04 8.431E+01 903.0 6.687E+03 1.356E-01 1.976E-04 6.617E-18 836.3 836 9.453E+05 3.252E-09 9.652E+04 8.305E+01 904.0 6.572E+03 1.316E-01 1.909E-04 6.586E-18 836.3 836 9.412E+05 3.115E-09 9.641E+04 8.180E+01 905.0 6.460E+03 1.276E-01 1.844E-04 6.556E-18 836.3 836 9.372E+05 2.983E-09 9.631E+04 8.057E+01 906.0 6.349E+03 1.238E-01 1.781E-04 6.526E-18 836.3 836 9.331E+05 2.857E-09 9.621E+04 7.936E+01 907.0 6.240E+03 1.201E-01 1.721E-04 6.496E-18 836.3 836 9.291E+05 2.736E-09 9.610E+04 7.817E+01 908.0 6.133E+03 1.166E-01 1.662E-04 6.467E-18 836.3 836 9.251E+05 2.620E-09 9.600E+04 7.700E+01 909.0 6.028E+03 1.131E-01 1.606E-04 6.437E-18 836.3 836 9.211E+05 2.509E-09 9.589E+04 7.584E+01 910.0 5.925E+03 1.097E-01 1.551E-04 6.408E-18 836.3 836 9.171E+05 2.403E-09 9.579E+04 7.470E+01 911.0 5.824E+03 1.065E-01 1.499E-04 6.379E-18 836.3 836 9.132E+05 2.302E-09 9.569E+04 7.358E+01 912.0 5.724E+03 1.033E-01 1.448E-04 6.350E-18 836.3 836 9.093E+05 2.205E-09 9.558E+04 7.248E+01 913.0 5.626E+03 1.002E-01 1.399E-04 6.321E-18 836.3 836 9.053E+05 2.112E-09 9.548E+04 7.139E+01 914.0 5.530E+03 9.724E-02 1.351E-04 6.292E-18 836.3 836 9.014E+05 2.022E-09 9.538E+04 7.032E+01 915.0 5.435E+03 9.435E-02 1.305E-04 6.264E-18 836.3 836 8.976E+05 1.937E-09 9.528E+04 6.927E+01 916.0 5.342E+03 9.155E-02 1.261E-04 6.236E-18 836.3 836 8.937E+05 1.855E-09 9.517E+04 6.823E+01 917.0 5.251E+03 8.883E-02 1.218E-04 6.208E-18 836.3 836 8.899E+05 1.777E-09 9.507E+04 6.721E+01 918.0 5.161E+03 8.619E-02 1.177E-04 6.180E-18 836.3 836 8.860E+05 1.702E-09 9.497E+04 6.621E+01 919.0 5.073E+03 8.363E-02 1.137E-04 6.152E-18 836.3 836 8.822E+05 1.630E-09 9.487E+04 6.522E+01 920.0 4.987E+03 8.115E-02 1.099E-04 6.124E-18 836.3 836 8.784E+05 1.562E-09 9.476E+04 6.424E+01 921.0 4.901E+03 7.874E-02 1.062E-04 6.097E-18 836.3 836 8.747E+05 1.496E-09 9.466E+04 6.328E+01 922.0 4.818E+03 7.640E-02 1.026E-04 6.069E-18 836.3 836 8.709E+05 1.433E-09 9.456E+04 6.233E+01 923.0 4.736E+03 7.413E-02 9.909E-05 6.042E-18 836.3 836 8.672E+05 1.373E-09 9.446E+04 6.140E+01 924.0 4.655E+03 7.194E-02 9.574E-05 6.015E-18 836.3 836 8.634E+05 1.315E-09 9.436E+04 6.049E+01 925.0 4.575E+03 6.980E-02 9.251E-05 5.988E-18 836.3 836 8.597E+05 1.259E-09 9.426E+04 5.958E+01 926.0 4.497E+03 6.773E-02 8.938E-05 5.961E-18 836.3 836 8.561E+05 1.206E-09 9.415E+04 5.869E+01 927.0 4.421E+03 6.573E-02 8.636E-05 5.935E-18 836.3 836 8.524E+05 1.156E-09 9.405E+04 5.782E+01 928.0 4.345E+03 6.378E-02 8.344E-05 5.908E-18 836.3 836 8.487E+05 1.107E-09 9.395E+04 5.695E+01 929.0 4.271E+03 6.189E-02 8.062E-05 5.882E-18 836.3 836 8.451E+05 1.061E-09 9.385E+04 5.610E+01 930.0 4.199E+03 6.006E-02 7.790E-05 5.856E-18 836.3 836 8.415E+05 1.016E-09 9.375E+04 5.527E+01 931.0 4.127E+03 5.828E-02 7.527E-05 5.830E-18 836.3 836 8.379E+05 9.733E-10 9.365E+04 5.444E+01 932.0 4.057E+03 5.656E-02 7.273E-05 5.804E-18 836.3 836 8.343E+05 9.324E-10 9.355E+04 5.363E+01 933.0 3.988E+03 5.488E-02 7.028E-05 5.778E-18 836.3 836 8.307E+05 8.933E-10 9.345E+04 5.283E+01 934.0 3.920E+03 5.326E-02 6.791E-05 5.753E-18 836.3 836 8.272E+05 8.558E-10 9.335E+04 5.204E+01 935.0 3.853E+03 5.168E-02 6.562E-05 5.727E-18 836.3 836 8.236E+05 8.199E-10 9.325E+04 5.127E+01 936.0 3.788E+03 5.016E-02 6.340E-05 5.702E-18 836.3 836 8.201E+05 7.855E-10 9.315E+04 5.051E+01 937.0 3.724E+03 4.867E-02 6.127E-05 5.677E-18 836.3 836 8.166E+05 7.525E-10 9.305E+04 4.975E+01 938.0 3.660E+03 4.724E-02 5.920E-05 5.652E-18 836.3 836 8.131E+05 7.209E-10 9.295E+04 4.901E+01 939.0 3.598E+03 4.584E-02 5.721E-05 5.627E-18 836.3 836 8.096E+05 6.907E-10 9.285E+04 4.828E+01 940.0 3.537E+03 4.449E-02 5.528E-05 5.602E-18 836.3 836 8.062E+05 6.618E-10 9.275E+04 4.757E+01 941.0 3.477E+03 4.317E-02 5.342E-05 5.577E-18 836.3 836 8.027E+05 6.340E-10 9.265E+04 4.686E+01 942.0 3.418E+03 4.190E-02 5.162E-05 5.553E-18 836.3 836 7.993E+05 6.075E-10 9.255E+04 4.616E+01 943.0 3.360E+03 4.066E-02 4.989E-05 5.528E-18 836.3 836 7.959E+05 5.820E-10 9.245E+04 4.548E+01 944.0 3.303E+03 3.946E-02 4.821E-05 5.504E-18 836.3 836 7.925E+05 5.577E-10 9.236E+04 4.480E+01 945.0 3.247E+03 3.830E-02 4.659E-05 5.480E-18 836.3 836 7.891E+05 5.343E-10 9.226E+04 4.413E+01 946.0 3.192E+03 3.717E-02 4.502E-05 5.456E-18 836.3 836 7.857E+05 5.119E-10 9.216E+04 4.348E+01 947.0 3.138E+03 3.607E-02 4.351E-05 5.432E-18 836.3 836 7.824E+05 4.905E-10 9.206E+04 4.283E+01 948.0 3.085E+03 3.501E-02 4.204E-05 5.408E-18 836.3 836 7.790E+05 4.700E-10 9.196E+04 4.220E+01 949.0 3.032E+03 3.398E-02 4.063E-05 5.385E-18 836.3 836 7.757E+05 4.504E-10 9.186E+04 4.157E+01 950.0 2.981E+03 3.298E-02 3.927E-05 5.361E-18 836.3 836 7.724E+05 4.315E-10 9.177E+04 4.095E+01 951.0 2.931E+03 3.201E-02 3.795E-05 5.338E-18 836.3 836 7.691E+05 4.135E-10 9.167E+04 4.035E+01 952.0 2.881E+03 3.107E-02 3.667E-05 5.315E-18 836.3 836 7.658E+05 3.962E-10 9.157E+04 3.975E+01 953.0 2.832E+03 3.015E-02 3.544E-05 5.292E-18 836.3 836 7.626E+05 3.797E-10 9.147E+04 3.916E+01 954.0 2.784E+03 2.927E-02 3.425E-05 5.269E-18 836.3 836 7.593E+05 3.638E-10 9.137E+04 3.858E+01 955.0 2.737E+03 2.840E-02 3.311E-05 5.246E-18 836.3 836 7.561E+05 3.486E-10 9.128E+04 3.801E+01 956.0 2.691E+03 2.757E-02 3.200E-05 5.223E-18 836.3 836 7.529E+05 3.341E-10 9.118E+04 3.745E+01 957.0 2.645E+03 2.676E-02 3.092E-05 5.200E-18 836.3 836 7.497E+05 3.201E-10 9.108E+04 3.689E+01 958.0 2.601E+03 2.597E-02 2.989E-05 5.178E-18 836.3 836 7.465E+05 3.068E-10 9.099E+04 3.634E+01 959.0 2.557E+03 2.521E-02 2.889E-05 5.155E-18 836.3 836 7.433E+05 2.940E-10 9.089E+04 3.581E+01 960.0 2.514E+03 2.447E-02 2.792E-05 5.133E-18 836.3 836 7.402E+05 2.817E-10 9.079E+04 3.528E+01 961.0 2.471E+03 2.375E-02 2.698E-05 5.111E-18 836.3 836 7.370E+05 2.700E-10 9.070E+04 3.476E+01 962.0 2.429E+03 2.305E-02 2.608E-05 5.089E-18 836.3 836 7.339E+05 2.587E-10 9.060E+04 3.424E+01 963.0 2.388E+03 2.238E-02 2.521E-05 5.067E-18 836.3 836 7.308E+05 2.480E-10 9.050E+04 3.374E+01 964.0 2.348E+03 2.172E-02 2.436E-05 5.045E-18 836.3 836 7.277E+05 2.376E-10 9.041E+04 3.324E+01 965.0 2.308E+03 2.108E-02 2.355E-05 5.023E-18 836.3 836 7.246E+05 2.277E-10 9.031E+04 3.275E+01 966.0 2.270E+03 2.047E-02 2.276E-05 5.002E-18 836.3 836 7.215E+05 2.183E-10 9.022E+04 3.226E+01 967.0 2.231E+03 1.987E-02 2.200E-05 4.980E-18 836.3 836 7.185E+05 2.092E-10 9.012E+04 3.179E+01 968.0 2.194E+03 1.928E-02 2.126E-05 4.959E-18 836.3 836 7.154E+05 2.005E-10 9.002E+04 3.132E+01 969.0 2.157E+03 1.872E-02 2.055E-05 4.937E-18 836.3 836 7.124E+05 1.921E-10 8.993E+04 3.085E+01 970.0 2.120E+03 1.817E-02 1.987E-05 4.916E-18 836.3 836 7.094E+05 1.841E-10 8.983E+04 3.040E+01 971.0 2.085E+03 1.764E-02 1.920E-05 4.895E-18 836.3 836 7.064E+05 1.765E-10 8.974E+04 2.995E+01 972.0 2.050E+03 1.712E-02 1.856E-05 4.874E-18 836.3 836 7.034E+05 1.692E-10 8.964E+04 2.951E+01 973.0 2.015E+03 1.662E-02 1.794E-05 4.853E-18 836.3 836 7.004E+05 1.621E-10 8.955E+04 2.907E+01 974.0 1.981E+03 1.613E-02 1.734E-05 4.833E-18 836.3 836 6.974E+05 1.554E-10 8.945E+04 2.865E+01 975.0 1.948E+03 1.566E-02 1.677E-05 4.812E-18 836.3 836 6.945E+05 1.489E-10 8.936E+04 2.822E+01 976.0 1.915E+03 1.520E-02 1.621E-05 4.791E-18 836.3 836 6.915E+05 1.428E-10 8.926E+04 2.781E+01 977.0 1.883E+03 1.476E-02 1.567E-05 4.771E-18 836.3 836 6.886E+05 1.368E-10 8.917E+04 2.740E+01 978.0 1.851E+03 1.433E-02 1.514E-05 4.751E-18 836.3 836 6.857E+05 1.312E-10 8.907E+04 2.699E+01 979.0 1.820E+03 1.391E-02 1.464E-05 4.730E-18 836.3 836 6.828E+05 1.257E-10 8.898E+04 2.660E+01 980.0 1.790E+03 1.350E-02 1.415E-05 4.710E-18 836.3 836 6.799E+05 1.205E-10 8.889E+04 2.621E+01 981.0 1.760E+03 1.311E-02 1.368E-05 4.690E-18 836.3 836 6.770E+05 1.155E-10 8.879E+04 2.582E+01 982.0 1.730E+03 1.273E-02 1.322E-05 4.670E-18 836.3 836 6.742E+05 1.107E-10 8.870E+04 2.544E+01 983.0 1.701E+03 1.235E-02 1.278E-05 4.650E-18 836.3 836 6.713E+05 1.061E-10 8.860E+04 2.507E+01 984.0 1.672E+03 1.199E-02 1.236E-05 4.631E-18 836.3 836 6.685E+05 1.017E-10 8.851E+04 2.470E+01 985.0 1.644E+03 1.164E-02 1.195E-05 4.611E-18 836.3 836 6.657E+05 9.752E-11 8.842E+04 2.433E+01 986.0 1.617E+03 1.130E-02 1.155E-05 4.592E-18 836.3 836 6.629E+05 9.348E-11 8.832E+04 2.398E+01 987.0 1.590E+03 1.097E-02 1.117E-05 4.572E-18 836.3 836 6.601E+05 8.961E-11 8.823E+04 2.363E+01 988.0 1.563E+03 1.065E-02 1.080E-05 4.553E-18 836.3 836 6.573E+05 8.590E-11 8.814E+04 2.328E+01 989.0 1.537E+03 1.034E-02 1.044E-05 4.533E-18 836.3 836 6.545E+05 8.235E-11 8.804E+04 2.294E+01 990.0 1.511E+03 1.004E-02 1.009E-05 4.514E-18 836.3 836 6.517E+05 7.894E-11 8.795E+04 2.260E+01 991.0 1.486E+03 9.750E-03 9.754E-06 4.495E-18 836.3 836 6.490E+05 7.568E-11 8.786E+04 2.227E+01 992.0 1.461E+03 9.467E-03 9.430E-06 4.476E-18 836.3 836 6.463E+05 7.255E-11 8.777E+04 2.194E+01 993.0 1.436E+03 9.191E-03 9.117E-06 4.457E-18 836.3 836 6.435E+05 6.955E-11 8.767E+04 2.162E+01 994.0 1.412E+03 8.923E-03 8.815E-06 4.439E-18 836.3 836 6.408E+05 6.668E-11 8.758E+04 2.130E+01 995.0 1.389E+03 8.664E-03 8.522E-06 4.420E-18 836.3 836 6.381E+05 6.392E-11 8.749E+04 2.099E+01 996.0 1.366E+03 8.412E-03 8.240E-06 4.401E-18 836.3 836 6.355E+05 6.129E-11 8.740E+04 2.068E+01 997.0 1.343E+03 8.167E-03 7.966E-06 4.383E-18 836.3 836 6.328E+05 5.876E-11 8.730E+04 2.038E+01 998.0 1.320E+03 7.930E-03 7.702E-06 4.364E-18 836.3 836 6.301E+05 5.633E-11 8.721E+04 2.008E+01 999.0 1.298E+03 7.699E-03 7.447E-06 4.346E-18 836.3 836 6.275E+05 5.401E-11 8.712E+04 1.979E+01 1000.0 1.276E+03 7.476E-03 7.200E-06 4.328E-18 836.3 836 6.248E+05 5.178E-11 8.703E+04 1.950E+01fluids-0.1.78/tests/nrlmsise00/known_data_height.txt0000644000175000017500000027307313632560624021230 0ustar kurtkurt0.0 0.000E+00 2.064E+19 5.537E+18 1.270E-03 280.1 1027 1.385E+14 2.469E+17 0.000E+00 0.000E+00 0.1 0.000E+00 2.040E+19 5.473E+18 1.255E-03 279.9 1027 1.369E+14 2.440E+17 0.000E+00 0.000E+00 0.2 0.000E+00 2.017E+19 5.412E+18 1.241E-03 279.7 1027 1.354E+14 2.413E+17 0.000E+00 0.000E+00 0.3 0.000E+00 1.995E+19 5.351E+18 1.227E-03 279.4 1027 1.339E+14 2.386E+17 0.000E+00 0.000E+00 0.4 0.000E+00 1.972E+19 5.291E+18 1.213E-03 279.1 1027 1.324E+14 2.359E+17 0.000E+00 0.000E+00 0.5 0.000E+00 1.951E+19 5.233E+18 1.200E-03 278.8 1027 1.309E+14 2.333E+17 0.000E+00 0.000E+00 0.6 0.000E+00 1.929E+19 5.175E+18 1.187E-03 278.5 1027 1.295E+14 2.308E+17 0.000E+00 0.000E+00 0.7 0.000E+00 1.908E+19 5.119E+18 1.174E-03 278.1 1027 1.280E+14 2.282E+17 0.000E+00 0.000E+00 0.8 0.000E+00 1.887E+19 5.063E+18 1.161E-03 277.7 1027 1.267E+14 2.258E+17 0.000E+00 0.000E+00 0.9 0.000E+00 1.867E+19 5.009E+18 1.149E-03 277.3 1027 1.253E+14 2.233E+17 0.000E+00 0.000E+00 1.0 0.000E+00 1.847E+19 4.955E+18 1.136E-03 276.9 1027 1.240E+14 2.209E+17 0.000E+00 0.000E+00 1.1 0.000E+00 1.827E+19 4.902E+18 1.124E-03 276.4 1027 1.226E+14 2.186E+17 0.000E+00 0.000E+00 1.2 0.000E+00 1.808E+19 4.850E+18 1.112E-03 276.0 1027 1.213E+14 2.163E+17 0.000E+00 0.000E+00 1.3 0.000E+00 1.789E+19 4.799E+18 1.101E-03 275.5 1027 1.201E+14 2.140E+17 0.000E+00 0.000E+00 1.4 0.000E+00 1.770E+19 4.749E+18 1.089E-03 275.0 1027 1.188E+14 2.117E+17 0.000E+00 0.000E+00 1.5 0.000E+00 1.752E+19 4.699E+18 1.078E-03 274.4 1027 1.176E+14 2.095E+17 0.000E+00 0.000E+00 1.6 0.000E+00 1.734E+19 4.651E+18 1.067E-03 273.9 1027 1.163E+14 2.074E+17 0.000E+00 0.000E+00 1.7 0.000E+00 1.716E+19 4.602E+18 1.056E-03 273.3 1027 1.151E+14 2.052E+17 0.000E+00 0.000E+00 1.8 0.000E+00 1.698E+19 4.555E+18 1.045E-03 272.7 1027 1.139E+14 2.031E+17 0.000E+00 0.000E+00 1.9 0.000E+00 1.680E+19 4.508E+18 1.034E-03 272.1 1027 1.128E+14 2.010E+17 0.000E+00 0.000E+00 2.0 0.000E+00 1.663E+19 4.462E+18 1.023E-03 271.5 1027 1.116E+14 1.989E+17 0.000E+00 0.000E+00 2.1 0.000E+00 1.646E+19 4.416E+18 1.013E-03 270.9 1027 1.105E+14 1.969E+17 0.000E+00 0.000E+00 2.2 0.000E+00 1.629E+19 4.371E+18 1.003E-03 270.2 1027 1.093E+14 1.949E+17 0.000E+00 0.000E+00 2.3 0.000E+00 1.613E+19 4.327E+18 9.923E-04 269.6 1027 1.082E+14 1.929E+17 0.000E+00 0.000E+00 2.4 0.000E+00 1.597E+19 4.283E+18 9.823E-04 268.9 1027 1.071E+14 1.910E+17 0.000E+00 0.000E+00 2.5 0.000E+00 1.580E+19 4.240E+18 9.723E-04 268.2 1027 1.061E+14 1.890E+17 0.000E+00 0.000E+00 2.6 0.000E+00 1.564E+19 4.197E+18 9.625E-04 267.6 1027 1.050E+14 1.871E+17 0.000E+00 0.000E+00 2.7 0.000E+00 1.549E+19 4.154E+18 9.528E-04 266.9 1027 1.039E+14 1.852E+17 0.000E+00 0.000E+00 2.8 0.000E+00 1.533E+19 4.113E+18 9.432E-04 266.1 1027 1.029E+14 1.834E+17 0.000E+00 0.000E+00 2.9 0.000E+00 1.518E+19 4.071E+18 9.337E-04 265.4 1027 1.018E+14 1.815E+17 0.000E+00 0.000E+00 3.0 0.000E+00 1.502E+19 4.030E+18 9.243E-04 264.7 1027 1.008E+14 1.797E+17 0.000E+00 0.000E+00 3.1 0.000E+00 1.487E+19 3.990E+18 9.150E-04 264.0 1027 9.980E+13 1.779E+17 0.000E+00 0.000E+00 3.2 0.000E+00 1.472E+19 3.949E+18 9.057E-04 263.2 1027 9.879E+13 1.761E+17 0.000E+00 0.000E+00 3.3 0.000E+00 1.457E+19 3.910E+18 8.966E-04 262.5 1027 9.780E+13 1.743E+17 0.000E+00 0.000E+00 3.4 0.000E+00 1.443E+19 3.870E+18 8.876E-04 261.7 1027 9.681E+13 1.726E+17 0.000E+00 0.000E+00 3.5 0.000E+00 1.428E+19 3.831E+18 8.786E-04 261.0 1027 9.584E+13 1.708E+17 0.000E+00 0.000E+00 3.6 0.000E+00 1.414E+19 3.792E+18 8.698E-04 260.2 1027 9.487E+13 1.691E+17 0.000E+00 0.000E+00 3.7 0.000E+00 1.399E+19 3.754E+18 8.610E-04 259.4 1027 9.391E+13 1.674E+17 0.000E+00 0.000E+00 3.8 0.000E+00 1.385E+19 3.716E+18 8.523E-04 258.6 1027 9.296E+13 1.657E+17 0.000E+00 0.000E+00 3.9 0.000E+00 1.371E+19 3.678E+18 8.436E-04 257.9 1027 9.202E+13 1.640E+17 0.000E+00 0.000E+00 4.0 0.000E+00 1.357E+19 3.641E+18 8.351E-04 257.1 1027 9.108E+13 1.623E+17 0.000E+00 0.000E+00 4.1 0.000E+00 1.343E+19 3.604E+18 8.266E-04 256.3 1027 9.015E+13 1.607E+17 0.000E+00 0.000E+00 4.2 0.000E+00 1.330E+19 3.567E+18 8.181E-04 255.5 1027 8.924E+13 1.591E+17 0.000E+00 0.000E+00 4.3 0.000E+00 1.316E+19 3.531E+18 8.098E-04 254.7 1027 8.832E+13 1.574E+17 0.000E+00 0.000E+00 4.4 0.000E+00 1.303E+19 3.495E+18 8.014E-04 253.9 1027 8.742E+13 1.558E+17 0.000E+00 0.000E+00 4.5 0.000E+00 1.289E+19 3.459E+18 7.932E-04 253.1 1027 8.652E+13 1.542E+17 0.000E+00 0.000E+00 4.6 0.000E+00 1.276E+19 3.423E+18 7.850E-04 252.4 1027 8.563E+13 1.526E+17 0.000E+00 0.000E+00 4.7 0.000E+00 1.263E+19 3.388E+18 7.769E-04 251.6 1027 8.474E+13 1.510E+17 0.000E+00 0.000E+00 4.8 0.000E+00 1.250E+19 3.352E+18 7.688E-04 250.8 1027 8.386E+13 1.495E+17 0.000E+00 0.000E+00 4.9 0.000E+00 1.237E+19 3.317E+18 7.608E-04 250.0 1027 8.299E+13 1.479E+17 0.000E+00 0.000E+00 5.0 0.000E+00 1.224E+19 3.283E+18 7.529E-04 249.2 1027 8.212E+13 1.464E+17 0.000E+00 0.000E+00 5.1 0.000E+00 1.211E+19 3.248E+18 7.450E-04 248.4 1027 8.126E+13 1.448E+17 0.000E+00 0.000E+00 5.2 0.000E+00 1.198E+19 3.214E+18 7.371E-04 247.6 1027 8.040E+13 1.433E+17 0.000E+00 0.000E+00 5.3 0.000E+00 1.185E+19 3.180E+18 7.293E-04 246.9 1027 7.955E+13 1.418E+17 0.000E+00 0.000E+00 5.4 0.000E+00 1.173E+19 3.146E+18 7.215E-04 246.1 1027 7.870E+13 1.403E+17 0.000E+00 0.000E+00 5.5 0.000E+00 1.160E+19 3.113E+18 7.138E-04 245.3 1027 7.786E+13 1.388E+17 0.000E+00 0.000E+00 5.6 0.000E+00 1.148E+19 3.079E+18 7.062E-04 244.6 1027 7.703E+13 1.373E+17 0.000E+00 0.000E+00 5.7 0.000E+00 1.135E+19 3.046E+18 6.986E-04 243.8 1027 7.620E+13 1.358E+17 0.000E+00 0.000E+00 5.8 0.000E+00 1.123E+19 3.013E+18 6.910E-04 243.0 1027 7.537E+13 1.343E+17 0.000E+00 0.000E+00 5.9 0.000E+00 1.111E+19 2.980E+18 6.835E-04 242.3 1027 7.455E+13 1.329E+17 0.000E+00 0.000E+00 6.0 0.000E+00 1.099E+19 2.948E+18 6.760E-04 241.5 1027 7.373E+13 1.314E+17 0.000E+00 0.000E+00 6.1 0.000E+00 1.087E+19 2.915E+18 6.686E-04 240.8 1027 7.292E+13 1.300E+17 0.000E+00 0.000E+00 6.2 0.000E+00 1.075E+19 2.883E+18 6.612E-04 240.1 1027 7.212E+13 1.285E+17 0.000E+00 0.000E+00 6.3 0.000E+00 1.063E+19 2.851E+18 6.538E-04 239.3 1027 7.132E+13 1.271E+17 0.000E+00 0.000E+00 6.4 0.000E+00 1.051E+19 2.819E+18 6.465E-04 238.6 1027 7.052E+13 1.257E+17 0.000E+00 0.000E+00 6.5 0.000E+00 1.039E+19 2.787E+18 6.393E-04 237.9 1027 6.973E+13 1.243E+17 0.000E+00 0.000E+00 6.6 0.000E+00 1.027E+19 2.756E+18 6.320E-04 237.2 1027 6.894E+13 1.229E+17 0.000E+00 0.000E+00 6.7 0.000E+00 1.016E+19 2.725E+18 6.249E-04 236.5 1027 6.816E+13 1.215E+17 0.000E+00 0.000E+00 6.8 0.000E+00 1.004E+19 2.694E+18 6.177E-04 235.8 1027 6.738E+13 1.201E+17 0.000E+00 0.000E+00 6.9 0.000E+00 9.925E+18 2.663E+18 6.106E-04 235.1 1027 6.660E+13 1.187E+17 0.000E+00 0.000E+00 7.0 0.000E+00 9.810E+18 2.632E+18 6.036E-04 234.4 1027 6.583E+13 1.173E+17 0.000E+00 0.000E+00 7.1 0.000E+00 9.696E+18 2.601E+18 5.966E-04 233.7 1027 6.507E+13 1.160E+17 0.000E+00 0.000E+00 7.2 0.000E+00 9.583E+18 2.571E+18 5.896E-04 233.1 1027 6.431E+13 1.146E+17 0.000E+00 0.000E+00 7.3 0.000E+00 9.470E+18 2.541E+18 5.827E-04 232.4 1027 6.355E+13 1.133E+17 0.000E+00 0.000E+00 7.4 0.000E+00 9.358E+18 2.511E+18 5.758E-04 231.8 1027 6.280E+13 1.119E+17 0.000E+00 0.000E+00 7.5 0.000E+00 9.247E+18 2.481E+18 5.689E-04 231.1 1027 6.205E+13 1.106E+17 0.000E+00 0.000E+00 7.6 0.000E+00 9.136E+18 2.451E+18 5.621E-04 230.5 1027 6.131E+13 1.093E+17 0.000E+00 0.000E+00 7.7 0.000E+00 9.026E+18 2.421E+18 5.553E-04 229.9 1027 6.057E+13 1.080E+17 0.000E+00 0.000E+00 7.8 0.000E+00 8.917E+18 2.392E+18 5.486E-04 229.3 1027 5.984E+13 1.067E+17 0.000E+00 0.000E+00 7.9 0.000E+00 8.808E+18 2.363E+18 5.419E-04 228.7 1027 5.911E+13 1.054E+17 0.000E+00 0.000E+00 8.0 0.000E+00 8.700E+18 2.334E+18 5.353E-04 228.1 1027 5.838E+13 1.041E+17 0.000E+00 0.000E+00 8.1 0.000E+00 8.592E+18 2.305E+18 5.286E-04 227.5 1027 5.766E+13 1.028E+17 0.000E+00 0.000E+00 8.2 0.000E+00 8.486E+18 2.276E+18 5.221E-04 227.0 1027 5.694E+13 1.015E+17 0.000E+00 0.000E+00 8.3 0.000E+00 8.380E+18 2.248E+18 5.156E-04 226.4 1027 5.623E+13 1.002E+17 0.000E+00 0.000E+00 8.4 0.000E+00 8.274E+18 2.220E+18 5.091E-04 225.9 1027 5.553E+13 9.897E+16 0.000E+00 0.000E+00 8.5 0.000E+00 8.170E+18 2.192E+18 5.026E-04 225.3 1027 5.482E+13 9.772E+16 0.000E+00 0.000E+00 8.6 0.000E+00 8.066E+18 2.164E+18 4.962E-04 224.8 1027 5.413E+13 9.648E+16 0.000E+00 0.000E+00 8.7 0.000E+00 7.962E+18 2.136E+18 4.899E-04 224.3 1027 5.343E+13 9.524E+16 0.000E+00 0.000E+00 8.8 0.000E+00 7.860E+18 2.108E+18 4.836E-04 223.8 1027 5.274E+13 9.401E+16 0.000E+00 0.000E+00 8.9 0.000E+00 7.758E+18 2.081E+18 4.773E-04 223.3 1027 5.206E+13 9.279E+16 0.000E+00 0.000E+00 9.0 0.000E+00 7.656E+18 2.054E+18 4.711E-04 222.9 1027 5.138E+13 9.158E+16 0.000E+00 0.000E+00 9.1 0.000E+00 7.556E+18 2.027E+18 4.649E-04 222.4 1027 5.070E+13 9.038E+16 0.000E+00 0.000E+00 9.2 0.000E+00 7.456E+18 2.000E+18 4.587E-04 221.9 1027 5.003E+13 8.918E+16 0.000E+00 0.000E+00 9.3 0.000E+00 7.357E+18 1.974E+18 4.526E-04 221.5 1027 4.937E+13 8.800E+16 0.000E+00 0.000E+00 9.4 0.000E+00 7.258E+18 1.947E+18 4.466E-04 221.1 1027 4.871E+13 8.682E+16 0.000E+00 0.000E+00 9.5 0.000E+00 7.161E+18 1.921E+18 4.406E-04 220.7 1027 4.805E+13 8.565E+16 0.000E+00 0.000E+00 9.6 0.000E+00 7.064E+18 1.895E+18 4.346E-04 220.3 1027 4.740E+13 8.449E+16 0.000E+00 0.000E+00 9.7 0.000E+00 6.968E+18 1.869E+18 4.287E-04 219.9 1027 4.676E+13 8.334E+16 0.000E+00 0.000E+00 9.8 0.000E+00 6.872E+18 1.844E+18 4.228E-04 219.5 1027 4.612E+13 8.220E+16 0.000E+00 0.000E+00 9.9 0.000E+00 6.777E+18 1.818E+18 4.170E-04 219.2 1027 4.548E+13 8.107E+16 0.000E+00 0.000E+00 10.0 0.000E+00 6.683E+18 1.793E+18 4.112E-04 218.8 1027 4.485E+13 7.994E+16 0.000E+00 0.000E+00 10.1 0.000E+00 6.590E+18 1.768E+18 4.054E-04 218.5 1027 4.422E+13 7.883E+16 0.000E+00 0.000E+00 10.2 0.000E+00 6.498E+18 1.743E+18 3.998E-04 218.2 1027 4.360E+13 7.772E+16 0.000E+00 0.000E+00 10.3 0.000E+00 6.406E+18 1.718E+18 3.941E-04 217.9 1027 4.299E+13 7.662E+16 0.000E+00 0.000E+00 10.4 0.000E+00 6.315E+18 1.694E+18 3.885E-04 217.6 1027 4.238E+13 7.554E+16 0.000E+00 0.000E+00 10.5 0.000E+00 6.225E+18 1.670E+18 3.830E-04 217.3 1027 4.177E+13 7.446E+16 0.000E+00 0.000E+00 10.6 0.000E+00 6.136E+18 1.646E+18 3.775E-04 217.0 1027 4.117E+13 7.339E+16 0.000E+00 0.000E+00 10.7 0.000E+00 6.047E+18 1.622E+18 3.721E-04 216.8 1027 4.058E+13 7.233E+16 0.000E+00 0.000E+00 10.8 0.000E+00 5.960E+18 1.599E+18 3.667E-04 216.5 1027 3.999E+13 7.129E+16 0.000E+00 0.000E+00 10.9 0.000E+00 5.873E+18 1.576E+18 3.613E-04 216.3 1027 3.941E+13 7.025E+16 0.000E+00 0.000E+00 11.0 0.000E+00 5.787E+18 1.553E+18 3.561E-04 216.1 1027 3.884E+13 6.922E+16 0.000E+00 0.000E+00 11.1 0.000E+00 5.702E+18 1.530E+18 3.508E-04 215.8 1027 3.827E+13 6.821E+16 0.000E+00 0.000E+00 11.2 0.000E+00 5.619E+18 1.507E+18 3.457E-04 215.6 1027 3.770E+13 6.721E+16 0.000E+00 0.000E+00 11.3 0.000E+00 5.535E+18 1.485E+18 3.406E-04 215.5 1027 3.715E+13 6.621E+16 0.000E+00 0.000E+00 11.4 0.000E+00 5.453E+18 1.463E+18 3.355E-04 215.3 1027 3.660E+13 6.523E+16 0.000E+00 0.000E+00 11.5 0.000E+00 5.372E+18 1.441E+18 3.305E-04 215.1 1027 3.605E+13 6.426E+16 0.000E+00 0.000E+00 11.6 0.000E+00 5.292E+18 1.420E+18 3.256E-04 214.9 1027 3.551E+13 6.330E+16 0.000E+00 0.000E+00 11.7 0.000E+00 5.213E+18 1.398E+18 3.207E-04 214.8 1027 3.498E+13 6.235E+16 0.000E+00 0.000E+00 11.8 0.000E+00 5.134E+18 1.377E+18 3.159E-04 214.6 1027 3.445E+13 6.141E+16 0.000E+00 0.000E+00 11.9 0.000E+00 5.057E+18 1.357E+18 3.111E-04 214.5 1027 3.394E+13 6.049E+16 0.000E+00 0.000E+00 12.0 0.000E+00 4.980E+18 1.336E+18 3.064E-04 214.3 1027 3.342E+13 5.957E+16 0.000E+00 0.000E+00 12.1 0.000E+00 4.905E+18 1.316E+18 3.018E-04 214.2 1027 3.292E+13 5.867E+16 0.000E+00 0.000E+00 12.2 0.000E+00 4.830E+18 1.296E+18 2.972E-04 214.1 1027 3.241E+13 5.778E+16 0.000E+00 0.000E+00 12.3 0.000E+00 4.757E+18 1.276E+18 2.927E-04 214.0 1027 3.192E+13 5.690E+16 0.000E+00 0.000E+00 12.4 0.000E+00 4.684E+18 1.257E+18 2.882E-04 213.9 1027 3.143E+13 5.603E+16 0.000E+00 0.000E+00 12.5 0.000E+00 4.612E+18 1.237E+18 2.838E-04 213.8 1027 3.095E+13 5.517E+16 0.000E+00 0.000E+00 12.6 0.000E+00 4.541E+18 1.218E+18 2.794E-04 213.7 1027 3.048E+13 5.432E+16 0.000E+00 0.000E+00 12.7 0.000E+00 4.472E+18 1.200E+18 2.751E-04 213.6 1027 3.001E+13 5.349E+16 0.000E+00 0.000E+00 12.8 0.000E+00 4.403E+18 1.181E+18 2.709E-04 213.5 1027 2.955E+13 5.266E+16 0.000E+00 0.000E+00 12.9 0.000E+00 4.335E+18 1.163E+18 2.667E-04 213.4 1027 2.909E+13 5.185E+16 0.000E+00 0.000E+00 13.0 0.000E+00 4.268E+18 1.145E+18 2.626E-04 213.3 1027 2.864E+13 5.105E+16 0.000E+00 0.000E+00 13.1 0.000E+00 4.202E+18 1.127E+18 2.585E-04 213.3 1027 2.820E+13 5.026E+16 0.000E+00 0.000E+00 13.2 0.000E+00 4.136E+18 1.110E+18 2.545E-04 213.2 1027 2.776E+13 4.948E+16 0.000E+00 0.000E+00 13.3 0.000E+00 4.072E+18 1.092E+18 2.505E-04 213.1 1027 2.733E+13 4.871E+16 0.000E+00 0.000E+00 13.4 0.000E+00 4.009E+18 1.075E+18 2.466E-04 213.1 1027 2.690E+13 4.795E+16 0.000E+00 0.000E+00 13.5 0.000E+00 3.946E+18 1.059E+18 2.428E-04 213.0 1027 2.648E+13 4.720E+16 0.000E+00 0.000E+00 13.6 0.000E+00 3.885E+18 1.042E+18 2.390E-04 213.0 1027 2.607E+13 4.647E+16 0.000E+00 0.000E+00 13.7 0.000E+00 3.824E+18 1.026E+18 2.353E-04 212.9 1027 2.566E+13 4.574E+16 0.000E+00 0.000E+00 13.8 0.000E+00 3.764E+18 1.010E+18 2.316E-04 212.9 1027 2.526E+13 4.503E+16 0.000E+00 0.000E+00 13.9 0.000E+00 3.706E+18 9.941E+17 2.280E-04 212.8 1027 2.487E+13 4.432E+16 0.000E+00 0.000E+00 14.0 0.000E+00 3.648E+18 9.785E+17 2.244E-04 212.8 1027 2.448E+13 4.363E+16 0.000E+00 0.000E+00 14.1 0.000E+00 3.590E+18 9.632E+17 2.209E-04 212.8 1027 2.409E+13 4.295E+16 0.000E+00 0.000E+00 14.2 0.000E+00 3.534E+18 9.481E+17 2.174E-04 212.7 1027 2.372E+13 4.227E+16 0.000E+00 0.000E+00 14.3 0.000E+00 3.479E+18 9.333E+17 2.140E-04 212.7 1027 2.335E+13 4.161E+16 0.000E+00 0.000E+00 14.4 0.000E+00 3.424E+18 9.186E+17 2.107E-04 212.6 1027 2.298E+13 4.096E+16 0.000E+00 0.000E+00 14.5 0.000E+00 3.370E+18 9.042E+17 2.074E-04 212.6 1027 2.262E+13 4.032E+16 0.000E+00 0.000E+00 14.6 0.000E+00 3.318E+18 8.900E+17 2.041E-04 212.6 1027 2.226E+13 3.968E+16 0.000E+00 0.000E+00 14.7 0.000E+00 3.265E+18 8.760E+17 2.009E-04 212.5 1027 2.191E+13 3.906E+16 0.000E+00 0.000E+00 14.8 0.000E+00 3.214E+18 8.623E+17 1.978E-04 212.5 1027 2.157E+13 3.845E+16 0.000E+00 0.000E+00 14.9 0.000E+00 3.164E+18 8.487E+17 1.946E-04 212.5 1027 2.123E+13 3.784E+16 0.000E+00 0.000E+00 15.0 0.000E+00 3.114E+18 8.354E+17 1.916E-04 212.4 1027 2.090E+13 3.725E+16 0.000E+00 0.000E+00 15.1 0.000E+00 3.065E+18 8.223E+17 1.886E-04 212.4 1027 2.057E+13 3.666E+16 0.000E+00 0.000E+00 15.2 0.000E+00 3.017E+18 8.094E+17 1.856E-04 212.4 1027 2.025E+13 3.609E+16 0.000E+00 0.000E+00 15.3 0.000E+00 2.970E+18 7.967E+17 1.827E-04 212.3 1027 1.993E+13 3.552E+16 0.000E+00 0.000E+00 15.4 0.000E+00 2.923E+18 7.842E+17 1.798E-04 212.3 1027 1.962E+13 3.496E+16 0.000E+00 0.000E+00 15.5 0.000E+00 2.877E+18 7.719E+17 1.770E-04 212.2 1027 1.931E+13 3.441E+16 0.000E+00 0.000E+00 15.6 0.000E+00 2.832E+18 7.597E+17 1.742E-04 212.2 1027 1.900E+13 3.387E+16 0.000E+00 0.000E+00 15.7 0.000E+00 2.788E+18 7.478E+17 1.715E-04 212.2 1027 1.871E+13 3.334E+16 0.000E+00 0.000E+00 15.8 0.000E+00 2.744E+18 7.361E+17 1.688E-04 212.1 1027 1.841E+13 3.282E+16 0.000E+00 0.000E+00 15.9 0.000E+00 2.701E+18 7.245E+17 1.662E-04 212.1 1027 1.812E+13 3.230E+16 0.000E+00 0.000E+00 16.0 0.000E+00 2.658E+18 7.131E+17 1.635E-04 212.0 1027 1.784E+13 3.180E+16 0.000E+00 0.000E+00 16.1 0.000E+00 2.616E+18 7.019E+17 1.610E-04 212.0 1027 1.756E+13 3.130E+16 0.000E+00 0.000E+00 16.2 0.000E+00 2.575E+18 6.909E+17 1.584E-04 212.0 1027 1.728E+13 3.081E+16 0.000E+00 0.000E+00 16.3 0.000E+00 2.535E+18 6.800E+17 1.560E-04 211.9 1027 1.701E+13 3.032E+16 0.000E+00 0.000E+00 16.4 0.000E+00 2.495E+18 6.693E+17 1.535E-04 211.9 1027 1.674E+13 2.984E+16 0.000E+00 0.000E+00 16.5 0.000E+00 2.456E+18 6.588E+17 1.511E-04 211.8 1027 1.648E+13 2.938E+16 0.000E+00 0.000E+00 16.6 0.000E+00 2.417E+18 6.485E+17 1.487E-04 211.8 1027 1.622E+13 2.891E+16 0.000E+00 0.000E+00 16.7 0.000E+00 2.379E+18 6.383E+17 1.464E-04 211.8 1027 1.597E+13 2.846E+16 0.000E+00 0.000E+00 16.8 0.000E+00 2.342E+18 6.282E+17 1.441E-04 211.7 1027 1.571E+13 2.801E+16 0.000E+00 0.000E+00 16.9 0.000E+00 2.305E+18 6.183E+17 1.418E-04 211.7 1027 1.547E+13 2.757E+16 0.000E+00 0.000E+00 17.0 0.000E+00 2.269E+18 6.086E+17 1.396E-04 211.6 1027 1.522E+13 2.714E+16 0.000E+00 0.000E+00 17.1 0.000E+00 2.233E+18 5.990E+17 1.374E-04 211.6 1027 1.498E+13 2.671E+16 0.000E+00 0.000E+00 17.2 0.000E+00 2.198E+18 5.896E+17 1.352E-04 211.6 1027 1.475E+13 2.629E+16 0.000E+00 0.000E+00 17.3 0.000E+00 2.163E+18 5.803E+17 1.331E-04 211.5 1027 1.452E+13 2.587E+16 0.000E+00 0.000E+00 17.4 0.000E+00 2.129E+18 5.711E+17 1.310E-04 211.5 1027 1.429E+13 2.547E+16 0.000E+00 0.000E+00 17.5 0.000E+00 2.095E+18 5.621E+17 1.289E-04 211.5 1027 1.406E+13 2.506E+16 0.000E+00 0.000E+00 17.6 0.000E+00 2.062E+18 5.533E+17 1.269E-04 211.4 1027 1.384E+13 2.467E+16 0.000E+00 0.000E+00 17.7 0.000E+00 2.030E+18 5.445E+17 1.249E-04 211.4 1027 1.362E+13 2.428E+16 0.000E+00 0.000E+00 17.8 0.000E+00 1.998E+18 5.359E+17 1.229E-04 211.4 1027 1.341E+13 2.390E+16 0.000E+00 0.000E+00 17.9 0.000E+00 1.966E+18 5.275E+17 1.210E-04 211.3 1027 1.319E+13 2.352E+16 0.000E+00 0.000E+00 18.0 0.000E+00 1.935E+18 5.191E+17 1.191E-04 211.3 1027 1.299E+13 2.315E+16 0.000E+00 0.000E+00 18.1 0.000E+00 1.904E+18 5.109E+17 1.172E-04 211.3 1027 1.278E+13 2.278E+16 0.000E+00 0.000E+00 18.2 0.000E+00 1.874E+18 5.028E+17 1.153E-04 211.3 1027 1.258E+13 2.242E+16 0.000E+00 0.000E+00 18.3 0.000E+00 1.845E+18 4.949E+17 1.135E-04 211.2 1027 1.238E+13 2.207E+16 0.000E+00 0.000E+00 18.4 0.000E+00 1.815E+18 4.870E+17 1.117E-04 211.2 1027 1.218E+13 2.172E+16 0.000E+00 0.000E+00 18.5 0.000E+00 1.787E+18 4.793E+17 1.099E-04 211.2 1027 1.199E+13 2.137E+16 0.000E+00 0.000E+00 18.6 0.000E+00 1.758E+18 4.717E+17 1.082E-04 211.2 1027 1.180E+13 2.103E+16 0.000E+00 0.000E+00 18.7 0.000E+00 1.730E+18 4.642E+17 1.065E-04 211.1 1027 1.161E+13 2.070E+16 0.000E+00 0.000E+00 18.8 0.000E+00 1.703E+18 4.569E+17 1.048E-04 211.1 1027 1.143E+13 2.037E+16 0.000E+00 0.000E+00 18.9 0.000E+00 1.676E+18 4.496E+17 1.031E-04 211.1 1027 1.125E+13 2.005E+16 0.000E+00 0.000E+00 19.0 0.000E+00 1.649E+18 4.425E+17 1.015E-04 211.1 1027 1.107E+13 1.973E+16 0.000E+00 0.000E+00 19.1 0.000E+00 1.623E+18 4.354E+17 9.986E-05 211.1 1027 1.089E+13 1.941E+16 0.000E+00 0.000E+00 19.2 0.000E+00 1.597E+18 4.285E+17 9.827E-05 211.1 1027 1.072E+13 1.911E+16 0.000E+00 0.000E+00 19.3 0.000E+00 1.572E+18 4.217E+17 9.671E-05 211.1 1027 1.055E+13 1.880E+16 0.000E+00 0.000E+00 19.4 0.000E+00 1.547E+18 4.150E+17 9.517E-05 211.1 1027 1.038E+13 1.850E+16 0.000E+00 0.000E+00 19.5 0.000E+00 1.522E+18 4.084E+17 9.365E-05 211.1 1027 1.021E+13 1.821E+16 0.000E+00 0.000E+00 19.6 0.000E+00 1.498E+18 4.018E+17 9.216E-05 211.1 1027 1.005E+13 1.792E+16 0.000E+00 0.000E+00 19.7 0.000E+00 1.474E+18 3.954E+17 9.069E-05 211.1 1027 9.892E+12 1.763E+16 0.000E+00 0.000E+00 19.8 0.000E+00 1.450E+18 3.891E+17 8.924E-05 211.1 1027 9.734E+12 1.735E+16 0.000E+00 0.000E+00 19.9 0.000E+00 1.427E+18 3.829E+17 8.781E-05 211.1 1027 9.578E+12 1.707E+16 0.000E+00 0.000E+00 20.0 0.000E+00 1.404E+18 3.768E+17 8.641E-05 211.1 1027 9.425E+12 1.680E+16 0.000E+00 0.000E+00 20.1 0.000E+00 1.382E+18 3.707E+17 8.502E-05 211.1 1027 9.274E+12 1.653E+16 0.000E+00 0.000E+00 20.2 0.000E+00 1.360E+18 3.648E+17 8.366E-05 211.1 1027 9.125E+12 1.627E+16 0.000E+00 0.000E+00 20.3 0.000E+00 1.338E+18 3.590E+17 8.232E-05 211.1 1027 8.979E+12 1.600E+16 0.000E+00 0.000E+00 20.4 0.000E+00 1.317E+18 3.532E+17 8.100E-05 211.2 1027 8.835E+12 1.575E+16 0.000E+00 0.000E+00 20.5 0.000E+00 1.295E+18 3.475E+17 7.970E-05 211.2 1027 8.693E+12 1.550E+16 0.000E+00 0.000E+00 20.6 0.000E+00 1.275E+18 3.420E+17 7.842E-05 211.2 1027 8.554E+12 1.525E+16 0.000E+00 0.000E+00 20.7 0.000E+00 1.254E+18 3.365E+17 7.716E-05 211.2 1027 8.416E+12 1.500E+16 0.000E+00 0.000E+00 20.8 0.000E+00 1.234E+18 3.311E+17 7.592E-05 211.3 1027 8.281E+12 1.476E+16 0.000E+00 0.000E+00 20.9 0.000E+00 1.214E+18 3.257E+17 7.470E-05 211.3 1027 8.148E+12 1.452E+16 0.000E+00 0.000E+00 21.0 0.000E+00 1.195E+18 3.205E+17 7.350E-05 211.3 1027 8.017E+12 1.429E+16 0.000E+00 0.000E+00 21.1 0.000E+00 1.175E+18 3.153E+17 7.232E-05 211.4 1027 7.888E+12 1.406E+16 0.000E+00 0.000E+00 21.2 0.000E+00 1.156E+18 3.102E+17 7.115E-05 211.4 1027 7.761E+12 1.383E+16 0.000E+00 0.000E+00 21.3 0.000E+00 1.138E+18 3.052E+17 7.001E-05 211.5 1027 7.636E+12 1.361E+16 0.000E+00 0.000E+00 21.4 0.000E+00 1.119E+18 3.003E+17 6.888E-05 211.5 1027 7.513E+12 1.339E+16 0.000E+00 0.000E+00 21.5 0.000E+00 1.101E+18 2.955E+17 6.777E-05 211.6 1027 7.391E+12 1.317E+16 0.000E+00 0.000E+00 21.6 0.000E+00 1.084E+18 2.907E+17 6.667E-05 211.6 1027 7.272E+12 1.296E+16 0.000E+00 0.000E+00 21.7 0.000E+00 1.066E+18 2.860E+17 6.560E-05 211.7 1027 7.155E+12 1.275E+16 0.000E+00 0.000E+00 21.8 0.000E+00 1.049E+18 2.814E+17 6.454E-05 211.7 1027 7.039E+12 1.255E+16 0.000E+00 0.000E+00 21.9 0.000E+00 1.032E+18 2.769E+17 6.349E-05 211.8 1027 6.925E+12 1.234E+16 0.000E+00 0.000E+00 22.0 0.000E+00 1.015E+18 2.724E+17 6.247E-05 211.8 1027 6.814E+12 1.214E+16 0.000E+00 0.000E+00 22.1 0.000E+00 9.989E+17 2.680E+17 6.146E-05 211.9 1027 6.703E+12 1.195E+16 0.000E+00 0.000E+00 22.2 0.000E+00 9.827E+17 2.636E+17 6.046E-05 212.0 1027 6.595E+12 1.176E+16 0.000E+00 0.000E+00 22.3 0.000E+00 9.668E+17 2.594E+17 5.949E-05 212.0 1027 6.488E+12 1.156E+16 0.000E+00 0.000E+00 22.4 0.000E+00 9.512E+17 2.552E+17 5.852E-05 212.1 1027 6.383E+12 1.138E+16 0.000E+00 0.000E+00 22.5 0.000E+00 9.358E+17 2.510E+17 5.757E-05 212.2 1027 6.280E+12 1.119E+16 0.000E+00 0.000E+00 22.6 0.000E+00 9.206E+17 2.470E+17 5.664E-05 212.2 1027 6.178E+12 1.101E+16 0.000E+00 0.000E+00 22.7 0.000E+00 9.057E+17 2.430E+17 5.572E-05 212.3 1027 6.078E+12 1.083E+16 0.000E+00 0.000E+00 22.8 0.000E+00 8.910E+17 2.390E+17 5.482E-05 212.4 1027 5.980E+12 1.066E+16 0.000E+00 0.000E+00 22.9 0.000E+00 8.766E+17 2.352E+17 5.393E-05 212.5 1027 5.883E+12 1.049E+16 0.000E+00 0.000E+00 23.0 0.000E+00 8.624E+17 2.314E+17 5.306E-05 212.6 1027 5.787E+12 1.032E+16 0.000E+00 0.000E+00 23.1 0.000E+00 8.484E+17 2.276E+17 5.220E-05 212.7 1027 5.693E+12 1.015E+16 0.000E+00 0.000E+00 23.2 0.000E+00 8.346E+17 2.239E+17 5.135E-05 212.7 1027 5.601E+12 9.984E+15 0.000E+00 0.000E+00 23.3 0.000E+00 8.211E+17 2.203E+17 5.052E-05 212.8 1027 5.510E+12 9.822E+15 0.000E+00 0.000E+00 23.4 0.000E+00 8.078E+17 2.167E+17 4.970E-05 212.9 1027 5.421E+12 9.662E+15 0.000E+00 0.000E+00 23.5 0.000E+00 7.947E+17 2.132E+17 4.889E-05 213.0 1027 5.333E+12 9.505E+15 0.000E+00 0.000E+00 23.6 0.000E+00 7.818E+17 2.097E+17 4.810E-05 213.1 1027 5.246E+12 9.351E+15 0.000E+00 0.000E+00 23.7 0.000E+00 7.691E+17 2.063E+17 4.732E-05 213.2 1027 5.161E+12 9.199E+15 0.000E+00 0.000E+00 23.8 0.000E+00 7.566E+17 2.030E+17 4.655E-05 213.3 1027 5.077E+12 9.050E+15 0.000E+00 0.000E+00 23.9 0.000E+00 7.443E+17 1.997E+17 4.579E-05 213.4 1027 4.995E+12 8.903E+15 0.000E+00 0.000E+00 24.0 0.000E+00 7.322E+17 1.964E+17 4.505E-05 213.5 1027 4.914E+12 8.758E+15 0.000E+00 0.000E+00 24.1 0.000E+00 7.203E+17 1.932E+17 4.432E-05 213.6 1027 4.834E+12 8.616E+15 0.000E+00 0.000E+00 24.2 0.000E+00 7.086E+17 1.901E+17 4.360E-05 213.7 1027 4.755E+12 8.476E+15 0.000E+00 0.000E+00 24.3 0.000E+00 6.971E+17 1.870E+17 4.289E-05 213.9 1027 4.678E+12 8.339E+15 0.000E+00 0.000E+00 24.4 0.000E+00 6.858E+17 1.840E+17 4.219E-05 214.0 1027 4.602E+12 8.203E+15 0.000E+00 0.000E+00 24.5 0.000E+00 6.746E+17 1.810E+17 4.151E-05 214.1 1027 4.527E+12 8.070E+15 0.000E+00 0.000E+00 24.6 0.000E+00 6.637E+17 1.780E+17 4.083E-05 214.2 1027 4.454E+12 7.939E+15 0.000E+00 0.000E+00 24.7 0.000E+00 6.529E+17 1.752E+17 4.017E-05 214.3 1027 4.381E+12 7.810E+15 0.000E+00 0.000E+00 24.8 0.000E+00 6.423E+17 1.723E+17 3.952E-05 214.5 1027 4.310E+12 7.683E+15 0.000E+00 0.000E+00 24.9 0.000E+00 6.319E+17 1.695E+17 3.887E-05 214.6 1027 4.240E+12 7.558E+15 0.000E+00 0.000E+00 25.0 0.000E+00 6.216E+17 1.668E+17 3.824E-05 214.7 1027 4.171E+12 7.435E+15 0.000E+00 0.000E+00 25.1 0.000E+00 6.115E+17 1.640E+17 3.762E-05 214.8 1027 4.104E+12 7.314E+15 0.000E+00 0.000E+00 25.2 0.000E+00 6.016E+17 1.614E+17 3.701E-05 215.0 1027 4.037E+12 7.196E+15 0.000E+00 0.000E+00 25.3 0.000E+00 5.918E+17 1.588E+17 3.641E-05 215.1 1027 3.971E+12 7.079E+15 0.000E+00 0.000E+00 25.4 0.000E+00 5.822E+17 1.562E+17 3.582E-05 215.2 1027 3.907E+12 6.964E+15 0.000E+00 0.000E+00 25.5 0.000E+00 5.727E+17 1.536E+17 3.524E-05 215.4 1027 3.843E+12 6.851E+15 0.000E+00 0.000E+00 25.6 0.000E+00 5.634E+17 1.511E+17 3.466E-05 215.5 1027 3.781E+12 6.739E+15 0.000E+00 0.000E+00 25.7 0.000E+00 5.543E+17 1.487E+17 3.410E-05 215.7 1027 3.719E+12 6.630E+15 0.000E+00 0.000E+00 25.8 0.000E+00 5.453E+17 1.463E+17 3.355E-05 215.8 1027 3.659E+12 6.522E+15 0.000E+00 0.000E+00 25.9 0.000E+00 5.364E+17 1.439E+17 3.300E-05 216.0 1027 3.600E+12 6.416E+15 0.000E+00 0.000E+00 26.0 0.000E+00 5.277E+17 1.416E+17 3.247E-05 216.1 1027 3.541E+12 6.312E+15 0.000E+00 0.000E+00 26.1 0.000E+00 5.191E+17 1.393E+17 3.194E-05 216.3 1027 3.484E+12 6.210E+15 0.000E+00 0.000E+00 26.2 0.000E+00 5.107E+17 1.370E+17 3.142E-05 216.4 1027 3.427E+12 6.109E+15 0.000E+00 0.000E+00 26.3 0.000E+00 5.024E+17 1.348E+17 3.091E-05 216.6 1027 3.372E+12 6.010E+15 0.000E+00 0.000E+00 26.4 0.000E+00 4.943E+17 1.326E+17 3.041E-05 216.7 1027 3.317E+12 5.912E+15 0.000E+00 0.000E+00 26.5 0.000E+00 4.862E+17 1.304E+17 2.992E-05 216.9 1027 3.263E+12 5.816E+15 0.000E+00 0.000E+00 26.6 0.000E+00 4.784E+17 1.283E+17 2.943E-05 217.1 1027 3.210E+12 5.722E+15 0.000E+00 0.000E+00 26.7 0.000E+00 4.706E+17 1.262E+17 2.895E-05 217.2 1027 3.158E+12 5.629E+15 0.000E+00 0.000E+00 26.8 0.000E+00 4.630E+17 1.242E+17 2.848E-05 217.4 1027 3.107E+12 5.538E+15 0.000E+00 0.000E+00 26.9 0.000E+00 4.555E+17 1.222E+17 2.802E-05 217.5 1027 3.057E+12 5.448E+15 0.000E+00 0.000E+00 27.0 0.000E+00 4.481E+17 1.202E+17 2.757E-05 217.7 1027 3.007E+12 5.360E+15 0.000E+00 0.000E+00 27.1 0.000E+00 4.408E+17 1.183E+17 2.712E-05 217.9 1027 2.958E+12 5.273E+15 0.000E+00 0.000E+00 27.2 0.000E+00 4.337E+17 1.163E+17 2.668E-05 218.1 1027 2.910E+12 5.188E+15 0.000E+00 0.000E+00 27.3 0.000E+00 4.267E+17 1.145E+17 2.625E-05 218.2 1027 2.863E+12 5.104E+15 0.000E+00 0.000E+00 27.4 0.000E+00 4.198E+17 1.126E+17 2.583E-05 218.4 1027 2.817E+12 5.021E+15 0.000E+00 0.000E+00 27.5 0.000E+00 4.130E+17 1.108E+17 2.541E-05 218.6 1027 2.771E+12 4.940E+15 0.000E+00 0.000E+00 27.6 0.000E+00 4.063E+17 1.090E+17 2.500E-05 218.8 1027 2.726E+12 4.860E+15 0.000E+00 0.000E+00 27.7 0.000E+00 3.997E+17 1.072E+17 2.459E-05 219.0 1027 2.682E+12 4.781E+15 0.000E+00 0.000E+00 27.8 0.000E+00 3.933E+17 1.055E+17 2.419E-05 219.1 1027 2.639E+12 4.704E+15 0.000E+00 0.000E+00 27.9 0.000E+00 3.869E+17 1.038E+17 2.380E-05 219.3 1027 2.596E+12 4.628E+15 0.000E+00 0.000E+00 28.0 0.000E+00 3.806E+17 1.021E+17 2.342E-05 219.5 1027 2.554E+12 4.553E+15 0.000E+00 0.000E+00 28.1 0.000E+00 3.745E+17 1.005E+17 2.304E-05 219.7 1027 2.513E+12 4.480E+15 0.000E+00 0.000E+00 28.2 0.000E+00 3.685E+17 9.885E+16 2.267E-05 219.9 1027 2.473E+12 4.407E+15 0.000E+00 0.000E+00 28.3 0.000E+00 3.625E+17 9.725E+16 2.230E-05 220.1 1027 2.433E+12 4.336E+15 0.000E+00 0.000E+00 28.4 0.000E+00 3.567E+17 9.568E+16 2.194E-05 220.3 1027 2.393E+12 4.266E+15 0.000E+00 0.000E+00 28.5 0.000E+00 3.509E+17 9.414E+16 2.159E-05 220.5 1027 2.355E+12 4.197E+15 0.000E+00 0.000E+00 28.6 0.000E+00 3.453E+17 9.262E+16 2.124E-05 220.7 1027 2.317E+12 4.130E+15 0.000E+00 0.000E+00 28.7 0.000E+00 3.397E+17 9.113E+16 2.090E-05 220.9 1027 2.280E+12 4.063E+15 0.000E+00 0.000E+00 28.8 0.000E+00 3.342E+17 8.966E+16 2.056E-05 221.1 1027 2.243E+12 3.998E+15 0.000E+00 0.000E+00 28.9 0.000E+00 3.288E+17 8.822E+16 2.023E-05 221.3 1027 2.207E+12 3.933E+15 0.000E+00 0.000E+00 29.0 0.000E+00 3.235E+17 8.680E+16 1.991E-05 221.5 1027 2.171E+12 3.870E+15 0.000E+00 0.000E+00 29.1 0.000E+00 3.183E+17 8.540E+16 1.959E-05 221.7 1027 2.136E+12 3.808E+15 0.000E+00 0.000E+00 29.2 0.000E+00 3.132E+17 8.403E+16 1.927E-05 221.9 1027 2.102E+12 3.747E+15 0.000E+00 0.000E+00 29.3 0.000E+00 3.082E+17 8.268E+16 1.896E-05 222.2 1027 2.068E+12 3.686E+15 0.000E+00 0.000E+00 29.4 0.000E+00 3.032E+17 8.135E+16 1.866E-05 222.4 1027 2.035E+12 3.627E+15 0.000E+00 0.000E+00 29.5 0.000E+00 2.984E+17 8.004E+16 1.836E-05 222.6 1027 2.002E+12 3.569E+15 0.000E+00 0.000E+00 29.6 0.000E+00 2.936E+17 7.876E+16 1.806E-05 222.8 1027 1.970E+12 3.512E+15 0.000E+00 0.000E+00 29.7 0.000E+00 2.889E+17 7.750E+16 1.777E-05 223.0 1027 1.939E+12 3.455E+15 0.000E+00 0.000E+00 29.8 0.000E+00 2.842E+17 7.625E+16 1.749E-05 223.3 1027 1.907E+12 3.400E+15 0.000E+00 0.000E+00 29.9 0.000E+00 2.797E+17 7.503E+16 1.721E-05 223.5 1027 1.877E+12 3.345E+15 0.000E+00 0.000E+00 30.0 0.000E+00 2.752E+17 7.383E+16 1.693E-05 223.7 1027 1.847E+12 3.292E+15 0.000E+00 0.000E+00 30.1 0.000E+00 2.708E+17 7.265E+16 1.666E-05 223.9 1027 1.817E+12 3.239E+15 0.000E+00 0.000E+00 30.2 0.000E+00 2.665E+17 7.149E+16 1.639E-05 224.2 1027 1.788E+12 3.187E+15 0.000E+00 0.000E+00 30.3 0.000E+00 2.622E+17 7.034E+16 1.613E-05 224.4 1027 1.760E+12 3.136E+15 0.000E+00 0.000E+00 30.4 0.000E+00 2.580E+17 6.922E+16 1.587E-05 224.6 1027 1.732E+12 3.086E+15 0.000E+00 0.000E+00 30.5 0.000E+00 2.539E+17 6.811E+16 1.562E-05 224.9 1027 1.704E+12 3.037E+15 0.000E+00 0.000E+00 30.6 0.000E+00 2.498E+17 6.703E+16 1.537E-05 225.1 1027 1.677E+12 2.989E+15 0.000E+00 0.000E+00 30.7 0.000E+00 2.459E+17 6.596E+16 1.513E-05 225.4 1027 1.650E+12 2.941E+15 0.000E+00 0.000E+00 30.8 0.000E+00 2.419E+17 6.491E+16 1.489E-05 225.6 1027 1.624E+12 2.894E+15 0.000E+00 0.000E+00 30.9 0.000E+00 2.381E+17 6.387E+16 1.465E-05 225.8 1027 1.598E+12 2.848E+15 0.000E+00 0.000E+00 31.0 0.000E+00 2.343E+17 6.285E+16 1.442E-05 226.1 1027 1.572E+12 2.803E+15 0.000E+00 0.000E+00 31.1 0.000E+00 2.306E+17 6.185E+16 1.419E-05 226.3 1027 1.547E+12 2.758E+15 0.000E+00 0.000E+00 31.2 0.000E+00 2.269E+17 6.087E+16 1.396E-05 226.6 1027 1.523E+12 2.714E+15 0.000E+00 0.000E+00 31.3 0.000E+00 2.233E+17 5.990E+16 1.374E-05 226.8 1027 1.498E+12 2.671E+15 0.000E+00 0.000E+00 31.4 0.000E+00 2.198E+17 5.895E+16 1.352E-05 227.1 1027 1.475E+12 2.629E+15 0.000E+00 0.000E+00 31.5 0.000E+00 2.163E+17 5.802E+16 1.331E-05 227.3 1027 1.451E+12 2.587E+15 0.000E+00 0.000E+00 31.6 0.000E+00 2.128E+17 5.710E+16 1.309E-05 227.6 1027 1.428E+12 2.546E+15 0.000E+00 0.000E+00 31.7 0.000E+00 2.095E+17 5.619E+16 1.289E-05 227.8 1027 1.406E+12 2.505E+15 0.000E+00 0.000E+00 31.8 0.000E+00 2.061E+17 5.530E+16 1.268E-05 228.1 1027 1.383E+12 2.466E+15 0.000E+00 0.000E+00 31.9 0.000E+00 2.029E+17 5.443E+16 1.248E-05 228.4 1027 1.361E+12 2.427E+15 0.000E+00 0.000E+00 32.0 0.000E+00 1.997E+17 5.357E+16 1.228E-05 228.6 1027 1.340E+12 2.388E+15 0.000E+00 0.000E+00 32.1 0.000E+00 1.965E+17 5.272E+16 1.209E-05 228.9 1027 1.319E+12 2.351E+15 0.000E+00 0.000E+00 32.2 0.000E+00 1.934E+17 5.189E+16 1.190E-05 229.2 1027 1.298E+12 2.314E+15 0.000E+00 0.000E+00 32.3 0.000E+00 1.904E+17 5.107E+16 1.171E-05 229.4 1027 1.277E+12 2.277E+15 0.000E+00 0.000E+00 32.4 0.000E+00 1.874E+17 5.026E+16 1.153E-05 229.7 1027 1.257E+12 2.241E+15 0.000E+00 0.000E+00 32.5 0.000E+00 1.844E+17 4.947E+16 1.135E-05 230.0 1027 1.237E+12 2.206E+15 0.000E+00 0.000E+00 32.6 0.000E+00 1.815E+17 4.869E+16 1.117E-05 230.2 1027 1.218E+12 2.171E+15 0.000E+00 0.000E+00 32.7 0.000E+00 1.786E+17 4.793E+16 1.099E-05 230.5 1027 1.199E+12 2.137E+15 0.000E+00 0.000E+00 32.8 0.000E+00 1.758E+17 4.717E+16 1.082E-05 230.8 1027 1.180E+12 2.103E+15 0.000E+00 0.000E+00 32.9 0.000E+00 1.731E+17 4.643E+16 1.065E-05 231.1 1027 1.161E+12 2.070E+15 0.000E+00 0.000E+00 33.0 0.000E+00 1.704E+17 4.570E+16 1.048E-05 231.3 1027 1.143E+12 2.038E+15 0.000E+00 0.000E+00 33.1 0.000E+00 1.677E+17 4.498E+16 1.032E-05 231.6 1027 1.125E+12 2.006E+15 0.000E+00 0.000E+00 33.2 0.000E+00 1.650E+17 4.428E+16 1.015E-05 231.9 1027 1.108E+12 1.974E+15 0.000E+00 0.000E+00 33.3 0.000E+00 1.625E+17 4.358E+16 9.995E-06 232.2 1027 1.090E+12 1.943E+15 0.000E+00 0.000E+00 33.4 0.000E+00 1.599E+17 4.290E+16 9.839E-06 232.5 1027 1.073E+12 1.913E+15 0.000E+00 0.000E+00 33.5 0.000E+00 1.574E+17 4.223E+16 9.685E-06 232.8 1027 1.056E+12 1.883E+15 0.000E+00 0.000E+00 33.6 0.000E+00 1.549E+17 4.157E+16 9.533E-06 233.1 1027 1.040E+12 1.853E+15 0.000E+00 0.000E+00 33.7 0.000E+00 1.525E+17 4.092E+16 9.384E-06 233.4 1027 1.024E+12 1.824E+15 0.000E+00 0.000E+00 33.8 0.000E+00 1.501E+17 4.028E+16 9.237E-06 233.7 1027 1.008E+12 1.796E+15 0.000E+00 0.000E+00 33.9 0.000E+00 1.478E+17 3.965E+16 9.093E-06 234.0 1027 9.918E+11 1.768E+15 0.000E+00 0.000E+00 34.0 0.000E+00 1.455E+17 3.903E+16 8.951E-06 234.3 1027 9.764E+11 1.740E+15 0.000E+00 0.000E+00 34.1 0.000E+00 1.432E+17 3.842E+16 8.812E-06 234.6 1027 9.612E+11 1.713E+15 0.000E+00 0.000E+00 34.2 0.000E+00 1.410E+17 3.783E+16 8.675E-06 234.9 1027 9.462E+11 1.687E+15 0.000E+00 0.000E+00 34.3 0.000E+00 1.388E+17 3.724E+16 8.540E-06 235.2 1027 9.315E+11 1.660E+15 0.000E+00 0.000E+00 34.4 0.000E+00 1.366E+17 3.666E+16 8.407E-06 235.5 1027 9.170E+11 1.635E+15 0.000E+00 0.000E+00 34.5 0.000E+00 1.345E+17 3.609E+16 8.277E-06 235.8 1027 9.028E+11 1.609E+15 0.000E+00 0.000E+00 34.6 0.000E+00 1.324E+17 3.553E+16 8.148E-06 236.1 1027 8.888E+11 1.584E+15 0.000E+00 0.000E+00 34.7 0.000E+00 1.304E+17 3.498E+16 8.022E-06 236.4 1027 8.750E+11 1.560E+15 0.000E+00 0.000E+00 34.8 0.000E+00 1.284E+17 3.444E+16 7.898E-06 236.7 1027 8.614E+11 1.535E+15 0.000E+00 0.000E+00 34.9 0.000E+00 1.264E+17 3.390E+16 7.776E-06 237.1 1027 8.481E+11 1.512E+15 0.000E+00 0.000E+00 35.0 0.000E+00 1.244E+17 3.338E+16 7.656E-06 237.4 1027 8.350E+11 1.488E+15 0.000E+00 0.000E+00 35.1 0.000E+00 1.225E+17 3.287E+16 7.537E-06 237.7 1027 8.221E+11 1.465E+15 0.000E+00 0.000E+00 35.2 0.000E+00 1.206E+17 3.236E+16 7.421E-06 238.0 1027 8.095E+11 1.443E+15 0.000E+00 0.000E+00 35.3 0.000E+00 1.188E+17 3.186E+16 7.307E-06 238.3 1027 7.970E+11 1.421E+15 0.000E+00 0.000E+00 35.4 0.000E+00 1.169E+17 3.137E+16 7.195E-06 238.7 1027 7.847E+11 1.399E+15 0.000E+00 0.000E+00 35.5 0.000E+00 1.151E+17 3.089E+16 7.084E-06 239.0 1027 7.727E+11 1.377E+15 0.000E+00 0.000E+00 35.6 0.000E+00 1.134E+17 3.041E+16 6.975E-06 239.3 1027 7.608E+11 1.356E+15 0.000E+00 0.000E+00 35.7 0.000E+00 1.116E+17 2.995E+16 6.868E-06 239.6 1027 7.491E+11 1.335E+15 0.000E+00 0.000E+00 35.8 0.000E+00 1.099E+17 2.949E+16 6.763E-06 239.9 1027 7.377E+11 1.315E+15 0.000E+00 0.000E+00 35.9 0.000E+00 1.082E+17 2.904E+16 6.660E-06 240.3 1027 7.264E+11 1.295E+15 0.000E+00 0.000E+00 36.0 0.000E+00 1.066E+17 2.859E+16 6.558E-06 240.6 1027 7.153E+11 1.275E+15 0.000E+00 0.000E+00 36.1 0.000E+00 1.050E+17 2.816E+16 6.458E-06 240.9 1027 7.044E+11 1.256E+15 0.000E+00 0.000E+00 36.2 0.000E+00 1.034E+17 2.773E+16 6.359E-06 241.3 1027 6.936E+11 1.236E+15 0.000E+00 0.000E+00 36.3 0.000E+00 1.018E+17 2.731E+16 6.263E-06 241.6 1027 6.831E+11 1.218E+15 0.000E+00 0.000E+00 36.4 0.000E+00 1.002E+17 2.689E+16 6.167E-06 241.9 1027 6.727E+11 1.199E+15 0.000E+00 0.000E+00 36.5 0.000E+00 9.872E+16 2.648E+16 6.074E-06 242.2 1027 6.625E+11 1.181E+15 0.000E+00 0.000E+00 36.6 0.000E+00 9.722E+16 2.608E+16 5.982E-06 242.6 1027 6.524E+11 1.163E+15 0.000E+00 0.000E+00 36.7 0.000E+00 9.575E+16 2.569E+16 5.891E-06 242.9 1027 6.426E+11 1.145E+15 0.000E+00 0.000E+00 36.8 0.000E+00 9.430E+16 2.530E+16 5.802E-06 243.2 1027 6.328E+11 1.128E+15 0.000E+00 0.000E+00 36.9 0.000E+00 9.288E+16 2.492E+16 5.714E-06 243.5 1027 6.233E+11 1.111E+15 0.000E+00 0.000E+00 37.0 0.000E+00 9.148E+16 2.454E+16 5.628E-06 243.9 1027 6.139E+11 1.094E+15 0.000E+00 0.000E+00 37.1 0.000E+00 9.010E+16 2.417E+16 5.543E-06 244.2 1027 6.046E+11 1.078E+15 0.000E+00 0.000E+00 37.2 0.000E+00 8.875E+16 2.381E+16 5.460E-06 244.5 1027 5.955E+11 1.062E+15 0.000E+00 0.000E+00 37.3 0.000E+00 8.741E+16 2.345E+16 5.378E-06 244.9 1027 5.866E+11 1.046E+15 0.000E+00 0.000E+00 37.4 0.000E+00 8.610E+16 2.310E+16 5.297E-06 245.2 1027 5.778E+11 1.030E+15 0.000E+00 0.000E+00 37.5 0.000E+00 8.481E+16 2.275E+16 5.218E-06 245.5 1027 5.692E+11 1.014E+15 0.000E+00 0.000E+00 37.6 0.000E+00 8.354E+16 2.241E+16 5.140E-06 245.8 1027 5.606E+11 9.993E+14 0.000E+00 0.000E+00 37.7 0.000E+00 8.230E+16 2.208E+16 5.063E-06 246.2 1027 5.523E+11 9.844E+14 0.000E+00 0.000E+00 37.8 0.000E+00 8.107E+16 2.175E+16 4.988E-06 246.5 1027 5.440E+11 9.697E+14 0.000E+00 0.000E+00 37.9 0.000E+00 7.986E+16 2.143E+16 4.914E-06 246.8 1027 5.359E+11 9.553E+14 0.000E+00 0.000E+00 38.0 0.000E+00 7.868E+16 2.111E+16 4.841E-06 247.1 1027 5.280E+11 9.411E+14 0.000E+00 0.000E+00 38.1 0.000E+00 7.751E+16 2.079E+16 4.769E-06 247.5 1027 5.201E+11 9.271E+14 0.000E+00 0.000E+00 38.2 0.000E+00 7.636E+16 2.049E+16 4.698E-06 247.8 1027 5.124E+11 9.134E+14 0.000E+00 0.000E+00 38.3 0.000E+00 7.523E+16 2.018E+16 4.629E-06 248.1 1027 5.049E+11 8.999E+14 0.000E+00 0.000E+00 38.4 0.000E+00 7.412E+16 1.988E+16 4.560E-06 248.4 1027 4.974E+11 8.866E+14 0.000E+00 0.000E+00 38.5 0.000E+00 7.303E+16 1.959E+16 4.493E-06 248.7 1027 4.901E+11 8.735E+14 0.000E+00 0.000E+00 38.6 0.000E+00 7.195E+16 1.930E+16 4.427E-06 249.1 1027 4.828E+11 8.606E+14 0.000E+00 0.000E+00 38.7 0.000E+00 7.089E+16 1.902E+16 4.362E-06 249.4 1027 4.757E+11 8.480E+14 0.000E+00 0.000E+00 38.8 0.000E+00 6.985E+16 1.874E+16 4.298E-06 249.7 1027 4.688E+11 8.356E+14 0.000E+00 0.000E+00 38.9 0.000E+00 6.883E+16 1.847E+16 4.235E-06 250.0 1027 4.619E+11 8.233E+14 0.000E+00 0.000E+00 39.0 0.000E+00 6.782E+16 1.820E+16 4.173E-06 250.3 1027 4.551E+11 8.113E+14 0.000E+00 0.000E+00 39.1 0.000E+00 6.683E+16 1.793E+16 4.112E-06 250.6 1027 4.485E+11 7.994E+14 0.000E+00 0.000E+00 39.2 0.000E+00 6.586E+16 1.767E+16 4.052E-06 250.9 1027 4.420E+11 7.878E+14 0.000E+00 0.000E+00 39.3 0.000E+00 6.490E+16 1.741E+16 3.993E-06 251.3 1027 4.355E+11 7.763E+14 0.000E+00 0.000E+00 39.4 0.000E+00 6.396E+16 1.716E+16 3.935E-06 251.6 1027 4.292E+11 7.650E+14 0.000E+00 0.000E+00 39.5 0.000E+00 6.303E+16 1.691E+16 3.878E-06 251.9 1027 4.230E+11 7.539E+14 0.000E+00 0.000E+00 39.6 0.000E+00 6.212E+16 1.666E+16 3.822E-06 252.2 1027 4.169E+11 7.430E+14 0.000E+00 0.000E+00 39.7 0.000E+00 6.122E+16 1.642E+16 3.767E-06 252.5 1027 4.108E+11 7.323E+14 0.000E+00 0.000E+00 39.8 0.000E+00 6.034E+16 1.619E+16 3.712E-06 252.8 1027 4.049E+11 7.217E+14 0.000E+00 0.000E+00 39.9 0.000E+00 5.947E+16 1.595E+16 3.659E-06 253.1 1027 3.991E+11 7.113E+14 0.000E+00 0.000E+00 40.0 0.000E+00 5.862E+16 1.572E+16 3.606E-06 253.4 1027 3.933E+11 7.011E+14 0.000E+00 0.000E+00 40.1 0.000E+00 5.777E+16 1.550E+16 3.555E-06 253.6 1027 3.877E+11 6.911E+14 0.000E+00 0.000E+00 40.2 0.000E+00 5.695E+16 1.528E+16 3.504E-06 253.9 1027 3.822E+11 6.812E+14 0.000E+00 0.000E+00 40.3 0.000E+00 5.613E+16 1.506E+16 3.454E-06 254.2 1027 3.767E+11 6.714E+14 0.000E+00 0.000E+00 40.4 0.000E+00 5.533E+16 1.484E+16 3.404E-06 254.5 1027 3.713E+11 6.619E+14 0.000E+00 0.000E+00 40.5 0.000E+00 5.455E+16 1.463E+16 3.356E-06 254.8 1027 3.660E+11 6.524E+14 0.000E+00 0.000E+00 40.6 0.000E+00 5.377E+16 1.442E+16 3.308E-06 255.1 1027 3.608E+11 6.432E+14 0.000E+00 0.000E+00 40.7 0.000E+00 5.301E+16 1.422E+16 3.261E-06 255.3 1027 3.557E+11 6.341E+14 0.000E+00 0.000E+00 40.8 0.000E+00 5.226E+16 1.402E+16 3.215E-06 255.6 1027 3.507E+11 6.251E+14 0.000E+00 0.000E+00 40.9 0.000E+00 5.152E+16 1.382E+16 3.170E-06 255.9 1027 3.457E+11 6.162E+14 0.000E+00 0.000E+00 41.0 0.000E+00 5.079E+16 1.363E+16 3.125E-06 256.1 1027 3.409E+11 6.076E+14 0.000E+00 0.000E+00 41.1 0.000E+00 5.008E+16 1.343E+16 3.081E-06 256.4 1027 3.361E+11 5.990E+14 0.000E+00 0.000E+00 41.2 0.000E+00 4.937E+16 1.325E+16 3.038E-06 256.6 1027 3.313E+11 5.906E+14 0.000E+00 0.000E+00 41.3 0.000E+00 4.868E+16 1.306E+16 2.995E-06 256.9 1027 3.267E+11 5.823E+14 0.000E+00 0.000E+00 41.4 0.000E+00 4.800E+16 1.288E+16 2.953E-06 257.1 1027 3.221E+11 5.742E+14 0.000E+00 0.000E+00 41.5 0.000E+00 4.733E+16 1.270E+16 2.912E-06 257.4 1027 3.176E+11 5.662E+14 0.000E+00 0.000E+00 41.6 0.000E+00 4.667E+16 1.252E+16 2.872E-06 257.6 1027 3.132E+11 5.583E+14 0.000E+00 0.000E+00 41.7 0.000E+00 4.602E+16 1.235E+16 2.832E-06 257.9 1027 3.089E+11 5.505E+14 0.000E+00 0.000E+00 41.8 0.000E+00 4.539E+16 1.218E+16 2.792E-06 258.1 1027 3.046E+11 5.429E+14 0.000E+00 0.000E+00 41.9 0.000E+00 4.476E+16 1.201E+16 2.754E-06 258.3 1027 3.003E+11 5.354E+14 0.000E+00 0.000E+00 42.0 0.000E+00 4.414E+16 1.184E+16 2.716E-06 258.6 1027 2.962E+11 5.280E+14 0.000E+00 0.000E+00 42.1 0.000E+00 4.353E+16 1.168E+16 2.678E-06 258.8 1027 2.921E+11 5.207E+14 0.000E+00 0.000E+00 42.2 0.000E+00 4.293E+16 1.152E+16 2.641E-06 259.0 1027 2.881E+11 5.135E+14 0.000E+00 0.000E+00 42.3 0.000E+00 4.234E+16 1.136E+16 2.605E-06 259.2 1027 2.841E+11 5.065E+14 0.000E+00 0.000E+00 42.4 0.000E+00 4.176E+16 1.120E+16 2.569E-06 259.4 1027 2.802E+11 4.995E+14 0.000E+00 0.000E+00 42.5 0.000E+00 4.119E+16 1.105E+16 2.534E-06 259.6 1027 2.764E+11 4.927E+14 0.000E+00 0.000E+00 42.6 0.000E+00 4.063E+16 1.090E+16 2.500E-06 259.8 1027 2.726E+11 4.860E+14 0.000E+00 0.000E+00 42.7 0.000E+00 4.008E+16 1.075E+16 2.466E-06 260.0 1027 2.689E+11 4.794E+14 0.000E+00 0.000E+00 42.8 0.000E+00 3.953E+16 1.060E+16 2.432E-06 260.2 1027 2.653E+11 4.728E+14 0.000E+00 0.000E+00 42.9 0.000E+00 3.900E+16 1.046E+16 2.399E-06 260.4 1027 2.617E+11 4.664E+14 0.000E+00 0.000E+00 43.0 0.000E+00 3.847E+16 1.032E+16 2.367E-06 260.6 1027 2.581E+11 4.601E+14 0.000E+00 0.000E+00 43.1 0.000E+00 3.795E+16 1.018E+16 2.335E-06 260.7 1027 2.547E+11 4.539E+14 0.000E+00 0.000E+00 43.2 0.000E+00 3.744E+16 1.004E+16 2.303E-06 260.9 1027 2.512E+11 4.478E+14 0.000E+00 0.000E+00 43.3 0.000E+00 3.693E+16 9.908E+15 2.272E-06 261.1 1027 2.479E+11 4.418E+14 0.000E+00 0.000E+00 43.4 0.000E+00 3.644E+16 9.776E+15 2.242E-06 261.2 1027 2.445E+11 4.359E+14 0.000E+00 0.000E+00 43.5 0.000E+00 3.595E+16 9.645E+15 2.212E-06 261.4 1027 2.413E+11 4.300E+14 0.000E+00 0.000E+00 43.6 0.000E+00 3.547E+16 9.516E+15 2.182E-06 261.5 1027 2.380E+11 4.243E+14 0.000E+00 0.000E+00 43.7 0.000E+00 3.500E+16 9.389E+15 2.153E-06 261.7 1027 2.349E+11 4.186E+14 0.000E+00 0.000E+00 43.8 0.000E+00 3.453E+16 9.265E+15 2.125E-06 261.8 1027 2.318E+11 4.131E+14 0.000E+00 0.000E+00 43.9 0.000E+00 3.408E+16 9.142E+15 2.097E-06 261.9 1027 2.287E+11 4.076E+14 0.000E+00 0.000E+00 44.0 0.000E+00 3.363E+16 9.021E+15 2.069E-06 262.0 1027 2.257E+11 4.022E+14 0.000E+00 0.000E+00 44.1 0.000E+00 3.318E+16 8.902E+15 2.042E-06 262.2 1027 2.227E+11 3.969E+14 0.000E+00 0.000E+00 44.2 0.000E+00 3.275E+16 8.785E+15 2.015E-06 262.3 1027 2.197E+11 3.917E+14 0.000E+00 0.000E+00 44.3 0.000E+00 3.232E+16 8.669E+15 1.988E-06 262.4 1027 2.169E+11 3.865E+14 0.000E+00 0.000E+00 44.4 0.000E+00 3.189E+16 8.556E+15 1.962E-06 262.5 1027 2.140E+11 3.815E+14 0.000E+00 0.000E+00 44.5 0.000E+00 3.147E+16 8.444E+15 1.936E-06 262.6 1027 2.112E+11 3.765E+14 0.000E+00 0.000E+00 44.6 0.000E+00 3.106E+16 8.333E+15 1.911E-06 262.6 1027 2.085E+11 3.716E+14 0.000E+00 0.000E+00 44.7 0.000E+00 3.066E+16 8.225E+15 1.886E-06 262.7 1027 2.057E+11 3.667E+14 0.000E+00 0.000E+00 44.8 0.000E+00 3.026E+16 8.118E+15 1.862E-06 262.8 1027 2.031E+11 3.620E+14 0.000E+00 0.000E+00 44.9 0.000E+00 2.987E+16 8.013E+15 1.838E-06 262.8 1027 2.004E+11 3.573E+14 0.000E+00 0.000E+00 45.0 0.000E+00 2.948E+16 7.909E+15 1.814E-06 262.9 1027 1.978E+11 3.527E+14 0.000E+00 0.000E+00 45.1 0.000E+00 2.910E+16 7.807E+15 1.791E-06 262.9 1027 1.953E+11 3.481E+14 0.000E+00 0.000E+00 45.2 0.000E+00 2.873E+16 7.707E+15 1.767E-06 263.0 1027 1.928E+11 3.436E+14 0.000E+00 0.000E+00 45.3 0.000E+00 2.836E+16 7.608E+15 1.745E-06 263.0 1027 1.903E+11 3.392E+14 0.000E+00 0.000E+00 45.4 0.000E+00 2.800E+16 7.510E+15 1.722E-06 263.0 1027 1.879E+11 3.349E+14 0.000E+00 0.000E+00 45.5 0.000E+00 2.764E+16 7.414E+15 1.700E-06 263.1 1027 1.855E+11 3.306E+14 0.000E+00 0.000E+00 45.6 0.000E+00 2.728E+16 7.320E+15 1.679E-06 263.1 1027 1.831E+11 3.264E+14 0.000E+00 0.000E+00 45.7 0.000E+00 2.694E+16 7.226E+15 1.657E-06 263.1 1027 1.808E+11 3.222E+14 0.000E+00 0.000E+00 45.8 0.000E+00 2.659E+16 7.134E+15 1.636E-06 263.1 1027 1.785E+11 3.181E+14 0.000E+00 0.000E+00 45.9 0.000E+00 2.626E+16 7.044E+15 1.615E-06 263.1 1027 1.762E+11 3.141E+14 0.000E+00 0.000E+00 46.0 0.000E+00 2.592E+16 6.955E+15 1.595E-06 263.1 1027 1.740E+11 3.101E+14 0.000E+00 0.000E+00 46.1 0.000E+00 2.560E+16 6.867E+15 1.575E-06 263.0 1027 1.718E+11 3.062E+14 0.000E+00 0.000E+00 46.2 0.000E+00 2.527E+16 6.780E+15 1.555E-06 263.0 1027 1.696E+11 3.023E+14 0.000E+00 0.000E+00 46.3 0.000E+00 2.496E+16 6.695E+15 1.535E-06 263.0 1027 1.675E+11 2.985E+14 0.000E+00 0.000E+00 46.4 0.000E+00 2.464E+16 6.611E+15 1.516E-06 262.9 1027 1.654E+11 2.948E+14 0.000E+00 0.000E+00 46.5 0.000E+00 2.433E+16 6.528E+15 1.497E-06 262.9 1027 1.633E+11 2.911E+14 0.000E+00 0.000E+00 46.6 0.000E+00 2.403E+16 6.446E+15 1.478E-06 262.9 1027 1.612E+11 2.874E+14 0.000E+00 0.000E+00 46.7 0.000E+00 2.373E+16 6.365E+15 1.460E-06 262.8 1027 1.592E+11 2.838E+14 0.000E+00 0.000E+00 46.8 0.000E+00 2.343E+16 6.286E+15 1.442E-06 262.7 1027 1.572E+11 2.803E+14 0.000E+00 0.000E+00 46.9 0.000E+00 2.314E+16 6.207E+15 1.424E-06 262.7 1027 1.553E+11 2.768E+14 0.000E+00 0.000E+00 47.0 0.000E+00 2.285E+16 6.130E+15 1.406E-06 262.6 1027 1.533E+11 2.733E+14 0.000E+00 0.000E+00 47.1 0.000E+00 2.257E+16 6.054E+15 1.388E-06 262.5 1027 1.514E+11 2.699E+14 0.000E+00 0.000E+00 47.2 0.000E+00 2.229E+16 5.979E+15 1.371E-06 262.4 1027 1.496E+11 2.666E+14 0.000E+00 0.000E+00 47.3 0.000E+00 2.201E+16 5.905E+15 1.354E-06 262.3 1027 1.477E+11 2.633E+14 0.000E+00 0.000E+00 47.4 0.000E+00 2.174E+16 5.831E+15 1.337E-06 262.2 1027 1.459E+11 2.600E+14 0.000E+00 0.000E+00 47.5 0.000E+00 2.147E+16 5.759E+15 1.321E-06 262.1 1027 1.441E+11 2.568E+14 0.000E+00 0.000E+00 47.6 0.000E+00 2.120E+16 5.688E+15 1.305E-06 262.0 1027 1.423E+11 2.536E+14 0.000E+00 0.000E+00 47.7 0.000E+00 2.094E+16 5.618E+15 1.288E-06 261.9 1027 1.405E+11 2.505E+14 0.000E+00 0.000E+00 47.8 0.000E+00 2.068E+16 5.549E+15 1.273E-06 261.8 1027 1.388E+11 2.474E+14 0.000E+00 0.000E+00 47.9 0.000E+00 2.043E+16 5.480E+15 1.257E-06 261.7 1027 1.371E+11 2.444E+14 0.000E+00 0.000E+00 48.0 0.000E+00 2.018E+16 5.413E+15 1.241E-06 261.6 1027 1.354E+11 2.413E+14 0.000E+00 0.000E+00 48.1 0.000E+00 1.993E+16 5.346E+15 1.226E-06 261.4 1027 1.337E+11 2.384E+14 0.000E+00 0.000E+00 48.2 0.000E+00 1.968E+16 5.281E+15 1.211E-06 261.3 1027 1.321E+11 2.355E+14 0.000E+00 0.000E+00 48.3 0.000E+00 1.944E+16 5.216E+15 1.196E-06 261.2 1027 1.305E+11 2.326E+14 0.000E+00 0.000E+00 48.4 0.000E+00 1.920E+16 5.152E+15 1.182E-06 261.0 1027 1.289E+11 2.297E+14 0.000E+00 0.000E+00 48.5 0.000E+00 1.897E+16 5.089E+15 1.167E-06 260.9 1027 1.273E+11 2.269E+14 0.000E+00 0.000E+00 48.6 0.000E+00 1.874E+16 5.027E+15 1.153E-06 260.7 1027 1.257E+11 2.241E+14 0.000E+00 0.000E+00 48.7 0.000E+00 1.851E+16 4.965E+15 1.139E-06 260.6 1027 1.242E+11 2.214E+14 0.000E+00 0.000E+00 48.8 0.000E+00 1.828E+16 4.905E+15 1.125E-06 260.4 1027 1.227E+11 2.187E+14 0.000E+00 0.000E+00 48.9 0.000E+00 1.806E+16 4.845E+15 1.111E-06 260.2 1027 1.212E+11 2.160E+14 0.000E+00 0.000E+00 49.0 0.000E+00 1.784E+16 4.786E+15 1.098E-06 260.1 1027 1.197E+11 2.134E+14 0.000E+00 0.000E+00 49.1 0.000E+00 1.762E+16 4.727E+15 1.084E-06 259.9 1027 1.182E+11 2.108E+14 0.000E+00 0.000E+00 49.2 0.000E+00 1.741E+16 4.670E+15 1.071E-06 259.7 1027 1.168E+11 2.082E+14 0.000E+00 0.000E+00 49.3 0.000E+00 1.719E+16 4.613E+15 1.058E-06 259.5 1027 1.154E+11 2.057E+14 0.000E+00 0.000E+00 49.4 0.000E+00 1.698E+16 4.556E+15 1.045E-06 259.4 1027 1.140E+11 2.032E+14 0.000E+00 0.000E+00 49.5 0.000E+00 1.678E+16 4.501E+15 1.032E-06 259.2 1027 1.126E+11 2.007E+14 0.000E+00 0.000E+00 49.6 0.000E+00 1.657E+16 4.446E+15 1.020E-06 259.0 1027 1.112E+11 1.982E+14 0.000E+00 0.000E+00 49.7 0.000E+00 1.637E+16 4.392E+15 1.007E-06 258.8 1027 1.099E+11 1.958E+14 0.000E+00 0.000E+00 49.8 0.000E+00 1.617E+16 4.339E+15 9.950E-07 258.6 1027 1.085E+11 1.935E+14 0.000E+00 0.000E+00 49.9 0.000E+00 1.598E+16 4.286E+15 9.829E-07 258.4 1027 1.072E+11 1.911E+14 0.000E+00 0.000E+00 50.0 0.000E+00 1.578E+16 4.234E+15 9.710E-07 258.2 1027 1.059E+11 1.888E+14 0.000E+00 0.000E+00 50.1 0.000E+00 1.559E+16 4.182E+15 9.592E-07 258.0 1027 1.046E+11 1.865E+14 0.000E+00 0.000E+00 50.2 0.000E+00 1.540E+16 4.132E+15 9.475E-07 257.8 1027 1.033E+11 1.842E+14 0.000E+00 0.000E+00 50.3 0.000E+00 1.521E+16 4.081E+15 9.360E-07 257.6 1027 1.021E+11 1.820E+14 0.000E+00 0.000E+00 50.4 0.000E+00 1.503E+16 4.032E+15 9.246E-07 257.4 1027 1.009E+11 1.798E+14 0.000E+00 0.000E+00 50.5 0.000E+00 1.485E+16 3.983E+15 9.134E-07 257.1 1027 9.963E+10 1.776E+14 0.000E+00 0.000E+00 50.6 0.000E+00 1.467E+16 3.934E+15 9.023E-07 256.9 1027 9.842E+10 1.754E+14 0.000E+00 0.000E+00 50.7 0.000E+00 1.449E+16 3.887E+15 8.913E-07 256.7 1027 9.722E+10 1.733E+14 0.000E+00 0.000E+00 50.8 0.000E+00 1.431E+16 3.839E+15 8.805E-07 256.5 1027 9.604E+10 1.712E+14 0.000E+00 0.000E+00 50.9 0.000E+00 1.414E+16 3.793E+15 8.698E-07 256.3 1027 9.487E+10 1.691E+14 0.000E+00 0.000E+00 51.0 0.000E+00 1.397E+16 3.747E+15 8.592E-07 256.0 1027 9.372E+10 1.670E+14 0.000E+00 0.000E+00 51.1 0.000E+00 1.380E+16 3.701E+15 8.488E-07 255.8 1027 9.258E+10 1.650E+14 0.000E+00 0.000E+00 51.2 0.000E+00 1.363E+16 3.656E+15 8.385E-07 255.6 1027 9.145E+10 1.630E+14 0.000E+00 0.000E+00 51.3 0.000E+00 1.346E+16 3.611E+15 8.283E-07 255.3 1027 9.034E+10 1.610E+14 0.000E+00 0.000E+00 51.4 0.000E+00 1.330E+16 3.568E+15 8.182E-07 255.1 1027 8.924E+10 1.591E+14 0.000E+00 0.000E+00 51.5 0.000E+00 1.314E+16 3.524E+15 8.082E-07 254.9 1027 8.815E+10 1.571E+14 0.000E+00 0.000E+00 51.6 0.000E+00 1.298E+16 3.481E+15 7.984E-07 254.6 1027 8.708E+10 1.552E+14 0.000E+00 0.000E+00 51.7 0.000E+00 1.282E+16 3.439E+15 7.886E-07 254.4 1027 8.602E+10 1.533E+14 0.000E+00 0.000E+00 51.8 0.000E+00 1.266E+16 3.397E+15 7.790E-07 254.1 1027 8.497E+10 1.515E+14 0.000E+00 0.000E+00 51.9 0.000E+00 1.251E+16 3.355E+15 7.695E-07 253.9 1027 8.394E+10 1.496E+14 0.000E+00 0.000E+00 52.0 0.000E+00 1.236E+16 3.315E+15 7.601E-07 253.7 1027 8.291E+10 1.478E+14 0.000E+00 0.000E+00 52.1 0.000E+00 1.220E+16 3.274E+15 7.509E-07 253.4 1027 8.190E+10 1.460E+14 0.000E+00 0.000E+00 52.2 0.000E+00 1.206E+16 3.234E+15 7.417E-07 253.2 1027 8.090E+10 1.442E+14 0.000E+00 0.000E+00 52.3 0.000E+00 1.191E+16 3.195E+15 7.326E-07 252.9 1027 7.991E+10 1.424E+14 0.000E+00 0.000E+00 52.4 0.000E+00 1.176E+16 3.155E+15 7.237E-07 252.7 1027 7.893E+10 1.407E+14 0.000E+00 0.000E+00 52.5 0.000E+00 1.162E+16 3.117E+15 7.148E-07 252.4 1027 7.797E+10 1.390E+14 0.000E+00 0.000E+00 52.6 0.000E+00 1.148E+16 3.079E+15 7.061E-07 252.2 1027 7.701E+10 1.373E+14 0.000E+00 0.000E+00 52.7 0.000E+00 1.134E+16 3.041E+15 6.974E-07 251.9 1027 7.607E+10 1.356E+14 0.000E+00 0.000E+00 52.8 0.000E+00 1.120E+16 3.004E+15 6.889E-07 251.7 1027 7.514E+10 1.339E+14 0.000E+00 0.000E+00 52.9 0.000E+00 1.106E+16 2.967E+15 6.804E-07 251.4 1027 7.421E+10 1.323E+14 0.000E+00 0.000E+00 53.0 0.000E+00 1.092E+16 2.930E+15 6.721E-07 251.2 1027 7.330E+10 1.307E+14 0.000E+00 0.000E+00 53.1 0.000E+00 1.079E+16 2.894E+15 6.638E-07 250.9 1027 7.240E+10 1.291E+14 0.000E+00 0.000E+00 53.2 0.000E+00 1.066E+16 2.859E+15 6.556E-07 250.6 1027 7.151E+10 1.275E+14 0.000E+00 0.000E+00 53.3 0.000E+00 1.053E+16 2.824E+15 6.476E-07 250.4 1027 7.063E+10 1.259E+14 0.000E+00 0.000E+00 53.4 0.000E+00 1.040E+16 2.789E+15 6.396E-07 250.1 1027 6.976E+10 1.243E+14 0.000E+00 0.000E+00 53.5 0.000E+00 1.027E+16 2.754E+15 6.317E-07 249.9 1027 6.890E+10 1.228E+14 0.000E+00 0.000E+00 53.6 0.000E+00 1.014E+16 2.720E+15 6.239E-07 249.6 1027 6.805E+10 1.213E+14 0.000E+00 0.000E+00 53.7 0.000E+00 1.002E+16 2.687E+15 6.162E-07 249.4 1027 6.721E+10 1.198E+14 0.000E+00 0.000E+00 53.8 0.000E+00 9.891E+15 2.654E+15 6.086E-07 249.1 1027 6.638E+10 1.183E+14 0.000E+00 0.000E+00 53.9 0.000E+00 9.769E+15 2.621E+15 6.010E-07 248.9 1027 6.556E+10 1.168E+14 0.000E+00 0.000E+00 54.0 0.000E+00 9.648E+15 2.588E+15 5.936E-07 248.6 1027 6.474E+10 1.154E+14 0.000E+00 0.000E+00 54.1 0.000E+00 9.528E+15 2.556E+15 5.862E-07 248.4 1027 6.394E+10 1.140E+14 0.000E+00 0.000E+00 54.2 0.000E+00 9.410E+15 2.524E+15 5.789E-07 248.1 1027 6.315E+10 1.126E+14 0.000E+00 0.000E+00 54.3 0.000E+00 9.293E+15 2.493E+15 5.717E-07 247.8 1027 6.236E+10 1.112E+14 0.000E+00 0.000E+00 54.4 0.000E+00 9.177E+15 2.462E+15 5.646E-07 247.6 1027 6.158E+10 1.098E+14 0.000E+00 0.000E+00 54.5 0.000E+00 9.063E+15 2.431E+15 5.576E-07 247.3 1027 6.082E+10 1.084E+14 0.000E+00 0.000E+00 54.6 0.000E+00 8.950E+15 2.401E+15 5.506E-07 247.1 1027 6.006E+10 1.071E+14 0.000E+00 0.000E+00 54.7 0.000E+00 8.838E+15 2.371E+15 5.437E-07 246.8 1027 5.931E+10 1.057E+14 0.000E+00 0.000E+00 54.8 0.000E+00 8.727E+15 2.341E+15 5.369E-07 246.6 1027 5.857E+10 1.044E+14 0.000E+00 0.000E+00 54.9 0.000E+00 8.618E+15 2.312E+15 5.302E-07 246.3 1027 5.783E+10 1.031E+14 0.000E+00 0.000E+00 55.0 0.000E+00 8.510E+15 2.283E+15 5.236E-07 246.1 1027 5.711E+10 1.018E+14 0.000E+00 0.000E+00 55.1 0.000E+00 8.403E+15 2.254E+15 5.170E-07 245.8 1027 5.639E+10 1.005E+14 0.000E+00 0.000E+00 55.2 0.000E+00 8.298E+15 2.226E+15 5.105E-07 245.6 1027 5.568E+10 9.925E+13 0.000E+00 0.000E+00 55.3 0.000E+00 8.193E+15 2.198E+15 5.041E-07 245.3 1027 5.498E+10 9.800E+13 0.000E+00 0.000E+00 55.4 0.000E+00 8.090E+15 2.170E+15 4.977E-07 245.1 1027 5.429E+10 9.677E+13 0.000E+00 0.000E+00 55.5 0.000E+00 7.988E+15 2.143E+15 4.914E-07 244.8 1027 5.360E+10 9.555E+13 0.000E+00 0.000E+00 55.6 0.000E+00 7.887E+15 2.116E+15 4.852E-07 244.6 1027 5.293E+10 9.434E+13 0.000E+00 0.000E+00 55.7 0.000E+00 7.787E+15 2.089E+15 4.791E-07 244.3 1027 5.226E+10 9.315E+13 0.000E+00 0.000E+00 55.8 0.000E+00 7.689E+15 2.063E+15 4.730E-07 244.1 1027 5.160E+10 9.197E+13 0.000E+00 0.000E+00 55.9 0.000E+00 7.591E+15 2.036E+15 4.670E-07 243.9 1027 5.094E+10 9.080E+13 0.000E+00 0.000E+00 56.0 0.000E+00 7.495E+15 2.011E+15 4.611E-07 243.6 1027 5.030E+10 8.965E+13 0.000E+00 0.000E+00 56.1 0.000E+00 7.399E+15 1.985E+15 4.553E-07 243.4 1027 4.966E+10 8.851E+13 0.000E+00 0.000E+00 56.2 0.000E+00 7.305E+15 1.960E+15 4.495E-07 243.1 1027 4.902E+10 8.738E+13 0.000E+00 0.000E+00 56.3 0.000E+00 7.212E+15 1.935E+15 4.437E-07 242.9 1027 4.840E+10 8.627E+13 0.000E+00 0.000E+00 56.4 0.000E+00 7.120E+15 1.910E+15 4.381E-07 242.7 1027 4.778E+10 8.517E+13 0.000E+00 0.000E+00 56.5 0.000E+00 7.029E+15 1.886E+15 4.325E-07 242.4 1027 4.717E+10 8.408E+13 0.000E+00 0.000E+00 56.6 0.000E+00 6.939E+15 1.862E+15 4.269E-07 242.2 1027 4.657E+10 8.301E+13 0.000E+00 0.000E+00 56.7 0.000E+00 6.851E+15 1.838E+15 4.215E-07 242.0 1027 4.597E+10 8.194E+13 0.000E+00 0.000E+00 56.8 0.000E+00 6.763E+15 1.814E+15 4.161E-07 241.7 1027 4.538E+10 8.089E+13 0.000E+00 0.000E+00 56.9 0.000E+00 6.676E+15 1.791E+15 4.107E-07 241.5 1027 4.480E+10 7.985E+13 0.000E+00 0.000E+00 57.0 0.000E+00 6.590E+15 1.768E+15 4.055E-07 241.3 1027 4.422E+10 7.883E+13 0.000E+00 0.000E+00 57.1 0.000E+00 6.505E+15 1.745E+15 4.002E-07 241.0 1027 4.366E+10 7.781E+13 0.000E+00 0.000E+00 57.2 0.000E+00 6.422E+15 1.723E+15 3.951E-07 240.8 1027 4.309E+10 7.681E+13 0.000E+00 0.000E+00 57.3 0.000E+00 6.339E+15 1.700E+15 3.900E-07 240.6 1027 4.254E+10 7.582E+13 0.000E+00 0.000E+00 57.4 0.000E+00 6.257E+15 1.679E+15 3.850E-07 240.3 1027 4.199E+10 7.484E+13 0.000E+00 0.000E+00 57.5 0.000E+00 6.176E+15 1.657E+15 3.800E-07 240.1 1027 4.145E+10 7.387E+13 0.000E+00 0.000E+00 57.6 0.000E+00 6.096E+15 1.635E+15 3.751E-07 239.9 1027 4.091E+10 7.292E+13 0.000E+00 0.000E+00 57.7 0.000E+00 6.017E+15 1.614E+15 3.702E-07 239.7 1027 4.038E+10 7.197E+13 0.000E+00 0.000E+00 57.8 0.000E+00 5.939E+15 1.593E+15 3.654E-07 239.4 1027 3.985E+10 7.104E+13 0.000E+00 0.000E+00 57.9 0.000E+00 5.862E+15 1.573E+15 3.606E-07 239.2 1027 3.934E+10 7.012E+13 0.000E+00 0.000E+00 58.0 0.000E+00 5.786E+15 1.552E+15 3.560E-07 239.0 1027 3.883E+10 6.920E+13 0.000E+00 0.000E+00 58.1 0.000E+00 5.710E+15 1.532E+15 3.513E-07 238.8 1027 3.832E+10 6.830E+13 0.000E+00 0.000E+00 58.2 0.000E+00 5.636E+15 1.512E+15 3.467E-07 238.5 1027 3.782E+10 6.741E+13 0.000E+00 0.000E+00 58.3 0.000E+00 5.562E+15 1.492E+15 3.422E-07 238.3 1027 3.733E+10 6.653E+13 0.000E+00 0.000E+00 58.4 0.000E+00 5.489E+15 1.473E+15 3.377E-07 238.1 1027 3.684E+10 6.566E+13 0.000E+00 0.000E+00 58.5 0.000E+00 5.418E+15 1.453E+15 3.333E-07 237.9 1027 3.636E+10 6.480E+13 0.000E+00 0.000E+00 58.6 0.000E+00 5.347E+15 1.434E+15 3.290E-07 237.7 1027 3.588E+10 6.395E+13 0.000E+00 0.000E+00 58.7 0.000E+00 5.277E+15 1.416E+15 3.246E-07 237.5 1027 3.541E+10 6.312E+13 0.000E+00 0.000E+00 58.8 0.000E+00 5.207E+15 1.397E+15 3.204E-07 237.2 1027 3.494E+10 6.229E+13 0.000E+00 0.000E+00 58.9 0.000E+00 5.139E+15 1.379E+15 3.162E-07 237.0 1027 3.448E+10 6.147E+13 0.000E+00 0.000E+00 59.0 0.000E+00 5.071E+15 1.360E+15 3.120E-07 236.8 1027 3.403E+10 6.066E+13 0.000E+00 0.000E+00 59.1 0.000E+00 5.004E+15 1.343E+15 3.079E-07 236.6 1027 3.358E+10 5.986E+13 0.000E+00 0.000E+00 59.2 0.000E+00 4.938E+15 1.325E+15 3.038E-07 236.4 1027 3.314E+10 5.907E+13 0.000E+00 0.000E+00 59.3 0.000E+00 4.873E+15 1.307E+15 2.998E-07 236.2 1027 3.270E+10 5.829E+13 0.000E+00 0.000E+00 59.4 0.000E+00 4.809E+15 1.290E+15 2.958E-07 236.0 1027 3.227E+10 5.752E+13 0.000E+00 0.000E+00 59.5 0.000E+00 4.745E+15 1.273E+15 2.919E-07 235.8 1027 3.184E+10 5.676E+13 0.000E+00 0.000E+00 59.6 0.000E+00 4.682E+15 1.256E+15 2.881E-07 235.6 1027 3.142E+10 5.600E+13 0.000E+00 0.000E+00 59.7 0.000E+00 4.620E+15 1.239E+15 2.842E-07 235.4 1027 3.100E+10 5.526E+13 0.000E+00 0.000E+00 59.8 0.000E+00 4.558E+15 1.223E+15 2.805E-07 235.2 1027 3.059E+10 5.453E+13 0.000E+00 0.000E+00 59.9 0.000E+00 4.498E+15 1.207E+15 2.767E-07 235.0 1027 3.018E+10 5.380E+13 0.000E+00 0.000E+00 60.0 0.000E+00 4.438E+15 1.191E+15 2.730E-07 234.7 1027 2.978E+10 5.308E+13 0.000E+00 0.000E+00 60.1 0.000E+00 4.379E+15 1.175E+15 2.694E-07 234.5 1027 2.938E+10 5.238E+13 0.000E+00 0.000E+00 60.2 0.000E+00 4.320E+15 1.159E+15 2.658E-07 234.3 1027 2.899E+10 5.168E+13 0.000E+00 0.000E+00 60.3 0.000E+00 4.263E+15 1.144E+15 2.623E-07 234.1 1027 2.860E+10 5.099E+13 0.000E+00 0.000E+00 60.4 0.000E+00 4.206E+15 1.128E+15 2.587E-07 234.0 1027 2.822E+10 5.030E+13 0.000E+00 0.000E+00 60.5 0.000E+00 4.149E+15 1.113E+15 2.553E-07 233.8 1027 2.784E+10 4.963E+13 0.000E+00 0.000E+00 60.6 0.000E+00 4.094E+15 1.098E+15 2.519E-07 233.6 1027 2.747E+10 4.897E+13 0.000E+00 0.000E+00 60.7 0.000E+00 4.039E+15 1.083E+15 2.485E-07 233.4 1027 2.710E+10 4.831E+13 0.000E+00 0.000E+00 60.8 0.000E+00 3.984E+15 1.069E+15 2.451E-07 233.2 1027 2.674E+10 4.766E+13 0.000E+00 0.000E+00 60.9 0.000E+00 3.931E+15 1.054E+15 2.418E-07 233.0 1027 2.638E+10 4.702E+13 0.000E+00 0.000E+00 61.0 0.000E+00 3.878E+15 1.040E+15 2.386E-07 232.8 1027 2.602E+10 4.638E+13 0.000E+00 0.000E+00 61.1 0.000E+00 3.825E+15 1.026E+15 2.354E-07 232.6 1027 2.567E+10 4.576E+13 0.000E+00 0.000E+00 61.2 0.000E+00 3.774E+15 1.012E+15 2.322E-07 232.4 1027 2.532E+10 4.514E+13 0.000E+00 0.000E+00 61.3 0.000E+00 3.723E+15 9.987E+14 2.290E-07 232.2 1027 2.498E+10 4.453E+13 0.000E+00 0.000E+00 61.4 0.000E+00 3.672E+15 9.852E+14 2.259E-07 232.0 1027 2.464E+10 4.393E+13 0.000E+00 0.000E+00 61.5 0.000E+00 3.623E+15 9.718E+14 2.229E-07 231.8 1027 2.431E+10 4.333E+13 0.000E+00 0.000E+00 61.6 0.000E+00 3.574E+15 9.587E+14 2.199E-07 231.7 1027 2.398E+10 4.274E+13 0.000E+00 0.000E+00 61.7 0.000E+00 3.525E+15 9.457E+14 2.169E-07 231.5 1027 2.366E+10 4.216E+13 0.000E+00 0.000E+00 61.8 0.000E+00 3.477E+15 9.328E+14 2.139E-07 231.3 1027 2.333E+10 4.159E+13 0.000E+00 0.000E+00 61.9 0.000E+00 3.430E+15 9.201E+14 2.110E-07 231.1 1027 2.302E+10 4.103E+13 0.000E+00 0.000E+00 62.0 0.000E+00 3.383E+15 9.076E+14 2.081E-07 230.9 1027 2.270E+10 4.047E+13 0.000E+00 0.000E+00 62.1 0.000E+00 3.337E+15 8.952E+14 2.053E-07 230.8 1027 2.239E+10 3.991E+13 0.000E+00 0.000E+00 62.2 0.000E+00 3.291E+15 8.830E+14 2.025E-07 230.6 1027 2.209E+10 3.937E+13 0.000E+00 0.000E+00 62.3 0.000E+00 3.246E+15 8.709E+14 1.997E-07 230.4 1027 2.179E+10 3.883E+13 0.000E+00 0.000E+00 62.4 0.000E+00 3.202E+15 8.590E+14 1.970E-07 230.2 1027 2.149E+10 3.830E+13 0.000E+00 0.000E+00 62.5 0.000E+00 3.158E+15 8.472E+14 1.943E-07 230.0 1027 2.119E+10 3.778E+13 0.000E+00 0.000E+00 62.6 0.000E+00 3.115E+15 8.354E+14 1.916E-07 229.9 1027 2.091E+10 3.726E+13 0.000E+00 0.000E+00 62.7 0.000E+00 3.072E+15 8.237E+14 1.890E-07 229.7 1027 2.062E+10 3.674E+13 0.000E+00 0.000E+00 62.8 0.000E+00 3.030E+15 8.122E+14 1.864E-07 229.5 1027 2.034E+10 3.624E+13 0.000E+00 0.000E+00 62.9 0.000E+00 2.988E+15 8.008E+14 1.838E-07 229.4 1027 2.007E+10 3.574E+13 0.000E+00 0.000E+00 63.0 0.000E+00 2.947E+15 7.895E+14 1.813E-07 229.2 1027 1.979E+10 3.525E+13 0.000E+00 0.000E+00 63.1 0.000E+00 2.906E+15 7.784E+14 1.787E-07 229.0 1027 1.952E+10 3.476E+13 0.000E+00 0.000E+00 63.2 0.000E+00 2.866E+15 7.675E+14 1.763E-07 228.9 1027 1.926E+10 3.428E+13 0.000E+00 0.000E+00 63.3 0.000E+00 2.827E+15 7.567E+14 1.738E-07 228.7 1027 1.899E+10 3.381E+13 0.000E+00 0.000E+00 63.4 0.000E+00 2.788E+15 7.460E+14 1.714E-07 228.5 1027 1.873E+10 3.334E+13 0.000E+00 0.000E+00 63.5 0.000E+00 2.749E+15 7.355E+14 1.690E-07 228.4 1027 1.848E+10 3.287E+13 0.000E+00 0.000E+00 63.6 0.000E+00 2.711E+15 7.251E+14 1.667E-07 228.2 1027 1.823E+10 3.242E+13 0.000E+00 0.000E+00 63.7 0.000E+00 2.673E+15 7.149E+14 1.644E-07 228.0 1027 1.798E+10 3.197E+13 0.000E+00 0.000E+00 63.8 0.000E+00 2.636E+15 7.048E+14 1.621E-07 227.9 1027 1.773E+10 3.152E+13 0.000E+00 0.000E+00 63.9 0.000E+00 2.600E+15 6.948E+14 1.598E-07 227.7 1027 1.749E+10 3.108E+13 0.000E+00 0.000E+00 64.0 0.000E+00 2.563E+15 6.849E+14 1.576E-07 227.6 1027 1.724E+10 3.065E+13 0.000E+00 0.000E+00 64.1 0.000E+00 2.528E+15 6.752E+14 1.554E-07 227.4 1027 1.701E+10 3.022E+13 0.000E+00 0.000E+00 64.2 0.000E+00 2.492E+15 6.656E+14 1.532E-07 227.3 1027 1.677E+10 2.980E+13 0.000E+00 0.000E+00 64.3 0.000E+00 2.458E+15 6.561E+14 1.510E-07 227.1 1027 1.654E+10 2.938E+13 0.000E+00 0.000E+00 64.4 0.000E+00 2.423E+15 6.468E+14 1.489E-07 227.0 1027 1.631E+10 2.897E+13 0.000E+00 0.000E+00 64.5 0.000E+00 2.389E+15 6.376E+14 1.468E-07 226.8 1027 1.609E+10 2.857E+13 0.000E+00 0.000E+00 64.6 0.000E+00 2.356E+15 6.285E+14 1.448E-07 226.7 1027 1.587E+10 2.817E+13 0.000E+00 0.000E+00 64.7 0.000E+00 2.323E+15 6.195E+14 1.427E-07 226.5 1027 1.565E+10 2.777E+13 0.000E+00 0.000E+00 64.8 0.000E+00 2.290E+15 6.107E+14 1.407E-07 226.4 1027 1.543E+10 2.738E+13 0.000E+00 0.000E+00 64.9 0.000E+00 2.258E+15 6.019E+14 1.387E-07 226.2 1027 1.521E+10 2.700E+13 0.000E+00 0.000E+00 65.0 0.000E+00 2.227E+15 5.933E+14 1.368E-07 226.1 1027 1.500E+10 2.662E+13 0.000E+00 0.000E+00 65.1 0.000E+00 2.195E+15 5.848E+14 1.348E-07 225.9 1027 1.479E+10 2.624E+13 0.000E+00 0.000E+00 65.2 0.000E+00 2.164E+15 5.764E+14 1.329E-07 225.8 1027 1.459E+10 2.587E+13 0.000E+00 0.000E+00 65.3 0.000E+00 2.134E+15 5.681E+14 1.311E-07 225.6 1027 1.439E+10 2.551E+13 0.000E+00 0.000E+00 65.4 0.000E+00 2.104E+15 5.600E+14 1.292E-07 225.5 1027 1.418E+10 2.515E+13 0.000E+00 0.000E+00 65.5 0.000E+00 2.074E+15 5.519E+14 1.274E-07 225.4 1027 1.399E+10 2.479E+13 0.000E+00 0.000E+00 65.6 0.000E+00 2.045E+15 5.440E+14 1.256E-07 225.2 1027 1.379E+10 2.444E+13 0.000E+00 0.000E+00 65.7 0.000E+00 2.016E+15 5.361E+14 1.238E-07 225.1 1027 1.360E+10 2.409E+13 0.000E+00 0.000E+00 65.8 0.000E+00 1.987E+15 5.284E+14 1.220E-07 224.9 1027 1.341E+10 2.375E+13 0.000E+00 0.000E+00 65.9 0.000E+00 1.959E+15 5.207E+14 1.203E-07 224.8 1027 1.322E+10 2.341E+13 0.000E+00 0.000E+00 66.0 0.000E+00 1.931E+15 5.132E+14 1.186E-07 224.7 1027 1.303E+10 2.308E+13 0.000E+00 0.000E+00 66.1 0.000E+00 1.904E+15 5.058E+14 1.169E-07 224.6 1027 1.285E+10 2.275E+13 0.000E+00 0.000E+00 66.2 0.000E+00 1.877E+15 4.985E+14 1.152E-07 224.4 1027 1.267E+10 2.243E+13 0.000E+00 0.000E+00 66.3 0.000E+00 1.850E+15 4.912E+14 1.136E-07 224.3 1027 1.249E+10 2.211E+13 0.000E+00 0.000E+00 66.4 0.000E+00 1.824E+15 4.841E+14 1.119E-07 224.2 1027 1.232E+10 2.179E+13 0.000E+00 0.000E+00 66.5 0.000E+00 1.798E+15 4.771E+14 1.103E-07 224.0 1027 1.214E+10 2.148E+13 0.000E+00 0.000E+00 66.6 0.000E+00 1.772E+15 4.701E+14 1.087E-07 223.9 1027 1.197E+10 2.117E+13 0.000E+00 0.000E+00 66.7 0.000E+00 1.747E+15 4.633E+14 1.072E-07 223.8 1027 1.180E+10 2.087E+13 0.000E+00 0.000E+00 66.8 0.000E+00 1.722E+15 4.566E+14 1.056E-07 223.7 1027 1.164E+10 2.057E+13 0.000E+00 0.000E+00 66.9 0.000E+00 1.697E+15 4.499E+14 1.041E-07 223.5 1027 1.147E+10 2.028E+13 0.000E+00 0.000E+00 67.0 0.000E+00 1.673E+15 4.433E+14 1.026E-07 223.4 1027 1.131E+10 1.999E+13 0.000E+00 0.000E+00 67.1 0.000E+00 1.649E+15 4.369E+14 1.012E-07 223.3 1027 1.115E+10 1.970E+13 0.000E+00 0.000E+00 67.2 0.000E+00 1.625E+15 4.305E+14 9.970E-08 223.2 1027 1.099E+10 1.942E+13 0.000E+00 0.000E+00 67.3 0.000E+00 1.602E+15 4.242E+14 9.826E-08 223.1 1027 1.083E+10 1.914E+13 0.000E+00 0.000E+00 67.4 0.000E+00 1.579E+15 4.180E+14 9.684E-08 223.0 1027 1.068E+10 1.886E+13 0.000E+00 0.000E+00 67.5 0.000E+00 1.556E+15 4.119E+14 9.544E-08 222.8 1027 1.053E+10 1.859E+13 0.000E+00 0.000E+00 67.6 0.000E+00 1.534E+15 4.058E+14 9.406E-08 222.7 1027 1.038E+10 1.832E+13 0.000E+00 0.000E+00 67.7 0.000E+00 1.512E+15 3.999E+14 9.270E-08 222.6 1027 1.023E+10 1.806E+13 0.000E+00 0.000E+00 67.8 0.000E+00 1.490E+15 3.940E+14 9.136E-08 222.5 1027 1.008E+10 1.780E+13 0.000E+00 0.000E+00 67.9 0.000E+00 1.468E+15 3.882E+14 9.003E-08 222.4 1027 9.941E+09 1.754E+13 0.000E+00 0.000E+00 68.0 0.000E+00 1.447E+15 3.825E+14 8.873E-08 222.3 1027 9.799E+09 1.729E+13 0.000E+00 0.000E+00 68.1 0.000E+00 1.426E+15 3.768E+14 8.744E-08 222.2 1027 9.658E+09 1.704E+13 0.000E+00 0.000E+00 68.2 0.000E+00 1.406E+15 3.713E+14 8.617E-08 222.1 1027 9.520E+09 1.679E+13 0.000E+00 0.000E+00 68.3 0.000E+00 1.385E+15 3.658E+14 8.491E-08 222.0 1027 9.384E+09 1.655E+13 0.000E+00 0.000E+00 68.4 0.000E+00 1.365E+15 3.604E+14 8.368E-08 221.9 1027 9.249E+09 1.630E+13 0.000E+00 0.000E+00 68.5 0.000E+00 1.345E+15 3.551E+14 8.246E-08 221.8 1027 9.117E+09 1.607E+13 0.000E+00 0.000E+00 68.6 0.000E+00 1.326E+15 3.498E+14 8.126E-08 221.7 1027 8.986E+09 1.583E+13 0.000E+00 0.000E+00 68.7 0.000E+00 1.307E+15 3.447E+14 8.007E-08 221.6 1027 8.857E+09 1.560E+13 0.000E+00 0.000E+00 68.8 0.000E+00 1.288E+15 3.396E+14 7.890E-08 221.5 1027 8.729E+09 1.538E+13 0.000E+00 0.000E+00 68.9 0.000E+00 1.269E+15 3.345E+14 7.775E-08 221.4 1027 8.604E+09 1.515E+13 0.000E+00 0.000E+00 69.0 0.000E+00 1.250E+15 3.296E+14 7.661E-08 221.3 1027 8.480E+09 1.493E+13 0.000E+00 0.000E+00 69.1 0.000E+00 1.232E+15 3.247E+14 7.549E-08 221.2 1027 8.357E+09 1.471E+13 0.000E+00 0.000E+00 69.2 0.000E+00 1.214E+15 3.198E+14 7.438E-08 221.1 1027 8.237E+09 1.450E+13 0.000E+00 0.000E+00 69.3 0.000E+00 1.196E+15 3.151E+14 7.329E-08 221.0 1027 8.118E+09 1.429E+13 0.000E+00 0.000E+00 69.4 0.000E+00 1.179E+15 3.104E+14 7.222E-08 220.9 1027 8.001E+09 1.408E+13 0.000E+00 0.000E+00 69.5 0.000E+00 1.162E+15 3.058E+14 7.116E-08 220.9 1027 7.885E+09 1.387E+13 0.000E+00 0.000E+00 69.6 0.000E+00 1.145E+15 3.012E+14 7.011E-08 220.8 1027 7.771E+09 1.367E+13 0.000E+00 0.000E+00 69.7 0.000E+00 1.128E+15 2.967E+14 6.908E-08 220.7 1027 7.658E+09 1.347E+13 0.000E+00 0.000E+00 69.8 0.000E+00 1.111E+15 2.923E+14 6.806E-08 220.6 1027 7.547E+09 1.327E+13 0.000E+00 0.000E+00 69.9 0.000E+00 1.095E+15 2.879E+14 6.706E-08 220.5 1027 7.438E+09 1.307E+13 0.000E+00 0.000E+00 70.0 0.000E+00 1.079E+15 2.836E+14 6.607E-08 220.4 1027 7.330E+09 1.288E+13 0.000E+00 0.000E+00 70.1 0.000E+00 1.063E+15 2.794E+14 6.510E-08 220.4 1027 7.223E+09 1.269E+13 0.000E+00 0.000E+00 70.2 0.000E+00 1.047E+15 2.752E+14 6.414E-08 220.3 1027 7.118E+09 1.251E+13 0.000E+00 0.000E+00 70.3 0.000E+00 1.032E+15 2.711E+14 6.319E-08 220.2 1027 7.014E+09 1.232E+13 0.000E+00 0.000E+00 70.4 0.000E+00 1.017E+15 2.670E+14 6.225E-08 220.1 1027 6.912E+09 1.214E+13 0.000E+00 0.000E+00 70.5 0.000E+00 1.002E+15 2.630E+14 6.133E-08 220.1 1027 6.812E+09 1.196E+13 0.000E+00 0.000E+00 70.6 0.000E+00 9.871E+14 2.591E+14 6.043E-08 220.0 1027 6.712E+09 1.178E+13 0.000E+00 0.000E+00 70.7 0.000E+00 9.726E+14 2.552E+14 5.953E-08 219.9 1027 6.614E+09 1.161E+13 0.000E+00 0.000E+00 70.8 0.000E+00 9.582E+14 2.513E+14 5.865E-08 219.9 1027 6.518E+09 1.144E+13 0.000E+00 0.000E+00 70.9 0.000E+00 9.440E+14 2.475E+14 5.778E-08 219.8 1027 6.422E+09 1.127E+13 0.000E+00 0.000E+00 71.0 0.000E+00 9.301E+14 2.438E+14 5.692E-08 219.7 1027 6.328E+09 1.110E+13 0.000E+00 0.000E+00 71.1 0.000E+00 9.163E+14 2.401E+14 5.607E-08 219.7 1027 6.236E+09 1.094E+13 0.000E+00 0.000E+00 71.2 0.000E+00 9.028E+14 2.365E+14 5.524E-08 219.6 1027 6.144E+09 1.077E+13 0.000E+00 0.000E+00 71.3 0.000E+00 8.894E+14 2.330E+14 5.442E-08 219.5 1027 6.054E+09 1.061E+13 0.000E+00 0.000E+00 71.4 0.000E+00 8.762E+14 2.294E+14 5.361E-08 219.5 1027 5.966E+09 1.046E+13 0.000E+00 0.000E+00 71.5 0.000E+00 8.632E+14 2.260E+14 5.281E-08 219.4 1027 5.878E+09 1.030E+13 0.000E+00 0.000E+00 71.6 0.000E+00 8.504E+14 2.226E+14 5.202E-08 219.4 1027 5.792E+09 1.015E+13 0.000E+00 0.000E+00 71.7 0.000E+00 8.377E+14 2.192E+14 5.125E-08 219.3 1027 5.707E+09 9.998E+12 0.000E+00 0.000E+00 71.8 0.000E+00 8.253E+14 2.159E+14 5.048E-08 219.2 1027 5.623E+09 9.849E+12 0.000E+00 0.000E+00 71.9 0.000E+00 8.130E+14 2.126E+14 4.973E-08 219.2 1027 5.540E+09 9.702E+12 0.000E+00 0.000E+00 72.0 0.000E+00 8.009E+14 2.094E+14 4.898E-08 219.1 1027 5.458E+09 9.557E+12 0.000E+00 0.000E+00 72.1 0.000E+00 7.890E+14 2.062E+14 4.825E-08 219.1 1027 5.378E+09 9.415E+12 0.000E+00 0.000E+00 72.2 0.000E+00 7.772E+14 2.031E+14 4.753E-08 219.0 1027 5.299E+09 9.274E+12 0.000E+00 0.000E+00 72.3 0.000E+00 7.656E+14 2.000E+14 4.682E-08 219.0 1027 5.220E+09 9.136E+12 0.000E+00 0.000E+00 72.4 0.000E+00 7.542E+14 1.969E+14 4.611E-08 219.0 1027 5.143E+09 8.999E+12 0.000E+00 0.000E+00 72.6 6.109E+06 7.324E+14 1.912E+14 4.478E-08 218.9 1027 4.997E+09 8.739E+12 3.005E-29 2.674E+04 72.7 6.724E+06 7.215E+14 1.883E+14 4.411E-08 218.8 1027 4.923E+09 8.608E+12 1.355E-27 2.694E+04 72.8 7.401E+06 7.107E+14 1.854E+14 4.345E-08 218.8 1027 4.851E+09 8.479E+12 5.209E-26 2.715E+04 72.9 8.145E+06 7.001E+14 1.826E+14 4.280E-08 218.7 1027 4.780E+09 8.352E+12 1.718E-24 2.735E+04 73.0 8.962E+06 6.896E+14 1.798E+14 4.215E-08 218.7 1027 4.710E+09 8.227E+12 4.888E-23 2.756E+04 73.1 9.861E+06 6.793E+14 1.771E+14 4.152E-08 218.6 1027 4.640E+09 8.104E+12 1.206E-21 2.777E+04 73.2 1.085E+07 6.692E+14 1.744E+14 4.090E-08 218.6 1027 4.572E+09 7.983E+12 2.595E-20 2.798E+04 73.3 1.193E+07 6.592E+14 1.718E+14 4.029E-08 218.5 1027 4.505E+09 7.863E+12 4.893E-19 2.819E+04 73.4 1.312E+07 6.494E+14 1.692E+14 3.969E-08 218.5 1027 4.439E+09 7.746E+12 8.130E-18 2.841E+04 73.5 1.443E+07 6.397E+14 1.666E+14 3.909E-08 218.4 1027 4.374E+09 7.630E+12 1.196E-16 2.863E+04 73.6 1.587E+07 6.302E+14 1.641E+14 3.851E-08 218.4 1027 4.310E+09 7.516E+12 1.564E-15 2.885E+04 73.7 1.744E+07 6.208E+14 1.616E+14 3.793E-08 218.3 1027 4.247E+09 7.403E+12 1.829E-14 2.907E+04 73.8 1.917E+07 6.115E+14 1.592E+14 3.736E-08 218.3 1027 4.185E+09 7.292E+12 1.919E-13 2.929E+04 73.9 2.106E+07 6.024E+14 1.568E+14 3.680E-08 218.2 1027 4.124E+09 7.183E+12 1.815E-12 2.952E+04 74.0 2.314E+07 5.934E+14 1.544E+14 3.625E-08 218.1 1027 4.063E+09 7.076E+12 1.555E-11 2.975E+04 74.1 2.542E+07 5.846E+14 1.521E+14 3.571E-08 218.1 1027 4.004E+09 6.970E+12 1.211E-10 2.998E+04 74.2 2.792E+07 5.758E+14 1.498E+14 3.518E-08 218.0 1027 3.945E+09 6.866E+12 8.601E-10 3.021E+04 74.3 3.065E+07 5.673E+14 1.475E+14 3.465E-08 218.0 1027 3.888E+09 6.763E+12 5.598E-09 3.044E+04 74.4 3.365E+07 5.588E+14 1.453E+14 3.413E-08 217.9 1027 3.831E+09 6.662E+12 3.350E-08 3.068E+04 74.5 3.692E+07 5.505E+14 1.431E+14 3.362E-08 217.8 1027 3.775E+09 6.563E+12 1.850E-07 3.092E+04 74.6 4.051E+07 5.423E+14 1.409E+14 3.312E-08 217.8 1027 3.720E+09 6.464E+12 9.454E-07 3.116E+04 74.7 4.444E+07 5.342E+14 1.388E+14 3.262E-08 217.7 1027 3.666E+09 6.368E+12 4.488E-06 3.141E+04 74.8 4.873E+07 5.262E+14 1.367E+14 3.214E-08 217.6 1027 3.612E+09 6.273E+12 1.985E-05 3.165E+04 74.9 5.343E+07 5.184E+14 1.346E+14 3.165E-08 217.6 1027 3.560E+09 6.179E+12 8.207E-05 3.190E+04 75.0 5.856E+07 5.107E+14 1.326E+14 3.118E-08 217.5 1027 3.508E+09 6.087E+12 3.180E-04 3.215E+04 75.1 6.417E+07 5.031E+14 1.306E+14 3.072E-08 217.4 1027 3.457E+09 5.996E+12 1.158E-03 3.241E+04 75.2 7.029E+07 4.956E+14 1.286E+14 3.026E-08 217.4 1027 3.406E+09 5.906E+12 3.975E-03 3.266E+04 75.3 7.698E+07 4.882E+14 1.266E+14 2.980E-08 217.3 1027 3.357E+09 5.818E+12 1.289E-02 3.292E+04 75.4 8.427E+07 4.809E+14 1.247E+14 2.936E-08 217.2 1027 3.308E+09 5.731E+12 3.960E-02 3.318E+04 75.5 9.223E+07 4.738E+14 1.228E+14 2.892E-08 217.1 1027 3.260E+09 5.645E+12 1.155E-01 3.345E+04 75.6 1.009E+08 4.667E+14 1.210E+14 2.849E-08 217.1 1027 3.212E+09 5.561E+12 3.206E-01 3.371E+04 75.7 1.104E+08 4.597E+14 1.191E+14 2.806E-08 217.0 1027 3.166E+09 5.478E+12 8.487E-01 3.398E+04 75.8 1.207E+08 4.529E+14 1.173E+14 2.764E-08 216.9 1027 3.120E+09 5.396E+12 2.147E+00 3.425E+04 75.9 1.319E+08 4.462E+14 1.155E+14 2.723E-08 216.8 1027 3.075E+09 5.315E+12 5.203E+00 3.453E+04 76.0 1.441E+08 4.395E+14 1.138E+14 2.682E-08 216.7 1027 3.030E+09 5.236E+12 1.210E+01 3.480E+04 76.1 1.574E+08 4.330E+14 1.121E+14 2.642E-08 216.7 1027 2.986E+09 5.157E+12 2.704E+01 3.508E+04 76.2 1.719E+08 4.265E+14 1.104E+14 2.603E-08 216.6 1027 2.943E+09 5.080E+12 5.819E+01 3.536E+04 76.3 1.876E+08 4.202E+14 1.087E+14 2.564E-08 216.5 1027 2.900E+09 5.004E+12 1.208E+02 3.565E+04 76.4 2.047E+08 4.139E+14 1.071E+14 2.525E-08 216.4 1027 2.858E+09 4.929E+12 2.423E+02 3.593E+04 76.5 2.233E+08 4.078E+14 1.054E+14 2.488E-08 216.3 1027 2.817E+09 4.856E+12 4.704E+02 3.622E+04 76.6 2.434E+08 4.017E+14 1.038E+14 2.450E-08 216.2 1027 2.776E+09 4.783E+12 8.848E+02 3.652E+04 76.7 2.653E+08 3.957E+14 1.023E+14 2.414E-08 216.1 1027 2.736E+09 4.712E+12 1.615E+03 3.681E+04 76.8 2.891E+08 3.898E+14 1.007E+14 2.378E-08 216.0 1027 2.696E+09 4.641E+12 2.866E+03 3.711E+04 76.9 3.148E+08 3.840E+14 9.918E+13 2.342E-08 215.9 1027 2.657E+09 4.572E+12 4.948E+03 3.741E+04 77.0 3.427E+08 3.783E+14 9.768E+13 2.307E-08 215.9 1027 2.619E+09 4.503E+12 8.324E+03 3.771E+04 77.1 3.729E+08 3.727E+14 9.620E+13 2.273E-08 215.8 1027 2.581E+09 4.436E+12 1.366E+04 3.802E+04 77.2 4.056E+08 3.671E+14 9.474E+13 2.239E-08 215.7 1027 2.544E+09 4.370E+12 2.189E+04 3.833E+04 77.3 4.410E+08 3.617E+14 9.330E+13 2.205E-08 215.6 1027 2.507E+09 4.304E+12 3.428E+04 3.864E+04 77.4 4.793E+08 3.563E+14 9.188E+13 2.172E-08 215.5 1027 2.471E+09 4.240E+12 5.256E+04 3.895E+04 77.5 5.206E+08 3.510E+14 9.049E+13 2.140E-08 215.4 1027 2.435E+09 4.176E+12 7.894E+04 3.927E+04 77.6 5.654E+08 3.457E+14 8.911E+13 2.108E-08 215.3 1027 2.400E+09 4.114E+12 1.162E+05 3.959E+04 77.7 6.136E+08 3.406E+14 8.776E+13 2.076E-08 215.2 1027 2.366E+09 4.052E+12 1.680E+05 3.992E+04 77.8 6.658E+08 3.355E+14 8.643E+13 2.045E-08 215.0 1027 2.332E+09 3.992E+12 2.385E+05 4.024E+04 77.9 7.220E+08 3.305E+14 8.511E+13 2.014E-08 214.9 1027 2.298E+09 3.932E+12 3.329E+05 4.057E+04 78.0 7.826E+08 3.256E+14 8.382E+13 1.984E-08 214.8 1027 2.265E+09 3.873E+12 4.571E+05 4.091E+04 78.1 8.479E+08 3.207E+14 8.255E+13 1.955E-08 214.7 1027 2.232E+09 3.815E+12 6.179E+05 4.124E+04 78.2 9.183E+08 3.160E+14 8.129E+13 1.925E-08 214.6 1027 2.200E+09 3.758E+12 8.232E+05 4.158E+04 78.3 9.940E+08 3.113E+14 8.006E+13 1.897E-08 214.5 1027 2.169E+09 3.702E+12 1.081E+06 4.192E+04 78.4 1.076E+09 3.066E+14 7.884E+13 1.868E-08 214.4 1027 2.138E+09 3.646E+12 1.401E+06 4.227E+04 78.5 1.163E+09 3.021E+14 7.764E+13 1.840E-08 214.3 1027 2.107E+09 3.592E+12 1.792E+06 4.262E+04 78.6 1.257E+09 2.976E+14 7.646E+13 1.813E-08 214.2 1027 2.077E+09 3.538E+12 2.265E+06 4.297E+04 78.7 1.358E+09 2.931E+14 7.529E+13 1.786E-08 214.0 1027 2.047E+09 3.485E+12 2.829E+06 4.333E+04 78.8 1.467E+09 2.888E+14 7.415E+13 1.759E-08 213.9 1027 2.018E+09 3.433E+12 3.495E+06 4.368E+04 78.9 1.584E+09 2.845E+14 7.302E+13 1.732E-08 213.8 1027 1.989E+09 3.381E+12 4.272E+06 4.405E+04 79.0 1.708E+09 2.802E+14 7.191E+13 1.707E-08 213.7 1027 1.960E+09 3.330E+12 5.169E+06 4.441E+04 79.1 1.842E+09 2.760E+14 7.081E+13 1.681E-08 213.6 1027 1.932E+09 3.281E+12 6.194E+06 4.478E+04 79.2 1.986E+09 2.719E+14 6.973E+13 1.656E-08 213.4 1027 1.905E+09 3.231E+12 7.354E+06 4.515E+04 79.3 2.139E+09 2.679E+14 6.867E+13 1.631E-08 213.3 1027 1.877E+09 3.183E+12 8.655E+06 4.552E+04 79.4 2.303E+09 2.639E+14 6.762E+13 1.607E-08 213.2 1027 1.850E+09 3.135E+12 1.010E+07 4.590E+04 79.5 2.479E+09 2.599E+14 6.659E+13 1.582E-08 213.1 1027 1.824E+09 3.088E+12 1.170E+07 4.628E+04 79.6 2.667E+09 2.561E+14 6.557E+13 1.559E-08 212.9 1027 1.798E+09 3.042E+12 1.344E+07 4.667E+04 79.7 2.867E+09 2.522E+14 6.457E+13 1.535E-08 212.8 1027 1.772E+09 2.996E+12 1.534E+07 4.706E+04 79.8 3.081E+09 2.485E+14 6.359E+13 1.512E-08 212.7 1027 1.747E+09 2.951E+12 1.738E+07 4.745E+04 79.9 3.309E+09 2.448E+14 6.262E+13 1.490E-08 212.5 1027 1.722E+09 2.907E+12 1.956E+07 4.785E+04 80.0 3.552E+09 2.411E+14 6.166E+13 1.467E-08 212.4 1027 1.698E+09 2.863E+12 2.188E+07 4.824E+04 80.1 3.811E+09 2.375E+14 6.072E+13 1.445E-08 212.3 1027 1.673E+09 2.820E+12 2.432E+07 4.865E+04 80.2 4.087E+09 2.340E+14 5.979E+13 1.424E-08 212.1 1027 1.650E+09 2.777E+12 2.689E+07 4.905E+04 80.3 4.381E+09 2.305E+14 5.888E+13 1.402E-08 212.0 1027 1.626E+09 2.736E+12 2.957E+07 4.946E+04 80.4 4.693E+09 2.270E+14 5.798E+13 1.381E-08 211.9 1027 1.603E+09 2.695E+12 3.235E+07 4.988E+04 80.5 5.025E+09 2.236E+14 5.709E+13 1.360E-08 211.7 1027 1.580E+09 2.654E+12 3.521E+07 5.029E+04 80.6 5.377E+09 2.203E+14 5.621E+13 1.340E-08 211.6 1027 1.558E+09 2.614E+12 3.815E+07 5.071E+04 80.7 5.751E+09 2.170E+14 5.535E+13 1.320E-08 211.4 1027 1.536E+09 2.575E+12 4.114E+07 5.114E+04 80.8 6.148E+09 2.138E+14 5.451E+13 1.300E-08 211.3 1027 1.514E+09 2.536E+12 4.419E+07 5.157E+04 80.9 6.569E+09 2.106E+14 5.367E+13 1.280E-08 211.1 1027 1.492E+09 2.498E+12 4.726E+07 5.200E+04 81.0 7.015E+09 2.074E+14 5.285E+13 1.261E-08 211.0 1027 1.471E+09 2.460E+12 5.036E+07 5.244E+04 81.1 7.488E+09 2.043E+14 5.204E+13 1.242E-08 210.8 1027 1.451E+09 2.423E+12 5.346E+07 5.288E+04 81.2 7.988E+09 2.013E+14 5.124E+13 1.224E-08 210.7 1027 1.430E+09 2.386E+12 5.655E+07 5.332E+04 81.3 8.517E+09 1.983E+14 5.045E+13 1.205E-08 210.5 1027 1.410E+09 2.350E+12 5.962E+07 5.377E+04 81.4 9.076E+09 1.953E+14 4.968E+13 1.187E-08 210.4 1027 1.390E+09 2.315E+12 6.265E+07 5.422E+04 81.5 9.666E+09 1.924E+14 4.891E+13 1.169E-08 210.2 1027 1.370E+09 2.280E+12 6.564E+07 5.467E+04 81.6 1.029E+10 1.895E+14 4.816E+13 1.152E-08 210.1 1027 1.351E+09 2.245E+12 6.857E+07 5.513E+04 81.7 1.095E+10 1.866E+14 4.742E+13 1.134E-08 209.9 1027 1.332E+09 2.211E+12 7.144E+07 5.559E+04 81.8 1.164E+10 1.839E+14 4.669E+13 1.117E-08 209.7 1027 1.313E+09 2.178E+12 7.423E+07 5.606E+04 81.9 1.237E+10 1.811E+14 4.597E+13 1.100E-08 209.6 1027 1.294E+09 2.145E+12 7.693E+07 5.653E+04 82.0 1.314E+10 1.784E+14 4.527E+13 1.084E-08 209.4 1027 1.276E+09 2.113E+12 7.955E+07 5.701E+04 82.1 1.395E+10 1.757E+14 4.457E+13 1.067E-08 209.3 1027 1.258E+09 2.081E+12 8.206E+07 5.749E+04 82.2 1.480E+10 1.731E+14 4.388E+13 1.051E-08 209.1 1027 1.241E+09 2.049E+12 8.447E+07 5.797E+04 82.3 1.570E+10 1.705E+14 4.320E+13 1.035E-08 208.9 1027 1.223E+09 2.018E+12 8.678E+07 5.846E+04 82.4 1.664E+10 1.679E+14 4.254E+13 1.020E-08 208.8 1027 1.206E+09 1.987E+12 8.896E+07 5.895E+04 82.5 1.763E+10 1.654E+14 4.188E+13 1.004E-08 208.6 1027 1.189E+09 1.957E+12 9.104E+07 5.944E+04 82.6 1.866E+10 1.629E+14 4.123E+13 9.891E-09 208.4 1027 1.172E+09 1.928E+12 9.299E+07 5.994E+04 82.7 1.975E+10 1.605E+14 4.060E+13 9.741E-09 208.3 1027 1.156E+09 1.898E+12 9.483E+07 6.045E+04 82.8 2.089E+10 1.580E+14 3.997E+13 9.594E-09 208.1 1027 1.140E+09 1.870E+12 9.655E+07 6.096E+04 82.9 2.208E+10 1.557E+14 3.935E+13 9.449E-09 207.9 1027 1.124E+09 1.841E+12 9.814E+07 6.147E+04 83.0 2.333E+10 1.533E+14 3.874E+13 9.306E-09 207.7 1027 1.108E+09 1.813E+12 9.961E+07 6.199E+04 83.1 2.464E+10 1.510E+14 3.814E+13 9.165E-09 207.5 1027 1.093E+09 1.786E+12 1.010E+08 6.251E+04 83.2 2.600E+10 1.488E+14 3.755E+13 9.026E-09 207.4 1027 1.077E+09 1.758E+12 1.022E+08 6.303E+04 83.3 2.743E+10 1.465E+14 3.697E+13 8.889E-09 207.2 1027 1.062E+09 1.732E+12 1.033E+08 6.356E+04 83.4 2.892E+10 1.443E+14 3.639E+13 8.755E-09 207.0 1027 1.047E+09 1.705E+12 1.043E+08 6.410E+04 83.5 3.047E+10 1.421E+14 3.583E+13 8.622E-09 206.8 1027 1.033E+09 1.679E+12 1.052E+08 6.464E+04 83.6 3.209E+10 1.400E+14 3.527E+13 8.491E-09 206.6 1027 1.018E+09 1.654E+12 1.060E+08 6.518E+04 83.7 3.378E+10 1.379E+14 3.472E+13 8.362E-09 206.5 1027 1.004E+09 1.628E+12 1.067E+08 6.573E+04 83.8 3.554E+10 1.358E+14 3.418E+13 8.235E-09 206.3 1027 9.903E+08 1.603E+12 1.073E+08 6.628E+04 83.9 3.737E+10 1.337E+14 3.365E+13 8.110E-09 206.1 1027 9.765E+08 1.579E+12 1.078E+08 6.683E+04 84.0 3.927E+10 1.317E+14 3.313E+13 7.987E-09 205.9 1027 9.630E+08 1.555E+12 1.081E+08 6.739E+04 84.1 4.125E+10 1.297E+14 3.261E+13 7.865E-09 205.7 1027 9.496E+08 1.531E+12 1.084E+08 6.796E+04 84.2 4.331E+10 1.278E+14 3.210E+13 7.746E-09 205.5 1027 9.364E+08 1.508E+12 1.086E+08 6.853E+04 84.3 4.544E+10 1.258E+14 3.160E+13 7.628E-09 205.3 1027 9.235E+08 1.484E+12 1.088E+08 6.910E+04 84.4 4.766E+10 1.239E+14 3.111E+13 7.512E-09 205.1 1027 9.107E+08 1.462E+12 1.088E+08 6.968E+04 84.5 4.995E+10 1.221E+14 3.062E+13 7.397E-09 204.9 1027 8.981E+08 1.439E+12 1.088E+08 7.027E+04 84.6 5.233E+10 1.202E+14 3.014E+13 7.284E-09 204.7 1027 8.857E+08 1.417E+12 1.087E+08 7.086E+04 84.7 5.480E+10 1.184E+14 2.967E+13 7.173E-09 204.5 1027 8.734E+08 1.395E+12 1.085E+08 7.145E+04 84.8 5.735E+10 1.166E+14 2.921E+13 7.064E-09 204.3 1027 8.614E+08 1.374E+12 1.082E+08 7.205E+04 84.9 5.999E+10 1.148E+14 2.875E+13 6.956E-09 204.1 1027 8.495E+08 1.353E+12 1.079E+08 7.265E+04 85.0 6.272E+10 1.131E+14 2.830E+13 6.850E-09 203.9 1027 8.378E+08 1.332E+12 1.076E+08 7.326E+04 85.1 6.555E+10 1.114E+14 2.786E+13 6.745E-09 203.7 1027 8.263E+08 1.311E+12 1.072E+08 7.387E+04 85.2 6.846E+10 1.097E+14 2.742E+13 6.642E-09 203.5 1027 8.149E+08 1.291E+12 1.067E+08 7.448E+04 85.3 7.147E+10 1.080E+14 2.699E+13 6.540E-09 203.3 1027 8.037E+08 1.271E+12 1.062E+08 7.511E+04 85.4 7.457E+10 1.064E+14 2.656E+13 6.440E-09 203.1 1027 7.927E+08 1.252E+12 1.056E+08 7.573E+04 85.5 7.776E+10 1.048E+14 2.614E+13 6.342E-09 202.9 1027 7.819E+08 1.232E+12 1.050E+08 7.636E+04 85.6 8.106E+10 1.032E+14 2.573E+13 6.244E-09 202.7 1027 7.712E+08 1.213E+12 1.044E+08 7.700E+04 85.7 8.445E+10 1.016E+14 2.533E+13 6.149E-09 202.4 1027 7.606E+08 1.194E+12 1.037E+08 7.764E+04 85.8 8.794E+10 1.000E+14 2.493E+13 6.054E-09 202.2 1027 7.502E+08 1.176E+12 1.030E+08 7.829E+04 85.9 9.152E+10 9.851E+13 2.453E+13 5.961E-09 202.0 1027 7.400E+08 1.158E+12 1.022E+08 7.894E+04 86.0 9.521E+10 9.701E+13 2.415E+13 5.870E-09 201.8 1027 7.299E+08 1.140E+12 1.015E+08 7.959E+04 86.1 9.900E+10 9.553E+13 2.376E+13 5.780E-09 201.6 1027 7.199E+08 1.122E+12 1.007E+08 8.025E+04 86.2 1.029E+11 9.407E+13 2.339E+13 5.691E-09 201.4 1027 7.101E+08 1.105E+12 9.987E+07 8.092E+04 86.3 1.069E+11 9.263E+13 2.302E+13 5.603E-09 201.1 1027 7.005E+08 1.087E+12 9.903E+07 8.159E+04 86.4 1.110E+11 9.122E+13 2.265E+13 5.517E-09 200.9 1027 6.910E+08 1.070E+12 9.818E+07 8.226E+04 86.5 1.152E+11 8.982E+13 2.229E+13 5.432E-09 200.7 1027 6.816E+08 1.054E+12 9.730E+07 8.294E+04 86.6 1.194E+11 8.845E+13 2.194E+13 5.348E-09 200.5 1027 6.724E+08 1.037E+12 9.641E+07 8.363E+04 86.7 1.238E+11 8.709E+13 2.159E+13 5.266E-09 200.2 1027 6.633E+08 1.021E+12 9.551E+07 8.432E+04 86.8 1.283E+11 8.575E+13 2.125E+13 5.185E-09 200.0 1027 6.543E+08 1.005E+12 9.460E+07 8.502E+04 86.9 1.329E+11 8.444E+13 2.091E+13 5.105E-09 199.8 1027 6.455E+08 9.895E+11 9.367E+07 8.572E+04 87.0 1.376E+11 8.314E+13 2.057E+13 5.026E-09 199.6 1027 6.368E+08 9.740E+11 9.274E+07 8.642E+04 87.1 1.424E+11 8.186E+13 2.025E+13 4.948E-09 199.3 1027 6.282E+08 9.587E+11 9.180E+07 8.713E+04 87.2 1.473E+11 8.061E+13 1.992E+13 4.871E-09 199.1 1027 6.198E+08 9.437E+11 9.086E+07 8.785E+04 87.3 1.523E+11 7.937E+13 1.960E+13 4.796E-09 198.9 1027 6.114E+08 9.288E+11 8.991E+07 8.857E+04 87.4 1.574E+11 7.814E+13 1.929E+13 4.722E-09 198.6 1027 6.032E+08 9.142E+11 8.895E+07 8.930E+04 87.5 1.626E+11 7.694E+13 1.898E+13 4.648E-09 198.4 1027 5.952E+08 8.998E+11 8.800E+07 9.003E+04 87.6 1.678E+11 7.575E+13 1.868E+13 4.576E-09 198.1 1027 5.872E+08 8.857E+11 8.704E+07 9.076E+04 87.7 1.732E+11 7.458E+13 1.838E+13 4.505E-09 197.9 1027 5.794E+08 8.717E+11 8.608E+07 9.151E+04 87.8 1.787E+11 7.343E+13 1.808E+13 4.435E-09 197.7 1027 5.716E+08 8.579E+11 8.513E+07 9.225E+04 87.9 1.842E+11 7.230E+13 1.779E+13 4.366E-09 197.4 1027 5.640E+08 8.444E+11 8.417E+07 9.301E+04 88.0 1.899E+11 7.118E+13 1.750E+13 4.298E-09 197.2 1027 5.565E+08 8.310E+11 8.322E+07 9.376E+04 88.1 1.956E+11 7.008E+13 1.722E+13 4.232E-09 196.9 1027 5.491E+08 8.178E+11 8.227E+07 9.453E+04 88.2 2.014E+11 6.899E+13 1.694E+13 4.166E-09 196.7 1027 5.419E+08 8.049E+11 8.132E+07 9.529E+04 88.3 2.073E+11 6.792E+13 1.667E+13 4.101E-09 196.4 1027 5.347E+08 7.921E+11 8.038E+07 9.607E+04 88.4 2.133E+11 6.687E+13 1.640E+13 4.037E-09 196.2 1027 5.276E+08 7.795E+11 7.944E+07 9.685E+04 88.5 2.193E+11 6.583E+13 1.613E+13 3.974E-09 195.9 1027 5.206E+08 7.671E+11 7.850E+07 9.763E+04 88.6 2.255E+11 6.481E+13 1.587E+13 3.912E-09 195.7 1027 5.138E+08 7.549E+11 7.758E+07 9.842E+04 88.7 2.317E+11 6.380E+13 1.562E+13 3.850E-09 195.4 1027 5.070E+08 7.428E+11 7.666E+07 9.921E+04 88.8 2.380E+11 6.281E+13 1.536E+13 3.790E-09 195.2 1027 5.004E+08 7.310E+11 7.574E+07 1.000E+05 88.9 2.443E+11 6.183E+13 1.511E+13 3.731E-09 194.9 1027 4.938E+08 7.193E+11 7.483E+07 1.008E+05 89.0 2.507E+11 6.086E+13 1.487E+13 3.672E-09 194.7 1027 4.873E+08 7.078E+11 7.393E+07 1.016E+05 89.1 2.572E+11 5.991E+13 1.462E+13 3.615E-09 194.4 1027 4.810E+08 6.964E+11 7.304E+07 1.024E+05 89.2 2.637E+11 5.898E+13 1.439E+13 3.558E-09 194.2 1027 4.747E+08 6.852E+11 7.215E+07 1.033E+05 89.3 2.703E+11 5.806E+13 1.415E+13 3.502E-09 193.9 1027 4.685E+08 6.742E+11 7.128E+07 1.041E+05 89.4 2.769E+11 5.715E+13 1.392E+13 3.447E-09 193.6 1027 4.624E+08 6.634E+11 7.041E+07 1.049E+05 89.5 2.836E+11 5.625E+13 1.369E+13 3.393E-09 193.4 1027 4.564E+08 6.527E+11 6.955E+07 1.058E+05 89.6 2.903E+11 5.537E+13 1.347E+13 3.339E-09 193.1 1027 4.505E+08 6.421E+11 6.870E+07 1.066E+05 89.7 2.971E+11 5.450E+13 1.324E+13 3.287E-09 192.9 1027 4.447E+08 6.318E+11 6.785E+07 1.075E+05 89.8 3.039E+11 5.365E+13 1.303E+13 3.235E-09 192.6 1027 4.390E+08 6.215E+11 6.702E+07 1.083E+05 89.9 3.108E+11 5.280E+13 1.281E+13 3.184E-09 192.3 1027 4.333E+08 6.115E+11 6.620E+07 1.092E+05 90.0 3.176E+11 5.197E+13 1.260E+13 3.133E-09 192.1 1027 4.277E+08 6.015E+11 6.538E+07 1.100E+05 90.1 3.245E+11 5.115E+13 1.239E+13 3.084E-09 191.8 1027 4.223E+08 5.918E+11 6.458E+07 1.109E+05 90.2 3.315E+11 5.035E+13 1.219E+13 3.035E-09 191.5 1027 4.169E+08 5.821E+11 6.378E+07 1.118E+05 90.3 3.384E+11 4.955E+13 1.199E+13 2.987E-09 191.2 1027 4.115E+08 5.726E+11 6.299E+07 1.127E+05 90.4 3.454E+11 4.877E+13 1.179E+13 2.940E-09 191.0 1027 4.063E+08 5.633E+11 6.222E+07 1.136E+05 90.5 3.524E+11 4.800E+13 1.159E+13 2.893E-09 190.7 1027 4.011E+08 5.541E+11 6.145E+07 1.144E+05 90.6 3.593E+11 4.724E+13 1.140E+13 2.847E-09 190.4 1027 3.960E+08 5.450E+11 6.069E+07 1.153E+05 90.7 3.663E+11 4.649E+13 1.121E+13 2.802E-09 190.2 1027 3.910E+08 5.361E+11 5.994E+07 1.162E+05 90.8 3.733E+11 4.575E+13 1.102E+13 2.757E-09 189.9 1027 3.861E+08 5.273E+11 5.920E+07 1.172E+05 90.9 3.803E+11 4.502E+13 1.084E+13 2.713E-09 189.6 1027 3.812E+08 5.186E+11 5.847E+07 1.181E+05 91.0 3.873E+11 4.431E+13 1.066E+13 2.670E-09 189.3 1027 3.764E+08 5.100E+11 5.775E+07 1.190E+05 91.1 3.942E+11 4.360E+13 1.048E+13 2.627E-09 189.1 1027 3.717E+08 5.016E+11 5.704E+07 1.199E+05 91.2 4.012E+11 4.290E+13 1.030E+13 2.585E-09 188.8 1027 3.670E+08 4.933E+11 5.634E+07 1.208E+05 91.3 4.081E+11 4.222E+13 1.013E+13 2.543E-09 188.5 1027 3.624E+08 4.851E+11 5.564E+07 1.218E+05 91.4 4.149E+11 4.154E+13 9.960E+12 2.503E-09 188.3 1027 3.579E+08 4.770E+11 5.496E+07 1.227E+05 91.5 4.218E+11 4.088E+13 9.792E+12 2.462E-09 188.0 1027 3.535E+08 4.691E+11 5.428E+07 1.236E+05 91.6 4.286E+11 4.022E+13 9.626E+12 2.423E-09 187.7 1027 3.491E+08 4.613E+11 5.362E+07 1.246E+05 91.7 4.354E+11 3.957E+13 9.463E+12 2.384E-09 187.4 1027 3.447E+08 4.535E+11 5.296E+07 1.255E+05 91.8 4.421E+11 3.893E+13 9.302E+12 2.345E-09 187.2 1027 3.405E+08 4.459E+11 5.231E+07 1.265E+05 91.9 4.488E+11 3.831E+13 9.144E+12 2.307E-09 186.9 1027 3.363E+08 4.384E+11 5.168E+07 1.274E+05 92.0 4.554E+11 3.769E+13 8.988E+12 2.270E-09 186.6 1027 3.321E+08 4.310E+11 5.105E+07 1.284E+05 92.1 4.620E+11 3.708E+13 8.835E+12 2.233E-09 186.4 1027 3.280E+08 4.238E+11 5.042E+07 1.294E+05 92.2 4.685E+11 3.647E+13 8.684E+12 2.197E-09 186.1 1027 3.240E+08 4.166E+11 4.981E+07 1.303E+05 92.3 4.749E+11 3.588E+13 8.535E+12 2.161E-09 185.8 1027 3.200E+08 4.095E+11 4.921E+07 1.313E+05 92.4 4.813E+11 3.530E+13 8.388E+12 2.126E-09 185.6 1027 3.161E+08 4.026E+11 4.861E+07 1.323E+05 92.5 4.876E+11 3.472E+13 8.244E+12 2.091E-09 185.3 1027 3.123E+08 3.957E+11 4.802E+07 1.333E+05 92.6 4.938E+11 3.415E+13 8.101E+12 2.057E-09 185.1 1027 3.085E+08 3.889E+11 4.744E+07 1.343E+05 92.7 5.000E+11 3.360E+13 7.961E+12 2.023E-09 184.8 1027 3.047E+08 3.823E+11 4.687E+07 1.353E+05 92.8 5.060E+11 3.304E+13 7.823E+12 1.990E-09 184.6 1027 3.010E+08 3.757E+11 4.631E+07 1.363E+05 92.9 5.120E+11 3.250E+13 7.687E+12 1.957E-09 184.3 1027 2.974E+08 3.692E+11 4.575E+07 1.373E+05 93.0 5.178E+11 3.197E+13 7.553E+12 1.925E-09 184.0 1027 2.938E+08 3.629E+11 4.521E+07 1.383E+05 93.1 5.236E+11 3.144E+13 7.421E+12 1.893E-09 183.8 1027 2.903E+08 3.566E+11 4.467E+07 1.393E+05 93.2 5.293E+11 3.092E+13 7.291E+12 1.862E-09 183.6 1027 2.868E+08 3.504E+11 4.413E+07 1.403E+05 93.3 5.349E+11 3.041E+13 7.163E+12 1.831E-09 183.3 1027 2.834E+08 3.443E+11 4.361E+07 1.413E+05 93.4 5.403E+11 2.990E+13 7.038E+12 1.800E-09 183.1 1027 2.800E+08 3.383E+11 4.309E+07 1.423E+05 93.5 5.457E+11 2.940E+13 6.913E+12 1.770E-09 182.8 1027 2.767E+08 3.324E+11 4.258E+07 1.433E+05 93.6 5.509E+11 2.891E+13 6.791E+12 1.741E-09 182.6 1027 2.734E+08 3.265E+11 4.208E+07 1.443E+05 93.7 5.561E+11 2.843E+13 6.671E+12 1.712E-09 182.4 1027 2.702E+08 3.208E+11 4.159E+07 1.454E+05 93.8 5.611E+11 2.795E+13 6.553E+12 1.683E-09 182.1 1027 2.670E+08 3.151E+11 4.110E+07 1.464E+05 93.9 5.660E+11 2.749E+13 6.436E+12 1.655E-09 181.9 1027 2.638E+08 3.095E+11 4.062E+07 1.474E+05 94.0 5.707E+11 2.702E+13 6.321E+12 1.627E-09 181.7 1027 2.607E+08 3.040E+11 4.015E+07 1.485E+05 94.1 5.754E+11 2.657E+13 6.208E+12 1.600E-09 181.5 1027 2.577E+08 2.986E+11 3.968E+07 1.495E+05 94.2 5.799E+11 2.612E+13 6.097E+12 1.573E-09 181.2 1027 2.547E+08 2.933E+11 3.922E+07 1.505E+05 94.3 5.843E+11 2.568E+13 5.987E+12 1.546E-09 181.0 1027 2.517E+08 2.880E+11 3.877E+07 1.516E+05 94.4 5.886E+11 2.524E+13 5.879E+12 1.520E-09 180.8 1027 2.488E+08 2.829E+11 3.832E+07 1.526E+05 94.5 5.927E+11 2.481E+13 5.773E+12 1.494E-09 180.6 1027 2.459E+08 2.778E+11 3.788E+07 1.537E+05 94.6 5.967E+11 2.439E+13 5.669E+12 1.469E-09 180.4 1027 2.431E+08 2.728E+11 3.745E+07 1.547E+05 94.7 6.005E+11 2.398E+13 5.566E+12 1.444E-09 180.2 1027 2.403E+08 2.678E+11 3.702E+07 1.558E+05 94.8 6.043E+11 2.357E+13 5.464E+12 1.419E-09 180.0 1027 2.376E+08 2.630E+11 3.660E+07 1.568E+05 94.9 6.078E+11 2.316E+13 5.365E+12 1.395E-09 179.8 1027 2.348E+08 2.582E+11 3.618E+07 1.579E+05 95.0 6.113E+11 2.276E+13 5.266E+12 1.371E-09 179.6 1027 2.322E+08 2.534E+11 3.577E+07 1.589E+05 95.1 6.146E+11 2.237E+13 5.170E+12 1.347E-09 179.4 1027 2.295E+08 2.488E+11 3.537E+07 1.600E+05 95.2 6.177E+11 2.199E+13 5.075E+12 1.324E-09 179.2 1027 2.270E+08 2.442E+11 3.497E+07 1.611E+05 95.3 6.207E+11 2.161E+13 4.981E+12 1.301E-09 179.0 1027 2.244E+08 2.397E+11 3.458E+07 1.621E+05 95.4 6.236E+11 2.123E+13 4.889E+12 1.279E-09 178.9 1027 2.219E+08 2.353E+11 3.420E+07 1.632E+05 95.5 6.263E+11 2.086E+13 4.798E+12 1.257E-09 178.7 1027 2.194E+08 2.309E+11 3.382E+07 1.643E+05 95.6 6.289E+11 2.050E+13 4.709E+12 1.235E-09 178.5 1027 2.170E+08 2.266E+11 3.344E+07 1.653E+05 95.7 6.313E+11 2.014E+13 4.622E+12 1.213E-09 178.4 1027 2.146E+08 2.224E+11 3.307E+07 1.664E+05 95.8 6.336E+11 1.979E+13 4.535E+12 1.192E-09 178.2 1027 2.122E+08 2.182E+11 3.271E+07 1.675E+05 95.9 6.358E+11 1.944E+13 4.450E+12 1.171E-09 178.1 1027 2.099E+08 2.141E+11 3.235E+07 1.686E+05 96.0 6.378E+11 1.910E+13 4.367E+12 1.151E-09 177.9 1027 2.076E+08 2.101E+11 3.200E+07 1.697E+05 96.1 6.396E+11 1.877E+13 4.285E+12 1.131E-09 177.8 1027 2.053E+08 2.061E+11 3.165E+07 1.708E+05 96.2 6.413E+11 1.844E+13 4.204E+12 1.111E-09 177.6 1027 2.031E+08 2.022E+11 3.131E+07 1.718E+05 96.3 6.429E+11 1.811E+13 4.124E+12 1.091E-09 177.5 1027 2.009E+08 1.983E+11 3.097E+07 1.729E+05 96.4 6.443E+11 1.779E+13 4.046E+12 1.072E-09 177.4 1027 1.987E+08 1.946E+11 3.063E+07 1.740E+05 96.5 6.456E+11 1.747E+13 3.969E+12 1.053E-09 177.2 1027 1.966E+08 1.908E+11 3.031E+07 1.751E+05 96.6 6.467E+11 1.716E+13 3.893E+12 1.034E-09 177.1 1027 1.945E+08 1.872E+11 2.998E+07 1.762E+05 96.7 6.477E+11 1.686E+13 3.819E+12 1.016E-09 177.0 1027 1.925E+08 1.836E+11 2.966E+07 1.773E+05 96.8 6.485E+11 1.656E+13 3.746E+12 9.977E-10 176.9 1027 1.904E+08 1.800E+11 2.935E+07 1.784E+05 96.9 6.492E+11 1.626E+13 3.674E+12 9.799E-10 176.8 1027 1.884E+08 1.765E+11 2.904E+07 1.795E+05 97.0 6.498E+11 1.597E+13 3.603E+12 9.624E-10 176.7 1027 1.865E+08 1.731E+11 2.873E+07 1.806E+05 97.1 6.502E+11 1.568E+13 3.533E+12 9.451E-10 176.6 1027 1.845E+08 1.697E+11 2.843E+07 1.817E+05 97.2 6.505E+11 1.540E+13 3.465E+12 9.282E-10 176.5 1027 1.826E+08 1.664E+11 2.814E+07 1.828E+05 97.3 6.507E+11 1.512E+13 3.398E+12 9.115E-10 176.4 1027 1.807E+08 1.631E+11 2.784E+07 1.839E+05 97.4 6.507E+11 1.485E+13 3.332E+12 8.950E-10 176.3 1027 1.789E+08 1.599E+11 2.756E+07 1.851E+05 97.5 6.506E+11 1.458E+13 3.267E+12 8.788E-10 176.2 1027 1.771E+08 1.567E+11 2.727E+07 1.862E+05 97.6 6.504E+11 1.431E+13 3.203E+12 8.629E-10 176.2 1027 1.753E+08 1.536E+11 2.699E+07 1.873E+05 97.7 6.500E+11 1.405E+13 3.140E+12 8.473E-10 176.1 1027 1.735E+08 1.506E+11 2.672E+07 1.884E+05 97.8 6.495E+11 1.380E+13 3.078E+12 8.319E-10 176.1 1027 1.718E+08 1.476E+11 2.644E+07 1.895E+05 97.9 6.489E+11 1.355E+13 3.018E+12 8.167E-10 176.0 1027 1.701E+08 1.446E+11 2.618E+07 1.906E+05 98.0 6.481E+11 1.330E+13 2.958E+12 8.018E-10 176.0 1027 1.684E+08 1.417E+11 2.591E+07 1.918E+05 98.1 6.473E+11 1.305E+13 2.900E+12 7.872E-10 175.9 1027 1.667E+08 1.389E+11 2.565E+07 1.929E+05 98.2 6.463E+11 1.281E+13 2.842E+12 7.727E-10 175.9 1027 1.651E+08 1.361E+11 2.539E+07 1.940E+05 98.3 6.452E+11 1.258E+13 2.785E+12 7.586E-10 175.9 1027 1.635E+08 1.333E+11 2.514E+07 1.952E+05 98.4 6.439E+11 1.235E+13 2.730E+12 7.446E-10 175.9 1027 1.619E+08 1.306E+11 2.489E+07 1.963E+05 98.5 6.426E+11 1.212E+13 2.675E+12 7.309E-10 175.8 1027 1.604E+08 1.279E+11 2.464E+07 1.974E+05 98.6 6.412E+11 1.189E+13 2.622E+12 7.174E-10 175.8 1027 1.588E+08 1.253E+11 2.440E+07 1.986E+05 98.7 6.396E+11 1.167E+13 2.569E+12 7.041E-10 175.8 1027 1.573E+08 1.227E+11 2.416E+07 1.997E+05 98.8 6.379E+11 1.146E+13 2.517E+12 6.911E-10 175.9 1027 1.559E+08 1.202E+11 2.392E+07 2.008E+05 98.9 6.362E+11 1.124E+13 2.466E+12 6.783E-10 175.9 1027 1.544E+08 1.177E+11 2.369E+07 2.020E+05 99.0 6.343E+11 1.103E+13 2.417E+12 6.656E-10 175.9 1027 1.530E+08 1.153E+11 2.346E+07 2.031E+05 99.1 6.323E+11 1.083E+13 2.368E+12 6.532E-10 175.9 1027 1.516E+08 1.129E+11 2.323E+07 2.043E+05 99.2 6.303E+11 1.062E+13 2.319E+12 6.410E-10 176.0 1027 1.502E+08 1.105E+11 2.300E+07 2.054E+05 99.3 6.281E+11 1.042E+13 2.272E+12 6.291E-10 176.0 1027 1.488E+08 1.082E+11 2.278E+07 2.066E+05 99.4 6.258E+11 1.023E+13 2.226E+12 6.173E-10 176.1 1027 1.475E+08 1.060E+11 2.256E+07 2.077E+05 99.5 6.235E+11 1.003E+13 2.180E+12 6.057E-10 176.1 1027 1.461E+08 1.037E+11 2.235E+07 2.089E+05 99.6 6.210E+11 9.846E+12 2.135E+12 5.943E-10 176.2 1027 1.448E+08 1.016E+11 2.214E+07 2.101E+05 99.7 6.185E+11 9.659E+12 2.092E+12 5.831E-10 176.3 1027 1.436E+08 9.940E+10 2.193E+07 2.112E+05 99.8 6.159E+11 9.476E+12 2.048E+12 5.721E-10 176.3 1027 1.423E+08 9.729E+10 2.172E+07 2.124E+05 99.9 6.132E+11 9.297E+12 2.006E+12 5.613E-10 176.4 1027 1.411E+08 9.522E+10 2.151E+07 2.135E+05fluids-0.1.78/tests/nrlmsise00/test_nrlmsise00_full.py0000644000175000017500000001013013632560624021420 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from numpy.testing import assert_allclose from fluids.atmosphere import ATMOSPHERE_NRLMSISE00 import numpy as np import pytest import os def helper_test_match(f, atms): indexes = [1, 2, 3, 7, 8, 10] keys = ['O_density', 'N2_density', 'O2_density', 'He_density', 'Ar_density', 'N_density'] for i, k in zip(indexes, keys): calcs = [getattr(a, k) for a in atms] assert_allclose(calcs, f[:, i]*1E6, rtol=1E-3) calcs = [a.rho for a in atms] assert_allclose(calcs, f[:, 4]*1E3, rtol=1E-3) calcs = [a.T for a in atms] assert_allclose(calcs, f[:, 5], rtol=1E-3) calcs = [a.T_exospheric for a in atms] assert_allclose(calcs, f[:, 6], rtol=1E-3) @pytest.mark.slow def test_ATMOSPHERE_NRLMSISE00(): name = os.path.join(os.path.dirname(__file__), 'known_data_height.txt') f = np.loadtxt(name, delimiter=' ') heights = f[:,0] atms = [ATMOSPHERE_NRLMSISE00(float(h)*1000, latitude=45, longitude=45, day=1, seconds=0, geomagnetic_disturbance_indices=[4]*7) for h in heights] helper_test_match(f, atms) name = os.path.join(os.path.dirname(__file__), 'known_data_high_height.txt') f = np.loadtxt(name, delimiter=' ') heights = f[:,0] atms = [ATMOSPHERE_NRLMSISE00(float(h)*1000, latitude=45, longitude=45, day=1, seconds=0, geomagnetic_disturbance_indices=[4]*7) for h in heights] helper_test_match(f, atms) name = os.path.join(os.path.dirname(__file__), 'known_data_day_of_year.txt') f = np.loadtxt(name, delimiter=' ') atms = [ATMOSPHERE_NRLMSISE00(100000., latitude=45, longitude=45, day=d, seconds=0, geomagnetic_disturbance_indices=[4]*7) for d in range(1, 367)] helper_test_match(f, atms) name = os.path.join(os.path.dirname(__file__), 'known_data_hours.txt') f = np.loadtxt(name, delimiter=' ') atms = [ATMOSPHERE_NRLMSISE00(100000., latitude=45, longitude=45, day=1, seconds=3600.*h, geomagnetic_disturbance_indices=[4]*7) for h in range(1, 25)] helper_test_match(f, atms) name = os.path.join(os.path.dirname(__file__), 'known_data_latitudes.txt') f = np.loadtxt(name, delimiter=' ') atms = [ATMOSPHERE_NRLMSISE00(100000., latitude=l, longitude=45, day=1, seconds=0, geomagnetic_disturbance_indices=[4]*7) for l in range(-90, 91)] helper_test_match(f, atms) name = os.path.join(os.path.dirname(__file__), 'known_data_longitudes.txt') f = np.loadtxt(name, delimiter=' ') atms = [ATMOSPHERE_NRLMSISE00(100000., latitude=45, longitude=l, day=1, seconds=0, geomagnetic_disturbance_indices=[4]*7) for l in range(0, 361)] helper_test_match(f, atms) # Custom test, particle total density and composition atm = ATMOSPHERE_NRLMSISE00(Z=1E3, latitude=45, longitude=45, day=150) assert_allclose(atm.particle_density, 2.2929008167737723e+25) assert_allclose(atm.zs, [0.7811046347676225, 0.2095469403691101, 0.009343183088772914, 5.241774494627779e-06, 0.0, 0.0, 0.0]) fluids-0.1.78/tests/test_two_phase_voidage.py0000644000175000017500000001773613632560624020120 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest def test_Thom(): # >>> from sympy import * # >>> x, rhol, rhog, mug, mul = symbols('x, rhol, rhog, mug, mul') # >>> Z = (rhol/rhog)**Rational(555,1000)*(mug/mul)**Rational(111,1000) # >>> gamma = Z**1.6 # >>> alpha = (gamma*x/(1 + x*(gamma-1))) # >>> alpha # x*((mug/mul)**(111/1000)*(rhol/rhog)**(111/200))**1.6/(x*(((mug/mul)**(111/1000)*(rhol/rhog)**(111/200))**1.6 - 1) + 1) # >>> alpha.subs([(x, .4), (rhol, 800), (rhog, 2.5), (mul, 1E-3), (mug, 1E-5)]) # 0.980138792146901 assert_allclose(Thom(.4, 800, 2.5, 1E-3, 1E-5), 0.9801482164042417) def test_Zivi(): assert_allclose(Zivi(.4, 800, 2.5), 0.9689339909056356) def test_Smith(): assert_allclose(Smith(.4, 800, 2.5), 0.959981235534199) # Quick test function, to ensure results are the same regardless of # the form of the expression def Smith2(x, rhol, rhog): K = 0.4 first = 1 + rhog/rhol*K*(1/x-1) second = rhog/rhol*(1-K)*(1/x-1) third = ((rhol/rhog + K*(1/x-1))/(1 + K*(1/x -1)))**0.5 return (first + second*third)**-1 alpha_1 = [Smith(i, 800, 2.5) for i in np.linspace(1E-9,.99)] alpha_2 = [Smith2(i, 800, 2.5) for i in np.linspace(1E-9, .99)] assert_allclose(alpha_1, alpha_2) def test_Fauske(): assert_allclose(Fauske(.4, 800, 2.5), 0.9226347262627932) def test_Chisholm_voidage(): assert_allclose(Chisholm_voidage(.4, 800, 2.5), 0.949525900374774) def test_Turner_Wallis(): assert_allclose(Turner_Wallis(.4, 800, 2.5, 1E-3, 1E-5), 0.8384824581634625) ### Section 2 def test_homogeneous(): assert_allclose(homogeneous(.4, 800, 2.5), 0.995334370139969) # 1./(1. + (1-x)/x*(rhog/rhol)) test_homogeneous() def test_Chisholm_Armand(): assert_allclose(Chisholm_Armand(.4, 800, 2.5), 0.9357814394262114) def test_Armand(): assert_allclose(Armand(.4, 800, 2.5), 0.8291135303265941) def test_Nishino_Yamazaki(): assert_allclose(Nishino_Yamazaki(.4, 800, 2.5), 0.931694583962682) def test_Guzhov(): assert_allclose(Guzhov(.4, 800, 2.5, 1, .3), 0.7626030108534588) def test_Kawahara(): alphas_calc = [Kawahara(.4, 800, 2.5, D) for D in [0.001, 100E-6, 1E-7]] alphas_exp = [0.8291135303265941, 0.9276148194410238, 0.8952146812696503] assert_allclose(alphas_calc, alphas_exp) ### Drift flux models def test_Lockhart_Martinelli_Xtt(): assert_allclose(Lockhart_Martinelli_Xtt(0.4, 800, 2.5, 1E-3, 1E-5), 0.12761659240532292) assert_allclose(Lockhart_Martinelli_Xtt(0.4, 800, 2.5, 1E-3, 1E-5, n=0.2), 0.12761659240532292) def test_Baroczy(): assert_allclose(Baroczy(.4, 800, 2.5, 1E-3, 1E-5), 0.9453544598460807) def test_Tandon_Varma_Gupta(): alphas_calc = [Tandon_Varma_Gupta(.4, 800, 2.5, 1E-3, 1E-5, m, 0.3) for m in [1, .1]] assert_allclose(alphas_calc, [0.9228265670341428, 0.8799794756817589]) def test_Harms(): assert_allclose(Harms(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3), 0.9653289762907554) def test_Domanski_Didion(): assert_allclose(Domanski_Didion(.4, 800, 2.5, 1E-3, 1E-5), 0.9355795597059169) assert_allclose(Domanski_Didion(.002, 800, 2.5, 1E-3, 1E-5), 0.32567078492010837) def test_Graham(): assert_allclose(Graham(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3), 0.6403336287530644) assert 0 == Graham(.4, 800, 2.5, 1E-3, 1E-5, m=.001, D=0.3) def test_Yashar(): assert_allclose(Yashar(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3), 0.7934893185789146) def test_Huq_Loth(): assert_allclose(Huq_Loth(.4, 800, 2.5), 0.9593868838476147) def test_Kopte_Newell_Chato(): assert_allclose(Kopte_Newell_Chato(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3), 0.6864466770087425) assert_allclose(Kopte_Newell_Chato(.4, 800, 2.5, 1E-3, 1E-5, m=.01, D=0.3), 0.995334370139969) def test_Steiner(): assert_allclose(Steiner(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3), 0.895950181381335) def test_Rouhani_1(): assert_allclose(Rouhani_1(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3), 0.8588420244136714) def test_Rouhani_2(): assert_allclose(Rouhani_2(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3), 0.44819733138968865) def test_Nicklin_Wilkes_Davidson(): assert_allclose(Nicklin_Wilkes_Davidson(0.4, 800., 2.5, m=1, D=0.3), 0.6798826626721431) def test_Gregory_Scott(): assert_allclose(Gregory_Scott(0.4, 800., 2.5), 0.8364154370924108) def test_Dix(): assert_allclose(Dix(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3), 0.8268737961156514) def test_Sun_Duffey_Peng(): assert_allclose(Sun_Duffey_Peng(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3, P=1E5, Pc=7E6), 0.7696546506515833) def test_Woldesemayat_Ghajar(): assert_allclose(Woldesemayat_Ghajar(0.4, 800., 2.5, sigma=0.2, m=1, D=0.3, P=1E6, angle=45), 0.7640815513429202) def test_Xu_Fang_voidage(): assert_allclose(Xu_Fang_voidage(0.4, 800., 2.5, m=1, D=0.3), 0.9414660089942093) def test_density_two_phase(): assert_allclose(density_two_phase(.4, 800, 2.5), 481.0) def test_two_phase_voidage_experimental(): alpha = two_phase_voidage_experimental(481.0, 800, 2.5) assert_allclose(alpha, 0.4) def test_Beattie_Whalley(): mu = Beattie_Whalley(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) assert_allclose(mu, 1.7363806909512365e-05) def test_McAdams(): mu = McAdams(x=0.4, mul=1E-3, mug=1E-5) assert_allclose(mu, 2.4630541871921184e-05) def test_Cicchitti(): mu = Cicchitti(x=0.4, mul=1E-3, mug=1E-5) assert_allclose(mu, 0.000604) def test_Lin_Kwok(): mu = Lin_Kwok(x=0.4, mul=1E-3, mug=1E-5) assert_allclose(mu, 3.515119398126066e-05) def test_Fourar_Bories(): mu = Fourar_Bories(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) assert_allclose(mu, 2.127617150298565e-05) def tets_Duckler(): mu = Duckler(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) assert_allclose(mu, 1.2092040385066917e-05) def Duckler1(x, mul, mug, rhol, rhog): # Effective property models for homogeneous two-phase flows. # different formulation rhom = 1./(x/rhog + (1. - x)/rhol) return rhom*(x*(mug/rhog) + (1. - x)*mul/rhol) mu = Duckler1(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) assert_allclose(mu, 1.2092040385066917e-05) def test_gas_liquid_viscosity(): mu = gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5) assert_allclose(2.4630541871921184e-05, mu) mu = gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2, Method='Duckler') assert_allclose(mu, 1.2092040385066917e-05) methods = gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2, AvailableMethods=True) assert len(methods) == 6 with pytest.raises(Exception): gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5, Method='NOTAMETHOD')fluids-0.1.78/tests/test_two_phase.py0000644000175000017500000006256713632560624016424 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log, log10 from random import uniform from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest from scipy.interpolate import splrep, splev def log_uniform(low, high): return 10**uniform(log10(low), log10(high)) def test_Beggs_Brill(): kwargs = dict(m=1.163125, x=0.30370768404083825, rhol=613.8, rhog=141.3, sigma=0.028, D=0.077927, angle=90.0, mul=0.0005, mug=2E-5, P=119E5, roughness=1.8E-6, L=100, acceleration=True) dP = Beggs_Brill(**kwargs) assert_allclose(dP, 384066.2949427367) kwargs['angle'] = 45 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 289002.94186339306) kwargs['x'] = 0.6 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 220672.4414664162) kwargs['x'] = 0.9 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 240589.47045109692) kwargs['angle'] = 0 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 4310.718513863349) kwargs['x'] = 1e-7 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 1386.362401988662) kwargs['angle'] = -15 dP = Beggs_Brill(**kwargs) assert_allclose(dP, -154405.0395988586) kwargs['m'] = 100 kwargs['x'] = 0.3 kwargs['angle'] = 0 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 15382421.32990976) kwargs['angle'] = 10 dP = Beggs_Brill(**kwargs) assert_allclose(dP, 15439041.350531114) kwargs = {'rhol': 2250.004745138356, 'rhog': 58.12314177331951, 'L': 111.74530635808999, 'sigma': 0.5871528902653206, 'P': 9587894383.375906, 'm': 0.005043652829299738, 'roughness': 0.07803567727862296, 'x': 0.529765332332195, 'mug': 1.134544741297285e-06, 'mul': 0.12943468582774414, 'D': 1.9772420342193617, 'angle': -77.18096944813536} dP = Beggs_Brill(**kwargs) # Check this calculation works - S gets too large, overflows in this region @pytest.mark.fuzz @pytest.mark.slow def test_fuzz_Beggs_Brill(): for i in range(250): m = log_uniform(1e-5, 100) x = uniform(0, 1) rhol = log_uniform(100, 4000) rhog = log_uniform(0.01, 200) sigma = log_uniform(1e-3, 1) D = log_uniform(1e-5, 5) angle = uniform(-90, 90) mul = log_uniform(1e-5, 1) mug = log_uniform(5e-7, 1e-3) P = log_uniform(1E8, 1e10) roughness = log_uniform(1e-5, D-1e-10) L = uniform(0, 1000) kwargs = dict(m=m, x=x, rhol=rhol, rhog=rhog, sigma=sigma, D=D, angle=angle, mul=mul, mug=mug, P=P, roughness=roughness, L=L) Beggs_Brill(**kwargs) def test_Friedel(): kwargs = dict(m=10, x=0.9, rhol=950., rhog=1.4, mul=1E-3, mug=1E-5, sigma=0.02, D=0.3, roughness=0, L=1) dP = Friedel(**kwargs) dP_expect = 274.21322116878406 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Friedel(**kwargs) assert_allclose(dP, dP_expect*10) # Example 4 in [6]_: dP = Friedel(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) assert_allclose(dP, 738.6500525002241) # 730 is the result in [1]_; they use the Blassius equation instead for friction # the multiplier was calculated to be 38.871 vs 38.64 in [6]_ def test_Gronnerud(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Gronnerud(**kwargs) dP_expect = 384.125411444741 assert_allclose(dP, 384.125411444741) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Gronnerud(**kwargs) assert_allclose(dP, dP_expect*10) dP = Gronnerud(m=5, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 26650.676132410194) def test_Chisholm(): # Gamma < 28, G< 600 dP = Chisholm(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 1084.1489922923736) # Gamma < 28, G > 600 dP = Chisholm(m=2, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 7081.89630764668) # Gamma <= 9.5, G_tp <= 500 dP = Chisholm(m=.6, x=0.1, rhol=915., rhog=30, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 222.36274920522493) # Gamma <= 9.5, G_tp < 1900: dP = Chisholm(m=2, x=0.1, rhol=915., rhog=30, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 1107.9944943816388) # Gamma <= 9.5, G_tp > 1900: dP = Chisholm(m=5, x=0.1, rhol=915., rhog=30, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 3414.1123536958203) dP = Chisholm(m=1, x=0.1, rhol=915., rhog=0.1, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 8743.742915625126) # Roughness correction kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=1E-4, L=1, rough_correction=True) dP = Chisholm(**kwargs) dP_expect = 846.6778299960783 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Chisholm(**kwargs) assert_allclose(dP, dP_expect*10) def test_Baroczy_Chisholm(): # Gamma < 28, G< 600 dP = Baroczy_Chisholm(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 1084.1489922923736) # Gamma <= 9.5, G_tp > 1900: dP = Baroczy_Chisholm(m=5, x=0.1, rhol=915., rhog=30, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 3414.1123536958203) kwargs = dict(m=1, x=0.1, rhol=915., rhog=0.1, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Baroczy_Chisholm(**kwargs) dP_expect = 8743.742915625126 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Baroczy_Chisholm(**kwargs) assert_allclose(dP, dP_expect*10) def test_Muller_Steinhagen_Heck(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Muller_Steinhagen_Heck(**kwargs) dP_expect = 793.4465457435081 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Muller_Steinhagen_Heck(**kwargs) assert_allclose(dP, dP_expect*10) def test_Lombardi_Pedrocchi(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, sigma=0.045, D=0.05, L=1) dP = Lombardi_Pedrocchi(**kwargs) dP_expect = 1567.328374498781 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Lombardi_Pedrocchi(**kwargs) assert_allclose(dP, dP_expect*10) def test_Theissing(): dP = Theissing(m=0.6, x=.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 497.6156370699528) # Test x=1, x=0 dP = Theissing(m=0.6, x=1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 4012.248776469056) kwargs = dict(m=0.6, x=0, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Theissing(**kwargs) dP_expect = 19.00276790390895 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Theissing(**kwargs) assert_allclose(dP, dP_expect*10) def test_Jung_Radermacher(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Jung_Radermacher(**kwargs) dP_expect = 552.068612372557 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Jung_Radermacher(**kwargs) assert_allclose(dP, dP_expect*10) def test_Tran(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) dP = Tran(**kwargs) dP_expect = 423.2563312951231 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Tran(**kwargs) assert_allclose(dP, dP_expect*10) def test_Chen_Friedel(): dP = Chen_Friedel(m=.0005, x=0.9, rhol=950., rhog=1.4, mul=1E-3, mug=1E-5, sigma=0.02, D=0.003, roughness=0, L=1) assert_allclose(dP, 6249.247540588871) kwargs = dict(m=.1, x=0.9, rhol=950., rhog=1.4, mul=1E-3, mug=1E-5, sigma=0.02, D=0.03, roughness=0, L=1) dP = Chen_Friedel(**kwargs) dP_expect = 3541.7714973093725 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Chen_Friedel(**kwargs) assert_allclose(dP, dP_expect*10) def test_Zhang_Webb(): kwargs = dict(m=0.6, x=0.1, rhol=915., mul=180E-6, P=2E5, Pc=4055000, D=0.05, roughness=0, L=1) dP = Zhang_Webb(**kwargs) dP_expect = 712.0999804205619 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Zhang_Webb(**kwargs) assert_allclose(dP, dP_expect*10) def test_Bankoff(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Bankoff(**kwargs) dP_expect = 4746.059442453398 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Bankoff(**kwargs) assert_allclose(dP, dP_expect*10) def test_Xu_Fang(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) dP = Xu_Fang(**kwargs) dP_expect = 604.0595632116267 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Xu_Fang(**kwargs) assert_allclose(dP, dP_expect*10) def test_Yu_France(): kwargs = dict(m=0.6, x=.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Yu_France(**kwargs) dP_expect = 1146.983322553957 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Yu_France(**kwargs) assert_allclose(dP, dP_expect*10) def test_Wang_Chiang_Lu(): dP = Wang_Chiang_Lu(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 448.29981978639154) kwargs = dict(m=0.1, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) dP = Wang_Chiang_Lu(**kwargs) dP_expect = 3.3087255464765417 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Wang_Chiang_Lu(**kwargs) assert_allclose(dP, dP_expect*10) def test_Hwang_Kim(): kwargs = dict(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1) dP = Hwang_Kim(**kwargs) dP_expect = 798.302774184557 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Hwang_Kim(**kwargs) assert_allclose(dP, dP_expect*10) def test_Zhang_Hibiki_Mishima(): dP = Zhang_Hibiki_Mishima(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1) assert_allclose(dP, 444.9718476894804) dP = Zhang_Hibiki_Mishima(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1, flowtype='adiabatic gas') assert_allclose(dP, 1109.1976111277042) kwargs = dict(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1, flowtype='flow boiling') dP = Zhang_Hibiki_Mishima(**kwargs) dP_expect = 770.0975665928916 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Zhang_Hibiki_Mishima(**kwargs) assert_allclose(dP, dP_expect*10) with pytest.raises(Exception): Zhang_Hibiki_Mishima(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1, flowtype='BADMETHOD') def test_Kim_Mudawar(): # turbulent-turbulent dP = Kim_Mudawar(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, L=1) assert_allclose(dP, 840.4137796786074) # Re_l >= Re_c and Re_g < Re_c dP = Kim_Mudawar(m=0.6, x=0.001, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, L=1) assert_allclose(dP, 68.61594310455612) # Re_l < Re_c and Re_g >= Re_c: dP = Kim_Mudawar(m=0.6, x=0.99, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, L=1) assert_allclose(dP, 5381.335846128011) # laminar-laminar dP = Kim_Mudawar(m=0.1, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.5, L=1) assert_allclose(dP, 0.005121833671658875) # Test friction Re < 20000 kwargs = dict(m=0.1, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, L=1) dP = Kim_Mudawar(**kwargs) dP_expect = 33.74875494223592 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Kim_Mudawar(**kwargs) assert_allclose(dP, dP_expect*10) def test_Lockhart_Martinelli(): dP = Lockhart_Martinelli(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, L=1) assert_allclose(dP, 716.4695654888484) # laminar-laminar dP = Lockhart_Martinelli(m=0.1, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=1, L=1) assert_allclose(dP, 9.06478815533121e-06) # Liquid laminar, gas turbulent dP = Lockhart_Martinelli(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=2, L=1) assert_allclose(dP, 8.654579552636214e-06) # Gas laminar, liquid turbulent kwargs = dict(m=0.6, x=0.05, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=2, L=1) dP = Lockhart_Martinelli(**kwargs) dP_expect = 4.56627076018814e-06 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Lockhart_Martinelli(**kwargs) assert_allclose(dP, dP_expect*10) def test_Mishima_Hibiki(): kwargs = dict(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) dP = Mishima_Hibiki(**kwargs) dP_expect = 732.4268200606265 assert_allclose(dP, dP_expect) # Internal consistency for length dependence kwargs['L'] *= 10 dP = Mishima_Hibiki(**kwargs) assert_allclose(dP, dP_expect*10) def test_two_phase_dP(): # Case 0 assert ['Lombardi_Pedrocchi'] == two_phase_dP(10, 0.7, 1000, 0.1, rhog=1.2, sigma=0.02, AvailableMethods=True) # Case 5 assert ['Zhang_Webb'] == two_phase_dP(10, 0.7, 1000, 0.1, mul=1E-3, P=1E5, Pc=1E6, AvailableMethods=True) # Case 1,2 expect = ['Jung_Radermacher', 'Muller_Steinhagen_Heck', 'Baroczy_Chisholm', 'Yu_France', 'Wang_Chiang_Lu', 'Theissing', 'Chisholm rough', 'Chisholm', 'Gronnerud', 'Lockhart_Martinelli', 'Bankoff'] actual = two_phase_dP(10, 0.7, 1000, 0.1, rhog=1.2, mul=1E-3, mug=1E-6, AvailableMethods=True) assert sorted(expect) == sorted(actual) # Case 3, 4; drags in 5, 1, 2 expect = ['Zhang_Hibiki_Mishima adiabatic gas', 'Kim_Mudawar', 'Friedel', 'Jung_Radermacher', 'Hwang_Kim', 'Muller_Steinhagen_Heck', 'Baroczy_Chisholm', 'Tran', 'Yu_France', 'Zhang_Hibiki_Mishima flow boiling', 'Xu_Fang', 'Wang_Chiang_Lu', 'Theissing', 'Chisholm rough', 'Chisholm', 'Mishima_Hibiki', 'Gronnerud', 'Chen_Friedel', 'Lombardi_Pedrocchi', 'Zhang_Hibiki_Mishima', 'Lockhart_Martinelli', 'Bankoff'] actual = two_phase_dP(10, 0.7, 1000, 0.1, rhog=1.2, mul=1E-3, mug=1E-6, sigma=0.014, AvailableMethods=True) assert sorted(expect) == sorted(actual) # Final method attempt Lombardi_Pedrocchi dP = two_phase_dP(m=0.6, x=0.1, rhol=915., rhog=2.67, sigma=0.045, D=0.05, L=1) assert_allclose(dP, 1567.328374498781) # Second method attempt Zhang_Webb dP = two_phase_dP(m=0.6, x=0.1, rhol=915., mul=180E-6, P=2E5, Pc=4055000, D=0.05, roughness=0, L=1) assert_allclose(dP, 712.0999804205619) # Second choice, for no sigma; Chisholm dP = two_phase_dP(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, L=1) assert_allclose(dP, 1084.1489922923736) # Preferred choice, Kim_Mudawar dP = two_phase_dP(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, L=1) assert_allclose(dP, 840.4137796786074) # Case where i = 4 dP = two_phase_dP(Method='Friedel', m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) assert_allclose(dP, 738.6500525002243) # Case where i = 1 dP = two_phase_dP(Method='Lockhart_Martinelli', m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, L=1) assert_allclose(dP, 716.4695654888484) # Case where i = 101, 'Chisholm rough' dP = two_phase_dP(Method='Chisholm rough', m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=1E-4, L=1) assert_allclose(dP, 846.6778299960783) # Case where i = 102: dP = two_phase_dP(Method='Zhang_Hibiki_Mishima adiabatic gas', m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1) assert_allclose(dP, 1109.1976111277042) # Case where i = 103: dP = two_phase_dP(Method='Zhang_Hibiki_Mishima flow boiling', m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1) assert_allclose(dP, 770.0975665928916) # Don't give enough information: with pytest.raises(Exception): two_phase_dP(m=0.6, x=0.1, rhol=915., D=0.05, L=1) with pytest.raises(Exception): two_phase_dP(m=0.6, x=0.1, rhol=915., rhog=2.67, sigma=0.045, D=0.05, L=1, Method='BADMETHOD') def test_two_phase_dP_acceleration(): m = 1 D = 0.1 xi = 0.37263067757947943 xo = 0.5570214522041096 rho_li = 827.1015716377739 rho_lo = 827.05 rho_gi = 3.9190921750559062 rho_go = 3.811717994431281 alpha_i = homogeneous(x=xi, rhol=rho_li, rhog=rho_gi) alpha_o = homogeneous(x=xo, rhol=rho_lo, rhog=rho_go) dP = two_phase_dP_acceleration(m=m, D=D, xi=xi, xo=xo, alpha_i=alpha_i, alpha_o=alpha_o, rho_li=rho_li, rho_gi=rho_gi, rho_go=rho_go, rho_lo=rho_lo) assert_allclose(dP, 824.0280564053887) def test_two_phase_dP_dz_acceleration(): dP_dz = two_phase_dP_dz_acceleration(m=1, D=0.1, x=0.372, rhol=827.1, rhog=3.919, dv_dP_l=-5e-12, dv_dP_g=-4e-7, dx_dP=-2e-7, dP_dL=120.0, dA_dL=0.0001) assert_allclose(dP_dz, 20.137876617489034) def test_two_phase_dP_gravitational(): dP = two_phase_dP_gravitational(angle=90, z=2, alpha_i=0.9685, rho_li=1518., rho_gi=2.6) assert_allclose(dP, 987.237416829999) dP = two_phase_dP_gravitational(angle=90, z=2, alpha_i=0.9685, rho_li=1518., rho_gi=2.6, alpha_o=0.968, rho_lo=1517.9, rho_go=2.59) assert_allclose(dP, 994.5416058829999) def test_two_phase_dP_dz_gravitational(): dP_dz = two_phase_dP_dz_gravitational(angle=90, alpha=0.9685, rhol=1518., rhog=2.6) assert_allclose(dP_dz, 493.6187084149995) def test_Taitel_Dukler_regime(): from fluids.two_phase import Taitel_Dukler_regime regime = Taitel_Dukler_regime(m=1, x=0.05, rhol=600.12, rhog=80.67, mul=180E-6, mug=14E-6, D=0.02, roughness=0, angle=0) assert regime == 'bubbly' regime = Taitel_Dukler_regime(m=1, x=0.05, rhol=600.12, rhog=80.67, mul=180E-6, mug=14E-6, D=0.021, roughness=0, angle=0) assert regime == 'intermittent' regime = Taitel_Dukler_regime(m=.06, x=0.5, rhol=900.12, rhog=90.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, angle=0) assert regime == 'stratified smooth' regime = Taitel_Dukler_regime(m=.07, x=0.5, rhol=900.12, rhog=90.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, angle=0) assert regime == 'stratified wavy' regime, full_output = Taitel_Dukler_regime(m=0.6, x=0.112, rhol=915.12, rhog=2.67, mul=180E-6, mug=14E-6, D=0.05, roughness=0, angle=0, full_output=True) assert regime == 'annular' assert_allclose(full_output['F'], 0.9902249725092789) assert_allclose(full_output['K'], 271.86280111125365) assert_allclose(full_output['T'], 0.04144054776101148) assert_allclose(full_output['X'], 0.4505119305984412) Dukler_XA_Xs = [0.0033181, 0.005498, 0.00911, 0.015096, 0.031528, 0.05224, 0.08476, 0.14045, 0.22788, 0.36203, 0.5515, 0.9332, 1.3919, 1.7179, 2.4055, 3.3683, 4.717, 7.185, 10.06, 13.507, 18.134, 23.839, 31.339, 40.341, 52.48] Dukler_XA_As = [1.6956, 1.5942, 1.4677, 1.3799, 1.1936, 1.076, 0.9108, 0.771, 0.6258, 0.4973, 0.37894, 0.23909, 0.17105, 0.14167, 0.09515, 0.06391, 0.042921, 0.023869, 0.016031, 0.010323, 0.006788, 0.0041042, 0.0026427, 0.0016662, 0.0010396] Dukler_XD_Xs = [1.7917, 2.9688, 4.919, 14.693, 24.346, 40.341, 131.07, 217.18, 352.37, 908.3, 1473.7, 3604] Dukler_XD_Ds = [1.2318, 1.1581, 1.0662, 0.904, 0.8322, 0.7347, 0.5728, 0.4952, 0.41914, 0.30028, 0.25417, 0.16741] Dukler_XC_Xs = [0.01471, 0.017582, 0.020794, 0.024853, 0.028483, 0.040271, 0.06734, 0.10247, 0.15111, 0.21596, 0.33933, 0.5006, 0.701, 1.149, 1.714, 2.5843, 4.0649, 6.065, 8.321, 11.534, 20.817, 28.865, 37.575, 50.48] Dukler_XC_Cs = [1.9554, 2.1281, 2.3405, 2.5742, 2.8012, 3.2149, 4.0579, 4.8075, 5.403, 5.946, 6.21, 6.349, 6.224, 6.168, 5.618, 4.958, 4.1523, 3.6646, 3.0357, 2.6505, 1.8378, 1.5065, 1.2477, 1.0555] def test_Taitel_Dukler_splines(): from fluids.two_phase import Dukler_XA_tck, Dukler_XC_tck, Dukler_XD_tck Dukler_XA_tck2 = splrep(np.log10(Dukler_XA_Xs), np.log10(Dukler_XA_As), s=5e-3, k=3) [assert_allclose(i, j) for i, j in zip(Dukler_XA_tck, Dukler_XA_tck2)] # XA_interp = UnivariateSpline(np.log10(Dukler_XA_Xs), np.log10(Dukler_XA_As), s=5e-3, k=3) # , ext='const' # XA_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XA_tck)) Dukler_XD_tck2 = splrep(np.log10(Dukler_XD_Xs), np.log10(Dukler_XD_Ds), s=1e-2, k=3) [assert_allclose(i, j) for i, j in zip(Dukler_XD_tck, Dukler_XD_tck)] # XD_interp = UnivariateSpline(np.log10(Dukler_XD_Xs), np.log10(Dukler_XD_Ds), s=1e-2, k=3) # , ext='const' # XD_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XD_tck)) Dukler_XC_tck2 = splrep(np.log10(Dukler_XC_Xs), np.log10(Dukler_XC_Cs), s=1e-3, k=3) [assert_allclose(i, j) for i, j in zip(Dukler_XC_tck, Dukler_XC_tck2)] # XC_interp = UnivariateSpline(np.log10(Dukler_XC_Xs), np.log10(Dukler_XC_Cs), s=1e-3, k=3) # ext='const' # XC_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XC_tck)) # Curves look great to 1E-4! Also to 1E4. def plot_Taitel_Dukler_splines(): import matplotlib.pyplot as plt from fluids.two_phase import XA_interp_obj, XC_interp_obj, XD_interp_obj Xs = np.logspace(np.log10(1e-5), np.log10(1e5), 1000) A_Xs = np.logspace(np.log10(1e-5), np.log10(1e5), 1000) C_Xs = np.logspace(np.log10(1e-5), np.log10(1e5), 1000) D_Xs = np.logspace(np.log10(1e-5), np.log10(1e5)) A = [XA_interp_obj(X) for X in A_Xs] C = [XC_interp_obj(X) for X in C_Xs] D = [XD_interp_obj(X) for X in D_Xs] fig, ax1 = plt.subplots() ax1.loglog(C_Xs, C) ax1.set_ylim(1, 10**4) ax1.set_ylim(.01, 10**4) ax1.loglog(Dukler_XC_Xs, Dukler_XC_Cs, 'x') ax2 = ax1.twinx() ax2.loglog(A_Xs, A) ax2.loglog(D_Xs, D) ax2.loglog(Dukler_XD_Xs, Dukler_XD_Ds, '.') ax2.loglog(Dukler_XA_Xs, Dukler_XA_As, '+') ax2.set_ylim(1e-3, 10) fig.tight_layout() plt.show() return plt def test_Mandhane_Gregory_Aziz_regime(): from fluids.two_phase import Mandhane_Gregory_Aziz_regime regime = Mandhane_Gregory_Aziz_regime(m=0.6, x=0.112, rhol=915.12, rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.065, D=0.05) assert regime == 'slug' regime = Mandhane_Gregory_Aziz_regime(m=6, x=0.112, rhol=915.12, rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.065, D=0.05) assert regime == 'annular mist' regime = Mandhane_Gregory_Aziz_regime(m=.05, x=0.112, rhol=915.12, rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.065, D=0.05) assert regime == 'stratified' regime = Mandhane_Gregory_Aziz_regime(m=.005, x=0.95, rhol=915.12, rhog=2.67, mul=180E-6, mug=14E-6, sigma=0.065, D=0.01) assert regime == 'wave' fluids-0.1.78/tests/test_geometry.py0000644000175000017500000010613113632560624016250 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * from fluids.numerics import assert_close from math import * from scipy.constants import * import numpy as np from scipy.integrate import quad from numpy.testing import assert_allclose import pytest def test_geometry(): SA1 = SA_partial_sphere(1., 0.7) SA2 = SA_partial_sphere(2, 1) # One spherical head's surface area: assert_allclose([SA1, SA2], [2.199114857512855, 6.283185307179586]) V1 = V_partial_sphere(1., 0.7) assert_allclose(V1, 0.4105014400690663) assert 0.0 == V_partial_sphere(1., 0.0) # Two examples from [1]_, and at midway, full, and empty. Vs_horiz_conical1 = [V_horiz_conical(D=108., L=156., a=42., h=i)/231. for i in (36, 84, 54, 108, 0)] Vs_horiz_conical1s = [2041.1923581273443, 6180.540773905826, 3648.490668241736, 7296.981336483472, 0.0] assert_allclose(Vs_horiz_conical1, Vs_horiz_conical1s) with pytest.raises(Exception): V_horiz_conical(D=108., L=156., a=42., h=109) # Head only custom example: V_head1 = V_horiz_conical(D=108., L=156., a=42., h=84., headonly=True)/231. V_head2 = V_horiz_conical(108., 156., 42., 84., headonly=True)/231. assert_allclose([V_head1, V_head2], [508.8239000645628]*2) assert V_horiz_conical(D=108., L=156., a=42., h=0, headonly=True) == 0.0 # Two examples from [1]_, and at midway, full, and empty. Vs_horiz_ellipsoidal = [V_horiz_ellipsoidal(D=108., L=156., a=42., h=i)/231. for i in (36, 84, 54, 108, 0)] Vs_horiz_ellipsoidals = [2380.9565415578145, 7103.445235921378, 4203.695769930696, 8407.391539861392, 0.0] assert_allclose(Vs_horiz_ellipsoidal, Vs_horiz_ellipsoidals) #Head only custom example: V_head1 = V_horiz_ellipsoidal(D=108., L=156., a=42., h=84., headonly=True)/231. V_head2 = V_horiz_ellipsoidal(108., 156., 42., 84., headonly=True)/231. assert_allclose([V_head1, V_head2], [970.2761310723387]*2) assert 0.0 == V_horiz_ellipsoidal(108., 156., 42., 0., headonly=True) # Two examples from [1]_, and at midway, full, and empty. V_calc = [V_horiz_guppy(D=108., L=156., a=42., h=i)/231. for i in (36, 84, 54, 108, 0)] Vs = [1931.7208029476762, 5954.110515329029, 3412.8543046053724, 7296.981336483472, 0.0] assert_allclose(V_calc, Vs) # Head only custom example: V_head1 = V_horiz_guppy(D=108., L=156., a=42., h=36, headonly=True)/231. V_head2 = V_horiz_guppy(108., 156., 42., 36, headonly=True)/231. assert_allclose([V_head1, V_head2], [63.266257496613804]*2) assert 0.0 == V_horiz_guppy(108., 156., 42., 0.0, headonly=True) # Two examples from [1]_, and at midway, full, and empty. V_calc = [V_horiz_spherical(D=108., L=156., a=42., h=i)/231. for i in (36, 84, 54, 108, 0)] Vs = [2303.9615116986183, 6935.163365275476, 4094.025626387197, 8188.051252774394, 0.0] assert_allclose(V_calc, Vs) assert 0.0 == V_horiz_spherical(D=108., L=156., a=42., h=0) # Test z = 0 zero division error base = V_horiz_spherical(D=108., L=156., a=54, h=36, headonly=True) perturbed = V_horiz_spherical(D=108., L=156., a=53.999999999, h=36, headonly=True) assert_allclose(base, perturbed, rtol=1e-10) # Test while z is very very slow perturbed = V_horiz_spherical(D=108., L=156., a=53.99999999, h=36, headonly=True) assert_allclose(base, perturbed, rtol=1e-7) # Test when the integration function is called, on its limits: # The integral can be done analytically, but there's a zero to the power of negative integer error # the expression is # -cmath.atan(cmath.sqrt((R ** 2 - x ** 2) / (-R ** 2 + r ** 2))) * x ** 3 / 3 + cmath.atan(cmath.sqrt((R ** 2 - x ** 2) / (-R ** 2 + r ** 2))) * r ** 2 * x + x * (R ** 2 - r ** 2) * cmath.sqrt(0.1e1 / (R ** 2 - r ** 2) * x ** 2 - R ** 2 / (R ** 2 - r ** 2)) / 6 + R ** 2 * cmath.log(x / (R ** 2 - r ** 2) * (0.1e1 / (R ** 2 - r ** 2)) ** (-0.1e1 / 0.2e1) + cmath.sqrt(0.1e1 / (R ** 2 - r ** 2) * x ** 2 - R ** 2 / (R ** 2 - r ** 2))) * (0.1e1 / (R ** 2 - r ** 2)) ** (-0.1e1 / 0.2e1) / 6 - 0.2e1 / 0.3e1 * r ** 2 * cmath.log(x / (R ** 2 - r ** 2) * (0.1e1 / (R ** 2 - r ** 2)) ** (-0.1e1 / 0.2e1) + cmath.sqrt(0.1e1 / (R ** 2 - r ** 2) * x ** 2 - R ** 2 / (R ** 2 - r ** 2))) * (0.1e1 / (R ** 2 - r ** 2)) ** (-0.1e1 / 0.2e1) - r ** 3 * cmath.atan((-2 + 2 / (R ** 2 - r ** 2) * r * (x - r)) * (0.1e1 / (R ** 2 - r ** 2) * (x - r) ** 2 + 2 / (R ** 2 - r ** 2) * r * (x - r) - 1) ** (-0.1e1 / 0.2e1) / 2) / 3 + r ** 3 * cmath.atan((-2 - 2 / (R ** 2 - r ** 2) * r * (x + r)) * (0.1e1 / (R ** 2 - r ** 2) * (x + r) ** 2 - 2 / (R ** 2 - r ** 2) * r * (x + r) - 1) ** (-0.1e1 / 0.2e1) / 2) / 3 Vs = [V_horiz_spherical(D=108., L=156., a=i, h=84.)/231. for i in (108*.009999999, 108*.01000001)] V_calc = [5201.54341872961, 5201.543461255985] assert_allclose(Vs, V_calc) # Head only custom example: V_head1 = V_horiz_spherical(D=108., L=156., a=42., h=84., headonly=True)/231. V_head2 = V_horiz_spherical(108., 156., 42., 84., headonly=True)/231. assert_allclose([V_head1, V_head2], [886.1351957493874]*2) # Two examples from [1]_, and at midway, full, empty, and 1 inch; covering # all code cases. V_calc = [V_horiz_torispherical(D=108., L=156., f=1., k=0.06, h=i)/231. for i in [36, 84, 54, 108, 0, 1]] Vs = [2028.626670842139, 5939.897910157917, 3534.9973314622794, 7069.994662924554, 0.0, 9.580013820942611] assert_allclose(V_calc, Vs) # Head only custom example: V_head1 = V_horiz_torispherical(D=108., L=156., f=1., k=0.06, h=36, headonly=True)/231. V_head2 = V_horiz_torispherical(108., 156., 1., 0.06, 36, headonly=True)/231. assert_allclose([V_head1, V_head2], [111.71919144384525]*2) assert 0.0 == V_horiz_torispherical(108., 156., 1., 0.06, 0.0) # Two examples from [1]_, and at empty and h=D. Vs_calc = [V_vertical_conical(132., 33., i)/231. for i in [24, 60, 0, 132]] Vs = [250.67461381371024, 2251.175535772343, 0.0, 6516.560761446257] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_conical(132., 33., 0.0) # Two examples from [1]_, and at empty and h=D. Vs_calc = [V_vertical_ellipsoidal(132., 33., i)/231. for i in [24, 60, 0, 132]] Vs = [783.3581681678445, 2902.831611916969, 0.0, 7168.216837590883] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_ellipsoidal(132., 33., 0.0) # Two examples from [1]_, and at empty and h=D. Vs_calc = [V_vertical_spherical(132., 33., i)/231. for i in [24, 60, 0, 132]] Vs = [583.6018352850442, 2658.4605833627343, 0.0, 6923.845809036648] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_spherical(132., 33., 0.0) # Two examples from [1]_, and at empty, 1, 22, and h=D. Vs_calc = [V_vertical_torispherical(132., 1.0, 0.06, i)/231. for i in [24, 60, 0, 1, 22, 132]] Vs = [904.0688283793511, 3036.7614412163075, 0.0, 1.7906624793188568, 785.587561468186, 7302.146666890221] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_torispherical(132., 1.0, 0.06, 0.0) # Three examples from [1]_, and at empty and with h=D. Vs_calc = [V_vertical_conical_concave(113., -33, i)/231 for i in [15., 25., 50., 0, 113]] Vs = [251.15825565795188, 614.6068425492208, 1693.1654406426783, 0.0, 4428.278844757774] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_conical_concave(113., -33, 0.0) # Three examples from [1]_, and at empty and with h=D. Vs_calc = [V_vertical_ellipsoidal_concave(113., -33, i)/231 for i in [15., 25., 50., 0, 113]] Vs = [44.84968851034856, 207.6374468071692, 1215.605957384487, 0.0, 3950.7193614995826] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_ellipsoidal_concave(113., -33, 0.0) # Three examples from [1]_, and at empty and with h=D. Vs_calc = [V_vertical_spherical_concave(113., -33, i)/231 for i in [15., 25., 50., 0, 113]] Vs = [112.81405437348528, 341.7056403375114, 1372.9286894955042, 0.0, 4108.042093610599] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_spherical_concave(113., -33, 0.0) # Three examples from [1]_, and at empty and with h=D. Vs_calc = [V_vertical_torispherical_concave(D=113., f=0.71, k=0.081, h=i)/231 for i in [15., 25., 50., 0, 113]] Vs = [103.88569287163769, 388.72142877582087, 1468.762358198084, 0.0, 4203.87576231318] assert_allclose(Vs_calc, Vs) assert 0.0 == V_vertical_torispherical_concave(D=113., f=0.71, k=0.081, h=0.0) # Does not use 0 <= h < a2; and then does use it; should be the same base = V_vertical_torispherical_concave(D=113., f=0.71, k=0.16794375443150927, h=15) perturbed = V_vertical_torispherical_concave(D=113., f=0.71, k=0.16794375443151, h=15) assert_close(base, perturbed, rtol=1e-14) SA1 = SA_ellipsoidal_head(2, 1) SA2 = SA_ellipsoidal_head(2, 0.999) SAs = [6.283185307179586, 6.278996936093318] assert_allclose([SA1, SA2], SAs) # Check code avoids zero division error assert_allclose(SA_ellipsoidal_head(2, 1e-8), pi) SA1 = SA_conical_head(2, 1) SAs = 4.442882938158366 assert_close(SA1, SAs) SA1 = SA_guppy_head(2, 1) assert_close(SA1, 6.654000019110157) SA1 = SA_torispheroidal(D=2.54, f=1.039370079, k=0.062362205) assert_close(SA1, 6.00394283477063) SA1 = SA_tank(D=2, L=2) SA2 = SA_tank(D=1., L=0, sideA='ellipsoidal', sideA_a=2, sideB='ellipsoidal', sideB_a=2) SA3 = SA_tank(D=1., L=5, sideA='conical', sideA_a=2, sideB='conical', sideB_a=2) SA4 = SA_tank(D=1., L=5, sideA='spherical', sideA_a=0.5, sideB='spherical', sideB_a=0.5) SAs = [18.84955592153876, 28.480278854014387, 22.18452243965656, 18.84955592153876] assert_allclose([SA1, SA2, SA3, SA4], SAs) SA1, (SA2, SA3, SA4) = SA_tank(D=2.54, L=5, sideA='torispherical', sideB='torispherical', sideA_f=1.039370079, sideA_k=0.062362205, sideB_f=1.039370079, sideB_k=0.062362205, full_output=True) SAs = [51.90611237013163, 6.00394283477063, 6.00394283477063, 39.89822670059037] assert_allclose([SA1, SA2, SA3, SA4], SAs) SA1 = SA_tank(D=1., L=5, sideA='guppy', sideA_a=0.5, sideB='guppy', sideB_a=0.5) assert_close(SA1, 19.034963277504044) a1 = a_torispherical(D=96., f=0.9, k=0.2) a2 = a_torispherical(D=108., f=1., k=0.06) ais = [25.684268924767125, 18.288462280484797] assert_allclose([a1, a2], ais) # Horizontal configurations, compared with TankCalc - Ellipsoidal*2, # Ellipsoidal/None, spherical/conical, None/None. Final test is guppy/torispherical, # no checks available. Vs_calc = [V_from_h(h=h, D=10., L=25., horizontal=True, sideA='ellipsoidal', sideB='ellipsoidal', sideA_a=2, sideB_a=2) for h in [1, 2.5, 5, 7.5, 10]] Vs = [108.05249928250362, 416.5904542901302, 1086.4674593664702, 1756.34446444281, 2172.9349187329403] assert_allclose(Vs_calc, Vs) Vs_calc =[V_from_h(h=h, D=10., L=25., horizontal=True, sideA='ellipsoidal', sideA_a=2) for h in [1, 2.5, 5, 7.5, 10]] Vs = [105.12034613915314, 400.22799255268336, 1034.1075818066402, 1667.9871710605971, 2068.2151636132803] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=10., L=25., horizontal=True, sideA='spherical', sideB='conical', sideA_a=2, sideB_a=2) for h in [1, 2.5, 5, 7.5, 10]] Vs = [104.20408244287965, 400.47607362329063, 1049.291946298991, 1698.107818974691, 2098.583892597982] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=10., L=25., horizontal=True, sideB='spherical', sideA='conical', sideB_a=2, sideA_a=2) for h in [1, 2.5, 5, 7.5, 10]] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=1.5, L=5., horizontal=True) for h in [0, 0.75, 1.5]] Vs = [0.0, 4.417864669110647, 8.835729338221293] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=10., L=25., horizontal=True, sideA='guppy', sideB='torispherical', sideA_a=2, sideB_f=1., sideB_k=0.06) for h in [1, 2.5, 5, 7.5, 10]] Vs = [104.68706323659293, 399.0285611453449, 1037.3160340613756, 1683.391972469731, 2096.854290344973] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=10., L=25., horizontal=True, sideB='guppy', sideA='torispherical', sideB_a=2, sideA_f=1., sideA_k=0.06) for h in [1, 2.5, 5, 7.5, 10]] assert_allclose(Vs_calc, Vs) with pytest.raises(Exception): V_from_h(h=7, D=1.5, L=5) # bad head cases with pytest.raises(Exception): V_from_h(h=2.6, D=10., L=25., horizontal=True, sideA='BADHEAD', sideB='torispherical', sideA_a=2, sideB_f=1., sideB_k=0.06) with pytest.raises(Exception): V_from_h(h=2.6, D=10., L=25., horizontal=True, sideA='torispherical', sideB='BADHEAD', sideA_a=2, sideB_f=1., sideB_k=0.06) # Vertical configurations, compared with TankCalc - conical*2, spherical*2, # ellipsoidal*2. Torispherical*2 has no check. None*2 checks. Vs_calc = [V_from_h(h=h, D=1.5, L=5., horizontal=False, sideA='conical', sideB='conical', sideA_a=2., sideB_a=1.) for h in [0, 1, 2, 5., 7, 7.2, 8]] Vs = [0.0, 0.14726215563702155, 1.1780972450961726, 6.4795348480289485, 10.013826583317465, 10.301282311120932, 10.602875205865551] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=8., L=10., horizontal=False, sideA='spherical', sideB='spherical', sideA_a=3., sideB_a=4.) for h in [0, 1.5, 3, 8.5, 13., 15., 16.2, 17]] Vs = [0.0, 25.91813939211579, 89.5353906273091, 365.99554414321085, 592.190215201676, 684.3435997069765, 718.7251897078633, 726.2315017548405] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=8., L=10., horizontal=False, sideA='ellipsoidal', sideB='ellipsoidal', sideA_a=3., sideB_a=4.) for h in [0, 1.5, 3, 8.5, 13., 15., 16.2, 17]] Vs = [0.0, 31.41592653589793, 100.53096491487338, 376.99111843077515, 603.1857894892403, 695.3391739945409, 729.7207639954277, 737.2270760424049] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=8., L=10., horizontal=False, sideA='torispherical', sideB='torispherical', sideA_a=1.3547, sideB_a=1.3547, sideA_f=1., sideA_k=0.06, sideB_f=1., sideB_k=0.06) for h in [0, 1.3, 9.3, 10.1, 10.7094, 12]] Vs = [0.0, 38.723353379954276, 440.84578224136413, 481.0581682073135, 511.68995321687544, 573.323556832692] assert_allclose(Vs_calc, Vs) Vs_calc = [V_from_h(h=h, D=1.5, L=5., horizontal=False) for h in [0, 2.5, 5]] Vs = [0, 4.417864669110647, 8.835729338221293] assert_allclose(Vs_calc, Vs) with pytest.raises(Exception): V_from_h(h=7, D=1.5, L=5., horizontal=False) def test_pitch_angle_solver(): ans = [{'angle': 30, 'pitch': 2., 'pitch_parallel': 1.7320508075688774, 'pitch_normal': 1.}, {'angle': 60, 'pitch': 2., 'pitch_parallel': 1., 'pitch_normal': 1.7320508075688774}, {'angle': 45, 'pitch': 2., 'pitch_parallel': 1.414213562373095, 'pitch_normal': 1.414213562373095}, {'angle': 90, 'pitch': 1., 'pitch_parallel': 0., 'pitch_normal': 1.}, {'angle': 0, 'pitch': 1., 'pitch_parallel': 1., 'pitch_normal': 0.}, ] for ans_set in ans: for k1, v1 in ans_set.items(): for k2, v2 in ans_set.items(): if k1 != k2 and v1 != 0 and v2 != 0: angle, pitch, pitch_parallel, pitch_normal = pitch_angle_solver(**{k1:v1, k2:v2}) assert_close(ans_set['angle'], angle, atol=1e-16) assert_close(ans_set['pitch'], pitch, atol=1e-16) assert_close(ans_set['pitch_parallel'], pitch_parallel, atol=1e-16) assert_close(ans_set['pitch_normal'], pitch_normal, atol=1e-16) with pytest.raises(Exception): pitch_angle_solver(30) def test_AirCooledExchanger(): # Full solution, exchanger in Serth AC = AirCooledExchanger(tube_rows=1, tube_passes=1, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=30, pitch=2.5*inch, fin_height=0.625*inch, tube_thickness=0.00338) assert_allclose(AC.A_fin_per_tube, 18.041542744557212) # Minimal solution AC = AirCooledExchanger(tube_rows=1, tube_passes=1, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=30, pitch=2.5*inch, fin_height=0.625*inch) with pytest.raises(Exception): AirCooledExchanger(tube_rows=1, tube_passes=1, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=30, pitch=2.5*inch) # test AC with geometry whose minimum area is lower on the diagonal plane AC = AirCooledExchanger(tube_rows=1, tube_passes=1, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=60, pitch=2.2*inch, fin_height=0.625*inch, tube_thickness=0.00338) assert_allclose(AC.A_diagonal_per_bundle, AC.A_min_per_bundle) def test_AirCooledExchangerFull(): AC = AirCooledExchanger(tube_rows=4, tube_passes=4, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=30, pitch=2.5*inch, fin_height=0.625*inch, tube_thickness=0.00338, bundles_per_bay=2, parallel_bays=3) assert_allclose(AC.bare_length, 0.0022097999999999996) assert AC.tubes_per_bundle == 224 assert AC.tubes_per_bay == 224*2 assert AC.tubes == 224*2*3 assert_allclose(AC.pitch_diagonal, 0.057238126497990836) assert_allclose(AC.A_bare_tube_per_tube, 0.875590523880476) assert_allclose(AC.A_bare_tube_per_row, AC.A_bare_tube_per_tube*AC.tubes_per_row) assert_allclose(AC.A_bare_tube_per_bundle, AC.A_bare_tube_per_tube*AC.tubes_per_bundle) assert_allclose(AC.A_bare_tube_per_bay, AC.A_bare_tube_per_tube*AC.tubes_per_bay) assert_allclose(AC.A_bare_tube, AC.A_bare_tube_per_tube*AC.tubes) assert_allclose(AC.A_tube_showing_per_tube, 0.7617637557760141) assert_allclose(AC.A_tube_showing_per_row, AC.A_tube_showing_per_tube*AC.tubes_per_row) assert_allclose(AC.A_tube_showing_per_bundle, AC.A_tube_showing_per_tube*AC.tubes_per_bundle) assert_allclose(AC.A_tube_showing_per_bay, AC.A_tube_showing_per_tube*AC.tubes_per_bay) assert_allclose(AC.A_tube_showing, AC.A_tube_showing_per_tube*AC.tubes) assert_allclose(AC.A_per_fin, 0.0041762830427215765) assert_allclose(AC.A_fin_per_tube, 18.041542744557212) assert_allclose(AC.A_fin_per_row, AC.A_fin_per_tube*AC.tubes_per_row) assert_allclose(AC.A_fin_per_bundle, AC.A_fin_per_tube*AC.tubes_per_bundle) assert_allclose(AC.A_fin_per_bay, AC.A_fin_per_tube*AC.tubes_per_bay) assert_allclose(AC.A_fin, AC.A_fin_per_tube*AC.tubes) assert_allclose(AC.A_per_tube, 18.803306500333225) assert_allclose(AC.A_per_row, AC.A_per_tube*AC.tubes_per_row) assert_allclose(AC.A_per_bundle, AC.A_per_tube*AC.tubes_per_bundle) assert_allclose(AC.A_per_bay, AC.A_per_tube*AC.tubes_per_bay) assert_allclose(AC.A, AC.A_per_tube*AC.tubes) assert_allclose(AC.A_increase, 21.47500000000001) assert_allclose(AC.A_diagonal_per_bundle, 34.05507419296123) assert_allclose(AC.A_normal_per_bundle, 1.365674687999997) assert_allclose(AC.A_normal_per_bundle, AC.A_normal_per_bundle) assert_allclose(AC.A_min_per_bay, AC.A_min_per_bundle*AC.bundles_per_bay) assert_allclose(AC.A_min, AC.A_min_per_bay*AC.parallel_bays) assert_allclose(AC.A_face_per_bundle, 19.858025) assert_allclose(AC.A_face_per_bay, AC.A_face_per_bundle*AC.bundles_per_bay) assert_allclose(AC.A_face, AC.A_face_per_bay*AC.parallel_bays) assert_allclose(AC.flow_area_contraction_ratio, 0.06877192982456128) assert_allclose(AC.Di, 0.018639999999999997) assert_allclose(AC.A_tube_flow, 0.00027288627771317794) assert_allclose(AC.tube_volume_per_tube, 0.0029943265480911587) assert_allclose(AC.tube_volume_per_row, AC.tube_volume_per_tube*AC.tubes_per_row) assert_allclose(AC.tube_volume_per_bundle, AC.tube_volume_per_tube*AC.tubes_per_bundle) assert_allclose(AC.tube_volume, AC.tube_volume_per_tube*AC.tubes) assert AC.channels == 56 assert AC.pitch_str == 'triangular' assert AC.pitch_class == 'staggered' # test with corbels AC = AirCooledExchanger(tube_rows=4, tube_passes=4, tubes_per_row=56, tube_length=10.9728, tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, angle=30, pitch=2.5*inch, fin_height=0.625*inch, tube_thickness=0.00338, bundles_per_bay=2, parallel_bays=3, corbels=True) assert_allclose(AC.A_face_per_bundle, 19.683831599999998) def test_geometry_tank(): V1 = TANK(D=1.2, L=4, horizontal=False).V_total assert_allclose(V1, 4.523893421169302) V2 = TANK(D=1.2, L=4, horizontal=False).V_from_h(.5) assert_allclose(V2, 0.5654866776461628) V3 = TANK(D=1.2, L=4, horizontal=False).h_from_V(.5) assert_allclose(V3, 0.44209706414415373) T1 = TANK(V=10, L_over_D=0.7, sideB='conical', sideB_a=0.5) # T1.set_table(dx=0.001) things_calc = T1.A, T1.A_sideA, T1.A_sideB, T1.A_lateral things = (24.94775907657148, 5.118555935958284, 5.497246519930003, 14.331956620683194) assert_allclose(things_calc, things) L1 = TANK(D=10., horizontal=True, sideA='conical', sideB='conical', V=500).L D1 = TANK(L=4.69953105701, horizontal=True, sideA='conical', sideB='conical', V=500).D L2 = TANK(L_over_D=0.469953105701, horizontal=True, sideA='conical', sideB='conical', V=500).L assert_allclose([L1, D1, L2], [4.699531057009146, 9.999999999999407, 4.69953105700979]) L1 = TANK(D=10., horizontal=False, sideA='conical', sideB='conical', V=500).L D1 = TANK(L=4.69953105701, horizontal=False, sideA='conical', sideB='conical', V=500).D L2 = TANK(L_over_D=0.469953105701, horizontal=False, sideA='conical', sideB='conical', V=500).L assert_allclose([L1, D1, L2], [4.699531057009146, 9.999999999999407, 4.69953105700979]) # Test L_over_D setting simple cases L1 = TANK(D=1.2, L_over_D=3.5, horizontal=False).L D1 = TANK(L=1.2, L_over_D=3.5, horizontal=False).D assert_allclose([L1, D1], [4.2, 0.342857142857]) # Test toripsherical a calculation V = TANK(L=1.2, L_over_D=3.5, sideA='torispherical', sideB='torispherical', sideA_f=1., sideA_k=0.06, sideB_f=1., sideB_k=0.06).V_total assert_allclose(V, 0.117318265914) # Test default a_ratio assert_allclose(0.25, TANK(V=10, L=10, sideA='conical', sideA_a_ratio=None).sideA_a_ratio) with pytest.raises(Exception): # Test overdefinition case TANK(V=10, L=10, D=10) with pytest.raises(Exception): # Test sides specified with V solving TANK(V=10, L=10, sideA='conical', sideB_a=0.5) def test_TANK_issues(): # GH issue 31 Tk = TANK(L=3, D=5, horizontal=False, sideA='torispherical', sideA_f=1, sideA_k=0.1, sideB='torispherical', sideB_f=1, sideB_k=0.1) #DIN28011 assert_allclose(Tk.V_total, Tk.V_from_h(Tk.h_max*.9999999999), rtol=1e-12) def assert_TANKs_equal(T1, T2): for k, v in T1.__dict__.items(): if isinstance(v, (float, int)): assert_allclose(v, T2.__dict__[k]) else: assert v == T2.__dict__[k] def test_add_thickness(): t = 1e-4 T1 = TANK(L=3, D=.6, sideA='ellipsoidal', sideA_a = .2, sideB='conical', sideB_a=0.5) T1 = T1.add_thickness(t) T2 = TANK(L=3+2*t, D=.6+2*t, sideA='ellipsoidal', sideA_a = .2+t, sideB='conical', sideB_a=0.5+t) assert_TANKs_equal(T1, T2) # Also add a test that there are no default values for `k` and `f` when the tank is not torispherical # and the `a` ratios are correctly calculated not default values for T in (T1, T2): assert T.sideA_f is None assert T.sideA_k is None assert T.sideB_f is None assert T.sideB_k is None assert_allclose(T.sideA_a_ratio, 0.3333888703765412) assert_allclose(T.sideB_a_ratio, 0.8332222592469177) t = .1 T1 = TANK(L=3, D=.6, sideA='spherical', sideA_a = .2, sideB='guppy', sideB_a=0.5) T1 = T1.add_thickness(t) T2 = TANK(L=3+2*t, D=.6+2*t, sideA='spherical', sideA_a = .2+t, sideB='guppy', sideB_a=0.5+t) assert_TANKs_equal(T1, T2) for T in (T1, T2): assert T.sideA_f is None assert T.sideA_k is None assert T.sideB_f is None assert T.sideB_k is None assert_allclose(T.sideA_a_ratio, 0.375) assert_allclose(T.sideB_a_ratio, .75) # Torispherical as well t = .15311351231 T1 = TANK(L=3, D=.6, sideA='torispherical', sideB='torispherical', sideA_f=0.9, sideA_k=0.17) T1 = T1.add_thickness(t) T2 = TANK(L=3+2*t, D=.6+2*t, sideA='torispherical', sideA_f=0.9, sideA_k=0.17, sideB='torispherical') assert_TANKs_equal(T1, T2) @pytest.mark.slow def test_geometry_tank_chebyshev(): # Test auto set Chebyshev table T = TANK(L=1.2, L_over_D=3.5) assert_allclose(T.h_from_V(T.V_total, 'chebyshev'), T.h_max) assert_allclose(T.h_from_V(.1, 'chebyshev'), 0.2901805880470152, rtol=1e-4) assert_allclose(T.h_from_V(.05, 'chebyshev'), 0.15830377515496144, rtol=1e-4) assert_allclose(T.h_from_V(.02, 'chebyshev'), 0.08101343184833742, rtol=1e-4) T = TANK(L=1.2, L_over_D=3.5) assert_allclose(T.V_from_h(T.h_max, 'chebyshev'), T.V_total) @pytest.mark.slow def test_geometry_tank_fuzz_h_from_V(): T = TANK(L=1.2, L_over_D=3.5, sideA='torispherical', sideB='torispherical', sideA_f=1., horizontal=True, sideA_k=0.06, sideB_f=1., sideB_k=0.06) T.set_chebyshev_approximators(deg_forward=100, deg_backwards=600) # test V_from_h - pretty easy to get right for h in np.linspace(0, T.h_max, 30): # It's the top and the bottom of the tank that works poorly V1 = T.V_from_h(h, 'full') V2 = T.V_from_h(h, 'chebyshev') assert_allclose(V1, V2, rtol=1E-7, atol=1E-7) with pytest.raises(Exception): T.V_from_h(1E-5, 'NOTAMETHOD') # reverse - the spline is also pretty easy, with a limited number of points # when the required precision is low T.set_table(n=150) for V in np.linspace(0, T.V_total, 30): h1 = T.h_from_V(V, 'brenth') h2 = T.h_from_V(V, 'spline') assert_allclose(h1, h2, rtol=1E-5, atol=1E-6) h3 = T.h_from_V(V, 'chebyshev') # Even with a 600-degree polynomial, there will be failures if N # is high enough, but the tolerance should just be lowered assert_allclose(h1, h3, rtol=1E-7, atol=1E-7) with pytest.raises(Exception): T.h_from_V(1E-5, 'NOTAMETHOD') def test_basic(): psi = sphericity(10., 2.) assert_allclose(psi, 0.767663317071005) a_r = aspect_ratio(.2, 2) assert_allclose(a_r, 0.1) f_circ = circularity(1.5, .1) assert_allclose(f_circ, 1884.9555921538756) A = A_cylinder(0.01, .1) assert_allclose(A, 0.0032986722862692833) V = V_cylinder(0.01, .1) assert_allclose(V, 7.853981633974484e-06) A = A_hollow_cylinder(0.005, 0.01, 0.1) assert_allclose(A, 0.004830198704894308) V = V_hollow_cylinder(0.005, 0.01, 0.1) assert_allclose(V, 5.890486225480862e-06) A = A_multiple_hole_cylinder(0.01, 0.1, [(0.005, 1)]) assert_allclose(A, 0.004830198704894308) V = V_multiple_hole_cylinder(0.01, 0.1, [(0.005, 1)]) assert_allclose(V, 5.890486225480862e-06) def test_HelicalCoil(): for kwargs in [{'Do': 30, 'H': 20, 'pitch': 5, 'Dt':2}, {'Do': 30, 'N': 4, 'pitch': 5, 'Dt':2}, {'Do': 30, 'N': 4, 'H': 20, 'Dt':2}, {'Do_total': 32, 'N': 4, 'H': 20, 'Dt':2}, {'Do_total': 32, 'N': 4, 'H_total': 22, 'Dt':2}]: a = HelicalCoil(Di=1.8, **kwargs) assert_close(a.N, 4) assert_close(a.H, 20) assert_close(a.H_total, 22) assert_close(a.Do_total, 32) assert_close(a.pitch, 5) assert_close(a.tube_length, 377.5212621504738) assert_close(a.surface_area, 2372.0360474917497) # Other parameters assert_close(a.curvature, 0.06) assert_close(a.helix_angle, 0.053001960689651316) assert_close(a.tube_circumference, 94.24777960769379) assert_close(a.total_inlet_area, 3.141592653589793) assert_close(a.total_volume, 1186.0180237458749) # with Di specified assert_close(a.Di, 1.8) assert_close(a.inner_surface_area, 2134.832442742575) assert_close(a.inlet_area, 2.5446900494077327) assert_close(a.inner_volume, 960.6745992341587) assert_close(a.annulus_area, 0.5969026041820604) assert_close(a.annulus_volume, 225.3434245117162) # Fusion 360 agrees with the tube length. # It says the SA should be 2370.3726964956063057 # Hopefully its own calculation is flawed # Test successfully creating a helix with HelicalCoil(Di=1.8, Do=30, H=20, pitch=2, Dt=2) with pytest.raises(Exception): HelicalCoil(Di=1.8, Do=30, H=20, pitch=1.999, Dt=2) with pytest.raises(Exception): HelicalCoil(Di=1.8, Do=30, H=20, N=10.0001, Dt=2) # Test Dt < Do HelicalCoil(Do=10, H=30, N=2, Dt=10) with pytest.raises(Exception): HelicalCoil(Do=10, H=30, N=2, Dt=10.00000001) with pytest.raises(Exception): HelicalCoil(Do_total=20-1E-9, H=30, N=3., Dt=10.000) def test_PlateExchanger(): ex = PlateExchanger(amplitude=5E-4, wavelength=3.7E-3, length=1.2, width=.3, d_port=.05, plates=51) assert ex.plate_exchanger_identifier == 'L3.7A0.5B45-45' assert_allclose(ex.amplitude, 0.0005) assert_allclose(ex.a, 0.0005) assert_allclose(ex.b, 0.001) assert_allclose(ex.wavelength, 3.7E-3) assert_allclose(ex.pitch, 3.7E-3) assert ex.chevron_angle == 45 assert ex.chevron_angles == (45, 45) assert ex.inclination_angle == 45 assert_allclose(ex.plate_corrugation_aspect_ratio, 0.5405405405405406) assert_allclose(ex.gamma, 0.5405405405405406) assert_allclose(ex.plate_enlargement_factor, 1.1611862034509677) assert_allclose(ex.D_eq, 0.002) assert_allclose(ex.D_hydraulic, 0.0017223766473078426) assert_allclose(ex.length_port, 1.25) assert_allclose(ex.A_plate_surface, 0.41802703324234836) assert_allclose(ex.A_heat_transfer, 20.483324628875071) assert_allclose(ex.A_channel_flow, 0.0003) assert ex.channels == 50 assert ex.channels_per_fluid == 25 ex = PlateExchanger(amplitude=5E-4, wavelength=3.7E-3, length=1.2, width=.3, d_port=.05, plates=51, chevron_angle=(30, 60)) assert ex.chevron_angle == 45 assert ex.chevron_angles == (30, 60) ex = PlateExchanger(amplitude=5E-4, wavelength=3.7E-3) def plate_enlargement_factor_numerical(amplitude, wavelength): lambda1 = wavelength b = amplitude gamma = 4*b/lambda1 def to_int(s): return (1 + (gamma*pi/2)**2*cos(2*pi/lambda1*s)**2)**0.5 main = quad(to_int, 0, lambda1)[0] return main/lambda1 def test_plate_enhancement_factor(): def plate_enlargement_factor_approx(amplitude, wavelength): # Approximate formula lambda1 = wavelength b = amplitude A = 2*pi*b/lambda1 return 1/6.*(1 + (1 + A**2)**0.5 + 4*(1 + 0.5*A**2)**0.5) # 1.218 in VDI example phi = plate_enlargement_factor_approx(amplitude=0.002, wavelength=0.0126) assert_allclose(phi, 1.217825410973735) assert_allclose(phi, 1.218, rtol=1E-3) phi = plate_enlargement_factor_numerical(amplitude=0.002, wavelength=0.0126) assert_allclose(phi, 1.2149896289702244) @pytest.mark.slow def test_plate_enhancement_factor_fuzz(): # Confirm it's correct to within 1E-7 for x in np.linspace(1E-5, 100, 3): for y in np.linspace(1E-5, 100, 3): a = PlateExchanger.plate_enlargement_factor_analytical(x, y) b = plate_enlargement_factor_numerical(x, y) assert_allclose(a, b, rtol=1E-7) def test_RectangularFinExchanger(): PFE = RectangularFinExchanger(0.03, 0.001, 0.012) assert_allclose(PFE.fin_height, 0.03) assert_allclose(PFE.fin_thickness, 0.001) assert_allclose(PFE.fin_spacing, 0.012) # calculated values assert_allclose(PFE.channel_height, 0.029) assert_allclose(PFE.blockage_ratio, 0.8861111111111111) assert_allclose(PFE.fin_count, 83.33333333333333) assert_allclose(PFE.Dh, 0.01595) assert_allclose(PFE.channel_width, 0.011) # with layers, plate thickness, width, and length (fully defined) PFE = RectangularFinExchanger(0.03, 0.001, 0.012, length=1.2, width=2.401, plate_thickness=.005, layers=40) assert_allclose(PFE.A_HX_layer, 19.2) assert_allclose(PFE.layer_fin_count, 200) assert_allclose(PFE.A_HX, 768.0) assert_allclose(PFE.height, 1.4+.005) assert_allclose(PFE.volume, 4.048085999999999) assert_allclose(PFE.A_specific_HX, 189.71928956054794) def test_RectangularOffsetStripFinExchanger(): ROSFE = RectangularOffsetStripFinExchanger(fin_length=.05, fin_height=.01, fin_thickness=.003, fin_spacing=.05) assert_allclose(ROSFE.fin_length, 0.05) assert_allclose(ROSFE.fin_height, 0.01) assert_allclose(ROSFE.fin_thickness, 0.003) assert_allclose(ROSFE.fin_spacing, 0.05) assert_allclose(ROSFE.blockage_ratio, 0.348) assert_allclose(ROSFE.blockage_ratio_Kim, 0.34199999999999997) assert_allclose(ROSFE.alpha, 5) assert_allclose(ROSFE.delta, 0.06) assert_allclose(ROSFE.gamma, 0.06) assert_allclose(ROSFE.A_channel, 0.000329) # assert_allclose(ROSFE.SA_fin, 0.005574) assert_allclose(ROSFE.Dh, 0.011804808037316112) assert_allclose(ROSFE.Dh_Kays_London, 0.012185185185185186) assert_allclose(ROSFE.Dh_Joshi_Webb, 0.011319367879456085) # With layers, plate thickness, width (fully defined) # ROSFE = RectangularOffsetStripFinExchanger(fin_length=.05, fin_height=.01, fin_thickness=.003, fin_spacing=.05, length=1.2, width=2.401, plate_thickness=.005, layers=40) # assert_allclose(ROSFE.A_HX_layer, 0.267552) def test_HyperbolicCoolingTower(): passfluids-0.1.78/tests/test_atmosphere.py0000644000175000017500000003220313632560624016562 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from numpy.testing import assert_allclose import os from fluids.atmosphere import * import fluids import fluids.optional from datetime import datetime import pytest try: import pvlib has_pvlib = True except: has_pvlib = False from fluids.atmosphere import ATMOSPHERE_1976, hwm93, hwm14, airmass def test_ATMOSPHERE_1976(): # Test values from 'Atmosphere to 86 Km by 2 Km (SI units)', from # http://ckw.phys.ncku.edu.tw/public/pub/Notes/Languages/Fortran/FORSYTHE/www.pdas.com/m1.htm # as provided in atmtabs.html in http://www.pdas.com/atmosdownload.html H_1 = [-2000, 0, 2000, 4000, 6000, 8000, 10000, 12000, 14000, 16000, 18000, 20000, 22000, 24000, 26000, 28000, 30000, 32000, 34000, 36000, 38000, 40000, 42000, 44000, 46000, 48000, 50000, 52000, 54000, 56000, 58000, 60000, 62000, 64000, 66000, 68000, 70000, 72000, 74000, 76000, 78000, 80000, 82000, 84000, 86000] T_1 = [301.15, 288.15, 275.15, 262.17, 249.19, 236.22, 223.25, 216.65, 216.65, 216.65, 216.65, 216.65, 218.57, 220.56, 222.54, 224.53, 226.51, 228.49, 233.74, 239.28, 244.82, 250.35, 255.88, 261.4, 266.92, 270.65, 270.65, 269.03, 263.52, 258.02, 252.52, 247.02, 241.53, 236.04, 230.55, 225.07, 219.58, 214.26, 210.35, 206.45, 202.54, 198.64, 194.74, 190.84, 186.95] P_1 = [127780, 101320, 79501, 61660, 47218, 35652, 26500, 19399, 14170, 10353, 7565.2, 5529.3, 4047.5, 2971.7, 2188.4, 1616.2, 1197, 889.06, 663.41, 498.52, 377.14, 287.14, 219.97, 169.5, 131.34, 102.3, 79.779, 62.215, 48.338, 37.362, 28.724, 21.959, 16.689, 12.606, 9.4609, 7.0529, 5.2209, 3.8363, 2.8009, 2.0333, 1.4674, 1.0525, 0.75009, 0.53104, 0.37338] rho_1 = [1.4782, 1.225, 1.0066, 0.81935, 0.66011, 0.52579, 0.41351, 0.31194, 0.22786, 0.16647, 0.12165, 0.08891, 0.06451, 0.046938, 0.034257, 0.025076, 0.01841, 0.013555, 0.0098874, 0.0072579, 0.0053666, 0.0039957, 0.0029948, 0.0022589, 0.0017141, 0.0013167, 0.0010269, 0.00080562, 0.000639, 0.00050445, 0.00039626, 0.00030968, 0.00024071, 0.00018605, 0.00014296, 0.00010917, 0.000082829, 0.000062373, 0.000046385, 0.000034311, 0.000025239, 0.000018458, 0.000013418, 9.6939E-006, 6.9578E-006] c_1 = [347.89, 340.29, 332.53, 324.59, 316.45, 308.11, 299.53, 295.07, 295.07, 295.07, 295.07, 295.07, 296.38, 297.72, 299.06, 300.39, 301.71, 303.02, 306.49, 310.1, 313.67, 317.19, 320.67, 324.12, 327.52, 329.8, 329.8, 328.81, 325.43, 322.01, 318.56, 315.07, 311.55, 307.99, 304.39, 300.75, 297.06, 293.44, 290.75, 288.04, 285.3, 282.54, 279.75, 276.94, 274.1] mu_1 = [0.000018515, 0.000017894, 0.00001726, 0.000016612, 0.000015949, 0.000015271, 0.000014577, 0.000014216, 0.000014216, 0.000014216, 0.000014216, 0.000014216, 0.000014322, 0.00001443, 0.000014538, 0.000014646, 0.000014753, 0.000014859, 0.00001514, 0.000015433, 0.000015723, 0.000016009, 0.000016293, 0.000016573, 0.000016851, 0.000017037, 0.000017037, 0.000016956, 0.00001668, 0.000016402, 0.000016121, 0.000015837, 0.000015551, 0.000015262, 0.00001497, 0.000014675, 0.000014377, 0.000014085, 0.000013868, 0.00001365, 0.00001343, 0.000013208, 0.000012985, 0.00001276, 0.000012533] Ts = [ATMOSPHERE_1976(Z).T for Z in H_1] assert_allclose(Ts, T_1, atol=0.005) Ps = [ATMOSPHERE_1976(Z).P for Z in H_1] assert_allclose(Ps, P_1, rtol=5E-5) rhos = [ATMOSPHERE_1976(Z).rho for Z in H_1] assert_allclose(rhos, rho_1, rtol=5E-5) cs = [ATMOSPHERE_1976(Z).v_sonic for Z in H_1] assert_allclose(cs, c_1, rtol=5E-5) mus = [ATMOSPHERE_1976(Z).mu for Z in H_1] assert_allclose(mus, mu_1, rtol=5E-5) assert_allclose(ATMOSPHERE_1976(1000, dT=1).T, 282.6510223716947) # Check thermal conductivity with: http://www.aerospaceweb.org/design/scripts/atmosphere/ assert_allclose(ATMOSPHERE_1976(1000).k, 0.0248133634493) # Other possible additions: # mean air particle speed; mean collision frequency; mean free path; mole volume; total number density delta_P = ATMOSPHERE_1976.pressure_integral(288.6, 84100.0, 147.0) assert_allclose(delta_P, 1451.9583061008857) def test_airmass(): m = airmass(lambda Z : ATMOSPHERE_1976(Z).rho, 90) assert_allclose(m, 10356.127665863998) # vs 10356 m = airmass(lambda Z : ATMOSPHERE_1976(Z).rho, 60) assert_allclose(m, 11954.138271601627) # vs 11954 m = airmass(lambda Z : ATMOSPHERE_1976(Z).rho, 5) assert_allclose(m, 106861.56335489497) # vs 106837 m = airmass(lambda Z : ATMOSPHERE_1976(Z).rho, .1) assert_allclose(m, 379082.24065519444) # vs 378596 # airmass(lambda Z : ATMOSPHERE_1976(Z).rho, .1, RI=1.0016977377367) # As refractive index increases, the atmospheric mass increases drastically. An exception is being raised numerically, not sure why # 7966284.95792788 - that's an 800x atmospheric increase. hwm93_compiled = os.path.exists(os.path.join(os.path.dirname(fluids.optional.__file__), 'hwm93.so')) hwm14_compiled = os.path.exists(os.path.join(os.path.dirname(fluids.optional.__file__), 'hwm14.so')) @pytest.mark.skipif(not hwm93_compiled, reason='hwm93 model is not built') def test_hwm93(): # pass on systems without f2py for now custom = hwm93(5E5, 45, 50, 365) assert_allclose(custom, [-73.00312042236328, 0.1485661268234253]) # Test from pyhwm93 ans = hwm93(Z=150E3, latitude=65, longitude=-148, day=90, seconds=12*3600, f107=100., f107_avg=100., geomagnetic_disturbance_index=4) assert_allclose(ans, [-110.16133880615234, -12.400712013244629]) @pytest.mark.skipif(not hwm14_compiled, reason='hwm14 model is not built') def test_hwm14(): # Data in checkhwm14.f90; all checks out. # Disturbance wind model checks are not seperately implemented. # Height profile HEIGHTS = [0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400] HEIGHT_PROFILE_MER = [0.031, 2.965, -6.627, 2.238, -14.253, 37.403, 42.789, 20.278, 25.027, 34.297, 40.408, 44.436, 47.092, 48.843, 49.997, 50.758, 51.259] HEIGHT_PROFILE_ZON = [6.271, 25.115, 96.343, 44.845, 31.59, 11.628, -33.319, -49.984, -68.588, -80.022, -87.56, -92.53, -95.806, -97.965, -99.389, -100.327, -100.946] winds = [hwm14(alt*1000, latitude=-45.0, longitude=-85.0, day=150, seconds=12*3600, geomagnetic_disturbance_index=80) for alt in HEIGHTS] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, HEIGHT_PROFILE_MER) assert_allclose(ZON_CALC, HEIGHT_PROFILE_ZON) # Latitude profile LATS = [-90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40, 50, 60, 70, 80, 90] LAT_PROFILE_MER = [-124.197, -150.268, -124.54, -23.132, 31.377, 39.524, 56.305, 60.849, 58.117, 56.751, 51.048, 35.653, 14.832, 1.068, -2.749, -27.112, -91.199, -186.757, -166.717] LAT_PROFILE_ZON = [177.174, 63.864, -71.971, -105.913, -28.176, 36.532, 32.79, 34.341, 72.676, 110.18, 111.472, 90.547, 77.736, 74.993, 41.972, -140.557, 3.833, 179.951, 235.447] winds = [hwm14(250E3, latitude=LAT, longitude=30, day=305, seconds=18*3600, geomagnetic_disturbance_index=48) for LAT in LATS] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, LAT_PROFILE_MER) assert_allclose(ZON_CALC, LAT_PROFILE_ZON) # Time of day profile: Note the data is specified in terms of local time TIMES_LT = [0, 1.5, 3, 4.5, 6, 7.5, 9, 10.5, 12, 13.5, 15, 16.5, 18, 19.5, 21, 22.5, 24] TIMES = [(lt_hour+70/15.)*3600 for lt_hour in TIMES_LT] TIME_PROFILE_MER = [6.564, 28.79, 22.316, -4.946, -23.175, -11.278, 17.57, 34.192, 26.875, 9.39, -1.362, -7.168, -21.035, -41.123, -46.702, -27.048, 6.566] TIME_PROFILER_ZON = [-40.187, -54.899, -57.187, -47.936, -41.468, -43.648, -49.691, -44.868, -22.542, 2.052, 4.603, -24.13, -66.38, -83.942, -60.262, -36.616, -40.145] winds = [hwm14(125E3, latitude=45, longitude=-70, day=75, seconds=TIME, geomagnetic_disturbance_index=30) for TIME in TIMES] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, TIME_PROFILE_MER) assert_allclose(ZON_CALC, TIME_PROFILER_ZON) # Longitude profile LONGS = [-180, -160, -140, -120, -100, -80, -60, -40, -20, 0, 20, 40, 60, 80, 100, 120, 140, 160, 180] LONG_PROFILE_MER = [-0.757, -0.592, 0.033, 0.885, 1.507, 1.545, 1.041, 0.421, 0.172, 0.463, 1.049, 1.502, 1.552, 1.232, 0.757, 0.288, -0.146, -0.538, -0.757] LONG_PROFILE_ZON = [-16.835, -18.073, -20.107, -22.166, -22.9, -21.649, -19.089, -16.596, -14.992, -13.909, -12.395, -10.129, -7.991, -7.369, -8.869, -11.701, -14.359, -15.945, -16.835] winds = [hwm14(40E3, latitude=-5, longitude=LONG, day=330, seconds=6*3600, geomagnetic_disturbance_index=4) for LONG in LONGS] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, LONG_PROFILE_MER) assert_allclose(ZON_CALC, LONG_PROFILE_ZON) # Day of year profile DAYS = [0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 320, 340, 360] DAY_PROFILE_MER = [1.57, -5.43, -13.908, -22.489, -30.844, -39.415, -48.717, -58.582, -67.762, -74.124, -75.371, -70.021, -58.19, -41.813, -24.159, -8.838, 1.319, 5.064, 2.908] DAY_PROFILE_ZON = [-42.143, -36.947, -29.927, -23.077, -17.698, -14.016, -11.35, -8.72, -5.53, -2.039, 0.608, 0.85, -2.529, -9.733, -19.666, -30.164, -38.684, -43.208, -42.951] winds = [hwm14(200E3, latitude=-65, longitude=-135, day=DAY, seconds=21*3600, geomagnetic_disturbance_index=15) for DAY in DAYS] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, DAY_PROFILE_MER) assert_allclose(ZON_CALC, DAY_PROFILE_ZON) # Magnetic strength profile APS = [0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260] AP_PROFILE_MER = [18.63, 11.026, -0.395, -9.121, -13.965, -16.868, -18.476, -19.38, -19.82, -19.887, -19.685, -19.558, -19.558, -19.558] AP_PROFILE_ZON = [-71.801, -69.031, -83.49, -96.899, -104.811, -109.891, -112.984, -114.991, -116.293, -116.99, -117.22, -117.212, -117.212, -117.212] winds = [hwm14(350E3, latitude=38, longitude=125, day=280, seconds=21*3600, geomagnetic_disturbance_index=AP) for AP in APS] winds = [[round(i, 3) for i in j] for j in winds] MER_CALC = [i[0] for i in winds] ZON_CALC = [i[1] for i in winds] assert_allclose(MER_CALC, AP_PROFILE_MER) assert_allclose(ZON_CALC, AP_PROFILE_ZON) def test_earthsun_distance(): dt = earthsun_distance(datetime(2003, 10, 17, 13, 30, 30)) assert_allclose(dt, 149090925951.18338) dt = earthsun_distance(datetime(2013, 1, 1, 21, 21, 0, 0)) assert_allclose(dt, 147098127628.8943) dt = earthsun_distance(datetime(2013, 7, 5, 8, 44, 0, 0)) assert_allclose(dt, 152097326908.20578) @pytest.mark.skipif(not has_pvlib, reason='Pvlib is not installed') def test_solar_irradiation(): # Providing linke_turbidity always saves .1 seconds on unit testing from loading database ans = solar_irradiation(Z=1100.0, latitude=51.0486, longitude=-114.07, linke_turbidity=3, moment=datetime(2018, 4, 15, 13, 43, 5), surface_tilt=41.0, surface_azimuth=180.0) ans_expect = [1065.7622492480543, 945.2657257434173, 120.49652350463705, 95.31534254980346, 25.18118095483359] assert_allclose(ans, ans_expect, rtol=1e-5) def test_sunrise_sunset(): sunrise, sunset, transit = sunrise_sunset(datetime(2018, 4, 17, 13, 43, 5), 51.0486, -114.07) sunrise_expected = datetime(2018, 4, 17, 12, 36, 55, 782660) sunset_expected = datetime(2018, 4, 18, 2, 34, 4, 249326) transit_expected = datetime(2018, 4, 17, 19, 35, 46, 686265) assert sunrise == sunrise_expected assert sunset == sunset_expected assert transit == transit_expected fluids-0.1.78/tests/test_drag.py0000644000175000017500000001714013632560624015333 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest close = assert_allclose def test_drag(): Cd = Stokes(0.1) close(Cd, 240.0) # All examples from [1]_, in a table of calculated values, matches. Cds = [Barati(200.), Barati(0.002)] close(Cds, [0.7682237950389874, 12008.864343802072]) # All examples from [1]_, in a table of calculated values, matches. Cds = [Barati_high(i) for i in [200, 0.002, 1E6]] Cd_values = [0.7730544082789523, 12034.714777630921, 0.21254574397767056] close(Cds, Cd_values) Cds = [Rouse(i) for i in [200, 0.002]] Cd_values = [0.6721320343559642, 12067.422039324994] close(Cds, Cd_values) Cds = [Engelund_Hansen(i) for i in [200, 0.002]] Cd_values = [1.62, 12001.5] close(Cds, Cd_values) Cds = [Clift_Gauvin(i) for i in [200, 0.002]] Cd_values = [0.7905400398000133, 12027.153270425813] close(Cds, Cd_values) Cds = [Morsi_Alexander(i) for i in [0.002, 0.5, 5., 50., 500., 25E2, 7.5E3, 1E5]] Cd_values = [12000.0, 49.511199999999995, 6.899784, 1.500032, 0.549948, 0.408848, 0.4048818666666667, 0.50301667] close(Cds, Cd_values) Cds = [Graf(i) for i in [200, 0.002]] Cd_values = [0.8520984424785725, 12007.237509093471] close(Cds, Cd_values) Cds = [Flemmer_Banks(i) for i in [200, 0.002]] Cd_values = [0.7849169609270039, 12194.582998088363] close(Cds, Cd_values) Cds = [Khan_Richardson(i) for i in [200, 0.002]] Cd_values = [0.7747572379211097, 12335.279663284822] close(Cds, Cd_values) Cds = [Swamee_Ojha(i) for i in [200, 0.002]] Cd_values = [0.8490012397545713, 12006.510258198376] close(Cds, Cd_values) Cds = [Yen(i) for i in [200, 0.002]] Cd_values = [0.7822647002187014, 12080.906446259793] close(Cds, Cd_values) Cds = [Haider_Levenspiel(i) for i in [200, 0.002]] Cd_values = [0.7959551680251666, 12039.14121183969] close(Cds, Cd_values) Cds = [Cheng(i) for i in [200, 0.002]] Cd_values = [0.7939143028294227, 12002.787740305668] close(Cds, Cd_values) Cds = [Terfous(i) for i in [200]] Cd_values = [0.7814651149769638] close(Cds, Cd_values) Cds = [Mikhailov_Freire(i) for i in [200, 0.002]] Cd_values = [0.7514111388018659, 12132.189886046555] close(Cds, Cd_values) Cds = [Clift(i) for i in [0.002, 0.5, 50., 500., 2500., 40000, 75000., 340000, 5E5]] Cd_values = [12000.1875, 51.538273834491875, 1.5742657203722197, 0.5549240285782678, 0.40817983162668914, 0.4639066546786017, 0.49399935325210037, 0.4631617396760497, 0.5928043008238435] close(Cds, Cd_values) Cds = [Ceylan(i) for i in [200]] Cd_values = [0.7816735980280175] close(Cds, Cd_values) Cds = [Almedeij(i) for i in [200, 0.002]] Cd_values = [0.7114768646813396, 12000.000000391443] close(Cds, Cd_values) Cds = [Morrison(i) for i in [200, 0.002]] Cd_values = [0.767731559965325, 12000.134917101897] close(Cds, Cd_values) Cd = Song_Xu(1.72525554724508000000) assert_allclose(Cd, 17.1249219416881000000) Cd = Song_Xu(1.24798925062065, sphericity=0.64, S=0.55325984525397) assert_allclose(Cd, 36.00464629658840) def test_drag_sphere(): Cd = drag_sphere(200) assert_allclose(Cd, 0.7682237950389874) Cd = drag_sphere(1E6) assert_allclose(Cd, 0.21254574397767056) Cd = drag_sphere(1E6, Method='Barati_high') assert_allclose(Cd, 0.21254574397767056) Cd = drag_sphere(0.001) assert_allclose(Cd, 24000.0) Cd = drag_sphere(0.05) assert_allclose(Cd, 481.23769162684573) methods = sorted(drag_sphere(3E5, AvailableMethods=True)) method_known = ['Barati_high', 'Ceylan', 'Morrison', 'Clift', 'Almedeij'] assert sorted(method_known) == methods with pytest.raises(Exception): drag_sphere(200, Method='BADMETHOD') with pytest.raises(Exception): drag_sphere(1E7) def test_v_terminal(): v_t = v_terminal(D=70E-6, rhop=2600., rho=1000., mu=1E-3) assert_allclose(v_t, 0.00414249724453) v_t = v_terminal(D=70E-9, rhop=2600., rho=1000., mu=1E-3) assert_allclose(v_t, 4.271340888888889e-09) # [2] has a good example v_t = v_terminal(D=70E-6, rhop=2.6E3, rho=1000., mu=1E-3) assert_allclose(v_t, 0.004142497244531304) # vs 0.00406 by [2], with the Oseen correlation not implemented here # It also has another example v_t = v_terminal(D=50E-6, rhop=2.8E3, rho=1000., mu=1E-3) assert_allclose(v_t, 0.0024195143465496655) # vs 0.002453 in [2] # Laminar example v_t = v_terminal(D=70E-6, rhop=2600., rho=1000., mu=1E-1) assert_allclose(v_t, 4.271340888888888e-05) def test_integrate_drag_sphere(): ans = integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.5, V=30, distance=True) assert_allclose(ans, (9.686465044063436, 7.829454643649386)) ans = integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.5, V=30) assert_allclose(ans, 9.686465044063436) # Check no error when V is zero ans = integrate_drag_sphere(D=0.001, rhop=1.20001, rho=1.2, mu=1.78E-5, t=0.5, V=0) assert_allclose(ans, 3.0607521920092645e-07) # Stokes law regime integration ans = integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.1, V=0, distance=True, Method='Stokes') assert_allclose(ans, [0.9730274844308592, 0.04876946395795378]) ans = integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.1, V=10, distance=True, Method='Stokes') assert_allclose(ans, [10.828446488771524, 1.041522867361668]) ans = integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.1, V=-10, distance=True, Method='Stokes') assert_allclose(ans, [-8.882391519909806, -0.9439839394457605]) # Stokes law regime - test case where particle is ensured to be laminar before and after the simulation for m in (None, 'Stokes'): ans = integrate_drag_sphere(D=0.000001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.1, V=0, distance=True, Method=m) assert_allclose(ans, [6.729981897140177e-05, 6.729519788530099e-06], rtol=1e-11) def test_time_v_terminal_Stokes(): t = time_v_terminal_Stokes(D=1e-7, rhop=2200., rho=1.2, mu=1.78E-5, V0=1) assert_allclose(t, 3.188003113787154e-06) # Very slow - many iterations t = time_v_terminal_Stokes(D=1e-2, rhop=2200., rho=1.2, mu=1.78E-5, V0=1, tol=1e-30) assert_allclose(t, 24800.636391802)fluids-0.1.78/tests/test_jet_pump.py0000644000175000017500000002461713632560624016250 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest def test_liquid_jet_pump_ancillary(): # This equation has been checked from theory 2018-05-08 - it is # confirmed to be correct more than the large one!!! rhop=998. rhos=1098. Ks=0.11 Kp=.04 solution_vars = {'P1': 426256.1597041593, 'P2': 133600, 'Qp': 0.01, 'Qs': 0.01, 'd_mixing': 0.045, 'd_nozzle': 0.022382858811037732} for key, value in solution_vars.items(): kwargs = dict(solution_vars) del kwargs[key] new_value = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, **kwargs) assert_allclose(new_value, value) @pytest.mark.slow @pytest.mark.fuzz def test_liquid_jet_pump_ancillary_rhos_Ks_Ps(): for rhop in [998., 1050, 1150, 1250, 800]: for rhos in [1098., 1100, 1200, 1600, 4000, 100]: for Ks in [1E-9, 1E-3, 0.11, .5, 1, 5, 10, 100, 1000]: for Kp in [1E-9, 1E-3, 0.11, .5, 1, 5, 10, 100, 1000]: for P_mult in [0.1, 0.5, 1, 2, 10]: solution_vars = {'P1': 426256.1597041593, 'P2': 133600, 'Qp': 0.01, 'd_mixing': 0.045, 'd_nozzle': 0.022382858811037732} solution_vars['P1'] *= P_mult if solution_vars['P1'] < solution_vars['P2']: continue # Finish calculating good known values solution_vars['Qs'] = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, **solution_vars) if solution_vars['Qs'].imag: # Do not keep testing if obtained an imaginary flow rate continue # Try each variable with the solver for key, value in solution_vars.items(): kwargs = dict(solution_vars) del kwargs[key] new_value = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, **kwargs) assert_allclose(new_value, value) @pytest.mark.slow @pytest.mark.fuzz def test_liquid_jet_pump_ancillary_d_mixing(): rhop=998. rhos=1098. Ks=0.11 Kp=.04 for rhos in [1098., 1100, 1200, 1600, 4000, 100]: for Ks in [1E-9, 1E-3, 0.11, .5, 1, 5, 10, 100, 1000]: for D_mult in np.linspace(0.1, 10, 100).tolist(): solution_vars = {'P1': 426256.1597041593, 'P2': 133600, 'Qp': 0.01, 'd_mixing': 0.045, 'd_nozzle': 0.022382858811037732} solution_vars['d_mixing'] *= D_mult if solution_vars['d_mixing'] < solution_vars['d_nozzle']*1.43: continue # Finish calculating good known values solution_vars['Qs'] = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, **solution_vars) if solution_vars['Qs'].imag: # Do not keep testing if obtained an imaginary flow rate continue # Try each variable with the solver for key, value in solution_vars.items(): kwargs = dict(solution_vars) del kwargs[key] # print(solution_vars, key) new_value = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, **kwargs) assert_allclose(new_value, value) def validate_liquid_jet_pump(rhop, rhos, Ks, Kp, Km, Kd, nozzle_retracted, solution_vars, d_diffuser=None, full=False): '''Helper function for testing `liquid_jet_pump`. Returns the number of solutions where the return values are the same as thosegiven in `solution_vars`, and the number of cases where it is not. There is nothing wrong with getting a different answer; there are multiple solutions in the case of many variable sets. Raises an exception if a solution cannot be found. ''' if full: all_solution_vars = dict(solution_vars) solution_vars = dict(solution_vars) del solution_vars['M'] del solution_vars['N'] del solution_vars['R'] del solution_vars['alpha'] del solution_vars['d_diffuser'] del solution_vars['efficiency'] same, different = 0, 0 done = {} for i in solution_vars.keys(): for j in solution_vars.keys(): if i == j: continue elif frozenset([i, j]) in done: continue # Skip tests with alreardy tested variables; and where the two variables are the same kwargs = dict(solution_vars) del kwargs[i] del kwargs[j] # print('SOLVING FOR', i, j, kwargs) # ans = liquid_jet_pump(rhop=rhop, rhos=rhos, Ks=Ks, Kp=Kp, Km=Km, d_diffuser=d_diffuser, Kd=Kd, max_variations=10000, nozzle_retracted=nozzle_retracted, **kwargs) # print(i, j, ans[i], ans[j]) # print('SOLVED, STARTING NEXT') try: for key, value in solution_vars.items(): assert_allclose(value, abs(ans[key])) same += 1 # Since it matched, check the other parameters as well if full: for key, value in all_solution_vars.items(): assert_allclose(value, abs(ans[key])) except: for key, value in ans.items(): # Had some issues with under zero values assert value > 0 different += 1 done[frozenset([i, j])] = True return same, different @pytest.mark.slow def test_liquid_jet_pump_examples_round_robin(): # Example one and two variants solution_vars = {'P1': 426256.1597041593, 'P2': 133600, 'P5': 200000.0, 'Qp': 0.01, 'Qs': 0.01, 'd_mixing': 0.045, 'd_nozzle': 0.022382858811037732} validate_liquid_jet_pump(rhop=998., rhos=1098., Ks=0.11, Kp=0.04, Km=.186, Kd=0.12, nozzle_retracted=False, solution_vars=solution_vars) solution_vars = { 'P1': 468726.56966322445, 'P2': 133600, 'P5': 200000.0, 'Qp': 0.01, 'Qs': 0.001, 'd_mixing': 0.0665377148831667, 'd_nozzle': 0.022382858811037732} validate_liquid_jet_pump(rhop=998., rhos=1098., Ks=0.11, Kp=0.04, Km=.186, Kd=0.12, nozzle_retracted=False, solution_vars=solution_vars) solution_vars = { 'P1': 426256.1597041593, 'P2': 133600, 'P5': 200000.0, 'Qp': 0.1, 'Qs': 0.0201, 'd_mixing': 0.19926717348339726, 'd_nozzle': 0.07320212423451278} validate_liquid_jet_pump(rhop=998., rhos=1098., Ks=0.11, Kp=0.04, Km=.186, Kd=0.12, nozzle_retracted=False, solution_vars=solution_vars) # Example 2 solution_vars = {'P1': 550000.0, 'P2': 170000.0, 'P5': 192362.72123108635, 'Qp': 0.0005588580085548165, 'Qs': 0.0018975332068311196, 'd_mixing': 0.024, 'd_nozzle': 0.0048} validate_liquid_jet_pump(rhop=790.5, rhos=790.5, Km=.1, Kd=0.1, Ks=0.1, Kp=0.03, nozzle_retracted=False, solution_vars=solution_vars) @pytest.mark.slow def test_liquid_jet_pump_examples_round_robin_Ex3(): # Example 3 rhop=765.0 rhos=765.0 Km=.15 Kd=0.12 Ks=0.38 Kp=0.05 nozzle_retracted=True d_diffuser=0.0318 # point 5 solution_vars = { 'P1': 1000000.0, 'P2': 47500.0, 'P5': 109500.0, 'Qp': 0.0005587193619566122, 'Qs': 0.001400084261324908, 'd_mixing': 0.017, 'd_nozzle': 0.0038} same, different = validate_liquid_jet_pump(nozzle_retracted=nozzle_retracted, d_diffuser=d_diffuser,rhop=rhop, rhos=rhos, Km=Km, Kd=Kd, Ks=Ks, Kp=Kp, solution_vars=solution_vars) assert same > 10 # Point 4 solution_vars = { 'P1': 800000.0, 'P2': 46020.0, 'P5': 95000.0, 'Qp': 0.0004971366273938245, 'Qs': 0.0012500084707104235, 'd_mixing': 0.017, 'd_nozzle': 0.0038} same, different = validate_liquid_jet_pump(nozzle_retracted=nozzle_retracted, d_diffuser=d_diffuser,rhop=rhop, rhos=rhos, Km=Km, Kd=Kd, Ks=Ks, Kp=Kp, solution_vars=solution_vars) assert same > 10 # Custom point with full validation expected = {'M': 2.633280822186772, 'N': 0.06818823529411765, 'P1': 500000.0, 'P2': 46020.0, 'P5': 75000.0, 'Qp': 0.0003864114714478578, 'Qs': 0.0010175299172366153, 'R': 0.05097107567130409, 'alpha': 0.28014905021125414, 'd_diffuser': 0.0318, 'd_mixing': 0.016831456429424897, 'd_nozzle': 0.0038, 'efficiency': 0.1795587722987592} same, different = validate_liquid_jet_pump(nozzle_retracted=nozzle_retracted, d_diffuser=d_diffuser,rhop=rhop, rhos=rhos, Km=Km, Kd=Kd, Ks=Ks, Kp=Kp, solution_vars=expected, full=True) assert same > 15fluids-0.1.78/tests/test_open_flow.py0000644000175000017500000000545113632560624016410 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids import * import numpy as np from numpy.testing import assert_allclose import pytest def test_open_flow(): Q1 = Q_weir_V_Shen(0.6, angle=45) Q2 = Q_weir_V_Shen(1.2) assert_allclose([Q1, Q2], [0.21071725775478228, 2.8587083148501078]) Q1 = Q_weir_rectangular_Kindsvater_Carter(0.2, 0.5, 1) assert_allclose(Q1, 0.15545928949179422) Q1 = Q_weir_rectangular_SIA(0.2, 0.5, 1, 2) assert_allclose(Q1, 1.0408858453811165) Q1 = Q_weir_rectangular_full_Ackers(h1=0.9, h2=0.6, b=5) Q2 = Q_weir_rectangular_full_Ackers(h1=0.3, h2=0.4, b=2) assert_allclose([Q1, Q2], [9.251938159899948, 0.6489618999846898]) Q1 = Q_weir_rectangular_full_SIA(h1=0.3, h2=0.4, b=2) assert_allclose(Q1, 1.1875825055400384) Q1 = Q_weir_rectangular_full_Rehbock(h1=0.3, h2=0.4, b=2) assert_allclose(Q1, 0.6486856330601333) Q1 = Q_weir_rectangular_full_Kindsvater_Carter(h1=0.3, h2=0.4, b=2) assert_allclose(Q1, 0.641560300081563) V1 = V_Manning(0.2859, 0.005236, 0.03)*0.5721 V2 = V_Manning(0.2859, 0.005236, 0.03) V3 = V_Manning(Rh=5, S=0.001, n=0.05) assert_allclose([V1, V2, V3], [0.5988618058239864, 1.0467781958118971, 1.8493111942973235]) C = n_Manning_to_C_Chezy(0.05, Rh=5) assert_allclose(C, 26.15320972023661) n = C_Chezy_to_n_Manning(26.15, Rh=5) assert_allclose(n, 0.05000613713238358) V = V_Chezy(Rh=5, S=0.001, C=26.153) assert_allclose(V, 1.8492963648371776) n_tot = np.sum(np.concatenate(np.array([list(val.values()) for thing in n_dicts for val in thing.values()]))) assert_allclose(n_tot, 11.115999999999984)fluids-0.1.78/tests/test_separator.py0000644000175000017500000001241313632560624016414 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from fluids import * from numpy.testing import assert_allclose import pytest import numpy as np from scipy.interpolate import UnivariateSpline, splev, splrep def test_K_separator_Watkins_fit(): from fluids.separator import tck_Watkins v_factors_Watkins = [0.006, 0.00649546, 0.00700535, 0.00755527, 0.00817788, 0.00881991, 0.00954676, 0.0103522, 0.0112256, 0.0121947, 0.0132476, 0.0143655, 0.0156059, 0.0169841, 0.018484, 0.0201165, 0.0219329, 0.0239133, 0.0260727, 0.0284272, 0.0309944, 0.0339158, 0.037046, 0.0403924, 0.0441998, 0.0483665, 0.0529259, 0.0579153, 0.0632613, 0.0692251, 0.0756157, 0.0825962, 0.0902214, 0.0983732, 0.107262, 0.116954, 0.127753, 0.139047, 0.151614, 0.165317, 0.179934, 0.195845, 0.21278, 0.231181, 0.251627, 0.272897, 0.295966, 0.32041, 0.347497, 0.3762, 0.407274, 0.440914, 0.476478, 0.513983, 0.554442, 0.59701, 0.642851, 0.690966, 0.744018, 0.798268, 0.856477, 0.920588, 0.987716, 1.05784, 1.13294, 1.21337, 1.29718, 1.38678, 1.4799, 1.58212, 1.68837, 1.79851, 1.91583, 2.04083, 2.16616, 2.29918, 2.44037, 2.59025, 2.73944, 2.89725, 3.06414, 3.24064, 3.42731, 3.61822, 3.81976, 4.02527, 4.24949, 4.47008, 4.71907, 4.96404, 5.22172, 5.43354] Kv_Watkins = [0.23722, 0.248265, 0.260298, 0.272915, 0.284578, 0.297283, 0.309422, 0.322054, 0.33398, 0.345714, 0.355905, 0.366397, 0.377197, 0.386898, 0.396125, 0.404831, 0.411466, 0.41821, 0.424289, 0.428886, 0.433533, 0.435832, 0.436547, 0.436468, 0.437982, 0.437898, 0.437815, 0.436932, 0.435258, 0.434381, 0.431138, 0.427919, 0.42395, 0.420018, 0.415364, 0.410012, 0.403988, 0.39733, 0.390067, 0.38154, 0.373883, 0.364378, 0.354467, 0.344197, 0.333613, 0.322767, 0.311704, 0.299923, 0.289114, 0.277173, 0.265725, 0.254749, 0.243338, 0.232438, 0.221621, 0.211309, 0.200742, 0.190704, 0.181498, 0.172108, 0.162906, 0.154196, 0.145952, 0.137897, 0.130049, 0.122647, 0.115667, 0.108885, 0.102502, 0.0963159, 0.0903385, 0.0847323, 0.0796194, 0.0744062, 0.0695348, 0.0651011, 0.060839, 0.0567521, 0.0529401, 0.0492041, 0.0458154, 0.0426601, 0.039722, 0.036919, 0.0343137, 0.0318924, 0.0296419, 0.0275001, 0.0255595, 0.0237127, 0.0219993, 0.0207107] Watkins_interp = UnivariateSpline(v_factors_Watkins, Kv_Watkins, s=.00001) tck_Watkins_recalc = splrep(np.log(v_factors_Watkins), np.log(Kv_Watkins), s=0.001, k=3) [assert_allclose(i, j, rtol=1e-3) for i, j in zip(tck_Watkins, tck_Watkins_recalc)] # plt.loglog(v_factors_Watkins, Watkins_interp(v_factors_Watkins)) # my_vs = np.logspace(np.log10(0.006/10), np.log10(5.43354*10), 1000) # plt.loglog(my_vs, np.exp(splev(np.log(my_vs), tck_Watkins)), 'x') # plt.show() def test_K_separator_Watkins(): calc = [[K_separator_Watkins(0.88, 985.4, 1.3, horizontal, method) for method in ['spline', 'branan', 'blackwell']] for horizontal in [False, True]] expect = [[0.06361290880381038, 0.06108986837654085, 0.06994527471072351], [0.07951613600476297, 0.07636233547067607, 0.0874315933884044]] assert_allclose(calc, expect, rtol=1e-4) with pytest.raises(Exception): K_separator_Watkins(0.88, 985.4, 1.3, horizontal=True, method='BADMETHOD') def test_K_separator_demister_York(): from scipy.constants import psi Ks_expect = [0.056387999999999994, 0.056387999999999994, 0.09662736507185091, 0.10667999999999998, 0.10520347947487964, 0.1036391539227465, 0.07068690636639535] Ks = [] for P in [.1, 1, 10, 20, 40, 50, 5600]: Ks.append(K_separator_demister_York(P*psi)) assert_allclose(Ks, Ks_expect) K = K_separator_demister_York(25*psi, horizontal=True) assert_allclose(K, 0.13334999999999997) def test_v_Sounders_Brown(): v = v_Sounders_Brown(K=0.08, rhol=985.4, rhog=1.3) assert_allclose(v, 2.2010906387516167) def test_K_Sounders_Brown_theoretical(): K = K_Sounders_Brown_theoretical(D=150E-6, Cd=0.5) assert_allclose(K, 0.06263114241333939)fluids-0.1.78/AUTHORS0000644000175000017500000000011413632560624012704 0ustar kurtkurtCaleb Bell Joshua Milas fluids-0.1.78/Makefile0000644000175000017500000000145513632560624013305 0ustar kurtkurtPYTHON_FILES:= $(wildcard fluids/*.py) COVERAGE:= coverage path_to_pymodule = $(subst /,.,$(basename $(1))) unittests: clean run html annotate RUN_SUFFIX:= runfile RUN_FILES:= $(addsuffix .$(RUN_SUFFIX),$(PYTHON_FILES)) run: $(RUN_FILES) %.$(RUN_SUFFIX): % $(COVERAGE) run -m -a --include="fluids/*" $(call path_to_pymodule,$<) @touch $@ HTML_DIR:= html_report html: $(HTML_DIR) run $(COVERAGE) html -d $< ANNOTATED_DIR:= code_coverage ANNOTATED_FILES:= $(foreach file,$(PYTHON_FILES),$(ANNOTATED_DIR)/$(file),cover) annotate: $(ANNOTATED_FILES) $(ANNOTATED_DIR)/%,cover: $(ANNOTATED_DIR) % $(COVERAGE) annotate -d $< $(word 2,$^) clean: $(COVERAGE) erase rm -rf $(HTML_DIR) rm -rf $(ANNOTATED_DIR) rm -rf $$(find . -name "*.$(RUN_SUFFIX)" -type f) $(ANNOTATED_DIR) $(HTML_DIR): mkdir -p $@ fluids-0.1.78/requirements_docs.txt0000644000175000017500000000005313632560624016132 0ustar kurtkurtnumpy scipy numpydoc pint nbsphinx ipython fluids-0.1.78/LICENSE.txt0000644000175000017500000000210213632560624013456 0ustar kurtkurtCopyright (C) 2016-2019, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. fluids-0.1.78/appveyor.yml0000644000175000017500000000161713632560624014235 0ustar kurtkurt# File after https://github.com/jowr/jopy/blob/master/appveyor.yml, copyright predominately Jorrit Wronski # Tell appveyor to not use msbuild build: false environment: matrix: - PYTHON: 2.7 # - PYTHON: 3.3 # 3.3's quad or interpolate worked differently in some cases, not worth testing with - PYTHON: 3.5 - PYTHON: 3.6 platform: - x86 - x64 init: - "ECHO %PYTHON%" - cmd: SET PATH=C:\Miniconda3\Scripts;C:\Miniconda\Scripts;%PATH% - cmd: conda update -yq conda - cmd: conda install -yq conda-env conda-build - cmd: conda create -yq -n condaenv python=%PYTHON% install: - cmd: activate condaenv - cmd: conda install -yq numpy scipy pip pytest pandas - cmd: pip install pytest-cov coveralls sympy fuzzywuzzy pint - cmd: python setup.py install test_script: - cmd: py.test --cov-report html --cov=fluids -m "not online and not thermo" branches: only: - release fluids-0.1.78/MANIFEST.in0000644000175000017500000000035213632560624013376 0ustar kurtkurtinclude LICENSE.txt AUTHORS README.rst pytest.ini recursive-include tests * recursive-include docs * global-exclude __pycache__ global-exclude *.py[co] global-exclude *.coverage global-exclude *.so global-exclude *.ipynb_checkpoints fluids-0.1.78/fluids/0000755000175000017500000000000013632560624013126 5ustar kurtkurtfluids-0.1.78/fluids/piping.py0000644000175000017500000006307713632560624015003 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import pi from fluids.constants import inch __all__ = ['nearest_pipe', 'gauge_from_t', 't_from_gauge', 'wire_schedules'] # Schedules 5, 10, 20, 30, 40, 60, 80, 100, 120, 140, 160 from # ASME B36.10M - Welded and Seamless Wrought Steel Pipe # All schedule lists stored in mm, other than NPS. # i = inner diameter, o = outer diameter, and t = wall thickness in variable names NPS5 = [0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 30] S5i = [18, 23.4, 30.1, 38.9, 45, 57, 68.78, 84.68, 97.38, 110.08, 135.76, 162.76, 213.56, 266.2, 315.88, 347.68, 398.02, 448.62, 498.44, 549.44, 598.92, 749.3] S5o = [21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 762] S5t = [1.65, 1.65, 1.65, 1.65, 1.65, 1.65, 2.11, 2.11, 2.11, 2.11, 2.77, 2.77, 2.77, 3.4, 3.96, 3.96, 4.19, 4.19, 4.78, 4.78, 5.54, 6.35] NPS10 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36] S10i = [7.82, 10.4, 13.8, 17.08, 22.48, 27.86, 36.66, 42.76, 54.76, 66.9, 82.8, 95.5, 108.2, 134.5, 161.5, 211.58, 264.62, 314.66, 342.9, 393.7, 444.3, 495.3, 546.3, 597.3, 644.16, 695.16, 746.16, 797.16, 848.16, 898.16] S10o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 660, 711, 762, 813, 864, 914] S10t = [1.24, 1.65, 1.65, 2.11, 2.11, 2.77, 2.77, 2.77, 2.77, 3.05, 3.05, 3.05, 3.05, 3.4, 3.4, 3.76, 4.19, 4.57, 6.35, 6.35, 6.35, 6.35, 6.35, 6.35, 7.92, 7.92, 7.92, 7.92, 7.92, 7.92] NPS20 = [8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36] S20i = [206.4, 260.3, 311.1, 339.76, 390.56, 441.16, 488.94, 539.94, 590.94, 634.6, 685.6, 736.6, 787.6, 838.6, 888.6] S20o = [219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 660, 711, 762, 813, 864, 914] S20t = [6.35, 6.35, 6.35, 7.92, 7.92, 7.92, 9.53, 9.53, 9.53, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7] NPS30 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 8, 10, 12, 14, 16, 18, 20, 22, 24, 28, 30, 32, 34, 36] S30i = [7.4, 10, 13.4, 16.48, 21.88, 27.6, 36.26, 41.94, 53.94, 63.44, 79.34, 92.04, 104.74, 205.02, 257.4, 307.04, 336.54, 387.34, 434.74, 482.6, 533.6, 581.46, 679.24, 730.24, 781.24, 832.24, 882.24] S30o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 711, 762, 813, 864, 914] S30t = [1.45, 1.85, 1.85, 2.41, 2.41, 2.9, 2.97, 3.18, 3.18, 4.78, 4.78, 4.78, 4.78, 7.04, 7.8, 8.38, 9.53, 9.53, 11.13, 12.7, 12.7, 14.27, 15.88, 15.88, 15.88, 15.88, 15.88] NPS40 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 24, 32, 34, 36] S40i = [6.84, 9.22, 12.48, 15.76, 20.96, 26.64, 35.08, 40.94, 52.48, 62.68, 77.92, 90.12, 102.26, 128.2, 154.08, 202.74, 254.46, 303.18, 333.34, 381, 428.46, 477.82, 575.04, 778.04, 829.04, 875.9] S40o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 610, 813, 864, 914] S40t = [1.73, 2.24, 2.31, 2.77, 2.87, 3.38, 3.56, 3.68, 3.91, 5.16, 5.49, 5.74, 6.02, 6.55, 7.11, 8.18, 9.27, 10.31, 11.13, 12.7, 14.27, 15.09, 17.48, 17.48, 17.48, 19.05] NPS60 = [8, 10, 12, 14, 16, 18, 20, 22, 24] S60i = [198.48, 247.6, 295.26, 325.42, 373.08, 418.9, 466.76, 514.54, 560.78] S60o = [219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S60t = [10.31, 12.7, 14.27, 15.09, 16.66, 19.05, 20.62, 22.23, 24.61] NPS80 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24] S80i = [5.48, 7.66, 10.7, 13.84, 18.88, 24.3, 32.5, 38.14, 49.22, 58.98, 73.66, 85.44, 97.18, 122.24, 146.36, 193.7, 242.82, 288.84, 317.5, 363.52, 409.34, 455.62, 501.84, 548.08] S80o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S80t = [2.41, 3.02, 3.2, 3.73, 3.91, 4.55, 4.85, 5.08, 5.54, 7.01, 7.62, 8.08, 8.56, 9.53, 10.97, 12.7, 15.09, 17.48, 19.05, 21.44, 23.83, 26.19, 28.58, 30.96] NPS100 = [8, 10, 12, 14, 16, 18, 20, 22, 24] S100i = [188.92, 236.48, 280.92, 307.94, 354.02, 398.28, 442.92, 489.14, 532.22] S100o = [219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S100t = [15.09, 18.26, 21.44, 23.83, 26.19, 29.36, 32.54, 34.93, 38.89] NPS120 = [4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24] S120i = [92.04, 115.9, 139.76, 182.58, 230.12, 273, 300.02, 344.48, 387.14, 431.8, 476.44, 517.96] S120o = [114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S120t = [11.13, 12.7, 14.27, 18.26, 21.44, 25.4, 27.79, 30.96, 34.93, 38.1, 41.28, 46.02] NPS140 = [8, 10, 12, 14, 16, 18, 20, 22, 24] S140i = [177.86, 222.2, 266.64, 292.1, 333.34, 377.66, 419.1, 463.74, 505.26] S140o = [219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S140t = [20.62, 25.4, 28.58, 31.75, 36.53, 39.67, 44.45, 47.63, 52.37] NPS160 = [0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24] S160i = [11.74, 15.58, 20.7, 29.5, 34.02, 42.82, 53.94, 66.64, 87.32, 109.54, 131.78, 173.08, 215.84, 257.16, 284.18, 325.42, 366.52, 407.98, 451.04, 490.92] S160o = [21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610] S160t = [4.78, 5.56, 6.35, 6.35, 7.14, 8.74, 9.53, 11.13, 13.49, 15.88, 18.26, 23.01, 28.58, 33.32, 35.71, 40.49, 45.24, 50.01, 53.98, 59.54] # Schedules designated STD, XS, and XXS NPSSTD = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48] STDi = [6.84, 9.22, 12.48, 15.76, 20.96, 26.64, 35.08, 40.94, 52.48, 62.68, 77.92, 90.12, 102.26, 128.2, 154.08, 202.74, 254.46, 304.74, 336.54, 387.34, 437.94, 488.94, 539.94, 590.94, 640.94, 691.94, 742.94, 793.94, 844.94, 894.94, 945.94, 996.94, 1047.94, 1098.94, 1148.94, 1199.94] STDo = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 660, 711, 762, 813, 864, 914, 965, 1016, 1067, 1118, 1168, 1219] STDt = [1.73, 2.24, 2.31, 2.77, 2.87, 3.38, 3.56, 3.68, 3.91, 5.16, 5.49, 5.74, 6.02, 6.55, 7.11, 8.18, 9.27, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53] NPSXS = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48] XSi = [5.48, 7.66, 10.7, 13.84, 18.88, 24.3, 32.5, 38.14, 49.22, 58.98, 73.66, 85.44, 97.18, 122.24, 146.36, 193.7, 247.6, 298.4, 330.2, 381, 431.6, 482.6, 533.6, 584.6, 634.6, 685.6, 736.6, 787.6, 838.6, 888.6, 939.6, 990.6, 1041.6, 1092.6, 1142.6, 1193.6] XSo = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273, 323.8, 355.6, 406.4, 457, 508, 559, 610, 660, 711, 762, 813, 864, 914, 965, 1016, 1067, 1118, 1168, 1219] XSt = [2.41, 3.02, 3.2, 3.73, 3.91, 4.55, 4.85, 5.08, 5.54, 7.01, 7.62, 8.08, 8.56, 9.53, 10.97, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7] NPSXXS = [0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4, 5, 6, 8, 10, 12] XXSi = [6.36, 11.06, 15.22, 22.8, 28, 38.16, 44.96, 58.42, 80.06, 103.2, 124.4, 174.64, 222.2, 273] XXSo = [21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 114.3, 141.3, 168.3, 219.1, 273, 323.8] XXSt = [7.47, 7.82, 9.09, 9.7, 10.15, 11.07, 14.02, 15.24, 17.12, 19.05, 21.95, 22.23, 25.4, 25.4] NPSS5 = [0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 30] SS5DN = [15, 20, 25, 32, 40, 50, 65, 80, 90, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 750] SS5i = [18, 23.4, 30.1, 38.9, 45, 57, 68.78, 84.68, 97.38, 110.08, 135.76, 162.76, 213.56, 266.3, 315.98, 347.68, 398.02, 448.62, 498.44, 549.44, 598.92, 749.3] SS5o = [21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273.1, 323.9, 355.6, 406.4, 457, 508, 559, 610, 762] SS5t = [1.65, 1.65, 1.65, 1.65, 1.65, 1.65, 2.11, 2.11, 2.11, 2.11, 2.77, 2.77, 2.77, 3.4, 3.96, 3.96, 4.19, 4.19, 4.78, 4.78, 5.54, 6.35] # Schedules 10, 40 and 80 from ASME B36.19M - Stainless Steel Pipe NPSS10 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 30] SS10DN = [6, 8, 10, 15, 20, 25, 32, 40, 50, 65, 80, 90, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 750] SS10i = [7.82, 10.4, 13.8, 17.08, 22.48, 27.86, 36.66, 42.76, 54.76, 66.9, 82.8, 95.5, 108.2, 134.5, 161.5, 211.58, 264.72, 314.76, 346.04, 396.84, 447.44, 496.92, 547.92, 597.3, 746.16] SS10o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273.1, 323.9, 355.6, 406.4, 457, 508, 559, 610, 762] SS10t = [1.24, 1.65, 1.65, 2.11, 2.11, 2.77, 2.77, 2.77, 2.77, 3.05, 3.05, 3.05, 3.05, 3.4, 3.4, 3.76, 4.19, 4.57, 4.78, 4.78, 4.78, 5.54, 5.54, 6.35, 7.92] NPSS40 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 24] SS40DN = [6, 8, 10, 15, 20, 25, 32, 40, 50, 65, 80, 90, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 600] SS40i = [6.84, 9.22, 12.48, 15.76, 20.96, 26.64, 35.08, 40.94, 52.48, 62.68, 77.92, 90.12, 102.26, 128.2, 154.08, 202.74, 254.56, 304.84, 336.54, 387.34, 437.94, 488.94, 590.94] SS40o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273.1, 323.9, 355.6, 406.4, 457, 508, 610] SS40t = [1.73, 2.24, 2.31, 2.77, 2.87, 3.38, 3.56, 3.68, 3.91, 5.16, 5.49, 5.74, 6.02, 6.55, 7.11, 8.18, 9.27, 9.53, 9.53, 9.53, 9.53, 9.53, 9.53] NPSS80 = [0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 3.5, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 24] SS80DN = [6, 8, 10, 15, 20, 25, 32, 40, 50, 65, 80, 90, 100, 125, 150, 200, 250, 300, 350, 400, 450, 500, 600] SS80i = [5.48, 7.66, 10.7, 13.84, 18.88, 24.3, 32.5, 38.14, 49.22, 58.98, 73.66, 85.44, 97.18, 122.24, 146.36, 193.7, 247.7, 298.5, 330.2, 381, 431.6, 482.6, 584.6] SS80o = [10.3, 13.7, 17.1, 21.3, 26.7, 33.4, 42.2, 48.3, 60.3, 73, 88.9, 101.6, 114.3, 141.3, 168.3, 219.1, 273.1, 323.9, 355.6, 406.4, 457, 508, 610] SS80t = [2.41, 3.02, 3.2, 3.73, 3.91, 4.55, 4.85, 5.08, 5.54, 7.01, 7.62, 8.08, 8.56, 9.53, 10.97, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7, 12.7] schedule_lookup = { '40': (NPS40, S40i, S40o, S40t), '5': (NPS5, S5i, S5o, S5t), '10': (NPS10, S10i, S10o, S10t), '20': (NPS20, S20i, S20o, S20t), '30': (NPS30, S30i, S30o, S30t), '60': (NPS60, S60i, S60o, S60t), '80': (NPS80, S80i, S80o, S80t), '100': (NPS100, S100i, S100o, S100t), '120': (NPS120, S120i, S120o, S120t), '140': (NPS140, S140i, S140o, S140t), '160': (NPS160, S160i, S160o, S160t), 'STD': (NPSSTD, STDi, STDo, STDt), 'XS': (NPSXS, XSi, XSo, XSt), 'XXS': (NPSXXS, XXSi, XXSo, XXSt), '5S': (NPSS5, SS5i, SS5o, SS5t), '10S': (NPSS10, SS10i, SS10o, SS10t), '40S': (NPSS40, SS40i, SS40o, SS40t), '80S': (NPSS80, SS80i, SS80o, SS80t)} def nearest_pipe(Do=None, Di=None, NPS=None, schedule='40'): r'''Searches for and finds the nearest standard pipe size to a given specification. Acceptable inputs are: - Nominal pipe size - Nominal pipe size and schedule - Outer diameter `Do` - Outer diameter `Do` and schedule - Inner diameter `Di` - Inner diameter `Di` and schedule Acceptable schedules are: '5', '10', '20', '30', '40', '60', '80', '100', '120', '140', '160', 'STD', 'XS', 'XXS', '5S', '10S', '40S', '80S'. Parameters ---------- Do : float Pipe outer diameter, [m] Di : float Pipe inner diameter, [m] NPS : float Nominal pipe size, [-] schedule : str String representing schedule size Returns ------- NPS : float Nominal pipe size, [-] Di : float Pipe inner diameter, [m] Do : float Pipe outer diameter, [m] t : float Pipe wall thickness, [m] Notes ----- Internal units within this function are mm. The imperial schedules are not quite identical to these value, but all rounding differences happen in the sub-0.1 mm level. Examples -------- >>> nearest_pipe(Di=0.021) (1, 0.02664, 0.0334, 0.0033799999999999998) >>> nearest_pipe(Do=.273, schedule='5S') (10, 0.26630000000000004, 0.2731, 0.0034) References ---------- .. [1] American National Standards Institute, and American Society of Mechanical Engineers. B36.10M-2004: Welded and Seamless Wrought Steel Pipe. New York: American Society of Mechanical Engineers, 2004. .. [2] American National Standards Institute, and American Society of Mechanical Engineers. B36-19M-2004: Stainless Steel Pipe. New York, N.Y.: American Society of Mechanical Engineers, 2004. ''' if Di: Di *= 1E3 if Do: Do *= 1E3 if NPS: NPS = float(NPS) def Di_lookup(Di, NPSes, Dis, Dos, ts): for i in range(len(Dis)): # Go up ascending list; once larger than specified, return if Dis[-1] < Di: return None if Dis[i] >= Di: _nps, _di, _do, _t = NPSes[i], Dis[i], Dos[i], ts[i] return (_nps, _di, _do, _t) raise Exception('Di lookup failed') def Do_lookup(Do, NPSes, Dis, Dos, ts): for i in range(len(Dos)): # Go up ascending list; once larger than specified, return if Dos[-1] < Do: return None if Dos[i] >= Do: _nps, _di, _do, _t = NPSes[i], Dis[i], Dos[i], ts[i] return (_nps, _di, _do, _t) raise Exception('Do lookup failed') def NPS_lookup(NPS, NPSes, Dis, Dos, ts): for i in range(len(NPSes)): # Go up ascending list; once larger than specified, return if NPSes[i] == NPS: _nps, _di, _do, _t = NPSes[i], Dis[i], Dos[i], ts[i] return (_nps, _di, _do, _t) raise Exception('NPS not in list') # If accidentally given an numerical schedule, convert it to a string schedule_type = type(schedule) if schedule_type in (int, float): schedule = str(int(schedule)) if schedule not in schedule_lookup: raise ValueError('Schedule not recognized') else: NPSes, Dis, Dos, ts = schedule_lookup[schedule] # Handle the three cases of different inputs if Di: nums = Di_lookup(Di, NPSes, Dis, Dos, ts) elif Do: nums = Do_lookup(Do, NPSes, Dis, Dos, ts) elif NPS: nums = NPS_lookup(NPS, NPSes, Dis, Dos, ts) if nums is None: raise ValueError('Pipe input is larger than max of selected schedule') _nps, _di, _do, _t = nums return _nps, _di/1E3, _do/1E3, _t/1E3 ### Wire gauge schedules # Stub's Steel Wire Gage SSWG_integers = list(range(1, 81)) SSWG_inch = [0.227, 0.219, 0.212, 0.207, 0.204, 0.201, 0.199, 0.197, 0.194, 0.191, 0.188, 0.185, 0.182, 0.18, 0.178, 0.175, 0.172, 0.168, 0.164, 0.161, 0.157, 0.155, 0.153, 0.151, 0.148, 0.146, 0.143, 0.139, 0.134, 0.127, 0.12, 0.115, 0.112, 0.11, 0.108, 0.106, 0.103, 0.101, 0.099, 0.097, 0.095, 0.092, 0.088, 0.085, 0.081, 0.079, 0.077, 0.075, 0.072, 0.069, 0.066, 0.063, 0.058, 0.055, 0.05, 0.045, 0.042, 0.041, 0.04, 0.039, 0.038, 0.037, 0.036, 0.035, 0.033, 0.032, 0.031, 0.03, 0.029, 0.027, 0.026, 0.024, 0.023, 0.022, 0.02, 0.018, 0.016, 0.015, 0.014, 0.013] SSWG_SI = [round(i*inch, 7) for i in SSWG_inch] # 7 decimals for equal conversion # British Standard Wire Gage (Imperial Wire Gage) BSWG_integers = [0.143, .167, 0.2, 0.25, 0.33, 0.5] + list(range(51)) BSWG_inch = [0.5, 0.464, 0.432, 0.4, 0.372, 0.348, 0.324, 0.3, 0.276, 0.252, 0.232, 0.212, 0.192, 0.176, 0.16, 0.144, 0.128, 0.116, 0.104, 0.092, 0.08, 0.072, 0.064, 0.056, 0.048, 0.04, 0.036, 0.032, 0.028, 0.024, 0.022, 0.02, 0.018, 0.0164, 0.0149, 0.0136, 0.0124, 0.0116, 0.0108, 0.01, 0.0092, 0.0084, 0.0076, 0.0068, 0.006, 0.0052, 0.0048, 0.0044, 0.004, 0.0036, 0.0032, 0.0028, 0.0024, 0.002, 0.0016, 0.0012, 0.001] BSWG_SI = [round(i*inch,8) for i in BSWG_inch] # 8 decimals for equal conversion # Music Wire Gauge MWG_integers = [.167, 0.2, 0.25, 0.33, 0.5] + list(range(46)) MWG_inch = [0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.011, 0.012, 0.013, 0.014, 0.016, 0.018, 0.02, 0.022, 0.024, 0.026, 0.029, 0.031, 0.033, 0.035, 0.037, 0.039, 0.041, 0.043, 0.045, 0.047, 0.049, 0.051, 0.055, 0.059, 0.063, 0.067, 0.071, 0.075, 0.08, 0.085, 0.09, 0.095, 0.1, 0.106, 0.112, 0.118, 0.124, 0.13, 0.138, 0.146, 0.154, 0.162, 0.17, 0.18] MWG_SI = [round(i*inch,7) for i in MWG_inch] # 7 decimals for equal conversion # Scale gets bigger instead of smaller; reverse for convenience MWG_integers.reverse() MWG_inch.reverse() MWG_SI.reverse() # Steel Wire Gage -Also Washburn & Moen gage, American Steel gage; # Wire Co.gage; Roebling Wire Gages. SWG_integers = [0.143, .167, 0.2, 0.25, 0.33, 0.5] + list(range(51)) SWG_inch = [0.49, 0.4615, 0.4305, 0.3938, 0.3625, 0.331, 0.3065, 0.283, 0.2625, 0.2437, 0.2253, 0.207, 0.192, 0.177, 0.162, 0.1483, 0.135, 0.1205, 0.1055, 0.0915, 0.08, 0.072, 0.0625, 0.054, 0.0475, 0.041, 0.0348, 0.0318, 0.0286, 0.0258, 0.023, 0.0204, 0.0181, 0.0173, 0.0162, 0.015, 0.014, 0.0132, 0.0128, 0.0118, 0.0104, 0.0095, 0.009, 0.0085, 0.008, 0.0075, 0.007, 0.0066, 0.0062, 0.006, 0.0058, 0.0055, 0.0052, 0.005, 0.0048, 0.0046, 0.0044] SWG_SI = [round(i*inch,8) for i in SWG_inch] # 8 decimals for equal conversion # American Wire or Brown & Sharpe Gage AWG_integers = [.167, 0.2, 0.25, 0.33, 0.5] + list(range(51)) AWG_inch = [0.58, 0.5165, 0.46, 0.4096, 0.3648, 0.3249, 0.2893, 0.2576, 0.2294, 0.2043, 0.1819, 0.162, 0.1443, 0.1285, 0.1144, 0.1019, 0.0907, 0.0808, 0.072, 0.0641, 0.0571, 0.0508, 0.0453, 0.0403, 0.0359, 0.032, 0.0285, 0.0253, 0.0226, 0.0201, 0.0179, 0.0159, 0.0142, 0.0126, 0.0113, 0.01, 0.00893, 0.00795, 0.00708, 0.0063, 0.00561, 0.005, 0.00445, 0.00396, 0.00353, 0.00314, 0.0028, 0.00249, 0.00222, 0.00198, 0.00176, 0.00157, 0.0014, 0.00124, 0.00111, 0.00099] AWG_SI = [round(i*inch,9) for i in AWG_inch] # 9 decimals for equal conversion # Birmingham or Stub's Iron Wire Gage BWG_integers = [0.2, 0.25, 0.33, 0.5] + list(range(37)) BWG_inch = [0.5, 0.454, 0.425, 0.38, 0.34, 0.3, 0.284, 0.259, 0.238, 0.22, 0.203, 0.18, 0.165, 0.148, 0.134, 0.12, 0.109, 0.095, 0.083, 0.072, 0.065, 0.058, 0.049, 0.042, 0.035, 0.032, 0.028, 0.025, 0.022, 0.02, 0.018, 0.016, 0.014, 0.013, 0.012, 0.01, 0.009, 0.008, 0.007, 0.005, 0.004] BWG_SI = [round(i*inch,6) for i in BWG_inch] wire_schedules = {'BWG': (BWG_integers, BWG_inch, BWG_SI, True), 'AWG': (AWG_integers, AWG_inch, AWG_SI, True), 'SWG': (SWG_integers, SWG_inch, SWG_SI, True), 'MWG': (MWG_integers, MWG_inch, MWG_SI, False), 'BSWG': (BSWG_integers, BSWG_inch, BSWG_SI, True), 'SSWG': (SSWG_integers, SSWG_inch, SSWG_SI, True)} def gauge_from_t(t, SI=True, schedule='BWG'): r'''Looks up the gauge of a given wire thickness of given schedule. Values are all non-linear, and tabulated internally. Parameters ---------- t : float Thickness, [m] SI : bool, optional If False, requires that the thickness is given in inches not meters schedule : str Gauge schedule, one of 'BWG', 'AWG', 'SWG', 'MWG', 'BSWG', or 'SSWG' Returns ------- gauge : float-like Wire Gauge, [-] Notes ----- An internal variable, tol, is used in the selection of the wire gauge. If the next smaller wire gauge is within 10% of the difference between it and the previous wire gauge, the smaller wire gauge is selected. Accordingly, this function can return a gauge with a thickness smaller than desired in some circumstances. * Birmingham Wire Gauge (BWG) ranges from 0.2 (0.5 inch) to 36 (0.004 inch). * American Wire Gauge (AWG) ranges from 0.167 (0.58 inch) to 51 (0.00099 inch). These are used for electrical wires. * Steel Wire Gauge (SWG) ranges from 0.143 (0.49 inch) to 51 (0.0044 inch). Also called Washburn & Moen wire gauge, American Steel gauge, Wire Co. gauge, and Roebling wire gauge. * Music Wire Gauge (MWG) ranges from 0.167 (0.004 inch) to 46 (0.18 inch). Also called Piano Wire Gauge. * British Standard Wire Gage (BSWG) ranges from 0.143 (0.5 inch) to 51 (0.001 inch). Also called Imperial Wire Gage (IWG). * Stub's Steel Wire Gage (SSWG) ranges from 1 (0.227 inch) to 80 (0.013 inch) Examples -------- >>> gauge_from_t(.5, SI=False, schedule='BWG') 0.2 References ---------- .. [1] Oberg, Erik, Franklin D. Jones, and Henry H. Ryffel. Machinery's Handbook. Industrial Press, Incorporated, 2012. ''' tol = 0.1 # Handle units if SI: t_inch = round(t/inch, 9) # all schedules are in inches else: t_inch = t # Get the schedule try: sch_integers, sch_inch, sch_SI, decreasing = wire_schedules[schedule] except: raise ValueError('Wire gauge schedule not found') # Check if outside limits sch_max, sch_min = sch_inch[0], sch_inch[-1] if t_inch > sch_max: raise ValueError('Input thickness is above the largest in the selected schedule') # If given thickness is exactly in the index, be happy if t_inch in sch_inch: gauge = sch_integers[sch_inch.index(t_inch)] else: for i in range(len(sch_inch)): if sch_inch[i] >= t_inch: larger = sch_inch[i] else: break if larger == sch_min: gauge = sch_min # If t is under the lowest schedule, be happy else: smaller = sch_inch[i] if (t_inch - smaller) <= tol*(larger - smaller): gauge = sch_integers[i] else: gauge = sch_integers[i-1] return gauge def t_from_gauge(gauge, SI=True, schedule='BWG'): r'''Looks up the thickness of a given wire gauge of given schedule. Values are all non-linear, and tabulated internally. Parameters ---------- gauge : float-like Wire Gauge, [] SI : bool, optional If False, will return a thickness in inches not meters schedule : str Gauge schedule, one of 'BWG', 'AWG', 'SWG', 'MWG', 'BSWG', or 'SSWG' Returns ------- t : float Thickness, [m] Notes ----- * Birmingham Wire Gauge (BWG) ranges from 0.2 (0.5 inch) to 36 (0.004 inch). * American Wire Gauge (AWG) ranges from 0.167 (0.58 inch) to 51 (0.00099 inch). These are used for electrical wires. * Steel Wire Gauge (SWG) ranges from 0.143 (0.49 inch) to 51 (0.0044 inch). Also called Washburn & Moen wire gauge, American Steel gauge, Wire Co. gauge, and Roebling wire gauge. * Music Wire Gauge (MWG) ranges from 0.167 (0.004 inch) to 46 (0.18 inch). Also called Piano Wire Gauge. * British Standard Wire Gage (BSWG) ranges from 0.143 (0.5 inch) to 51 (0.001 inch). Also called Imperial Wire Gage (IWG). * Stub's Steel Wire Gage (SSWG) ranges from 1 (0.227 inch) to 80 (0.013 inch) Examples -------- >>> t_from_gauge(.2, False, 'BWG') 0.5 References ---------- .. [1] Oberg, Erik, Franklin D. Jones, and Henry H. Ryffel. Machinery's Handbook. Industrial Press, Incorporated, 2012. ''' try: sch_integers, sch_inch, sch_SI, decreasing = wire_schedules[schedule] except: raise ValueError("Wire gauge schedule not found; supported gauges are \ 'BWG', 'AWG', 'SWG', 'MWG', 'BSWG', and 'SSWG'.") try: i = sch_integers.index(gauge) except: raise ValueError('Input gauge not found in selected schedule') if SI: return sch_SI[i] # returns thickness in m else: return sch_inch[i] # returns thickness in inch fluids-0.1.78/fluids/geometry.py0000644000175000017500000037676713632560624015365 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018, 2019, 2020 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import (pi, sin, cos, tan, asin, acos, atan, acosh, log, radians, degrees) from fluids.constants import inch from fluids.numerics import newton, brenth, ellipe, horner, chebval, linspace from fluids.numerics import numpy as np __all__ = ['TANK', 'HelicalCoil', 'PlateExchanger', 'RectangularFinExchanger', 'RectangularOffsetStripFinExchanger', 'HyperbolicCoolingTower', 'AirCooledExchanger', 'SA_partial_sphere', 'V_partial_sphere', 'V_horiz_conical', 'V_horiz_ellipsoidal', 'V_horiz_guppy', 'V_horiz_spherical', 'V_horiz_torispherical', 'V_vertical_conical', 'V_vertical_ellipsoidal', 'V_vertical_spherical', 'V_vertical_torispherical', 'V_vertical_conical_concave', 'V_vertical_ellipsoidal_concave', 'V_vertical_spherical_concave', 'V_vertical_torispherical_concave', 'a_torispherical', 'SA_ellipsoidal_head', 'SA_conical_head', 'SA_guppy_head', 'SA_torispheroidal', 'V_from_h', 'SA_tank', 'sphericity', 'aspect_ratio', 'circularity', 'A_cylinder', 'V_cylinder', 'A_hollow_cylinder', 'V_hollow_cylinder', 'A_multiple_hole_cylinder', 'V_multiple_hole_cylinder', 'pitch_angle_solver'] ### Spherical Vessels, partially filled def SA_partial_sphere(D, h): r'''Calculates surface area of a partial sphere according to [1]_. If h is half of D, the shape is half a sphere. No bottom is considered in this function. Valid inputs are positive values of D and h, with h always smaller or equal to D. .. math:: a = \sqrt{h(2r - h)} .. math:: A = \pi(a^2 + h^2) Parameters ---------- D : float Diameter of the sphere, [m] h : float Height, as measured from the cap to where the sphere is cut off [m] Returns ------- SA : float Surface area [m^2] Examples -------- >>> SA_partial_sphere(1., 0.7) 2.199114857512855 References ---------- .. [1] Weisstein, Eric W. "Spherical Cap." Text. Accessed December 22, 2015. http://mathworld.wolfram.com/SphericalCap.html.''' r = D*0.5 a = (h*(2.*r - h))**0.5 return pi*(a*a + h*h) def V_partial_sphere(D, h): r'''Calculates volume of a partial sphere according to [1]_. If h is half of D, the shape is half a sphere. No bottom is considered in this function. Valid inputs are positive values of D and h, with h always smaller or equal to D. .. math:: a = \sqrt{h(2r - h)} .. math:: V = 1/6 \pi h(3a^2 + h^2) Parameters ---------- D : float Diameter of the sphere, [m] h : float Height, as measured up to where the sphere is cut off, [m] Returns ------- V : float Volume [m^3] Examples -------- >>> V_partial_sphere(1., 0.7) 0.4105014400690663 References ---------- .. [1] Weisstein, Eric W. "Spherical Cap." Text. Accessed December 22, 2015. http://mathworld.wolfram.com/SphericalCap.html.''' if h <= 0.0: return 0.0 r = 0.5*D a = (h*(2.*r - h))**0.5 return 1/6.*pi*h*(3.*a*a + h*h) #def V_horizontal_bullet(D, L, H, b=None): # # As in GPSA # if not b: # b = 0.25*D # elliptical 2:1 heads # Ze = H/D # Zc = H/D # K1 = 2*b/D # alpha = 2*atan(H/sqrt(2*H*D/2 - H**2)) # fZc = (alpha - sin(alpha)*cos(alpha))/pi # fZe = -H**2/D**2*(-3 + 2*H/D) # V = 1/6.*pi*K1*D**3*fZe + 1/4.*pi*D**2*L*fZc # return V #print(V_horizontal_bullet(1., 5., .4999999999999, 0.000000000000000001)) #def V_vertical_bullet(D, L, H, b=None): # K1 = 2*b/D # Ze = (H1 + H2)/K1*D # is divided by D? # fZe = -((H1 + H2)) # # V = 1/6.*pi*K1*D**3*fZe + 1/4.*pi*D**2*L*fZc # return V ### Functions as developed by Dan Jones def V_horiz_conical(D, L, a, h, headonly=False): r'''Calculates volume of a tank with conical ends, according to [1]_. .. math:: V_f = A_fL + \frac{2aR^2}{3}K, \;\;0 \le h < R\\ .. math:: V_f = A_fL + \frac{2aR^2}{3}\pi/2,\;\; h = R\\ .. math:: V_f = A_fL + \frac{2aR^2}{3}(\pi-K), \;\; R< h \le 2R .. math:: K = \cos^{-1} M + M^3\cosh^{-1} \frac{1}{M} - 2M\sqrt{1 - M^2} .. math:: M = \left|\frac{R-h}{R}\right| .. math:: Af = R^2\cos^{-1}\frac{R-h}{R} - (R-h)\sqrt{2Rh - h^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] L : float Length of the main cylindrical section, [m] a : float Distance the cone head extends on one side, [m] h : float Height, as measured up to where the fluid ends, [m] headonly : bool, optional Function returns only the volume of a single head side if True Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_horiz_conical(D=108., L=156., a=42., h=36)/231 2041.1923581273443 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 R = 0.5*D R_third = R/3.0 t0 = (R-h)/R if t0 < -1.0 or t0 > 1.0: raise ValueError("Unphysical height") Af = R*R*acos(t0) - (R-h)*(h*(R + R - h))**0.5 M = abs(t0) if h == R: Vf = a*R*R_third*pi else: K = acos(M) + M*M*M*acosh(1./M) - 2.*M*(1.-M*M)**0.5 if 0. <= h < R: Vf = 2.*a*R*R_third*K else: # elif R < h <= 2.0*R: Vf = 2.*a*R*R_third*(pi - K) if headonly: Vf = 0.5*Vf else: Vf += Af*L return Vf def V_horiz_ellipsoidal(D, L, a, h, headonly=False): r'''Calculates volume of a tank with ellipsoidal ends, according to [1]_. .. math:: V_f = A_fL + \pi a h^2\left(1 - \frac{h}{3R}\right) .. math:: Af = R^2\cos^{-1}\frac{R-h}{R} - (R-h)\sqrt{2Rh - h^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] L : float Length of the main cylindrical section, [m] a : float Distance the ellipsoidal head extends on one side, [m] h : float Height, as measured up to where the fluid ends, [m] headonly : bool, optional Function returns only the volume of a single head side if True Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_horiz_ellipsoidal(D=108, L=156, a=42, h=36)/231. 2380.9565415578145 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 R = 0.5*D Af = R*R*acos((R-h)/R) - (R-h)*(2*R*h - h*h)**0.5 Vf = pi*a*h*h*(1 - h/(3.*R)) if headonly: Vf = 0.5*Vf else: Vf += Af*L return Vf def V_horiz_guppy(D, L, a, h, headonly=False): r'''Calculates volume of a tank with guppy heads, according to [1]_. .. math:: V_f = A_fL + \frac{2aR^2}{3}\cos^{-1}\left(1 - \frac{h}{R}\right) +\frac{2a}{9R}\sqrt{2Rh - h^2}(2h-3R)(h+R) .. math:: Af = R^2\cos^{-1}\frac{R-h}{R} - (R-h)\sqrt{2Rh - h^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] L : float Length of the main cylindrical section, [m] a : float Distance the guppy head extends on one side, [m] h : float Height, as measured up to where the fluid ends, [m] headonly : bool, optional Function returns only the volume of a single head side if True Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_horiz_guppy(D=108., L=156., a=42., h=36)/231. 1931.7208029476762 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 R = 0.5*D Af = R*R*acos((R-h)/R) - (R-h)*(2.*R*h - h*h)**0.5 Vf = 2.*a*R*R/3.*acos(1. - h/R) + 2.*a/9./R*(2*R*h - h**2)**0.5*(2*h - 3*R)*(h + R) if headonly: Vf = Vf/2. else: Vf += Af*L return Vf def V_horiz_spherical(D, L, a, h, headonly=False): r'''Calculates volume of a tank with spherical heads, according to [1]_. .. math:: V_f = A_fL + \frac{\pi a}{6}(3R^2 + a^2),\;\; h = R, |a|\le R .. math:: V_f = A_fL + \frac{\pi a}{3}(3R^2 + a^2),\;\; h = D, |a|\le R .. math:: V_f = A_fL + \pi a h^2\left(1 - \frac{h}{3R}\right),\;\; h = 0, \text{ or } |a| = 0, R, -R .. math:: V_f = A_fL + \frac{a}{|a|}\left\{\frac{2r^3}{3}\left[\cos^{-1} \frac{R^2 - rw}{R(w-r)} + \cos^{-1}\frac{R^2 + rw}{R(w+r)} - \frac{z}{r}\left(2 + \left(\frac{R}{r}\right)^2\right) \cos^{-1}\frac{w}{R}\right] - 2\left(wr^2 - \frac{w^3}{3}\right) \tan^{-1}\frac{y}{z} + \frac{4wyz}{3}\right\} ,\;\; h \ne R, D; a \ne 0, R, -R, |a| \ge 0.01D .. math:: V_f = A_fL + \frac{a}{|a|}\left[2\int_w^R(r^2 - x^2)\tan^{-1} \sqrt{\frac{R^2-x^2}{r^2-R^2}}dx - A_f z\right] ,\;\; h \ne R, D; a \ne 0, R, -R, |a| < 0.01D .. math:: Af = R^2\cos^{-1}\frac{R-h}{R} - (R-h)\sqrt{2Rh - h^2} .. math:: r = \frac{a^2 + R^2}{2|a|} .. math:: w = R - h .. math:: y = \sqrt{2Rh-h^2} .. math:: z = \sqrt{r^2 - R^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] L : float Length of the main cylindrical section, [m] a : float Distance the spherical head extends on one side, [m] h : float Height, as measured up to where the fluid ends, [m] headonly : bool, optional Function returns only the volume of a single head side if True Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_horiz_spherical(D=108., L=156., a=42., h=36)/231. 2303.9615116986183 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 R = D/2. r = (a**2 + R**2)/2./abs(a) w = R - h y = (2*R*h - h**2)**0.5 z = (r**2 - R**2)**0.5 Af = R**2*acos((R-h)/R) - (R-h)*(2*R*h - h**2)**0.5 if h == R and abs(a) <= R: Vf = pi*a/6*(3*R**2 + a**2) elif h == D and abs(a) <= R: Vf = pi*a/3*(3*R**2 + a**2) elif h == 0 or a == 0 or a == R or a == -R or z == 0.0: Vf = pi*a*h**2*(1 - h/3./R) elif abs(a) >= 0.01*D: Vf = a/abs(a)*( 2*r**3/3.*(acos((R**2 - r*w)/(R*(w-r))) + acos((R**2+r*w)/(R*(w+r))) - z/r*(2+(R/r)**2)*acos(w/R)) - 2*(w*r**2 - w**3/3)*atan(y/z) + 4*w*y*z/3) else: def V_horiz_spherical_toint(x): return (r**2 - x**2)*atan(((R**2 - x**2)/(r**2 - R**2))**0.5) from scipy.integrate import quad integrated = quad(V_horiz_spherical_toint, w, R)[0] Vf = a/abs(a)*(2*integrated - Af*z) if headonly: Vf = Vf/2. else: Vf += Af*L return Vf def V_horiz_torispherical(D, L, f, k, h, headonly=False): r'''Calculates volume of a tank with torispherical heads, according to [1]_. .. math:: V_f = A_fL + 2V_1, \;\; 0 \le h \le h_1\\ V_f = A_fL + 2(V_{1,max} + V_2 + V_3), \;\; h_1 < h < h_2\\ V_f = A_fL + 2[2V_{1,max} - V_1(h=D-h) + V_{2,max} + V_{3,max}] , \;\; h_2 \le h \le D .. math:: V_1 = \int_0^{\sqrt{2kDh - h^2}} \left[n^2\sin^{-1}\frac{\sqrt {n^2-w^2}}{n} - w\sqrt{n^2-w^2}\right]dx .. math:: V_2 = \int_0^{kD\cos\alpha}\left[n^2\left(\cos^{-1}\frac{w}{n} - \cos^{-1}\frac{g}{n}\right) - w\sqrt{n^2 - w^2} + g\sqrt{n^2 - g^2}\right]dx .. math:: V_3 = \int_w^g(r^2 - x^2)\tan^{-1}\frac{\sqrt{g^2 - x^2}}{z}dx - \frac{z}{2}\left(g^2\cos^{-1}\frac{w}{g} - w\sqrt{2g(h-h_1) - (h-h_1)^2}\right) .. math:: V_{1,max} = v_1(h=h_1) .. math:: v_{2,max} = v_2(h=h_2) .. math:: v_{3,max} = \frac{\pi a_1}{6}(3g^2 + a_1^2) .. math:: a_1 = fD(1-\cos\alpha) .. math:: \alpha = \sin^{-1}\frac{1-2k}{2(f-k)} .. math:: n = R - kD + \sqrt{k^2D^2-x^2} .. math:: g = r\sin\alpha .. math:: r = fD .. math:: h_2 = D - h_1 .. math:: w = R - h .. math:: z = \sqrt{r^2- g^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] L : float Length of the main cylindrical section, [m] f : float Dimensionless dish-radius parameter; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] k : float Dimensionless knuckle-radius parameter; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] h : float Height, as measured up to where the fluid ends, [m] headonly : bool, optional Function returns only the volume of a single head side if True Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_horiz_torispherical(D=108., L=156., f=1., k=0.06, h=36)/231. 2028.626670842139 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 R = D/2. Af = R**2*acos((R-h)/R) - (R-h)*(2*R*h - h**2)**0.5 r = f*D alpha = asin((1 - 2*k)/(2.*(f-k))) a1 = r*(1-cos(alpha)) g = r*sin(alpha) z = r*cos(alpha) h1 = k*D*(1-sin(alpha)) h2 = D - h1 # Chebfun in Python failed on these functions def V1_toint(x, w): # No analytical integral available in MP n = R - k*D + (k**2*D**2 - x**2)**0.5 ans = n**2*asin((n**2-w**2)**0.5/n) - w*(n**2 - w**2)**0.5 return ans def V2_toint(x, w): # No analytical integral available in MP n = R - k*D + (k**2*D**2 - x**2)**0.5 ans = n**2*(acos(w/n) - acos(g/n)) - w*(n**2 - w**2)**0.5 + g*(n**2-g**2)**0.5 return ans def V3_toint(x): # There is an analytical integral in MP, but for all cases we seem to # get ZeroDivisionError: 0.0 cannot be raised to a negative power ans = (r**2-x**2)*atan((g**2-x**2)**0.5/z) return ans from scipy.integrate import quad if 0 <= h <= h1: w = R - h Vf = 2*quad(V1_toint, 0, (2*k*D*h-h**2)**0.5, w)[0] elif h1 < h < h2: w = R - h wmax1 = R - h1 V1max = quad(V1_toint, 0, (2*k*D*h1-h1**2)**0.5, wmax1)[0] V2 = quad(V2_toint, 0, k*D*cos(alpha), w)[0] V3 = quad(V3_toint, w, g)[0] - z/2.*(g**2*acos(w/g) -w*(2*g*(h-h1) - (h-h1)**2)**0.5) Vf = 2*(V1max + V2 + V3) else: w = R - h wmax1 = R - h1 wmax2 = R - h2 wwerird = R - (D - h) V1max = quad(V1_toint, 0, (2*k*D*h1-h1**2)**0.5, wmax1)[0] V1weird = quad(V1_toint, 0, (2*k*D*(D-h)-(D-h)**2)**0.5, wwerird)[0] V2max = quad(V2_toint, 0, k*D*cos(alpha), wmax2)[0] V3max = pi*a1/6.*(3*g**2 + a1**2) Vf = 2*(2*V1max - V1weird + V2max + V3max) if headonly: Vf = Vf/2. else: Vf += Af*L return Vf ### Begin vertical tanks def V_vertical_conical(D, a, h): r'''Calculates volume of a vertical tank with a convex conical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V_f = \frac{\pi}{4}\left(\frac{Dh}{a}\right)^2\left(\frac{h}{3}\right),\; h < a .. math:: V_f = \frac{\pi D^2}{4}\left(h - \frac{2a}{3}\right),\; h\ge a Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the cone head extends under the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_conical(132., 33., 24)/231. 250.67461381371024 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 if h < a: Vf = pi/4*(D*h/a)**2*(h/3.) else: Vf = pi*D**2/4*(h - 2*a/3.) return Vf def V_vertical_ellipsoidal(D, a, h): r'''Calculates volume of a vertical tank with a convex ellipsoidal bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V_f = \frac{\pi}{4}\left(\frac{Dh}{a}\right)^2 \left(a - \frac{h}{3}\right),\; h < a .. math:: V_f = \frac{\pi D^2}{4}\left(h - \frac{a}{3}\right),\; h \ge a Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the ellipsoid head extends under the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_ellipsoidal(132., 33., 24)/231. 783.3581681678445 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 if h < a: Vf = pi/4*(D*h/a)**2*(a - h/3.) else: Vf = pi*D**2/4*(h - a/3.) return Vf def V_vertical_spherical(D, a, h): r'''Calculates volume of a vertical tank with a convex spherical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V_f = \frac{\pi h^2}{4}\left(2a + \frac{D^2}{2a} - \frac{4h}{3}\right),\; h < a .. math:: V_f = \frac{\pi}{4}\left(\frac{2a^3}{3} - \frac{aD^2}{2} + hD^2\right),\; h\ge a Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the spherical head extends under the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_spherical(132., 33., 24)/231. 583.6018352850442 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 if h < a: Vf = pi*h**2/4*(2*a + D**2/2/a - 4*h/3) else: Vf = pi/4*(2*a**3/3 - a*D**2/2 + h*D**2) return Vf def V_vertical_torispherical(D, f, k, h): r'''Calculates volume of a vertical tank with a convex torispherical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V_f = \frac{\pi h^2}{4}\left(2a_1 + \frac{D_1^2}{2a_1} - \frac{4h}{3}\right),\; 0 \le h \le a_1 .. math:: V_f = \frac{\pi}{4}\left(\frac{2a_1^3}{3} + \frac{a_1D_1^2}{2}\right) +\pi u\left[\left(\frac{D}{2}-kD\right)^2 +s\right] + \frac{\pi tu^2}{2} - \frac{\pi u^3}{3} + \pi D(1-2k)\left[ \frac{2u-t}{4}\sqrt{s+tu-u^2} + \frac{t\sqrt{s}}{4} + \frac{k^2D^2}{2}\left(\cos^{-1}\frac{t-2u}{2kD}-\alpha\right)\right] ,\; a_1 < h \le a_1 + a_2 .. math:: V_f = \frac{\pi}{4}\left(\frac{2a_1^3}{3} + \frac{a_1D_1^2}{2}\right) +\frac{\pi t}{2}\left[\left(\frac{D}{2}-kD\right)^2 +s\right] +\frac{\pi t^3}{12} + \pi D(1-2k)\left[\frac{t\sqrt{s}}{4} + \frac{k^2D^2}{2}\sin^{-1}(\cos\alpha)\right] + \frac{\pi D^2}{4}[h-(a_1+a_2)] ,\; a_1 + a_2 < h .. math:: \alpha = \sin^{-1}\frac{1-2k}{2(f-k)} .. math:: a_1 = fD(1-\cos\alpha) .. math:: a_2 = kD\cos\alpha .. math:: D_1 = 2fD\sin\alpha .. math:: s = (kD\sin\alpha)^2 .. math:: t = 2a_2 .. math:: u = h - fD(1-\cos\alpha) Parameters ---------- D : float Diameter of the main cylindrical section, [m] f : float Dimensionless dish-radius parameter; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] k : float Dimensionless knuckle-radius parameter; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_torispherical(D=132., f=1.0, k=0.06, h=24)/231. 904.0688283793511 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' if h <= 0.0: return 0.0 alpha = asin((1-2*k)/(2*(f-k))) a1 = f*D*(1 - cos(alpha)) a2 = k*D*cos(alpha) D1 = 2*f*D*sin(alpha) s = (k*D*sin(alpha))**2 t = 2*a2 u = h - f*D*(1 - cos(alpha)) if 0 <= h <= a1: Vf = pi*h**2/4*(2*a1 + D1**2/2/a1 - 4*h/3) elif a1 < h <= a1 + a2: Vf = (pi/4*(2*a1**3/3 + a1*D1**2/2.) + pi*u*((D/2. - k*D)**2 + s) + pi*t*u**2/2. - pi*u**3/3. + pi*D*(1 - 2*k)*((2*u-t)/4.*(s + t*u - u**2)**0.5 + t*s**0.5/4. + k**2*D**2/2*(acos((t-2*u)/(2*k*D))-alpha))) else: Vf = pi/4*(2*a1**3/3. + a1*D1**2/2.) + pi*t/2.*((D/2 - k*D)**2 + s) + pi*t**3/12. + pi*D*(1 - 2*k)*(t*s**0.5/4 + k**2*D**2/2*asin(cos(alpha))) + pi*D**2/4*(h - (a1 + a2)) return Vf ### Begin vertical tanks with concave heads def V_vertical_conical_concave(D, a, h): r'''Calculates volume of a vertical tank with a concave conical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V = \frac{\pi D^2}{12} \left(3h + a - \frac{(a+h)^3}{a^2}\right) ,\;\; 0 \le h < |a| .. math:: V = \frac{\pi D^2}{12} (3h + a ),\;\; h \ge |a| Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Negative distance the cone head extends inside the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_conical_concave(D=113., a=-33, h=15)/231 251.15825565795188 References ---------- .. [1] Jones, D. "Compute Fluid Volumes in Vertical Tanks." Chemical Processing. December 18, 2003. http://www.chemicalprocessing.com/articles/2003/193/ ''' if h <= 0.0: return 0.0 if h < abs(a): Vf = pi*D**2/12.*(3*h + a - (a+h)**3/a**2) else: Vf = pi*D**2/12.*(3*h + a) return Vf def V_vertical_ellipsoidal_concave(D, a, h): r'''Calculates volume of a vertical tank with a concave ellipsoidal bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V = \frac{\pi D^2}{12} \left(3h + 2a - \frac{(a+h)^2(2a-h)}{a^2}\right) ,\;\; 0 \le h < |a| .. math:: V = \frac{\pi D^2}{12} (3h + 2a ),\;\; h \ge |a| Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Negative distance the eppilsoid head extends inside the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_ellipsoidal_concave(D=113., a=-33, h=15)/231 44.84968851034856 References ---------- .. [1] Jones, D. "Compute Fluid Volumes in Vertical Tanks." Chemical Processing. December 18, 2003. http://www.chemicalprocessing.com/articles/2003/193/ ''' if h <= 0.0: return 0.0 if h < abs(a): Vf = pi*D**2/12.*(3*h + 2*a - (a+h)**2*(2*a-h)/a**2) else: Vf = pi*D**2/12.*(3*h + 2*a) return Vf def V_vertical_spherical_concave(D, a, h): r'''Calculates volume of a vertical tank with a concave spherical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V = \frac{\pi}{12}\left[3D^2h + \frac{a}{2}(3D^2 + 4a^2) + (a+h)^3 \left(4 - \frac{3D^2 + 12a^2}{2a(a+h)}\right)\right],\;\; 0 \le h < |a| .. math:: V = \frac{\pi}{12}\left[3D^2h + \frac{a}{2}(3D^2 + 4a^2) \right] ,\;\; h \ge |a| Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Negative distance the spherical head extends inside the main cylinder, [m] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_spherical_concave(D=113., a=-33, h=15)/231 112.81405437348528 References ---------- .. [1] Jones, D. "Compute Fluid Volumes in Vertical Tanks." Chemical Processing. December 18, 2003. http://www.chemicalprocessing.com/articles/2003/193/ ''' if h <= 0.0: return 0.0 if h < abs(a): Vf = pi/12*(3*D**2*h + a/2.*(3*D**2 + 4*a**2) + (a+h)**3*(4 - (3*D**2+12*a**2)/(2.*a*(a+h)))) else: Vf = pi/12*(3*D**2*h + a/2.*(3*D**2 + 4*a**2)) return Vf def V_vertical_torispherical_concave(D, f, k, h): r'''Calculates volume of a vertical tank with a concave torispherical bottom, according to [1]_. No provision for the top of the tank is made here. .. math:: V = \frac{\pi D^2 h}{4} - v_1(h=a_1+a_2) + v_1(h=a_1 + a_2 -h),\; 0 \le h < a_2 .. math:: V = \frac{\pi D^2 h}{4} - v_1(h=a_1+a_2) + v_2(h=a_1 + a_2 -h),\; a_2 \le h < a_1 + a_2 .. math:: V = \frac{\pi D^2 h}{4} - v_1(h=a_1+a_2) + 0,\; h \ge a_1 + a_2 .. math:: v_1 = \frac{\pi}{4}\left(\frac{2a_1^3}{3} + \frac{a_1D_1^2}{2}\right) +\pi u\left[\left(\frac{D}{2}-kD\right)^2 +s\right] + \frac{\pi tu^2}{2} - \frac{\pi u^3}{3} + \pi D(1-2k)\left[ \frac{2u-t}{4}\sqrt{s+tu-u^2} + \frac{t\sqrt{s}}{4} + \frac{k^2D^2}{2}\left(\cos^{-1}\frac{t-2u}{2kD}-\alpha\right)\right] .. math:: v_2 = \frac{\pi h^2}{4}\left(2a_1 + \frac{D_1^2}{2a_1} - \frac{4h}{3}\right) .. math:: \alpha = \sin^{-1}\frac{1-2k}{2(f-k)} .. math:: a_1 = fD(1-\cos\alpha) .. math:: a_2 = kD\cos\alpha .. math:: D_1 = 2fD\sin\alpha .. math:: s = (kD\sin\alpha)^2 .. math:: t = 2a_2 .. math:: u = h - fD(1-\cos\alpha) Parameters ---------- D : float Diameter of the main cylindrical section, [m] f : float Dimensionless dish-radius parameter; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] k : float Dimensionless knuckle-radius parameter; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] h : float Height, as measured up to where the fluid ends, [m] Returns ------- V : float Volume [m^3] Examples -------- Matching example from [1]_, with inputs in inches and volume in gallons. >>> V_vertical_torispherical_concave(D=113., f=0.71, k=0.081, h=15)/231 103.88569287163769 References ---------- .. [1] Jones, D. "Compute Fluid Volumes in Vertical Tanks." Chemical Processing. December 18, 2003. http://www.chemicalprocessing.com/articles/2003/193/ ''' if h <= 0.0: return 0.0 alpha = asin((1-2*k)/(2.*(f-k))) a1 = f*D*(1-cos(alpha)) a2 = k*D*cos(alpha) D1 = 2*f*D*sin(alpha) s = (k*D*sin(alpha))**2 t = 2*a2 def V1(h): u = h-f*D*(1-cos(alpha)) v1 = pi/4*(2*a1**3/3. + a1*D1**2/2.) + pi*u*((D/2.-k*D)**2 +s) v1 += pi*t*u**2/2. - pi*u**3/3. v1 += pi*D*(1-2*k)*((2*u-t)/4.*(s+t*u-u**2)**0.5 + t*s**0.5/4. + k**2*D**2/2.*(acos((t-2*u)/(2*k*D)) -alpha)) return v1 def V2(h): v2 = pi*h**2/4.*(2*a1 + D1**2/(2.*a1) - 4*h/3.) return v2 if 0 <= h < a2: Vf = pi*D**2*h/4 - V1(a1+a2) + V1(a1+a2-h) elif a2 <= h < a1 + a2: Vf = pi*D**2*h/4 - V1(a1+a2) + V2(a1+a2-h) else: Vf = pi*D**2*h/4 - V1(a1+a2) return Vf ### Total surface area of heads, orientation-independent def SA_ellipsoidal_head(D, a): r'''Calculates the surface area of an ellipsoidal head according to [1]_. Formula below is for the full shape, the result of which is halved. The formula also does not support `D` being larger than `a`; this is ensured by simply swapping the variables if necessary, as geometrically the result is the same. In the equations, `a` is the same and `c` is `D`. .. math:: SA = 2\pi a^2 + \frac{\pi c^2}{e_1}\ln\left(\frac{1+e_1}{1-e_1}\right) .. math:: e_1 = \sqrt{1 - \frac{c^2}{a^2}} Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the ellipsoidal head extends, [m] Returns ------- SA : float Surface area [m^2] Examples -------- Spherical case >>> SA_ellipsoidal_head(2, 1) 6.283185307179586 References ---------- .. [1] Weisstein, Eric W. "Spheroid." Text. Accessed March 14, 2016. http://mathworld.wolfram.com/Spheroid.html. ''' if D == a*2: return pi*D**2/2 # necessary to avoid a division by zero when D == a D = D/2. D, a = min((D, a)), max((D, a)) e1 = (1 - D**2/a**2)**0.5 try: log_term = log((1+e1)/(1-e1)) except ZeroDivisionError: # Limit as a goes to zero relative to D; may only be ~6 orders of # magnitude smaller than D and will still occur log_term = 0.0 return (2*pi*a**2 + pi*D**2/e1*log_term)/2. def SA_conical_head(D, a): r'''Calculates the surface area of a conical head according to [1]_. .. math:: SA = \frac{\pi D}{2} \sqrt{a^2 + \left(\frac{D}{2}\right)^2} Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the conical head extends, [m] Returns ------- SA : float Surface area [m^2] Examples -------- >>> SA_conical_head(2, 1) 4.442882938158366 References ---------- .. [1] Weisstein, Eric W. "Cone." Text. Accessed March 14, 2016. http://mathworld.wolfram.com/Cone.html.''' return pi*D/2*(a**2 + (D/2)**2)**0.5 def SA_guppy_head(D, a): r'''Calculates the surface area of a guppy head according to [1]_. Some work was involved in combining formulas for the ellipse of the head, and the conic section on the sides. .. math:: SA = \frac{\pi D}{4}\sqrt{D^2 + a^2} + \frac{\pi D}{2}a Parameters ---------- D : float Diameter of the main cylindrical section, [m] a : float Distance the conical head extends, [m] Returns ------- SA : float Surface area [m^2] Examples -------- >>> SA_guppy_head(2, 1) 6.654000019110157 References ---------- .. [1] Weisstein, Eric W. "Cone." Text. Accessed March 14, 2016. http://mathworld.wolfram.com/Cone.html.''' return pi*D/4*(a**2 + D**2)**0.5 + pi*D/2*a def SA_torispheroidal(D, f, k): r'''Calculates surface area of a torispherical head according to [1]_. Somewhat involved. Equations are adapted to be used for a full head. .. math:: SA = S_1 + S_2 .. math:: S_1 = 2\pi D^2 f_d \alpha .. math:: S_2 = 2\pi D^2 f_k\left(\alpha - \alpha_1 + (0.5 - f_k)\left(\sin^{-1} \left(\frac{\alpha-\alpha_2}{f_k}\right) - \sin^{-1}\left(\frac{ \alpha_1-\alpha_2}{f_k}\right)\right)\right) .. math:: \alpha_1 = f_d\left(1 - \sqrt{1 - \left(\frac{0.5 - f_k}{f_d-f_k} \right)^2}\right) .. math:: \alpha_2 = f_d - \sqrt{f_d^2 - 2f_d f_k + f_k - 0.25} .. math:: \alpha = \frac{a}{D_i} Parameters ---------- D : float Diameter of the main cylindrical section, [m] f : float Dimensionless dish-radius parameter; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] k : float Dimensionless knuckle-radius parameter; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] Returns ------- SA : float Surface area [m^2] Examples -------- Example from [1]_. >>> SA_torispheroidal(D=2.54, f=1.039370079, k=0.062362205) 6.00394283477063 References ---------- .. [1] Honeywell. "Calculate Surface Areas and Cross-sectional Areas in Vessels with Dished Heads". https://www.honeywellprocess.com/library/marketing/whitepapers/WP-VesselsWithDishedHeads-UniSimDesign.pdf Whitepaper. 2014. ''' alpha_1 = f*(1 - (1 - ((0.5 - k)/(f-k))**2)**0.5) alpha_2 = f - (f**2 - 2*f*k + k - 0.25)**0.5 alpha = alpha_1 # Up to top of dome S1 = 2*pi*D**2*f*alpha_1 alpha = alpha_2 # up to top of torus S2_sub = asin((alpha-alpha_2)/k) - asin((alpha_1-alpha_2)/k) S2 = 2*pi*D**2*k*(alpha - alpha_1 + (0.5-k)*S2_sub) return S1 + S2 def SA_tank(D, L, sideA=None, sideB=None, sideA_a=0, sideB_a=0, sideA_f=None, sideA_k=None, sideB_f=None, sideB_k=None, full_output=False): r'''Calculates the surface are of a cylindrical tank with optional heads. In the degenerate case of being provided with only `D` and `L`, provides the surface area of a cylinder. Parameters ---------- D : float Diameter of the cylindrical section of the tank, [m] L : float Length of the main cylindrical section of the tank, [m] sideA : string, optional The left (or bottom for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideB : string, optional The right (or top for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideA_a : float, optional The distance the head as specified by sideA extends down or to the left from the main cylindrical section, [m] sideB_a : float, optional The distance the head as specified by sideB extends up or to the right from the main cylindrical section, [m] sideA_f : float, optional Dish-radius parameter for side A; fD = dish radius [1/m] sideA_k : float, optional knuckle-radius parameter for side A; kD = knuckle radius [1/m] sideB_f : float, optional Dish-radius parameter for side B; fD = dish radius [1/m] sideB_k : float, optional knuckle-radius parameter for side B; kD = knuckle radius [1/m] Returns ------- SA : float Surface area of the tank [m^2] areas : tuple, only returned if full_output == True (sideA_SA, sideB_SA, lateral_SA) Other Parameters ---------------- full_output : bool, optional Returns a tuple of (sideA_SA, sideB_SA, lateral_SA) if True Examples -------- Cylinder, Spheroid, Long Cones, and spheres. All checked. >>> SA_tank(D=2, L=2) 18.84955592153876 >>> SA_tank(D=1., L=0, sideA='ellipsoidal', sideA_a=2, sideB='ellipsoidal', ... sideB_a=2) 28.480278854014387 >>> SA_tank(D=1., L=5, sideA='conical', sideA_a=2, sideB='conical', ... sideB_a=2) 22.18452243965656 >>> SA_tank(D=1., L=5, sideA='spherical', sideA_a=0.5, sideB='spherical', ... sideB_a=0.5) 18.84955592153876 ''' # Side A if sideA == 'conical': sideA_SA = SA_conical_head(D=D, a=sideA_a) elif sideA == 'ellipsoidal': sideA_SA = SA_ellipsoidal_head(D=D, a=sideA_a) elif sideA == 'guppy': sideA_SA = SA_guppy_head(D=D, a=sideA_a) elif sideA == 'spherical': sideA_SA = SA_partial_sphere(D=D, h=sideA_a) elif sideA == 'torispherical': sideA_SA = SA_torispheroidal(D=D, f=sideA_f, k=sideA_k) else: sideA_SA = pi/4*D**2 # Circle # Side B if sideB == 'conical': sideB_SA = SA_conical_head(D=D, a=sideB_a) elif sideB == 'ellipsoidal': sideB_SA = SA_ellipsoidal_head(D=D, a=sideB_a) elif sideB == 'guppy': sideB_SA = SA_guppy_head(D=D, a=sideB_a) elif sideB == 'spherical': sideB_SA = SA_partial_sphere(D=D, h=sideB_a) elif sideB == 'torispherical': sideB_SA = SA_torispheroidal(D=D, f=sideB_f, k=sideB_k) else: sideB_SA = pi/4*D**2 # Circle lateral_SA = pi*D*L SA = sideA_SA + sideB_SA + lateral_SA if full_output: return SA, (sideA_SA, sideB_SA, lateral_SA) else: return SA def a_torispherical(D, f, k): r'''Calculates depth of a torispherical head according to [1]_. .. math:: a = a_1 + a_2 .. math:: \alpha = \sin^{-1}\frac{1-2k}{2(f-k)} .. math:: a_1 = fD(1-\cos\alpha) .. math:: a_2 = kD\cos\alpha Parameters ---------- D : float Diameter of the main cylindrical section, [m] f : float Dimensionless dish-radius parameter; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] k : float Dimensionless knuckle-radius parameter; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] Returns ------- a : float Depth of head [m] Examples -------- Example from [1]_. >>> a_torispherical(D=96., f=0.9, k=0.2) 25.684268924767125 References ---------- .. [1] Jones, D. "Calculating Tank Volume." Text. Accessed December 22, 2015. http://www.webcalc.com.br/blog/Tank_Volume.PDF''' alpha = asin((1-2*k)/(2*(f-k))) a1 = f*D*(1 - cos(alpha)) a2 = k*D*cos(alpha) return a1 + a2 def V_from_h(h, D, L, horizontal=True, sideA=None, sideB=None, sideA_a=0, sideB_a=0, sideA_f=None, sideA_k=None, sideB_f=None, sideB_k=None): r'''Calculates partially full volume of a vertical or horizontal tank with different head types according to [1]_. Parameters ---------- h : float Height of the liquid in the tank, [m] D : float Diameter of the cylindrical section of the tank, [m] L : float Length of the main cylindrical section of the tank, [m] horizontal : bool, optional Whether or not the tank is a horizontal or vertical tank sideA : string, optional The left (or bottom for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideB : string, optional The right (or top for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideA_a : float, optional The distance the head as specified by sideA extends down or to the left from the main cylindrical section, [m] sideB_a : float, optional The distance the head as specified by sideB extends up or to the right from the main cylindrical section, [m] sideA_f : float, optional Dimensionless dish-radius parameter for side A; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] sideA_k : float, optional Dimensionless knuckle-radius parameter for side A; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] sideB_f : float, optional Dimensionless dish-radius parameter for side B; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] sideB_k : float, optional Dimensionless knuckle-radius parameter for side B; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] Returns ------- V : float Volume up to h [m^3] Examples -------- >>> V_from_h(h=7, D=1.5, L=5., horizontal=False, sideA='conical', ... sideB='conical', sideA_a=2., sideB_a=1.) 10.013826583317465 References ---------- .. [1] Jones, D. "Compute Fluid Volumes in Vertical Tanks." Chemical Processing. December 18, 2003. http://www.chemicalprocessing.com/articles/2003/193/ ''' if sideA not in [None, 'conical', 'ellipsoidal', 'torispherical', 'spherical', 'guppy']: raise Exception('Unspoorted head type for side A') if sideB not in [None, 'conical', 'ellipsoidal', 'torispherical', 'spherical', 'guppy']: raise Exception('Unspoorted head type for side B') R = D/2. V = 0 if horizontal: # Conical case if sideA == 'conical': V += V_horiz_conical(D, L, sideA_a, h, headonly=True) if sideB == 'conical': V += V_horiz_conical(D, L, sideB_a, h, headonly=True) # Elliosoidal case if sideA == 'ellipsoidal': V += V_horiz_ellipsoidal(D, L, sideA_a, h, headonly=True) if sideB == 'ellipsoidal': V += V_horiz_ellipsoidal(D, L, sideB_a, h, headonly=True) # Guppy case if sideA == 'guppy': V += V_horiz_guppy(D, L, sideA_a, h, headonly=True) if sideB == 'guppy': V += V_horiz_guppy(D, L, sideB_a, h, headonly=True) # Spherical case if sideA == 'spherical': V += V_horiz_spherical(D, L, sideA_a, h, headonly=True) if sideB == 'spherical': V += V_horiz_spherical(D, L, sideB_a, h, headonly=True) # Torispherical case if sideA == 'torispherical': V += V_horiz_torispherical(D, L, sideA_f, sideA_k, h, headonly=True) if sideB == 'torispherical': V += V_horiz_torispherical(D, L, sideB_f, sideB_k, h, headonly=True) if h > D: # Must be before Af, which will raise a domain error raise Exception('Input height is above top of tank') Af = R**2*acos((R-h)/R) - (R-h)*(2*R*h - h**2)**0.5 V += L*Af else: # Bottom head if sideA in ['conical', 'ellipsoidal', 'torispherical', 'spherical']: if sideA == 'conical': V += V_vertical_conical(D, sideA_a, h=min(sideA_a, h)) if sideA == 'ellipsoidal': V += V_vertical_ellipsoidal(D, sideA_a, h=min(sideA_a, h)) if sideA == 'spherical': V += V_vertical_spherical(D, sideA_a, h=min(sideA_a, h)) if sideA == 'torispherical': V += V_vertical_torispherical(D, sideA_f, sideA_k, h=min(sideA_a, h)) # Cylindrical section if h >= sideA_a + L: V += pi/4*D**2*L # All middle elif h > sideA_a: V += pi/4*D**2*(h - sideA_a) # Partial middle # Top head if h > sideA_a + L: h2 = sideB_a - (h - sideA_a - L) if sideB == 'conical': V += V_vertical_conical(D, sideB_a, h=sideB_a) V -= V_vertical_conical(D, sideB_a, h=h2) if sideB == 'ellipsoidal': V += V_vertical_ellipsoidal(D, sideB_a, h=sideB_a) V -= V_vertical_ellipsoidal(D, sideB_a, h=h2) if sideB == 'spherical': V += V_vertical_spherical(D, sideB_a, h=sideB_a) V -= V_vertical_spherical(D, sideB_a, h=h2) if sideB == 'torispherical': V += V_vertical_torispherical(D, sideB_f, sideB_k, h=sideB_a) V -= max(0.0, V_vertical_torispherical(D, sideB_f, sideB_k, h=h2)) if h > L + sideA_a + sideB_a: raise Exception('Input height is above top of tank') return V class TANK(object): '''Class representing tank volumes and levels. All parameters are also attributes. Parameters ---------- D : float Diameter of the cylindrical section of the tank, [m] L : float Length of the main cylindrical section of the tank, [m] horizontal : bool, optional Whether or not the tank is a horizontal or vertical tank sideA : string, optional The left (or bottom for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideB : string, optional The right (or top for vertical) head of the tank's type; one of [None, 'conical', 'ellipsoidal', 'torispherical', 'guppy', 'spherical']. sideA_a : float, optional The distance the head as specified by sideA extends down or to the left from the main cylindrical section, [m] sideB_a : float, optional The distance the head as specified by sideB extends up or to the right from the main cylindrical section, [m] sideA_f : float, optional Dimensionless dish-radius parameter for side A; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] sideA_k : float, optional Dimensionless knuckle-radius parameter for side A; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] sideB_f : float, optional Dimensionless dish-radius parameter for side B; also commonly given as the product of `f` and `D` (`fD`), which is called dish radius and has units of length, [-] sideB_k : float, optional Dimensionless knuckle-radius parameter for side B; also commonly given as the product of `k` and `D` (`kD`), which is called the knuckle radius and has units of length, [-] L_over_D : float, optional Ratio of length over diameter, used only when D and L are both unspecified but V is, [-] V : float, optional Volume of the tank; solved for if specified, using sideA_a_ratio/sideB_a_ratio, sideA, sideB, horizontal, and one of L_over_D, L, or D, [m^3] Attributes ---------- table : bool Whether or not a table of heights-volumes has been generated h_max : float Height of the tank, [m] V_total : float Total volume of the tank as calculated [m^3] heights : ndarray Array of heights between 0 and h_max, [m] volumes : ndarray Array of volumes calculated from the heights, [m^3] A : float Total surface area of the tank, [m^2] A_sideA : float Surface area of sideA, [m^2] A_sideB : float Surface area of sideB, [m^2] A_lateral : float Surface area of the lateral side, [m^2] c_forward : ndarray Coefficients for the Chebyshev approximations in calculating V from h, [-] c_backward : ndarray Coefficients for the Chebyshev approximations in calculating h from V, [-] Notes ----- For torpsherical tank heads, the following `f` and `k` parameters are used in standards. The default is ASME F&D . +----------------------+-----+-------+ | | f | k | +======================+=====+=======+ | 2:1 semi-elliptical | 0.9 | 0.17 | +----------------------+-----+-------+ | ASME F&D | 1 | 0.06 | +----------------------+-----+-------+ | ASME 80/6 | 0.8 | 0.06 | +----------------------+-----+-------+ | ASME 80/10 F&D | 0.8 | 0.1 | +----------------------+-----+-------+ | DIN 28011 | 1 | 0.1 | +----------------------+-----+-------+ | DIN 28013 | 0.8 | 0.154 | +----------------------+-----+-------+ Examples -------- Total volume of a tank: >>> TANK(D=1.2, L=4, horizontal=False).V_total 4.523893421169302 Volume of a tank at a given height: >>> TANK(D=1.2, L=4, horizontal=False).V_from_h(.5) 0.5654866776461628 Height of liquid for a given volume: >>> TANK(D=1.2, L=4, horizontal=False).h_from_V(.5) 0.44209706414415384 Surface area of a tank with a conical head: >>> T1 = TANK(V=10, L_over_D=0.7, sideB='conical', sideB_a=0.5) >>> T1.A, T1.A_sideA, T1.A_sideB, T1.A_lateral (24.94775907657148, 5.118555935958284, 5.497246519930003, 14.331956620683192) Solving for tank volumes, first horizontal, then vertical: >>> TANK(D=10., horizontal=True, sideA='conical', sideB='conical', V=500).L 4.699531057009147 >>> TANK(L=4.69953105701, horizontal=True, sideA='conical', sideB='conical', V=500).D 9.999999999999407 >>> TANK(L_over_D=0.469953105701, horizontal=True, sideA='conical', sideB='conical', V=500).L 4.69953105700979 >>> TANK(D=10., horizontal=False, sideA='conical', sideB='conical', V=500).L 4.699531057009147 >>> TANK(L=4.69953105701, horizontal=False, sideA='conical', sideB='conical', V=500).D 9.999999999999407 >>> TANK(L_over_D=0.469953105701, horizontal=False, sideA='conical', sideB='conical', V=500).L 4.699531057009791 ''' table = False chebyshev = False def __repr__(self): # pragma: no cover orient = 'Horizontal' if self.horizontal else 'Vertical' if self.sideA is None and self.sideB is None: sides = 'no heads' elif self.sideA == self.sideB: if self.sideA_a == self.sideB_a: sides = self.sideA + (' heads, a=%f m' %(self.sideA_a)) else: sides = self.sideA + ' heads, sideA a=%f m, sideB a=%f m' % (self.sideA_a, self.sideB_a) else: if self.sideA: A = '%s head on sideA with a=%f m' % (self.sideA, self.sideA_a) else: A = 'no head on sideA' if self.sideB: B = ' and %s head on sideB with a=%f m' % (self.sideB, self.sideB_a) else: B = ' and no head on sideB' sides = A + B return '<%s tank, V=%f m^3, D=%f m, L=%f m, %s.>' %(orient, self.V_total, self.D, self.L, sides) def __init__(self, D=None, L=None, horizontal=True, sideA=None, sideB=None, sideA_a=None, sideB_a=None, sideA_f=None, sideA_k=None, sideB_f=None, sideB_k=None, sideA_a_ratio=None, sideB_a_ratio=None, L_over_D=None, V=None): self.D = D self.L = L self.L_over_D = L_over_D self.V = V self.horizontal = horizontal self.sideA = sideA if sideA is None and sideA_a is None: sideA_a = 0.0 self.sideA_a = sideA_a if sideA_a is None and sideA_a_ratio is None and (sideA is not None and sideA != 'torispherical'): sideA_a_ratio = 0.25 self.sideA_a_ratio = sideA_a_ratio if sideA_a is None and sideA == 'torispherical': if sideA_f is None: sideA_f = 1.0 if sideA_k is None: sideA_k = 0.06 self.sideA_f = sideA_f self.sideA_k = sideA_k self.sideB = sideB if sideB is None and sideB_a is None: sideB_a = 0.0 self.sideB_a = sideB_a if sideB_a is None and sideB_a_ratio is None and (sideB is not None and sideB != 'torispherical'): sideB_a_ratio = 0.25 self.sideB_a_ratio = sideB_a_ratio if sideB_a is None and sideB == 'torispherical': if sideB_f is None: sideB_f = 1.0 if sideB_k is None: sideB_k = 0.06 self.sideB_f = sideB_f self.sideB_k = sideB_k if self.horizontal: self.vertical = False self.orientation = 'horizontal' self.angle = 0 else: self.vertical = True self.orientation = 'vertical' self.angle = 90 # If V is specified and either L or D are known, solve for L, D, L_over_D if self.V: self.solve_tank_for_V() self.set_misc() def set_misc(self): '''Set more parameters, after the tank is better defined than in the __init__ function. Notes ----- Two of D, L, and L_over_D must be known when this function runs. The other one is set from the other two first thing in this function. a_ratio parameters are used to calculate a values for the heads here, if applicable. Radius is calculated here. Maximum tank height is calculated here. V_total is calculated here. ''' if self.D and self.L: # If L and D are known, get L_over_D self.L_over_D = self.L/self.D elif self.D and self.L_over_D: # Otherwise, if L_over_D and D are provided, get L self.L = self.D*self.L_over_D elif self.L and self.L_over_D: # Otherwise, if L_over_D and L are provided, get D self.D = self.L/self.L_over_D # Calculate diameter self.R = self.D/2. # If a_ratio is provided for either heads, use it. if self.sideA and self.D: if not self.sideA_a and self.sideA in ('conical', 'ellipsoidal', 'guppy', 'spherical'): self.sideA_a = self.D*self.sideA_a_ratio if self.sideB and self.D: if not self.sideB_a and self.sideB in ('conical', 'ellipsoidal', 'guppy', 'spherical'): self.sideB_a = self.D*self.sideB_a_ratio # Calculate a for torispherical heads if self.sideA == 'torispherical' and self.sideA_f and self.sideA_k: self.sideA_a = a_torispherical(self.D, self.sideA_f, self.sideA_k) if self.sideB == 'torispherical' and self.sideB_f and self.sideB_k: self.sideB_a = a_torispherical(self.D, self.sideB_f, self.sideB_k) # Ensure the correct a_ratios are set, whether there is a default being used or not if self.sideA_a_ratio is None and self.sideA_a is not None: self.sideA_a_ratio = self.sideA_a/self.D elif self.sideA_a_ratio is not None and self.sideA_a is not None and self.sideA_a != self.D*self.sideA_a_ratio: self.sideA_a_ratio = self.sideA_a/self.D if self.sideB_a_ratio is None and self.sideB_a is not None: self.sideB_a_ratio = self.sideB_a/self.D elif self.sideB_a_ratio is not None and self.sideB_a is not None and self.sideB_a != self.D*self.sideB_a_ratio: self.sideB_a_ratio = self.sideB_a/self.D # Calculate maximum tank height, h_max if self.horizontal: self.h_max = self.D else: self.h_max = self.L if self.sideA_a: self.h_max += self.sideA_a if self.sideB_a: self.h_max += self.sideB_a # Set maximum height self.V_total = self.V_from_h(self.h_max) # Set surface areas self.A, (self.A_sideA, self.A_sideB, self.A_lateral) = SA_tank( D=self.D, L=self.L, sideA=self.sideA, sideB=self.sideB, sideA_a=self.sideA_a, sideB_a=self.sideB_a, sideA_f=self.sideA_f, sideA_k=self.sideA_k, sideB_f=self.sideB_f, sideB_k=self.sideB_k, full_output=True) def add_thickness(self, thickness, sideA_thickness=None, sideB_thickness=None): r'''Method to create a new tank instance with the same parameters as itself, except with an added thickness to it. This is useful to obtain ex. the inside of a tank and the outside; their different in volumes is the volume of the shell, and could be used to determine weight. Parameters ---------- thickness : float Thickness to add to the tank diameter, [m] sideA_thickness : float, optional The thickness to add to the sideA head; if not specified, it will be `thickness`, [m] sideB_thickness : float, optional The thickness to add to the sideB head; if not specified, it will be `thickness`, [m] Returns ------- TANK : TANK Tank object, [-] Notes ----- Be careful not to specify a negative thickness larger than the heads' lengths, or the head will become concave! The same applies to adding a thickness to convex heads - they can become convex. ''' kwargs = dict(D=self.D, L=self.L, horizontal=self.horizontal, sideA=self.sideA, sideB=self.sideB, sideA_a=self.sideA_a, sideB_a=self.sideB_a, sideA_f=self.sideA_f, sideA_k=self.sideA_k, sideB_f=self.sideB_f, sideB_k=self.sideB_k) if sideA_thickness is None: sideA_thickness = thickness if sideB_thickness is None: sideB_thickness = thickness # Do not transfer a_ratios or volume or L_over_D kwargs['D'] += 2.0*thickness kwargs['L'] += sideA_thickness + sideB_thickness # For torispherical vessels, the heads are defined from the `f` and `k` # parameters which are already functions of diameter, and so will be # fixed automatically; if the `a` parameters are specified they would # not be corrected if self.sideA != 'torispherical': kwargs['sideA_a'] += sideA_thickness else: del kwargs['sideA_a'] if self.sideB != 'torispherical': kwargs['sideB_a'] += sideB_thickness else: del kwargs['sideB_a'] return TANK(**kwargs) def V_from_h(self, h, method='full'): r'''Method to calculate the volume of liquid in a fully defined tank given a specified height `h`. `h` must be under the maximum height. If the method is 'chebyshev', and the coefficients have not yet been calculated, they are created by calling `set_chebyshev_approximators`. Parameters ---------- h : float Height specified, [m] method : str One of 'full' (calculated rigorously) or 'chebyshev' Returns ------- V : float Volume of liquid in the tank up to the specified height, [m^3] Notes ----- ''' if method == 'full': return V_from_h(h, self.D, self.L, self.horizontal, self.sideA, self.sideB, self.sideA_a, self.sideB_a, self.sideA_f, self.sideA_k, self.sideB_f, self.sideB_k) elif method == 'chebyshev': if not self.chebyshev: self.set_chebyshev_approximators() return self.V_from_h_cheb(h) else: raise Exception("Allowable methods are 'full' or 'chebyshev'.") def h_from_V(self, V, method='spline'): r'''Method to calculate the height of liquid in a fully defined tank given a specified volume of liquid in it `V`. `V` must be under the maximum volume. If the method is 'spline', and the interpolation table is not yet defined, creates it by calling the method set_table. If the method is 'chebyshev', and the coefficients have not yet been calculated, they are created by calling `set_chebyshev_approximators`. Parameters ---------- V : float Volume of liquid in the tank up to the desired height, [m^3] method : str One of 'spline', 'chebyshev', or 'brenth' Returns ------- h : float Height of liquid at which the volume is as desired, [m] ''' if method == 'spline': if not self.table: self.set_table() return float(self.interp_h_from_V(V)) elif method == 'chebyshev': if not self.chebyshev: self.set_chebyshev_approximators() return self.h_from_V_cheb(V) elif method == 'brenth': to_solve = lambda h : self.V_from_h(h, method='full') - V return brenth(to_solve, self.h_max, 0) else: raise Exception("Allowable methods are 'full' or 'chebyshev', " "or 'brenth'.") def set_table(self, n=100, dx=None): r'''Method to set an interpolation table of liquids levels versus volumes in the tank, for a fully defined tank. Normally run by the h_from_V method, this may be run prior to its use with a custom specification. Either the number of points on the table, or the vertical distance between steps may be specified. Parameters ---------- n : float, optional Number of points in the interpolation table, [-] dx : float, optional Vertical distance between steps in the interpolation table, [m] ''' if dx: self.heights = linspace(0.0, self.h_max, int(self.h_max/dx)+1) else: self.heights = linspace(0.0, self.h_max, n) self.volumes = [self.V_from_h(h) for h in self.heights] from scipy.interpolate import UnivariateSpline self.interp_h_from_V = UnivariateSpline(self.volumes, self.heights, ext=3, s=0.0) self.table = True def set_chebyshev_approximators(self, deg_forward=50, deg_backwards=200): r'''Method to derive and set coefficients for chebyshev polynomial function approximation of the height-volume and volume-height relationship. A single set of chebyshev coefficients is used for the entire height- volume and volume-height relationships respectively. The forward relationship, `V_from_h`, requires far fewer coefficients in its fit than the reverse to obtain the same relative accuracy. Optionally, deg_forward or deg_backwards can be set to None to try to automatically fit the series to machine precision. Parameters ---------- deg_forward : int, optional The degree of the chebyshev polynomial to be created for the `V_from_h` curve, [-] deg_backwards : int, optional The degree of the chebyshev polynomial to be created for the `h_from_V` curve, [-] ''' from fluids.optional.pychebfun import Chebfun to_fit = lambda h: self.V_from_h(h, 'full') # These high-degree polynomials cannot safety be evaluated using Horner's methods # chebval is 2.5x as slow but 100% required; around 40 coefficients results are junk self.c_forward = Chebfun.from_function(np.vectorize(to_fit), [0.0, self.h_max], N=deg_forward).coefficients().tolist() self.V_from_h_cheb = lambda x : chebval((2.0*x-self.h_max)/(self.h_max), self.c_forward) to_fit = lambda h: self.h_from_V(h, 'brenth') self.c_backward = Chebfun.from_function(np.vectorize(to_fit), [0.0, self.V_total], N=deg_backwards).coefficients().tolist() self.h_from_V_cheb = lambda x : chebval((2.0*x-self.V_total)/(self.V_total), self.c_backward) self.chebyshev = True def _V_solver_error(self, Vtarget, D, L, horizontal, sideA, sideB, sideA_a, sideB_a, sideA_f, sideA_k, sideB_f, sideB_k, sideA_a_ratio, sideB_a_ratio): '''Function which uses only the variables given, and the TANK class itself, to determine how far from the desired volume, Vtarget, the volume produced by the specified parameters in a new TANK instance is. Should only be used by solve_tank_for_V method. ''' a = TANK(D=float(D), L=float(L), horizontal=horizontal, sideA=sideA, sideB=sideB, sideA_a=sideA_a, sideB_a=sideB_a, sideA_f=sideA_f, sideA_k=sideA_k, sideB_f=sideB_f, sideB_k=sideB_k, sideA_a_ratio=sideA_a_ratio, sideB_a_ratio=sideB_a_ratio) error = abs(Vtarget - a.V_total) return error def solve_tank_for_V(self): '''Method which is called to solve for tank geometry when a certain volume is specified. Will be called by the __init__ method if V is set. Notes ----- Raises an error if L and either of sideA_a or sideB_a are specified; these can only be set once D is known. Raises an error if more than one of D, L, or L_over_D are specified. Raises an error if the head ratios are not provided. Calculates initial guesses assuming no heads are present, and then uses fsolve to determine the correct dimensions for the tank. Tested, but bugs and limitations are expected here. ''' if self.L and (self.sideA_a or self.sideB_a): raise Exception('Cannot specify head sizes when solving for V') if (self.D and self.L) or (self.D and self.L_over_D) or (self.L and self.L_over_D): raise Exception('Only one of D, L, or L_over_D can be specified\ when solving for V') if ((self.sideA is not None and (self.sideA_a_ratio is None and self.sideA_a is None)) or (self.sideB is not None and (self.sideB_a_ratio is None and self.sideB_a is None))): raise Exception('When heads are specified, head parameter ratios are required') if self.D: # Iterate until L is appropriate solve_L = lambda L: self._V_solver_error(self.V, self.D, L, self.horizontal, self.sideA, self.sideB, self.sideA_a, self.sideB_a, self.sideA_f, self.sideA_k, self.sideB_f, self.sideB_k, self.sideA_a_ratio, self.sideB_a_ratio) Lguess = self.V/(pi/4*self.D**2) self.L = float(newton(solve_L, Lguess)) elif self.L: # Iterate until D is appropriate solve_D = lambda D: self._V_solver_error(self.V, D, self.L, self.horizontal, self.sideA, self.sideB, self.sideA_a, self.sideB_a, self.sideA_f, self.sideA_k, self.sideB_f, self.sideB_k, self.sideA_a_ratio, self.sideB_a_ratio) Dguess = (4*self.V/pi/self.L)**0.5 self.D = float(newton(solve_D, Dguess)) else: # Use L_over_D until L and D are appropriate Lguess = (4*self.V*self.L_over_D**2/pi)**(1/3.) solve_L_D = lambda L: self._V_solver_error(self.V, L/self.L_over_D, L, self.horizontal, self.sideA, self.sideB, self.sideA_a, self.sideB_a, self.sideA_f, self.sideA_k, self.sideB_f, self.sideB_k, self.sideA_a_ratio, self.sideB_a_ratio) self.L = float(newton(solve_L_D, Lguess)) self.D = self.L/self.L_over_D class HelicalCoil(object): r'''Class representing a helical coiled tube, as are found in many heated tanks and some small nuclear reactors. All parameters are also attributes. One set of the following parameters is required; inner tube diameter is optional. * Tube outer diameter, coil outer diameter, pitch, number of coil turns * Tube outer diameter, coil outer diameter, pitch, height * Tube outer diameter, coil outer diameter, number of coil turns, height Parameters ---------- Dt : float Outer diameter of the tube wound to make up the helical spiral, [m] Do : float, optional Diameter of the spiral as measured from the center of the coil on one side to the center of the coil on the other side, [m] Do_total : float, optional Diameter of the spiral as measured from one edge of the tube to the other edge; equal to Do + Dt; either `Do` or `Do_total` may be specified and the other will be calculated [m] pitch : float, optional Height change from one coil to the next as measured from the middles of the tube, [m] H : float, optional Height of the spiral, as measured from the middle of the bottom of the tube to the middle of the top of the tube, [m] H_total : float, optional Height of the spiral as measured from one edge of the tube to the other edge; equal to `H_total` + `Dt`; either may be specified and the other will be calculated [m] N : float, optional Number of coil turns; may be specified along with `pitch` instead of specifying `H` or `H_total`, [-] Di : float, optional Inner diameter of the tube; if specified, inside and annulus properties will be calculated, [m] Attributes ---------- tube_circumference : float Circumference of the tube as measured though its center, not inner or outer edges; :math:`C = \pi D_o`, [m] tube_length : float Length of tube used to make the helical coil; :math:`L = \sqrt{(\pi D_o\cdot N)^2 + H^2}`, [m] surface_area : float Surface area of the outer surface of the helical coil; :math:`A_t = \pi D_t L`, [m^2] inner_surface_area : float Surface area of the inner surface of the helical coil; calculated if `Di` is supplied; :math:`A_{inside} = \pi D_i L`, [m^2] inlet_area : float Area of the inlet to the helical coil; calculated if `Di` is supplied; :math:`A_{inlet} = \frac{\pi}{4} D_i^2`, [m^2] inner_volume : float Volume of the tube as would be filled by a fluid, useful for weight calculations; calculated if `Di` is supplied; :math:`V_{inside} = A_i L`, [m^3] annulus_area : float Area of the annulus (wall of the pipe); calculated if `Di` is supplied; :math:`A_a = \frac{\pi}{4} (D_t^2 - D_i^2)`, [m^2] annulus_volume : float Volume of the annulus (wall of the pipe); calculated if `Di` is supplied, useful for weight calculations; :math:`V_a = A_a L`, [m^3] total_volume : float Total volume occupied by the pipe and the fluid inside it; :math:`V = D_t L`, [m^3] helix_angle : float Angle between the pitch and coil diameter; used in some calculations; :math:`\alpha = \arctan \left(\frac{p_t}{\pi D_o}\right)`, [radians] curvature : float Coil curvature, useful in some calculations; :math:`\delta = \frac{D_t}{D_o[1 + 4\pi^2 \tan^2(\alpha)]}`, [-] Notes ----- `Do` must be larger than `Dt`. Examples -------- >>> C1 = HelicalCoil(Do=30, H=20, pitch=5, Dt=2) >>> C1.N, C1.tube_length, C1.surface_area (4.0, 377.5212621504738, 2372.0360474917497) Same coil, with the inputs one would physically measure from the coil, and a specified inlet diameter: >>> C1 = HelicalCoil(Do_total=32, H_total=22, pitch=5, Dt=2, Di=1.8) >>> C1.N, C1.tube_length, C1.surface_area (4.0, 377.5212621504738, 2372.0360474917497) >>> C1.inner_surface_area, C1.inlet_area, C1.inner_volume, C1.total_volume, C1.annulus_volume (2134.832442742575, 2.5446900494077327, 960.6745992341587, 1186.0180237458749, 225.3434245117162) References ---------- .. [1] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' def __repr__(self): # pragma : no cover s = ' self.Do: raise Exception('Tube diameter is larger than helix outer diameter - not feasible.') self.tube_circumference = pi*self.Do self.tube_length = ((self.tube_circumference*self.N)**2 + self.H**2)**0.5 self.surface_area = self.tube_length*pi*self.Dt #print(pi*self.tube_length*self.Dt) == surface_area self.helix_angle = atan(self.pitch/(pi*self.Do)) self.curvature = self.Dt/self.Do/(1. + 4*pi**2*tan(self.helix_angle)**2) #print(self.N*pi*self.Do/cos(self.helix_angle)) # Confirms the length with another formula self.total_inlet_area = pi/4.*self.Dt**2 self.total_volume = self.total_inlet_area*self.tube_length self.Di = Di if Di: self.inner_surface_area = self.tube_length*pi*self.Di self.inlet_area = pi/4.*self.Di**2 self.inner_volume = self.inlet_area*self.tube_length self.annulus_area = self.total_inlet_area - self.inlet_area self.annulus_volume = self.total_volume - self.inner_volume class PlateExchanger(object): r'''Class representing a plate heat exchanger with sinusoidal ridges. All parameters are also attributes. Parameters ---------- amplitude : float Half the height of the wave of the ridges, [m] wavelength : float Distance between the bottoms of two of the ridges (sometimes called pitch), [m] chevron_angle : float or tuple(2), optional Angle of the plate corrugations with respect to the vertical axis (the direction of flow if the plates were straight), between 0 and 90. Many plate exchangers use two alternating patterns; use a tuple of the two angles for that situation [degrees] width : float, optional Width of the plates in the heat exchanger, between the gaskets, [m] length : float, optional Length of the heat exchanger as measured from one port to the other, excluding the diameter of the ports themselves (little useful heat transfer happens there), [m] thickness : float, optional Thickness of the metal making up the plates, [m] d_port : float, optional The diameter of the ports in the plates, [m] plates : int, optional The number of plates in the heat exchanger, including the two not used for heat transfer at the beginning and end [-] Attributes ---------- chevron_angles : tuple(2) The two specified angles (repeated value if only one specified), [degrees] chevron_angle : float The averaged angle of the chevrons, [degrees] inclination_angle : float 90 - `chevron_angle`, used in many publications instead of `chevron_angle`, [degrees] plate_corrugation_aspect_ratio : float The aspect ratio of the corrugations :math:`\gamma = \frac{4a}{\lambda}`, [-] plate_enlargement_factor : float The extra surface area multiplier as compared to a flat plate caused the corrugations, [-] D_eq : float Equivalent diameter of the channels, :math:`D_{eq} = 4a` [m] D_hydraulic : float Hydraulic diameter of the channels, :math:`D_{hyd} = \frac{4a}{\phi}` [m] length_port : float Port center to port center along the direction of flow, [m] A_plate_surface : float The surface area of one plate in the heat exchanger, including the extra due to corrugations (excluding the bit between the ports), :math:`A_p = L\cdot W\cdot \phi` [m^2] A_heat_transfer : float The total surface area available for heat transfer in the exchanger, the multiple of `A_plate_surface` by the number of plates after removing the two on the edges, [m^2] A_channel_flow : float The area for the fluid to flow in one channel, :math:`W\cdot b` [m^2] channels : int The number of plates minus one, [-] channels_per_fluid : int Half the number of total channels, [-] plate_exchanger_identifier : str Identifying string in format 'L' + wavelength + 'A' + amplitude + 'B' + chevron angle-chevron angle Notes ----- Only wavelength and amplitude are required as inputs to this function. Examples -------- >>> PlateExchanger(amplitude=5E-4, wavelength=3.7E-3, length=1.2, width=.3, ... d_port=.05, plates=51) References ---------- .. [1] Amalfi, Raffaele L., Farzad Vakili-Farahani, and John R. Thome. "Flow Boiling and Frictional Pressure Gradients in Plate Heat Exchangers. Part 1: Review and Experimental Database." International Journal of Refrigeration 61 (January 2016): 166-84. doi:10.1016/j.ijrefrig.2015.07.010. ''' def __repr__(self): # pragma : no cover s = '>> PlateExchanger.plate_enlargement_factor_analytical(amplitude=5E-4, wavelength=3.7E-3) 1.1611862034509677 ''' b = 2.*amplitude return 2.*float(ellipe(-b*b*pi*pi/(wavelength*wavelength)))/pi def __init__(self, amplitude, wavelength, chevron_angle=45, width=None, length=None, thickness=None, d_port=None, plates=None): self.amplitude = self.a = amplitude # half a sine wave's height self.b = 2*self.amplitude # Used in some models. From a flat plate, a press goes down this far into the plate. Also called the hot and cold gap self.wavelength = self.pitch = wavelength # self.lambda if isinstance(chevron_angle, tuple): self.chevron_angles = chevron_angle self.chevron_angle = self.beta = 0.5*(chevron_angle[0]+chevron_angle[1]) else: self.chevron_angle = self.beta = chevron_angle # between 0 and 90 self.chevron_angles = (chevron_angle, chevron_angle) self.inclination_angle = 90 - self.chevron_angle # Used in some definitions instead self.plate_corrugation_aspect_ratio = self.gamma = 4*self.a/self.wavelength self.plate_enlargement_factor = self.plate_enlargement_factor_analytical(self.amplitude, self.wavelength) self.D_eq = 4*self.amplitude # Equivalent diameter for inter-plate spacing self.D_hydraulic = 4*self.amplitude/self.plate_enlargement_factor # Get better results when correlations use this self.width = width self.length = length self.thickness = thickness self.d_port = d_port self.plates = plates if d_port and length: self.length_port = self.length + self.d_port # port center to port center along the direction of flow # There is another larger length as well, including both port diameters if width and length: self.A_plate_surface = self.length*self.width*self.plate_enlargement_factor # use this in Q = UAdT if plates: self.A_heat_transfer = (self.plates-2)*self.A_plate_surface # the two outermost sides aren't used if width: self.A_channel_flow = self.width*self.b # Use this to get G, kg/s/m^2 if plates: self.channels = self.plates - 1 self.channels_per_fluid = 0.5*self.channels class RectangularFinExchanger(object): r'''Class representing a plate-fin heat exchanger with straight rectangular fins. All parameters are also attributes. Parameters ---------- fin_height : float The total distance between the two metal plates sandwiching the fins and holding them together (abbreviated `h`), [m] fin_thickness : float The thickness of the material the fins were formed from (abbreviated `t`), [m] fin_spacing : float The unit cell spacing from one fin to the next; the space between the sides of two fins plus one thickness (abbreviated `s`), [m] length : float, optional The total length of the flow passage of the plate-fin exchanger (abbreviated `L`), [m] width : float, optional The total width of the space the fins are in; this is also :math:`N_{fins}\times s` (abbreviated `W`), [m] layers : int, optional The number of layers in the plate-fin exchanger; note these HX almost always single-pass only, [-] plate_thickness : float, optional The thickness of the metal separator between layers, [m] flow : str, optional One of 'counterflow', 'crossflow', or 'parallelflow' Attributes ---------- channel_height : float The height of the channel the fluid flows in :math:`\text{channel height } = \text{fin height} - \text{fin thickness}`, [m] channel_width : float The width of the channel the fluid flows in :math:`\text{channel width } = \text{fin spacing} - \text{fin thickness}`, [m] fin_count : int The number of fins per unit length of the layer, :math:`\text{fin count} = \frac{1}{\text{fin spacing}}`, [1/m] blockage_ratio : float The fraction of the layer which is blocked to flow by the fins, :math:`\text{blockage ratio} = \frac{s\cdot h - s\cdot t - t(h-t)}{s\cdot h}`, [m] A_channel : float Flow area of a single channel in a single layer, :math:`\text{channel area} = (s-t)(h-t)`, [m] P_channel : float Wetted perimeter of a single channel in a single layer, :math:`\text{channel perimeter} = 2(s-t) + 2(h-t)`, [m] Dh : float Hydraulic diameter of a single channel in a single layer, :math:`D_{hydraulic} = \frac{4 A_{channel}}{P_{channel}}`, [m] layer_thickness : float The thickness of a single layer - the sum of a fin height and a plate thickness, [m] layer_fin_count : int The number of fins in a layer; rounded to the nearest whole fin, [-] A_HX_layer : float The surface area including fins for heat transfer in one layer of the HX, [m^2] A_HX : float The total surface area of the heat exchanger with all layers combined, [m^2] height : float The height of all the layers of the heat exchanger combined, plus one extra plate thickness, [m] volume : float The product of the height, width, and length of the HX, [m^3] A_specific_HX : float The specific surface area of the heat exchanger - square meters per meter cubed, [m^3] Notes ----- The only required parameters are the fin geometry itself; `fin_height`, `fin_thickness`, and `fin_spacing`. Examples -------- >>> PFE = RectangularFinExchanger(0.03, 0.001, 0.012) >>> PFE.Dh 0.01595 References ---------- .. [1] Yang, Yujie, and Yanzhong Li. "General Prediction of the Thermal Hydraulic Performance for Plate-Fin Heat Exchanger with Offset Strip Fins." International Journal of Heat and Mass Transfer 78 (November 1, 2014): 860-70. doi:10.1016/j.ijheatmasstransfer.2014.07.060. .. [2] Sheik Ismail, L., R. Velraj, and C. Ranganayakulu. "Studies on Pumping Power in Terms of Pressure Drop and Heat Transfer Characteristics of Compact Plate-Fin Heat Exchangers-A Review." Renewable and Sustainable Energy Reviews 14, no. 1 (January 2010): 478-85. doi:10.1016/j.rser.2009.06.033. ''' def __init__(self, fin_height, fin_thickness, fin_spacing, length=None, width=None, layers=None, plate_thickness=None, flow='crossflow'): self.h = self.fin_height = fin_height # including 2x thickness self.t = self.fin_thickness = fin_thickness self.s = self.fin_spacing = fin_spacing self.L = self.length = length self.W = self.width = width self.layers = layers self.flow = flow self.plate_thickness = plate_thickness self.channel_height = self.fin_height - self.fin_thickness self.channel_width = self.fin_spacing - self.fin_thickness self.fin_count = 1./self.fin_spacing self.blockage_ratio = (self.s*self.h - self.s*self.t - (self.h-self.t)*self.t)/(self.s*self.h) self.A_channel = (self.s-self.t)*(self.h-self.t) self.P_channel = 2*(self.s-self.t) + 2*(self.h-self.t) self.Dh = 4*self.A_channel/self.P_channel self.set_overall_geometry() def set_overall_geometry(self): if self.plate_thickness: self.layer_thickness = self.plate_thickness + self.fin_height if self.length and self.width: self.layer_fin_count = round(self.fin_count*self.width, 0) if hasattr(self, 'SA_fin'): self.A_HX_layer = self.layer_fin_count*self.SA_fin*self.length else: self.A_HX_layer = self.P_channel*self.length*self.layer_fin_count if self.layers: self.A_HX = self.layers*self.A_HX_layer if self.plate_thickness: self.height = self.layer_thickness*self.layers + self.plate_thickness self.volume = (self.length*self.width*self.height) self.A_specific_HX = self.A_HX/self.volume class RectangularOffsetStripFinExchanger(RectangularFinExchanger): def __init__(self, fin_length, fin_height, fin_thickness, fin_spacing, length=None, width=None, layers=None, plate_thickness=None, flow='crossflow'): self.l = self.fin_length = fin_length self.h = self.fin_height = fin_height self.t = self.fin_thickness = fin_thickness self.s = self.fin_spacing = fin_spacing self.blockage_ratio = self.omega = 2*self.t/self.s*(1. - self.t/self.h) + self.t/self.h*(1 - 2*self.t/self.s) # Kim blockage ratio beta self.blockage_ratio_Kim = self.t/self.h + self.t/self.s - self.t**2/(self.h*self.s) # Definitions as in the paper with the most common correlation self.alpha = self.s/self.h # "General prediction" uses t/h here self.delta = self.t/self.l self.gamma = self.t/self.s # free flow area self.A_channel = (self.h - self.t)*(self.s - self.t) self.A = 2.*(self.l*(self.h-self.t) + self.l*(self.s-self.t) + self.t*(self.h-self.t)) + self.t*(self.s-2*self.t) self.Dh = 4.*self.l*self.A_channel/self.A # not the standard definition self.Dh_Kays_London = 4*self.A_channel/(2*(self.h -self.t)+ 2*(self.s -self.t)) # Does not consider the fronts of backs of the fins, only the 2d shape self.Dh_Joshi_Webb = 2*self.l*(self.h - self.t)*(self.s - 2*self.t)/(self.l*(self.h-self.t) + self.l*(self.s - self.t) + self.t*(self.h - self.t)) self.L = self.length = length self.W = self.width = width self.layers = layers self.flow = flow self.plate_thickness = plate_thickness self.fin_count = 1./self.fin_spacing self.set_overall_geometry() class HyperbolicCoolingTower(object): r'''Class representing the geometry of a hyperbolic cooling tower, as used in many industries especially the poewr industry. All parameters are also attributes. `H_inlet`, `D_outlet`, and `H_outlet` are always required. Additionally, one set of the following parameters is required; `H_support`, `D_support`, `n_support`, and `inlet_rounding` are all optional as well. * Inlet diameter * Inlet diameter and throat diameter * Inlet diameter and throat height * Inlet diameter, throat diameter, and throat height * Base diameter, throat diameter, and throat height If the inlet diameter is provided but the throat diameter and/or the throat height are missing, two heuristics are used to estimate them (to avoid these heuristics simply specify the values): * Assume the throat elevation is 2/3 the elevation of the tower. * Assume the throat diameter is 63% the diameter of the inlet. Parameters ---------- H_inlet : float Height of the inlet zone of the cooling tower (also called rain zone), [m] D_outlet : float The inside diameter of the cooling tower outlet (top of the tower; the elevation the concrete section ends), [m] H_outlet : float The height of the cooling tower outlet (top of the tower;the elevation the concrete section ends), [m] D_inlet : float, optional The inside diameter of the cooling tower inlet at the elevation the concrete section begins, [m] D_base : float, optional The diameter of the cooling tower at the very base of the tower (the bottom of the inlet zone, at the elevation of the ground), [m] D_throat : float, optional The diameter of the cooling tower at its minimum section, called its throat; where the two hyperbolas meet, [m] h_throat : float, optional The elevation of the cooling tower's throat (its minimum section; where the two hyperbolas meet), [m] inlet_rounding : float, optional Radius of an optional rounded protrusion from the lip of the cooling tower shell base, which curves upwards from the lip (used to reduce the dead zone area rather than having a flat lip), [m] H_support : float, optional The height of each support column, [m] D_support : float, optional The diameter of each support column, [m] n_support : int, optional The number of support columns of the cooling tower, [m] Attributes ---------- b_lower : float The `b` parameter in the hyperbolic equation for the lower section of the cooling tower, [m] b_upper : float The `b` parameter in the hyperbolic equation for the upper section of the cooling tower, [m] Notes ----- Note there are two hyperbolas in a hyperbolic cooling tower - one under the throat and one above it; they are not necessarily the same. A hyperbolic cooling tower is not the absolute optimal design, but is is close. The optimality is determined by the amount of material required to build it while maintaining its rigidity. For thermal design purposes, a hyperbolic model covers any minor variation quite well. Examples -------- >>> ct = HyperbolicCoolingTower(D_outlet=89.0, H_outlet=200, D_inlet=136.18, H_inlet=14.5) >>> ct >>> ct.diameter(5) 142.84514486126062 References ---------- .. [1] Chen, W. F., and E. M. Lui, eds. Handbook of Structural Engineering, Second Edition. Boca Raton, Fla: CRC Press, 2005. .. [2] Ansary, A. M. El, A. A. El Damatty, and A. O. Nassef. Optimum Shape and Design of Cooling Towers, 2011. ''' def __repr__(self): # pragma : no cover s = '''''' s = s%(self.D_inlet, self.D_outlet, self.H_inlet, self.H_outlet, self.D_throat, self.H_throat, self.D_base) return s def __init__(self, H_inlet, D_outlet, H_outlet, D_inlet=None, D_base=None, D_throat=None, H_throat=None, H_support=None, D_support=None, n_support=None, inlet_rounding=None): self.D_outlet = D_outlet self.H_inlet = H_inlet self.H_outlet = H_outlet if H_throat is None: H_throat = 2/3.0*H_outlet self.H_throat = H_throat if D_throat is None: if D_inlet is not None: D_throat = 0.63*D_inlet else: raise ValueError('Provide either `D_throat`, or `D_inlet` so it may be estimated.') self.D_throat = D_throat if D_inlet is None and D_base is None: raise ValueError('Need `D_inlet` or `D_base`') if D_base is not None: b = self.D_throat*self.H_throat/(D_base**2 - self.D_throat**2)**0.5 D_inlet = 2*self.D_throat*((self.H_throat-H_inlet)**2 + b**2)**0.5/(2*b) elif D_inlet is not None: b = self.D_throat*(self.H_throat-H_inlet)/(D_inlet**2 - self.D_throat**2)**0.5 D_base = 2*self.D_throat*(self.H_throat**2 + b**2)**0.5/(2*b) self.D_inlet = D_inlet self.D_base = D_base self.b_lower = b # Upper b parameter self.b_upper = self.D_throat*(self.H_outlet - self.H_throat)/((self.D_outlet)**2 - self.D_throat**2)**0.5 # May or may not be specified self.H_support = H_support self.D_support = D_support self.n_support = n_support self.inlet_rounding = inlet_rounding def plot(self, pts=100): # pragma: no cover import matplotlib.pyplot as plt Zs = np.linspace(0, self.H_outlet, pts) Rs = np.array([self.diameter(Z) for Z in Zs])/2 plt.plot(Zs, Rs) plt.plot(Zs, -Rs) plt.show() def diameter(self, H): r'''Calculates cooling tower diameter at a specified height, using the formulas for either hyperbola, depending on the height specified. .. math:: D = D_{throat}\frac{\sqrt{H^2 + b^2}}{b} The value of `H` and `b` used in the above equation is as follows: * `H_throat` - H and `b_lower` if under the throat * `H` - `H_throat` and `b_upper`, if above the throat Parameters ---------- H : float Height at which to calculate the cooling tower diameter, [m] Returns ------- D : float Diameter of the cooling tower at the specified height, [m] ''' # Compute the diameter at H if H <= self.H_throat: # Height relative to throat height H = self.H_throat - H b = self.b_lower else: H = H - self.H_throat b = self.b_upper R = self.D_throat*(H*H + b*b)**0.5/(2.0*b) return R*2.0 class AirCooledExchanger(object): r'''Class representing the geometry of an air cooled heat exchanger with one or more tube bays, fans, or bundles. All parameters are also attributes. The minimum information required to describe an air cooler is as follows: * `tube_rows` * `tube_passes` * `tubes_per_row` * `tube_length` * `tube_diameter` * `fin_thickness` Two of `angle`, `pitch`, `pitch_parallel`, and `pitch_normal` (`pitch_ratio` may take the place of `pitch`) Either `fin_diameter` or `fin_height`. Either `fin_density` or `fin_interval`. Parameters ---------- tube_rows : int Number of tube rows per bundle, [-] tube_passes : int Number of tube passes (times the fluid travels across one tube length), [-] tubes_per_row : float Number of tubes per row per bundle, [-] tube_length : float Total length of the tube bundle tubes, [m] tube_diameter : float Diameter of the bare tube, [m] fin_thickness : float Thickness of the fins, [m] angle : float, optional Angle of the tube layout, [degrees] pitch : float, optional Shortest distance between tube centers; defined in relation to the flow direction only, [m] pitch_parallel : float, optional Distance between tube center along a line parallel to the flow; has been called `longitudinal` pitch, `pp`, `s2`, `SL`, and `p2`, [m] pitch_normal : float, optional Distance between tube centers in a line 90° to the line of flow; has been called the `transverse` pitch, `pn`, `s1`, `ST`, and `p1`, [m] pitch_ratio : float, optional Ratio of the pitch to bare tube diameter, [-] fin_diameter : float, optional Outer diameter of each tube after including the fin on both sides, [m] fin_height : float, optional Height above bare tube of the tube fins, [m] fin_density : float, optional Number of fins per meter of tube, [1/m] fin_interval : float, optional Space between each fin, including the thickness of one fin at its base, [m] parallel_bays : int, optional Number of bays in the unit, [-] bundles_per_bay : int, optional Number of tube bundles per bay, [-] fans_per_bay : int, optional Number of fans per bay, [-] corbels : bool, optional Whether or not the air cooler has corbels, which increase the air velocity by adding half a tube to the sides for the case of non-rectangular tube layouts, [-] tube_thickness : float, optional Thickness of the bare metal tubes, [m] fan_diameter : float, optional Diameter of air cooler fan, [m] Attributes ---------- bare_length : float Length of bare tube between two fins :math:`\text{bare length} = \text{fin interval} - t_{fin}`, [m] tubes_per_bundle : float Total number of tubes per bundle :math:`N_{tubes/bundle} = N_{tubes/row} \cdot N_{rows}`, [-] tubes_per_bay : float Total number of tubes per bay :math:`N_{tubes/bay} = N_{tubes/bundle} \cdot N_{bundles/bay}`, [-] tubes : float Total number of tubes in all bundles in all bays combined :math:`N_{tubes} = N_{tubes/bay} \cdot N_{bays}`, [-] pitch_diagonal : float Distance between tube centers in a diagonal line between one normal tube and one parallel tube; :math:`s_D = \left[s_L^2 + \left(\frac{s_T}{2}\right)^2\right]^{0.5}`, [m] A_bare_tube_per_tube : float Area of the bare tube including the portion hidden by the fin per tube :math:`A_{bare,total/tube} = \pi D_{tube} L_{tube}`, [m^2] A_bare_tube_per_row : float Area of the bare tube including the portion hidden by the fin per tube row :math:`A_{bare,total/row} = \pi D_{tube} L_{tube} N_{tubes/row}`, [m^2] A_bare_tube_per_bundle : float Area of the bare tube including the portion hidden by the fin per bundle :math:`A_{bare,total/bundle} = \pi D_{tube} L_{tube} N_{tubes/bundle}`, [m^2] A_bare_tube_per_bay : float Area of the bare tube including the portion hidden by the fin per bay :math:`A_{bare,total/bay} = \pi D_{tube} L_{tube} N_{tubes/bay}`, [m^2] A_bare_tube : float Area of the bare tube including the portion hidden by the fin per in all bundles and bays combined :math:`A_{bare,total} = \pi D_{tube} L_{tube} N_{tubes}`, [m^2] A_tube_showing_per_tube : float Area of the bare tube which is exposed per tube :math:`A_{bare, showing/tube} = \pi D_{tube} L_{tube} \left(1 - \frac{t_{fin}} {\text{fin interval}} \right)`, [m^2] A_tube_showing_per_row : float Area of the bare tube which is exposed per tube row, [m^2] A_tube_showing_per_bundle : float Area of the bare tube which is exposed per bundle, [m^2] A_tube_showing_per_bay : float Area of the bare tube which is exposed per bay, [m^2] A_tube_showing : float Area of the bare tube which is exposed in all bundles and bays combined, [m^2] A_per_fin : float Surface area per fin :math:`A_{fin} = 2 \frac{\pi}{4} (D_{fin}^2 - D_{tube}^2) + \pi D_{fin} t_{fin}`, [m^2] A_fin_per_tube : float Surface area of all fins per tube :math:`A_{fin/tube} = N_{fins/m} L_{tube} A_{fin}`, [m^2] A_fin_per_row : float Surface area of all fins per row, [m^2] A_fin_per_bundle : float Surface area of all fins per bundle, [m^2] A_fin_per_bay : float Surface area of all fins per bay, [m^2] A_fin : float Surface area of all fins in all bundles and bays combined, [m^2] A_per_tube : float Surface area of combined finned and non-fined area exposed for heat transfer per tube :math:`A_{tube} = A_{bare, showing/tube} + A_{fin/tube}`, [m^2] A_per_row : float Surface area of combined finned and non-finned area exposed for heat transfer per tube row, [m^2] A_per_bundle : float Surface area of combined finned and non-finned area exposed for heat transfer per tube bundle, [m^2] A_per_bay : float Surface area of combined finned and non-finned area exposed for heat transfer per bay, [m^2] A : float Surface area of combined finned and non-finned area exposed for heat transfer in all bundles and bays combined, [m^2] A_increase : float Ratio of actual surface area to bare tube surface area :math:`A_{increase} = \frac{A_{tube}}{A_{bare, total/tube}}`, [-] A_tube_flow : float The area for the fluid to flow in one tube, :math:`\pi/4\cdot D_i^2`, [m^2] channels : int The number of tubes the fluid flows through at the inlet header, [-] tube_volume_per_tube : float Fluid volume per tube inside :math:`V_{tube, flow} = \frac{\pi}{4} D_{i}^2 L_{tube}`, [m^3] tube_volume_per_row : float Fluid volume of tubes per row, [m^3] tube_volume_per_bundle : float Fluid volume of tubes per bundle, [m^3] tube_volume_per_bay : float Fluid volume of tubes per bay, [m^3] tube_volume : float Fluid volume of tubes in all bundles and bays combined, [m^3] A_diagonal_per_bundle : float Air flow area along the diagonal plane per bundle :math:`A_d = 2 N_{tubes/row} L_{tube} (P_d - D_{tube} - 2 N_{fins/m} h_{fin} t_{fin}) + A_\text{extra,side}`, [m^2] A_normal_per_bundle : float Air flow area along the normal (transverse) plane; this is normally the minimum flow area, except for some staggered configurations :math:`A_t = N_{tubes/row} L_{tube} (P_t - D_{tube} - 2 N_{fins/m} h_{fin} t_{fin}) + A_\text{extra,side}`, [m^2] A_min_per_bundle : float Minimum air flow area per bundle; this is the characteristic area for velocity calculation in most finned tube convection correlations :math:`A_{min} = min(A_d, A_t)`, [m^2] A_min_per_bay : float Minimum air flow area per bay, [m^2] A_min : float Minimum air flow area, [m^2] A_face_per_bundle : float Face area per bundle :math:`A_{face} = P_{T} (1+N_{tubes/row}) L_{tube}`; if corbels are used, add 0.5 to tubes/row instead of 1, [m^2] A_face_per_bay : float Face area per bay, [m^2] A_face : float Total face area, [m^2] flow_area_contraction_ratio : float Ratio of `A_min` to `A_face`, [-] Notes ----- Examples -------- >>> AC = AirCooledExchanger(tube_rows=4, tube_passes=4, tubes_per_row=56, tube_length=10.9728, ... tube_diameter=1*inch, fin_thickness=0.013*inch, fin_density=10/inch, ... angle=30, pitch=2.5*inch, fin_height=0.625*inch, tube_thickness=0.00338, ... bundles_per_bay=2, parallel_bays=3, corbels=True) References ---------- .. [1] Schlunder, Ernst U, and International Center for Heat and Mass Transfer. Heat Exchanger Design Handbook. Washington: Hemisphere Pub. Corp., 1983. ''' def __repr__(self): s = '' t = '' for k, v in self.__dict__.items(): try: t += '%s=%g, ' %(k, v) except: t += '%s=%s, ' %(k, v) t = t[0:-2] return s%t def __init__(self, tube_rows, tube_passes, tubes_per_row, tube_length, tube_diameter, fin_thickness, angle=None, pitch=None, pitch_parallel=None, pitch_normal=None, pitch_ratio=None, fin_diameter=None, fin_height=None, fin_density=None, fin_interval=None, parallel_bays=1, bundles_per_bay=1, fans_per_bay=1, corbels=False, tube_thickness=None, fan_diameter=None): # TODO: fin types self.tube_rows = tube_rows self.tube_passes = tube_passes self.tubes_per_row = tubes_per_row self.tube_length = tube_length self.tube_diameter = tube_diameter self.fin_thickness = fin_thickness self.fan_diameter = fan_diameter if pitch_ratio is not None: if pitch is not None: pitch = self.tube_diameter*pitch_ratio else: raise Exception('Specify only one of `pitch_ratio` or `pitch`') angle, pitch, pitch_parallel, pitch_normal = pitch_angle_solver( angle=angle, pitch=pitch, pitch_parallel=pitch_parallel, pitch_normal=pitch_normal) self.angle = angle self.pitch = pitch self.pitch_parallel = pitch_parallel self.pitch_normal = pitch_normal self.pitch_diagonal = (pitch_parallel**2 + (0.5*pitch_normal)**2)**0.5 if fin_diameter is None and fin_height is None: raise Exception('Specify only one of `fin_diameter` or `fin_height`') elif fin_diameter is not None: fin_height = 0.5*(fin_diameter - tube_diameter) elif fin_height is not None: fin_diameter = tube_diameter + 2.0*fin_height self.fin_height = fin_height self.fin_diameter = fin_diameter if fin_density is None and fin_interval is None: raise Exception('Specify only one of `fin_density` or `fin_interval`') elif fin_density is not None: fin_interval = 1.0/fin_density elif fin_interval is not None: fin_density = 1.0/fin_interval self.fin_interval = fin_interval self.fin_density = fin_density self.parallel_bays = parallel_bays self.bundles_per_bay = bundles_per_bay self.fans_per_bay = fans_per_bay self.corbels = corbels self.tube_thickness = tube_thickness if self.fin_interval: self.bare_length = self.fin_interval - self.fin_thickness else: self.bare_length = None self.tubes_per_bundle = self.tubes_per_row*self.tube_rows self.tubes_per_bay = self.tubes_per_bundle*self.bundles_per_bay self.tubes = self.tubes_per_bay*self.parallel_bays self.A_bare_tube_per_tube = pi*self.tube_diameter*self.tube_length self.A_bare_tube_per_row = self.A_bare_tube_per_tube*self.tubes_per_row self.A_bare_tube_per_bundle = self.A_bare_tube_per_tube*self.tubes_per_bundle self.A_bare_tube_per_bay = self.A_bare_tube_per_tube*self.tubes_per_bay self.A_bare_tube = self.A_bare_tube_per_tube*self.tubes self.A_tube_showing_per_tube = pi*self.tube_diameter*self.tube_length*(1.0 - self.fin_thickness/self.fin_interval) self.A_tube_showing_per_row = self.A_tube_showing_per_tube*self.tubes_per_row self.A_tube_showing_per_bundle = self.A_tube_showing_per_tube*self.tubes_per_bundle self.A_tube_showing_per_bay = self.A_tube_showing_per_tube*self.tubes_per_bay self.A_tube_showing = self.A_tube_showing_per_tube*self.tubes self.A_per_fin = (2.0*pi/4.0*(self.fin_diameter**2 - self.tube_diameter**2) + pi*self.fin_diameter*self.fin_thickness) # pi*D*L(fin) self.A_fin_per_tube = self.fin_density*self.tube_length*self.A_per_fin self.A_fin_per_row = self.A_fin_per_tube*self.tubes_per_row self.A_fin_per_bundle = self.A_fin_per_tube*self.tubes_per_bundle self.A_fin_per_bay = self.A_fin_per_tube*self.tubes_per_bay self.A_fin = self.A_fin_per_tube*self.tubes self.A_per_tube = self.A_tube_showing_per_tube + self.A_fin_per_tube self.A_per_row = self.A_tube_showing_per_row + self.A_fin_per_row self.A_per_bundle = self.A_tube_showing_per_bundle + self.A_fin_per_bundle self.A_per_bay = self.A_tube_showing_per_bay + self.A_fin_per_bay self.A = self.A_tube_showing + self.A_fin self.A_increase = self.A/self.A_bare_tube # TODO A_extra could be calculated based on a fixed width and height of the bay A_extra = 0.0 self.A_diagonal_per_bundle = 2.0*self.tubes_per_row*self.tube_length*(self.pitch_diagonal - self.tube_diameter - 2.0*fin_density*self.fin_height*self.fin_thickness) + A_extra self.A_normal_per_bundle = self.tubes_per_row*self.tube_length*(self.pitch_normal - self.tube_diameter - 2.0*fin_density*self.fin_height*self.fin_thickness) + A_extra self.A_min_per_bundle = min(self.A_diagonal_per_bundle, self.A_normal_per_bundle) self.A_min_per_bay = self.A_min_per_bundle*self.bundles_per_bay self.A_min = self.A_min_per_bay*self.parallel_bays i = 0.5 if self.corbels else 1.0 self.A_face_per_bundle = self.pitch_normal*self.tube_length*(self.tubes_per_row + i) self.A_face_per_bay = self.A_face_per_bundle*self.bundles_per_bay self.A_face = self.A_face_per_bay*self.parallel_bays self.flow_area_contraction_ratio = self.A_min/self.A_face if self.tube_thickness is not None: self.Di = self.tube_diameter - self.tube_thickness*2.0 self.A_tube_flow = pi/4.0*self.Di*self.Di self.tube_volume_per_tube = self.A_tube_flow*self.tube_length self.tube_volume_per_row = self.tube_volume_per_tube*self.tubes_per_row self.tube_volume_per_bundle = self.tube_volume_per_tube*self.tubes_per_bundle self.tube_volume_per_bay = self.tube_volume_per_tube*self.tubes_per_bay self.tube_volume = self.tube_volume_per_tube*self.tubes else: self.Di = None self.A_tube_flow = None self.tube_volume_per_tube = None self.tube_volume_per_row = None self.tube_volume_per_bundle = None self.tube_volume_per_bay = None self.tube_volume = None # TODO: Support different numbers of tube rows per pass - maybe pass # a list of rows per pass to tube_passes? if self.tube_rows % self.tube_passes == 0: self.channels = self.tubes_per_bundle/self.tube_passes else: self.channels = self.tubes_per_row if self.angle == 30: self.pitch_str = 'triangular' self.pitch_class = 'staggered' elif self.angle == 60: self.pitch_str = 'rotated triangular' self.pitch_class = 'staggered' elif self.angle == 45: self.pitch_str = 'rotated square' self.pitch_class = 'in-line' elif self.angle == 90: self.pitch_str = 'square' self.pitch_class = 'in-line' else: self.pitch_str = 'custom' self.pitch_class = 'custom' def pitch_angle_solver(angle=None, pitch=None, pitch_parallel=None, pitch_normal=None): r'''Utility to take any two of `angle`, `pitch`, `pitch_parallel`, and `pitch_normal` and calculate the other two. This is useful for applications with tube banks, as in shell and tube heat exchangers or air coolers and allows for a wider range of user input. .. math:: \text{pitch normal} = \text{pitch} \cdot \sin(\text{angle}) .. math:: \text{pitch parallel} = \text{pitch} \cdot \cos(\text{angle}) Parameters ---------- angle : float, optional The angle of the tube layout, [degrees] pitch : float, optional The shortest distance between tube centers; defined in relation to the flow direction only, [m] pitch_parallel : float, optional The distance between tube center along a line parallel to the flow; has been called `longitudinal` pitch, `pp`, `s2`, `SL`, and `p2`, [m] pitch_normal : float, optional The distance between tube centers in a line 90° to the line of flow; has been called the `transverse` pitch, `pn`, `s1`, `ST`, and `p1`, [m] Returns ------- angle : float The angle of the tube layout, [degrees] pitch : float The shortest distance between tube centers; defined in relation to the flow direction only, [m] pitch_parallel : float The distance between tube center along a line parallel to the flow; has been called `longitudinal` pitch, `pp`, `s2`, `SL`, and `p2`, [m] pitch_normal : float The distance between tube centers in a line 90° to the line of flow; has been called the `transverse` pitch, `pn`, `s1`, `ST`, and `p1`, [m] Notes ----- For the 90 and 0 degree case, the normal or parallel pitches can be zero; given the angle and the zero value, obviously is it not possible to calculate the pitch and a math error will be raised. No exception will be raised if three or four inputs are provided; the other two will simply be calculated according to the list of if statements used. An exception will be raised if only one input is provided. Examples -------- >>> pitch_angle_solver(pitch=1, angle=30) (30, 1, 0.8660254037844387, 0.49999999999999994) References ---------- .. [1] Schlunder, Ernst U, and International Center for Heat and Mass Transfer. Heat Exchanger Design Handbook. Washington: Hemisphere Pub. Corp., 1983. ''' if angle is not None and pitch is not None: pitch_normal = pitch*sin(radians(angle)) pitch_parallel = pitch*cos(radians(angle)) elif angle is not None and pitch_normal is not None: pitch = pitch_normal/sin(radians(angle)) pitch_parallel = pitch*cos(radians(angle)) elif angle is not None and pitch_parallel is not None: pitch = pitch_parallel/cos(radians(angle)) pitch_normal = pitch*sin(radians(angle)) elif pitch_normal is not None and pitch is not None: angle = degrees(asin(pitch_normal/pitch)) pitch_parallel = pitch*cos(radians(angle)) elif pitch_parallel is not None and pitch is not None: angle = degrees(acos(pitch_parallel/pitch)) pitch_normal = pitch*sin(radians(angle)) elif pitch_parallel is not None and pitch_normal is not None: angle = degrees(asin(pitch_normal/(pitch_normal**2 + pitch_parallel**2)**0.5)) pitch = (pitch_normal**2 + pitch_parallel**2)**0.5 else: raise Exception('Two of the arguments are required') return angle, pitch, pitch_parallel, pitch_normal def sphericity(A, V): r'''Returns the sphericity of a particle of surface area `A` and volume `V`. Sphericity is the ratio of the surface area of a sphere with the same volume as the particle (equivalent diameter) to the actual surface area of the particle. .. math:: \Psi = \frac{\text{A of sphere with } V_p } {{A}_p} = \frac{\pi^{\frac{1}{3}}(6V_p)^{\frac{2}{3}}}{A_p} Parameters ---------- A : float Surface area of particle, [m^2] V : float Volume of particle, [m^3] Returns ------- Psi : float Sphericity [-] Notes ----- All non-spherical particles have spericities less than 1 but greater than 0. Many common geometrical shapes have their results calculated exactly in [2]_. Examples -------- >>> sphericity(10., 2.) 0.767663317071005 For a cube of side length a=3, the surface area is 6*a^2=54 and volume a^3=27. Its sphericity is then: >>> sphericity(A=54, V=27) 0.8059959770082346 References ---------- .. [1] Rhodes, Martin J., ed. Introduction to Particle Technology. 2E. Chichester, England ; Hoboken, NJ: Wiley, 2008. .. [2] "Sphericity." Wikipedia, March 8, 2017. https://en.wikipedia.org/w/index.php?title=Sphericity&oldid=769183043 ''' return pi**(1/3.)*(6*V)**(2/3.)/A def aspect_ratio(Dmin, Dmax): r'''Returns the aspect ratio of a shape with minimum and maximum dimension, `Dmin` and `Dmax`. .. math:: A_R = \frac{D_{min}}{D_{max}} Parameters ---------- Dmin : float Minimum dimension, [m] Dmax : float Maximum dimension, [m] Returns ------- a_r : float Aspect ratio [-] Examples -------- >>> aspect_ratio(.2, 2) 0.1 ''' return Dmin/Dmax def circularity(A, P): r'''Returns the circularity of a shape with area `A` and perimeter `P`. .. math:: f_{circ} = \frac {4 \pi A} {P^2} Defined to be 1 for a circle. Used to characterize particles. Any non-circular shape must have a circularity less than one. Parameters ---------- A : float Area of the shape, [m^2] P : float Perimeter of the shape, [m] Returns ------- f_circ : float Circularity of the shape [-] Examples -------- Square, side length = 2 (all squares are the same): >>> circularity(A=(2*2), P=4*2) 0.7853981633974483 Rectangle, one side length = 1, second side length = 100 >>> D1 = 1 >>> D2 = 100 >>> A = D1*D2 >>> P = 2*D1 + 2*D2 >>> circularity(A, P) 0.030796908671598795 ''' return 4*pi*A/P**2 def A_cylinder(D, L): r'''Returns the surface area of a cylinder. .. math:: A = \pi D L + 2\cdot \frac{\pi D^2}{4} Parameters ---------- D : float Diameter of the cylinder, [m] L : float Length of the cylinder, [m] Returns ------- A : float Surface area [m^2] Examples -------- >>> A_cylinder(0.01, .1) 0.0032986722862692833 ''' cap = pi*D**2/4*2 side = pi*D*L return cap + side def V_cylinder(D, L): r'''Returns the volume of a cylinder. .. math:: V = \frac{\pi D^2}{4}L Parameters ---------- D : float Diameter of the cylinder, [m] L : float Length of the cylinder, [m] Returns ------- V : float Volume [m^3] Examples -------- >>> V_cylinder(0.01, .1) 7.853981633974484e-06 ''' return pi*D**2/4*L def A_hollow_cylinder(Di, Do, L): r'''Returns the surface area of a hollow cylinder. .. math:: A = \pi D_o L + \pi D_i L + 2\cdot \frac{\pi D_o^2}{4} - 2\cdot \frac{\pi D_i^2}{4} Parameters ---------- Di : float Diameter of the hollow in the cylinder, [m] Do : float Diameter of the exterior of the cylinder, [m] L : float Length of the cylinder, [m] Returns ------- A : float Surface area [m^2] Examples -------- >>> A_hollow_cylinder(0.005, 0.01, 0.1) 0.004830198704894308 ''' side_o = pi*Do*L side_i = pi*Di*L cap_circle = pi*Do**2/4*2 cap_removed = pi*Di**2/4*2 return side_o + side_i + cap_circle - cap_removed def V_hollow_cylinder(Di, Do, L): r'''Returns the volume of a hollow cylinder. .. math:: V = \frac{\pi D_o^2}{4}L - L\frac{\pi D_i^2}{4} Parameters ---------- Di : float Diameter of the hollow in the cylinder, [m] Do : float Diameter of the exterior of the cylinder, [m] L : float Length of the cylinder, [m] Returns ------- V : float Volume [m^3] Examples -------- >>> V_hollow_cylinder(0.005, 0.01, 0.1) 5.890486225480862e-06 ''' return pi*Do**2/4*L - pi*Di**2/4*L def A_multiple_hole_cylinder(Do, L, holes): r'''Returns the surface area of a cylinder with multiple holes. Calculation will naively return a negative value or other impossible result if the number of cylinders added is physically impossible. Holes may be of different shapes, but must be perpendicular to the axis of the cylinder. .. math:: A = \pi D_o L + 2\cdot \frac{\pi D_o^2}{4} + \sum_{i}^n \left( \pi D_i L - 2\cdot \frac{\pi D_i^2}{4}\right) Parameters ---------- Do : float Diameter of the exterior of the cylinder, [m] L : float Length of the cylinder, [m] holes : list List of tuples containing (diameter, count) pairs of descriptions for each of the holes sizes. Returns ------- A : float Surface area [m^2] Examples -------- >>> A_multiple_hole_cylinder(0.01, 0.1, [(0.005, 1)]) 0.004830198704894308 ''' side_o = pi*Do*L cap_circle = pi*Do**2/4*2 A = cap_circle + side_o for Di, n in holes: side_i = pi*Di*L cap_removed = pi*Di**2/4*2 A = A + side_i*n - cap_removed*n return A def V_multiple_hole_cylinder(Do, L, holes): r'''Returns the solid volume of a cylinder with multiple cylindrical holes. Calculation will naively return a negative value or other impossible result if the number of cylinders added is physically impossible. .. math:: V = \frac{\pi D_o^2}{4}L - L\frac{\pi D_i^2}{4} Parameters ---------- Do : float Diameter of the exterior of the cylinder, [m] L : float Length of the cylinder, [m] holes : list List of tuples containing (diameter, count) pairs of descriptions for each of the holes sizes. Returns ------- V : float Volume [m^3] Examples -------- >>> V_multiple_hole_cylinder(0.01, 0.1, [(0.005, 1)]) 5.890486225480862e-06 ''' V = pi*Do**2/4*L for Di, n in holes: V -= pi*Di*Di/4*L*n return V fluids-0.1.78/fluids/fittings.py0000644000175000017500000052560213632560624015341 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import cos, sin, tan, atan, pi, radians, degrees, log10, log from fluids.constants import inch from fluids.friction import (friction_factor, Colebrook, friction_factor_curved, ft_Crane) from fluids.numerics import (horner, interp, splev, bisplev, implementation_optimize_tck, tck_interp2d_linear) __all__ = ['contraction_sharp', 'contraction_round', 'contraction_round_Miller', 'contraction_conical', 'contraction_conical_Crane', 'contraction_beveled', 'diffuser_sharp', 'diffuser_conical', 'diffuser_conical_staged', 'diffuser_curved', 'diffuser_pipe_reducer', 'entrance_sharp', 'entrance_distance', 'entrance_angled', 'entrance_rounded', 'entrance_beveled', 'entrance_beveled_orifice', 'entrance_distance_45_Miller', 'exit_normal', 'bend_rounded', 'bend_rounded_Miller', 'bend_rounded_Crane', 'bend_miter', 'bend_miter_Miller', 'helix', 'spiral','Darby3K', 'Hooper2K', 'Kv_to_Cv', 'Cv_to_Kv', 'Kv_to_K', 'K_to_Kv', 'Cv_to_K', 'K_to_Cv', 'change_K_basis', 'Darby', 'Hooper', 'K_gate_valve_Crane', 'K_angle_valve_Crane', 'K_globe_valve_Crane', 'K_swing_check_valve_Crane', 'K_lift_check_valve_Crane', 'K_tilting_disk_check_valve_Crane', 'K_globe_stop_check_valve_Crane', 'K_angle_stop_check_valve_Crane', 'K_ball_valve_Crane', 'K_diaphragm_valve_Crane', 'K_foot_valve_Crane', 'K_butterfly_valve_Crane', 'K_plug_valve_Crane', 'K_branch_converging_Crane', 'K_run_converging_Crane', 'K_branch_diverging_Crane', 'K_run_diverging_Crane', 'v_lift_valve_Crane'] def change_K_basis(K1, D1, D2): r'''Converts a loss coefficient `K1` from the basis of one diameter `D1` to another diameter, `D2`. This is necessary when dealing with pipelines of changing diameter. .. math:: K_2 = K_1\frac{D_2^4}{D_1^4} = K_1 \frac{A_2^2}{A_1^2} Parameters ---------- K1 : float Loss coefficient with respect to diameter `D`, [-] D1 : float Diameter of pipe for which `K1` has been calculated, [m] D2 : float Diameter of pipe for which `K2` will be calculated, [m] Returns ------- K2 : float Loss coefficient with respect to the second diameter, [-] Notes ----- This expression is shown in [1]_ and can easily be derived: .. math:: \frac{\rho V_{1}^{2}}{2} \cdot K_{1} = \frac{\rho V_{2}^{2} }{2} \cdot K_{2} Substitute velocities for flow rate divided by area: .. math:: \frac{8 K_{1} Q^{2} \rho}{\pi^{2} D_{1}^{4}} = \frac{8 K_{2} Q^{2} \rho}{\pi^{2} D_{2}^{4}} From here, simplification and rearrangement is all that is required. Examples -------- >>> change_K_basis(K1=32.68875692997804, D1=.01, D2=.02) 523.0201108796487 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' return K1*(D2/D1)**4 ### Entrances entrance_sharp_methods = ['Rennels', 'Swamee', 'Blevins', 'Idelchik', 'Crane', 'Miller'] def entrance_sharp(method='Rennels'): r'''Returns loss coefficient for a sharp entrance to a pipe. Six sources are available; four of them recommending K = 0.5, the most recent 'Rennels', method recommending K = 0.57, and the 'Miller' method recommending ~0.51 as read from a graph. .. figure:: fittings/flush_mounted_sharp_edged_entrance.png :scale: 30 % :alt: flush mounted sharp edged entrance; after [1]_ Parameters ---------- method : str, optional The method to use; one of 'Rennels', 'Swamee', 'Blevins', 'Idelchik', 'Crane', or 'Miller, [-] Returns ------- K : float Loss coefficient [-] Notes ----- 0.5 is the result for 'Swamee', 'Blevins', 'Idelchik', and 'Crane'; 'Miller' returns 0.5093, and 'Rennels' returns 0.57. Examples -------- >>> entrance_sharp() 0.57 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [3] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. .. [4] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [5] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [6] Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008. ''' if method is None: method = 'Rennels' if method in ('Swamee', 'Blevins', 'Crane', 'Idelchik'): return 0.50 elif method == 'Miller': # From entrance_rounded(Di=0.9, rc=0.0, method='Miller'); Not saying it's right return 0.5092676683721356 elif method == 'Rennels': return 0.57 else: raise ValueError('Specified method not recognized; methods are %s' %(entrance_sharp_methods)) entrance_distance_Miller_coeffs = [3.5979871366071166, -2.735407311020481, -14.08678246875138, 10.637236472292983, 21.99568490754116, -16.38501138746954, -17.62779826803278, 12.945551397987447, 7.715463242992863, -5.850893341031715, -1.3809402870404826, 1.179637166644488, 0.08781141316107932, -0.09751968111743672, 0.00501792061942849, 0.0026378278251172615, 0.5309019247035696] entrance_distance_Idelchik_l_Di = [0.0, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.3, 0.5, 10.0] # last point infinity entrance_distance_Idelchik_t_Di = [0.0, 0.004, 0.008, 0.012, 0.016, 0.02, 0.024, 0.03, 0.04, 0.05, 1.0] # last point infinity entrance_distance_Idelchik_dat = [ [0.5, 0.57, 0.63, 0.68, 0.73, 0.8, 0.86, 0.92, 0.97, 1, 1], [0.5, 0.54, 0.58, 0.63, 0.67, 0.74, 0.8, 0.86, 0.9, 0.94, 0.94], [0.5, 0.53, 0.55, 0.58, 0.62, 0.68, 0.74, 0.81, 0.85, 0.88, 0.88], [0.5, 0.52, 0.53, 0.55, 0.58, 0.63, 0.68, 0.75, 0.79, 0.83, 0.83], [0.5, 0.51, 0.51, 0.53, 0.55, 0.58, 0.64, 0.7, 0.74, 0.77, 0.77], [0.5, 0.51, 0.51, 0.52, 0.53, 0.55, 0.6, 0.66, 0.69, 0.72, 0.72], [0.5, 0.5, 0.5, 0.51, 0.52, 0.53, 0.58, 0.62, 0.65, 0.68, 0.68], [0.5, 0.5, 0.5, 0.51, 0.52, 0.52, 0.54, 0.57, 0.59, 0.61, 0.61], [0.5, 0.5, 0.5, 0.51, 0.51, 0.51, 0.51, 0.52, 0.52, 0.54, 0.54], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5], [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]] entrance_distance_Idelchik_tck = tck_interp2d_linear(entrance_distance_Idelchik_l_Di, entrance_distance_Idelchik_t_Di, entrance_distance_Idelchik_dat, kx=1, ky=1) entrance_distance_Idelchik_obj = lambda x, y: float(bisplev(x, y, entrance_distance_Idelchik_tck)) entrance_distance_Harris_t_Di = [0.00322, 0.007255, 0.01223, 0.018015, 0.021776, 0.029044, 0.039417, 0.049519, 0.058012, 0.066234, 0.076747, 0.088337, 0.098714, 0.109497, 0.121762, 0.130655, 0.14036, 0.148986, 0.159902, 0.17149, 0.179578, 0.189416, 0.200602, 0.208148, 0.217716, 0.228232, 0.239821, 0.250063, 0.260845, 0.270818, 0.280116, 0.289145] entrance_distance_Harris_Ks = [0.894574, 0.832435, 0.749768, 0.671543, 0.574442, 0.508432, 0.476283, 0.430261, 0.45027, 0.45474, 0.461993, 0.457042, 0.458745, 0.464889, 0.471594, 0.461638, 0.467778, 0.475024, 0.474509, 0.456239, 0.466258, 0.467959, 0.466336, 0.459705, 0.454746, 0.478092, 0.468701, 0.467074, 0.468779, 0.467151, 0.46441, 0.458894] entrance_distance_Harris_tck = implementation_optimize_tck([ [0.00322, 0.00322, 0.00322, 0.00322, 0.01223, 0.018015, 0.021776, 0.029044, 0.039417, 0.049519, 0.058012, 0.066234, 0.076747, 0.088337, 0.098714, 0.109497, 0.121762, 0.130655, 0.14036, 0.148986, 0.159902, 0.17149, 0.179578, 0.189416, 0.200602, 0.208148, 0.217716, 0.228232, 0.239821, 0.250063, 0.260845, 0.270818, 0.289145, 0.289145, 0.289145, 0.289145], [0.894574, 0.8607821362959746, 0.7418364422223542, 0.7071594764719331, 0.5230593641637336, 0.5053866365045014, 0.4869380604512194, 0.40993425463761973, 0.4588732899536263, 0.45115886608796796, 0.4672085434114074, 0.45422360120010624, 0.45882234693051327, 0.4633823025024543, 0.4785594597978615, 0.45603301615693537, 0.46825191653436804, 0.4759245648612374, 0.4816400424293727, 0.4467699156979281, 0.4713316096394432, 0.4667017151264001, 0.4686302748435692, 0.4597796190662107, 0.445267522727416, 0.491034205369033, 0.4641178520412072, 0.46721810151497395, 0.46958841021674314, 0.4664976446563455, 0.46420067427943945, 0.458894, 0.0, 0.0, 0.0, 0.0], 3]) entrance_distance_Harris_obj = lambda x : float(splev(x, entrance_distance_Harris_tck)) entrance_distance_methods = ['Rennels', 'Miller', 'Idelchik', 'Harris', 'Crane'] def entrance_distance(Di, t=None, l=None, method='Rennels'): r'''Returns the loss coefficient for a sharp entrance to a pipe at a distance from the wall of a reservoir. This calculation has five methods available; all but 'Idelchik' require the pipe to be at least `Di/2` into the reservoir. The most conservative formulation is that of Rennels; with Miller being almost identical until `t/Di` reaches 0.05, when it continues settling to K = 0.53 compared to K = 0.57 for 'Rennels'. 'Idelchik' is offset lower by about 0.03 and settles to 0.50. The 'Harris' method is a straight interpolation from experimental results with smoothing, and it is the lowest at all points. The 'Crane' [6]_ method returns 0.78 for all cases. The Rennels [1]_ formula is: .. math:: K = 1.12 - 22\frac{t}{d} + 216\left(\frac{t}{d}\right)^2 + 80\left(\frac{t}{d}\right)^3 .. figure:: fittings/sharp_edged_entrace_extended_mount.png :scale: 30 % :alt: sharp edged entrace, extended mount; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] t : float, optional Thickness of pipe wall, used in all but 'Crane' method, [m] l : float, optional The distance the pipe extends into the reservoir; used only in the 'Idelchik' method, defaults to `Di`, [m] method : str, optional One of 'Rennels', 'Miller', 'Idelchik', 'Harris', 'Crane', [-] Returns ------- K : float Loss coefficient [-] Notes ----- This type of inlet is also known as a Borda's mouthpiece. It is not of practical interest according to [1]_. The 'Idelchik' [3]_ data is recommended in [5]_; it also provides rounded values for the 'Harris. method. .. plot:: plots/entrance_distance.py Examples -------- >>> entrance_distance(Di=0.1, t=0.0005) 1.0154100000000001 >>> entrance_distance(Di=0.1, t=0.0005, method='Idelchik') 0.9249999999999999 >>> entrance_distance(Di=0.1, t=0.0005, l=.02, method='Idelchik') 0.8474999999999999 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [3] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. .. [4] Harris, Charles William. The Influence of Pipe Thickness on Re-Entrant Intake Losses. Vol. 48. University of Washington, 1928. .. [5] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [6] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if method is None: method = 'Rennels' if method == 'Rennels': t_Di = t/Di if t_Di > 0.05: t_Di = 0.05 return 1.12 + t_Di*(t_Di*(80.0*t_Di + 216.0) - 22.0) elif method == 'Miller': t_Di = t/Di if t_Di > 0.3: t_Di = 0.3 return horner(entrance_distance_Miller_coeffs, 20.0/3.0*(t_Di - 0.15)) elif method == 'Idelchik': if l is None: l = Di t_Di = min(t/Di, 1.0) l_Di = min(l/Di, 10.0) K = float(entrance_distance_Idelchik_obj(l_Di, t_Di)) if K < 0.0: K = 0.0 return K elif method == 'Harris': ratio = min(t/Di, 0.289145) # max value for interpolation - extrapolation looks bad K = float(entrance_distance_Harris_obj(ratio)) return K elif method == 'Crane': return 0.78 else: raise ValueError('Specified method not recognized; methods are %s' %(entrance_distance_methods)) entrance_distance_45_Miller_coeffs = [1.866792110435199, -2.8873199398381075, -4.814715029513536, 10.49562589373457, 1.40401776402922, -14.035912282651882, 6.576826918678071, 7.854645523152614, -8.044860164646053, -1.1515885154512326, 4.145420152553604, -0.7994793202964967, -1.1034822877774095, 0.32764916637953573, 0.367065452438954, -0.2614447909010587, 0.29084476697430256] def entrance_distance_45_Miller(Di, Di0): r'''Returns loss coefficient for a sharp entrance to a pipe at a distance from the wall of a reservoir with an initial 45 degree slope conical section of diameter `Di0` added to reduce the overall loss coefficient. This method is as shown in Miller's Internal Flow Systems [1]_. This method is a curve fit to a graph in [1]_ which was digitized. Parameters ---------- Di : float Inside diameter of pipe, [m] Di0 : float Initial inner diameter of the welded conical section of the entrance of the distant (re-entrant) pipe, [m] Returns ------- K : float Loss coefficient with respect to the main pipe diameter `Di`, [-] Notes ----- The graph predicts an almost constant loss coefficient once the thickness of pipe wall to pipe diameter ratio becomes ~0.02. Examples -------- >>> entrance_distance_45_Miller(Di=0.1, Di0=0.14) 0.24407641818143339 References ---------- .. [1] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' t = 0.5*(Di0 - Di) t_Di = t/Di if t_Di > 0.3: t_Di = 0.3 return horner(entrance_distance_45_Miller_coeffs, 6.66666666666666696*(t_Di-0.15)) entrance_angled_methods = ['Idelchik'] def entrance_angled(angle, method='Idelchik'): r'''Returns loss coefficient for a sharp, angled entrance to a pipe flush with the wall of a reservoir. First published in [2]_, it has been recommended in [3]_ as well as in [1]_. .. math:: K = 0.57 + 0.30\cos(\theta) + 0.20\cos(\theta)^2 .. figure:: fittings/entrance_mounted_at_an_angle.png :scale: 30 % :alt: entrace mounted at an angle; after [1]_ Parameters ---------- angle : float Angle of inclination (90° = straight, 0° = parallel to pipe wall), [degrees] method : str, optional The method to use; only 'Idelchik' is supported Returns ------- K : float Loss coefficient [-] Notes ----- Not reliable for angles under 20 degrees. Loss coefficient is the same for an upward or downward angled inlet. Examples -------- >>> entrance_angled(30) 0.9798076211353315 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. .. [3] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' if method is None: method = 'Idelchik' if method == 'Idelchik': cos_term = cos(radians(angle)) return 0.57 + cos_term*(0.2*cos_term + 0.3) else: raise ValueError('Specified method not recognized; methods are %s' %(entrance_angled_methods)) entrance_rounded_Miller_coeffs = [1.3127209945178038, 0.19963046592715727, -6.49081916725612, -0.10347409377743588, 12.68369791325003, -0.9435681020599904 , -12.44320584089916, 1.328251365167716, 6.668390027065714, -0.4356382649470076, -2.209229212394282, -0.07222448354500295, 0.6786898049825905, -0.18686362789567468, 0.020064570486606065, -0.013120241146656442, 0.061951596342059975] entrance_rounded_ratios_Idelchik = [0, .01, .02, .03, .04, .05, .06, .08, .12, .16, .2] entrance_rounded_Ks_Idelchik = [.5, .44, .37, .31, .26, .22, .2, .15, .09, .06, .03] entrance_rounded_Idelchik_tck = implementation_optimize_tck([[0.0, 0.0, 0.0, 0.015, 0.025, 0.035, 0.045, 0.055, 0.07, 0.1, 0.14, 0.2, 0.2, 0.2], [0.5, 0.46003224474143023, 0.3682580956033294, 0.30877401146621397, 0.2590978355993873, 0.2166389749374616, 0.19717564973543905, 0.1332971654240214, 0.08659056691519569, 0.05396118560777325, 0.03, 0.0, 0.0, 0.0], 2]) entrance_rounded_Idelchik = lambda x : float(splev(x, entrance_rounded_Idelchik_tck)) entrance_rounded_ratios_Crane = [0.0, .02, .04, .06, .1, .15] entrance_rounded_Ks_Crane = [.5, .28, .24, .15, .09, .04] entrance_rounded_ratios_Harris = [0.0, .01, .02, .03, .04, .05, .06, .08, .12, .16] entrance_rounded_Ks_Harris = [.44, .35, .28, .22, .17, .13, .1, .07, .03, 0.0] entrance_rounded_Harris_tck = implementation_optimize_tck([[0.0, 0.0, 0.0, 0.015, 0.025, 0.035, 0.045, 0.055, 0.07, 0.1, 0.16, 0.16, 0.16], [0.44, 0.36435669860605086, 0.2790010365858813, 0.2187082142826953, 0.16874967771794716, 0.1287937194096216, 0.09091157742799895, 0.06354756460434334, 0.01885121769782832, 0.0, 0.0, 0.0, 0.0], 2]) entrance_rounded_Harris = lambda x : float(splev(x, entrance_rounded_Harris_tck)) entrance_rounded_methods = ['Rennels', 'Crane', 'Miller', 'Idelchik', 'Harris', 'Swamee'] def entrance_rounded(Di, rc, method='Rennels'): r'''Returns loss coefficient for a rounded entrance to a pipe flush with the wall of a reservoir. This calculation has six methods available. The most conservative formulation is that of Rennels; with the Swammee correlation being 0.02-0.07 lower. They were published in 2012 and 2008 respectively, and for this reason could be regarded as more reliable. The Idel'chik correlation appears based on the Hamilton data; and the Miller correlation as well, except a little more conservative. The Crane model trends similarly but only has a few points. The Harris data set is the lowest. The Rennels [1]_ formulas are: .. math:: K = 0.0696\left(1 - 0.569\frac{r}{d}\right)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622\left(1 - 0.30\sqrt{\frac{r}{d}} - 0.70\frac{r}{d}\right)^4 The Swamee [5]_ formula is: .. math:: K = 0.5\left[1 + 36\left(\frac{r}{D}\right)^{1.2}\right]^{-1} .. figure:: fittings/flush_mounted_rounded_entrance.png :scale: 30 % :alt: rounded entrace mounted straight and flush; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] rc : float Radius of curvature of the entrance, [m] method : str, optional One of 'Rennels', 'Crane', 'Miller', 'Idelchik', 'Harris', or 'Swamee'. Returns ------- K : float Loss coefficient [-] Notes ----- For generously rounded entrance (rc/Di >= 1), the loss coefficient converges to 0.03 in the Rennels method. The Rennels formulation was derived primarily from data and theoretical analysis from different flow scenarios than a rounded pipe entrance; the only available data in [2]_ is quite old and [1]_ casts doubt on it. The Hamilton data set is available in [1]_ and [6]_. .. plot:: plots/entrance_rounded.py Examples -------- Point from Diagram 9.2 in [1]_, which was used to confirm the Rennels model implementation: >>> entrance_rounded(Di=0.1, rc=0.0235) 0.09839534618360923 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Hamilton, James Baker. Suppression of Pipe Intake Losses by Various Degrees of Rounding. Seattle: Published by the University of Washington, 1929. https://search.library.wisc.edu/catalog/999823652202121. .. [3] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [4] Harris, Charles William. Elimination of Hydraulic Eddy Current Loss at Intake, Agreement of Theory and Experiment. University of Washington, 1930. .. [5] Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008. .. [6] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [7] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [8] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. ''' if method is None: method = 'Rennels' if method == 'Rennels': if rc/Di > 1.0: return 0.03 lbd = 1.0 + 0.622*(1.0 - 0.30*(rc/Di)**0.5 - 0.70*(rc/Di))**4.0 return 0.0696*(1.0 - 0.569*rc/Di)*lbd**2.0 + (lbd - 1.0)**2 elif method == 'Swamee': return 0.5/(1.0 + 36.0*(rc/Di)**1.2) elif method == 'Crane': ratio = rc/Di if ratio < 0: return 0.5 elif ratio > 0.15: return 0.04 else: return interp(ratio, entrance_rounded_ratios_Crane, entrance_rounded_Ks_Crane) elif method == 'Miller': rc_Di = rc/Di if rc_Di > 0.3: rc_Di = 0.3 return horner(entrance_rounded_Miller_coeffs, 20.0/3.0*(rc_Di - 0.15)) elif method == 'Harris': ratio = rc/Di if ratio > .16: return 0.0 return float(entrance_rounded_Harris(ratio)) elif method == 'Idelchik': ratio = rc/Di if ratio > .2: return entrance_rounded_Ks_Idelchik[-1] return float(entrance_rounded_Idelchik(ratio)) else: raise ValueError('Specified method not recognized; methods are %s' %(entrance_rounded_methods)) entrance_beveled_methods = ['Rennels', 'Idelchik'] entrance_beveled_Idelchik_l_Di = [0.025, 0.05, 0.075, 0.1, 0.15, 0.6] entrance_beveled_Idelchik_angles = [0.0, 10.0, 20.0, 30.0, 40.0, 60.0, 100.0, 140.0, 180.0] entrance_beveled_Idelchik_dat = [ [0.5, 0.47, 0.45, 0.43, 0.41, 0.4, 0.42, 0.45, 0.5], [0.5, 0.45, 0.41, 0.36, 0.33, 0.3, 0.35, 0.42, 0.5], [0.5, 0.42, 0.35, 0.3, 0.26, 0.23, 0.3, 0.4, 0.5], [0.5, 0.39, 0.32, 0.25, 0.22, 0.18, 0.27, 0.38, 0.5], [0.5, 0.37, 0.27, 0.2, 0.16, 0.15, 0.25, 0.37, 0.5], [0.5, 0.27, 0.18, 0.13, 0.11, 0.12, 0.23, 0.36, 0.5]] entrance_beveled_Idelchik_tck = tck_interp2d_linear(entrance_beveled_Idelchik_angles, entrance_beveled_Idelchik_l_Di, entrance_beveled_Idelchik_dat, kx=1, ky=1) entrance_beveled_Idelchik_obj = lambda x, y : float(bisplev(x, y, entrance_beveled_Idelchik_tck)) def entrance_beveled(Di, l, angle, method='Rennels'): r'''Returns loss coefficient for a beveled or chamfered entrance to a pipe flush with the wall of a reservoir. This calculation has two methods available. The 'Rennels' and 'Idelchik' methods have similar trends, but the 'Rennels' formulation is centered around a straight loss coefficient of 0.57, so it is normally at least 0.07 higher. The Rennels [1]_ formulas are: .. math:: K = 0.0696\left(1 - C_b\frac{l}{d}\right)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622\left[1-1.5C_b\left(\frac{l}{d} \right)^{\frac{1-(l/d)^{1/4}}{2}}\right] .. math:: C_b = \left(1 - \frac{\theta}{90}\right)\left(\frac{\theta}{90} \right)^{\frac{1}{1+l/d}} .. figure:: fittings/flush_mounted_beveled_entrance.png :scale: 30 % :alt: Beveled entrace mounted straight; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] l : float Length of bevel measured parallel to the pipe length, [m] angle : float Angle of bevel with respect to the pipe length, [degrees] method : str, optional One of 'Rennels', or 'Idelchik', [-] Returns ------- K : float Loss coefficient [-] Notes ----- A cheap way of getting a lower pressure drop. Little credible data is available. The table of data in [2]_ uses the angle for both bevels, so it runs from 0 to 180 degrees; this function follows the convention in [1]_ which uses only one angle, with the angle varying from 0 to 90 degrees. .. plot:: plots/entrance_beveled.py Examples -------- >>> entrance_beveled(Di=0.1, l=0.003, angle=45) 0.45086864221916984 >>> entrance_beveled(Di=0.1, l=0.003, angle=45, method='Idelchik') 0.3995000000000001 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. ''' if method is None: method = 'Rennels' if method == 'Rennels': Cb = (1-angle/90.)*(angle/90.)**(1./(1 + l/Di )) lbd = 1 + 0.622*(1 - 1.5*Cb*(l/Di)**((1 - (l/Di)**0.25)/2.)) return 0.0696*(1 - Cb*l/Di)*lbd**2 + (lbd - 1.)**2 elif method == 'Idelchik': return float(entrance_beveled_Idelchik_obj(angle*2.0, l/Di)) else: raise ValueError('Specified method not recognized; methods are %s' %(entrance_beveled_methods)) def entrance_beveled_orifice(Di, do, l, angle): r'''Returns loss coefficient for a beveled or chamfered orifice entrance to a pipe flush with the wall of a reservoir, as shown in [1]_. .. math:: K = 0.0696\left(1 - C_b\frac{l}{d_o}\right)\lambda^2 + \left(\lambda -\left(\frac{d_o}{D_i}\right)^2\right)^2 .. math:: \lambda = 1 + 0.622\left[1-C_b\left(\frac{l}{d_o}\right)^{\frac{1- (l/d_o)^{0.25}}{2}}\right] .. math:: C_b = \left(1 - \frac{\Psi}{90}\right)\left(\frac{\Psi}{90} \right)^{\frac{1}{1+l/d_o}} .. figure:: fittings/flush_mounted_beveled_orifice_entrance.png :scale: 30 % :alt: Beveled orifice entrace mounted straight; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] do : float Inside diameter of orifice, [m] l : float Length of bevel measured parallel to the pipe length, [m] angle : float Angle of bevel with respect to the pipe length, [degrees] Returns ------- K : float Loss coefficient [-] Examples -------- >>> entrance_beveled_orifice(Di=0.1, do=.07, l=0.003, angle=45) 1.2987552913818574 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' Cb = (1-angle/90.)*(angle/90.)**(1./(1 + l/do )) lbd = 1 + 0.622*(1 - Cb*(l/do)**((1 - (l/do)**0.25)/2.)) return 0.0696*(1 - Cb*l/do)*lbd**2 + (lbd - (do/Di)**2)**2 ### Exits def exit_normal(): r'''Returns loss coefficient for any exit to a pipe as shown in [1]_ and in other sources. .. math:: K = 1 .. figure:: fittings/flush_mounted_exit.png :scale: 28 % :alt: Exit from a flush mounted wall; after [1]_ Returns ------- K : float Loss coefficient [-] Notes ----- It has been found on occasion that K = 2.0 for laminar flow, and ranges from about 1.04 to 1.10 for turbulent flow. Examples -------- >>> exit_normal() 1.0 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' return 1.0 ### Bends tck_bend_rounded_Miller = implementation_optimize_tck([[0.500967, 0.500967, 0.500967, 0.500967, 0.5572659504420276, 0.6220535279438968, 0.6876695918008857, 0.8109956990835443, 0.8966138996017785, 1.0418136796591293, 1.2129808986390955, 1.4328097893561944, 2.684491977649823, 3.496050493509287, 4.245254058334557, 10.0581, 10.0581, 10.0581, 10.0581], [10.0022, 10.0022, 10.0022, 10.0022, 26.661576730080427, 35.71142422728946, 46.22896414495794, 54.476944091380965, 67.28681897720492, 79.96560467244989, 88.89484575805731, 104.37345376723293, 113.75217318286595, 121.36638011164008, 139.53481668808192, 180.502, 180.502, 180.502, 180.502], [0.02844925354339322, 0.032368056788003474, 0.06341726367587057, 0.18372991235687228, 0.27828335685928296, 0.4184452895626468, 0.5844709012848479, 0.8517327028006999, 1.0883889837806633, 1.003595822015052, 1.2959349743905006, 1.3631701864169843, 3.2579960738248563, 8.188259745620396, 6.370167194425542, 0.026614405579949103, 0.03578575879432178, 0.05399131725104529, 0.17357295746658216, 0.2597698136964017, 0.384398460262134, 0.5537955210508835, 0.842964805734998, 1.1076060802420074, 1.0500502914944205, 1.2160489773171173, 1.2940140217639442, 2.5150913200614293, 5.987790923112488, 4.791049223949247, 0.026866783841898684, 0.03061409809632371, 0.054698306220358, 0.14037162784411245, 0.23981090432386729, 0.31617091309760137, 0.47435842573782666, 0.7484605121106159, 0.9223888516911868, 1.0345139221619066, 1.0709769967277933, 1.1489283659291687, 1.4249255928619116, 2.6908421883082823, 2.3898833324508804, 0.019707980719056793, 0.03350958504709355, 0.0457699204936841, 0.1180773988295937, 0.18163838540491214, 0.2955424583244998, 0.3178086095370295, 0.54907384767895, 0.7497276995283433, 0.8353766950608585, 0.8907203653185313, 0.941376749552297, 0.8755423259796333, 0.8987849646797164, 0.9905785504810203, 0.018632197087313764, 0.0275473376021632, 0.046686663726990756, 0.09334625398868963, 0.15009471210360348, 0.21438462374865175, 0.310541469358518, 0.27652184608845864, 0.4703245212932829, 0.5612926929410017, 0.6344189573543495, 0.6897616299237337, 0.8553230255854581, 0.8050040042565408, 0.7800498994134173, 0.017040716941189974, 0.027163747207842776, 0.04233976165781228, 0.08546809847236579, 0.11872359104267481, 0.1748602349243538, 0.248787221592314, 0.3166892465009758, 0.2894990945943436, 0.35635089905047324, 0.3942719381041552, 0.4019846022857163, 0.4910888827789205, 0.4424331343990761, 0.5367477778555589, 0.017232689797500957, 0.024595005629126976, 0.04235982677436609, 0.0748705682747817, 0.11096283696103083, 0.13900984487771062, 0.18773056195495877, 0.2400721832034611, 0.28581377924973544, 0.282839816159864, 0.2907117502580411, 0.3035848810896592, 0.31268019467513564, 0.3365050687225188, 0.2836774098946595, 0.017462451480157917, 0.02373981127475937, 0.04248526591300313, 0.07305722078054935, 0.09424065630357203, 0.13682400355164548, 0.15020534827616405, 0.2100221959547714, 0.23136495625582817, 0.24417894312621574, 0.2505645472554214, 0.24143469557592281, 0.24722191256497117, 0.2195110087547775, 0.29557609063213136, 0.017605444779345832, 0.026265210174737128, 0.0445497171166642, 0.07254637551095446, 0.08779690828578819, 0.11992614224260065, 0.14501268843599757, 0.17386066713179812, 0.21657094190224363, 0.21594544490951023, 0.22661999176624517, 0.23759356544596819, 0.23887614636323537, 0.25802515101229484, 0.20566480389514516, 0.01928450591486404, 0.03264367752872495, 0.05391006363370407, 0.07430728218140033, 0.08818045730326454, 0.09978389535000864, 0.12544634357734885, 0.13365159719049172, 0.15802979203343911, 0.17543365869590444, 0.17531453508236272, 0.1706085325985479, 0.15983319357859727, 0.16872558079206196, 0.19799750352823683, 0.020835891827102552, 0.047105767455498285, 0.05307639179638059, 0.07839236342751181, 0.09519829368423402, 0.10189528661430994, 0.12852821694010982, 0.13195311029179943, 0.1594822363328695, 0.15660304273110143, 0.15934161651984413, 0.17702957118830723, 0.1892675345030034, 0.19710951153945122, 0.1897835097361326, 0.031571285288316195, 0.04810266172763896, 0.05660304311192384, 0.09317293919692342, 0.08967028392412497, 0.12028974875677166, 0.1182836264474129, 0.13845925262729528, 0.15739100571169004, 0.17649056196464383, 0.20171423738165223, 0.20947832805305883, 0.22837004534830094, 0.23661874048689152, 0.24537433391842686, 0.042992073811512765, 0.045958026954244176, 0.08988351069774198, 0.08320361205549355, 0.1253881915447805, 0.12765039447605908, 0.1632907944306065, 0.17922551055575348, 0.20436939408609628, 0.23133806857897737, 0.22837190631962206, 0.2611718034649056, 0.30462224139228183, 0.3277471634644065, 0.3595577208662931, 0.042671097083349346, 0.06027193387363409, 0.07182684474072856, 0.12072547771177115, 0.1331787059163636, 0.16137414417679433, 0.1780034002291815, 0.19820571860540606, 0.2294059556234193, 0.23221403415772682, 0.2697708431035234, 0.2813760107306456, 0.28992333749905363, 0.3650401400682786, 0.8993207970132076, 0.045660964207664585, 0.06299599466264151, 0.09193684371316964, 0.12747145786167088, 0.14606550538249963, 0.172664884028299, 0.19152378303841075, 0.2212007207927944, 0.23752800077573005, 0.26289800433018995, 0.2772198641539113, 0.2995308585350757, 0.3549459028594012, 0.8032461437896778, 3.330618601208751], 3, 3]) bend_rounded_Miller_Kb = lambda rc_D, angle : bisplev(rc_D, angle, tck_bend_rounded_Miller) tck_bend_rounded_Miller_C_Re = implementation_optimize_tck([[4.0, 4.0, 4.0, 4.0, 8.0, 8.0, 8.0, 8.0], [1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0], [2.177340320782947, 2.185952396281732, 2.185952396281732, 2.1775876405173977, 0.6513348082098823, 0.7944713057222101, 0.7944713057222103, 1.0526247737400114, 0.6030278030721317, 1.3741240162063968, 1.3741240162063992, 0.7693594604301893, -2.1663631289607883, -1.9474318981548622, -1.9474318981548622, 0.4196741237602154], 3, 3]) bend_rounded_Miller_C_Re = lambda Re, rc_D : bisplev(log10(Re), rc_D, tck_bend_rounded_Miller_C_Re) bend_rounded_Miller_C_Re_limit_1 = [2428087.757821312, -13637184.203693766, 28450331.830760233, -25496945.91463643, 8471761.477755375] tck_bend_rounded_Miller_C_o_0_1 = implementation_optimize_tck([[9.975803953769495e-06, 9.975803953769495e-06, 9.975803953769495e-06, 9.975803953769495e-06, 0.5259485989276764, 1.3157845547408782, 3.220104449183945, 6.133677908951886, 30.260656153593906, 30.260656153593906, 30.260656153593906, 30.260656153593906], [0.6179524338907976, 0.6000479624108129, 0.49299050530751654, 0.4820011733402483, 0.5584830305084972, 0.7496716557444135, 0.8977538553873484, 0.9987218804089956, 0.0, 0.0, 0.0, 0.0], 3]) tck_bend_rounded_Miller_C_o_0_15 = implementation_optimize_tck([[0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.26429667728434275, 0.5188174292838083, 1.469212480387932, 4.269571348168375, 13.268280073552294, 26.28093462852014, 26.28093462852014, 26.28093462852014, 26.28093462852014], [0.8691924906711972, 0.8355177386350426, 0.7617588987656675, 0.5853012015918869, 0.5978128647571033, 0.7366100253604377, 0.8229203841913866, 0.9484887080989913, 1.0003643259424702, 0.0, 0.0, 0.0, 0.0], 3]) tck_bend_rounded_Miller_C_o_0_2 = implementation_optimize_tck([[-0.001273275512351991, -0.001273275512351991, -0.001273275512351991, - 0.001273275512351991, 0.36379835796750504, 0.7789151587713531, 1.7319487323386349, 3.559883175039053, 22.10600230228466, 22.10600230228466, 22.10600230228466, 22.10600230228466], [1.2055892891232, 1.1810797953131011, 0.8556056552110055, 0.6595884323229468, 0.6669634037761268, 0.8636791463334055, 0.8855712717206472, 0.9992625616471772, 0.0, 0.0, 0.0, 0.0], 3]) tck_bend_rounded_Miller_C_o_0_25 = implementation_optimize_tck([[0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.2765978180291006, 0.5010875816968301, 0.6395222359284018, 0.661563946104784, 0.6887462820881093, 0.7312909084975013, 0.7605490601821624, 0.8078652661481783, 0.8553090397903271, 1.024376958429362, 1.4748577103270428, 2.052843716337269, 3.9670225184835175, 6.951737782758053, 16.770001745987884, 16.770001745987884, 16.770001745987884, 16.770001745987884], [2.7181584441006414, 2.6722855229796196, 2.510271857479865, 2.162580617260359, 1.8234805515473758, 1.5274137403431902, 1.3876379087140025, 1.2712745614209848, 1.1478416325256429, 1.015542018903243, 0.8445749706812837, 0.7368799268423506, 0.7061205857035833, 0.7381928947255646, 0.7960778489514514, 0.878729192230999, 0.9281388590439098, 0.9825611959699471, 0.0, 0.0, 0.0, 0.0], 3]) tck_bend_rounded_Miller_C_o_1_0 = implementation_optimize_tck([[0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.0025931401409935687, 0.4940382602529053, 0.7383107558560895, 0.8929948619544391, 0.9910262538499016, 1.1035407055233972, 1.2685727302009009, 2.190931635360523, 3.718073594472333, 6.026458907878363, 13.268280073552294, 13.268280073552294, 13.268280073552294, 13.268280073552294], [2.713127433391318, 2.6799201583608965, 2.4446034702691906, 2.0505313661892837, 1.7853408404592677, 1.5802763594858027, 1.395503315683405, 1.0504150726350026, 0.9294800209596744, 0.8937523212160566, 0.9339124388590752, 0.9769117997985829, 0.9948478073955791, 0.0, 0.0, 0.0, 0.0], 3]) tck_bend_rounded_Miller_C_os = [tck_bend_rounded_Miller_C_o_0_1, tck_bend_rounded_Miller_C_o_0_15, tck_bend_rounded_Miller_C_o_0_2, tck_bend_rounded_Miller_C_o_0_25, tck_bend_rounded_Miller_C_o_1_0] bend_rounded_Miller_C_o_Kbs = [.1, .15, .2, .25, 1] bend_rounded_Miller_C_o_limits = [30.260656153593906, 26.28093462852014, 22.10600230228466, 16.770001745987884, 13.268280073552294] bend_rounded_Miller_C_o_limit_0_01 = [0.6169055099514943, 0.8663244713199465, 1.2029584898712695, 2.7143438886138744, 2.7115417734646114] def Miller_bend_roughness_correction(Re, Di, roughness): # Section 9.2.4 - Roughness correction # Re limited to under 1E6 in friction factor falculations # Use a cached smooth fd value if Re too high Re_fd_min = min(1E6, Re) if Re_fd_min < 1E6: fd_smoth = friction_factor(Re=Re_fd_min, eD=0.0) else: fd_smoth = 0.011645040997991626 fd_rough = friction_factor(Re=Re_fd_min, eD=roughness/Di) C_roughness = fd_rough/fd_smoth return C_roughness def Miller_bend_unimpeded_correction(Kb, Di, L_unimpeded): '''Limitations as follows: * Ratio not over 30 * If ratio under 0.01, tabulated values are used near the limits (discontinuity in graph anyway) * If ratio for a tried curve larger than max value, max value is used instead of calculating it * Kb limited to between 0.1 and 1.0 * When between two Kb curves, interpolate linearly after evaluating both splines appropriately ''' if Kb < 0.1: Kb_C_o = 0.1 elif Kb > 1: Kb_C_o = 1.0 else: Kb_C_o = Kb L_unimpeded_ratio = L_unimpeded/Di if L_unimpeded_ratio > 30: L_unimpeded_ratio = 30.0 for i in range(len(bend_rounded_Miller_C_o_Kbs)): Kb_low, Kb_high = bend_rounded_Miller_C_o_Kbs[i], bend_rounded_Miller_C_o_Kbs[i+1] if Kb_low <= Kb_C_o <= Kb_high: if L_unimpeded_ratio >= bend_rounded_Miller_C_o_limits[i]: Co_low = 1.0 elif L_unimpeded_ratio <= 0.01: Co_low = bend_rounded_Miller_C_o_limit_0_01[i] else: Co_low = splev(L_unimpeded_ratio, tck_bend_rounded_Miller_C_os[i]) if L_unimpeded_ratio >= bend_rounded_Miller_C_o_limits[i+1]: Co_high = 1.0 elif L_unimpeded_ratio <= 0.01: Co_high = bend_rounded_Miller_C_o_limit_0_01[i+1] else: Co_high = splev(L_unimpeded_ratio, tck_bend_rounded_Miller_C_os[i+1]) C_o = Co_low + (Kb_C_o - Kb_low)*(Co_high - Co_low)/(Kb_high - Kb_low) return C_o def bend_rounded_Miller(Di, angle, Re, rc=None, bend_diameters=None, roughness=0.0, L_unimpeded=None): r'''Calculates the loss coefficient for a rounded pipe bend according to Miller [1]_. This is a sophisticated model which uses corrections for pipe roughness, the length of the pipe downstream before another interruption, and a correction for Reynolds number. It interpolates several times using several corrections graphs in [1]_. Parameters ---------- Di : float Inside diameter of pipe, [m] angle : float Angle of bend, [degrees] Re : float Reynolds number of the pipe (no specification if inlet or outlet properties should be used), [m] rc : float, optional Radius of curvature of the entrance, [m] bend_diameters : float, optional Number of diameters of pipe making up the bend radius (used if rc not provided; defaults to 5), [-] roughness : float, optional Roughness of bend wall, [m] L_unimpeded : float, optional The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m] Returns ------- K : float Loss coefficient [-] Notes ----- When inputting bend diameters, note that manufacturers often specify this as a multiplier of nominal diameter, which is different than actual diameter. Those require that rc be specified. `rc` is limited to 0.5 or above; which represents a sharp, square, inner edge - and an outer bend radius of 1.0. Losses are at a minimum when this value is large. This was developed for bend angles between 10 and 180 degrees; and r/D ratios between 0.5 and 10. Both smooth and rough data was used in its development from several sources. Note the loss coefficient includes the surface friction of the pipe as if it was straight. Examples -------- >>> bend_rounded_Miller(Di=.6, bend_diameters=2, angle=90, Re=2e6, ... roughness=2E-5, L_unimpeded=30*.6) 0.152618207051459 References ---------- .. [1] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' if not rc: if bend_diameters is None: bend_diameters = 5 rc = Di*bend_diameters radius_ratio = rc/Di if L_unimpeded is None: # Assumption - smooth outlet L_unimpeded = 20*Di # Graph is defined for angles 10 to 180 degrees, ratios 0.5 to 10 if radius_ratio < 0.5: radius_ratio = 0.5 if radius_ratio > 10.0: radius_ratio = 10.0 if angle < 10.0: angle = 10.0 # Curve fit in terms of degrees # Caching could work here - angle, radius ratio does not change often Kb = bend_rounded_Miller_Kb(radius_ratio, angle) C_roughness = Miller_bend_roughness_correction(Re=Re, Di=Di, roughness=roughness) '''Section 9.2.2 - Reynolds Number Correction Allow some extrapolation up to 1E8 (1E7 max in graph but the trend looks good) ''' Re_C_Re = min(max(Re, 1E4), 1E8) if radius_ratio >= 2.0: if Re_C_Re == 1E8: C_Re = 0.4196741237602154 # bend_rounded_Miller_C_Re(1e8, 2.0) elif Re_C_Re == 1E4: C_Re = 2.1775876405173977 # bend_rounded_Miller_C_Re(1e4, 2.0) else: C_Re = bend_rounded_Miller_C_Re(Re_C_Re, 2.0) elif radius_ratio <= 1.0: # newton(lambda x: bend_rounded_Miller_C_Re(x, 1.0)-1, 2e5) to get the boundary value C_Re_1 = bend_rounded_Miller_C_Re(Re_C_Re, 1.0) if Re_C_Re < 207956.58904584477 else 1.0 if radius_ratio > 0.7 or Kb < 0.4: C_Re = C_Re_1 else: C_Re = Kb/(Kb - 0.2*C_Re_1 + 0.2) if C_Re > 2.2 or C_Re < 0: C_Re = 2.2 else: # regardless of ratio - 1 if Re_C_Re > 1048884.4656835075: C_Re = 1.0 elif Re_C_Re > horner(bend_rounded_Miller_C_Re_limit_1, radius_ratio): C_Re = 1.0 # ps = np.linspace(1, 2) # qs = [newton(lambda x: bend_rounded_Miller_C_Re(x, i)-1, 2e5) for i in ps] # np.polyfit(ps, qs, 4).tolist() # Line of C_Re=1 as a function of r_d between 0 and 1 else: C_Re = bend_rounded_Miller_C_Re(Re_C_Re, radius_ratio) C_o = Miller_bend_unimpeded_correction(Kb=Kb, Di=Di, L_unimpeded=L_unimpeded) # print('Kb=%g, C Re=%g, C rough =%g, Co=%g' %(Kb, C_Re, C_roughness, C_o)) return Kb*C_Re*C_roughness*C_o bend_rounded_Crane_ratios = [1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 20.0] bend_rounded_Crane_fds = [20.0, 14.0, 12.0, 12.0, 14.0, 17.0, 24.0, 30.0, 34.0, 38.0, 42.0, 50.0] bend_rounded_Crane_coeffs = [111.75011378177442, -331.89911345404107, -27.841951521656483, 1066.8916917931147, -857.8702190626232, -1151.4621655498092, 1775.2416673594603, 216.37911821941805, -1458.1661519377653, 447.169127650163, 515.361158769082, -322.58377486107577, -38.38349416327068, 71.12796602489138, -16.198233745350535, 19.377150177339015, 31.107110520349494] def bend_rounded_Crane(Di, angle, rc=None, bend_diameters=None): r'''Calculates the loss coefficient for any rounded bend in a pipe according to the Crane TP 410M [1]_ method. This method effectively uses an interpolation from tabulated values in [1]_ for friction factor multipliers vs. curvature radius. .. figure:: fittings/bend_rounded.png :scale: 30 % :alt: rounded bend; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] angle : float Angle of bend, [degrees] rc : float, optional Radius of curvature of the entrance, optional [m] bend_diameters : float, optional (used if rc not provided) Number of diameters of pipe making up the bend radius [-] Returns ------- K : float Loss coefficient [-] Notes ----- The Crane method does match the trend of increased pressure drop as roughness increases. The points in [1]_ are extrapolated to other angles via a well-fitting Chebyshev approximation, whose accuracy can be seen in the below plot. .. plot:: plots/bend_rounded_Crane.py Examples -------- >>> bend_rounded_Crane(Di=.4020, rc=.4*5, angle=30) 0.09321910015613409 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if not rc: if bend_diameters is None: bend_diameters = 5.0 rc = Di*bend_diameters fd = ft_Crane(Di) radius_ratio = rc/Di if radius_ratio < 1.0: radius_ratio = 1.0 elif radius_ratio > 20.0: radius_ratio = 20.0 factor = horner(bend_rounded_Crane_coeffs, 0.105263157894736836*(radius_ratio - 10.5)) K = fd*factor K = (angle/90.0 - 1.0)*(0.25*pi*fd*radius_ratio + 0.5*K) + K return K _Ito_angles = [45.0, 90.0, 180.0] def bend_rounded_Ito(Di, angle, Re, rc=None, bend_diameters=None, roughness=0.0): '''Ito method as shown in Blevins. Curved friction factor as given in Blevins, with minor tweaks to be more accurate to the original methods. ''' if not rc: if bend_diameters is None: bend_diameters = 5.0 rc = Di*bend_diameters radius_ratio = rc/Di angle_rad = radians(angle) De2 = Re*(Di/rc)**2.0 if rc > 50.0*Di: alpha = 1.0 else: # Alpha is up to 6, as ratio gets higher, can go down to 1 alpha_45 = 1.0 + 5.13*(Di/rc)**1.47 alpha_90 = 0.95 + 4.42*(Di/rc)**1.96 if rc/Di < 9.85 else 1.0 alpha_180 = 1.0 + 5.06*(Di/rc)**4.52 alpha = interp(angle, _Ito_angles, [alpha_45, alpha_90, alpha_180]) if De2 <= 360.0: fc = friction_factor_curved(Re=Re, Di=Di, Dc=2.0*rc, roughness=roughness, Rec_method='Srinivasan', laminar_method='White', turbulent_method='Srinivasan turbulent') K = 0.0175*alpha*fc*angle*rc/Di else: K = 0.00431*alpha*angle*Re**-0.17*(rc/Di)**0.84 return K bend_rounded_methods = ['Rennels', 'Crane', 'Miller', 'Swamee', 'Ito'] def bend_rounded(Di, angle, fd=None, rc=None, bend_diameters=5.0, Re=None, roughness=0.0, L_unimpeded=None, method='Rennels'): r'''Returns loss coefficient for rounded bend in a pipe of diameter `Di`, `angle`, with a specified either radius of curvature `rc` or curvature defined by `bend_diameters`, Reynolds number `Re` and optionally pipe roughness, unimpeded length downstrean, and with the specified method. This calculation has five methods available. It is hard to describe one method as more conservative than another as depending on the conditions, the relative results change significantly. The 'Miller' method is the most complicated and slowest method; the 'Ito' method comprehensive as well and a source of original data, and the primary basis for the 'Rennels' method. The 'Swamee' method is very simple and generally does not match the other methods. The 'Crane' method may match or not match other methods depending on the inputs. The Rennels [1]_ formula is: .. math:: K = f\alpha\frac{r}{d} + (0.10 + 2.4f)\sin(\alpha/2) + \frac{6.6f(\sqrt{\sin(\alpha/2)}+\sin(\alpha/2))} {(r/d)^{\frac{4\alpha}{\pi}}} The Swamee [5]_ formula is: .. math:: K = \left[0.0733 + 0.923 \left(\frac{d}{rc}\right)^{3.5} \right] \theta^{0.5} .. figure:: fittings/bend_rounded.png :scale: 30 % :alt: rounded bend; after [1]_ Parameters ---------- Di : float Inside diameter of pipe, [m] angle : float Angle of bend, [degrees] fd : float, optional Darcy friction factor; used only in Rennels method; calculated if not provided from Reynolds number, diameter, and roughness [-] rc : float, optional Radius of curvature of the entrance, optional [m] bend_diameters : float, optional (used if rc not provided) Number of diameters of pipe making up the bend radius [-] Re : float, optional Reynolds number of the pipe (used in Miller, Ito methods primarily, and Rennels method if no friction factor given), [m] roughness : float, optional Roughness of bend wall (used in Miller, Ito methods primarily, and Rennels method if no friction factor given), [m] L_unimpeded : float, optional The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified); used only in Miller method, [m] method : str, optional One of 'Rennels', 'Miller', 'Crane', 'Ito', or 'Swamee', [-] Returns ------- K : float Loss coefficient [-] Notes ----- When inputting bend diameters, note that manufacturers often specify this as a multiplier of nominal diameter, which is different than actual diameter. Those require that rc be specified. In the 'Rennels' method, `rc` is limited to 0.5 or above; which represents a sharp, square, inner edge - and an outer bend radius of 1.0. Losses are at a minimum when this value is large. Its first term represents surface friction loss; the second, secondary flows; and the third, flow separation. It encompasses the entire range of elbow and pipe bend configurations. It was developed for bend angles between 0 and 180 degrees; and r/D ratios above 0.5. Only smooth pipe data was used in its development. Note the loss coefficient includes the surface friction of the pipe as if it was straight. Examples -------- >>> bend_rounded(Di=4.020, rc=4.0*5, angle=30, Re=1E5) 0.11519070808085191 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [3] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [4] Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008. .. [5] Itō, H."Pressure Losses in Smooth Pipe Bends." Journal of Fluids Engineering 82, no. 1 (March 1, 1960): 131-40. doi:10.1115/1.3662501 .. [6] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' if method is None: method = 'Rennels' if rc is None: rc = Di*bend_diameters if method == 'Rennels': angle = radians(angle) if fd is None: if Re is None: raise ValueError("The `Rennels` method requires either a " "specified friction factor or `Re`") fd = Colebrook(Re=Re, eD=roughness/Di, tol=-1) sin_term = sin(0.5*angle) return (fd*angle*rc/Di + (0.10 + 2.4*fd)*sin_term + 6.6*fd*(sin_term**0.5 + sin_term)/(rc/Di)**(4.*angle/pi)) elif method == 'Miller': if Re is None: raise ValueError('Miller method requires Reynolds number') return bend_rounded_Miller(Di=Di, angle=angle, Re=Re, rc=rc, bend_diameters=bend_diameters, roughness=roughness, L_unimpeded=L_unimpeded) elif method == 'Crane': return bend_rounded_Crane(Di=Di, angle=angle, rc=rc, bend_diameters=bend_diameters) elif method == 'Ito': if Re is None: raise ValueError("The `Iso` method requires`Re`") return bend_rounded_Ito(Di=Di, angle=angle, Re=Re, rc=rc, bend_diameters=bend_diameters, roughness=roughness) elif method == 'Swamee': return (0.0733 + 0.923*(Di/rc)**3.5)*radians(angle)**0.5 else: raise ValueError('Specified method not recognized; methods are %s' %(bend_rounded_methods)) bend_miter_Miller_coeffs = [-12.050299402650126, -4.472433689233185, 50.51478860493546, 18.246302079077196, -84.61426660754049, -28.9340865412371, 71.07345367553872, 21.354010992349565, -30.239604839338, -5.855129345095336, 5.465131779316523, -1.0881363712712555, -0.3635431075401224, 0.5120065303391261, 0.46818214491579246, 0.9789177645343993, 0.5080285124448385] def bend_miter_Miller(Di, angle, Re, roughness=0.0, L_unimpeded=None): r'''Calculates the loss coefficient for a single miter bend according to Miller [1]_. This is a sophisticated model which uses corrections for pipe roughness, the length of the pipe downstream before another interruption, and a correction for Reynolds number. It interpolates several times using several corrections graphs in [1]_. Parameters ---------- Di : float Inside diameter of pipe, [m] angle : float Angle of miter bend, [degrees] Re : float Reynolds number of the pipe (no specification if inlet or outlet properties should be used), [m] roughness : float, optional Roughness of bend wall, [m] L_unimpeded : float, optional The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m] Returns ------- K : float Loss coefficient [-] Notes ----- Note the loss coefficient includes the surface friction of the pipe as if it was straight. Examples -------- >>> bend_miter_Miller(Di=.6, angle=90, Re=2e6, roughness=2e-5, ... L_unimpeded=30*.6) 1.1921574594947668 References ---------- .. [1] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' if L_unimpeded is None: L_unimpeded = 20.0*Di if angle > 120: angle = 120.0 Kb = horner(bend_miter_Miller_coeffs, 1.0/60.0*(angle-60.0)) C_o = Miller_bend_unimpeded_correction(Kb=Kb, Di=Di, L_unimpeded=L_unimpeded) C_roughness = Miller_bend_roughness_correction(Re=Re, Di=Di, roughness=roughness) Re_C_Re = min(max(Re, 1E4), 1E8) C_Re_1 = bend_rounded_Miller_C_Re(Re_C_Re, 1.0) if Re_C_Re < 207956.58904584477 else 1.0 C_Re = Kb/(Kb - 0.2*C_Re_1 + 0.2) if C_Re > 2.2 or C_Re < 0: C_Re = 2.2 return Kb*C_Re*C_roughness*C_o bend_miter_Crane_angles = [0.0, 15.0, 30.0, 45.0, 60.0, 75.0, 90.0] bend_miter_Crane_fds = [2.0, 4.0, 8.0, 15.0, 25.0, 40.0, 60.0] bend_miter_Blevins_angles = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 120.0] bend_miter_Blevins_Ks = [0.0, .025, .055, .1, .2, .35, .5, .7, .9, 1.1, 1.5] bend_miter_methods = ['Rennels', 'Miller', 'Crane', 'Blevins'] def bend_miter(angle, Di=None, Re=None, roughness=0.0, L_unimpeded=None, method='Rennels'): r'''Returns loss coefficient for any single-joint miter bend in a pipe of angle `angle`, diameter `Di`, Reynolds number `Re`, roughness `roughness` unimpeded downstream length `L_unimpeded`, and using the specified method. This calculation has four methods available. The 'Rennels' method is based on a formula and extends to angles up to 150 degrees. The 'Crane' method extends only to 90 degrees; the 'Miller' and 'Blevins' methods extend to 120 degrees. The Rennels [1]_ formula is: .. math:: K = 0.42\sin(\alpha/2) + 2.56\sin^3(\alpha/2) The 'Crane', 'Miller', and 'Blevins' methods are all in part graph or tabular based and do not have straightforward formulas. .. figure:: fittings/bend_miter.png :scale: 25 % :alt: Miter bend, one joint only; after [1]_ Parameters ---------- angle : float Angle of bend, [degrees] Di : float, optional Inside diameter of pipe, [m] Re : float, optional Reynolds number of the pipe (no specification if inlet or outlet properties should be used), [m] roughness : float, optional Roughness of bend wall, [m] L_unimpeded : float, optional The length of unimpeded pipe without any fittings, instrumentation, or flow disturbances downstream (assumed 20 diameters if not specified), [m] method : str, optional The specified method to use; one of 'Rennels', 'Miller', 'Crane', or 'Blevins', [-] Returns ------- K : float Loss coefficient with respect to either upstream or downstream diameter, [-] Notes ----- This method is designed only for single-jointed miter bends. It is common for miter bends to have two or three sections, to further reduce the loss coefficient. Some methods exist in [2]_ for taking this into account. Because the additional configurations reduce the pressure loss, it is "common practice" to simply ignore their effect and accept the slight overdesign. The following figure illustrates the different methods. .. plot:: plots/bend_miter.py Examples -------- >>> bend_miter(150) 2.7128147734758103 >>> bend_miter(Di=.6, angle=45, Re=1e6, roughness=1e-5, L_unimpeded=20, ... method='Miller') 0.2944060416245167 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [3] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [4] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' if method is None: method = 'Rennels' if method == 'Rennels': angle_rad = radians(angle) sin_half_angle = sin(angle_rad*0.5) return 0.42*sin_half_angle + 2.56*sin_half_angle*sin_half_angle*sin_half_angle elif method == 'Crane': factor = interp(angle, bend_miter_Crane_angles, bend_miter_Crane_fds) return ft_Crane(Di)*factor elif method == 'Miller': return bend_miter_Miller(Di=Di, angle=angle, Re=Re, roughness=roughness, L_unimpeded=L_unimpeded) elif method == 'Blevins': # data from Idelchik, Miller, an earlier ASME publication # For 90-120 degrees, a polynomial/spline would be better than a linear fit K_base = interp(angle, bend_miter_Blevins_angles, bend_miter_Blevins_Ks) return K_base*(2E5/Re)**0.2 else: raise ValueError('Specified method not recognized; methods are %s' %(bend_miter_methods)) def helix(Di, rs, pitch, N, fd): r'''Returns loss coefficient for any size constant-pitch helix as shown in [1]_. Has applications in immersed coils in tanks. .. math:: K = N \left[f\frac{\sqrt{(2\pi r)^2 + p^2}}{d} + 0.20 + 4.8 f\right] Parameters ---------- Di : float Inside diameter of pipe, [m] rs : float Radius of spiral, [m] pitch : float Distance between two subsequent coil centers, [m] N : float Number of coils in the helix [-] fd : float Darcy friction factor [-] Returns ------- K : float Loss coefficient [-] Notes ----- Formulation based on peak secondary flow as in two 180 degree bends per coil. Flow separation ignored. No f, Re, geometry limitations. Source not compared against others. Examples -------- >>> helix(Di=0.01, rs=0.1, pitch=.03, N=10, fd=.0185) 14.525134924495514 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' return N*(fd*((2*pi*rs)**2 + pitch**2)**0.5/Di + 0.20 + 4.8*fd) def spiral(Di, rmax, rmin, pitch, fd): r'''Returns loss coefficient for any size constant-pitch spiral as shown in [1]_. Has applications in immersed coils in tanks. .. math:: K = \frac{r_{max} - r_{min}}{p} \left[ f\pi\left(\frac{r_{max} +r_{min}}{d}\right) + 0.20 + 4.8f\right] + \frac{13.2f}{(r_{min}/d)^2} Parameters ---------- Di : float Inside diameter of pipe, [m] rmax : float Radius of spiral at extremity, [m] rmin : float Radius of spiral at end near center, [m] pitch : float Distance between two subsequent coil centers, [m] fd : float Darcy friction factor [-] Returns ------- K : float Loss coefficient [-] Notes ----- Source not compared against others. Examples -------- >>> spiral(Di=0.01, rmax=.1, rmin=.02, pitch=.01, fd=0.0185) 7.950918552775473 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' return (rmax-rmin)/pitch*(fd*pi*(rmax+rmin)/Di + 0.20 + 4.8*fd) + 13.2*fd/(rmin/Di)**2 ### Contractions tck_contraction_abrupt_Miller = implementation_optimize_tck([ [0.0, 0.0, 0.0, 0.0, 0.5553844358576507, 0.7193937784550933, 0.8144518359319883, 1.0, 1.0, 1.0, 1.0], [0.0, 0.0, 0.0, 0.0, 0.008318525134414716, 0.03421785904690331, 0.1, 0.1, 0.1, 0.1], [0.4994829280256306, 0.4879234090312588, 0.4255534701302917, 0.13986792857000196, 0.18065199312360336, 0.08701863105570044, 0.440886271558411, 0.4243716649409474, 0.36030826702480984, 0.2117960027770777, 0.11248601502220595, 0.08616608643911047, 0.4018850813314268, 0.3706136100344715, 0.26368725187530173, 0.15316562777200723, 0.09856904494833027, 0.08399367477431015, 0.17005190739488515, 0.16023910724406945, 0.1242906181281536, 0.06137573180850665, 0.05726821990215439, 0.04684229988854647, 0.03922553704852396, 0.036955938945600654, 0.029450340285188167, 0.028656302938315878, 0.019588760093397686, 0.01950497484044149, 0.006447273360860872, 0.006569278508667471, 0.0053786079483153885, -0.013158950566037957, 0.010870991979047888, 0.0015100946100218284, -0.0005221250682760256, -0.0006447517875307877, -0.0007846123907797336, 0.0024459067063225485, -0.0019102888752274472, -0.0001356300464508266], 3, 3]) def contraction_round_Miller(Di1, Di2, rc): r'''Returns loss coefficient for any round edged pipe contraction using the method of Miller [1]_. This method uses a spline fit to a graph with area ratios 0 to 1, and radius ratios (rc/Di2) from 0.1 to 0. Parameters ---------- Di1 : float Inside diameter of original pipe, [m] Di2 : float Inside diameter of following pipe, [m] rc : float Radius of curvature of the contraction, [m] Returns ------- K : float Loss coefficient in terms of the following pipe, [-] Notes ----- This method normally gives lower losses than the Rennels formulation. Examples -------- >>> contraction_round_Miller(Di1=1, Di2=0.4, rc=0.04) 0.08565953051298639 References ---------- .. [1] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' A_ratio = Di2*Di2/(Di1*Di1) radius_ratio = rc/Di2 if radius_ratio > 0.1: radius_ratio = 0.1 Ks = float(bisplev(A_ratio, radius_ratio, tck_contraction_abrupt_Miller)) # For some near-1 ratios, can get negative Ks due to the spline. if Ks < 0.0: Ks = 0.0 return Ks def contraction_sharp(Di1, Di2): r'''Returns loss coefficient for any sharp edged pipe contraction as shown in [1]_. .. math:: K = 0.0696(1-\beta^5)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622(1-0.215\beta^2 - 0.785\beta^5) .. math:: \beta = d_2/d_1 .. figure:: fittings/contraction_sharp.png :scale: 40 % :alt: Sharp contraction; after [1]_ Parameters ---------- Di1 : float Inside diameter of original pipe, [m] Di2 : float Inside diameter of following pipe, [m] Returns ------- K : float Loss coefficient in terms of the following pipe [-] Notes ----- A value of 0.506 or simply 0.5 is often used. Examples -------- >>> contraction_sharp(Di1=1, Di2=0.4) 0.5301269161591805 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' beta = Di2/Di1 lbd = 1 + 0.622*(1-0.215*beta**2 - 0.785*beta**5) return 0.0696*(1-beta**5)*lbd**2 + (lbd-1)**2 contraction_round_Idelchik_ratios = [0.0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.08, 0.12, 0.16, 0.2] contraction_round_Idelchik_factors = [0.5, 0.43, 0.37, 0.31, 0.26, 0.22, 0.20, 0.15, 0.09, 0.06, 0.03] # Third factor is 0.36 in 1960 edition, 0.37 in Design Guide contraction_round_methods = ['Rennels', 'Miller', 'Idelchik'] def contraction_round(Di1, Di2, rc, method='Rennels'): r'''Returns loss coefficient for any any round edged pipe contraction. This calculation has three methods available. The 'Miller' [2]_ method is a bivariate spline digitization of a graph; the 'Idelchik' [3]_ method is an interpolation using a formula and a table of values. The most conservative formulation is that of Rennels; with fairly similar. The 'Idelchik' method is more conservative and less complex; it offers a straight-line curve where the others curves are curved. The Rennels [1]_ formulas are: .. math:: K = 0.0696\left(1 - 0.569\frac{r}{d_2}\right)\left(1-\sqrt{\frac{r} {d_2}}\beta\right)(1-\beta^5)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622\left(1 - 0.30\sqrt{\frac{r}{d_2}} - 0.70\frac{r}{d_2}\right)^4 (1-0.215\beta^2-0.785\beta^5) .. math:: \beta = d_2/d_1 .. figure:: fittings/contraction_round.png :scale: 30 % :alt: Cirucular round contraction; after [1]_ Parameters ---------- Di1 : float Inside diameter of original pipe, [m] Di2 : float Inside diameter of following pipe, [m] rc : float Radius of curvature of the contraction, [m] method : str The calculation method to use; one of 'Rennels', 'Miller', or 'Idelchik', [-] Returns ------- K : float Loss coefficient in terms of the following pipe [-] Notes ----- Rounding radius larger than 0.14Di2 prevents flow separation from the wall. Further increase in rounding radius continues to reduce loss coefficient. .. plot:: plots/contraction_round.py Examples -------- >>> contraction_round(Di1=1, Di2=0.4, rc=0.04) 0.1783332490866574 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. .. [3] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. ''' beta = Di2/Di1 if method is None: method = 'Rennels' if method == 'Rennels': lbd = 1.0 + 0.622*(1.0 - 0.30*(rc/Di2)**0.5 - 0.70*rc/Di2)**4*(1.0 - 0.215*beta**2 - 0.785*beta**5) return 0.0696*(1.0 - 0.569*rc/Di2)*(1.0 - (rc/Di2)**0.5*beta)*(1.0 - beta**5)*lbd*lbd + (lbd - 1.0)**2 elif method == 'Miller': return contraction_round_Miller(Di1=Di1, Di2=Di2, rc=rc) elif method == 'Idelchik': # Di2, ratio defined in terms over diameter K0 = interp(rc/Di2, contraction_round_Idelchik_ratios, contraction_round_Idelchik_factors) return K0*(1.0 - beta*beta) else: raise ValueError('Specified method not recognized; methods are %s' %(contraction_round_methods)) def contraction_conical_Crane(Di1, Di2, l=None, angle=None): r'''Returns loss coefficient for a conical pipe contraction as shown in Crane TP 410M [1]_ between 0 and 180 degrees. If :math:`\theta < 45^{\circ}`: .. math:: K_2 = {0.8 \sin \frac{\theta}{2}(1 - \beta^2)} otherwise: .. math:: K_2 = {0.5\sqrt{\sin \frac{\theta}{2}} (1 - \beta^2)} .. math:: \beta = d_2/d_1 Parameters ---------- Di1 : float Inside pipe diameter of the larger, upstream, pipe, [m] Di2 : float Inside pipe diameter of the smaller, downstream, pipe, [m] l : float Length of the contraction, optional [m] angle : float Angle of contraction, optional [degrees] Returns ------- K : float Loss coefficient in terms of the following (smaller) pipe [-] Notes ----- Cheap and has substantial impact on pressure drop. Note that the nomenclature in [1]_ is somewhat different - the smaller pipe is called 1, and the larger pipe is called 2; and so the beta ratio is reversed, and the fourth power of beta used in their equation is not necessary. Examples -------- >>> contraction_conical_Crane(Di1=0.0779, Di2=0.0525, l=0) 0.2729017979998056 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if l is None and angle is None: raise Exception('One of `l` or `angle` must be specified') beta = Di2/Di1 beta2 = beta*beta if angle is not None: angle = radians(angle) #l = (Di1 - Di2)/(2.0*tan(0.5*angle)) # L is not needed in this calculation elif l is not None: try: angle = 2.0*atan((Di1-Di2)/(2.0*l)) except ZeroDivisionError: angle = pi if angle < 0.25*pi: # Formula 1 K2 = 0.8*sin(0.5*angle)*(1.0 - beta2) else: # Formula 2 K2 = 0.5*(sin(0.5*angle)**0.5*(1.0 - beta2)) return K2 contraction_conical_angles_Idelchik = [2, 3, 6, 8, 10, 12, 14, 16, 20] contraction_conical_A_ratios_Idelchik = [0.05, 0.075, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6] contraction_conical_friction_Idelchik = [ [0.14, 0.1, 0.05, 0.04, 0.03, 0.03, 0.02, 0.02, 0.01], [0.14, 0.1, 0.05, 0.04, 0.03, 0.02, 0.02, 0.02, 0.01], [0.14, 0.1, 0.05, 0.04, 0.03, 0.02, 0.02, 0.02, 0.01], [0.14, 0.1, 0.05, 0.04, 0.03, 0.02, 0.02, 0.02, 0.01], [0.14, 0.1, 0.05, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01], [0.14, 0.1, 0.05, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01], [0.13, 0.09, 0.04, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01], [0.12, 0.08, 0.04, 0.03, 0.02, 0.02, 0.02, 0.02, 0.01], [0.11, 0.07, 0.04, 0.03, 0.02, 0.02, 0.02, 0.02, 0.01], [0.09, 0.06, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.01]] contraction_conical_frction_Idelchik_tck = tck_interp2d_linear(contraction_conical_angles_Idelchik, contraction_conical_A_ratios_Idelchik, contraction_conical_friction_Idelchik, kx=1, ky=1) contraction_conical_frction_Idelchik_obj = lambda x, y : float(bisplev(x, y, contraction_conical_frction_Idelchik_tck)) contraction_conical_l_ratios_Blevins = [0.0, 0.05, 0.1, 0.15, 0.6] contraction_conical_A_ratios_Blevins = [1.2, 1.5, 2.0, 3.0, 5.0, 10.0] contraction_conical_Ks_Blevins = [[.08, .06, .04, .03, .03], [.17, .12, .09, .07, .06], [.25, .23, .17, .14, .06], [.33, .31, .27, .23, .08], [.4, .38, .35, .31, .18], [.45, .45, .41, .39, .27]] contraction_conical_Blevins_tck = tck_interp2d_linear(contraction_conical_l_ratios_Blevins, contraction_conical_A_ratios_Blevins, contraction_conical_Ks_Blevins, kx=1, ky=1) contraction_conical_Blevins_obj = lambda x, y: float(bisplev(x, y, contraction_conical_Blevins_tck)) contraction_conical_Miller_tck = implementation_optimize_tck([ [ -2.2990613088204293, -2.2990613088204293, -2.2990613088204293, -2.2990613088204293, -1.9345621970869704, -1.404550366067981, -1.1205580332553446, -0.7202074014540876, -0.18305354619604816, 0.5791478950190209, 1.2576636025381396, 2.2907351590368092, 2.2907351590368092, 2.2907351590368092, 2.2907351590368092], [ 0.09564194294666524, 0.09564194294666524, 0.17553288711543455, 0.263895293813645, 0.3890819147022019, 0.46277323951998217, 0.5504296236707121, 0.7265657737596892, 1.0772357648098938, 1.2566022106161683, 1.3896885941879062, 1.3896885941879062], [ -0.019518693251672135, 0.04439613867473242, 0.11549650174721836, 0.21325506677861075, 0.268179723158688, 0.31125301421509866, 0.38394595875289805, 0.4808287074532006, 0.5205981039085685, 0.5444079315893322, -0.016435668699253902, 0.036132755789022385, 0.09344296094392814, 0.18264727448046977, 0.23460506265914166, 0.2772896726095435, 0.3475409775384636, 0.45339837219176454, 0.49766916609817535, 0.533981552804865, -0.006524265764454468, 0.024107195694715193, 0.05862956870028131, 0.12122104285943507, 0.17207312024278762, 0.2175356288866053, 0.282297563080016, 0.3995008583081823, 0.4563724107887528, 0.5175856070810377, 0.00971345082784277, 0.025981390544674948, 0.0438578322196561, 0.08103403101086341, 0.11351528283253318, 0.16873088559958743, 0.2347695003589526, 0.3428907161435351, 0.42017998591926276, 0.49784770602295325, 0.022572122504756167, 0.0277671279384801, 0.033512283408629495, 0.05470423531298454, 0.06485563480390757, 0.10483763206962131, 0.1802208799223503, 0.29075723837012296, 0.35502824385155335, 0.4460106883062252, 0.030312717163327077, 0.03080869253188484, 0.03583128286874324, 0.04627567520803308, 0.050501484562613955, 0.05683263025468022, 0.12297253802915259, 0.2415222338797251, 0.3025777968736861, 0.3724407040165538, 0.03115993727503623, 0.03443665864698284, 0.03574452046031886, 0.03995718256281492, 0.04759698369059247, 0.050404788737262694, 0.052375330859925545, 0.1356057568743366, 0.20463667731329582, 0.26043914743762864, 0.02844193432840707, 0.0219797618956514, 0.013352154001094038, 0.018393840217638825, 0.02448602185526976, 0.038812331325140816, 0.0522197430071833, 0.057132169238281294, 0.06871138075102912, 0.09334527259294226, 0.04089985439478869, 0.07148502476706058, 0.06750266344761692, 0.038560772865945815, 0.020172054809734774, 0.01596047961326318, 0.033338955878272625, 0.058808731166289874, 0.055802602927507314, 0.025265841939291166, 0.11200365568168691, 0.11945663812857424, 0.10673570013847415, 0.07758458179796549, 0.055266607234870514, 0.03072901347153607, 0.025790727504652375, 0.037031664564632104, 0.0601306808668177, 0.07612350738135039, 0.0964900248905913, 0.11088549072803407, 0.10778442024110846, 0.09386482850507959, 0.06940476627270852, 0.04434507143623664, 0.03331958878624311, 0.01854072032522763, 0.027553821071285824, 0.045426686375783926], 3, 1]) contraction_conical_Miller_obj = lambda l_r2, A_ratio: max(min(float(bisplev(log(l_r2), log(A_ratio), contraction_conical_Miller_tck)), .5), 0) contraction_conical_methods = ['Rennels', 'Idelchik', 'Crane', 'Swamee', 'Blevins', 'Miller'] def contraction_conical(Di1, Di2, fd=None, l=None, angle=None, Re=None, roughness=0.0, method='Rennels'): r'''Returns the loss coefficient for any conical pipe contraction. This calculation has five methods available. The 'Idelchik' [2]_ and 'Blevins' [3]_ methods use interpolation among tables of values; 'Miller' uses a 2d spline representation of a graph; and the 'Rennels' [1]_, 'Crane' [4]_, and 'Swamee' [5]_ methods use formulas for their calculations. The 'Rennels' [1]_ formulas are: .. math:: K_2 = K_{fr,2} + K_{conv,2} .. math:: K_{fr,2} = \frac{f_d ({1 - \beta^4})}{8\sin(\theta/2)} .. math:: K_{conv,2} = 0.0696[1+C_B(\sin(\alpha/2)-1)](1-\beta^5)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622(\alpha/180)^{0.8}(1-0.215\beta^2-0.785\beta^5) .. math:: \beta = d_2/d_1 The 'Swamee' [5]_ formula is: .. math:: K = 0.315 \theta^{1/3} .. figure:: fittings/contraction_conical.png :scale: 30 % :alt: contraction conical; after [1]_ Parameters ---------- Di1 : float Inside pipe diameter of the larger, upstream, pipe, [m] Di2 : float Inside pipe diameter of the smaller, downstream, pipe, [m] fd : float, optional Darcy friction factor; used only in the Rennels method and will be calculated if not given, [-] l : float, optional Length of the contraction, optional [m] angle : float, optional Angle of contraction (180 = sharp, 0 = infinitely long contraction), optional [degrees] Re : float, optional Reynolds number of the pipe (used in Rennels method only if no friction factor given), [m] roughness : float, optional Roughness of bend wall (used in Rennel method if no friction factor given), [m] method : str, optional The method to use for the calculation; one of 'Rennels', 'Idelchik', 'Crane', 'Swamee' or 'Blevins', [-] Returns ------- K : float Loss coefficient in terms of the following pipe [-] Notes ----- Cheap and has substantial impact on pressure drop. The 'Idelchik' method includes two tabular interpolations; its friction term is limited to angles between 2 and 20 degrees and area ratios 0.05 to 0.6, while its main term is limited to length over diameter ratios 0.025 to 0.6. This seems to give it high results for angles < 25 degrees. The 'Blevins' method is based on Idelchik data; it should not be used, because its data jumps around and its data is limited to area ratios .1 to 0.83, and length over diameter ratios 0 to 0.6. The 'Miller' method jumps around as well. Unlike most of Miller's method, there is no correction for Reynolds number. There is quite a bit of variance in the predictions of the methods, as demonstrated by the following figure. .. plot:: plots/contraction_conical.py Examples -------- >>> contraction_conical(Di1=0.1, Di2=0.04, l=0.04, Re=1E6) 0.15639885880609544 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. .. [3] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [4] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [5] Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008. .. [6] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' beta = Di2/Di1 if angle is not None: angle_rad = radians(angle) l = (Di1 - Di2)/(2.0*tan(0.5*angle_rad)) elif l is not None: try: angle_rad = 2.0*atan((Di1-Di2)/(2.0*l)) angle = degrees(angle_rad) except ZeroDivisionError: angle_rad = pi angle = 180.0 else: raise Exception('Either l or angle is required') if method is None: method == 'Rennels' if method == 'Rennels': if fd is None: if Re is None: raise ValueError("The `Rennels` method requires either a " "specified friction factor or `Re`") fd = Colebrook(Re=Re, eD=roughness/Di2, tol=-1) beta2 = beta*beta beta4 = beta2*beta2 beta5 = beta4*beta lbd = 1.0 + 0.622*(angle_rad/pi)**0.8*(1.0 - 0.215*beta2 - 0.785*beta5) sin_half_angle = sin(0.5*angle_rad) K_fr2 = fd*(1.0 - beta4)/(8.0*sin_half_angle) K_conv2 = 0.0696*sin_half_angle*(1.0 - beta5)*lbd*lbd + (lbd - 1.0)**2 return K_fr2 + K_conv2 elif method == 'Crane': return contraction_conical_Crane(Di1=Di1, Di2=Di2, l=l, angle=angle) elif method == 'Swamee': return 0.315*angle_rad**(1.0/3.0) elif method == 'Idelchik': # Diagram 3-6; already digitized for beveled entrance K0 = float(entrance_beveled_Idelchik_obj(angle, l/Di2)) # Angles 0 to 20, ratios 0.05 to 0.06 if angle > 20.0: angle_fric = 20.0 elif angle < 2.0: angle_fric = 2.0 else: angle_fric = angle A_ratio = A_ratio_fric = Di2*Di2/(Di1*Di1) if A_ratio_fric < 0.05: A_ratio_fric = 0.05 elif A_ratio_fric > 0.6: A_ratio_fric = 0.6 K_fr = float(contraction_conical_frction_Idelchik_obj(angle_fric, A_ratio_fric)) return K0*(1.0 - A_ratio) + K_fr elif method == 'Blevins': A_ratio = Di1*Di1/(Di2*Di2) if A_ratio < 1.2: A_ratio = 1.2 elif A_ratio > 10.0: A_ratio = 10.0 l_ratio = l/Di2 if l_ratio > 0.6: l_ratio= 0.6 return float(contraction_conical_Blevins_obj(l_ratio, A_ratio)) elif method == 'Miller': A_ratio = Di1*Di1/(Di2*Di2) if A_ratio > 4.0: A_ratio = 4.0 elif A_ratio < 1.1: A_ratio = 1.1 l_ratio = l/(Di2*0.5) if l_ratio < 0.1: l_ratio = 0.1 elif l_ratio > 10.0: l_ratio = 10.0 # Turning on ofr off the limits - little difference in plot return contraction_conical_Miller_obj(l_ratio, A_ratio) else: raise ValueError('Specified method not recognized; methods are %s' %(contraction_conical_methods)) def contraction_beveled(Di1, Di2, l=None, angle=None): r'''Returns loss coefficient for any sharp beveled pipe contraction as shown in [1]_. .. math:: K = 0.0696[1+C_B(\sin(\alpha/2)-1)](1-\beta^5)\lambda^2 + (\lambda-1)^2 .. math:: \lambda = 1 + 0.622\left[1+C_B\left(\left(\frac{\alpha}{180} \right)^{0.8}-1\right)\right](1-0.215\beta^2-0.785\beta^5) .. math:: C_B = \frac{l}{d_2}\frac{2\beta\tan(\alpha/2)}{1-\beta} .. math:: \beta = d_2/d_1 .. figure:: fittings/contraction_beveled.png :scale: 30 % :alt: contraction beveled; after [1]_ Parameters ---------- Di1 : float Inside diameter of original pipe, [m] Di2 : float Inside diameter of following pipe, [m] l : float Length of the bevel along the pipe axis ,[m] angle : float Angle of bevel, [degrees] Returns ------- K : float Loss coefficient in terms of the following pipe [-] Notes ----- Examples -------- >>> contraction_beveled(Di1=0.5, Di2=0.1, l=.7*.1, angle=120) 0.40946469413070485 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' angle = radians(angle) beta = Di2/Di1 CB = l/Di2*2.0*beta*tan(0.5*angle)/(1.0 - beta) beta2 = beta*beta beta5 = beta2*beta2*beta lbd = 1.0 + 0.622*(1.0 + CB*((angle/pi)**0.8 - 1.0))*(1.0 - 0.215*beta2 - 0.785*beta5) return 0.0696*(1.0 + CB*(sin(0.5*angle) - 1.0))*(1.0 - beta5)*lbd*lbd + (lbd-1.0)**2 ### Expansions (diffusers) def diffuser_sharp(Di1, Di2): r'''Returns loss coefficient for any sudden pipe diameter expansion as shown in [1]_ and in other sources. .. math:: K_1 = (1-\beta^2)^2 Parameters ---------- Di1 : float Inside diameter of original pipe (smaller), [m] Di2 : float Inside diameter of following pipe (larger), [m] Returns ------- K : float Loss coefficient [-] Notes ----- Highly accurate. Examples -------- >>> diffuser_sharp(Di1=.5, Di2=1) 0.5625 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' beta = Di1/Di2 return (1.0 - beta*beta)**2 def diffuser_conical_Crane(Di1, Di2, l=None, angle=None): beta = Di1/Di2 beta2 = beta*beta if angle is not None: angle_rad = radians(angle) l = (Di1 - Di2)/(2.0*tan(0.5*angle_rad)) elif l is not None: try: angle_rad = 2.0*atan((Di1-Di2)/(2.0*l)) angle = degrees(angle_rad) except ZeroDivisionError: angle_rad = pi angle = 180.0 else: raise Exception('Either `l` or `angle` must be specified') if angle < 45.0: # Formula 3 K2 = 2.6*sin(0.5*angle_rad)*(1.0 - beta2)**2/(beta2*beta2) else: K2 = (1.0 - beta2)**2/(beta2*beta2) # formula 4 K1 = K2*beta2*beta2 # Standard has become using upstream diameter return K1 tck_diffuser_conical_Miller = implementation_optimize_tck([ [ -2.307004845727645, -2.307004845727645, -2.307004845727645, -2.307004845727645, -0.852533937110498, -0.08240363489988907, 0.5915927994712962, 0.8982804334259539, 1.2315822114127628, 1.5343291978351532, 1.9774792041044793, 2.990267368122924, 2.990267368122924, 2.990267368122924, 2.990267368122924 ], [ 0.15265175024859737, 0.15265175024859737, 0.15265175024859737, 0.15265175024859737, 0.40701687154729443, 0.6664564516122377, 0.8948974705226967, 1.0144777142876453, 1.0931592421107108, 1.1789561829062467, 1.3141101898631344, 1.4016433190574298, 1.4016433190574298, 1.4016433190574298, 1.4016433190574298 ], [ 0.06036297171599943, 0.08322477303304361, 0.1533018560180316, 0.23256231139725417, 0.3176212581983357, 0.40020914174974515, 0.4385944607898857, 0.5200344894492758, 0.6068491969006803, 0.5644812620968174, 0.5206931820307759, 0.05279258341151595, 0.06701886136626269, 0.15460022709300852, 0.22187392289400498, 0.3163189969211137, 0.40236602598664045, 0.44217477520553994, 0.5224439320660155, 0.5978399391103398, 0.6131809640282799, 0.6101286467987195, 0.05708355184742518, 0.06843627744908527, 0.08943713554460665, 0.2666074936578441, 0.3093579837678418, 0.3920305705167829, 0.44503141066730906, 0.5320996705995045, 0.5598015078960548, 0.9045290434928654, 1.1278543134986714, 0.004082132921064788, 0.08726673904790738, 0.05768023021275458, 0.2018006237954987, 0.31496483541908044, 0.3856708355645899, 0.4432173742517448, 0.5150555453757539, 0.5447727935474795, 0.8251456282600432, 0.996071097893787, -0.1110682037244921, 0.07314890991840513, 0.06176280023793122, 0.14210338139570033, 0.221133551530109, 0.34303500384378116, 0.40130996632027693, 0.49982098188910806, 0.5348917607889022, 0.6163719511180222, 0.6823385842053077, -0.2166378057986125, 0.03883937343819872, 0.06286476564404532, 0.10772310640543344, 0.16931893225970837, 0.22920155110345403, 0.32189134044934775, 0.4091523406543155, 0.5122997879847003, 0.5557259511248352, 0.5834892444785406, -0.2784258718931251, 0.01614983641474248, 0.06657175843926792, 0.06987287339424499, 0.11347683852709868, 0.18271325237542604, 0.24381226992585622, 0.33699751608726225, 0.4328543409526461, 0.4932084120786604, 0.5172902462503076, -0.3110304748285624, -0.02554857636053585, 0.04945754727786904, 0.06935393005092971, 0.05644398696176074, 0.08533241552366327, 0.15458680076525846, 0.24566876577901098, 0.35324686175439035, 0.4095605186012888, 0.4277661722408436, -0.27286175236092153, -0.15488345611240545, -0.09243246273089455, 0.03455782910023685, 0.0829563174865211, 0.05506682466210118, 0.07027248456489407, 0.13458355260751956, 0.21084209763905942, 0.2971705194724395, 0.3194829528180993, -0.08063077687005854, -0.4253397307338264, -0.6215191566655465, -0.29467521770312016, 0.018448009119198257, 0.08412326971799582, 0.08337420030229001, 0.131275821589702, 0.1623166890922024, 0.21352111168837065, 0.2394011632386149, 0.14484414802505116, -0.781141319195365, -1.4412452429263252, -0.6266583715858592, 0.019328251090708078, 0.07939124881757918, 0.07570115443982374, 0.10818570632561267, 0.14931529315415798, 0.1845260859797597, 0.1975713897205575 ], 3, 3 ]) diffuser_conical_Idelchik_angles = [3, 6, 8, 10, 12, 14, 16, 20, 24, 30, 40, 60, 90, 180] diffuser_conical_Idelchik_A_ratios = [0, 0.05, 0.075, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6] diffuser_conical_Idelchik_data = [ [0.03, 0.08, 0.11, 0.15, 0.19, 0.23, 0.27, 0.36, 0.47, 0.65, 0.92, 1.15, 1.1, 1.02], [0.03, 0.07, 0.1, 0.14, 0.16, 0.2, 0.24, 0.32, 0.42, 0.58, 0.83, 1.04, 0.99, 0.92], [0.03, 0.07, 0.09, 0.13, 0.16, 0.19, 0.23, 0.3, 0.4, 0.55, 0.79, 0.99, 0.95, 0.88], [0.03, 0.07, 0.09, 0.12, 0.15, 0.18, 0.22, 0.29, 0.38, 0.52, 0.75, 0.93, 0.89, 0.83], [0.02, 0.06, 0.08, 0.11, 0.14, 0.17, 0.2, 0.26, 0.34, 0.46, 0.67, 0.84, 0.79, 0.74], [0.02, 0.05, 0.07, 0.1, 0.12, 0.15, 0.17, 0.23, 0.3, 0.41, 0.59, 0.74, 0.7, 0.65], [0.02, 0.05, 0.06, 0.08, 0.1, 0.13, 0.15, 0.2, 0.26, 0.35, 0.47, 0.65, 0.62, 0.58], [0.02, 0.04, 0.05, 0.07, 0.09, 0.11, 0.13, 0.18, 0.23, 0.31, 0.4, 0.57, 0.54, 0.5], [0.01, 0.03, 0.04, 0.06, 0.07, 0.08, 0.1, 0.13, 0.17, 0.23, 0.33, 0.41, 0.39, 0.37], [0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.09, 0.12, 0.16, 0.23, 0.29, 0.28, 0.26], [0.01, 0.01, 0.02, 0.03, 0.03, 0.04, 0.05, 0.06, 0.08, 0.1, 0.15, 0.18, 0.17, 0.16]] diffuser_conical_Idelchik_tck = implementation_optimize_tck([[0.0, 0.0, 0.0, 0.0, 0.075, 0.1, 0.15, 0.2, 0.25, 0.3, 0.4, 0.6, 0.6, 0.6, 0.6], [3.0, 3.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 20.0, 24.0, 30.0, 40.0, 60.0, 90.0, 180.0, 180.0], [0.03, 0.08000000000000002, 0.11, 0.15000000000000002, 0.19, 0.23000000000000004, 0.2700000000000001, 0.36000000000000004, 0.4700000000000001, 0.6500000000000001, 0.9200000000000003, 1.1499999999999997, 1.0999999999999999, 1.02, 0.031285899404876215, 0.06962481602354913, 0.12336980866449107, 0.1503712244832664, 0.14378748320215035, 0.20742060216292338, 0.24836000991873095, 0.35209826742177064, 0.43872500319959085, 0.6090878367568959, 0.8690773980930455, 1.0742803401164671, 1.0021612593588036, 0.9451655708069392, 0.028714100595123804, 0.06926407286533984, 0.08440796911328675, 0.1374065532945115, 0.17287918346451642, 0.19813495339263237, 0.23719554563682488, 0.301235065911563, 0.4134972190226316, 0.5698010521319933, 0.8164781574625106, 1.0379418821057562, 1.0011720739745302, 0.9192788736375066, 0.03171453253983491, 0.07116642136473203, 0.09282641155265463, 0.11549496597768823, 0.14338331093620021, 0.17489413621723082, 0.21614667989164066, 0.28946435656236014, 0.37330000426612064, 0.5104504490091938, 0.7371031974573926, 0.9040404534886205, 0.8645483458117367, 0.810220761075916, 0.01599798425801497, 0.0600112625583925, 0.07849171306072822, 0.11003185192295382, 0.14431407179880976, 0.1740127023740962, 0.20378359569975044, 0.2582633102962821, 0.33980922441927436, 0.45585837012862357, 0.6659720355794456, 0.8470955557688615, 0.7909107314263772, 0.7433823030652078, 0.021150220771741206, 0.04655749664043002, 0.0703397965060472, 0.10328500351954951, 0.11954655404108269, 0.1488787675177576, 0.1662463204709797, 0.231242192999296, 0.3007649420874127, 0.4151976547001982, 0.604782427849235, 0.7361883438919813, 0.6970812056056823, 0.6428823350611119, 0.019401132655020165, 0.053758750879887386, 0.06014910091508289, 0.07682813399884816, 0.09749971203685935, 0.13047222755487306, 0.1512311224163308, 0.19676791770653376, 0.2571310072310745, 0.3433510110705831, 0.45489825302361336, 0.6481510686632118, 0.6207644461508929, 0.5850883566903438, 0.02185995392589747, 0.033290416160064826, 0.045368699473134086, 0.06692723598046114, 0.08810622640302032, 0.10215235383204274, 0.1213618790128196, 0.17665887566391483, 0.2219043695740277, 0.3007473976664318, 0.37586666240054567, 0.5455594857191605, 0.5128931976706977, 0.4673228653399028, 1.2670378191600348e-05, 0.03091333375994541, 0.03916320044367654, 0.06214899426206778, 0.062121072502719726, 0.06871380729933241, 0.09367771591902911, 0.10605919242336995, 0.14532614492011708, 0.196826752842303, 0.32944561762761065, 0.340669205008426, 0.32703730722467556, 0.32918425374885374, 0.014993664810904203, 0.014543333120027308, 0.025418399778161738, 0.026425502868966118, 0.04393946374864015, 0.0556430963503338, 0.05566114204048549, 0.07947040378831506, 0.10483692753994148, 0.13908662357884857, 0.1752771911861948, 0.26216539749578693, 0.2564813463876624, 0.22290787312557322, 0.01, 0.01, 0.02, 0.03, 0.03, 0.04, 0.05, 0.06, 0.08, 0.1, 0.15, 0.18, 0.17, 0.16], 3, 1]) diffuser_conical_Idelchik_obj = lambda x, y : float(bisplev(x, y, diffuser_conical_Idelchik_tck)) diffuser_conical_methods = ['Rennels', 'Crane', 'Miller', 'Swamee', 'Idelchik'] def diffuser_conical(Di1, Di2, l=None, angle=None, fd=None, Re=None, roughness=0.0, method='Rennels'): r'''Returns the loss coefficient for any conical pipe diffuser. This calculation has four methods available. The 'Rennels' [1]_ formulas are as follows (three different formulas are used, depending on the angle and the ratio of diameters): For 0 to 20 degrees, all aspect ratios: .. math:: K_1 = 8.30[\tan(\alpha/2)]^{1.75}(1-\beta^2)^2 + \frac{f(1-\beta^4)}{8\sin(\alpha/2)} For 20 to 60 degrees, beta < 0.5: .. math:: K_1 = \left\{1.366\sin\left[\frac{2\pi(\alpha-15^\circ)}{180}\right]^{0.5} - 0.170 - 3.28(0.0625-\beta^4)\sqrt{\frac{\alpha-20^\circ}{40^\circ}}\right\} (1-\beta^2)^2 + \frac{f(1-\beta^4)}{8\sin(\alpha/2)} For 20 to 60 degrees, beta >= 0.5: .. math:: K_1 = \left\{1.366\sin\left[\frac{2\pi(\alpha-15^\circ)}{180}\right]^{0.5} - 0.170 \right\}(1-\beta^2)^2 + \frac{f(1-\beta^4)}{8\sin(\alpha/2)} For 60 to 180 degrees, beta < 0.5: .. math:: K_1 = \left[1.205 - 3.28(0.0625-\beta^4)-12.8\beta^6\sqrt{\frac {\alpha-60^\circ}{120^\circ}}\right](1-\beta^2)^2 For 60 to 180 degrees, beta >= 0.5: .. math:: K_1 = \left[1.205 - 0.20\sqrt{\frac{\alpha-60^\circ}{120^\circ}} \right](1-\beta^2)^2 The Swamee [5]_ formula is: .. math:: K = \left\{\frac{0.25}{\theta^3}\left[1 + \frac{0.6}{r^{1.67}} \left(\frac{\pi-\theta}{\theta} \right) \right]^{0.533r - 2.6} \right\}^{-0.5} .. figure:: fittings/diffuser_conical.png :scale: 60 % :alt: diffuser conical; after [1]_ Parameters ---------- Di1 : float Inside diameter of original pipe (smaller), [m] Di2 : float Inside diameter of following pipe (larger), [m] l : float, optional Length of the contraction along the pipe axis, optional, [m] angle : float, optional Angle of contraction, [degrees] fd : float, optional Darcy friction factor [-] Re : float, optional Reynolds number of the pipe (used in Rennels method only if no friction factor given), [m] roughness : float, optional Roughness of bend wall (used in Rennel method if no friction factor given), [m] method : str The method to use for the calculation; one of 'Rennels', 'Crane', 'Miller', 'Swamee', or 'Idelchik' [-] Returns ------- K : float Loss coefficient with respect to smaller, upstream diameter [-] Notes ----- The Miller method changes around quite a bit. There is quite a bit of variance in the predictions of the methods, as demonstrated by the following figure. .. plot:: plots/diffuser_conical.py Examples -------- >>> diffuser_conical(Di1=1/3., Di2=1.0, angle=50.0, Re=1E6) 0.8027721093415322 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] Idel’chik, I. E. Handbook of Hydraulic Resistance: Coefficients of Local Resistance and of Friction (Spravochnik Po Gidravlicheskim Soprotivleniyam, Koeffitsienty Mestnykh Soprotivlenii i Soprotivleniya Treniya). National technical information Service, 1966. .. [3] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [4] Swamee, Prabhata K., and Ashok K. Sharma. Design of Water Supply Pipe Networks. John Wiley & Sons, 2008. .. [5] Miller, Donald S. Internal Flow Systems: Design and Performance Prediction. Gulf Publishing Company, 1990. ''' beta = Di1/Di2 beta2 = beta*beta if angle is not None: angle_rad = radians(angle) l = (Di2 - Di1)/(2.0*tan(0.5*angle_rad)) elif l is not None: angle_rad = 2.0*atan(0.5*(Di2-Di1)/l) angle = degrees(angle_rad) else: raise Exception('Either `l` or `angle` must be specified') if method is None: method == 'Rennels' if method == 'Rennels': if fd is None: if Re is None: raise ValueError("The `Rennels` method requires either a " "specified friction factor or `Re`") fd = Colebrook(Re=Re, eD=roughness/Di2, tol=-1) if 0.0 < angle <= 20.0: K = 8.30*tan(0.5*angle_rad)**1.75*(1.0 - beta2)**2 + 0.125*fd*(1.0 - beta2*beta2)/sin(0.5*angle_rad) elif 20.0 < angle <= 60.0 and 0.0 <= beta < 0.5: K = (1.366*sin(2.0*pi*(angle - 15.0)/180.)**0.5 - 0.170 - 3.28*(0.0625-beta**4)*(0.025*(angle-20.0))**0.5)*(1.0 - beta2)**2 + 0.125*fd*(1.0 - beta2*beta2)/sin(0.5*angle_rad) elif 20.0 < angle <= 60.0 and beta >= 0.5: K = (1.366*sin(2.0*pi*(angle - 15.0)/180.0)**0.5 - 0.170)*(1.0 - beta2)**2 + 0.125*fd*(1.0 - beta2*beta2)/sin(0.5*angle_rad) elif 60.0 < angle <= 180.0 and 0.0 <= beta < 0.5: beta4 = beta2*beta2 K = (1.205 - 3.28*(0.0625 - beta4) - 12.8*beta4*beta2*((angle - 60.0)/120.)**0.5)*(1.0 - beta2)**2 elif 60.0 < angle <= 180.0 and beta >= 0.5: K = (1.205 - 0.20*((angle - 60.0)/120.)**0.5)*(1.0 - beta**2)**2 else: raise Exception('Conical diffuser inputs incorrect') return K elif method == 'Crane': return diffuser_conical_Crane(Di1=Di1, Di2=Di2, l=l, angle=angle) elif method == 'Miller': A_ratio = 1.0/beta2 if A_ratio > 4.0: A_ratio = 4.0 elif A_ratio < 1.1: A_ratio = 1.1 l_R1_ratio = l/(0.5*Di1) if l_R1_ratio < 0.1: l_R1_ratio = 0.1 elif l_R1_ratio > 20.0: l_R1_ratio = 20.0 Kd = max(float(bisplev(log(l_R1_ratio), log(A_ratio), tck_diffuser_conical_Miller)), 0) return Kd elif method == 'Idelchik': A_ratio = beta2 # Angles 0 to 20, ratios 0.05 to 0.06 if angle > 20.0: angle_fric = 20.0 elif angle < 2.0: angle_fric = 2.0 else: angle_fric = angle A_ratio_fric = A_ratio if A_ratio_fric < 0.05: A_ratio_fric = 0.05 elif A_ratio_fric > 0.6: A_ratio_fric = 0.6 K_fr = float(contraction_conical_frction_Idelchik_obj(angle_fric, A_ratio_fric)) K_exp = float(diffuser_conical_Idelchik_obj(min(0.6, A_ratio), max(3.0, angle))) return K_fr + K_exp elif method == 'Swamee': # Really starting to thing Swamee uses a different definition of loss coefficient! r = Di2/Di1 K = (0.25*angle_rad**-3*(1.0 + 0.6*r**(-1.67)*(pi-angle_rad)/angle_rad)**(0.533*r - 2.6))**-0.5 return K else: raise ValueError('Specified method not recognized; methods are %s' %(diffuser_conical_methods)) def diffuser_conical_staged(Di1, Di2, DEs, ls, fd=None, method='Rennels'): r'''Returns loss coefficient for any series of staged conical pipe expansions as shown in [1]_. Five different formulas are used, depending on the angle and the ratio of diameters. This function calls diffuser_conical. Parameters ---------- Di1 : float Inside diameter of original pipe (smaller), [m] Di2 : float Inside diameter of following pipe (larger), [m] DEs : array Diameters of intermediate sections, [m] ls : array Lengths of the various sections, [m] fd : float Darcy friction factor [-] method : str The method to use for the calculation; one of 'Rennels', 'Crane', 'Miller', 'Swamee', or 'Idelchik' [-] Returns ------- K : float Loss coefficient [-] Notes ----- Only lengths of sections currently allowed. This could be changed to understand angles also. Formula doesn't make much sense, as observed by the example comparing a series of conical sections. Use only for small numbers of segments of highly differing angles. Examples -------- >>> diffuser_conical(Di1=1., Di2=10.,l=9, fd=0.01) 0.973137914861591 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' K = 0 DEs.insert(0, Di1) DEs.append(Di2) for i in range(len(ls)): K += diffuser_conical(Di1=float(DEs[i]), Di2=float(DEs[i+1]), l=float(ls[i]), fd=fd, method=method) return K def diffuser_curved(Di1, Di2, l): r'''Returns loss coefficient for any curved wall pipe expansion as shown in [1]_. .. math:: K_1 = \phi(1.43-1.3\beta^2)(1-\beta^2)^2 .. math:: \phi = 1.01 - 0.624\frac{l}{d_1} + 0.30\left(\frac{l}{d_1}\right)^2 - 0.074\left(\frac{l}{d_1}\right)^3 + 0.0070\left(\frac{l}{d_1}\right)^4 .. figure:: fittings/curved_wall_diffuser.png :scale: 25 % :alt: diffuser curved; after [1]_ Parameters ---------- Di1 : float Inside diameter of original pipe (smaller), [m] Di2 : float Inside diameter of following pipe (larger), [m] l : float Length of the curve along the pipe axis, [m] Returns ------- K : float Loss coefficient [-] Notes ----- Beta^2 should be between 0.1 and 0.9. A small mismatch between tabulated values of this function in table 11.3 is observed with the equation presented. Examples -------- >>> diffuser_curved(Di1=.25**0.5, Di2=1., l=2.) 0.2299781250000002 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' beta = Di1/Di2 phi = 1.01 - 0.624*l/Di1 + 0.30*(l/Di1)**2 - 0.074*(l/Di1)**3 + 0.0070*(l/Di1)**4 return phi*(1.43 - 1.3*beta**2)*(1 - beta**2)**2 def diffuser_pipe_reducer(Di1, Di2, l, fd1, fd2=None): r'''Returns loss coefficient for any pipe reducer pipe expansion as shown in [1]. This is an approximate formula. .. math:: K_f = f_1\frac{0.20l}{d_1} + \frac{f_1(1-\beta)}{8\sin(\alpha/2)} + f_2\frac{0.20l}{d_2}\beta^4 .. math:: \alpha = 2\tan^{-1}\left(\frac{d_1-d_2}{1.20l}\right) Parameters ---------- Di1 : float Inside diameter of original pipe (smaller), [m] Di2 : float Inside diameter of following pipe (larger), [m] l : float Length of the pipe reducer along the pipe axis, [m] fd1 : float Darcy friction factor at inlet diameter [-] fd2 : float Darcy friction factor at outlet diameter, optional [-] Returns ------- K : float Loss coefficient [-] Notes ----- Industry lack of standardization prevents better formulas from being developed. Add 15% if the reducer is eccentric. Friction factor at outlet will be assumed the same as at inlet if not specified. Doubt about the validity of this equation is raised. Examples -------- >>> diffuser_pipe_reducer(Di1=.5, Di2=.75, l=1.5, fd1=0.07) 0.06873244301714816 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' if fd2 is None: fd2 = fd1 beta = Di1/Di2 angle = -2*atan((Di1-Di2)/1.20/l) K = fd1*0.20*l/Di1 + fd1*(1-beta)/8./sin(angle/2) + fd2*0.20*l/Di2*beta**4 return K ### TODO: Tees ### 3 Darby 3K Method (with valves) Darby = {} Darby['Elbow, 90°, threaded, standard, (r/D = 1)'] = {'K1': 800, 'Ki': 0.14, 'Kd': 4} Darby['Elbow, 90°, threaded, long radius, (r/D = 1.5)'] = {'K1': 800, 'Ki': 0.071, 'Kd': 4.2} Darby['Elbow, 90°, flanged, welded, bends, (r/D = 1)'] = {'K1': 800, 'Ki': 0.091, 'Kd': 4} Darby['Elbow, 90°, (r/D = 2)'] = {'K1': 800, 'Ki': 0.056, 'Kd': 3.9} Darby['Elbow, 90°, (r/D = 4)'] = {'K1': 800, 'Ki': 0.066, 'Kd': 3.9} Darby['Elbow, 90°, (r/D = 6)'] = {'K1': 800, 'Ki': 0.075, 'Kd': 4.2} Darby['Elbow, 90°, mitered, 1 weld, (90°)'] = {'K1': 1000, 'Ki': 0.27, 'Kd': 4} Darby['Elbow, 90°, 2 welds, (45°)'] = {'K1': 800, 'Ki': 0.068, 'Kd': 4.1} Darby['Elbow, 90°, 3 welds, (30°)'] = {'K1': 800, 'Ki': 0.035, 'Kd': 4.2} Darby['Elbow, 45°, threaded standard, (r/D = 1)'] = {'K1': 500, 'Ki': 0.071, 'Kd': 4.2} Darby['Elbow, 45°, long radius, (r/D = 1.5)'] = {'K1': 500, 'Ki': 0.052, 'Kd': 4} Darby['Elbow, 45°, mitered, 1 weld, (45°)'] = {'K1': 500, 'Ki': 0.086, 'Kd': 4} Darby['Elbow, 45°, mitered, 2 welds, (22.5°)'] = {'K1': 500, 'Ki': 0.052, 'Kd': 4} Darby['Elbow, 180°, threaded, close-return bend, (r/D = 1)'] = {'K1': 1000, 'Ki': 0.23, 'Kd': 4} Darby['Elbow, 180°, flanged, (r/D = 1)'] = {'K1': 1000, 'Ki': 0.12, 'Kd': 4} Darby['Elbow, 180°, all, (r/D = 1.5)'] = {'K1': 1000, 'Ki': 0.1, 'Kd': 4} Darby['Tee, Through-branch, (as elbow), threaded, (r/D = 1)'] = {'K1': 500, 'Ki': 0.274, 'Kd': 4} Darby['Tee, Through-branch,(as elbow), (r/D = 1.5)'] = {'K1': 800, 'Ki': 0.14, 'Kd': 4} Darby['Tee, Through-branch, (as elbow), flanged, (r/D = 1)'] = {'K1': 800, 'Ki': 0.28, 'Kd': 4} Darby['Tee, Through-branch, (as elbow), stub-in branch'] = {'K1': 1000, 'Ki': 0.34, 'Kd': 4} Darby['Tee, Run-through, threaded, (r/D = 1)'] = {'K1': 200, 'Ki': 0.091, 'Kd': 4} Darby['Tee, Run-through, flanged, (r/D = 1)'] = {'K1': 150, 'Ki': 0.05, 'Kd': 4} Darby['Tee, Run-through, stub-in branch'] = {'K1': 100, 'Ki': 0, 'Kd': 0} Darby['Valve, Angle valve, 45°, full line size, β = 1'] = {'K1': 950, 'Ki': 0.25, 'Kd': 4} Darby['Valve, Angle valve, 90°, full line size, β = 1'] = {'K1': 1000, 'Ki': 0.69, 'Kd': 4} Darby['Valve, Globe valve, standard, β = 1'] = {'K1': 1500, 'Ki': 1.7, 'Kd': 3.6} Darby['Valve, Plug valve, branch flow'] = {'K1': 500, 'Ki': 0.41, 'Kd': 4} Darby['Valve, Plug valve, straight through'] = {'K1': 300, 'Ki': 0.084, 'Kd': 3.9} Darby['Valve, Plug valve, three-way (flow through)'] = {'K1': 300, 'Ki': 0.14, 'Kd': 4} Darby['Valve, Gate valve, standard, β = 1'] = {'K1': 300, 'Ki': 0.037, 'Kd': 3.9} Darby['Valve, Ball valve, standard, β = 1'] = {'K1': 300, 'Ki': 0.017, 'Kd': 3.5} Darby['Valve, Diaphragm, dam type'] = {'K1': 1000, 'Ki': 0.69, 'Kd': 4.9} Darby['Valve, Swing check'] = {'K1': 1500, 'Ki': 0.46, 'Kd': 4} Darby['Valve, Lift check'] = {'K1': 2000, 'Ki': 2.85, 'Kd': 3.8} def Darby3K(NPS=None, Re=None, name=None, K1=None, Ki=None, Kd=None): r'''Returns loss coefficient for any various fittings, depending on the name input. Alternatively, the Darby constants K1, Ki and Kd may be provided and used instead. Source of data is [1]_. Reviews of this model are favorable. .. math:: K_f = \frac{K_1}{Re} + K_i\left(1 + \frac{K_d}{D_{\text{NPS}}^{0.3}} \right) Note this model uses nominal pipe diameter in inches. Parameters ---------- NPS : float Nominal diameter of the pipe, [in] Re : float Reynolds number, [-] name : str String from Darby dict representing a fitting K1 : float K1 parameter of Darby model, optional [-] Ki : float Ki parameter of Darby model, optional [-] Kd : float Kd parameter of Darby model, optional [in] Returns ------- K : float Loss coefficient [-] Notes ----- Also described in Albright's Handbook and Ludwig's Applied Process Design. Relatively uncommon to see it used. The possibility of combining these methods with those above are attractive. Examples -------- >>> Darby3K(NPS=2., Re=10000., name='Valve, Angle valve, 45°, full line size, β = 1') 1.1572523963562353 >>> Darby3K(NPS=12., Re=10000., K1=950, Ki=0.25, Kd=4) 0.819510280626355 References ---------- .. [1] Silverberg, Peter, and Ron Darby. "Correlate Pressure Drops through Fittings: Three Constants Accurately Calculate Flow through Elbows, Valves and Tees." Chemical Engineering 106, no. 7 (July 1999): 101. .. [2] Silverberg, Peter. "Correlate Pressure Drops Through Fittings." Chemical Engineering 108, no. 4 (April 2001): 127,129-130. ''' if name: if name in Darby: d = Darby[name] K1, Ki, Kd = d['K1'], d['Ki'], d['Kd'] else: raise Exception('Name of fitting not in list') elif K1 and Ki and Kd: pass else: raise Exception('Name of fitting or constants are required') return K1/Re + Ki*(1. + Kd/NPS**0.3) ### 2K Hooper Method Hooper = {} Hooper['Elbow, 90°, Standard (R/D = 1), Screwed'] = {'K1': 800, 'Kinfty': 0.4} Hooper['Elbow, 90°, Standard (R/D = 1), Flanged/welded'] = {'K1': 800, 'Kinfty': 0.25} Hooper['Elbow, 90°, Long-radius (R/D = 1.5), All types'] = {'K1': 800, 'Kinfty': 0.2} Hooper['Elbow, 90°, Mitered (R/D = 1.5), 1 weld (90° angle)'] = {'K1': 1000, 'Kinfty': 1.15} Hooper['Elbow, 90°, Mitered (R/D = 1.5), 2 weld (45° angle)'] = {'K1': 800, 'Kinfty': 0.35} Hooper['Elbow, 90°, Mitered (R/D = 1.5), 3 weld (30° angle)'] = {'K1': 800, 'Kinfty': 0.3} Hooper['Elbow, 90°, Mitered (R/D = 1.5), 4 weld (22.5° angle)'] = {'K1': 800, 'Kinfty': 0.27} Hooper['Elbow, 90°, Mitered (R/D = 1.5), 5 weld (18° angle)'] = {'K1': 800, 'Kinfty': 0.25} Hooper['Elbow, 45°, Standard (R/D = 1), All types'] = {'K1': 500, 'Kinfty': 0.2} Hooper['Elbow, 45°, Long-radius (R/D 1.5), All types'] = {'K1': 500, 'Kinfty': 0.15} Hooper['Elbow, 45°, Mitered (R/D=1.5), 1 weld (45° angle)'] = {'K1': 500, 'Kinfty': 0.25} Hooper['Elbow, 45°, Mitered (R/D=1.5), 2 weld (22.5° angle)'] = {'K1': 500, 'Kinfty': 0.15} Hooper['Elbow, 45°, Standard (R/D = 1), Screwed'] = {'K1': 1000, 'Kinfty': 0.7} Hooper['Elbow, 180°, Standard (R/D = 1), Flanged/welded'] = {'K1': 1000, 'Kinfty': 0.35} Hooper['Elbow, 180°, Long-radius (R/D = 1.5), All types'] = {'K1': 1000, 'Kinfty': 0.3} Hooper['Elbow, Used as, Standard, Screwed'] = {'K1': 500, 'Kinfty': 0.7} Hooper['Elbow, Elbow, Long-radius, Screwed'] = {'K1': 800, 'Kinfty': 0.4} Hooper['Elbow, Elbow, Standard, Flanged/welded'] = {'K1': 800, 'Kinfty': 0.8} Hooper['Elbow, Elbow, Stub-in type branch'] = {'K1': 1000, 'Kinfty': 1} Hooper['Tee, Run, Screwed'] = {'K1': 200, 'Kinfty': 0.1} Hooper['Tee, Through, Flanged or welded'] = {'K1': 150, 'Kinfty': 0.05} Hooper['Tee, Tee, Stub-in type branch'] = {'K1': 100, 'Kinfty': 0} Hooper['Valve, Gate, Full line size, Beta = 1'] = {'K1': 300, 'Kinfty': 0.1} Hooper['Valve, Ball, Reduced trim, Beta = 0.9'] = {'K1': 500, 'Kinfty': 0.15} Hooper['Valve, Plug, Reduced trim, Beta = 0.8'] = {'K1': 1000, 'Kinfty': 0.25} Hooper['Valve, Globe, Standard'] = {'K1': 1500, 'Kinfty': 4} Hooper['Valve, Globe, Angle or Y-type'] = {'K1': 1000, 'Kinfty': 2} Hooper['Valve, Diaphragm, Dam type'] = {'K1': 1000, 'Kinfty': 2} Hooper['Valve, Butterfly,'] = {'K1': 800, 'Kinfty': 0.25} Hooper['Valve, Check, Lift'] = {'K1': 2000, 'Kinfty': 10} Hooper['Valve, Check, Swing'] = {'K1': 1500, 'Kinfty': 1.5} Hooper['Valve, Check, Tilting-disc'] = {'K1': 1000, 'Kinfty': 0.5} def Hooper2K(Di, Re, name=None, K1=None, Kinfty=None): r'''Returns loss coefficient for any various fittings, depending on the name input. Alternatively, the Hooper constants K1, Kinfty may be provided and used instead. Source of data is [1]_. Reviews of this model are favorable less favorable than the Darby method but superior to the constant-K method. .. math:: K = \frac{K_1}{Re} + K_\infty\left(1 + \frac{1\text{ inch}}{D_{in}}\right) Note this model uses actual inside pipe diameter in inches. Parameters ---------- Di : float Actual inside diameter of the pipe, [in] Re : float Reynolds number, [-] name : str, optional String from Hooper dict representing a fitting K1 : float, optional K1 parameter of Hooper model, optional [-] Kinfty : float, optional Kinfty parameter of Hooper model, optional [-] Returns ------- K : float Loss coefficient [-] Notes ----- Also described in Ludwig's Applied Process Design. Relatively uncommon to see it used. No actual example found. Examples -------- >>> Hooper2K(Di=2., Re=10000., name='Valve, Globe, Standard') 6.15 >>> Hooper2K(Di=2., Re=10000., K1=900, Kinfty=4) 6.09 References ---------- .. [1] Hooper, W. B., "The 2-K Method Predicts Head Losses in Pipe Fittings," Chem. Eng., p. 97, Aug. 24 (1981). .. [2] Hooper, William B. "Calculate Head Loss Caused by Change in Pipe Size." Chemical Engineering 95, no. 16 (November 7, 1988): 89. .. [3] Kayode Coker. Ludwig's Applied Process Design for Chemical and Petrochemical Plants. 4E. Amsterdam ; Boston: Gulf Professional Publishing, 2007. ''' if name: if name in Hooper: d = Hooper[name] K1, Kinfty = d['K1'], d['Kinfty'] else: raise Exception('Name of fitting not in list') elif K1 and Kinfty: pass else: raise Exception('Name of fitting or constants are required') return K1/Re + Kinfty*(1. + 1./Di) ### Valves def Kv_to_Cv(Kv): r'''Convert valve flow coefficient from imperial to common metric units. .. math:: C_v = 1.156 K_v Parameters ---------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Returns ------- Cv : float Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute] Notes ----- Kv = 0.865 Cv is in the IEC standard 60534-2-1. It has also been said that Cv = 1.17Kv; this is wrong by current standards. The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a pound-force per square inch. The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above. Examples -------- >>> Kv_to_Cv(2) 2.3121984567073133 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return 1.1560992283536566*Kv def Cv_to_Kv(Cv): r'''Convert valve flow coefficient from imperial to common metric units. .. math:: K_v = C_v/1.156 Parameters ---------- Cv : float Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute] Returns ------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Notes ----- Kv = 0.865 Cv is in the IEC standard 60534-2-1. It has also been said that Cv = 1.17Kv; this is wrong by current standards. The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a pound-force per square inch. The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above. Examples -------- >>> Cv_to_Kv(2.312) 1.9998283393826013 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return Cv/1.1560992283536566 def Kv_to_K(Kv, D): r'''Convert valve flow coefficient from common metric units to regular loss coefficients. .. math:: K = 1.6\times 10^9 \frac{D^4}{K_v^2} Parameters ---------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] D : float Inside diameter of the valve [m] Returns ------- K : float Loss coefficient, [-] Notes ----- Crane TP 410 M (2009) gives the coefficient of 0.04 (with diameter in mm). It also suggests the density of water should be found between 5-40°C. Older versions specify the density should be found at 60 °F, which is used here, and the pessure for the appropriate density is back calculated. .. math:: \Delta P = 1 \text{ bar} = \frac{1}{2}\rho V^2\cdot K V = \frac{\frac{K_v\cdot \text{ hour}}{3600 \text{ second}}}{\frac{\pi}{4}D^2} \rho = 999.29744568 \;\; kg/m^3 \text{ at } T=60° F, P = 703572 Pa The value of density is calculated with IAPWS-95; it is chosen as it makes the coefficient a very convenient round number. Others constants that have been used are 1.604E9, and 1.60045E9. Examples -------- >>> Kv_to_K(2.312, .015) 15.153374600399898 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return 1.6E9*D**4*Kv**-2 def K_to_Kv(K, D): r'''Convert regular loss coefficient to valve flow coefficient. .. math:: K_v = 4\times 10^4 \sqrt{ \frac{D^4}{K}} Parameters ---------- K : float Loss coefficient, [-] D : float Inside diameter of the valve [m] Returns ------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Notes ----- Crane TP 410 M (2009) gives the coefficient of 0.04 (with diameter in mm). It also suggests the density of water should be found between 5-40°C. Older versions specify the density should be found at 60 °F, which is used here, and the pessure for the appropriate density is back calculated. .. math:: \Delta P = 1 \text{ bar} = \frac{1}{2}\rho V^2\cdot K V = \frac{\frac{K_v\cdot \text{ hour}}{3600 \text{ second}}}{\frac{\pi}{4}D^2} \rho = 999.29744568 \;\; kg/m^3 \text{ at } T=60° F, P = 703572 Pa The value of density is calculated with IAPWS-95; it is chosen as it makes the coefficient a very convenient round number. Others constants that have been used are 1.604E9, and 1.60045E9. Examples -------- >>> K_to_Kv(15.15337460039990, .015) 2.312 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return D*D*(1.6E9/K)**0.5 def K_to_Cv(K, D): r'''Convert regular loss coefficient to imperial valve flow coefficient. .. math:: K_v = 1.156 \cdot 4\times 10^4 \sqrt{ \frac{D^4}{K}} Parameters ---------- K : float Loss coefficient, [-] D : float Inside diameter of the valve [m] Returns ------- Cv : float Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute] Notes ----- The conversion factor does not depend on the density of the fluid or the diameter of the valve. It is calculated with the definition of a US gallon as 231 cubic inches, and a psi as a pound-force per square inch. The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above. Examples -------- >>> K_to_Cv(16, .015) 2.601223263795727 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return 1.1560992283536566*D*D*(1.6E9/K)**0.5 def Cv_to_K(Cv, D): r'''Convert imperial valve flow coefficient from imperial units to regular loss coefficients. .. math:: K = 1.6\times 10^9 \frac{D^4}{\left(\frac{C_v}{1.56}\right)^2} Parameters ---------- Cv : float Imperial Cv valve flow coefficient (flow rate of water at a pressure drop of 1 psi) [gallons/minute] D : float Inside diameter of the valve [m] Returns ------- K : float Loss coefficient, [-] Notes ----- The exact conversion coefficient between Kv to Cv is 1.1560992283536566; it is rounded in the formula above. Examples -------- >>> Cv_to_K(2.712, .015) 14.719595348352552 References ---------- .. [1] ISA-75.01.01-2007 (60534-2-1 Mod) Draft ''' return 1.6E9*D**4*(Cv/1.1560992283536566)**-2 def K_gate_valve_Crane(D1, D2, angle, fd=None): r'''Returns loss coefficient for a gate valve of types wedge disc, double disc, or plug type, as shown in [1]_. If β = 1 and θ = 0: .. math:: K = K_1 = K_2 = 8f_d If β < 1 and θ <= 45°: .. math:: K_2 = \frac{K + \sin \frac{\theta}{2} \left[0.8(1-\beta^2) + 2.6(1-\beta^2)^2\right]}{\beta^4} If β < 1 and θ > 45°: .. math:: K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1-\beta^2) + (1-\beta^2)^2}{\beta^4} Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] angle : float Angle formed by the reducer in the valve, [degrees] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor! [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions [2]_. Examples -------- Example 7-4 in [1]_; a 150 by 100 mm class 600 steel gate valve, conically tapered ports, length 550 mm, back of sear ring ~150 mm. The valve is connected to 146 mm schedule 80 pipe. The angle can be calculated to be 13 degrees. The valve is specified to be operating in turbulent conditions. >>> K_gate_valve_Crane(D1=.1, D2=.146, angle=13.115) 1.1466029421844073 The calculated result is lower than their value of 1.22; the difference is due to Crane's generous intermediate rounding. A later, Imperial edition of Crane rounds differently - and comes up with K=1.06. References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [2] Harvey Wilson. "Pressure Drop in Pipe Fittings and Valves | Equivalent Length and Resistance Coefficient." Katmar Software. Accessed July 28, 2017. http://www.katmarsoftware.com/articles/pipe-fitting-pressure-drop.htm. ''' angle = radians(angle) beta = D1/D2 if fd is None: fd = ft_Crane(D2) K1 = 8.0*fd # This does not refer to upstream loss per se if beta == 1 or angle == 0: return K1 # upstream and down else: beta2 = beta*beta one_m_beta2 = 1.0 - beta2 if angle <= 0.7853981633974483: K = (K1 + sin(0.5*angle)*(0.8*one_m_beta2 + 2.6*one_m_beta2*one_m_beta2))/(beta2*beta2) else: K = (K1 + 0.5*(sin(0.5*angle))**0.5*one_m_beta2 + one_m_beta2*one_m_beta2)/(beta2*beta2) return K def K_globe_valve_Crane(D1, D2, fd=None): r'''Returns the loss coefficient for all types of globe valve, (reduced seat or throttled) as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = 340 f_d Otherwise: .. math:: K_2 = \frac{K + \left[0.5(1-\beta^2) + (1-\beta^2)^2\right]}{\beta^4} Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_globe_valve_Crane(.01, .02) 135.9200548324305 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = D1/D2 if fd is None: fd = ft_Crane(D2) K1 = 340.0*fd if beta == 1: return K1 # upstream and down else: return (K1 + beta*(0.5*(1-beta)**2 + (1-beta**2)**2))/beta**4 def K_angle_valve_Crane(D1, D2, fd=None, style=0): r'''Returns the loss coefficient for all types of angle valve, (reduced seat or throttled) as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = N\cdot f_d Otherwise: .. math:: K_2 = \frac{K + \left[0.5(1-\beta^2) + (1-\beta^2)^2\right]}{\beta^4} For style 0 and 2, N = 55; for style 1, N=150. Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional One of 0, 1, or 2; refers to three different types of angle valves as shown in [1]_ [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_angle_valve_Crane(.01, .02) 26.597361811128465 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = D1/D2 if style not in (0, 1, 2): raise Exception('Valve style should be 0, 1, or 2') if fd is None: fd = ft_Crane(D2) if style == 0 or style == 2: K1 = 55.0*fd else: K1 = 150.0*fd if beta == 1: return K1 # upstream and down else: return (K1 + beta*(0.5*(1-beta)**2 + (1-beta**2)**2))/beta**4 def K_swing_check_valve_Crane(D=None, fd=None, angled=True): r'''Returns the loss coefficient for a swing check valve as shown in [1]_. .. math:: K_2 = N\cdot f_d For angled swing check valves N = 100; for straight valves, N = 50. Parameters ---------- D : float, optional Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] angled : bool, optional If True, returns a value 2x the unangled value; the style of the valve [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_swing_check_valve_Crane(D=.02) 2.3974274785373257 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if D is None and fd is None: raise ValueError('Either `D` or `fd` must be specified') if fd is None: fd = ft_Crane(D) if angled: return 100.*fd return 50.*fd def K_lift_check_valve_Crane(D1, D2, fd=None, angled=True): r'''Returns the loss coefficient for a lift check valve as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = N\cdot f_d Otherwise: .. math:: K_2 = \frac{K + \left[0.5(1-\beta^2) + (1-\beta^2)^2\right]}{\beta^4} For angled lift check valves N = 55; for straight valves, N = 600. Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] angled : bool, optional If True, returns a value 2x the unangled value; the style of the valve [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_lift_check_valve_Crane(.01, .02) 28.597361811128465 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = D1/D2 if fd is None: fd = ft_Crane(D2) if angled: K1 = 55*fd if beta == 1: return K1 else: return (K1 + beta*(0.5*(1 - beta**2) + (1 - beta**2)**2))/beta**4 else: K1 = 600.*fd if beta == 1: return K1 else: return (K1 + beta*(0.5*(1 - beta**2) + (1 - beta**2)**2))/beta**4 def K_tilting_disk_check_valve_Crane(D, angle, fd=None): r'''Returns the loss coefficient for a tilting disk check valve as shown in [1]_. Results are specified in [1]_ to be for the disk's resting position to be at 5 or 25 degrees to the flow direction. The model is implemented here so as to switch to the higher loss 15 degree coefficients at 10 degrees, and use the lesser coefficients for any angle under 10 degrees. .. math:: K = N\cdot f_d N is obtained from the following table: +--------+-------------+-------------+ | | angle = 5 ° | angle = 15° | +========+=============+=============+ | 2-8" | 40 | 120 | +--------+-------------+-------------+ | 10-14" | 30 | 90 | +--------+-------------+-------------+ | 16-48" | 20 | 60 | +--------+-------------+-------------+ The actual change of coefficients happen at <= 9" and <= 15". Parameters ---------- D : float Diameter of the pipe section the valve in mounted in; the same as the line size [m] angle : float Angle of the tilting disk to the flow direction; nominally 5 or 15 degrees [degrees] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_tilting_disk_check_valve_Crane(.01, 5) 1.1626516551826345 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D) if angle < 10: # 5 degree case if D <= 0.2286: # 2-8 inches, split at 9 inch return 40*fd elif D <= 0.381: # 10-14 inches, split at 15 inch return 30*fd else: # 16-18 inches return 20*fd else: # 15 degree case if D < 0.2286: # 2-8 inches return 120*fd elif D < 0.381: # 10-14 inches return 90*fd else: # 16-18 inches return 60*fd globe_stop_check_valve_Crane_coeffs = {0: 400.0, 1: 300.0, 2: 55.0} def K_globe_stop_check_valve_Crane(D1, D2, fd=None, style=0): r'''Returns the loss coefficient for a globe stop check valve as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = N\cdot f_d Otherwise: .. math:: K_2 = \frac{K + \left[0.5(1-\beta^2) + (1-\beta^2)^2\right]}{\beta^4} Style 0 is the standard form; style 1 is angled, with a restrition to force the flow up through the valve; style 2 is also angled but with a smaller restriction forcing the flow up. N is 400, 300, and 55 for those cases respectively. Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional One of 0, 1, or 2; refers to three different types of angle valves as shown in [1]_ [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_globe_stop_check_valve_Crane(.1, .02, style=1) 4.5235076518969795 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D2) try: K = globe_stop_check_valve_Crane_coeffs[style]*fd except KeyError: raise KeyError('Accepted valve styles are 0, 1, and 2 only') beta = D1/D2 if beta == 1: return K else: return (K + beta*(0.5*(1 - beta**2) + (1 - beta**2)**2))/beta**4 angle_stop_check_valve_Crane_coeffs = {0: 200.0, 1: 350.0, 2: 55.0} def K_angle_stop_check_valve_Crane(D1, D2, fd=None, style=0): r'''Returns the loss coefficient for a angle stop check valve as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = N\cdot f_d Otherwise: .. math:: K_2 = \frac{K + \left[0.5(1-\beta^2) + (1-\beta^2)^2\right]}{\beta^4} Style 0 is the standard form; style 1 has a restrition to force the flow up through the valve; style 2 is has the clearest flow area with no guides for the angle valve. N is 200, 350, and 55 for those cases respectively. Parameters ---------- D1 : float Diameter of the valve seat bore (must be smaller or equal to `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional One of 0, 1, or 2; refers to three different types of angle valves as shown in [1]_ [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_angle_stop_check_valve_Crane(.1, .02, style=1) 4.525425593879809 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D2) try: K = angle_stop_check_valve_Crane_coeffs[style]*fd except KeyError: raise KeyError('Accepted valve styles are 0, 1, and 2 only') beta = D1/D2 if beta == 1: return K else: return (K + beta*(0.5*(1.0 - beta**2) + (1.0 - beta**2)**2))/beta**4 def K_ball_valve_Crane(D1, D2, angle, fd=None): r'''Returns the loss coefficient for a ball valve as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = 3f_d If β < 1 and θ <= 45°: .. math:: K_2 = \frac{K + \sin \frac{\theta}{2} \left[0.8(1-\beta^2) + 2.6(1-\beta^2)^2\right]} {\beta^4} If β < 1 and θ > 45°: .. math:: K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1-\beta^2) + (1-\beta^2)^2}{\beta^4} Parameters ---------- D1 : float Diameter of the valve seat bore (must be equal to or smaller than `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] angle : float Angle formed by the reducer in the valve, [degrees] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_ball_valve_Crane(.01, .02, 50) 14.051310974926592 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D2) beta = D1/D2 K1 = 3*fd angle = radians(angle) if beta == 1: return K1 else: if angle <= pi/4: return (K1 + sin(angle/2)*(0.8*(1-beta**2) + 2.6*(1-beta**2)**2))/beta**4 else: return (K1 + 0.5*(sin(angle/2))**0.5 * (1 - beta**2) + (1-beta**2)**2)/beta**4 diaphragm_valve_Crane_coeffs = {0: 149.0, 1: 39.0} def K_diaphragm_valve_Crane(D=None, fd=None, style=0): r'''Returns the loss coefficient for a diaphragm valve of either weir (`style` = 0) or straight-through (`style` = 1) as shown in [1]_. .. math:: K = K_1 = K_2 = N\cdot f_d For style 0 (weir), N = 149; for style 1 (straight through), N = 39. Parameters ---------- D : float, optional Diameter of the pipe section the valve in mounted in; the same as the line size [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional Either 0 (weir type valve) or 1 (straight through weir valve) [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_diaphragm_valve_Crane(D=.1, style=0) 2.4269804835982565 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if D is None and fd is None: raise ValueError('Either `D` or `fd` must be specified') if fd is None: fd = ft_Crane(D) try: K = diaphragm_valve_Crane_coeffs[style]*fd except KeyError: raise KeyError('Accepted valve styles are 0 (weir) or 1 (straight through) only') return K foot_valve_Crane_coeffs = {0: 420.0, 1: 75.0} def K_foot_valve_Crane(D=None, fd=None, style=0): r'''Returns the loss coefficient for a foot valve of either poppet disc (`style` = 0) or hinged-disk (`style` = 1) as shown in [1]_. Both valves are specified include the loss of the attached strainer. .. math:: K = K_1 = K_2 = N\cdot f_d For style 0 (poppet disk), N = 420; for style 1 (hinged disk), N = 75. Parameters ---------- D : float, optional Diameter of the pipe section the valve in mounted in; the same as the line size [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional Either 0 (poppet disk foot valve) or 1 (hinged disk foot valve) [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_foot_valve_Crane(D=0.2, style=0) 5.912221498436275 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if D is None and fd is None: raise ValueError('Either `D` or `fd` must be specified') if fd is None: fd = ft_Crane(D) try: K = foot_valve_Crane_coeffs[style]*fd except KeyError: raise KeyError('Accepted valve styles are 0 (poppet disk) or 1 (hinged disk) only') return K butterfly_valve_Crane_coeffs = {0: (45.0, 35.0, 25.0), 1: (74.0, 52.0, 43.0), 2: (218.0, 96.0, 55.0)} def K_butterfly_valve_Crane(D, fd=None, style=0): r'''Returns the loss coefficient for a butterfly valve as shown in [1]_. Three different types are supported; Centric (`style` = 0), double offset (`style` = 1), and triple offset (`style` = 2). .. math:: K = N\cdot f_d N is obtained from the following table: +------------+---------+---------------+---------------+ | Size range | Centric | Double offset | Triple offset | +============+=========+===============+===============+ | 2" - 8" | 45 | 74 | 218 | +------------+---------+---------------+---------------+ | 10" - 14" | 35 | 52 | 96 | +------------+---------+---------------+---------------+ | 16" - 24" | 25 | 43 | 55 | +------------+---------+---------------+---------------+ The actual change of coefficients happen at <= 9" and <= 15". Parameters ---------- D : float Diameter of the pipe section the valve in mounted in; the same as the line size [m] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional Either 0 (centric), 1 (double offset), or 2 (triple offset) [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_butterfly_valve_Crane(D=.1, style=2) 3.5508841974793284 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D) try: c1, c2, c3 = butterfly_valve_Crane_coeffs[style] except KeyError: raise KeyError('Accepted valve styles are 0 (centric), 1 (double offset), or 2 (triple offset) only.') if D <= 0.2286: # 2-8 inches, split at 9 inch return c1*fd elif D <= 0.381: # 10-14 inches, split at 15 inch return c2*fd else: # 16-18 inches return c3*fd plug_valve_Crane_coeffs = {0: 18.0, 1: 30.0, 2: 90.0} def K_plug_valve_Crane(D1, D2, angle, fd=None, style=0): r'''Returns the loss coefficient for a plug valve or cock valve as shown in [1]_. If β = 1: .. math:: K = K_1 = K_2 = Nf_d Otherwise: .. math:: K_2 = \frac{K + 0.5\sqrt{\sin\frac{\theta}{2}}(1-\beta^2) + (1-\beta^2)^2}{\beta^4} Three types of plug valves are supported. For straight-through plug valves (`style` = 0), N = 18. For 3-way, flow straight through (`style` = 1) plug valves, N = 30. For 3-way, flow 90° valves (`style` = 2) N = 90. Parameters ---------- D1 : float Diameter of the valve plug bore (must be equal to or smaller than `D2`), [m] D2 : float Diameter of the pipe attached to the valve, [m] angle : float Angle formed by the reducer in the valve, [degrees] fd : float, optional Darcy friction factor calculated for the actual pipe flow in clean steel (roughness = 0.0018 inch) in the fully developed turbulent region; do not specify this to use the original Crane friction factor!, [-] style : int, optional Either 0 (straight-through), 1 (3-way, flow straight-through), or 2 (3-way, flow 90°) [-] Returns ------- K : float Loss coefficient with respect to the pipe inside diameter [-] Notes ----- This method is not valid in the laminar regime and the pressure drop will be underestimated in those conditions. Examples -------- >>> K_plug_valve_Crane(D1=.01, D2=.02, angle=50) 19.80513692341617 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' if fd is None: fd = ft_Crane(D2) beta = D1/D2 try: K = plug_valve_Crane_coeffs[style]*fd except KeyError: raise KeyError('Accepted valve styles are 0 (straight-through), 1 (3-way, flow straight-through), or 2 (3-way, flow 90°)') angle = radians(angle) if beta == 1: return K else: return (K + 0.5*(sin(angle/2))**0.5 * (1 - beta**2) + (1-beta**2)**2)/beta**4 def v_lift_valve_Crane(rho, D1=None, D2=None, style='swing check angled'): r'''Calculates the approximate minimum velocity required to lift the disk or other controlling element of a check valve to a fully open, stable, position according to the Crane method [1]_. .. math:: v_{min} = N\cdot \text{m/s} \cdot \sqrt{\frac{\text{kg/m}^3}{\rho}} .. math:: v_{min} = N\beta^2 \cdot \text{m/s} \cdot \sqrt{\frac{\text{kg/m}^3}{\rho}} See the notes for the definition of values of N and which check valves use which formulas. Parameters ---------- rho : float Density of the fluid [kg/m^3] D1 : float, optional Diameter of the valve bore (must be equal to or smaller than `D2`), [m] D2 : float, optional Diameter of the pipe attached to the valve, [m] style : str The type of valve; one of ['swing check angled', 'swing check straight', 'swing check UL', 'lift check straight', 'lift check angled', 'tilting check 5°', 'tilting check 15°', 'stop check globe 1', 'stop check angle 1', 'stop check globe 2', 'stop check angle 2', 'stop check globe 3', 'stop check angle 3', 'foot valve poppet disc', 'foot valve hinged disc'], [-] Returns ------- v_min : float Approximate minimum velocity required to keep the disc fully lifted, preventing chattering and wear [m/s] Notes ----- This equation is not dimensionless. +--------------------------+-----+------+ | Name/string | N | Full | +==========================+=====+======+ | 'swing check angled' | 45 | No | +--------------------------+-----+------+ | 'swing check straight' | 75 | No | +--------------------------+-----+------+ | 'swing check UL' | 120 | No | +--------------------------+-----+------+ | 'lift check straight' | 50 | Yes | +--------------------------+-----+------+ | 'lift check angled' | 170 | Yes | +--------------------------+-----+------+ | 'tilting check 5°' | 100 | No | +--------------------------+-----+------+ | 'tilting check 15°' | 40 | No | +--------------------------+-----+------+ | 'stop check globe 1' | 70 | Yes | +--------------------------+-----+------+ | 'stop check angle 1' | 95 | Yes | +--------------------------+-----+------+ | 'stop check globe 2' | 75 | Yes | +--------------------------+-----+------+ | 'stop check angle 2' | 75 | Yes | +--------------------------+-----+------+ | 'stop check globe 3' | 170 | Yes | +--------------------------+-----+------+ | 'stop check angle 3' | 170 | Yes | +--------------------------+-----+------+ | 'foot valve poppet disc' | 20 | No | +--------------------------+-----+------+ | 'foot valve hinged disc' | 45 | No | +--------------------------+-----+------+ Examples -------- >>> v_lift_valve_Crane(rho=998.2, D1=0.0627, D2=0.0779, style='lift check straight') 1.0252301935349286 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' specific_volume = 1./rho if D1 is not None and D2 is not None: beta = D1/D2 beta2 = beta*beta if style == 'swing check angled': return 45.0*specific_volume**0.5 elif style == 'swing check straight': return 75.0*specific_volume**0.5 elif style == 'swing check UL': return 120.0*specific_volume**0.5 elif style == 'lift check straight': return 50.0*beta2*specific_volume**0.5 elif style == 'lift check angled': return 170.0*beta2*specific_volume**0.5 elif style == 'tilting check 5°': return 100.0*specific_volume**0.5 elif style == 'tilting check 15°': return 40.0*specific_volume**0.5 elif style == 'stop check globe 1': return 70.0*beta2*specific_volume**0.5 elif style == 'stop check angle 1': return 95.0*beta2*specific_volume**0.5 elif style in ('stop check globe 2', 'stop check angle 2'): return 75.0*beta2*specific_volume**0.5 elif style in ('stop check globe 3', 'stop check angle 3'): return 170.0*beta2*specific_volume**0.5 elif style == 'foot valve poppet disc': return 20.0*specific_volume**0.5 elif style == 'foot valve hinged disc': return 45.0*specific_volume**0.5 branch_converging_Crane_Fs = [1.74, 1.41, 1, 0] branch_converging_Crane_angles = [30, 45, 60, 90] def K_branch_converging_Crane(D_run, D_branch, Q_run, Q_branch, angle=90): r'''Returns the loss coefficient for the branch of a converging tee or wye according to the Crane method [1]_. .. math:: K_{branch} = C\left[1 + D\left(\frac{Q_{branch}}{Q_{comb}\cdot \beta_{branch}^2}\right)^2 - E\left(1 - \frac{Q_{branch}}{Q_{comb}} \right)^2 - \frac{F}{\beta_{branch}^2} \left(\frac{Q_{branch}} {Q_{comb}}\right)^2\right] .. math:: \beta_{branch} = \frac{D_{branch}}{D_{comb}} In the above equation, D = 1, E = 2. See the notes for definitions of F and C. Parameters ---------- D_run : float Diameter of the straight-through inlet portion of the tee or wye [m] D_branch : float Diameter of the pipe attached at an angle to the straight-through, [m] Q_run : float Volumetric flow rate in the straight-through inlet of the tee or wye, [m^3/s] Q_branch : float Volumetric flow rate in the pipe attached at an angle to the straight- through, [m^3/s] angle : float, optional Angle the branch makes with the straight-through (tee=90, wye<90) [degrees] Returns ------- K : float Loss coefficient of branch with respect to the velocity and inside diameter of the combined flow outlet [-] Notes ----- F is linearly interpolated from the table of angles below. There is no cutoff to prevent angles from being larger or smaller than 30 or 90 degrees. +-----------+------+ | Angle [°] | | +===========+======+ | 30 | 1.74 | +-----------+------+ | 45 | 1.41 | +-----------+------+ | 60 | 1 | +-----------+------+ | 90 | 0 | +-----------+------+ If :math:`\beta_{branch}^2 \le 0.35`, C = 1 If :math:`\beta_{branch}^2 > 0.35` and :math:`Q_{branch}/Q_{comb} > 0.4`, C = 0.55. If neither of the above conditions are met: .. math:: C = 0.9\left(1 - \frac{Q_{branch}}{Q_{comb}}\right) Note that there is an error in the text of [1]_; the errata can be obtained here: http://www.flowoffluids.com/publications/tp-410-errata.aspx Examples -------- Example 7-35 of [1]_. A DN100 schedule 40 tee has 1135 liters/minute of water passing through the straight leg, and 380 liters/minute of water converging with it through a 90° branch. Calculate the loss coefficient in the branch. The calculated value there is -0.04026. >>> K_branch_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633) -0.04044108513625682 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = (D_branch/D_run) beta2 = beta*beta Q_comb = Q_run + Q_branch Q_ratio = Q_branch/Q_comb if beta2 <= 0.35: C = 1. elif Q_ratio <= 0.4: C = 0.9*(1 - Q_ratio) else: C = 0.55 D, E = 1., 2. F = interp(angle, branch_converging_Crane_angles, branch_converging_Crane_Fs) K = C*(1. + D*(Q_ratio/beta2)**2 - E*(1. - Q_ratio)**2 - F/beta2*Q_ratio**2) return K run_converging_Crane_Fs = [1.74, 1.41, 1.0] run_converging_Crane_angles = [30.0, 45.0, 60.0] def K_run_converging_Crane(D_run, D_branch, Q_run, Q_branch, angle=90): r'''Returns the loss coefficient for the run of a converging tee or wye according to the Crane method [1]_. .. math:: K_{branch} = C\left[1 + D\left(\frac{Q_{branch}}{Q_{comb}\cdot \beta_{branch}^2}\right)^2 - E\left(1 - \frac{Q_{branch}}{Q_{comb}} \right)^2 - \frac{F}{\beta_{branch}^2} \left(\frac{Q_{branch}} {Q_{comb}}\right)^2\right] .. math:: \beta_{branch} = \frac{D_{branch}}{D_{comb}} In the above equation, C=1, D=0, E=1. See the notes for definitions of F and also the special case of 90°. Parameters ---------- D_run : float Diameter of the straight-through inlet portion of the tee or wye [m] D_branch : float Diameter of the pipe attached at an angle to the straight-through, [m] Q_run : float Volumetric flow rate in the straight-through inlet of the tee or wye, [m^3/s] Q_branch : float Volumetric flow rate in the pipe attached at an angle to the straight- through, [m^3/s] angle : float, optional Angle the branch makes with the straight-through (tee=90, wye<90) [degrees] Returns ------- K : float Loss coefficient of run with respect to the velocity and inside diameter of the combined flow outlet [-] Notes ----- F is linearly interpolated from the table of angles below. There is no cutoff to prevent angles from being larger or smaller than 30 or 60 degrees. The switch to the special 90° happens at 75°. +-----------+------+ | Angle [°] | | +===========+======+ | 30 | 1.74 | +-----------+------+ | 45 | 1.41 | +-----------+------+ | 60 | 1 | +-----------+------+ For the special case of 90°, the formula used is as follows. .. math:: K_{run} = 1.55\left(\frac{Q_{branch}}{Q_{comb}} \right) - \left(\frac{Q_{branch}}{Q_{comb}}\right)^2 Examples -------- Example 7-35 of [1]_. A DN100 schedule 40 tee has 1135 liters/minute of water passing through the straight leg, and 380 liters/minute of water converging with it through a 90° branch. Calculate the loss coefficient in the run. The calculated value there is 0.03258. >>> K_run_converging_Crane(0.1023, 0.1023, 0.018917, 0.00633) 0.32575847854551254 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = (D_branch/D_run) beta2 = beta*beta Q_comb = Q_run + Q_branch Q_ratio = Q_branch/Q_comb if angle < 75.0: C = 1.0 else: return 1.55*(Q_ratio) - Q_ratio*Q_ratio D, E = 0.0, 1.0 F = interp(angle, run_converging_Crane_angles, run_converging_Crane_Fs) K = C*(1. + D*(Q_ratio/beta2)**2 - E*(1. - Q_ratio)**2 - F/beta2*Q_ratio**2) return K def K_branch_diverging_Crane(D_run, D_branch, Q_run, Q_branch, angle=90): r'''Returns the loss coefficient for the branch of a diverging tee or wye according to the Crane method [1]_. .. math:: K_{branch} = G\left[1 + H\left(\frac{Q_{branch}}{Q_{comb} \beta_{branch}^2}\right)^2 - J\left(\frac{Q_{branch}}{Q_{comb} \beta_{branch}^2}\right)\cos\theta\right] .. math:: \beta_{branch} = \frac{D_{branch}}{D_{comb}} See the notes for definitions of H, J, and G. Parameters ---------- D_run : float Diameter of the straight-through inlet portion of the tee or wye [m] D_branch : float Diameter of the pipe attached at an angle to the straight-through, [m] Q_run : float Volumetric flow rate in the straight-through outlet of the tee or wye, [m^3/s] Q_branch : float Volumetric flow rate in the pipe attached at an angle to the straight- through, [m^3/s] angle : float, optional Angle the branch makes with the straight-through (tee=90, wye<90) [degrees] Returns ------- K : float Loss coefficient of branch with respect to the velocity and inside diameter of the combined flow inlet [-] Notes ----- If :math:`\beta_{branch} = 1, \theta = 90^\circ`, H = 0.3 and J = 0. Otherwise H = 1 and J = 2. G is determined according to the following pseudocode: .. code-block:: python if angle < 75: if beta2 <= 0.35: if Q_ratio <= 0.4: G = 1.1 - 0.7*Q_ratio else: G = 0.85 else: if Q_ratio <= 0.6: G = 1.0 - 0.6*Q_ratio else: G = 0.6 else: if beta2 <= 2/3.: G = 1 else: G = 1 + 0.3*Q_ratio*Q_ratio Note that there are several errors in the text of [1]_; the errata can be obtained here: http://www.flowoffluids.com/publications/tp-410-errata.aspx Examples -------- Example 7-36 of [1]_. A DN150 schedule 80 wye has 1515 liters/minute of water exiting the straight leg, and 950 liters/minute of water exiting it through a 45° branch. Calculate the loss coefficient in the branch. The calculated value there is 0.4640. >>> K_branch_diverging_Crane(0.146, 0.146, 0.02525, 0.01583, angle=45) 0.4639895627496694 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = (D_branch/D_run) beta2 = beta*beta Q_comb = Q_run + Q_branch Q_ratio = Q_branch/Q_comb if angle < 60 or beta <= 2/3.: H, J = 1., 2. else: H, J = 0.3, 0 if angle < 75: if beta2 <= 0.35: if Q_ratio <= 0.4: G = 1.1 - 0.7*Q_ratio else: G = 0.85 else: if Q_ratio <= 0.6: G = 1.0 - 0.6*Q_ratio else: G = 0.6 else: if beta2 <= 2/3.: G = 1 else: G = 1 + 0.3*Q_ratio*Q_ratio angle_rad = radians(angle) K_branch = G*(1 + H*(Q_ratio/beta2)**2 - J*(Q_ratio/beta2)*cos(angle_rad)) return K_branch def K_run_diverging_Crane(D_run, D_branch, Q_run, Q_branch, angle=90): r'''Returns the loss coefficient for the run of a converging tee or wye according to the Crane method [1]_. .. math:: K_{run} = M \left(\frac{Q_{branch}}{Q_{comb}}\right)^2 .. math:: \beta_{branch} = \frac{D_{branch}}{D_{comb}} See the notes for the definition of M. Parameters ---------- D_run : float Diameter of the straight-through inlet portion of the tee or wye [m] D_branch : float Diameter of the pipe attached at an angle to the straight-through, [m] Q_run : float Volumetric flow rate in the straight-through outlet of the tee or wye, [m^3/s] Q_branch : float Volumetric flow rate in the pipe attached at an angle to the straight- through, [m^3/s] angle : float, optional Angle the branch makes with the straight-through (tee=90, wye<90) [degrees] Returns ------- K : float Loss coefficient of run with respect to the velocity and inside diameter of the combined flow inlet [-] Notes ----- M is calculated according to the following pseudocode: .. code-block:: python if beta*beta <= 0.4: M = 0.4 elif Q_branch/Q_comb <= 0.5: M = 2*(2*Q_branch/Q_comb - 1) else: M = 0.3*(2*Q_branch/Q_comb - 1) Examples -------- Example 7-36 of [1]_. A DN150 schedule 80 wye has 1515 liters/minute of water exiting the straight leg, and 950 liters/minute of water exiting it through a 45° branch. Calculate the loss coefficient in the branch. The calculated value there is -0.06809. >>> K_run_diverging_Crane(0.146, 0.146, 0.02525, 0.01583, angle=45) -0.06810067607153049 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' beta = (D_branch/D_run) beta2 = beta*beta Q_comb = Q_run + Q_branch Q_ratio = Q_branch/Q_comb if beta2 <= 0.4: M = 0.4 elif Q_ratio <= 0.5: M = 2.*(2.*Q_ratio - 1.) else: M = 0.3*(2.*Q_ratio - 1.) return M*Q_ratio*Q_ratio fluids-0.1.78/fluids/pump.py0000644000175000017500000020043413632560624014464 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log from fluids.constants import hp from fluids.numerics import interp, tck_interp2d_linear, bisplev __all__ = ['VFD_efficiency', 'CSA_motor_efficiency', 'motor_efficiency_underloaded', 'Corripio_pump_efficiency', 'Corripio_motor_efficiency', 'specific_speed', 'specific_diameter', 'speed_synchronous', 'nema_sizes', 'nema_sizes_hp', 'motor_round_size', 'nema_min_P', 'nema_high_P', 'plug_types', 'voltages_1_phase_residential', 'voltages_3_phase', 'frequencies', 'residential_power', 'industrial_power', 'current_ideal'] def Corripio_pump_efficiency(Q): r'''Estimates pump efficiency using the method in Corripio (1982) as shown in [1]_ and originally in [2]_. Estimation only .. math:: \eta_P = -0.316 + 0.24015\ln(Q) - 0.01199\ln(Q)^2 Parameters ---------- Q : float Volumetric flow rate, [m^3/s] Returns ------- efficiency : float Pump efficiency, [-] Notes ----- For Centrifugal pumps only. Range is 50 to 5000 GPM, but input variable is in metric. Values above this range and below this range will go negative, although small deviations are acceptable. Example 16.5 in [1]_. Examples -------- >>> Corripio_pump_efficiency(461./15850.323) 0.705888867095162 References ---------- .. [1] Seider, Warren D., J. D. Seader, and Daniel R. Lewin. Product and Process Design Principles: Synthesis, Analysis, and Evaluation. 2 edition. New York: Wiley, 2003. .. [2] Corripio, A.B., K.S. Chrien, and L.B. Evans, "Estimate Costs of Centrifugal Pumps and Electric Motors," Chem. Eng., 89, 115-118, February 22 (1982). ''' Q *= 15850.323 logQ = log(Q) return -0.316 + 0.24015*logQ - 0.01199*logQ*logQ def Corripio_motor_efficiency(P): r'''Estimates motor efficiency using the method in Corripio (1982) as shown in [1]_ and originally in [2]_. Estimation only. .. math:: \eta_M = 0.8 + 0.0319\ln(P_B) - 0.00182\ln(P_B)^2 Parameters ---------- P : float Power, [W] Returns ------- efficiency : float Motor efficiency, [-] Notes ----- Example 16.5 in [1]_. Examples -------- >>> Corripio_motor_efficiency(137*745.7) 0.9128920875679222 References ---------- .. [1] Seider, Warren D., J. D. Seader, and Daniel R. Lewin. Product and Process Design Principles: Synthesis, Analysis, and Evaluation. 2 edition. New York: Wiley, 2003. .. [2] Corripio, A.B., K.S. Chrien, and L.B. Evans, "Estimate Costs of Centrifugal Pumps and Electric Motors," Chem. Eng., 89, 115-118, February 22 (1982). ''' P = P/745.69987 logP = log(P) return 0.8 + 0.0319*logP - 0.00182*logP*logP VFD_efficiencies = [[0.31, 0.77, 0.86, 0.9, 0.91, 0.93, 0.94], [0.35, 0.8, 0.88, 0.91, 0.92, 0.94, 0.95], [0.41, 0.83, 0.9, 0.93, 0.94, 0.95, 0.96], [0.47, 0.86, 0.93, 0.94, 0.95, 0.96, 0.97], [0.5, 0.88, 0.93, 0.95, 0.95, 0.96, 0.97], [0.46, 0.86, 0.92, 0.95, 0.95, 0.96, 0.97], [0.51, 0.87, 0.92, 0.95, 0.95, 0.96, 0.97], [0.47, 0.86, 0.93, 0.95, 0.96, 0.97, 0.97], [0.55, 0.89, 0.94, 0.95, 0.96, 0.97, 0.97], [0.61, 0.91, 0.95, 0.96, 0.96, 0.97, 0.97], [0.61, 0.91, 0.95, 0.96, 0.96, 0.97, 0.97]] VFD_efficiency_loads = [0.016, 0.125, 0.25, 0.42, 0.5, 0.75, 1.0] VFD_efficiency_powers = [3.0, 5.0, 10.0, 20.0, 30.0, 50.0, 60.0, 75.0, 100.0, 200.0, 400.0] VFD_efficiency_tck = tck_interp2d_linear(VFD_efficiency_loads, VFD_efficiency_powers, VFD_efficiencies) def VFD_efficiency(P, load=1): r'''Returns the efficiency of a Variable Frequency Drive according to [1]_. These values are generic, and not standardized as minimum values. Older VFDs often have much worse performance. Parameters ---------- P : float Power, [W] load : float, optional Fraction of motor's rated electrical capacity being used Returns ------- efficiency : float VFD efficiency, [-] Notes ----- The use of a VFD does change the characteristics of a pump curve's efficiency, but this has yet to be quantified. The effect is small. This value should be multiplied by the product of the pump and motor efficiency to determine the overall efficiency. Efficiency table is in units of hp, so a conversion is performed internally. If load not specified, assumed 1 - where maximum efficiency occurs. Table extends down to 3 hp and up to 400 hp; values outside these limits are rounded to the nearest known value. Values between standardized sizes are interpolated linearly. Load values extend down to 0.016. The table used is for Pulse Width Modulation (PWM) VFDs. Examples -------- >>> VFD_efficiency(10*hp) 0.96 >>> VFD_efficiency(100*hp, load=0.2) 0.92 References ---------- .. [1] GoHz.com. Variable Frequency Drive Efficiency. http://www.variablefrequencydrive.org/vfd-efficiency ''' P = P/hp # convert to hp if P < 3: P = 3 elif P > 400: P = 400 if load < 0.016: load = 0.016 return round(bisplev(load, P, VFD_efficiency_tck), 4) nema_sizes_hp = [0.25, 0.3333333333333333, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 5.5, 7.5, 10.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0, 75.0, 100.0, 125.0, 150.0, 175.0, 200.0, 250.0, 300.0, 350.0, 400.0, 450.0, 500.0] '''list: all NEMA motor sizes in increasing order, in horsepower. ''' nema_sizes = [i*hp for i in nema_sizes_hp] '''list: all NEMA motor sizes in increasing order, in Watts. ''' def motor_round_size(P): r'''Rounds up the power for a motor to the nearest NEMA standard power. The returned power is always larger or equal to the input power. Parameters ---------- P : float Power, [W] Returns ------- P_actual : float Actual power, equal to or larger than input [W] Notes ----- An exception is raised if the power required is larger than any of the NEMA sizes. Larger motors are available, but are unstandardized. Examples -------- >>> motor_round_size(1E5) 111854.98073734052 References ---------- .. [1] Natural Resources Canada. Electric Motors (1 to 500 HP/0.746 to 375 kW). As modified 2015-12-17. https://www.nrcan.gc.ca/energy/regulations-codes-standards/products/6885 ''' for P_actual in nema_sizes: if P_actual >= P: return P_actual raise Exception('Required power is larger than can be provided with one motor') nema_high_P = [1, 1.5, 2, 3, 4, 5, 5.5, 7.5, 10, 15, 20, 25, 30, 40, 50, 60, 75, 100, 125, 150, 175, 200] nema_high_full_open_2p = [0.77, 0.84, 0.855, 0.855, 0.865, 0.865, 0.865, 0.885, 0.895, 0.902, 0.91, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.936, 0.941, 0.941, 0.95, 0.95] nema_high_full_open_4p = [0.855, 0.865, 0.865, 0.895, 0.895, 0.895, 0.895, 0.91, 0.917, 0.93, 0.93, 0.936, 0.941, 0.941, 0.945, 0.95, 0.95, 0.954, 0.954, 0.958, 0.958, 0.958] nema_high_full_open_6p = [0.825, 0.865, 0.875, 0.885, 0.895, 0.895, 0.895, 0.902, 0.917, 0.917, 0.924, 0.93, 0.936, 0.941, 0.941, 0.945, 0.945, 0.95, 0.95, 0.954, 0.954, 0.954] nema_high_full_closed_2p = [0.77, 0.84, 0.855, 0.865, 0.885, 0.885, 0.885, 0.895, 0.902, 0.91, 0.91, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.941, 0.95, 0.95, 0.954, 0.954] nema_high_full_closed_4p = [0.855, 0.865, 0.865, 0.895, 0.895, 0.895, 0.895, 0.917, 0.917, 0.924, 0.93, 0.936, 0.936, 0.941, 0.945, 0.95, 0.954, 0.954, 0.954, 0.958, 0.962, 0.962] nema_high_full_closed_6p = [0.825, 0.875, 0.885, 0.895, 0.895, 0.895, 0.895, 0.91, 0.91, 0.917, 0.917, 0.93, 0.93, 0.941, 0.941, 0.945, 0.945, 0.95, 0.95, 0.958, 0.958, 0.958] nema_min_P = [1, 1.5, 2, 3, 4, 5, 5.5, 7.5, 10, 15, 20, 25, 30, 40, 50, 60, 75, 100, 125, 150, 175, 200, 250, 300, 350, 400, 450, 500] nema_min_full_open_2p = [0.755, 0.825, 0.84, 0.84, 0.84, 0.855, 0.855, 0.875, 0.885, 0.895, 0.902, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.93, 0.936, 0.936, 0.945, 0.945, 0.945, 0.95, 0.95, 0.954, 0.958, 0.958] nema_min_full_open_4p = [0.825, 0.84, 0.84, 0.865, 0.865, 0.875, 0.875, 0.885, 0.895, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.941, 0.941, 0.945, 0.95, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.958, 0.958] nema_min_full_open_6p = [0.8, 0.84, 0.855, 0.865, 0.865, 0.875, 0.875, 0.885, 0.902, 0.902, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.945, 0.945, 0.945, 0.954, 0.954, 0.954, 0.954, 0.954, 0.954] nema_min_full_open_8p = [0.74, 0.755, 0.855, 0.865, 0.865, 0.875, 0.875, 0.885, 0.895, 0.895, 0.902, 0.902, 0.91, 0.91, 0.917, 0.924, 0.936, 0.936, 0.936, 0.936, 0.936, 0.936, 0.945, 0.945, 0.945, 0.945, 0.945, 0.945] nema_min_full_closed_2p = [0.755, 0.825, 0.84, 0.855, 0.855, 0.875, 0.875, 0.885, 0.895, 0.902, 0.902, 0.91, 0.91, 0.917, 0.924, 0.93, 0.93, 0.936, 0.945, 0.945, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.954, 0.954] nema_min_full_closed_4p = [0.825, 0.84, 0.84, 0.875, 0.875, 0.875, 0.875, 0.895, 0.895, 0.91, 0.91, 0.924, 0.924, 0.93, 0.93, 0.936, 0.941, 0.945, 0.945, 0.95, 0.95, 0.95, 0.95, 0.954, 0.954, 0.954, 0.954, 0.958] nema_min_full_closed_6p = [0.8, 0.855, 0.865, 0.875, 0.875, 0.875, 0.875, 0.895, 0.895, 0.902, 0.902, 0.917, 0.917, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95, 0.95] nema_min_full_closed_8p = [0.74, 0.77, 0.825, 0.84, 0.84, 0.855, 0.855, 0.855, 0.885, 0.885, 0.895, 0.895, 0.91, 0.91, 0.917, 0.917, 0.93, 0.93, 0.936, 0.936, 0.941, 0.941, 0.945, 0.945, 0.945, 0.945, 0.945, 0.945] nema_min_full_open_2p_i = (nema_min_P, nema_min_full_open_2p) nema_min_full_open_4p_i = (nema_min_P, nema_min_full_open_4p) nema_min_full_open_6p_i = (nema_min_P, nema_min_full_open_6p) nema_min_full_open_8p_i = (nema_min_P, nema_min_full_open_8p) nema_min_full_closed_2p_i = (nema_min_P, nema_min_full_closed_2p) nema_min_full_closed_4p_i = (nema_min_P, nema_min_full_closed_4p) nema_min_full_closed_6p_i = (nema_min_P, nema_min_full_closed_6p) nema_min_full_closed_8p_i = (nema_min_P, nema_min_full_closed_8p) def CSA_motor_efficiency(P, closed=False, poles=2, high_efficiency=False): r'''Returns the efficiency of a NEMA motor according to [1]_. These values are standards, but are only for full-load operation. Parameters ---------- P : float Power, [W] closed : bool, optional Whether or not the motor is enclosed poles : int, optional The number of poles of the motor high_efficiency : bool, optional Whether or not to look up the high-efficiency value Returns ------- efficiency : float Guaranteed full-load motor efficiency, [-] Notes ----- Criteria for being required to meet the high-efficiency standard is: * Designed for continuous operation * Operates by three-phase induction * Is a squirrel-cage or cage design * Is NEMA type A, B, or C with T or U frame; or IEC design N or H * Is designed for single-speed operation * Has a nominal voltage of less than 600 V AC * Has a nominal frequency of 60 Hz or 50/60 Hz * Has 2, 4, or 6 pole construction * Is either open or closed Pretty much every motor is required to meet the low-standard efficiency table, however. Several low-efficiency standard high power values were added to allow for easy programming; values are the last listed efficiency in the table. Examples -------- >>> CSA_motor_efficiency(100*hp) 0.93 >>> CSA_motor_efficiency(100*hp, closed=True, poles=6, high_efficiency=True) 0.95 References ---------- .. [1] Natural Resources Canada. Electric Motors (1 to 500 HP/0.746 to 375 kW). As modified 2015-12-17. https://www.nrcan.gc.ca/energy/regulations-codes-standards/products/6885 ''' P = P/hp # This could be replaced by a dict and a jump list if high_efficiency: if closed: if poles == 2: efficiency = interp(P, nema_high_P, nema_high_full_closed_2p) elif poles == 4: efficiency = interp(P, nema_high_P, nema_high_full_closed_4p) elif poles == 6: efficiency = interp(P, nema_high_P, nema_high_full_closed_6p) else: if poles == 2: efficiency = interp(P, nema_high_P, nema_high_full_open_2p) elif poles == 4: efficiency = interp(P, nema_high_P, nema_high_full_open_4p) elif poles == 6: efficiency = interp(P, nema_high_P, nema_high_full_open_6p) else: if closed: if poles == 2: efficiency = interp(P, nema_min_P, nema_min_full_closed_2p) elif poles == 4: efficiency = interp(P, nema_min_P, nema_min_full_closed_4p) elif poles == 6: efficiency = interp(P, nema_min_P, nema_min_full_closed_6p) elif poles == 8: efficiency = interp(P, nema_min_P, nema_min_full_closed_8p) else: if poles == 2: efficiency = interp(P, nema_min_P, nema_min_full_open_2p) elif poles == 4: efficiency = interp(P, nema_min_P, nema_min_full_open_4p) elif poles == 6: efficiency = interp(P, nema_min_P, nema_min_full_open_6p) elif poles == 8: efficiency = interp(P, nema_min_P, nema_min_full_open_8p) return round(efficiency, 4) _to_1 = [0.015807118828266818, 4.3158627514876216, -8.5612097969025438, 8.2040355039147386, -3.0147603718043068] _to_5 = [0.015560190519232379, 4.5699731811493152, -7.6800154569463883, 5.4701698738380813, -1.3630071852989643] _to_10 = [0.059917274403963446, 6.356781885851186, -17.099192527703369, 20.707077651470666, -9.2215133149377841] _to_25 = [0.29536141765389839, 4.9918188632064329, -13.785081664656504, 16.908273659093812, -7.5816775136809609] _to_60 = [0.46934299949154384, 4.0298663805446004, -11.632822556859477, 14.616967043793032, -6.6284514347522245] _to_infty = [0.68235730304242914, 2.4402956771025748, -6.8306770996860182, 8.2108432911172713, -3.5629309804411577] _efficiency_lists = [_to_1, _to_5, _to_10, _to_25, _to_60, _to_infty] _efficiency_ones = [0.9218102, 0.64307597, 0.61724113, 0.61569791, 0.6172238, 0.40648294] def motor_efficiency_underloaded(P, load=0.5): r'''Returns the efficiency of a motor operating under its design power according to [1]_.These values are generic; manufacturers usually list 4 points on their product information, but full-scale data is hard to find and not regulated. Parameters ---------- P : float Power, [W] load : float, optional Fraction of motor's rated electrical capacity being used Returns ------- efficiency : float Motor efficiency, [-] Notes ----- If the efficiency returned by this function is unattractive, use a VFD. The curves used here are polynomial fits to [1]_'s graph, and curves were available for the following motor power ranges: 0-1 hp, 1.5-5 hp, 10 hp, 15-25 hp, 30-60 hp, 75-100 hp If above the upper limit of one range, the next value is returned. Examples -------- >>> motor_efficiency_underloaded(1*hp) 0.8705179600980149 >>> motor_efficiency_underloaded(10.1*hp, .1) 0.6728425932357025 References ---------- .. [1] Washington State Energy Office. Energy-Efficient Electric Motor Selection Handbook. 1993. ''' P = P/hp if P <=1: i = 0 elif P <= 5: i = 1 elif P <= 10: i = 2 elif P <= 25: i = 3 elif P <= 60: i = 4 else: i = 5 if load > _efficiency_ones[i]: return 1 else: cs = _efficiency_lists[i] return cs[0] + cs[1]*load + cs[2]*load**2 + cs[3]*load**3 + cs[4]*load**4 def specific_speed(Q, H, n=3600.): r'''Returns the specific speed of a pump operating at a specified Q, H, and n. .. math:: n_S = \frac{n\sqrt{Q}}{H^{0.75}} Parameters ---------- Q : float Flow rate, [m^3/s] H : float Head generated by the pump, [m] n : float, optional Speed of pump [rpm] Returns ------- nS : float Specific Speed, [rpm*m^0.75/s^0.5] Notes ----- Defined at the BEP, with maximum fitting diameter impeller, at a given rotational speed. Examples -------- Example from [1]_. >>> specific_speed(0.0402, 100, 3550) 22.50823182748925 References ---------- .. [1] HI 1.3 Rotodynamic Centrifugal Pumps for Design and Applications ''' return n*Q**0.5/H**0.75 def specific_diameter(Q, H, D): r'''Returns the specific diameter of a pump operating at a specified Q, H, and D. .. math:: D_s = \frac{DH^{1/4}}{\sqrt{Q}} Parameters ---------- Q : float Flow rate, [m^3/s] H : float Head generated by the pump, [m] D : float Pump impeller diameter [m] Returns ------- Ds : float Specific diameter, [m^0.25/s^0.5] Notes ----- Used in certain pump sizing calculations. Examples -------- >>> specific_diameter(Q=0.1, H=10., D=0.1) 0.5623413251903491 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return D*H**0.25*Q**-0.5 def speed_synchronous(f, poles=2, phase=3): r'''Returns the synchronous speed of a synchronous motor according to [1]_. .. math:: N_s = \frac{120 f \cdot\text{phase}}{\text{poles}} Parameters ---------- f : float Line frequency, [Hz] poles : int, optional The number of poles of the motor phase : int, optional Line AC phase Returns ------- Ns : float Speed of synchronous motor, [rpm] Notes ----- Synchronous motors have no slip. Large synchronous motors are not self-starting. Examples -------- >>> speed_synchronous(50, poles=12) 1500.0 >>> speed_synchronous(60, phase=1) 3600.0 References ---------- .. [1] All About Circuits. Synchronous Motors. Chapter 13 - AC Motors http://www.allaboutcircuits.com/textbook/alternating-current/chpt-13/synchronous-motors/ ''' return 120.*f*phase/poles def current_ideal(P, V, phase=3, PF=1): r'''Returns the current drawn by a motor of power `P` operating at voltage `V`, with line AC of phase `phase` and power factor `PF` according to [1]_. Single-phase power: .. math:: I = \frac{P}{V \cdot \text{PF}} 3-phase power: .. math:: I = \frac{P}{V \cdot \text{PF} \sqrt{3}} Parameters ---------- P : float Power, [W] V : float Voltage, [V] phase : int, optional Line AC phase, either 1 or 3 PF : float, optional Power factor of motor Returns ------- I : float Power drawn by motor, [A] Notes ----- Does not include power used by the motor's fan, or startor, or internal losses. These are all significant. Examples -------- >>> current_ideal(V=120, P=1E4, PF=1, phase=1) 83.33333333333333 References ---------- .. [1] Electrical Construction, and Maintenance. "Calculating Single- and 3-Phase Parameters." April 1, 2008. http://ecmweb.com/basics/calculating-single-and-3-phase-parameters. ''' if phase not in [1, 3]: raise Exception('Only 1 and 3 phase power supported') if phase == 3: return P/(V*3**0.5*PF) else: return P/(V*PF) class CountryPower(object): '''Class to hold information on the residential or electrical data of a country. Data from Wikipedia, obtained in 2017. Parameters ---------- plugs : tuple(str) Tuple of residential plug letter codes in use in the country, [-] voltage : float or tuple(float) Voltage or voltages in common use of the country (residential data has one voltage; industrial data has multiple often), [V] freq : float The electrical frequency in use in the country, [Hz] country : str The name of the country, [-] ''' __slots__ = ('plugs', 'voltage', 'freq', 'country') def __repr__(self): return ('CountryPower(country="%s", voltage=%d, freq=%d, plugs=%s)' %(self.plugs, self.voltage, self.freq, self.country)) def __init__(self, country, voltage, freq, plugs=None): self.plugs = plugs self.voltage = voltage self.freq = freq self.country = country residential_power = { "at": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Austria"), "bj": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Benin"), "gh": CountryPower(plugs=('D', 'G'), voltage=230, freq=50, country="Ghana"), "sc": CountryPower(plugs=('G',), voltage=240, freq=50, country="Seychelles"), "bg": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Bulgaria"), "me": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Montenegro"), "fo": CountryPower(plugs=('C', 'E', 'F', 'K'), voltage=230, freq=50, country="Faroe Islands"), "ne": CountryPower(plugs=('A', 'B', 'C', 'D', 'E', 'F'), voltage=220, freq=50, country="Niger"), "za": CountryPower(plugs=('C', 'F', 'M', 'N'), voltage=230, freq=50, country="South Africa"), "az": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Azerbaijan"), "so": CountryPower(plugs=('C',), voltage=220, freq=50, country="Somalia"), "sn": CountryPower(plugs=('C', 'D', 'E', 'K'), voltage=230, freq=50, country="Senegal"), "np": CountryPower(plugs=('C', 'D', 'M'), voltage=230, freq=50, country="Nepal"), "sl": CountryPower(plugs=('D', 'G'), voltage=230, freq=50, country="Sierra Leone"), "be": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Belgium"), "vg": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="British Virgin Islands"), "bz": CountryPower(plugs=('A', 'B', 'G'), voltage=110, freq=60, country="Belize"), "tw": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Taiwan"), "bf": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Burkina Faso"), "ao": CountryPower(plugs=('C',), voltage=220, freq=50, country="Angola"), "gi": CountryPower(plugs=('C', 'G'), voltage=240, freq=50, country="Gibraltar"), "ee": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Estonia"), "bs": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Bahamas"), "ir": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Iran"), "sv": CountryPower(plugs=('A', 'B'), voltage=115, freq=60, country="El Salvador"), "am": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Armenia"), "is": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Iceland"), "uy": CountryPower(plugs=('C', 'F', 'I', 'L'), voltage=230, freq=50, country="Uruguay"), "mc": CountryPower(plugs=('C', 'D', 'E', 'F'), voltage=230, freq=50, country="Monaco"), "jm": CountryPower(plugs=('A', 'B'), voltage=110, freq=50, country="Jamaica"), "im": CountryPower(plugs=('G',), voltage=240, freq=50, country="Isle of Man"), "dm": CountryPower(plugs=('D', 'G'), voltage=230, freq=50, country="Dominica"), "mu": CountryPower(plugs=('C', 'G'), voltage=230, freq=50, country="Mauritius"), "cz": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Czech Republic"), "kh": CountryPower(plugs=('A', 'C', 'G'), voltage=230, freq=50, country="Cambodia"), "cf": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Central African Republic"), "se": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Sweden"), "uz": CountryPower(plugs=('C', 'I'), voltage=220, freq=50, country="Uzbekistan"), "sk": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Slovakia"), "ky": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Cayman Islands"), "tn": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Tunisia"), "do": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Dominican Republic"), "hu": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Hungary"), "af": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Afghanistan"), "et": CountryPower(plugs=('C', 'E', 'F', 'L'), voltage=220, freq=50, country="Ethiopia"), "tv": CountryPower(plugs=('I',), voltage=220, freq=50, country="Tuvalu"), "ad": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Andorra"), "hn": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Honduras"), "ls": CountryPower(plugs=('M',), voltage=220, freq=50, country="Lesotho"), "na": CountryPower(plugs=('D', 'M'), voltage=220, freq=50, country="Namibia"), "jo": CountryPower(plugs=('B', 'C', 'D', 'F', 'G', 'J'), voltage=230, freq=50, country="Jordan"), "pl": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Poland"), "bt": CountryPower(plugs=('C', 'D', 'F', 'G', 'M'), voltage=230, freq=50, country="Bhutan"), "fm": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Micronesia"), "no": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Norway"), "fk": CountryPower(plugs=('G',), voltage=240, freq=50, country="Falkland Islands"), "je": CountryPower(plugs=('G',), voltage=230, freq=50, country="Jersey"), "ye": CountryPower(plugs=('A', 'D', 'G'), voltage=230, freq=50, country="Yemen"), "cm": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Cameroon"), "md": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Moldova"), "cn": CountryPower(plugs=('A', 'I', 'C'), voltage=220, freq=50, country="China"), "gm": CountryPower(plugs=('G',), voltage=230, freq=50, country="Gambia"), "sg": CountryPower(plugs=('C', 'G', 'M'), voltage=230, freq=50, country="Singapore"), "tj": CountryPower(plugs=('C', 'F', 'I'), voltage=220, freq=50, country="Tajikistan"), "gt": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Guatemala"), "ma": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Morocco"), "mv": CountryPower(plugs=('D', 'G', 'J', 'K', 'L'), voltage=230, freq=50, country="Maldives"), "ga": CountryPower(plugs=('C',), voltage=220, freq=50, country="Gabon"), "bo": CountryPower(plugs=('A', 'C'), voltage=115, freq=50, country="Bolivia"), "ly": CountryPower(plugs=('C', 'D', 'F', 'L'), voltage=127, freq=50, country="Libya"), "rw": CountryPower(plugs=('C', 'J'), voltage=230, freq=50, country="Rwanda"), "cg": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Congo, Republic of the"), "kz": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Kazakhstan"), "jp": CountryPower(plugs=('A', 'B'), voltage=100, freq=50, country="Japan"), "co": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Colombia"), "sm": CountryPower(plugs=('C', 'F', 'L'), voltage=230, freq=50, country="San Marino"), "rs": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Serbia"), "gw": CountryPower(plugs=('C',), voltage=220, freq=50, country="Guinea-Bissau"), "kr": CountryPower(plugs=('C', 'F'), voltage=220, freq=60, country="South Korea"), "py": CountryPower(plugs=('C',), voltage=220, freq=50, country="Paraguay"), "lt": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Lithuania"), "tr": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Turkey"), "pa": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Panama"), "ba": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Bosnia and Herzegovina"), "vn": CountryPower(plugs=('A', 'C', 'G'), voltage=220, freq=50, country="Vietnam"), "iq": CountryPower(plugs=('C', 'D', 'G'), voltage=230, freq=50, country="Iraq"), "pk": CountryPower(plugs=('C', 'D', 'G', 'M'), voltage=230, freq=50, country="Pakistan"), "li": CountryPower(plugs=('C', 'J'), voltage=230, freq=50, country="Liechtenstein"), "mz": CountryPower(plugs=('C', 'F', 'M'), voltage=220, freq=50, country="Mozambique"), "au": CountryPower(plugs=('I',), voltage=230, freq=50, country="Australia"), "ws": CountryPower(plugs=('I',), voltage=230, freq=50, country="Samoa"), "sr": CountryPower(plugs=('C', 'F'), voltage=127, freq=60, country="Suriname"), "mn": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Mongolia"), "bw": CountryPower(plugs=('D', 'G', 'M'), voltage=230, freq=50, country="Botswana"), "gb": CountryPower(plugs=('G',), voltage=230, freq=50, country="United Kingdom"), "pg": CountryPower(plugs=('I',), voltage=240, freq=50, country="Papua New Guinea"), "dj": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Djibouti"), "th": CountryPower(plugs=('A', 'B', 'C', 'F'), voltage=220, freq=50, country="Thailand"), "us": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="United States"), "gr": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Greece"), "kn": CountryPower(plugs=('A', 'B', 'D', 'G'), voltage=110, freq=60, country="St. Kitts and Nevis"), "ug": CountryPower(plugs=('G',), voltage=240, freq=50, country="Uganda"), "ie": CountryPower(plugs=('G',), voltage=230, freq=50, country="Ireland"), "tg": CountryPower(plugs=('C',), voltage=220, freq=50, country="Togo"), "td": CountryPower(plugs=('C', 'D', 'E', 'F'), voltage=220, freq=50, country="Chad"), "la": CountryPower(plugs=('C', 'E', 'F'), voltage=230, freq=50, country="Laos"), "sy": CountryPower(plugs=('C', 'E', 'L'), voltage=220, freq=50, country="Syria"), "bm": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Bermuda"), "il": CountryPower(plugs=('C', 'H', 'M'), voltage=230, freq=50, country="Israel"), "nz": CountryPower(plugs=('I',), voltage=230, freq=50, country="New Zealand"), "mg": CountryPower(plugs=('C', 'D', 'E', 'J', 'K'), voltage=220, freq=50, country="Madagascar"), "ve": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Venezuela"), "dk": CountryPower(plugs=('C', 'E', 'F', 'K'), voltage=230, freq=50, country="Denmark"), "lb": CountryPower(plugs=('A', 'B', 'C', 'D', 'G'), voltage=220, freq=50, country="Lebanon"), "kp": CountryPower(plugs=('A', 'C', 'F'), voltage=110, freq=60, country="North Korea"), "vu": CountryPower(plugs=('C', 'G', 'I'), voltage=220, freq=50, country="Vanuatu"), "cu": CountryPower(plugs=('A', 'B', 'C'), voltage=110, freq=60, country="Cuba"), "pt": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Portugal"), "kw": CountryPower(plugs=('C', 'G'), voltage=240, freq=50, country="Kuwait"), "cd": CountryPower(plugs=('C', 'D', 'E'), voltage=220, freq=50, country="Congo, Democratic Republic of the"), "nr": CountryPower(plugs=('I',), voltage=240, freq=50, country="Nauru"), "si": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Slovenia"), "bd": CountryPower(plugs=('C', 'D', 'G', 'K'), voltage=220, freq=50, country="Bangladesh"), "al": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Albania"), "ec": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Ecuador"), "gy": CountryPower(plugs=('A', 'B', 'D', 'G'), voltage=110, freq=60, country="Guyana"), "bb": CountryPower(plugs=('A', 'B'), voltage=115, freq=50, country="Barbados"), "ke": CountryPower(plugs=('G',), voltage=240, freq=50, country="Kenya"), "mx": CountryPower(plugs=('A', 'B'), voltage=127, freq=60, country="Mexico"), "gq": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Equatorial Guinea"), "gn": CountryPower(plugs=('C', 'F', 'K'), voltage=220, freq=50, country="Guinea"), "bi": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Burundi"), "lv": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Latvia"), "fj": CountryPower(plugs=('I',), voltage=240, freq=50, country="Fiji"), "ci": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="Côte d'Ivoire"), "ai": CountryPower(plugs=('A',), voltage=110, freq=60, country="Anguilla"), "gu": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Guam"), "lr": CountryPower(plugs=('A', 'B', 'C', 'E', 'F'), voltage=120, freq=60, country="Liberia"), "br": CountryPower(plugs=('C', 'N'), voltage=220, freq=60, country="Brazil"), "cv": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Cape Verde"), "cl": CountryPower(plugs=('L',), voltage=220, freq=50, country="Chile"), "in": CountryPower(plugs=('C', 'D', 'M'), voltage=230, freq=50, country="India"), "gg": CountryPower(plugs=('G',), voltage=230, freq=50, country="Guernsey"), "tt": CountryPower(plugs=('A', 'B'), voltage=115, freq=60, country="Trinidad & Tobago"), "de": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Germany"), "qa": CountryPower(plugs=('D', 'G'), voltage=240, freq=50, country="Qatar"), "ph": CountryPower(plugs=('A', 'B'), voltage=220, freq=60, country="Philippines"), "sd": CountryPower(plugs=('C', 'D'), voltage=230, freq=50, country="Sudan"), "mm": CountryPower(plugs=('C', 'D', 'F', 'G'), voltage=230, freq=50, country="Myanmar"), "gd": CountryPower(plugs=('G',), voltage=230, freq=50, country="Grenada"), "st": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="São Tomé and Príncipe"), "sz": CountryPower(plugs=('M',), voltage=230, freq=50, country="Swaziland"), "ro": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Romania"), "xk": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Kosovo"), "cy": CountryPower(plugs=('G',), voltage=240, freq=50, country="Cyprus"), "dz": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Algeria"), "zm": CountryPower(plugs=('C', 'D', 'G'), voltage=230, freq=50, country="Zambia"), "by": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Belarus"), "hr": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Croatia"), "lu": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Luxembourg"), "fi": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Finland"), "zw": CountryPower(plugs=('D', 'G'), voltage=220, freq=50, country="Zimbabwe"), "km": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Comoros"), "tl": CountryPower(plugs=('C', 'E', 'F', 'I'), voltage=220, freq=50, country="Timor-Leste "), "tz": CountryPower(plugs=('D', 'G'), voltage=230, freq=50, country="Tanzania"), "ht": CountryPower(plugs=('A', 'B'), voltage=110, freq=60, country="Haiti"), "vc": CountryPower(plugs=('C', 'E', 'G', 'I', 'K'), voltage=230, freq=50, country="St. Vincent and the Grenadines"), "es": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Spain"), "my": CountryPower(plugs=('C', 'G', 'M'), voltage=230, freq=50, country="Malaysia"), "lc": CountryPower(plugs=('G',), voltage=240, freq=50, country="St. Lucia"), "tm": CountryPower(plugs=('B', 'C', 'F'), voltage=220, freq=50, country="Turkmenistan"), "pe": CountryPower(plugs=('A', 'B', 'C'), voltage=220, freq=60, country="Peru"), "ua": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Ukraine"), "eg": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Egypt"), "sb": CountryPower(plugs=('I', 'G'), voltage=220, freq=50, country="Solomon Islands"), "to": CountryPower(plugs=('I',), voltage=240, freq=50, country="Tonga"), "fr": CountryPower(plugs=('C', 'E'), voltage=230, freq=50, country="France"), "ng": CountryPower(plugs=('D', 'G'), voltage=240, freq=50, country="Nigeria"), "sh": CountryPower(plugs=('G',), voltage=240, freq=50, country="Saint Helena, Ascension and Tristan da Cunha"), "mw": CountryPower(plugs=('G',), voltage=230, freq=50, country="Malawi"), "ms": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Montserrat"), "ae": CountryPower(plugs=('C', 'D', 'G'), voltage=220, freq=50, country="United Arab Emirates"), "nl": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Netherlands"), "id": CountryPower(plugs=('C', 'F', 'G'), voltage=230, freq=50, country="Indonesia"), "ru": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Russia"), "ar": CountryPower(plugs=('C', 'I'), voltage=220, freq=50, country="Argentina"), "bn": CountryPower(plugs=('G',), voltage=240, freq=50, country="Brunei"), "pw": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Palau"), "kg": CountryPower(plugs=('C', 'F'), voltage=220, freq=50, country="Kyrgyzstan"), "bh": CountryPower(plugs=('G',), voltage=230, freq=50, country="Bahrain"), "ml": CountryPower(plugs=('C', 'E'), voltage=220, freq=50, country="Mali"), "it": CountryPower(plugs=('C', 'F', 'L'), voltage=230, freq=50, country="Italy"), "sa": CountryPower(plugs=('A', 'B', 'G'), voltage=220, freq=60, country="Saudi Arabia"), "ag": CountryPower(plugs=('A', 'B'), voltage=230, freq=60, country="Antigua and Barbuda"), "mr": CountryPower(plugs=('C',), voltage=220, freq=50, country="Mauritania"), "om": CountryPower(plugs=('C', 'G'), voltage=240, freq=50, country="Oman"), "lk": CountryPower(plugs=('D', 'G', 'M'), voltage=230, freq=50, country="Sri Lanka"), "er": CountryPower(plugs=('C', 'L'), voltage=230, freq=50, country="Eritrea"), "mk": CountryPower(plugs=('C', 'F'), voltage=230, freq=50, country="Macedonia"), "ni": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Nicaragua"), "ch": CountryPower(plugs=('C', 'J'), voltage=230, freq=50, country="Switzerland"), "ca": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Canada"), "cr": CountryPower(plugs=('A', 'B'), voltage=120, freq=60, country="Costa Rica") } industrial_power = { "at": CountryPower(voltage=(400,), freq=50, country='Austria'), "bj": CountryPower(voltage=(380,), freq=50, country='Benin'), "gh": CountryPower(voltage=(400,), freq=50, country='Ghana'), "sc": CountryPower(voltage=(240,), freq=50, country='Seychelles'), "bg": CountryPower(voltage=(400,), freq=50, country='Bulgaria'), "me": CountryPower(voltage=(400,), freq=50, country='Montenegro'), "fo": CountryPower(voltage=(400,), freq=50, country='Faeroe Islands'), "iq": CountryPower(voltage=(400,), freq=50, country='Iraq'), "ne": CountryPower(voltage=(380,), freq=50, country='Niger'), "za": CountryPower(voltage=(400,), freq=50, country='South Africa'), "az": CountryPower(voltage=(380,), freq=50, country='Azerbaijan'), "so": CountryPower(voltage=(380,), freq=50, country='Somalia'), "sn": CountryPower(voltage=(400,), freq=50, country='Senegal'), "np": CountryPower(voltage=(400,), freq=50, country='Nepal'), "sl": CountryPower(voltage=(400,), freq=50, country='Sierra Leone'), "be": CountryPower(voltage=(400,), freq=50, country='Belgium'), "vg": CountryPower(voltage=(190,), freq=60, country='British Virgin Islands'), "bz": CountryPower(voltage=(190, 380), freq=60, country='Belize'), "tw": CountryPower(voltage=(220,), freq=60, country='Taiwan'), "bf": CountryPower(voltage=(380,), freq=50, country='Burkina Faso'), "ao": CountryPower(voltage=(380,), freq=50, country='Angola'), "ee": CountryPower(voltage=(400,), freq=50, country='Estonia'), "bs": CountryPower(voltage=(208,), freq=60, country='Bahamas'), "ir": CountryPower(voltage=(400,), freq=50, country='Iran'), "sv": CountryPower(voltage=(200,), freq=60, country='El Salvador'), "am": CountryPower(voltage=(400,), freq=50, country='Armenia'), "is": CountryPower(voltage=(400,), freq=50, country='Iceland'), "uy": CountryPower(voltage=(380,), freq=50, country='Uruguay'), "mc": CountryPower(voltage=(400,), freq=50, country='Monaco'), "jm": CountryPower(voltage=(190,), freq=50, country='Jamaica'), "im": CountryPower(voltage=(415,), freq=50, country='Isle of Man'), "dm": CountryPower(voltage=(400,), freq=50, country='Dominica'), "mu": CountryPower(voltage=(400,), freq=50, country='Mauritius'), "cz": CountryPower(voltage=(400,), freq=50, country='Czech Republic'), "kh": CountryPower(voltage=(400,), freq=50, country='Cambodia'), "cf": CountryPower(voltage=(380,), freq=50, country='Central African Republic'), "se": CountryPower(voltage=(400,), freq=50, country='Sweden'), "uz": CountryPower(voltage=(380,), freq=50, country='Uzbekistan'), "sk": CountryPower(voltage=(400,), freq=50, country='Slovakia'), "ky": CountryPower(voltage=(240,), freq=60, country='Cayman Islands'), "tn": CountryPower(voltage=(400,), freq=50, country='Tunisia'), "hu": CountryPower(voltage=(400,), freq=50, country='Hungary'), "af": CountryPower(voltage=(380,), freq=50, country='Afghanistan'), "tc": CountryPower(voltage=(240,), freq=60, country='Turks and Caicos Islands'), "et": CountryPower(voltage=(380,), freq=50, country='Ethiopia'), "sd": CountryPower(voltage=(400,), freq=50, country='Sudan'), "ad": CountryPower(voltage=(400,), freq=50, country='Andorra'), "hn": CountryPower(voltage=(208, 230, 240, 460, 480), freq=60, country='Honduras'), "ls": CountryPower(voltage=(380,), freq=50, country='Lesotho'), "na": CountryPower(voltage=(380,), freq=50, country='Namibia'), "pl": CountryPower(voltage=(400,), freq=50, country='Poland'), "bt": CountryPower(voltage=(400,), freq=50, country='Bhutan'), "sa": CountryPower(voltage=(400,), freq=60, country='Saudi Arabia'), "no": CountryPower(voltage=(230, 400), freq=50, country='Norway'), "fk": CountryPower(voltage=(415,), freq=50, country='Falkland Islands'), "ye": CountryPower(voltage=(400,), freq=50, country='Yemen'), "gi": CountryPower(voltage=(400,), freq=50, country='Gibraltar'), "md": CountryPower(voltage=(400,), freq=50, country='Moldova'), "cn": CountryPower(voltage=(380,), freq=50, country='China'), "gm": CountryPower(voltage=(400,), freq=50, country='Gambia'), "sg": CountryPower(voltage=(400,), freq=50, country='Singapore'), "tj": CountryPower(voltage=(380,), freq=50, country='Tajikistan'), "gt": CountryPower(voltage=(208,), freq=60, country='Guatemala'), "ma": CountryPower(voltage=(380,), freq=50, country='Morocco'), "mv": CountryPower(voltage=(400,), freq=50, country='Maldives'), "ga": CountryPower(voltage=(380,), freq=50, country='Gabon'), "bo": CountryPower(voltage=(400,), freq=50, country='Bolivia'), "ly": CountryPower(voltage=(400,), freq=50, country='Libya'), "rw": CountryPower(voltage=(400,), freq=50, country='Rwanda'), "cg": CountryPower(voltage=(400,), freq=50, country="People's Republic of Congo"), "kz": CountryPower(voltage=(380,), freq=50, country='Kazakhstan'), "jp": CountryPower(voltage=(200,), freq=50, country='Japan'), "co": CountryPower(voltage=(220, 440), freq=60, country='Colombia'), "sm": CountryPower(voltage=(400,), freq=50, country='San Marino'), "rs": CountryPower(voltage=(400,), freq=50, country='Serbia'), "gw": CountryPower(voltage=(380,), freq=50, country='Guinea-Bissau'), "kr": CountryPower(voltage=(380,), freq=60, country='South Korea'), "py": CountryPower(voltage=(380,), freq=50, country='Paraguay'), "lt": CountryPower(voltage=(400,), freq=50, country='Lithuania'), "tr": CountryPower(voltage=(400,), freq=50, country='Turkey'), "ss": CountryPower(voltage=(400,), freq=50, country='South Sudan'), "ba": CountryPower(voltage=(400,), freq=50, country='Bosnia & Herzegovina'), "vn": CountryPower(voltage=(380,), freq=50, country='Vietnam'), "do": CountryPower(voltage=(120, 208, 277, 480), freq=60, country='Dominican Republic'), "pk": CountryPower(voltage=(400,), freq=50, country='Pakistan'), "li": CountryPower(voltage=(400,), freq=50, country='Liechtenstein'), "mz": CountryPower(voltage=(380,), freq=50, country='Mozambique'), "au": CountryPower(voltage=(400,), freq=50, country='Australia'), "ws": CountryPower(voltage=(400,), freq=50, country='Samoa'), "sr": CountryPower(voltage=(220, 400,), freq=60, country='Suriname'), "mn": CountryPower(voltage=(400,), freq=50, country='Mongolia'), "bw": CountryPower(voltage=(400,), freq=50, country='Botswana'), "gb": CountryPower(voltage=(415,), freq=50, country='United Kingdom'), "pg": CountryPower(voltage=(415,), freq=50, country='Papua New Guinea'), "dj": CountryPower(voltage=(380,), freq=50, country='Djibouti'), "th": CountryPower(voltage=(400,), freq=50, country='Thailand'), "us": CountryPower(voltage=(120, 208, 277, 480, 120, 240, 240, 480), freq=60, country='United States of America'), "gr": CountryPower(voltage=(400,), freq=50, country='Greece'), "ug": CountryPower(voltage=(415,), freq=50, country='Uganda'), "ie": CountryPower(voltage=(415,), freq=50, country='Ireland'), "tg": CountryPower(voltage=(380,), freq=50, country='Togo'), "td": CountryPower(voltage=(380,), freq=50, country='Chad'), "la": CountryPower(voltage=(400,), freq=50, country='Laos'), "sy": CountryPower(voltage=(380,), freq=50, country='Syria'), "bm": CountryPower(voltage=(208,), freq=60, country='Bermuda'), "il": CountryPower(voltage=(400,), freq=50, country='Israel'), "nz": CountryPower(voltage=(400,), freq=50, country='New Zealand'), "mg": CountryPower(voltage=(380,), freq=50, country='Madagascar'), "ve": CountryPower(voltage=(120,), freq=60, country='Venezuela'), "dk": CountryPower(voltage=(400,), freq=50, country='Denmark'), "lb": CountryPower(voltage=(400,), freq=50, country='Lebanon'), "kp": CountryPower(voltage=(380,), freq=50, country='North Korea'), "vu": CountryPower(voltage=(400,), freq=50, country='Vanuatu'), "cu": CountryPower(voltage=(190, 440), freq=60, country='Cuba'), "kw": CountryPower(voltage=(415,), freq=50, country='Kuwait'), "cd": CountryPower(voltage=(380,), freq=50, country='Democratic Republic of Congo'), "nr": CountryPower(voltage=(415,), freq=50, country='Nauru'), "si": CountryPower(voltage=(400,), freq=50, country='Slovenia'), "mt": CountryPower(voltage=(400,), freq=50, country='Malta'), "bd": CountryPower(voltage=(380,), freq=50, country='Bangladesh'), "al": CountryPower(voltage=(400,), freq=50, country='Albania'), "ec": CountryPower(voltage=(208,), freq=60, country='Ecuador'), "gy": CountryPower(voltage=(190,), freq=60, country='Guyana'), "bb": CountryPower(voltage=(200,), freq=50, country='Barbados'), "ke": CountryPower(voltage=(415,), freq=50, country='Kenya'), "mx": CountryPower(voltage=(220, 480), freq=60, country='Mexico'), "gn": CountryPower(voltage=(380,), freq=50, country='Guinea'), "bi": CountryPower(voltage=(380,), freq=50, country='Burundi'), "lv": CountryPower(voltage=(400,), freq=50, country='Latvia'), "fj": CountryPower(voltage=(415,), freq=50, country='Fiji'), "ci": CountryPower(voltage=(380,), freq=50, country='Côte d’Ivoire'), "ai": CountryPower(voltage=(120, 208, 127, 220, 240, 415), freq=60, country='Anguilla'), "gu": CountryPower(voltage=(190,), freq=60, country='Guam'), "lr": CountryPower(voltage=(208,), freq=60, country='Liberia'), "br": CountryPower(voltage=(220, 380), freq=60, country='Brazil'), "cv": CountryPower(voltage=(400,), freq=50, country='Cape Verde'), "cl": CountryPower(voltage=(380,), freq=50, country='Chile'), "in": CountryPower(voltage=(400,), freq=50, country='India'), "tt": CountryPower(voltage=(115, 230, 230, 400), freq=60, country='Trinidad & Tobago'), "de": CountryPower(voltage=(400,), freq=50, country='Germany'), "pa": CountryPower(voltage=(240,), freq=60, country='Panama'), "qa": CountryPower(voltage=(415,), freq=50, country='Qatar'), "ph": CountryPower(voltage=(380,), freq=60, country='Philippines'), "jo": CountryPower(voltage=(400,), freq=50, country='Jordan'), "mm": CountryPower(voltage=(400,), freq=50, country='Myanmar'), "gd": CountryPower(voltage=(400,), freq=50, country='Grenada'), "st": CountryPower(voltage=(400,), freq=50, country='São Tomé and Príncipe'), "sz": CountryPower(voltage=(400,), freq=50, country='Swaziland'), "ro": CountryPower(voltage=(400,), freq=50, country='Romania'), "xk": CountryPower(voltage=(230, 400), freq=50, country='Kosovo'), "cy": CountryPower(voltage=(400,), freq=50, country='Cyprus'), "dz": CountryPower(voltage=(400,), freq=50, country='Algeria'), "zm": CountryPower(voltage=(400,), freq=50, country='Zambia'), "by": CountryPower(voltage=(380,), freq=50, country='Belarus'), "hr": CountryPower(voltage=(400,), freq=50, country='Croatia'), "lu": CountryPower(voltage=(400,), freq=50, country='Luxembourg'), "fi": CountryPower(voltage=(400,), freq=50, country='Finland'), "zw": CountryPower(voltage=(415,), freq=50, country='Zimbabwe'), "km": CountryPower(voltage=(380,), freq=50, country='Comoros'), "tl": CountryPower(voltage=(380,), freq=50, country='East Timor'), "tz": CountryPower(voltage=(415,), freq=50, country='Tanzania'), "ht": CountryPower(voltage=(190,), freq=60, country='Haiti'), "vc": CountryPower(voltage=(400,), freq=50, country='Saint Vincent and the Grenadines'), "es": CountryPower(voltage=(400,), freq=50, country='Spain'), "my": CountryPower(voltage=(415,), freq=50, country='Malaysia'), "lc": CountryPower(voltage=(400,), freq=50, country='Saint Lucia'), "tm": CountryPower(voltage=(380,), freq=50, country='Turkmenistan'), "pe": CountryPower(voltage=(220,), freq=60, country='Peru'), "ua": CountryPower(voltage=(400,), freq=50, country='Ukraine'), "eg": CountryPower(voltage=(380,), freq=50, country='Egypt'), "to": CountryPower(voltage=(415,), freq=50, country='Tonga'), "fr": CountryPower(voltage=(400,), freq=50, country='France'), "ng": CountryPower(voltage=(415,), freq=50, country='Nigeria'), "mw": CountryPower(voltage=(400,), freq=50, country='Malawi'), "ms": CountryPower(voltage=(400,), freq=60, country='Montserrat'), "ae": CountryPower(voltage=(400,), freq=50, country='United Arab Emirates'), "nl": CountryPower(voltage=(400,), freq=50, country='Netherlands'), "id": CountryPower(voltage=(400,), freq=50, country='Indonesia'), "ru": CountryPower(voltage=(380,), freq=50, country='Russia'), "ar": CountryPower(voltage=(380,), freq=50, country='Argentina'), "bn": CountryPower(voltage=(415,), freq=50, country='Brunei'), "pw": CountryPower(voltage=(208,), freq=60, country='Palau'), "kg": CountryPower(voltage=(380,), freq=50, country='Kyrgyzstan'), "bh": CountryPower(voltage=(400,), freq=50, country='Bahrain'), "ml": CountryPower(voltage=(380,), freq=50, country='Mali'), "it": CountryPower(voltage=(400,), freq=50, country='Italy'), "cm": CountryPower(voltage=(380,), freq=50, country='Cameroon'), "ag": CountryPower(voltage=(400,), freq=60, country='Antigua and Barbuda'), "mr": CountryPower(voltage=(220,), freq=50, country='Mauritania'), "om": CountryPower(voltage=(415,), freq=50, country='Oman'), "lk": CountryPower(voltage=(400,), freq=50, country='Sri Lanka'), "er": CountryPower(voltage=(400,), freq=50, country='Eritrea'), "mk": CountryPower(voltage=(400,), freq=50, country='Macedonia, Republic of'), "ni": CountryPower(voltage=(208,), freq=60, country='Nicaragua'), "ch": CountryPower(voltage=(400,), freq=50, country='Switzerland'), "ca": CountryPower(voltage=(120, 208, 240, 480, 347, 600), freq=60, country='Canada'), "cr": CountryPower(voltage=(240,), freq=60, country='Costa Rica') } plug_types = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'] voltages_1_phase_residential = [100, 110, 115, 120, 127, 220, 230, 240] voltages_3_phase = [120, 190, 200, 208, 220, 230, 240, 277, 380, 400, 415, 440, 480] frequencies = [50, 60] # https://www.grainger.com/content/supplylink-v-belt-maintenance-key-to-electric-motor-efficiency # Source of values for v belt, notched, and synchronous # Technology assessment: energy-efficient belt transmissions # Source of cogged value, their range is 95-98 V_BELT = 'V' COGGED_V_BELT = 'cogged' NOTCHED_BELT = 'notched' SYNCHRONOUS_BELT = 'synchronous' belt_efficiencies = {V_BELT: 0.95, NOTCHED_BELT: 0.97, COGGED_V_BELT: 0.965, SYNCHRONOUS_BELT: 0.98} DEEP_GROOVE_BALL = "Deep groove ball" ANGULAR_CONTACT_BALL_SINGLE_ROW = "Angular contact ball Single row" ANGULAR_CONTACT_BALL_DOUBLE_ROW = "Angular contact ball Double row" FOUR_POINT_CONTACT_BALL = "Four point contact ball" SELF_ALIGNING_BALL = "Self aligning ball" CYLINDRICAL_ROLLER_WITH_CAGE = "Cylindrical roller with cage" CYLINDRICAL_ROLLER_FULL_COMPLEMENT = "Cylindrical roller full complement" NEEDLE_ROLLER = "Needle roller" TAPER_ROLLER = "Taper roller" SPHERICAL_ROLLER = "Spherical roller" THRUST_BALL = "Thrust ball" CYLINDRICAL_ROLLER_THRUST = "Cylindrical roller thrust" NEEDLE_ROLLER_THRUST = "Needle roller thrust" SPHERICAL_ROLLER_THRUST = "Spherical roller thrust" bearing_friction_factors = {DEEP_GROOVE_BALL: 0.0015, ANGULAR_CONTACT_BALL_SINGLE_ROW: 0.002, ANGULAR_CONTACT_BALL_DOUBLE_ROW: 0.0024, FOUR_POINT_CONTACT_BALL: 0.0024, SELF_ALIGNING_BALL: 0.001, CYLINDRICAL_ROLLER_WITH_CAGE: 0.0011, CYLINDRICAL_ROLLER_FULL_COMPLEMENT: 0.002, NEEDLE_ROLLER: 0.0025, TAPER_ROLLER: 0.0018, SPHERICAL_ROLLER: 0.0018, THRUST_BALL: 0.0013, CYLINDRICAL_ROLLER_THRUST: 0.005, NEEDLE_ROLLER_THRUST: 0.005, SPHERICAL_ROLLER_THRUST: 0.0018} # In m, diameter of fans fan_diameters = [0.125, 0.132, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.212, 0.224, 0.236, 0.25, 0.265, 0.28, 0.3, 0.315, 0.335, 0.355, 0.375, 0.4, 0.425, 0.45, 0.475, 0.5, 0.53, 0.56, 0.6, 0.63, 0.67, 0.71, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0] FEG90 = [0.425, 0.448, 0.472, 0.501, 0.527, 0.552, 0.574, 0.594, 0.613, 0.633, 0.652, 0.669, 0.686, 0.703, 0.718, 0.735, 0.746, 0.759, 0.77, 0.779, 0.789, 0.797, 0.804, 0.81, 0.815, 0.819, 0.823, 0.827, 0.83, 0.833, 0.835, 0.837, 0.838, 0.84, 0.841, 0.841, 0.841] FEG85 = [0.401, 0.423, 0.446, 0.473, 0.498, 0.521, 0.542, 0.561, 0.579, 0.598, 0.616, 0.631, 0.648, 0.664, 0.678, 0.694, 0.704, 0.717, 0.727, 0.736, 0.745, 0.753, 0.759, 0.765, 0.769, 0.774, 0.777, 0.781, 0.784, 0.786, 0.788, 0.79, 0.791, 0.793, 0.793, 0.794, 0.794] FEG80 = [0.378, 0.399, 0.421, 0.447, 0.47, 0.492, 0.511, 0.53, 0.546, 0.565, 0.581, 0.596, 0.612, 0.627, 0.64, 0.655, 0.665, 0.676, 0.686, 0.695, 0.703, 0.711, 0.717, 0.722, 0.726, 0.73, 0.734, 0.738, 0.74, 0.742, 0.744, 0.746, 0.747, 0.748, 0.749, 0.75, 0.75] FEG75 = [0.357, 0.377, 0.398, 0.422, 0.444, 0.464, 0.483, 0.5, 0.516, 0.533, 0.549, 0.563, 0.578, 0.592, 0.604, 0.618, 0.628, 0.639, 0.648, 0.656, 0.664, 0.671, 0.677, 0.681, 0.685, 0.689, 0.693, 0.696, 0.698, 0.701, 0.703, 0.704, 0.705, 0.706, 0.707, 0.708, 0.708] FEG71 = [0.337, 0.356, 0.375, 0.398, 0.419, 0.438, 0.456, 0.472, 0.487, 0.503, 0.518, 0.531, 0.545, 0.559, 0.57, 0.584, 0.593, 0.603, 0.612, 0.619, 0.627, 0.633, 0.639, 0.643, 0.647, 0.651, 0.654, 0.657, 0.659, 0.661, 0.663, 0.665, 0.666, 0.667, 0.668, 0.668, 0.668] FEG67 = [0.318, 0.336, 0.354, 0.376, 0.395, 0.414, 0.43, 0.446, 0.46, 0.475, 0.489, 0.502, 0.515, 0.527, 0.538, 0.551, 0.559, 0.569, 0.577, 0.584, 0.592, 0.598, 0.603, 0.607, 0.611, 0.614, 0.617, 0.621, 0.622, 0.624, 0.626, 0.627, 0.629, 0.63, 0.63, 0.631, 0.631] FEG63 = [0.301, 0.317, 0.334, 0.355, 0.373, 0.39, 0.406, 0.421, 0.434, 0.448, 0.462, 0.473, 0.486, 0.498, 0.508, 0.52, 0.528, 0.537, 0.545, 0.552, 0.559, 0.565, 0.569, 0.573, 0.577, 0.58, 0.583, 0.586, 0.588, 0.59, 0.591, 0.592, 0.594, 0.594, 0.595, 0.595, 0.596] FEG60 = [0.284, 0.299, 0.316, 0.335, 0.352, 0.369, 0.383, 0.397, 0.41, 0.423, 0.436, 0.447, 0.459, 0.47, 0.48, 0.491, 0.499, 0.507, 0.515, 0.521, 0.528, 0.533, 0.538, 0.541, 0.545, 0.548, 0.55, 0.553, 0.555, 0.557, 0.558, 0.559, 0.56, 0.561, 0.562, 0.562, 0.562] FEG56 = [0.268, 0.282, 0.298, 0.316, 0.333, 0.348, 0.362, 0.375, 0.387, 0.4, 0.411, 0.422, 0.433, 0.444, 0.453, 0.464, 0.471, 0.479, 0.486, 0.492, 0.498, 0.503, 0.507, 0.511, 0.514, 0.517, 0.519, 0.522, 0.524, 0.525, 0.527, 0.528, 0.529, 0.53, 0.53, 0.531, 0.531] FEG53 = [0.253, 0.267, 0.281, 0.298, 0.314, 0.329, 0.342, 0.354, 0.365, 0.377, 0.388, 0.398, 0.409, 0.419, 0.428, 0.438, 0.444, 0.452, 0.459, 0.464, 0.47, 0.475, 0.479, 0.482, 0.485, 0.488, 0.49, 0.493, 0.494, 0.496, 0.497, 0.498, 0.499, 0.5, 0.501, 0.501, 0.501] FEG50 = [0.239, 0.252, 0.266, 0.282, 0.297, 0.31, 0.323, 0.334, 0.345, 0.356, 0.367, 0.376, 0.386, 0.395, 0.404, 0.413, 0.42, 0.427, 0.433, 0.438, 0.444, 0.448, 0.452, 0.455, 0.458, 0.461, 0.463, 0.465, 0.467, 0.468, 0.47, 0.47, 0.471, 0.472, 0.473, 0.473, 0.473] fan_bare_shaft_efficiencies = {'FEG90': FEG90, 'FEG85': FEG85, 'FEG80': FEG80, 'FEG75': FEG75, 'FEG71': FEG71, 'FEG67': FEG67, 'FEG63': FEG63, 'FEG60': FEG60, 'FEG56': FEG56, 'FEG53': FEG53, 'FEG50': FEG50} '''for key, values in fan_bare_shaft_efficiencies.items(): plt.plot(fan_diameters, values, label=key) plt.legend() plt.show()''' FMEG_axial_powers = [125.0, 300.0, 1000.0, 2500.0, 5000.0, 8000.0, 10000.0, 20000.0, 60000.0, 160000.0, 300000.0, 375000.0, 500000.0] FMEG27 = [0.15, 0.174, 0.207, 0.232, 0.251, 0.264, 0.27, 0.275, 0.283, 0.291, 0.296, 0.297, 0.3] FMEG31 = [0.19, 0.214, 0.247, 0.272, 0.291, 0.304, 0.31, 0.315, 0.323, 0.331, 0.336, 0.337, 0.34] FMEG35 = [0.23, 0.254, 0.287, 0.312, 0.331, 0.344, 0.35, 0.355, 0.363, 0.371, 0.376, 0.377, 0.38] FMEG39 = [0.27, 0.294, 0.327, 0.352, 0.371, 0.384, 0.39, 0.395, 0.403, 0.411, 0.416, 0.417, 0.42] FMEG42 = [0.3, 0.324, 0.357, 0.382, 0.401, 0.414, 0.42, 0.425, 0.433, 0.441, 0.446, 0.447, 0.45] FMEG46 = [0.34, 0.364, 0.397, 0.422, 0.441, 0.454, 0.46, 0.465, 0.473, 0.481, 0.486, 0.487, 0.49] FMEG50 = [0.38, 0.404, 0.437, 0.462, 0.481, 0.494, 0.5, 0.505, 0.513, 0.521, 0.526, 0.527, 0.53] FMEG53 = [0.41, 0.434, 0.467, 0.492, 0.511, 0.524, 0.53, 0.535, 0.543, 0.551, 0.556, 0.557, 0.56] FMEG55 = [0.43, 0.454, 0.487, 0.512, 0.531, 0.544, 0.55, 0.555, 0.563, 0.571, 0.576, 0.577, 0.58] FMEG58 = [0.46, 0.484, 0.517, 0.542, 0.561, 0.574, 0.58, 0.585, 0.593, 0.601, 0.606, 0.607, 0.61] FMEG60 = [0.48, 0.504, 0.537, 0.562, 0.581, 0.594, 0.6, 0.605, 0.613, 0.621, 0.626, 0.627, 0.63] FMEG62 = [0.5, 0.524, 0.557, 0.582, 0.601, 0.614, 0.62, 0.625, 0.633, 0.641, 0.646, 0.647, 0.65] FMEG64 = [0.52, 0.544, 0.577, 0.602, 0.621, 0.634, 0.64, 0.645, 0.653, 0.661, 0.666, 0.667, 0.67] FMEG66 = [0.54, 0.564, 0.597, 0.622, 0.641, 0.654, 0.66, 0.665, 0.673, 0.681, 0.686, 0.687, 0.69] fan_driven_axial_efficiencies = {'FMEG27': FMEG27, 'FMEG31': FMEG31, 'FMEG35': FMEG35, 'FMEG39': FMEG39, 'FMEG42': FMEG42, 'FMEG46': FMEG46, 'FMEG50': FMEG50, 'FMEG53': FMEG53, 'FMEG55': FMEG55, 'FMEG58': FMEG58, 'FMEG60': FMEG60, 'FMEG62': FMEG62, 'FMEG64': FMEG64, 'FMEG66': FMEG66} FMEG_centrifugal_backward_powers = FMEG_axial_powers FMEG35 = [0.15, 0.19, 0.245, 0.287, 0.318, 0.34, 0.35, 0.357, 0.369, 0.38, 0.387, 0.389, 0.392] FMEG39 = [0.19, 0.23, 0.285, 0.327, 0.358, 0.38, 0.39, 0.397, 0.409, 0.42, 0.427, 0.429, 0.432] FMEG42 = [0.22, 0.26, 0.315, 0.357, 0.388, 0.41, 0.42, 0.427, 0.439, 0.45, 0.457, 0.459, 0.462] FMEG46 = [0.26, 0.3, 0.355, 0.397, 0.428, 0.45, 0.46, 0.467, 0.479, 0.49, 0.497, 0.499, 0.502] FMEG50 = [0.3, 0.34, 0.395, 0.437, 0.468, 0.49, 0.5, 0.507, 0.519, 0.53, 0.537, 0.539, 0.542] FMEG53 = [0.33, 0.37, 0.425, 0.467, 0.498, 0.52, 0.53, 0.537, 0.549, 0.56, 0.567, 0.569, 0.572] FMEG55 = [0.35, 0.39, 0.445, 0.487, 0.518, 0.54, 0.55, 0.557, 0.569, 0.58, 0.587, 0.589, 0.592] FMEG58 = [0.38, 0.42, 0.475, 0.517, 0.548, 0.57, 0.58, 0.587, 0.599, 0.61, 0.617, 0.619, 0.622] FMEG60 = [0.4, 0.44, 0.495, 0.537, 0.568, 0.59, 0.6, 0.607, 0.619, 0.63, 0.637, 0.639, 0.642] FMEG62 = [0.42, 0.46, 0.515, 0.557, 0.588, 0.61, 0.62, 0.627, 0.639, 0.65, 0.657, 0.659, 0.662] FMEG64 = [0.44, 0.48, 0.535, 0.577, 0.608, 0.63, 0.64, 0.647, 0.659, 0.67, 0.677, 0.679, 0.682] FMEG66 = [0.46, 0.5, 0.555, 0.597, 0.628, 0.65, 0.66, 0.667, 0.679, 0.69, 0.697, 0.699, 0.702] FMEG68 = [0.48, 0.52, 0.575, 0.617, 0.648, 0.67, 0.68, 0.687, 0.699, 0.71, 0.717, 0.719, 0.722] FMEG70 = [0.5, 0.54, 0.595, 0.637, 0.668, 0.69, 0.7, 0.707, 0.719, 0.73, 0.737, 0.739, 0.742] FMEG72 = [0.52, 0.56, 0.615, 0.657, 0.688, 0.71, 0.72, 0.727, 0.739, 0.75, 0.757, 0.759, 0.762] FMEG74 = [0.54, 0.58, 0.635, 0.677, 0.708, 0.73, 0.74, 0.747, 0.759, 0.77, 0.777, 0.779, 0.782] FMEG76 = [0.56, 0.6, 0.655, 0.697, 0.728, 0.75, 0.76, 0.767, 0.779, 0.79, 0.797, 0.799, 0.802] fan_centrifugal_backward_efficiencies = {'FMEG35': FMEG35, 'FMEG39': FMEG39, 'FMEG42': FMEG42, 'FMEG46': FMEG46, 'FMEG50': FMEG50, 'FMEG53': FMEG53, 'FMEG55': FMEG55, 'FMEG58': FMEG58, 'FMEG60': FMEG60, 'FMEG62': FMEG62, 'FMEG64': FMEG64, 'FMEG66': FMEG66, 'FMEG68': FMEG68, 'FMEG70': FMEG70, 'FMEG72': FMEG72, 'FMEG74': FMEG74, 'FMEG76': FMEG76} FMEG_cross_flow_powers = [130.0, 300.0, 500.0, 800.0, 1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 8000.0, 10000.0, 16000.0, 22000.0] FMEG08 = [0.03, 0.04, 0.046, 0.051, 0.054, 0.062, 0.067, 0.07, 0.072, 0.078, 0.08, 0.08, 0.08] FMEG11 = [0.06, 0.07, 0.076, 0.081, 0.084, 0.092, 0.097, 0.1, 0.102, 0.108, 0.11, 0.11, 0.11] FMEG14 = [0.09, 0.1, 0.106, 0.111, 0.114, 0.122, 0.127, 0.13, 0.132, 0.138, 0.14, 0.14, 0.14] FMEG19 = [0.14, 0.15, 0.156, 0.161, 0.164, 0.172, 0.177, 0.18, 0.182, 0.188, 0.19, 0.19, 0.19] FMEG23 = [0.18, 0.19, 0.196, 0.201, 0.204, 0.212, 0.217, 0.22, 0.222, 0.228, 0.23, 0.23, 0.23] FMEG28 = [0.23, 0.24, 0.246, 0.251, 0.254, 0.262, 0.267, 0.27, 0.272, 0.278, 0.28, 0.28, 0.28] FMEG32 = [0.27, 0.28, 0.286, 0.291, 0.294, 0.302, 0.307, 0.31, 0.312, 0.318, 0.32, 0.32, 0.32] fan_crossflow_efficiencies = {'FMEG08': FMEG08, 'FMEG11': FMEG11, 'FMEG14': FMEG14, 'FMEG19': FMEG19, 'FMEG23': FMEG23, 'FMEG28': FMEG28, 'FMEG32': FMEG32}fluids-0.1.78/fluids/safety_valve.py0000644000175000017500000005263713632560624016205 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import exp from fluids.constants import psi, inch, atm from fluids.compressible import is_critical_flow from fluids.numerics import interp, tck_interp2d_linear, bisplev __all__ = ['API526_A_sq_inch', 'API526_letters', 'API526_A', 'API520_round_size', 'API520_C', 'API520_F2', 'API520_Kv', 'API520_N', 'API520_SH', 'API520_B', 'API520_W', 'API520_A_g', 'API520_A_steam'] API526_A_sq_inch = [0.110, 0.196, 0.307, 0.503, 0.785, 1.287, 1.838, 2.853, 3.60, 4.34, 6.38, 11.05, 16.00, 26.00] # square inches API526_letters = ['D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R','T'] API526_A = [i*inch**2 for i in API526_A_sq_inch] def API520_round_size(A): r'''Rounds up the area from an API 520 calculation to an API526 standard valve area. The returned area is always larger or equal to the input area. Parameters ---------- A : float Minimum discharge area [m^2] Returns ------- area : float Actual discharge area [m^2] Notes ----- To obtain the letter designation of an input area, lookup the area with the following: API526_letters[API526_A.index(area)] An exception is raised if the required relief area is larger than any of the API 526 sizes. Examples -------- From [1]_, checked with many points on Table 8. >>> API520_round_size(1E-4) 0.00012645136 >>> API526_letters[API526_A.index(API520_round_size(1E-4))] 'E' References ---------- .. [1] API Standard 526. ''' for area in API526_A: if area >= A: return area raise Exception('Required relief area is larger than can be provided with one valve') def API520_C(k): r'''Calculates coefficient C for use in API 520 critical flow relief valve sizing. .. math:: C = 0.03948\sqrt{k\left(\frac{2}{k+1}\right)^\frac{k+1}{k-1}} Parameters ---------- k : float Isentropic coefficient or ideal gas heat capacity ratio [-] Returns ------- C : float Coefficient `C` [-] Notes ----- If C cannot be established, assume a coefficient of 0.0239, the highest value possible for C. Although not dimensional, C varies with the units used. If k is exactly equal to 1, the expression is undefined, and the formula must be simplified as follows from an application of L'Hopital's rule. .. math:: C = 0.03948\sqrt{\frac{1}{e}} Examples -------- From [1]_, checked with many points on Table 8. >>> API520_C(1.35) 0.02669419967057233 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' if k != 1: return 0.03948*( k*(2./(k+1.))**((k+1.)/(k-1.)) )**0.5 else: return 0.03948*(1./exp(1))**0.5 def API520_F2(k, P1, P2): r'''Calculates coefficient F2 for subcritical flow for use in API 520 subcritical flow relief valve sizing. .. math:: F_2 = \sqrt{\left(\frac{k}{k-1}\right)r^\frac{2}{k} \left[\frac{1-r^\frac{k-1}{k}}{1-r}\right]} .. math:: r = \frac{P_2}{P_1} Parameters ---------- k : float Isentropic coefficient or ideal gas heat capacity ratio [-] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] P2 : float Built-up backpressure; the increase in pressure during flow at the outlet of a pressure-relief device after it opens, [Pa] Returns ------- F2 : float Subcritical flow coefficient `F2` [-] Notes ----- F2 is completely dimensionless. Examples -------- From [1]_ example 2, matches. >>> API520_F2(1.8, 1E6, 7E5) 0.8600724121105563 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' r = P2/P1 return ( k/(k-1)*r**(2./k) * ((1-r**((k-1.)/k))/(1.-r)) )**0.5 def API520_Kv(Re): r'''Calculates correction due to viscosity for liquid flow for use in API 520 relief valve sizing. .. math:: K_v = \left(0.9935 + \frac{2.878}{Re^{0.5}} + \frac{342.75} {Re^{1.5}}\right)^{-1} Parameters ---------- Re : float Reynolds number for flow out the valve [-] Returns ------- Kv : float Correction due to viscosity [-] Notes ----- Reynolds number in the standard is defined as follows, with Q in L/min, G1 as specific gravity, mu in centipoise, and area in mm^2: .. math:: Re = \frac{Q(18800G_1)}{\mu \sqrt{A}} It is unclear how this expression was derived with a constant of 18800; the following code demonstrates what the constant should be: >>> from scipy.constants import * >>> liter/minute*1000./(0.001*(milli**2)**0.5) 16666.666666666668 Examples -------- From [1]_, checked with example 5. >>> API520_Kv(100) 0.6157445891444229 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' return (0.9935 + 2.878/Re**0.5 + 342.75/Re**1.5)**-1.0 def API520_N(P1): r'''Calculates correction due to steam pressure for steam flow for use in API 520 relief valve sizing. .. math:: K_N = \frac{0.02764P_1-1000}{0.03324P_1-1061} Parameters ---------- P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] Returns ------- KN : float Correction due to steam temperature [-] Notes ----- Although not dimensional, KN varies with the units used. For temperatures above 922 K or 22057 kPa, KN is not defined. Internally, units of kPa are used to match the equation in the standard. Examples -------- Custom example: >>> API520_N(1774700) 0.9490406958152466 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' P1 = P1/1000. # Pa to kPa return (0.02764*P1-1000.)/(0.03324*P1-1061) _KSH_psigs = [15, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240, 260, 280, 300, 350, 400, 500, 600, 800, 1000, 1250, 1500, 1750, 2000, 2500, 3000] _KSH_tempFs = [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200] # _KSH_psigs converted from psig to Pa _KSH_Pa = [204746.3593975254, 239220.14586336722, 377115.29172673443, 515010.4375901016, 652905.5834534689, 790800.7293168361, 928695.8751802032, 1066591.0210435705, 1204486.1669069377, 1342381.312770305, 1480276.4586336722, 1618171.6044970395, 1756066.7503604065, 1893961.8962237737, 2031857.042087141, 2169752.187950508, 2514490.0526089263, 2859227.9172673444, 3548703.64658418, 4238179.375901016, 5617130.834534689, 6996082.29316836, 8719771.616460452, 10443460.939752541, 12167150.263044631, 13890839.58633672, 17338218.232920904, 20785596.879505083] # _KSH_tempFs converted from F to K _KSH_tempKs = [422.03888888888889, 477.59444444444443, 533.14999999999998, 588.70555555555552, 644.26111111111106, 699.81666666666661, 755.37222222222226, 810.92777777777769, 866.48333333333335, 922.03888888888889] _KSH_factors = [[1, 0.98, 0.93, 0.88, 0.84, 0.8, 0.77, 0.74, 0.72, 0.7], [1, 0.98, 0.93, 0.88, 0.84, 0.8, 0.77, 0.74, 0.72, 0.7], [1, 0.99, 0.93, 0.88, 0.84, 0.81, 0.77, 0.74, 0.72, 0.7], [1, 0.99, 0.93, 0.88, 0.84, 0.81, 0.77, 0.75, 0.72, 0.7], [1, 0.99, 0.93, 0.88, 0.84, 0.81, 0.77, 0.75, 0.72, 0.7], [1, 0.99, 0.94, 0.89, 0.84, 0.81, 0.77, 0.75, 0.72, 0.7], [1, 0.99, 0.94, 0.89, 0.84, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 0.99, 0.94, 0.89, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 0.99, 0.94, 0.89, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 0.99, 0.94, 0.89, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 0.99, 0.95, 0.89, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 0.99, 0.95, 0.89, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.95, 0.9, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.95, 0.9, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.96, 0.9, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.96, 0.9, 0.85, 0.81, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.96, 0.9, 0.86, 0.82, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.96, 0.91, 0.86, 0.82, 0.78, 0.75, 0.72, 0.7], [1, 1, 0.96, 0.92, 0.86, 0.82, 0.78, 0.75, 0.73, 0.7], [1, 1, 0.97, 0.92, 0.87, 0.82, 0.79, 0.75, 0.73, 0.7], [1, 1, 1, 0.95, 0.88, 0.83, 0.79, 0.76, 0.73, 0.7], [1, 1, 1, 0.96, 0.89, 0.84, 0.78, 0.76, 0.73, 0.71], [1, 1, 1, 0.97, 0.91, 0.85, 0.8, 0.77, 0.74, 0.71], [1, 1, 1, 1, 0.93, 0.86, 0.81, 0.77, 0.74, 0.71], [1, 1, 1, 1, 0.94, 0.86, 0.81, 0.77, 0.73, 0.7], [1, 1, 1, 1, 0.95, 0.86, 0.8, 0.76, 0.72, 0.69], [1, 1, 1, 1, 0.95, 0.85, 0.78, 0.73, 0.69, 0.66], [1, 1, 1, 1, 1, 0.82, 0.74, 0.69, 0.65, 0.62]] API520_KSH_tck = tck_interp2d_linear(_KSH_tempKs, _KSH_Pa, _KSH_factors) def API520_SH(T1, P1): r'''Calculates correction due to steam superheat for steam flow for use in API 520 relief valve sizing. 2D interpolation among a table with 28 pressures and 10 temperatures is performed. Parameters ---------- T1 : float Temperature of the fluid entering the valve [K] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] Returns ------- KSH : float Correction due to steam superheat [-] Notes ----- For P above 20679 kPag, use the critical flow model. Superheat cannot be above 649 degrees Celsius. If T1 is above 149 degrees Celsius, returns 1. Examples -------- Custom example from table 9: >>> API520_SH(593+273.15, 1066.325E3) 0.7201800000000002 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' if P1 > 20780325.0: # 20679E3+atm raise Exception('For P above 20679 kPag, use the critical flow model') if T1 > 922.15: raise Exception('Superheat cannot be above 649 degrees Celcius') if T1 < 422.15: return 1. # No superheat under 15 psig return float(bisplev(T1, P1, API520_KSH_tck)) # Kw, for liquids. Applicable for all overpressures. Kw_x = [15., 16.5493, 17.3367, 18.124, 18.8235, 19.5231, 20.1351, 20.8344, 21.4463, 22.0581, 22.9321, 23.5439, 24.1556, 24.7674, 25.0296, 25.6414, 26.2533, 26.8651, 27.7393, 28.3511, 28.9629, 29.6623, 29.9245, 30.5363, 31.2357, 31.8475, 32.7217, 33.3336, 34.0329, 34.6448, 34.8196, 35.4315, 36.1308, 36.7428, 37.7042, 38.3162, 39.0154, 39.7148, 40.3266, 40.9384, 41.6378, 42.7742, 43.386, 43.9978, 44.6098, 45.2216, 45.921, 46.5329, 47.7567, 48.3685, 49.0679, 49.6797, 50.] Kw_y = [1, 0.996283, 0.992565, 0.987918, 0.982342, 0.976766, 0.97119, 0.964684, 0.958178, 0.951673, 0.942379, 0.935874, 0.928439, 0.921933, 0.919145, 0.912639, 0.906134, 0.899628, 0.891264, 0.884758, 0.878253, 0.871747, 0.868959, 0.862454, 0.855948, 0.849442, 0.841078, 0.834572, 0.828067, 0.821561, 0.819703, 0.814126, 0.806691, 0.801115, 0.790892, 0.785316, 0.777881, 0.771375, 0.76487, 0.758364, 0.751859, 0.740706, 0.734201, 0.727695, 0.722119, 0.715613, 0.709108, 0.702602, 0.69052, 0.684015, 0.677509, 0.671004, 0.666357] def API520_W(Pset, Pback): r'''Calculates capacity correction due to backpressure on balanced spring-loaded PRVs in liquid service. For pilot operated valves, this is always 1. Applicable up to 50% of the percent gauge backpressure, For use in API 520 relief valve sizing. 1D interpolation among a table with 53 backpressures is performed. Parameters ---------- Pset : float Set pressure for relief [Pa] Pback : float Backpressure, [Pa] Returns ------- KW : float Correction due to liquid backpressure [-] Notes ----- If the calculated gauge backpressure is less than 15%, a value of 1 is returned. Examples -------- Custom example from figure 31: >>> API520_W(1E6, 3E5) # 22% overpressure 0.9511471848008564 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' gauge_backpressure = (Pback-atm)/(Pset-atm)*100.0 # in percent if gauge_backpressure < 15.0: return 1.0 return interp(gauge_backpressure, Kw_x, Kw_y) # Kb Backpressure correction factor, for gases Kb_16_over_x = [37.6478, 38.1735, 38.6991, 39.2904, 39.8817, 40.4731, 40.9987, 41.59, 42.1156, 42.707, 43.2326, 43.8239, 44.4152, 44.9409, 45.5322, 46.0578, 46.6491, 47.2405, 47.7661, 48.3574, 48.883, 49.4744, 50.0] Kb_16_over_y = [0.998106, 0.994318, 0.99053, 0.985795, 0.982008, 0.97822, 0.973485, 0.96875, 0.964962, 0.961174, 0.956439, 0.951705, 0.947917, 0.943182, 0.939394, 0.935606, 0.930871, 0.926136, 0.921402, 0.918561, 0.913826, 0.910038, 0.90625] Kb_10_over_x = [30.0263, 30.6176, 31.1432, 31.6689, 32.1945, 32.6544, 33.18, 33.7057, 34.1656, 34.6255, 35.0854, 35.5453, 36.0053, 36.4652, 36.9251, 37.385, 37.8449, 38.2392, 38.6334, 39.0276, 39.4875, 39.9474, 40.4074, 40.8016, 41.1958, 41.59, 42.0499, 42.4442, 42.8384, 43.2326, 43.6925, 44.0867, 44.4809, 44.8752, 45.2694, 45.6636, 46.0578, 46.452, 46.8463, 47.2405, 47.6347, 48.0289, 48.4231, 48.883, 49.2773, 49.6715] Kb_10_over_y = [0.998106, 0.995265, 0.99053, 0.985795, 0.981061, 0.975379, 0.969697, 0.963068, 0.957386, 0.950758, 0.945076, 0.938447, 0.930871, 0.925189, 0.918561, 0.910985, 0.904356, 0.897727, 0.891098, 0.883523, 0.876894, 0.870265, 0.862689, 0.856061, 0.848485, 0.840909, 0.83428, 0.827652, 0.820076, 0.8125, 0.805871, 0.798295, 0.79072, 0.783144, 0.775568, 0.768939, 0.762311, 0.754735, 0.747159, 0.739583, 0.732008, 0.724432, 0.716856, 0.70928, 0.701705, 0.695076] def API520_B(Pset, Pback, overpressure=0.1): r'''Calculates capacity correction due to backpressure on balanced spring-loaded PRVs in vapor service. For pilot operated valves, this is always 1. Applicable up to 50% of the percent gauge backpressure, For use in API 520 relief valve sizing. 1D interpolation among a table with 53 backpressures is performed. Parameters ---------- Pset : float Set pressure for relief [Pa] Pback : float Backpressure, [Pa] overpressure : float, optional The maximum fraction overpressure; one of 0.1, 0.16, or 0.21, [] Returns ------- Kb : float Correction due to vapor backpressure [-] Notes ----- If the calculated gauge backpressure is less than 30%, 38%, or 50% for overpressures of 0.1, 0.16, or 0.21, a value of 1 is returned. Percent gauge backpressure must be under 50%. Examples -------- Custom examples from figure 30: >>> API520_B(1E6, 5E5) 0.7929945420944432 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' gauge_backpressure = (Pback-atm)/(Pset-atm)*100 # in percent if overpressure not in [0.1, 0.16, 0.21]: raise Exception('Only overpressure of 10%, 16%, or 21% are permitted') if (overpressure == 0.1 and gauge_backpressure < 30) or ( overpressure == 0.16 and gauge_backpressure < 38) or ( overpressure == 0.21 and gauge_backpressure < 50): return 1 elif gauge_backpressure > 50: raise Exception('Gauge pressure must be < 50%') if overpressure == 0.16: Kb = interp(gauge_backpressure, Kb_16_over_x, Kb_16_over_y) elif overpressure == 0.1: Kb = interp(gauge_backpressure, Kb_10_over_x, Kb_10_over_y) return Kb def API520_A_g(m, T, Z, MW, k, P1, P2=101325, Kd=0.975, Kb=1, Kc=1): r'''Calculates required relief valve area for an API 520 valve passing a gas or a vapor, at either critical or sub-critical flow. For critical flow: .. math:: A = \frac{m}{CK_dP_1K_bK_c}\sqrt{\frac{TZ}{M}} For sub-critical flow: .. math:: A = \frac{17.9m}{F_2K_dK_c}\sqrt{\frac{TZ}{MP_1(P_1-P_2)}} Parameters ---------- m : float Mass flow rate of vapor through the valve, [kg/s] T : float Temperature of vapor entering the valve, [K] Z : float Compressibility factor of the vapor, [-] MW : float Molecular weight of the vapor, [g/mol] k : float Isentropic coefficient or ideal gas heat capacity ratio [-] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] P2 : float, optional Built-up backpressure; the increase in pressure during flow at the outlet of a pressure-relief device after it opens, [Pa] Kd : float, optional The effective coefficient of discharge, from the manufacturer or for preliminary sizing, using 0.975 normally or 0.62 when used with a rupture disc as described in [1]_, [] Kb : float, optional Correction due to vapor backpressure [-] Kc : float, optional Combination correction factor for installation with a ruture disk upstream of the PRV, [] Returns ------- A : float Minimum area for relief valve according to [1]_, [m^2] Notes ----- Units are interlally kg/hr, kPa, and mm^2 to match [1]_. Examples -------- Example 1 from [1]_ for critical flow, matches: >>> API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, Kb=1, Kc=1) 0.0036990460646834414 Example 2 from [1]_ for sub-critical flow, matches: >>> API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, P2=532E3, Kd=0.975, Kb=1, Kc=1) 0.004248358775943481 The mass flux in (kg/(s*m^2)) can be found by dividing the specified mass flow by the calculated area: >>> (24270/3600.)/API520_A_g(m=24270/3600., T=348., Z=0.90, MW=51., k=1.11, P1=670E3, Kb=1, Kc=1) 1822.541960488834 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' P1, P2 = P1/1000., P2/1000. # Pa to Kpa in the standard m = m*3600. # kg/s to kg/hr if is_critical_flow(P1, P2, k): C = API520_C(k) A = m/(C*Kd*Kb*Kc*P1)*(T*Z/MW)**0.5 else: F2 = API520_F2(k, P1, P2) A = 17.9*m/(F2*Kd*Kc)*(T*Z/(MW*P1*(P1-P2)))**0.5 return A*0.001**2 # convert mm^2 to m^2 def API520_A_steam(m, T, P1, Kd=0.975, Kb=1, Kc=1): r'''Calculates required relief valve area for an API 520 valve passing a steam, at either saturation or superheat but not partially condensed. .. math:: A = \frac{190.5m}{P_1 K_d K_b K_c K_N K_{SH}} Parameters ---------- m : float Mass flow rate of steam through the valve, [kg/s] T : float Temperature of steam entering the valve, [K] P1 : float Upstream relieving pressure; the set pressure plus the allowable overpressure, plus atmospheric pressure, [Pa] Kd : float, optional The effective coefficient of discharge, from the manufacturer or for preliminary sizing, using 0.975 normally or 0.62 when used with a rupture disc as described in [1]_, [] Kb : float, optional Correction due to vapor backpressure [-] Kc : float, optional Combination correction factor for installation with a rupture disk upstream of the PRV, [] Returns ------- A : float Minimum area for relief valve according to [1]_, [m^2] Notes ----- Units are interlally kg/hr, kPa, and mm^2 to match [1]_. With the provided temperature and pressure, the KN coefficient is calculated with the function API520_N; as is the superheat correction KSH, with the function API520_SH. Examples -------- Example 4 from [1]_, matches: >>> API520_A_steam(m=69615/3600., T=592.5, P1=12236E3, Kd=0.975, Kb=1, Kc=1) 0.0011034712423692733 References ---------- .. [1] API Standard 520, Part 1 - Sizing and Selection. ''' KN = API520_N(P1) KSH = API520_SH(T, P1) P1 = P1/1000. # Pa to kPa m = m*3600. # kg/s to kg/hr A = 190.5*m/(P1*Kd*Kb*Kc*KN*KSH) return A*0.001**2 # convert mm^2 to m^2 fluids-0.1.78/fluids/two_phase.py0000644000175000017500000031170313632560624015476 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division __all__ = ['two_phase_dP', 'two_phase_dP_acceleration', 'two_phase_dP_dz_acceleration', 'two_phase_dP_gravitational', 'two_phase_dP_dz_gravitational', 'Beggs_Brill', 'Lockhart_Martinelli', 'Friedel', 'Chisholm', 'Kim_Mudawar', 'Baroczy_Chisholm', 'Theissing', 'Muller_Steinhagen_Heck', 'Gronnerud', 'Lombardi_Pedrocchi', 'Jung_Radermacher', 'Tran', 'Chen_Friedel', 'Zhang_Webb', 'Xu_Fang', 'Yu_France', 'Wang_Chiang_Lu', 'Hwang_Kim', 'Zhang_Hibiki_Mishima', 'Mishima_Hibiki', 'Bankoff', 'two_phase_correlations'] from math import pi, log, exp, sin, cos, radians, log10 from fluids.constants import g from fluids.numerics import splev, implementation_optimize_tck from fluids.friction import friction_factor from fluids.core import Reynolds, Froude, Weber, Confinement, Bond, Suratman from fluids.two_phase_voidage import homogeneous, Lockhart_Martinelli_Xtt Beggs_Brill_dat = {'segregated': (0.98, 0.4846, 0.0868), 'intermittent': (0.845, 0.5351, 0.0173), 'distributed': (1.065, 0.5824, 0.0609)} def Beggs_Brill(m, x, rhol, rhog, mul, mug, sigma, P, D, angle, roughness=0.0, L=1.0, g=g, acceleration=True): r'''Calculates the two-phase pressure drop according to the Beggs-Brill correlation ([1]_, [2]_, [3]_). Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Mass quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] P : float Pressure of fluid (used only if `acceleration=True`), [Pa] D : float Diameter of pipe, [m] angle : float The angle of the pipe with respect to the horizontal, [degrees] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] g : float, optional Acceleration due to gravity, [m/s^2] acceleration : bool Whether or not to include the original acceleration component, [-] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- The original acceleration formula is fairly primitive and normally neglected. The model was developed assuming smooth pipe, so leaving `roughness` to zero may be wise. Note this is a "mechanistic" pressure drop model - the gravitational pressure drop cannot be separated from the frictional pressure drop. Examples -------- >>> Beggs_Brill(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, P=1E7, D=0.05, angle=0, roughness=0, L=1) 686.9724506803472 References ---------- .. [1] Beggs, D.H., and J.P. Brill. "A Study of Two-Phase Flow in Inclined Pipes." Journal of Petroleum Technology 25, no. 05 (May 1, 1973): 607-17. https://doi.org/10.2118/4007-PA. .. [2] Brill, James P., and Howard Dale Beggs. Two-Phase Flow in Pipes, 1994. .. [3] Shoham, Ovadia. Mechanistic Modeling of Gas-Liquid Two-Phase Flow in Pipes. Pap/Cdr edition. Richardson, TX: Society of Petroleum Engineers, 2006. ''' qg = x*m/rhog ql = (1.0 - x)*m/rhol A = 0.25*pi*D*D Vsg = qg/A Vsl = ql/A Vm = Vsg + Vsl Fr = Vm*Vm/(g*D) lambda_L = Vsl/Vm # no slip liquid holdup L1 = 316.0*lambda_L**0.302 L2 = 0.0009252*lambda_L**-2.4684 L3 = 0.1*lambda_L**-1.4516 L4 = 0.5*lambda_L**-6.738 if (lambda_L < 0.01 and Fr < L1) or (lambda_L >= 0.01 and Fr < L2): regime = 'segregated' elif (lambda_L >= 0.01 and L2 <= Fr <= L3): regime = 'transition' elif (0.01 <= lambda_L < 0.4 and L3 < Fr <= L1) or (lambda_L >= 0.4 and L3 < Fr <= L4): regime = 'intermittent' elif (lambda_L < 0.4 and Fr >= L1) or (lambda_L >= 0.4 and Fr > L4): regime = 'distributed' else: raise Exception('Outside regime ranges') LV = Vsl*(rhol/(g*sigma))**0.25 angle = radians(angle) def holdup(regime): a, b, c = Beggs_Brill_dat[regime] HL0 = a*lambda_L**b*Fr**-c if HL0 < lambda_L: HL0 = lambda_L if angle > 0.0: # uphill # h used instead of g to avoid conflict with gravitational constant if regime == 'segregated': d, e, f, h = 0.011, -3.768, 3.539, -1.614 elif regime == 'intermittent': d, e, f, h = 2.96, 0.305, -0.4473, 0.0978 elif regime == 'distributed': # Dummy values for distributed - > psi = 1. d, e, f, h = 2.96, 0.305, -0.4473, 0.0978 elif angle <= 0: # downhill d, e, f, h = 4.70, -0.3692, 0.1244, -0.5056 C = (1.0 - lambda_L)*log(d*lambda_L**e*LV**f*Fr**h) if C < 0.0: C = 0.0 # Correction factor for inclination angle Psi = 1.0 + C*(sin(1.8*angle) - 1.0/3.0*sin(1.8*angle)**3) if (angle > 0 and regime == 'distributed') or angle == 0: Psi = 1.0 Hl = HL0*Psi return Hl if regime != 'transition': Hl = holdup(regime) else: A = (L3 - Fr)/(L3 - L2) Hl = A*holdup('segregated') + (1.0 - A)*holdup('intermittent') rhos = rhol*Hl + rhog*(1.0 - Hl) mum = mul*lambda_L + mug*(1.0 - lambda_L) rhom = rhol*lambda_L + rhog*(1.0 - lambda_L) Rem = rhom*D/mum*Vm fn = friction_factor(Re=Rem, eD=roughness/D) x = lambda_L/(Hl*Hl) if 1.0 < x < 1.2: S = log(2.2*x - 1.2) else: logx = log(x) # from horner(-0.0523 + 3.182*log(x) - 0.8725*log(x)**2 + 0.01853*log(x)**4, x) S = logx/(logx*(logx*(0.01853*logx*logx - 0.8725) + 3.182) - 0.0523) if S > 7.0: S = 7.0 # Truncate S to avoid exp(S) overflowing ftp = fn*exp(S) dP_ele = g*sin(angle)*rhos*L dP_fric = ftp*L/D*0.5*rhom*Vm*Vm # rhos here is pretty clearly rhos according to Shoham if not acceleration: dP = dP_ele + dP_fric else: Ek = Vsg*Vm*rhos/P # Confirmed this expression is dimensionless dP = (dP_ele + dP_fric)/(1.0 - Ek) return dP def Friedel(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Friedel correlation. .. math:: \Delta P_{friction} = \Delta P_{lo} \phi_{lo}^2 .. math:: \phi_{lo}^2 = E + \frac{3.24FH}{Fr^{0.0454} We^{0.035}} .. math:: H = \left(\frac{\rho_l}{\rho_g}\right)^{0.91}\left(\frac{\mu_g}{\mu_l} \right)^{0.19}\left(1 - \frac{\mu_g}{\mu_l}\right)^{0.7} .. math:: F = x^{0.78}(1 - x)^{0.224} .. math:: E = (1-x)^2 + x^2\left(\frac{\rho_l f_{d,go}}{\rho_g f_{d,lo}}\right) .. math:: Fr = \frac{G_{tp}^2}{gD\rho_H^2} .. math:: We = \frac{G_{tp}^2 D}{\sigma \rho_H} .. math:: \rho_H = \left(\frac{x}{\rho_g} + \frac{1-x}{\rho_l}\right)^{-1} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable to vertical upflow and horizontal flow. Known to work poorly when mul/mug > 1000. Gives mean errors on the order of 40%. Tested on data with diameters as small as 4 mm. The power of 0.0454 is given as 0.045 in [2]_, [3]_, [4]_, and [5]_; [6]_ and [2]_ give 0.0454 and [2]_ also gives a similar correlation said to be presented in [1]_, so it is believed this 0.0454 was the original power. [6]_ also gives an expression for friction factor claimed to be presented in [1]_; it is not used here. Examples -------- Example 4 in [6]_: >>> Friedel(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05, roughness=0, L=1) 738.6500525002245 References ---------- .. [1] Friedel, L. "Improved Friction Pressure Drop Correlations for Horizontal and Vertical Two-Phase Pipe Flow." , in: Proceedings, European Two Phase Flow Group Meeting, Ispra, Italy, 1979: 485-481. .. [2] Whalley, P. B. Boiling, Condensation, and Gas-Liquid Flow. Oxford: Oxford University Press, 1987. .. [3] Triplett, K. A., S. M. Ghiaasiaan, S. I. Abdel-Khalik, A. LeMouel, and B. N. McCord. "Gas-liquid Two-Phase Flow in Microchannels: Part II: Void Fraction and Pressure Drop.” International Journal of Multiphase Flow 25, no. 3 (April 1999): 395-410. doi:10.1016/S0301-9322(98)00055-X. .. [4] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [5] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ .. [6] Ghiaasiaan, S. Mostafa. Two-Phase Flow, Boiling, and Condensation: In Conventional and Miniature Systems. Cambridge University Press, 2007. ''' # Liquid-only properties, for calculation of E, dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of E v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) F = x**0.78*(1-x)**0.224 H = (rhol/rhog)**0.91*(mug/mul)**0.19*(1 - mug/mul)**0.7 E = (1-x)**2 + x**2*(rhol*fd_go/(rhog*fd_lo)) # Homogeneous properties, for Froude/Weber numbers voidage_h = homogeneous(x, rhol, rhog) rho_h = rhol*(1-voidage_h) + rhog*voidage_h Q_h = m/rho_h v_h = Q_h/(pi/4*D**2) Fr = Froude(V=v_h, L=D, squared=True) # checked with (m/(pi/4*D**2))**2/g/D/rho_h**2 We = Weber(V=v_h, L=D, rho=rho_h, sigma=sigma) # checked with (m/(pi/4*D**2))**2*D/sigma/rho_h phi_lo2 = E + 3.24*F*H/(Fr**0.0454*We**0.035) return phi_lo2*dP_lo def Gronnerud(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Gronnerud correlation as presented in [2]_, [3]_, and [4]_. .. math:: \Delta P_{friction} = \Delta P_{gd} \phi_{lo}^2 .. math:: \phi_{gd} = 1 + \left(\frac{dP}{dL}\right)_{Fr}\left[ \frac{\frac{\rho_l}{\rho_g}}{\left(\frac{\mu_l}{\mu_g}\right)^{0.25}} -1\right] .. math:: \left(\frac{dP}{dL}\right)_{Fr} = f_{Fr}\left[x+4(x^{1.8}-x^{10} f_{Fr}^{0.5})\right] .. math:: f_{Fr} = Fr_l^{0.3} + 0.0055\left(\ln \frac{1}{Fr_l}\right)^2 .. math:: Fr_l = \frac{G_{tp}^2}{gD\rho_l^2} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Developed for evaporators. Applicable from 0 < x < 1. In the model, if `Fr_l` is more than 1, `f_Fr` is set to 1. Examples -------- >>> Gronnerud(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... D=0.05, roughness=0, L=1) 384.1254114447411 References ---------- .. [1] Gronnerud, R. "Investigation of Liquid Hold-Up, Flow Resistance and Heat Transfer in Circulation Type Evaporators. 4. Two-Phase Flow Resistance in Boiling Refrigerants." Proc. Freudenstadt Meet., IIR/C. R. Réun. Freudenstadt, IIF. 1972-1: 127-138. 1972. .. [2] ASHRAE Handbook: Fundamentals. American Society of Heating, Refrigerating and Air-Conditioning Engineers, Incorporated, 2013. .. [3] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [4] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ ''' G = m/(pi/4*D**2) V = G/rhol Frl = Froude(V=V, L=D, squared=True) if Frl >= 1: f_Fr = 1 else: f_Fr = Frl**0.3 + 0.0055*(log(1./Frl))**2 dP_dL_Fr = f_Fr*(x + 4*(x**1.8 - x**10*f_Fr**0.5)) phi_gd = 1 + dP_dL_Fr*((rhol/rhog)/(mul/mug)**0.25 - 1) # Liquid-only properties, for calculation of E, dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) return phi_gd*dP_lo def Chisholm(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1, rough_correction=False): r'''Calculates two-phase pressure drop with the Chisholm (1973) correlation from [1]_, also in [2]_ and [3]_. .. math:: \frac{\Delta P_{tp}}{\Delta P_{lo}} = \phi_{ch}^2 .. math:: \phi_{ch}^2 = 1 + (\Gamma^2 -1)\left\{B x^{(2-n)/2} (1-x)^{(2-n)/2} + x^{2-n} \right\} .. math:: \Gamma ^2 = \frac{\left(\frac{\Delta P}{L}\right)_{go}}{\left(\frac{ \Delta P}{L}\right)_{lo}} For Gamma < 9.5: .. math:: B = \frac{55}{G_{tp}^{0.5}} \text{ for } G_{tp} > 1900 .. math:: B = \frac{2400}{G_{tp}} \text{ for } 500 < G_{tp} < 1900 .. math:: B = 4.8 \text{ for } G_{tp} < 500 For 9.5 < Gamma < 28: .. math:: B = \frac{520}{\Gamma G_{tp}^{0.5}} \text{ for } G_{tp} < 600 .. math:: B = \frac{21}{\Gamma} \text{ for } G_{tp} > 600 For Gamma > 28: .. math:: B = \frac{15000}{\Gamma^2 G_{tp}^{0.5}} If `rough_correction` is True, the following correction to B is applied: .. math:: \frac{B_{rough}}{B_{smooth}} = \left[0.5\left\{1+ \left(\frac{\mu_g} {\mu_l}\right)^2 + 10^{-600\epsilon/D}\right\}\right]^{\frac{0.25-n} {0.25}} .. math:: n = \frac{\log \frac{f_{d,lo}}{f_{d,go}}}{\log \frac{Re_{go}}{Re_{lo}}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] rough_correction : bool, optional Whether or not to use the roughness correction proposed in the 1968 version of the correlation Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. n = 0.25, the exponent in the Blassius equation. Originally developed for smooth pipes, a roughness correction is included as well from the Chisholm's 1968 work [4]_. Neither [2]_ nor [3]_ have any mention of the correction however. Examples -------- >>> Chisholm(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, roughness=0, L=1) 1084.1489922923738 References ---------- .. [1] Chisholm, D. "Pressure Gradients due to Friction during the Flow of Evaporating Two-Phase Mixtures in Smooth Tubes and Channels." International Journal of Heat and Mass Transfer 16, no. 2 (February 1973): 347-58. doi:10.1016/0017-9310(73)90063-X. .. [2] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [3] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ .. [4] Chisholm, D. "Research Note: Influence of Pipe Surface Roughness on Friction Pressure Gradient during Two-Phase Flow." Journal of Mechanical Engineering Science 20, no. 6 (December 1, 1978): 353-354. doi:10.1243/JMES_JOUR_1978_020_061_02. ''' G_tp = m/(pi/4*D**2) n = 0.25 # Blasius friction factor exponent # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of dP_go v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) Gamma = (dP_go/dP_lo)**0.5 if Gamma <= 9.5: if G_tp <= 500: B = 4.8 elif G_tp < 1900: B = 2400./G_tp else: B = 55*G_tp**-0.5 elif Gamma <= 28: if G_tp <= 600: B = 520.*G_tp**-0.5/Gamma else: B = 21./Gamma else: B = 15000.*G_tp**-0.5/Gamma**2 if rough_correction: n = log(fd_lo/fd_go)/log(Re_go/Re_lo) B_ratio = (0.5*(1 + (mug/mul)**2 + 10**(-600*roughness/D)))**((0.25-n)/0.25) B = B*B_ratio phi2_ch = 1 + (Gamma**2-1)*(B*x**((2-n)/2.)*(1-x)**((2-n)/2.) + x**(2-n)) return phi2_ch*dP_lo def Baroczy_Chisholm(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Baroczy (1966) model. It was presented in graphical form originally; Chisholm (1973) made the correlation non-graphical. The model is also shown in [3]_. .. math:: \frac{\Delta P_{tp}}{\Delta P_{lo}} = \phi_{ch}^2 .. math:: \phi_{ch}^2 = 1 + (\Gamma^2 -1)\left\{B x^{(2-n)/2} (1-x)^{(2-n)/2} + x^{2-n} \right\} .. math:: \Gamma ^2 = \frac{\left(\frac{\Delta P}{L}\right)_{go}}{\left(\frac{ \Delta P}{L}\right)_{lo}} For Gamma < 9.5: .. math:: B = \frac{55}{G_{tp}^{0.5}} For 9.5 < Gamma < 28: .. math:: B = \frac{520}{\Gamma G_{tp}^{0.5}} For Gamma > 28: .. math:: B = \frac{15000}{\Gamma^2 G_{tp}^{0.5}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. n = 0.25, the exponent in the Blassius equation. The `Chisholm_1973` function should be used in preference to this. Examples -------- >>> Baroczy_Chisholm(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, roughness=0, L=1) 1084.1489922923738 References ---------- .. [1] Baroczy, C. J. "A systematic correlation for two-phase pressure drop." In Chem. Eng. Progr., Symp. Ser., 62: No. 64, 232-49 (1966). .. [2] Chisholm, D. "Pressure Gradients due to Friction during the Flow of Evaporating Two-Phase Mixtures in Smooth Tubes and Channels." International Journal of Heat and Mass Transfer 16, no. 2 (February 1973): 347-58. doi:10.1016/0017-9310(73)90063-X. .. [3] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. ''' G_tp = m/(pi/4*D**2) n = 0.25 # Blasius friction factor exponent # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of dP_go v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) Gamma = (dP_go/dP_lo)**0.5 if Gamma <= 9.5: B = 55*G_tp**-0.5 elif Gamma <= 28: B = 520.*G_tp**-0.5/Gamma else: B = 15000.*G_tp**-0.5/Gamma**2 phi2_ch = 1 + (Gamma**2-1)*(B*x**((2-n)/2.)*(1-x)**((2-n)/2.) + x**(2-n)) return phi2_ch*dP_lo def Muller_Steinhagen_Heck(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Muller-Steinhagen and Heck (1986) correlation from [1]_, also in [2]_ and [3]_. .. math:: \Delta P_{tp} = G_{MSH}(1-x)^{1/3} + \Delta P_{go}x^3 .. math:: G_{MSH} = \Delta P_{lo} + 2\left[\Delta P_{go} - \Delta P_{lo}\right]x Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. Developed to be easily integrated. The contribution of each term to the overall pressure drop can be understood in this model. Examples -------- >>> Muller_Steinhagen_Heck(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, roughness=0, L=1) 793.4465457435081 References ---------- .. [1] Müller-Steinhagen, H, and K Heck. "A Simple Friction Pressure Drop Correlation for Two-Phase Flow in Pipes." Chemical Engineering and Processing: Process Intensification 20, no. 6 (November 1, 1986): 297-308. doi:10.1016/0255-2701(86)80008-3. .. [2] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [3] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ ''' # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of dP_go v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) G_MSH = dP_lo + 2*(dP_go - dP_lo)*x return G_MSH*(1-x)**(1/3.) + dP_go*x**3 def Lombardi_Pedrocchi(m, x, rhol, rhog, sigma, D, L=1): r'''Calculates two-phase pressure drop with the Lombardi-Pedrocchi (1972) correlation from [1]_ as shown in [2]_ and [3]_. .. math:: \Delta P_{tp} = \frac{0.83 G_{tp}^{1.4} \sigma^{0.4} L}{D^{1.2} \rho_{h}^{0.866}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- This is a purely empirical method. [3]_ presents a review of this and other correlations. It did not perform best, but there were also correlations worse than it. Examples -------- >>> Lombardi_Pedrocchi(m=0.6, x=0.1, rhol=915., rhog=2.67, sigma=0.045, ... D=0.05, L=1) 1567.328374498781 References ---------- .. [1] Lombardi, C., and E. Pedrocchi. "Pressure Drop Correlation in Two- Phase Flow." Energ. Nucl. (Milan) 19: No. 2, 91-99, January 1, 1972. .. [2] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [3] Turgut, Oğuz Emrah, Mustafa Turhan Çoban, and Mustafa Asker. "Comparison of Flow Boiling Pressure Drop Correlations for Smooth Macrotubes." Heat Transfer Engineering 37, no. 6 (April 12, 2016): 487-506. doi:10.1080/01457632.2015.1060733. ''' voidage_h = homogeneous(x, rhol, rhog) rho_h = rhol*(1-voidage_h) + rhog*voidage_h G_tp = m/(pi/4*D**2) return 0.83*G_tp**1.4*sigma**0.4*L/(D**1.2*rho_h**0.866) def Theissing(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Theissing (1980) correlation as shown in [2]_ and [3]_. .. math:: \Delta P_{{tp}} = \left[ {\Delta P_{{lo}}^{{1/{n\epsilon}}} \left({1 - x} \right)^{{1/\epsilon}} + \Delta P_{{go}}^{{1/ {(n\epsilon)}}} x^{{1/\epsilon}}} \right]^{n\epsilon} .. math:: \epsilon = 3 - 2\left({\frac{{2\sqrt {{{\rho_{{l}}}/ {\rho_{{g}}}}}}}{{1 + {{\rho_{{l}}}/{\rho_{{g}}}}}}} \right)^{{{0.7}/n}} .. math:: n = \frac{{n_1 + n_2 \left({{{\Delta P_{{g}}}/{\Delta P_{{l}}}}} \right)^{0.1}}}{{1 + \left({{{\Delta P_{{g}}} / {\Delta P_{{l}}}}} \right)^{0.1}}} .. math:: n_1 = \frac{{\ln \left({{{\Delta P_{{l}}}/ {\Delta P_{{lo}}}}} \right)}}{{\ln \left({1 - x} \right)}} .. math:: n_2 = \frac{\ln \left({\Delta P_{{g}} / \Delta P_{{go}}} \right)}{{\ln x}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. Notable, as it can be used for two-phase liquid- liquid flow as well as liquid-gas flow. Examples -------- >>> Theissing(m=0.6, x=.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... D=0.05, roughness=0, L=1) 497.6156370699528 References ---------- .. [1] Theissing, Peter. "Eine Allgemeingültige Methode Zur Berechnung Des Reibungsdruckverlustes Der Mehrphasenströmung (A Generally Valid Method for Calculating Frictional Pressure Drop on Multiphase Flow)." Chemie Ingenieur Technik 52, no. 4 (January 1, 1980): 344-345. doi:10.1002/cite.330520414. .. [2] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. .. [3] Greco, A., and G. P. Vanoli. "Experimental Two-Phase Pressure Gradients during Evaporation of Pure and Mixed Refrigerants in a Smooth Horizontal Tube. Comparison with Correlations." Heat and Mass Transfer 42, no. 8 (April 6, 2006): 709-725. doi:10.1007/s00231-005-0020-7. ''' # Liquid-only flow v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only flow v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) # Handle x = 0, x=1: if x == 0: return dP_lo elif x == 1: return dP_go # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g, eD=roughness/D) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) # The model n1 = log(dP_l/dP_lo)/log(1.-x) n2 = log(dP_g/dP_go)/log(x) n = (n1 + n2*(dP_g/dP_l)**0.1)/(1 + (dP_g/dP_l)**0.1) epsilon = 3 - 2*(2*(rhol/rhog)**0.5/(1.+rhol/rhog))**(0.7/n) dP = (dP_lo**(1./(n*epsilon))*(1-x)**(1./epsilon) + dP_go**(1./(n*epsilon))*x**(1./epsilon))**(n*epsilon) return dP def Jung_Radermacher(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Jung-Radermacher (1989) correlation, also shown in [2]_ and [3]_. .. math:: \frac{\Delta P_{tp}}{\Delta P_{lo}} = \phi_{tp}^2 .. math:: \phi_{tp}^2 = 12.82X_{tt}^{-1.47}(1-x)^{1.8} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. Developed for the annular flow regime in turbulent-turbulent flow. Examples -------- >>> Jung_Radermacher(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, roughness=0, L=1) 552.0686123725571 References ---------- .. [1] Jung, D. S., and R. Radermacher. "Prediction of Pressure Drop during Horizontal Annular Flow Boiling of Pure and Mixed Refrigerants." International Journal of Heat and Mass Transfer 32, no. 12 (December 1, 1989): 2435-46. doi:10.1016/0017-9310(89)90203-2. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11–12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Filip, Alina, Florin Băltăreţu, and Radu-Mircea Damian. "Comparison of Two-Phase Pressure Drop Models for Condensing Flows in Horizontal Tubes." Mathematical Modelling in Civil Engineering 10, no. 4 (2015): 19-27. doi:10.2478/mmce-2014-0019. ''' v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug) phi_tp2 = 12.82*Xtt**-1.47*(1.-x)**1.8 return phi_tp2*dP_lo def Tran(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Tran (2000) correlation, also shown in [2]_ and [3]_. .. math:: \Delta P = dP_{lo} \phi_{lo}^2 .. math:: \phi_{lo}^2 = 1 + (4.3\Gamma^2-1)[\text{Co} \cdot x^{0.875} (1-x)^{0.875}+x^{1.75}] .. math:: \Gamma ^2 = \frac{\left(\frac{\Delta P}{L}\right)_{go}}{\left(\frac {\Delta P}{L}\right)_{lo}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Developed for boiling refrigerants in channels with hydraulic diameters of 2.4 mm to 2.92 mm. Examples -------- >>> Tran(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05, roughness=0, L=1) 423.2563312951232 References ---------- .. [1] Tran, T. N, M. -C Chyu, M. W Wambsganss, and D. M France. "Two-Phase Pressure Drop of Refrigerants during Flow Boiling in Small Channels: An Experimental Investigation and Correlation Development." International Journal of Multiphase Flow 26, no. 11 (November 1, 2000): 1739-54. doi:10.1016/S0301-9322(99)00119-6. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11–12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Choi, Kwang-Il, A. S. Pamitran, Chun-Young Oh, and Jong-Taek Oh. "Two-Phase Pressure Drop of R-410A in Horizontal Smooth Minichannels." International Journal of Refrigeration 31, no. 1 (January 2008): 119-29. doi:10.1016/j.ijrefrig.2007.06.006. ''' # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of dP_go v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) Gamma2 = dP_go/dP_lo Co = Confinement(D=D, rhol=rhol, rhog=rhog, sigma=sigma) phi_lo2 = 1 + (4.3*Gamma2 -1)*(Co*x**0.875*(1-x)**0.875 + x**1.75) return dP_lo*phi_lo2 def Chen_Friedel(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Chen modification of the Friedel correlation, as given in [1]_ and also shown in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{Friedel}\Omega For Bo < 2.5: .. math:: \Omega = \frac{0.0333Re_{lo}^{0.45}}{Re_g^{0.09}(1 + 0.4\exp(-Bo))} For Bo >= 2.5: .. math:: \Omega = \frac{We^{0.2}}{2.5 + 0.06Bo} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable ONLY to mini/microchannels; yields drastically too low pressure drops for larger channels. For more details, see the `Friedel` correlation. It is not explicitly stated in [1]_ how to calculate the liquid mixture density for use in calculation of Weber number; the homogeneous model is assumed as it is used in the Friedel model. The bond number used here is 1/4 the normal value, i.e.: .. math:: Bo = \frac{g(\rho_l-\rho_g)D^2}{4\sigma} Examples -------- >>> Chen_Friedel(m=.0005, x=0.9, rhol=950., rhog=1.4, mul=1E-3, mug=1E-5, ... sigma=0.02, D=0.003, roughness=0, L=1) 6249.247540588871 References ---------- .. [1] Chen, Ing Youn, Kai-Shing Yang, Yu-Juei Chang, and Chi-Chung Wang. "Two-Phase Pressure Drop of Air–water and R-410A in Small Horizontal Tubes." International Journal of Multiphase Flow 27, no. 7 (July 2001): 1293-99. doi:10.1016/S0301-9322(01)00004-0. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11–12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Choi, Kwang-Il, A. S. Pamitran, Chun-Young Oh, and Jong-Taek Oh. "Two-Phase Pressure Drop of R-410A in Horizontal Smooth Minichannels." International Journal of Refrigeration 31, no. 1 (January 2008): 119-29. doi:10.1016/j.ijrefrig.2007.06.006. ''' # Liquid-only properties, for calculation of E, dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of E v_go = m/rhog/(pi/4*D**2) Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) F = x**0.78*(1-x)**0.224 H = (rhol/rhog)**0.91*(mug/mul)**0.19*(1 - mug/mul)**0.7 E = (1-x)**2 + x**2*(rhol*fd_go/(rhog*fd_lo)) # Homogeneous properties, for Froude/Weber numbers rho_h = 1./(x/rhog + (1-x)/rhol) Q_h = m/rho_h v_h = Q_h/(pi/4*D**2) Fr = Froude(V=v_h, L=D, squared=True) # checked with (m/(pi/4*D**2))**2/g/D/rho_h**2 We = Weber(V=v_h, L=D, rho=rho_h, sigma=sigma) # checked with (m/(pi/4*D**2))**2*D/sigma/rho_h phi_lo2 = E + 3.24*F*H/(Fr**0.0454*We**0.035) dP = phi_lo2*dP_lo # Chen modification; Weber number is the same as above # Weber is same Bo = Bond(rhol=rhol, rhog=rhog, sigma=sigma, L=D)/4 # Custom definition if Bo < 2.5: # Actual gas flow, needed for this case only. v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) Omega = 0.0333*Re_lo**0.45/(Re_g**0.09*(1 + 0.5*exp(-Bo))) else: Omega = We**0.2/(2.5 + 0.06*Bo) return dP*Omega def Zhang_Webb(m, x, rhol, mul, P, Pc, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Zhang-Webb (2001) correlation as shown in [1]_ and also given in [2]_. .. math:: \phi_{lo}^2 = (1-x)^2 + 2.87x^2\left(\frac{P}{P_c}\right)^{-1} + 1.68x^{0.8}(1-x)^{0.25}\left(\frac{P}{P_c}\right)^{-1.64} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] P : float Pressure of fluid, [Pa] Pc : float Critical pressure of fluid, [Pa] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Applicable for 0 < x < 1. Corresponding-states method developed with R-134A, R-22 and R-404A in tubes of hydraulic diameters of 2.13 mm, 6.25 mm, and 3.25 mm. For the author's 119 data points, the mean deviation was 11.5%. Recommended for reduced pressures larger than 0.2 and tubes of diameter 1-7 mm. Does not require known properties for the gas phase. Examples -------- >>> Zhang_Webb(m=0.6, x=0.1, rhol=915., mul=180E-6, P=2E5, Pc=4055000, ... D=0.05, roughness=0, L=1) 712.0999804205621 References ---------- .. [1] Zhang, Ming, and Ralph L. Webb. "Correlation of Two-Phase Friction for Refrigerants in Small-Diameter Tubes." Experimental Thermal and Fluid Science 25, no. 3-4 (October 2001): 131-39. doi:10.1016/S0894-1777(01)00066-8. .. [2] Choi, Kwang-Il, A. S. Pamitran, Chun-Young Oh, and Jong-Taek Oh. "Two-Phase Pressure Drop of R-410A in Horizontal Smooth Minichannels." International Journal of Refrigeration 31, no. 1 (January 2008): 119-29. doi:10.1016/j.ijrefrig.2007.06.006. ''' # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) Pr = P/Pc phi_lo2 = (1-x)**2 + 2.87*x**2/Pr + 1.68*x**0.8*(1-x)**0.25*Pr**-1.64 return dP_lo*phi_lo2 def Bankoff(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Bankoff (1960) correlation, as shown in [2]_, [3]_, and [4]_. .. math:: \Delta P_{tp} = \phi_{l}^{7/4} \Delta P_{l} .. math:: \phi_l = \frac{1}{1-x}\left[1 - \gamma\left(1 - \frac{\rho_g}{\rho_l} \right)\right]^{3/7}\left[1 + x\left(\frac{\rho_l}{\rho_g} - 1\right) \right] .. math:: \gamma = \frac{0.71 + 2.35\left(\frac{\rho_g}{\rho_l}\right)} {1 + \frac{1-x}{x} \cdot \frac{\rho_g}{\rho_l}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- This correlation is not actually shown in [1]_. Its origin is unknown. The author recommends against using this. Examples -------- >>> Bankoff(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... D=0.05, roughness=0, L=1) 4746.059442453399 References ---------- .. [1] Bankoff, S. G. "A Variable Density Single-Fluid Model for Two-Phase Flow With Particular Reference to Steam-Water Flow." Journal of Heat Transfer 82, no. 4 (November 1, 1960): 265-72. doi:10.1115/1.3679930. .. [2] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ .. [3] Moreno Quibén, Jesús. "Experimental and Analytical Study of Two- Phase Pressure Drops during Evaporation in Horizontal Tubes," 2005. doi:10.5075/epfl-thesis-3337. .. [4] Mekisso, Henock Mateos. "Comparison of Frictional Pressure Drop Correlations for Isothermal Two-Phase Horizontal Flow." Thesis, Oklahoma State University, 2013. https://shareok.org/handle/11244/11109. ''' # Liquid-only properties, for calculation of dP_lo v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) gamma = (0.71 + 2.35*rhog/rhol)/(1. + (1.-x)/x*rhog/rhol) phi_Bf = 1./(1.-x)*(1 - gamma*(1 - rhog/rhol))**(3/7.)*(1. + x*(rhol/rhog -1.)) return dP_lo*phi_Bf**(7/4.) def Xu_Fang(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Xu and Fang (2013) correlation. Developed after a comprehensive review of available correlations, likely meaning it is quite accurate. .. math:: \Delta P = \Delta P_{lo} \phi_{lo}^2 .. math:: \phi_{lo}^2 = Y^2x^3 + (1-x^{2.59})^{0.632}[1 + 2x^{1.17}(Y^2-1) + 0.00775x^{-0.475} Fr_{tp}^{0.535} We_{tp}^{0.188}] .. math:: Y^2 = \frac{\Delta P_{go}}{\Delta P_{lo}} .. math:: Fr_{tp} = \frac{G_{tp}^2}{gD\rho_{tp}^2} .. math:: We_{tp} = \frac{G_{tp}^2 D}{\sigma \rho_{tp}} .. math:: \frac{1}{\rho_{tp}} = \frac{1-x}{\rho_l} + \frac{x}{\rho_g} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Examples -------- >>> Xu_Fang(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05, roughness=0, L=1) 604.0595632116267 References ---------- .. [1] Xu, Yu, and Xiande Fang. "A New Correlation of Two-Phase Frictional Pressure Drop for Condensing Flow in Pipes." Nuclear Engineering and Design 263 (October 2013): 87-96. doi:10.1016/j.nucengdes.2013.04.017. ''' A = pi/4*D*D # Liquid-only properties, for calculation of E, dP_lo v_lo = m/rhol/A Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) fd_lo = friction_factor(Re=Re_lo, eD=roughness/D) dP_lo = fd_lo*L/D*(0.5*rhol*v_lo**2) # Gas-only properties, for calculation of E v_go = m/rhog/A Re_go = Reynolds(V=v_go, rho=rhog, mu=mug, D=D) fd_go = friction_factor(Re=Re_go, eD=roughness/D) dP_go = fd_go*L/D*(0.5*rhog*v_go**2) # Homogeneous properties, for Froude/Weber numbers voidage_h = homogeneous(x, rhol, rhog) rho_h = rhol*(1-voidage_h) + rhog*voidage_h Q_h = m/rho_h v_h = Q_h/A Fr = Froude(V=v_h, L=D, squared=True) We = Weber(V=v_h, L=D, rho=rho_h, sigma=sigma) Y2 = dP_go/dP_lo phi_lo2 = Y2*x**3 + (1-x**2.59)**0.632*(1 + 2*x**1.17*(Y2-1) + 0.00775*x**-0.475*Fr**0.535*We**0.188) return phi_lo2*dP_lo def Yu_France(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Yu, France, Wambsganss, and Hull (2002) correlation given in [1]_ and reviewed in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: \phi_l^2 = X^{-1.9} .. math:: X = 18.65\left(\frac{\rho_g}{\rho_l}\right)^{0.5}\left(\frac{1-x}{x} \right)\frac{Re_{g}^{0.1}}{Re_l^{0.5}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Examples -------- >>> Yu_France(m=0.6, x=.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... D=0.05, roughness=0, L=1) 1146.983322553957 References ---------- .. [1] Yu, W., D. M. France, M. W. Wambsganss, and J. R. Hull. "Two-Phase Pressure Drop, Boiling Heat Transfer, and Critical Heat Flux to Water in a Small-Diameter Horizontal Tube." International Journal of Multiphase Flow 28, no. 6 (June 2002): 927-41. doi:10.1016/S0301-9322(02)00019-8. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Xu, Yu, Xiande Fang, Xianghui Su, Zhanru Zhou, and Weiwei Chen. "Evaluation of Frictional Pressure Drop Correlations for Two-Phase Flow in Pipes." Nuclear Engineering and Design, SI : CFD4NRS-3, 253 (December 2012): 86-97. doi:10.1016/j.nucengdes.2012.08.007. ''' # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) X = 18.65*(rhog/rhol)**0.5*(1-x)/x*Re_g**0.1/Re_l**0.5 phi_l2 = X**-1.9 return phi_l2*dP_l def Wang_Chiang_Lu(m, x, rhol, rhog, mul, mug, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Wang, Chiang, and Lu (1997) correlation given in [1]_ and reviewed in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{g} \phi_g^2 .. math:: \phi_g^2 = 1 + 9.397X^{0.62} + 0.564X^{2.45} \text{ for } G >= 200 kg/m^2/s .. math:: \phi_g^2 = 1 + CX + X^2 \text{ for lower mass fluxes} .. math:: C = 0.000004566X^{0.128}Re_{lo}^{0.938}\left(\frac{\rho_l}{\rho_g} \right)^{-2.15}\left(\frac{\mu_l}{\mu_g}\right)^{5.1} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Examples -------- >>> Wang_Chiang_Lu(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, roughness=0, L=1) 448.29981978639154 References ---------- .. [1] Wang, Chi-Chuan, Ching-Shan Chiang, and Ding-Chong Lu. "Visual Observation of Two-Phase Flow Pattern of R-22, R-134a, and R-407C in a 6.5-Mm Smooth Tube." Experimental Thermal and Fluid Science 15, no. 4 (November 1, 1997): 395-405. doi:10.1016/S0894-1777(97)00007-1. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Xu, Yu, Xiande Fang, Xianghui Su, Zhanru Zhou, and Weiwei Chen. "Evaluation of Frictional Pressure Drop Correlations for Two-Phase Flow in Pipes." Nuclear Engineering and Design, SI : CFD4NRS-3, 253 (December 2012): 86-97. doi:10.1016/j.nucengdes.2012.08.007. ''' G_tp = m/(pi/4*D**2) # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g, eD=roughness/D) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) X = (dP_l/dP_g)**0.5 if G_tp >= 200: phi_g2 = 1 + 9.397*X**0.62 + 0.564*X**2.45 else: # Liquid-only flow; Re_lo is oddly needed v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) C = 0.000004566*X**0.128*Re_lo**0.938*(rhol/rhog)**-2.15*(mul/mug)**5.1 phi_g2 = 1 + C*X + X**2 return dP_g*phi_g2 def Hwang_Kim(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Hwang and Kim (2006) correlation as in [1]_, also presented in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: C = 0.227 Re_{lo}^{0.452} X^{-0.32} Co^{-0.82} .. math:: \phi_l^2 = 1 + \frac{C}{X} + \frac{1}{X^2} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Developed with data for microtubes of diameter 0.244 mm and 0.792 mm only. Not likely to be suitable to larger diameters. Examples -------- >>> Hwang_Kim(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.003, roughness=0, L=1) 798.302774184557 References ---------- .. [1] Hwang, Yun Wook, and Min Soo Kim. "The Pressure Drop in Microtubes and the Correlation Development." International Journal of Heat and Mass Transfer 49, no. 11-12 (June 2006): 1804-12. doi:10.1016/j.ijheatmasstransfer.2005.10.040. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Xu, Yu, Xiande Fang, Xianghui Su, Zhanru Zhou, and Weiwei Chen. "Evaluation of Frictional Pressure Drop Correlations for Two-Phase Flow in Pipes." Nuclear Engineering and Design, SI : CFD4NRS-3, 253 (December 2012): 86-97. doi:10.1016/j.nucengdes.2012.08.007. ''' # Liquid-only flow v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g, eD=roughness/D) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) # Actual model X = (dP_l/dP_g)**0.5 Co = Confinement(D=D, rhol=rhol, rhog=rhog, sigma=sigma) C = 0.227*Re_lo**0.452*X**-0.320*Co**-0.820 phi_l2 = 1 + C/X + 1./X**2 return dP_l*phi_l2 def Zhang_Hibiki_Mishima(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1, flowtype='adiabatic vapor'): r'''Calculates two-phase pressure drop with the Zhang, Hibiki, Mishima and (2010) correlation as in [1]_, also presented in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: \phi_l^2 = 1 + \frac{C}{X} + \frac{1}{X^2} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} For adiabatic liquid-vapor two-phase flow: .. math:: C = 21[1 - \exp(-0.142/Co)] For adiabatic liquid-gas two-phase flow: .. math:: C = 21[1 - \exp(-0.674/Co)] For flow boiling: .. math:: C = 21[1 - \exp(-0.358/Co)] Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] flowtype : str One of 'adiabatic vapor', 'adiabatic gas', or 'flow boiling' Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Seems fairly reliable. Examples -------- >>> Zhang_Hibiki_Mishima(m=0.0005, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, sigma=0.0487, D=0.003, roughness=0, L=1) 444.9718476894804 References ---------- .. [1] Zhang, W., T. Hibiki, and K. Mishima. "Correlations of Two-Phase Frictional Pressure Drop and Void Fraction in Mini-Channel." International Journal of Heat and Mass Transfer 53, no. 1-3 (January 15, 2010): 453-65. doi:10.1016/j.ijheatmasstransfer.2009.09.011. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Xu, Yu, Xiande Fang, Xianghui Su, Zhanru Zhou, and Weiwei Chen. "Evaluation of Frictional Pressure Drop Correlations for Two-Phase Flow in Pipes." Nuclear Engineering and Design, SI : CFD4NRS-3, 253 (December 2012): 86-97. doi:10.1016/j.nucengdes.2012.08.007. ''' # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g, eD=roughness/D) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) # Actual model X = (dP_l/dP_g)**0.5 Co = Confinement(D=D, rhol=rhol, rhog=rhog, sigma=sigma) if flowtype == 'adiabatic vapor': C = 21*(1 - exp(-0.142/Co)) elif flowtype == 'adiabatic gas': C = 21*(1 - exp(-0.674/Co)) elif flowtype == 'flow boiling': C = 21*(1 - exp(-0.358/Co)) else: raise Exception("Only flow types 'adiabatic vapor', 'adiabatic gas, \ and 'flow boiling' are recognized.") phi_l2 = 1 + C/X + 1./X**2 return dP_l*phi_l2 def Mishima_Hibiki(m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1): r'''Calculates two-phase pressure drop with the Mishima and Hibiki (1996) correlation as in [1]_, also presented in [2]_ and [3]_. .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: C = 21[1 - \exp(-319D)] .. math:: \phi_l^2 = 1 + \frac{C}{X} + \frac{1}{X^2} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Examples -------- >>> Mishima_Hibiki(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, sigma=0.0487, D=0.05, roughness=0, L=1) 732.4268200606265 References ---------- .. [1] Mishima, K., and T. Hibiki. "Some Characteristics of Air-Water Two- Phase Flow in Small Diameter Vertical Tubes." International Journal of Multiphase Flow 22, no. 4 (August 1, 1996): 703-12. doi:10.1016/0301-9322(96)00010-9. .. [2] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [3] Xu, Yu, Xiande Fang, Xianghui Su, Zhanru Zhou, and Weiwei Chen. "Evaluation of Frictional Pressure Drop Correlations for Two-Phase Flow in Pipes." Nuclear Engineering and Design, SI : CFD4NRS-3, 253 (December 2012): 86-97. doi:10.1016/j.nucengdes.2012.08.007. ''' # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l, eD=roughness/D) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g, eD=roughness/D) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) # Actual model X = (dP_l/dP_g)**0.5 C = 21*(1 - exp(-0.319E3*D)) phi_l2 = 1 + C/X + 1./X**2 return dP_l*phi_l2 def Kim_Mudawar(m, x, rhol, rhog, mul, mug, sigma, D, L=1): r'''Calculates two-phase pressure drop with the Kim and Mudawar (2012) correlation as in [1]_, also presented in [2]_. .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: \phi_l^2 = 1 + \frac{C}{X} + \frac{1}{X^2} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} For turbulent liquid, turbulent gas: .. math:: C = 0.39Re_{lo}^{0.03} Su_{go}^{0.10}\left(\frac{\rho_l}{\rho_g} \right)^{0.35} For turbulent liquid, laminar gas: .. math:: C = 8.7\times 10^{-4} Re_{lo}^{0.17} Su_{go}^{0.50}\left(\frac{\rho_l} {\rho_g}\right)^{0.14} For laminar liquid, turbulent gas: .. math:: C = 0.0015 Re_{lo}^{0.59} Su_{go}^{0.19}\left(\frac{\rho_l}{\rho_g} \right)^{0.36} For laminar liquid, laminar gas: .. math:: C = 3.5\times 10^{-5} Re_{lo}^{0.44} Su_{go}^{0.50}\left(\frac{\rho_l} {\rho_g}\right)^{0.48} This model has its own friction factor calculations, to be consistent with its Reynolds number transition. As their model was regressed with these equations, more error is obtained when using any other friction factor calculation. The laminar equation 64/Re is used up to Re=2000, then the Blasius equation with a coefficient of 0.316, and above Re = 20000, .. math:: f_d = \frac{0.184}{Re^{0.2}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] L : float, optional Length of pipe, [m] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- The critical Reynolds number in this model is 2000, with a Reynolds number definition using actual liquid and gas flows. This model also requires liquid-only Reynolds number to be calculated. No attempt to incorporate roughness into the model was made in [1]_. The model was developed with hydraulic diameter from 0.0695 to 6.22 mm, mass velocities 4 to 8528 kg/m^2/s, flow qualities from 0 to 1, reduced pressures from 0.0052 to 0.91, superficial liquid Reynolds numbers up to 79202, superficial gas Reynolds numbers up to 253810, liquid-only Reynolds numbers up to 89798, 7115 data points from 36 sources and working fluids air, CO2, N2, water, ethanol, R12, R22, R134a, R236ea, R245fa, R404A, R407C, propane, methane, and ammonia. Examples -------- >>> Kim_Mudawar(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05, L=1) 840.4137796786074 References ---------- .. [1] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. .. [2] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' def friction_factor(Re): if Re < 2000: return 64./Re elif Re < 20000: return 0.316*Re**-0.25 else: return 0.184*Re**-0.2 # Actual Liquid flow v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) fd_l = friction_factor(Re=Re_l) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) # Actual gas flow v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) fd_g = friction_factor(Re=Re_g) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) # Liquid-only flow v_lo = m/rhol/(pi/4*D**2) Re_lo = Reynolds(V=v_lo, rho=rhol, mu=mul, D=D) Su = Suratman(L=D, rho=rhog, mu=mug, sigma=sigma) X = (dP_l/dP_g)**0.5 Re_c = 2000 # Transition Reynolds number if Re_l < Re_c and Re_g < Re_c: C = 3.5E-5*Re_lo**0.44*Su**0.5*(rhol/rhog)**0.48 elif Re_l < Re_c and Re_g >= Re_c: C = 0.0015*Re_lo**0.59*Su**0.19*(rhol/rhog)**0.36 elif Re_l >= Re_c and Re_g < Re_c: C = 8.7E-4*Re_lo**0.17*Su**0.5*(rhol/rhog)**0.14 else: # Turbulent case C = 0.39*Re_lo**0.03*Su**0.10*(rhol/rhog)**0.35 phi_l2 = 1 + C/X + 1./X**2 return dP_l*phi_l2 def Lockhart_Martinelli(m, x, rhol, rhog, mul, mug, D, L=1, Re_c=2000): r'''Calculates two-phase pressure drop with the Lockhart and Martinelli (1949) correlation as presented in non-graphical form by Chisholm (1967). .. math:: \Delta P = \Delta P_{l} \phi_{l}^2 .. math:: \phi_l^2 = 1 + \frac{C}{X} + \frac{1}{X^2} .. math:: X^2 = \frac{\Delta P_l}{\Delta P_g} +---------+---------+--+ |Liquid |Gas |C | +=========+=========+==+ |Turbulent|Turbulent|20| +---------+---------+--+ |Laminar |Turbulent|12| +---------+---------+--+ |Turbulent|Laminar |10| +---------+---------+--+ |Laminar |Laminar |5 | +---------+---------+--+ This model has its own friction factor calculations, to be consistent with its Reynolds number transition and the procedure specified in the original work. The equation 64/Re is used up to Re_c, and above it the Blasius equation is used as follows: .. math:: f_d = \frac{0.184}{Re^{0.2}} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] L : float, optional Length of pipe, [m] Re_c : float, optional Transition Reynolds number, used to decide which friction factor equation to use and which C value to use from the table above. Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] Notes ----- Developed for horizontal flow. Very popular. Many implementations of this model assume turbulent-turbulent flow. The original model proposed that the transition Reynolds number was 1000 for laminar flow, and 2000 for turbulent flow; it proposed no model for Re_l < 1000 and Re_g between 1000 and 2000 and also Re_g < 1000 and Re_l between 1000 and 2000. No correction is available in this model for rough pipe. [3]_ examined the original data in [1]_ again, and fit more curves to the data, separating them into different flow regimes. There were 229 datum in the turbulent-turbulent regime, 9 in the turbulent-laminar regime, 339 in the laminar-turbulent regime, and 42 in the laminar-laminar regime. Errors from [3]_'s curves were 13.4%, 3.5%, 14.3%, and 12.0% for the above regimes, respectively. [2]_'s fits provide further error. Examples -------- >>> Lockhart_Martinelli(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, ... mug=14E-6, D=0.05, L=1) 716.4695654888484 References ---------- .. [1] Lockhart, R. W. & Martinelli, R. C. (1949), "Proposed correlation of data for isothermal two-phase, two-component flow in pipes", Chemical Engineering Progress 45 (1), 39-48. .. [2] Chisholm, D."A Theoretical Basis for the Lockhart-Martinelli Correlation for Two-Phase Flow." International Journal of Heat and Mass Transfer 10, no. 12 (December 1967): 1767-78. doi:10.1016/0017-9310(67)90047-6. .. [3] Cui, Xiaozhou, and John J. J. Chen."A Re-Examination of the Data of Lockhart-Martinelli." International Journal of Multiphase Flow 36, no. 10 (October 2010): 836-46. doi:10.1016/j.ijmultiphaseflow.2010.06.001. .. [4] Kim, Sung-Min, and Issam Mudawar. "Universal Approach to Predicting Two-Phase Frictional Pressure Drop for Adiabatic and Condensing Mini/ Micro-Channel Flows." International Journal of Heat and Mass Transfer 55, no. 11-12 (May 2012): 3246-61. doi:10.1016/j.ijheatmasstransfer.2012.02.047. ''' def friction_factor(Re): # As in the original model if Re < Re_c: return 64./Re else: return 0.184*Re**-0.2 v_l = m*(1-x)/rhol/(pi/4*D**2) Re_l = Reynolds(V=v_l, rho=rhol, mu=mul, D=D) v_g = m*x/rhog/(pi/4*D**2) Re_g = Reynolds(V=v_g, rho=rhog, mu=mug, D=D) if Re_l < Re_c and Re_g < Re_c: C = 5.0 elif Re_l < Re_c and Re_g >= Re_c: # Liquid laminar, gas turbulent C = 12.0 elif Re_l >= Re_c and Re_g < Re_c: # Liquid turbulent, gas laminar C = 10.0 else: # Turbulent case C = 20.0 fd_l = friction_factor(Re=Re_l) dP_l = fd_l*L/D*(0.5*rhol*v_l**2) fd_g = friction_factor(Re=Re_g) dP_g = fd_g*L/D*(0.5*rhog*v_g**2) X = (dP_l/dP_g)**0.5 phi_l2 = 1 + C/X + 1./X**2 return dP_l*phi_l2 two_phase_correlations = { # 0 index, args are: m, x, rhol, mul, P, Pc, D, roughness=0, L=1 'Zhang_Webb': (Zhang_Webb, 0), # 1 index, args are: m, x, rhol, rhog, mul, mug, D, L=1 'Lockhart_Martinelli': (Lockhart_Martinelli, 1), # 2 index, args are: m, x, rhol, rhog, mul, mug, D, roughness=0, L=1 'Bankoff': (Bankoff, 2), 'Baroczy_Chisholm': (Baroczy_Chisholm, 2), 'Chisholm': (Chisholm, 2), 'Gronnerud': (Gronnerud, 2), 'Jung_Radermacher': (Jung_Radermacher, 2), 'Muller_Steinhagen_Heck': (Muller_Steinhagen_Heck, 2), 'Theissing': (Theissing, 2), 'Wang_Chiang_Lu': (Wang_Chiang_Lu, 2), 'Yu_France': (Yu_France, 2), # 3 index, args are: m, x, rhol, rhog, mul, mug, sigma, D, L=1 'Kim_Mudawar': (Kim_Mudawar, 3), # 4 index, args are: m, x, rhol, rhog, mul, mug, sigma, D, roughness=0, L=1 'Friedel': (Friedel, 4), 'Hwang_Kim': (Hwang_Kim, 4), 'Mishima_Hibiki': (Mishima_Hibiki, 4), 'Tran': (Tran, 4), 'Xu_Fang': (Xu_Fang, 4), 'Zhang_Hibiki_Mishima': (Zhang_Hibiki_Mishima, 4), 'Chen_Friedel': (Chen_Friedel, 4), # 5 index: args are m, x, rhol, rhog, sigma, D, L=1 'Lombardi_Pedrocchi': (Lombardi_Pedrocchi, 5), # Misc indexes: 'Chisholm rough': (Chisholm, 101), 'Zhang_Hibiki_Mishima adiabatic gas': (Zhang_Hibiki_Mishima, 102), 'Zhang_Hibiki_Mishima flow boiling': (Zhang_Hibiki_Mishima, 103), 'Beggs-Brill': (Beggs_Brill, 104) } def two_phase_dP(m, x, rhol, D, L=1, rhog=None, mul=None, mug=None, sigma=None, P=None, Pc=None, roughness=0, angle=0, Method=None, AvailableMethods=False): r'''This function handles calculation of two-phase liquid-gas pressure drop for flow inside channels. 23 calculation methods are available, with varying input requirements. A correlation will be automatically selected if none is specified. The full list of correlation can be obtained with the `AvailableMethods` flag. If no correlation is selected, the following rules are used, with the earlier options attempted first: * If rhog, mul, mug, and sigma are specified, use the Kim_Mudawar model * If rhog, mul, and mug are specified, use the Chisholm model * If mul, P, and Pc are specified, use the Zhang_Webb model * If rhog and sigma are specified, use the Lombardi_Pedrocchi model Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] D : float Diameter of pipe, [m] L : float, optional Length of pipe, [m] rhog : float, optional Gas density, [kg/m^3] mul : float, optional Viscosity of liquid, [Pa*s] mug : float, optional Viscosity of gas, [Pa*s] sigma : float, optional Surface tension, [N/m] P : float, optional Pressure of fluid, [Pa] Pc : float, optional Critical pressure of fluid, [Pa] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] angle : float, optional The angle of the pipe with respect to the horizontal, [degrees] Returns ------- dP : float Pressure drop of the two-phase flow, [Pa] methods : list, only returned if AvailableMethods == True List of methods which can be used to calculate two-phase pressure drop with the given inputs. Other Parameters ---------------- Method : string, optional A string of the function name to use, as in the dictionary two_phase_correlations. AvailableMethods : bool, optional If True, function will consider which methods which can be used to calculate two-phase pressure drop with the given inputs and return them as a list instead of performing a calculation. Notes ----- These functions may be integrated over, with properties recalculated as the fluid's quality changes. This model considers only the frictional pressure drop, not that due to gravity or acceleration. Examples -------- >>> two_phase_dP(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05, L=1) 840.4137796786074 ''' def list_methods(): usable_indices = [] if all([rhog, sigma]): usable_indices.append(5) if all([rhog, mul, mug, sigma]): usable_indices.extend([4, 3, 102, 103]) # Differs only in the addition of roughness if all([rhog, mul, mug]): usable_indices.extend([1,2, 101]) # Differs only in the addition of roughness if all([mul, P, Pc]): usable_indices.append(0) if all([rhog, mul, mug, sigma, P, angle]): usable_indices.append(104) return [key for key, value in two_phase_correlations.items() if value[1] in usable_indices] if AvailableMethods: return list_methods() if not Method: if all([rhog, mul, mug, sigma]): Method = 'Kim_Mudawar' # Kim_Mudawar preferred; 3 or 4 elif all([rhog, mul, mug]): Method = 'Chisholm' # Second choice, indexes 1 or 2 elif all([mul, P, Pc,]) : Method = 'Zhang_Webb' # Not a good choice elif all([rhog, sigma]): Method = 'Lombardi_Pedrocchi' # Last try else: raise Exception('All possible methods require more information \ than provided; provide more inputs!') if Method in two_phase_correlations: f, i = two_phase_correlations[Method] if i == 0: return f(m=m, x=x, rhol=rhol, mul=mul, P=P, Pc=Pc, D=D, roughness=roughness, L=L) elif i == 1: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, D=D, L=L) elif i == 2: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, D=D, L=L, roughness=roughness) elif i == 3: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, sigma=sigma, D=D, L=L) elif i == 4: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, sigma=sigma, D=D, L=L, roughness=roughness) elif i == 5: return f(m=m, x=x, rhol=rhol, rhog=rhog, sigma=sigma, D=D, L=L) elif i == 101: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, D=D, L=L, roughness=roughness, rough_correction=True) elif i == 102: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, sigma=sigma, D=D, L=L, roughness=roughness, flowtype='adiabatic gas') elif i == 103: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, sigma=sigma, D=D, L=L, roughness=roughness, flowtype='flow boiling') elif i == 104: return f(m=m, x=x, rhol=rhol, rhog=rhog, mul=mul, mug=mug, sigma=sigma, P=P, D=D, angle=angle, L=L, roughness=roughness, acceleration=False, g=g) else: raise Exception('Failure in in function') def two_phase_dP_acceleration(m, D, xi, xo, alpha_i, alpha_o, rho_li, rho_gi, rho_lo=None, rho_go=None): r'''This function handles calculation of two-phase liquid-gas pressure drop due to acceleration for flow inside channels. This is a discrete calculation for a segment with a known difference in quality (and ideally known inlet and outlet pressures so density dependence can be included). .. math:: \Delta P_{acc} = G^2\left\{\left[\frac{(1-x_o)^2}{\rho_{l,o} (1-\alpha_o)} + \frac{x_o^2}{\rho_{g,o}\alpha_o} \right] - \left[\frac{(1-x_i)^2}{\rho_{l,i}(1-\alpha_i)} + \frac{x_i^2}{\rho_{g,i}\alpha_i} \right]\right\} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] D : float Diameter of pipe, [m] xi : float Quality of fluid at inlet, [-] xo : float Quality of fluid at outlet, [-] alpha_i : float Void fraction at inlet (area of gas / total area of channel), [-] alpha_o : float Void fraction at outlet (area of gas / total area of channel), [-] rho_li : float Liquid phase density at inlet, [kg/m^3] rho_gi : float Gas phase density at inlet, [kg/m^3] rho_lo : float, optional Liquid phase density at outlet, [kg/m^3] rho_go : float, optional Gas phase density at outlet, [kg/m^3] Returns ------- dP : float Acceleration component of pressure drop for two-phase flow, [Pa] Notes ----- The use of different gas and liquid phase densities at the inlet and outlet is optional; the outlet densities conditions will be assumed to be those of the inlet if they are not specified. There is a continuous variant of this method which can be integrated over, at the expense of a speed. The differential form of this is as follows ([1]_, [3]_): .. math:: - \left(\frac{d P}{dz}\right)_{acc} = G^2 \frac{d}{dz} \left[\frac{ (1-x)^2}{\rho_l(1-\alpha)} + \frac{x^2}{\rho_g\alpha}\right] Examples -------- >>> two_phase_dP_acceleration(m=1, D=0.1, xi=0.372, xo=0.557, rho_li=827.1, ... rho_gi=3.919, alpha_i=0.992, alpha_o=0.996) 706.8560377214725 References ---------- .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. doi:10.1016/j.expthermflusci.2008.07.006. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' G = 4*m/(pi*D*D) if rho_lo is None: rho_lo = rho_li if rho_go is None: rho_go = rho_gi in_term = (1.-xi)**2/(rho_li*(1.-alpha_i)) + xi*xi/(rho_gi*alpha_i) out_term = (1.-xo)**2/(rho_lo*(1.-alpha_o)) + xo*xo/(rho_go*alpha_o) return G*G*(out_term - in_term) def two_phase_dP_dz_acceleration(m, D, x, rhol, rhog, dv_dP_l, dv_dP_g, dx_dP, dP_dL, dA_dL): r'''This function handles calculation of two-phase liquid-gas pressure drop due to acceleration for flow inside channels. This is a continuous calculation, providing the differential in pressure per unit length and should be called as part of an integration routine ([1]_, [2]_, [3]_). .. math:: -\left(\frac{\partial P}{\partial L}\right)_{A} = G^2 \left(\left(\frac{1}{\rho_g} - \frac{1}{\rho_l}\right)\frac{\partial P} {\partial L}\frac{\partial x}{\partial P} + \frac{\partial P}{\partial L}\left[x \frac{\partial (1/\rho_g)} {\partial P} + (1-x) \frac{\partial (1/\rho_l)}{\partial P} \right] \right) - \frac{G^2}{\rho_{hom}}\frac{1}{A}\frac{\partial A} {\partial L} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] D : float Diameter of pipe, [m] x : float Quality of fluid [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] dv_dP_l : float Derivative of mass specific volume of the liquid phase with respect to pressure, [m^3/(kg*Pa)] dv_dP_g : float Derivative of mass specific volume of the gas phase with respect to pressure, [m^3/(kg*Pa)] dx_dP : float Derivative of mass quality of the two-phase fluid with respect to pressure (numerical derivatives may be convenient for this), [1/Pa] dP_dL : float Pressure drop per unit length of pipe, [Pa/m] dA_dL : float Change in area of pipe per unit length of pipe, [m^2/m] Returns ------- dP_dz : float Acceleration component of pressure drop for two-phase flow, [Pa/m] Notes ----- This calculation has the `homogeneous` model built in to it as its derivation is shown in [1]_. The discrete calculation is more flexible as different void fractions may be used. Examples -------- >>> two_phase_dP_dz_acceleration(m=1, D=0.1, x=0.372, rhol=827.1, ... rhog=3.919, dv_dP_l=-5e-12, dv_dP_g=-4e-7, dx_dP=-2e-7, dP_dL=120.0, ... dA_dL=0.0001) 20.137876617489034 References ---------- .. [1] Shoham, Ovadia. Mechanistic Modeling of Gas-Liquid Two-Phase Flow in Pipes. Pap/Cdr edition. Richardson, TX: Society of Petroleum Engineers, 2006. .. [2] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' A = 0.25*pi*D*D G = m/A t1 = (1.0/rhog - 1.0/rhol)*dP_dL*dx_dP + dP_dL*(x*dv_dP_g + (1.0 - x)*dv_dP_l) voidage_h = homogeneous(x, rhol, rhog) rho_h = rhol*(1.0 - voidage_h) + rhog*voidage_h return -G*G*(t1 - dA_dL/(rho_h*A)) def two_phase_dP_gravitational(angle, z, alpha_i, rho_li, rho_gi, alpha_o=None, rho_lo=None, rho_go=None, g=g): r'''This function handles calculation of two-phase liquid-gas pressure drop due to gravitation for flow inside channels. This is a discrete calculation for a segment with a known difference in elevation (and ideally known inlet and outlet pressures so density dependence can be included). .. math:: - \Delta P_{grav} = g \sin \theta z \left\{\frac{ [\alpha_o\rho_{g,o} + (1-\alpha_o)\rho_{l,o}] + [\alpha_i\rho_{g,i} + (1-\alpha_i)\rho_{l,i}]} {2}\right\} Parameters ---------- angle : float The angle of the pipe with respect to the horizontal, [degrees] z : float The total length of the pipe, [m] alpha_i : float Void fraction at inlet (area of gas / total area of channel), [-] rho_li : float Liquid phase density at inlet, [kg/m^3] rho_gi : float Gas phase density at inlet, [kg/m^3] alpha_o : float, optional Void fraction at outlet (area of gas / total area of channel), [-] rho_lo : float, optional Liquid phase density at outlet, [kg/m^3] rho_go : float, optional Gas phase density at outlet, [kg/m^3] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- dP : float Gravitational component of pressure drop for two-phase flow, [Pa] Notes ----- The use of different gas and liquid phase densities and void fraction at the inlet and outlet is optional; the outlet densities and void fraction will be assumed to be those of the inlet if they are not specified. This does not add much accuracy. There is a continuous variant of this method which can be integrated over, at the expense of a speed. The differential form of this is as follows ([1]_, [2]_): .. math:: -\left(\frac{dP}{dz} \right)_{grav} = [\alpha\rho_g + (1-\alpha) \rho_l]g \sin \theta Examples -------- Example calculation, page 13-2 from [3]_: >>> two_phase_dP_gravitational(angle=90, z=2, alpha_i=0.9685, rho_li=1518., ... rho_gi=2.6) 987.237416829999 The same calculation, but using average inlet and outlet conditions: >>> two_phase_dP_gravitational(angle=90, z=2, alpha_i=0.9685, rho_li=1518., ... rho_gi=2.6, alpha_o=0.968, rho_lo=1517.9, rho_go=2.59) 994.5416058829999 References ---------- .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. .. [2] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. .. [3] Thome, John R. "Engineering Data Book III." Wolverine Tube Inc (2004). http://www.wlv.com/heat-transfer-databook/ ''' if rho_lo is None: rho_lo = rho_li if rho_go is None: rho_go = rho_gi if alpha_o is None: alpha_o = alpha_i angle = radians(angle) in_term = alpha_i*rho_gi + (1. - alpha_i)*rho_li out_term = alpha_o*rho_go + (1. - alpha_o)*rho_lo return g*z*sin(angle)*(out_term + in_term)/2. def two_phase_dP_dz_gravitational(angle, alpha, rhol, rhog, g=g): r'''This function handles calculation of two-phase liquid-gas pressure drop due to gravitation for flow inside channels. This is a differential calculation for a segment with an infinitesimal difference in elevation for use in performing integration over a pipe as shown in [1]_ and [2]_. .. math:: -\left(\frac{dP}{dz} \right)_{grav} = [\alpha\rho_g + (1-\alpha) \rho_l]g \sin \theta Parameters ---------- angle : float The angle of the pipe with respect to the horizontal, [degrees] alpha : float Void fraction (area of gas / total area of channel), [-] rhol : float Liquid phase density, [kg/m^3] rhog : float Gas phase density, [kg/m^3] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- dP_dz : float Gravitational component of pressure drop for two-phase flow, [Pa/m] Notes ----- Examples -------- >>> two_phase_dP_dz_gravitational(angle=90, alpha=0.9685, rhol=1518, ... rhog=2.6) 493.6187084149995 References ---------- .. [1] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. .. [2] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' angle = radians(angle) return g*sin(angle)*(alpha*rhog + (1. - alpha)*rhol) Dukler_XA_tck = implementation_optimize_tck([[-2.4791105294648372, -2.4791105294648372, -2.4791105294648372, -2.4791105294648372, 0.14360803483759585, 1.7199938263676038, 1.7199938263676038, 1.7199938263676038, 1.7199938263676038], [0.21299880246561081, 0.16299733301915248, -0.042340970712679615, -1.9967836909384598, -2.9917366639619414, 0.0, 0.0, 0.0, 0.0], 3]) Dukler_XC_tck = implementation_optimize_tck([[-1.8323873272724698, -1.8323873272724698, -1.8323873272724698, -1.8323873272724698, -0.15428198203334137, 1.7031193462360779, 1.7031193462360779, 1.7031193462360779, 1.7031193462360779], [0.2827776229531682, 0.6207113329042158, 1.0609541626742232, 0.44917638072891825, 0.014664597632360495, 0.0, 0.0, 0.0, 0.0], 3]) Dukler_XD_tck = implementation_optimize_tck([[0.2532652936901574, 0.2532652936901574, 0.2532652936901574, 0.2532652936901574, 3.5567847823070253, 3.5567847823070253, 3.5567847823070253, 3.5567847823070253], [0.09054274779541564, -0.05102629221303253, -0.23907463153703945, -0.7757156285450911, 0.0, 0.0, 0.0, 0.0], 3]) XA_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XA_tck)) XC_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XC_tck)) XD_interp_obj = lambda x: 10**float(splev(log10(x), Dukler_XD_tck)) def Taitel_Dukler_regime(m, x, rhol, rhog, mul, mug, D, angle, roughness=0, g=g, full_output=False): r'''Classifies the regime of a two-phase flow according to Taitel and Dukler (1976) ([1]_, [2]_). The flow regimes in this method are 'annular', 'bubbly', 'intermittent', 'stratified wavy', and 'stratified smooth'. The parameters used are 'X', 'T', 'F', and 'K'. .. math:: X = \left[\frac{(dP/dL)_{l,s,f}}{(dP/dL)_{g,s,f}}\right]^{0.5} .. math:: T = \left[\frac{(dP/dL)_{l,s,f}}{(\rho_l-\rho_g)g\cos\theta}\right]^{0.5} .. math:: F = \sqrt{\frac{\rho_g}{(\rho_l-\rho_g)}} \frac{v_{g,s}}{\sqrt{D g \cos\theta}} .. math:: K = F\left[\frac{D v_{l,s}}{\nu_l} \right]^{0.5} = F \sqrt{Re_{l,s}} Note that 'l' refers to liquid, 'g' gas, 'f' friction-only, and 's' superficial (i.e. if only the mass flow of that phase were flowing in the pipe). Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Mass quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] D : float Diameter of pipe, [m] angle : float The angle of the pipe with respect to the horizontal, [degrees] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] g : float, optional Acceleration due to gravity, [m/s^2] full_output : bool, optional When True, returns a dictionary with the values 'F', 'X', 'T', and 'K' - the parameters used internally to determine where on the plot the regime occurs, [-] Returns ------- regime : str One of 'annular', 'bubbly', 'intermittent', 'stratified wavy', 'stratified smooth', [-] Notes ----- The original friction factor used in this model is that of Blasius. Examples -------- >>> Taitel_Dukler_regime(m=0.6, x=0.112, rhol=915.12, rhog=2.67, ... mul=180E-6, mug=14E-6, D=0.05, roughness=0, angle=0) 'annular' References ---------- .. [1] Taitel, Yemada, and A. E. Dukler. "A Model for Predicting Flow Regime Transitions in Horizontal and near Horizontal Gas-Liquid Flow." AIChE Journal 22, no. 1 (January 1, 1976): 47-55. doi:10.1002/aic.690220105. .. [2] Brill, James P., and Howard Dale Beggs. Two-Phase Flow in Pipes, 1994. .. [3] Shoham, Ovadia. Mechanistic Modeling of Gas-Liquid Two-Phase Flow in Pipes. Pap/Cdr edition. Richardson, TX: Society of Petroleum Engineers, 2006. ''' angle = radians(angle) A = 0.25*pi*D*D # Liquid-superficial properties, for calculation of dP_ls, dP_ls # Paper and Brill Beggs 1991 confirms not v_lo but v_sg v_ls = m*(1.0 - x)/(rhol*A) Re_ls = Reynolds(V=v_ls, rho=rhol, mu=mul, D=D) fd_ls = friction_factor(Re=Re_ls, eD=roughness/D) dP_ls = fd_ls/D*(0.5*rhol*v_ls*v_ls) # Gas-superficial properties, for calculation of dP_gs v_gs = m*x/(rhog*A) Re_gs = Reynolds(V=v_gs, rho=rhog, mu=mug, D=D) fd_gs = friction_factor(Re=Re_gs, eD=roughness/D) dP_gs = fd_gs/D*(0.5*rhog*v_gs*v_gs) X = (dP_ls/dP_gs)**0.5 F = (rhog/(rhol-rhog))**0.5*v_gs*(D*g*cos(angle))**-0.5 # Paper only uses kinematic viscosity nul = mul/rhol T = (dP_ls/((rhol-rhog)*g*cos(angle)))**0.5 K = (rhog*v_gs*v_gs*v_ls/((rhol-rhog)*g*nul*cos(angle)))**0.5 F_A_at_X = XA_interp_obj(X) X_B_transition = 1.7917 # Roughly if F >= F_A_at_X and X <= X_B_transition: regime = 'annular' elif F >= F_A_at_X: T_D_at_X = XD_interp_obj(X) if T >= T_D_at_X: regime = 'bubbly' else: regime = 'intermittent' else: K_C_at_X = XC_interp_obj(X) if K >= K_C_at_X: regime = 'stratified wavy' else: regime = 'stratified smooth' if full_output: res = {} res['F'] = F res['T'] = T res['K'] = K res['X'] = X if full_output: return regime, res return regime def Mandhane_Gregory_Aziz_regime(m, x, rhol, rhog, mul, mug, sigma, D, full_output=False): r'''Classifies the regime of a two-phase flow according to Mandhane, Gregory, and Azis (1974) flow map. The flow regimes in this method are 'elongated bubble', 'stratified', 'annular mist', 'slug', 'dispersed bubble', and 'wave'. The parameters used are just the superficial liquid and gas velocity (i.e. if only the mass flow of that phase were flowing in the pipe). Parameters ---------- m : float Mass flow rate of fluid, [kg/s] x : float Mass quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] sigma : float Surface tension, [N/m] D : float Diameter of pipe, [m] full_output : bool, optional When True, returns a dictionary with the values 'v_gs', 'v_ls', - the parameters used internally to determine where on the plot the regime occurs, [-] Returns ------- regime : str One of 'elongated bubble', 'stratified', 'annular mist', 'slug', 'dispersed bubble', or 'wave', [-] Notes ----- [1]_ contains a Fortran implementation of this model, which this has been validated against. This is a very fast flow map as all transitions were spelled out with clean transitions. Examples -------- >>> Mandhane_Gregory_Aziz_regime(m=0.6, x=0.112, rhol=915.12, rhog=2.67, ... mul=180E-6, mug=14E-6, sigma=0.065, D=0.05) 'slug' References ---------- .. [1] Mandhane, J. M., G. A. Gregory, and K. Aziz. "A Flow Pattern Map for Gas-liquid Flow in Horizontal Pipes." International Journal of Multiphase Flow 1, no. 4 (October 30, 1974): 537-53. doi:10.1016/0301-9322(74)90006-8. ''' A = 0.25*pi*D*D Vsl = m*(1.0 - x)/(rhol*A) Vsg = m*x/(rhog*A) # Convert to imperial units Vsl, Vsg = Vsl/0.3048, Vsg/0.3048 # X1 = (rhog/0.0808)**0.333 * (rhol*72.4/62.4/sigma)**0.25 * (mug/0.018)**0.2 # Y1 = (rhol*72.4/62.4/sigma)**0.25 * (mul/1.)**0.2 X1 = (rhog/1.294292)**0.333 * (rhol*0.0724/999.552/sigma)**0.25 * (mug/1.8E-5)**0.2 Y1 = (rhol*0.0724/999.552/sigma)**0.25 * (mul/1E-3)**0.2 if Vsl < 14.0*Y1: if Vsl <= 0.1: Y1345 = 14.0*(Vsl/0.1)**-0.368 elif Vsl <= 0.2: Y1345 = 14.0*(Vsl/0.1)**-0.415 elif Vsl <= 1.15: Y1345 = 10.5*(Vsl/0.2)**-0.816 elif Vsl <= 4.8: Y1345 = 2.5 else: Y1345 = 2.5*(Vsl/4.8)**0.248 if Vsl <= 0.1: Y456 = 70.0*(Vsl/0.01)**-0.0675 elif Vsl <= 0.3: Y456 = 60.0*(Vsl/0.1)**-0.415 elif Vsl <= 0.56: Y456 = 38.0*(Vsl/0.3)**0.0813 elif Vsl <= 1.0: Y456 = 40.0*(Vsl/0.56)**0.385 elif Vsl <= 2.5: Y456 = 50.0*(Vsl/1.)**0.756 else: Y456 = 100.0*(Vsl/2.5)**0.463 Y45 = 0.3*Y1 Y31 = 0.5/Y1 Y1345 = Y1345*X1 Y456 = Y456*X1 if Vsg <= Y1345 and Vsl >= Y31: regime = 'elongated bubble' elif Vsg <= Y1345 and Vsl <= Y31: regime = 'stratified' elif Vsg >= Y1345 and Vsg <= Y456 and Vsl > Y45: regime = 'slug' elif Vsg >= Y1345 and Vsg <= Y456 and Vsl <= Y45: regime = 'wave' else: regime = 'annular mist' elif Vsg <= (230.*(Vsl/14.)**0.206)*X1: regime = 'dispersed bubble' else: regime = 'annular mist' if full_output: return regime, {'v_ls': Vsl, 'v_gs': Vsg} return regime Mandhane_Gregory_Aziz_regimes = {'elongated bubble': 1, 'stratified': 2, 'slug':3, 'wave': 4, 'annular mist': 5, 'dispersed bubble': 6}fluids-0.1.78/fluids/control_valve.py0000644000175000017500000015053013632560624016361 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log10, exp, pi from fluids.constants import R, psi, gallon, minute from fluids.numerics import interp, implementation_optimize_tck, splev from fluids.fittings import Cv_to_Kv, Kv_to_Cv __all__ = ['size_control_valve_l', 'size_control_valve_g', 'cavitation_index', 'FF_critical_pressure_ratio_l', 'is_choked_turbulent_l', 'is_choked_turbulent_g', 'Reynolds_valve', 'loss_coefficient_piping', 'Reynolds_factor', 'Cv_char_quick_opening', 'Cv_char_linear', 'Cv_char_equal_percentage', 'convert_flow_coefficient', 'control_valve_choke_P_l', 'control_valve_choke_P_g', 'control_valve_noise_l_2015', 'control_valve_noise_g_2011'] N1 = 0.1 # m^3/hr, kPa N2 = 1.6E-3 # mm N4 = 7.07E-2 # m^3/hr, m^2/s N5 = 1.8E-3 # mm N6 = 3.16 # kg/hr, kPa, kg/m^3 N7 = 4.82 # m^3/hr kPa K N8 = 1.10 # kPa kg/hr K #N9 = 2.60E1 # m^3/hr kPa K at 15 deg C N9 = 2.46E1 # m^3/hr kPa K at 0 deg C N18 = 8.65E-1 # mm N19 = 2.5 # mm #N22 = 1.84E1 # m^3/hr kPa K at 15 deg C N27 = 7.75E-1 # kg/hr kPa K at 0 deg C N32 = 1.4E2 # mm rho0 = 999.10329075702327 # Water at 288.15 K def cavitation_index(P1, P2, Psat): r'''Calculates the cavitation index of a valve with upstream and downstream absolute pressures `P1` and `P2` for a fluid with a vapor pressure `Psat`. .. math:: \sigma = \frac{P_1 - P_{sat}}{P_1 - P_2} Parameters ---------- P1 : float Absolute pressure upstream of the valve [Pa] P2 : float Absolute pressure downstream of the valve [Pa] Psat : float Saturation pressure of the liquid at inlet temperature [Pa] Returns ------- sigma : float Cavitation index of the valve [-] Notes ----- Larger values are safer. Models for adjusting cavitation indexes provided by the manufacturer to the user's conditions are available, making use of scaling the pressure differences and size differences. Values can be calculated for incipient cavitation, constant cavitation, maximum vibration cavitation, incipient damage, and choking cavitation. Has also been defined as: .. math:: \sigma = \frac{P_2 - P_{sat}}{P_1 - P_2} Another definition and notation series is: .. math:: K = xF = \frac{1}{\sigma} = \frac{P_1 - P_2}{P_1 - P_{sat}} Examples -------- >>> cavitation_index(1E6, 8E5, 2E5) 4.0 References ---------- .. [1] ISA. "RP75.23 Considerations for Evaluating Control Valve Cavitation." 1995. ''' return (P1 - Psat)/(P1 - P2) def FF_critical_pressure_ratio_l(Psat, Pc): r'''Calculates FF, the liquid critical pressure ratio factor, for use in IEC 60534 liquid valve sizing calculations. .. math:: F_F = 0.96 - 0.28\sqrt{\frac{P_{sat}}{P_c}} Parameters ---------- Psat : float Saturation pressure of the liquid at inlet temperature [Pa] Pc : float Critical pressure of the liquid [Pa] Returns ------- FF : float Liquid critical pressure ratio factor [-] Examples -------- From [1]_, matching example. >>> FF_critical_pressure_ratio_l(70100.0, 22120000.0) 0.9442375225233299 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' return 0.96 - 0.28*(Psat/Pc)**0.5 def control_valve_choke_P_l(Psat, Pc, FL, P1=None, P2=None, disp=True): r'''Calculates either the upstream or downstream pressure at which choked flow though a liquid control valve occurs, given either a set upstream or downstream pressure. Implements an analytical solution of the needed equations from the full function :py:func:`~.size_control_valve_l`. For some pressures, no choked flow is possible; for choked flow to occur the direction if flow must be reversed. If `disp` is True, an exception will be raised for these conditions. .. math:: P_1 = \frac{F_{F} F_{L}^{2} P_{sat} - P_{2}}{F_{L}^{2} - 1} .. math:: P_2 = F_{F} F_{L}^{2} P_{sat} - F_{L}^{2} P_{1} + P_{1} Parameters ---------- Psat : float Saturation pressure of the liquid at inlet temperature [Pa] Pc : float Critical pressure of the liquid [Pa] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings [-] P1 : float, optional Absolute pressure upstream of the valve [Pa] P2 : float, optional Absolute pressure downstream of the valve [Pa] disp : bool, optional Whether or not to raise an exception on flow reversal, [-] Returns ------- P_choke : float Pressure at which a choke occurs in the liquid valve [Pa] Notes ----- Extremely cheap to compute. Examples -------- >>> control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, 680000.0) 458887.5306077305 >>> control_valve_choke_P_l(69682.89291024722, 22048320.0, 0.6, P2=458887.5306077305) 680000.0 ''' FF = FF_critical_pressure_ratio_l(Psat=Psat, Pc=Pc) Pmin_absolute = FF*Psat if P2 is None: ans = P2 = FF*FL*FL*Psat - FL*FL*P1 + P1 elif P1 is None: ans = P1 = (FF*FL*FL*Psat - P2)/(FL*FL - 1.0) else: raise Exception('Either P1 or P2 needs to be specified') if P2 > P1 and disp: raise Exception('Specified P1 is too low for choking to occur ' 'at any downstream pressure; minimum ' 'upstream pressure for choking to be possible ' 'is %g Pa.' %Pmin_absolute) return ans def control_valve_choke_P_g(xT, gamma, P1=None, P2=None): r'''Calculates either the upstream or downstream pressure at which choked flow though a gas control valve occurs, given either a set upstream or downstream pressure. Implements an analytical solution of the needed equations from the full function :py:func:`~.size_control_valve_g`. A singularity arises as `xT` goes to 1 and `gamma` goes to 1.4. .. math:: P_1 = - \frac{7 P_{2}}{5 \gamma x_T - 7} .. math:: P_2 = \frac{P_{1}}{7} \left(- 5 \gamma x_T + 7\right) Parameters ---------- xT : float, optional Pressure difference ratio factor of a valve without fittings at choked flow [-] gamma : float Specific heat capacity ratio [-] P1 : float, optional Absolute pressure upstream of the valve [Pa] P2 : float, optional Absolute pressure downstream of the valve [Pa] Returns ------- P_choke : float Pressure at which a choke occurs in the gas valve [Pa] Notes ----- Extremely cheap to compute. Examples -------- >>> control_valve_choke_P_g(1, 1.3, 1E5) 7142.857142857143 >>> control_valve_choke_P_g(1, 1.3, P2=7142.857142857143) 100000.0 ''' if P2 is None: ans = P2 = P1*(-5.0*gamma*xT + 7.0)/7.0 elif P1 is None: ans = P1 = -7.0*P2/(5.0*gamma*xT - 7.0) else: raise Exception('Either P1 or P2 needs to be specified') return ans def is_choked_turbulent_l(dP, P1, Psat, FF, FL=None, FLP=None, FP=None): r'''Calculates if a liquid flow in IEC 60534 calculations is critical or not, for use in IEC 60534 liquid valve sizing calculations. Either FL may be provided or FLP and FP, depending on the calculation process. .. math:: \Delta P > F_L^2(P_1 - F_F P_{sat}) .. math:: \Delta P >= \left(\frac{F_{LP}}{F_P}\right)^2(P_1 - F_F P_{sat}) Parameters ---------- dP : float Differential pressure across the valve, with reducer/expanders [Pa] P1 : float Pressure of the fluid before the valve and reducers/expanders [Pa] Psat : float Saturation pressure of the fluid at inlet temperature [Pa] FF : float Liquid critical pressure ratio factor [-] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings [-] FLP : float, optional Combined liquid pressure recovery factor with piping geometry factor, for a control valve with attached fittings [-] FP : float, optional Piping geometry factor [-] Returns ------- choked : bool Whether or not the flow is choked [-] Examples -------- >>> is_choked_turbulent_l(460.0, 680.0, 70.1, 0.94, 0.9) False >>> is_choked_turbulent_l(460.0, 680.0, 70.1, 0.94, 0.6) True References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' if FLP and FP: return dP >= (FLP/FP)**2*(P1-FF*Psat) elif FL: return dP >= FL**2*(P1-FF*Psat) else: raise Exception('Either (FLP and FP) or FL is needed') def is_choked_turbulent_g(x, Fgamma, xT=None, xTP=None): r'''Calculates if a gas flow in IEC 60534 calculations is critical or not, for use in IEC 60534 gas valve sizing calculations. Either xT or xTP must be provided, depending on the calculation process. .. math:: x \ge F_\gamma x_T .. math:: x \ge F_\gamma x_{TP} Parameters ---------- x : float Differential pressure over inlet pressure, [-] Fgamma : float Specific heat ratio factor [-] xT : float, optional Pressure difference ratio factor of a valve without fittings at choked flow [-] xTP : float Pressure difference ratio factor of a valve with fittings at choked flow [-] Returns ------- choked : bool Whether or not the flow is choked [-] Examples -------- Example 3, compressible flow, non-choked with attached fittings: >>> is_choked_turbulent_g(0.544, 0.929, 0.6) False >>> is_choked_turbulent_g(0.544, 0.929, xTP=0.625) False References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' if xT: return x >= Fgamma*xT elif xTP: return x >= Fgamma*xTP else: raise Exception('Either xT or xTP is needed') def Reynolds_valve(nu, Q, D1, FL, Fd, C): r'''Calculates Reynolds number of a control valve for a liquid or gas flowing through it at a specified Q, for a specified D1, FL, Fd, C, and with kinematic viscosity `nu` according to IEC 60534 calculations. .. math:: Re_v = \frac{N_4 F_d Q}{\nu \sqrt{C F_L}}\left(\frac{F_L^2 C^2} {N_2D^4} +1\right)^{1/4} Parameters ---------- nu : float Kinematic viscosity, [m^2/s] Q : float Volumetric flow rate of the fluid [m^3/s] D1 : float Diameter of the pipe before the valve [m] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings [] Fd : float Valve style modifier [-] C : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Returns ------- Rev : float Valve reynolds number [-] Examples -------- >>> Reynolds_valve(3.26e-07, 360, 150.0, 0.9, 0.46, 165) 2966984.7525455453 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' return N4*Fd*Q/nu/(C*FL)**0.5*(FL**2*C**2/(N2*D1**4) + 1)**0.25 def loss_coefficient_piping(d, D1=None, D2=None): r'''Calculates the sum of loss coefficients from possible inlet/outlet reducers/expanders around a control valve according to IEC 60534 calculations. .. math:: \Sigma \xi = \xi_1 + \xi_2 + \xi_{B1} - \xi_{B2} .. math:: \xi_1 = 0.5\left[1 -\left(\frac{d}{D_1}\right)^2\right]^2 .. math:: \xi_2 = 1.0\left[1 -\left(\frac{d}{D_2}\right)^2\right]^2 .. math:: \xi_{B1} = 1 - \left(\frac{d}{D_1}\right)^4 .. math:: \xi_{B2} = 1 - \left(\frac{d}{D_2}\right)^4 Parameters ---------- d : float Diameter of the valve [m] D1 : float Diameter of the pipe before the valve [m] D2 : float Diameter of the pipe after the valve [m] Returns ------- loss : float Sum of the four loss coefficients [-] Examples -------- In example 3, non-choked compressible flow with fittings: >>> loss_coefficient_piping(0.05, 0.08, 0.1) 0.6580810546875 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' loss = 0. if D1: loss += 1. - (d/D1)**4 # Inlet flow energy loss += 0.5*(1. - (d/D1)**2)**2 # Inlet reducer if D2: loss += 1.0*(1. - (d/D2)**2)**2 # Outlet reducer (expander) loss -= 1. - (d/D2)**4 # Outlet flow energy return loss def Reynolds_factor(FL, C, d, Rev, full_trim=True): r'''Calculates the Reynolds number factor `FR` for a valve with a Reynolds number `Rev`, diameter `d`, flow coefficient `C`, liquid pressure recovery factor `FL`, and with either full or reduced trim, all according to IEC 60534 calculations. If full trim: .. math:: F_{R,1a} = 1 + \left(\frac{0.33F_L^{0.5}}{n_1^{0.25}}\right)\log_{10} \left(\frac{Re_v}{10000}\right) .. math:: F_{R,2} = \min(\frac{0.026}{F_L}\sqrt{n_1 Re_v},\; 1) .. math:: n_1 = \frac{N_2}{\left(\frac{C}{d^2}\right)^2} .. math:: F_R = F_{R,2} \text{ if Rev < 10 else } \min(F_{R,1a}, F_{R,2}) Otherwise : .. math:: F_{R,3a} = 1 + \left(\frac{0.33F_L^{0.5}}{n_2^{0.25}}\right)\log_{10} \left(\frac{Re_v}{10000}\right) .. math:: F_{R,4} = \frac{0.026}{F_L}\sqrt{n_2 Re_v} .. math:: n_2 = 1 + N_{32}\left(\frac{C}{d}\right)^{2/3} .. math:: F_R = F_{R,4} \text{ if Rev < 10 else } \min(F_{R,3a}, F_{R,4}) Parameters ---------- FL : float Liquid pressure recovery factor of a control valve without attached fittings [] C : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] d : float Diameter of the valve [m] Rev : float Valve reynolds number [-] full_trim : bool Whether or not the valve has full trim Returns ------- FR : float Reynolds number factor for laminar or transitional flow [] Examples -------- In Example 4, compressible flow with small flow trim sized for gas flow (Cv in the problem was converted to Kv here to make FR match with N32, N2): >>> Reynolds_factor(FL=0.98, C=0.015483, d=15., Rev=1202., full_trim=False) 0.7148753122302025 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' if full_trim: n1 = N2/(min(C/d**2, 0.04))**2 # C/d**2 must not exceed 0.04 FR_1a = 1 + (0.33*FL**0.5)/n1**0.25*log10(Rev/10000.) FR_2 = 0.026/FL*(n1*Rev)**0.5 if Rev < 10: FR = FR_2 else: FR = min(FR_2, FR_1a) else: n2 = 1 + N32*(C/d**2)**(2/3.) FR_3a = 1 + (0.33*FL**0.5)/n2**0.25*log10(Rev/10000.) FR_4 = min(0.026/FL*(n2*Rev)**0.5, 1) if Rev < 10: FR = FR_4 else: FR = min(FR_3a, FR_4) return FR def size_control_valve_l(rho, Psat, Pc, mu, P1, P2, Q, D1=None, D2=None, d=None, FL=0.9, Fd=1, allow_choked=True, allow_laminar=True, full_output=False): r'''Calculates flow coefficient of a control valve passing a liquid according to IEC 60534. Uses a large number of inputs in SI units. Note the return value is not standard SI. All parameters are required. This sizing model does not officially apply to liquid mixtures, slurries, non-Newtonian fluids, or liquid-solid conveyance systems. For details of the calculations, consult [1]_. Parameters ---------- rho : float Density of the liquid at the inlet [kg/m^3] Psat : float Saturation pressure of the fluid at inlet temperature [Pa] Pc : float Critical pressure of the fluid [Pa] mu : float Viscosity of the fluid [Pa*s] P1 : float Inlet pressure of the fluid before valves and reducers [Pa] P2 : float Outlet pressure of the fluid after valves and reducers [Pa] Q : float Volumetric flow rate of the fluid [m^3/s] D1 : float, optional Diameter of the pipe before the valve [m] D2 : float, optional Diameter of the pipe after the valve [m] d : float, optional Diameter of the valve [m] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings (normally 0.8-0.9 at full open and decreasing as opened further to below 0.5; use default very cautiously!) [] Fd : float, optional Valve style modifier (0.1 to 1; varies tremendously depending on the type of valve and position; do not use the default at all!) [] allow_choked : bool, optional Overrides the automatic transition into the choked regime if this is False and returns as if choked flow does not exist allow_laminar : bool, optional Overrides the automatic transition into the laminar regime if this is False and returns as if laminar flow does not exist full_output : bool, optional If True, returns intermediate calculation values as well as Kv in the form of a dictionary containing 'Kv', 'Rev', 'choked', 'FL', 'FLP', 'FR', 'FP', and 'laminar'. Some may be None if they are not used in the calculation. Returns ------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Notes ----- It is possible to use this model without any diameters specified; in that case, turbulent flow is assumed. Choked flow can still be modeled. This is not recommended. All three diameters need to be None for this to work. `FL` and `Fd` are not used by the models when the diameters are not specified. Examples -------- From [1]_, matching example 1 for a globe, parabolic plug, flow-to-open valve. >>> size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, ... P1=680E3, P2=220E3, Q=0.1, D1=0.15, D2=0.15, d=0.15, ... FL=0.9, Fd=0.46) 164.9954763704956 From [1]_, matching example 2 for a ball, segmented ball, flow-to-open valve. >>> size_control_valve_l(rho=965.4, Psat=70.1E3, Pc=22120E3, mu=3.1472E-4, ... P1=680E3, P2=220E3, Q=0.1, D1=0.1, D2=0.1, d=0.1, ... FL=0.6, Fd=0.98) 238.05817216710483 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' if full_output: ans = {'FLP': None, 'FP': None, 'FR': None} # Pa to kPa, according to constants in standard P1, P2, Psat, Pc = P1/1000., P2/1000., Psat/1000., Pc/1000. Q = Q*3600. # m^3/s to m^3/hr, according to constants in standard nu = mu/rho # kinematic viscosity used in standard dP = P1 - P2 FF = FF_critical_pressure_ratio_l(Psat=Psat, Pc=Pc) choked = is_choked_turbulent_l(dP=dP, P1=P1, Psat=Psat, FF=FF, FL=FL) if choked and allow_choked: # Choked flow, equation 3 C = Q/N1/FL*(rho/rho0/(P1 - FF*Psat))**0.5 else: # non-choked flow, eq 1 C = Q/N1*(rho/rho0/dP)**0.5 if D1 is None and D2 is None and d is None: # Assume turbulent if no diameters are provided, no other calculations Rev = 1e5 else: # m to mm, according to constants in standard D1, D2, d = D1*1000., D2*1000., d*1000. Rev = Reynolds_valve(nu=nu, Q=Q, D1=D1, FL=FL, Fd=Fd, C=C) # normal calculation path if (Rev > 10000 or not allow_laminar) and (D1 != d or D2 != d): # liquid, using Fp and FLP FP = 1 Ci = C def iterate_piping_turbulent(Ci): loss = loss_coefficient_piping(d, D1, D2) FP = (1 + loss/N2*(Ci/d**2)**2)**-0.5 loss_upstream = loss_coefficient_piping(d, D1) FLP = FL*(1 + FL**2/N2*loss_upstream*(Ci/d**2)**2)**-0.5 choked = is_choked_turbulent_l(dP, P1, Psat, FF, FLP=FLP, FP=FP) if choked: # Choked flow with piping, equation 4 C = Q/N1/FLP*(rho/rho0/(P1-FF*Psat))**0.5 else: # Non-Choked flow with piping, equation 5 C = Q/N1/FP*(rho/rho0/dP)**0.5 if Ci/C < 0.99: C = iterate_piping_turbulent(C) if full_output: ans['FLP'] = FLP ans['FP'] = FP return C C = iterate_piping_turbulent(Ci) elif Rev <= 10000 and allow_laminar: # Laminar def iterate_piping_laminar(C): Ci = 1.3*C Rev = Reynolds_valve(nu=nu, Q=Q, D1=D1, FL=FL, Fd=Fd, C=Ci) if Ci/d**2 > 0.016*N18: FR = Reynolds_factor(FL=FL, C=Ci, d=d, Rev=Rev, full_trim=False) else: FR = Reynolds_factor(FL=FL, C=Ci, d=d, Rev=Rev, full_trim=True) if C/FR >= Ci: Ci = iterate_piping_laminar(Ci) # pragma: no cover if full_output: ans['Rev'] = Rev ans['FR'] = FR return Ci C = iterate_piping_laminar(C) if full_output: ans['FF'] = FF ans['choked'] = choked ans['Kv'] = C ans['laminar'] = Rev <= 10000 # For the laminar case this is already set and needs to not be overwritten if 'Rev' not in ans: ans['Rev'] = Rev return ans else: return C def size_control_valve_g(T, MW, mu, gamma, Z, P1, P2, Q, D1=None, D2=None, d=None, FL=0.9, Fd=1, xT=0.7, allow_choked=True, allow_laminar=True, full_output=False): r'''Calculates flow coefficient of a control valve passing a gas according to IEC 60534. Uses a large number of inputs in SI units. Note the return value is not standard SI. All parameters are required. For details of the calculations, consult [1]_. Note the inlet gas flow conditions. Parameters ---------- T : float Temperature of the gas at the inlet [K] MW : float Molecular weight of the gas [g/mol] mu : float Viscosity of the fluid at inlet conditions [Pa*s] gamma : float Specific heat capacity ratio [-] Z : float Compressibility factor at inlet conditions, [-] P1 : float Inlet pressure of the gas before valves and reducers [Pa] P2 : float Outlet pressure of the gas after valves and reducers [Pa] Q : float Volumetric flow rate of the gas at *273.15 K* and 1 atm specifically [m^3/s] D1 : float, optional Diameter of the pipe before the valve [m] D2 : float, optional Diameter of the pipe after the valve [m] d : float, optional Diameter of the valve [m] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings (normally 0.8-0.9 at full open and decreasing as opened further to below 0.5; use default very cautiously!) [] Fd : float, optional Valve style modifier (0.1 to 1; varies tremendously depending on the type of valve and position; do not use the default at all!) [] xT : float, optional Pressure difference ratio factor of a valve without fittings at choked flow (increasing to 0.9 or higher as the valve is closed further and decreasing to 0.1 or lower as the valve is opened further; use default very cautiously!) [-] allow_choked : bool, optional Overrides the automatic transition into the choked regime if this is False and returns as if choked flow does not exist allow_laminar : bool, optional Overrides the automatic transition into the laminar regime if this is False and returns as if laminar flow does not exist full_output : bool, optional If True, returns intermediate calculation values as well as Kv in the form of a dictionary containing 'Kv', 'Rev', 'choked', 'Y', 'FR', 'FP', 'xTP', and 'laminar'. Some may be None if they are not used in the calculation. Returns ------- Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] Notes ----- It is possible to use this model without any diameters specified; in that case, turbulent flow is assumed. Choked flow can still be modeled. This is not recommended. All three diameters need to be None for this to work. `FL` and `Fd` are not used by the models when the diameters are not specified, but `xT` definitely is used by the model. Examples -------- From [1]_, matching example 3 for non-choked gas flow with attached fittings and a rotary, eccentric plug, flow-to-open control valve: >>> size_control_valve_g(T=433., MW=44.01, mu=1.4665E-4, gamma=1.30, ... Z=0.988, P1=680E3, P2=310E3, Q=38/36., D1=0.08, D2=0.1, d=0.05, ... FL=0.85, Fd=0.42, xT=0.60) 72.58664545391052 From [1]_, roughly matching example 4 for a small flow trim sized tapered needle plug valve. Difference is 3% and explained by the difference in algorithms used. >>> size_control_valve_g(T=320., MW=39.95, mu=5.625E-5, gamma=1.67, Z=1.0, ... P1=2.8E5, P2=1.3E5, Q=0.46/3600., D1=0.015, D2=0.015, d=0.015, FL=0.98, ... Fd=0.07, xT=0.8) 0.016498765335995726 References ---------- .. [1] IEC 60534-2-1 / ISA-75.01.01-2007 ''' MAX_C_POSSIBLE = 1E40 # Quit iterations if C reaches this high # Pa to kPa, according to constants in standard P1, P2 = P1/1000., P2/1000. Q = Q*3600. # m^3/s to m^3/hr, according to constants in standard # Convert dynamic viscosity to kinematic viscosity Vm = Z*R*T/(P1*1000) rho = (Vm)**-1*MW/1000. nu = mu/rho # kinematic viscosity used in standard dP = P1 - P2 Fgamma = gamma/1.40 x = dP/P1 Y = max(1 - x/(3*Fgamma*xT), 2/3.) choked = is_choked_turbulent_g(x, Fgamma, xT) if choked and allow_choked: # Choked, and flow coefficient from eq 14a C = Q/(N9*P1*Y)*(MW*T*Z/xT/Fgamma)**0.5 else: # Non-choked, and flow coefficient from eq 8a C = Q/(N9*P1*Y)*(MW*T*Z/x)**0.5 if full_output: ans = {'FP': None, 'xTP': None, 'FR': None, 'choked': choked, 'Y': Y} if D1 is None and D2 is None and d is None: # Assume turbulent if no diameters are provided, no other calculations Rev = 1e5 if full_output: ans['Rev'] = None else: # m to mm, according to constants in standard D1, D2, d = D1*1000., D2*1000., d*1000. # Convert diameters to mm which is used in the standard Rev = Reynolds_valve(nu=nu, Q=Q, D1=D1, FL=FL, Fd=Fd, C=C) if full_output: ans['Rev'] = Rev if (Rev > 10000 or not allow_laminar) and (D1 != d or D2 != d): # gas, using xTP and FLP FP = 1. MAX_ITER = 20 def iterate_piping_coef(Ci, iterations): loss = loss_coefficient_piping(d, D1, D2) FP = (1. + loss/N2*(Ci/d**2)**2)**-0.5 loss_upstream = loss_coefficient_piping(d, D1) xTP = xT/FP**2/(1 + xT*loss_upstream/N5*(Ci/d**2)**2) choked = is_choked_turbulent_g(x, Fgamma, xTP=xTP) if choked: # Choked flow with piping, equation 17a C = Q/(N9*FP*P1*Y)*(MW*T*Z/xTP/Fgamma)**0.5 else: # Non-choked flow with piping, equation 11a C = Q/(N9*FP*P1*Y)*(MW*T*Z/x)**0.5 if Ci/C < 0.99 and iterations < MAX_ITER and Ci < MAX_C_POSSIBLE: C = iterate_piping_coef(C, iterations+1) if full_output: ans['xTP'] = xTP ans['FP'] = FP ans['choked'] = choked if MAX_ITER == iterations or Ci >= MAX_C_POSSIBLE: ans['warning'] = 'Not converged in inner loop' return C C = iterate_piping_coef(C, 0) elif Rev <= 10000 and allow_laminar: # Laminar; def iterate_piping_laminar(C): Ci = 1.3*C Rev = Reynolds_valve(nu=nu, Q=Q, D1=D1, FL=FL, Fd=Fd, C=Ci) if Ci/d**2 > 0.016*N18: FR = Reynolds_factor(FL=FL, C=Ci, d=d, Rev=Rev, full_trim=False) else: FR = Reynolds_factor(FL=FL, C=Ci, d=d, Rev=Rev, full_trim=True) if C/FR >= Ci: Ci = iterate_piping_laminar(Ci) if full_output: ans['FR'] = FR ans['Rev'] = Rev return Ci C = iterate_piping_laminar(C) if full_output: ans['Kv'] = C ans['laminar'] = Rev <= 10000 return ans else: return C # Valve data from Emerson Valve Handbook 5E # Quick opening valve data, spline fit, and interpolating function opening_quick = [0.0, 0.0136, 0.02184, 0.03256, 0.04575, 0.06221, 0.07459, 0.0878, 0.10757, 0.12654, 0.14301, 0.16032, 0.18009, 0.18999, 0.20233, 0.23105, 0.25483, 0.28925, 0.32365, 0.36541, 0.42188, 0.46608, 0.53319, 0.61501, 0.7034, 0.78033, 0.84415, 0.91944, 1.000] frac_CV_quick = [0.0, 0.04984, 0.07582, 0.12044, 0.16614, 0.21707, 0.26998, 0.32808, 0.39353, 0.46516, 0.52125, 0.58356, 0.64798, 0.68845, 0.72277, 0.76565, 0.79399, 0.82459, 0.84589, 0.86732, 0.88078, 0.89399, 0.90867, 0.92053, 0.93973, 0.95872, 0.96817, 0.98611, 1.0] opening_quick_tck = implementation_optimize_tck([[0.0, 0.0, 0.0, 0.0, 0.02184, 0.03256, 0.04575, 0.06221, 0.07459, 0.0878, 0.10757, 0.12654, 0.14301, 0.16032, 0.18009, 0.18999, 0.20233, 0.23105, 0.25483, 0.28925, 0.32365, 0.36541, 0.42188, 0.46608, 0.53319, 0.61501, 0.7034, 0.78033, 0.84415, 1.0, 1.0, 1.0, 1.0], [-3.2479258181113327e-19, 0.037650956835178835, 0.054616164261637117, 0.12657862552611354, 0.17115105822542115, 0.2075233903194021, 0.27084055195333684, 0.34208963001568016, 0.38730839943796663, 0.4656002247400036, 0.5196995880922897, 0.5907033063634928, 0.6304293931726886, 0.6953064258075168, 0.7382935002453699, 0.7631579537132379, 0.7997961180795559, 0.8262370617883222, 0.8471954722933543, 0.873096858463145, 0.8776128736976467, 0.897647305294458, 0.9105672165523071, 0.9192771703370824, 0.9377349743236904, 0.9603716623033031, 0.9688863605959851, 0.9980062718267431, 1.0, 0.0, 0.0, 0.0, 0.0], 3]) Cv_char_quick_opening = lambda opening: float(splev(opening, opening_quick_tck)) opening_linear = [0., 1.0] frac_CV_linear = [0, 1] Cv_char_linear = lambda opening: interp(opening, opening_linear, frac_CV_linear) # Equal opening valve data, spline fit, and interpolating function opening_equal = [0.0, 0.05523, 0.09287, 0.15341, 0.18942, 0.22379, 0.25816, 0.29582, 0.33348, 0.34985, 0.3826, 0.45794, 0.49235, 0.51365, 0.54479, 0.57594, 0.60218, 0.62843, 0.77628, 0.796, 0.83298, 0.86995, 0.90936, 0.95368, 1.00] frac_CV_equal = [0.0, 0.00845, 0.01339, 0.01877, 0.02579, 0.0349, 0.04189, 0.05528, 0.07079, 0.07533, 0.09074, 0.13444, 0.15833, 0.17353, 0.20159, 0.23388, 0.26819, 0.30461, 0.60113, 0.64588, 0.72583, 0.80788, 0.87519, 0.94999, 1.] opening_equal_tck = implementation_optimize_tck([[0.0, 0.0, 0.0, 0.0, 0.09287, 0.15341, 0.18942, 0.22379, 0.25816, 0.29582, 0.33348, 0.34985, 0.3826, 0.45794, 0.49235, 0.51365, 0.54479, 0.57594, 0.60218, 0.62843, 0.77628, 0.796, 0.83298, 0.86995, 0.90936, 1.0, 1.0, 1.0, 1.0], [1.3522591106779132e-19, 0.004087873896711868, 0.014374150571122216, 0.016455484312674015, 0.024946845435605228, 0.03592972456181881, 0.040710119644626126, 0.054518468768197687, 0.06976905178508139, 0.07587146190282387, 0.0985485829020452, 0.1238160142641967, 0.15558350087382017, 0.17487348629353283, 0.20157507610951217, 0.22995771158118564, 0.2683886931491415, 0.3574766835730407, 0.5027678906008036, 0.659729970241158, 0.7233389559355903, 0.8155475382785987, 0.8983628328699896, 0.9871204658597236, 1.0, 0.0, 0.0, 0.0, 0.0], 3]) Cv_char_equal_percentage = lambda opening: float(splev(opening, opening_equal_tck)) def convert_flow_coefficient(flow_coefficient, old_scale, new_scale): '''Convert from one flow coefficient scale to another; supports the `Kv` `Cv`, and `Av` scales. Other scales are `Qn` and `Cg`, but clear definitions have yet to be found. Parameters ---------- flow_coefficient : float Value of the flow coefficient to be converted, expressed in the original scale. old_scale : str String specifying the original scale; one of 'Av', 'Cv', or 'Kv', [-] new_scale : str String specifying the new scale; one of 'Av', 'Cv', or 'Kv', [-] Returns ------- converted_flow_coefficient : float Flow coefficient converted to the specified scale. Notes ----- `Qn` is a scale based on a flow of air in units of L/minute as air travels through a valve and loses one bar of pressure (initially 7 bar absolute, to 6 bar absolute). No consistent conversion factors have been found and those from theory do not match what have been found. Some uses of `Qn` use its flow rate as in normal (STP reference conditions) flow rate of air; others use something like the 7 bar absolute condition. Examples -------- >>> convert_flow_coefficient(10, 'Kv', 'Av') 0.0002776532068951358 ''' # Convert from `old_scale` to Kv if old_scale == 'Cv': Kv = Cv_to_Kv(flow_coefficient) elif old_scale == 'Kv': Kv = flow_coefficient elif old_scale == 'Av': Cv = flow_coefficient/((rho0/psi)**0.5*gallon/minute) Kv = Cv_to_Kv(Cv) else: raise NotImplementedError("%s scale is unsupported" %old_scale) if new_scale == 'Cv': ans = Kv_to_Cv(Kv) elif new_scale == 'Kv': ans = Kv elif new_scale == 'Av': Cv = Kv_to_Cv(Kv) ans = Cv*((rho0/psi)**0.5*gallon/minute) else: raise NotImplementedError("%s scale is unsupported" %old_scale) return ans # Third octave center frequency fi Hz fis_l_2015 = [12.5, 16, 20, 25, 31.5, 40.0, 50.0, 63.0, 80.0, 100.0, 125.0, 160.0, 200.0, 250.0, 315.0, 400.0, 500.0, 630.0, 800.0, 1000.0, 1250.0, 1600.0, 2000.0, 2500.0, 3150.0, 4000.0, 5000.0, 6300.0, 8000.0, 10000.0, 12500.0, 16000.0, 20000.0] #fis_l_2015_inv = [1.0/fi for fi in fis_l_2015] #fis_l_2015_1_5 = [fi**1.5 for fi in fis_l_2015] #fis_l_2015_n1_5 = [fi**-1.5 for fi in fis_l_2015] fis_l_2015_inv, fis_l_2015_1_5, fis_l_2015_n1_5 = [], [], [] for fi in fis_l_2015: fi_rt_inv = fi**-0.5 fis_l_2015_inv.append(fi_rt_inv*fi_rt_inv) fis_l_2015_1_5.append(fi*fi*fi_rt_inv) fis_l_2015_n1_5.append(fi_rt_inv*fi_rt_inv*fi_rt_inv) fis_length = 33 # dLa(fi), dB A_weights_l_2015 = [-63.4, -56.7, -50.5, -44.7, -39.4, -34.6, -30.2, -26.2, -22.5, -19.1, -16.1, -13.4, -10.9, -8.6, -6.6, -4.8, -3.2, -1.9, -0.8, 0.0, 0.6, 1, 1.2, 1.3, 1.2, 1, 0.5, -0.1, -1.1, -2.5, -4.3, -6.6, -9.3] def control_valve_noise_l_2015(m, P1, P2, Psat, rho, c, Kv, d, Di, FL, Fd, t_pipe, rho_pipe=7800.0, c_pipe=5000.0, rho_air=1.2, c_air=343.0, xFz=None, An=-4.6): r'''Calculates the sound made by a liquid flowing through a control valve according to the standard IEC 60534-8-4 (2015) [1]_. Parameters ---------- m : float Mass flow rate of liquid through the control valve, [kg/s] P1 : float Inlet pressure of the fluid before valves and reducers [Pa] P2 : float Outlet pressure of the fluid after valves and reducers [Pa] Psat : float Saturation pressure of the fluid at inlet temperature [Pa] rho : float Density of the liquid at the inlet [kg/m^3] c : float Speed of sound of the liquid at the inlet conditions [m/s] Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] d : float Diameter of the valve [m] Di : float Internal diameter of the pipe before and after the valve [m] FL : float, optional Liquid pressure recovery factor of a control valve without attached fittings (normally 0.8-0.9 at full open and decreasing as opened further to below 0.5) [-] Fd : float, optional Valve style modifier [-] t_pipe : float Wall thickness of the pipe after the valve, [m] rho_pipe : float, optional Density of the pipe wall material at flowing conditions, [kg/m^3] c_pipe : float, optional Speed of sound of the pipe wall material at flowing conditions, [m/s] rho_air : float, optional Density of the air surrounding the valve and pipe wall, [kg/m^3] c_air : float, optional Speed of sound of the air surrounding the valve and pipe wall, [m/s] xFz : float, optional If specified, this value `xFz` is used instead of estimated; the calculation is sensitive to this value, [-] An : float, optional Valve correction factor for acoustic efficiency Returns ------- LpAe1m : float A weighted sound pressure level 1 m from the pipe wall, 1 m distance dowstream of the valve (at reference sound pressure level 2E-5), [dBA] Notes ----- For formulas see [1]_. This takes on the order of 100 us to compute. This model can also tell if noise is being produced in a valve just due to turbulent flow, or cavitation. For values of `An`, see [1]_; it is normally -4.6 for globel valves, -4.3 for butterfly valves, and -4.0 for expanders. This model was checked against three examples in [1]_; they match to all given decimals. A formula is given in [1]_ for multihole trim valves to estimate `xFz` as well; this is not implemented here and `xFz` must be calculated by the user separately. The formula is .. math:: x_{Fz} = \left(4.5 + 1650\frac{N_0d_H^2}{F_L}\right)^{-1/2} Where `N0` is the number of open channels and `dH` is the multihole trim hole diameter. Examples -------- >>> control_valve_noise_l_2015(m=40, P1=1E6, P2=6.5E5, Psat=2.32E3, ... rho=997, c=1400, Kv=77.848, d=0.1, Di=0.1071, FL=0.92, Fd=0.42, ... t_pipe=0.0036, rho_pipe=7800.0, c_pipe=5000.0,rho_air=1.293, ... c_air=343.0, An=-4.6) 81.58200097996539 References ---------- .. [1] IEC 60534-8-4 : Industrial-Process Control Valves - Part 8-4: Noise Considerations - Prediction of Noise Generated by Hydrodynamic Flow. (2015) ''' # Convert Kv to Cv as C N34 = 1.17 # for Cv - conversion constant but not to many decimals N14 = 0.0046 C = Kv_to_Cv(Kv) xF = (P1-P2)/(P1-Psat) dPc = min(P1-P2, FL*FL*(P1 - Psat)) if xFz is None: xFz = 0.9*(1.0 + 3.0*Fd*(C/(N34*FL))**0.5)**-0.5 xFzp1 = xFz*(6E5/P1)**0.125 Dj = N14*Fd*(C*FL)**0.5 Uvc = 1.0/FL*(2.0*dPc/rho)**0.5 Wm = 0.5*m*Uvc*Uvc*FL*FL cavitating = False if xF <= xFzp1 else True eta_turb = 10.0**An*Uvc/c if cavitating: eta_cav = 0.32*eta_turb*((P1 - P2)/(dPc*xFzp1))**0.5*exp(5.0*xFzp1)*((1.0 - xFzp1)/(1.0 - xF))**0.5*(xF/xFzp1)**5*(xF - xFzp1)**1.5 Wa = (eta_turb+eta_cav)*Wm else: Wa = eta_turb*Wm Lpi = 10.0*log10(3.2E9*Wa*rho*c/(Di*Di)) Stp = 0.036*FL*FL*C*Fd**0.75/(N34*xFzp1**1.5*d*d)*(1.0/(P1 - Psat))**0.57 f_p_turb = Stp*Uvc/Dj if cavitating: f_p_cav = 6.0*f_p_turb*((1.0 - xF)/(1.0 - xFzp1))**2*(xFzp1/xF)**2.5 f_p_cav_inv = 1.0/f_p_cav f_p_cav_inv_1_5 = f_p_cav_inv**1.5 f_p_cav_inv_1_5_1_4 = 0.25*f_p_cav_inv_1_5 f_p_cav_1_5 = 1.0/f_p_cav_inv_1_5 eta_denom = 1.0/(eta_turb + eta_cav) t1 = eta_turb*eta_denom t2 = eta_cav*eta_denom log10_t1 = log10(t1) fr = c_pipe/(pi*Di) fr_inv = 1.0/fr TL_fr = -10.0 - 10.0*log10(c_pipe*rho_pipe*t_pipe/(c_air*rho_air*Di)) t3 = - 10.0*log10((Di + 2.0*t_pipe + 2.0)/(Di + 2.0*t_pipe)) # F_cavs = [] # F_turbs = [] # LPis = [] # TL_fis = [] # L_pe1m_fis = [] LpAe1m_sum = 0.0 f_p_turb_inv = 1.0/f_p_turb fr_inv_1_5 = fr_inv**1.5 for i in range(fis_length): # for fi, fi_inv, fi_1_5, fi_1_5_inv, A in zip(fis_l_2015, fis_l_2015_inv, fis_l_2015_1_5, fis_l_2015_n1_5, A_weights_l_2015): # fi_inv = 1.0/fi fi_turb_ratio = fis_l_2015[i]*f_p_turb_inv # fi_turb_ratio = fi*f_p_turb_inv F_turb = -8.0 - 10.0*log10(0.25*fi_turb_ratio*fi_turb_ratio*fi_turb_ratio + fis_l_2015_inv[i]*f_p_turb) # F_turbs.append(F_turb) if cavitating: # fi_cav_ratio = fi_1_5*f_p_cav_inv_1_5# (fi*f_p_cav_inv)**1.5 F_cav = -9.0 - 10.0*log10(f_p_cav_inv_1_5_1_4*fis_l_2015_1_5[i] + fis_l_2015_n1_5[i]*f_p_cav_1_5) # 1.0/fi_cav_ratio, fi_1_5_inv*f_p_cav_1_5 LPif = (Lpi + 10.0*log10(t1*10.0**(0.1*F_turb) + t2*10.0**(0.1*F_cav))) # Shoule be able to save 1 power in the above function somehow, combine the tow terms in exponent else: LPif = Lpi + F_turb # LPis.append(LPif) TL_fi = TL_fr - 20.0*log10(fr*fis_l_2015_inv[i] + fis_l_2015_1_5[i]*fr_inv_1_5) # (fi*fr_inv)**1.5 # TL_fis.append(TL_fi) L_pe1m_fi = LPif + TL_fi + t3 # L_pe1m_fis.append(L_pe1m_fi) LpAe1m_sum += 10.0**(0.1*(L_pe1m_fi + A_weights_l_2015[i])) LpAe1m = 10.0*log10(LpAe1m_sum) return LpAe1m def control_valve_noise_g_2011(m, P1, P2, T1, rho, gamma, MW, Kv, d, Di, t_pipe, Fd, FL, FLP=None, FP=None, rho_pipe=7800.0, c_pipe=5000.0, P_air=101325.0, rho_air=1.2, c_air=343.0, An=-3.8, Stp=0.2, T2=None, beta=0.93): r'''Calculates the sound made by a gas flowing through a control valve according to the standard IEC 60534-8-3 (2011) [1]_. Parameters ---------- m : float Mass flow rate of gas through the control valve, [kg/s] P1 : float Inlet pressure of the gas before valves and reducers [Pa] P2 : float Outlet pressure of the gas after valves and reducers [Pa] T1 : float Inlet gas temperature, [K] rho : float Density of the gas at the inlet [kg/m^3] gamma : float Specific heat capacity ratio [-] MW : float Molecular weight of the gas [g/mol] Kv : float Metric Kv valve flow coefficient (flow rate of water at a pressure drop of 1 bar) [m^3/hr] d : float Diameter of the valve [m] Di : float Internal diameter of the pipe before and after the valve [m] t_pipe : float Wall thickness of the pipe after the valve, [m] Fd : float Valve style modifier (0.1 to 1; varies tremendously depending on the type of valve and position; do not use the default at all!) [-] FL : float Liquid pressure recovery factor of a control valve without attached fittings (normally 0.8-0.9 at full open and decreasing as opened further to below 0.5; use default very cautiously!) [-] FLP : float, optional Combined liquid pressure recovery factor with piping geometry factor, for a control valve with attached fittings [-] FP : float, optional Piping geometry factor [-] rho_pipe : float, optional Density of the pipe wall material at flowing conditions, [kg/m^3] c_pipe : float, optional Speed of sound of the pipe wall material at flowing conditions, [m/s] P_air : float, optional Pressure of the air surrounding the valve and pipe wall, [Pa] rho_air : float, optional Density of the air surrounding the valve and pipe wall, [kg/m^3] c_air : float, optional Speed of sound of the air surrounding the valve and pipe wall, [m/s] An : float, optional Valve correction factor for acoustic efficiency Stp : float, optional Strouhal number at the peak `fp`; between 0.1 and 0.3 typically, [-] T2 : float, optional Outlet gas temperature; assumed `T1` if not provided (a PH flash should be used to obtain this if possible), [K] beta : float, optional Valve outlet / expander inlet contraction coefficient, [-] Returns ------- LpAe1m : float A weighted sound pressure level 1 m from the pipe wall, 1 m distance dowstream of the valve (at reference sound pressure level 2E-5), [dBA] Notes ----- For formulas see [1]_. This takes on the order of 100 us to compute. For values of `An`, see [1]_. This model was checked against six examples in [1]_; they match to all given decimals. Several additional formulas are given for multihole trim valves, control valves with two or more fixed area stages, and multipath, multistage trim valves. Examples -------- >>> control_valve_noise_g_2011(m=2.22, P1=1E6, P2=7.2E5, T1=450, rho=5.3, ... gamma=1.22, MW=19.8, Kv=77.85, d=0.1, Di=0.2031, FL=None, FLP=0.792, ... FP=0.98, Fd=0.296, t_pipe=0.008, rho_pipe=8000.0, c_pipe=5000.0, ... rho_air=1.293, c_air=343.0, An=-3.8, Stp=0.2) 91.67702674629604 References ---------- .. [1] IEC 60534-8-3 : Industrial-Process Control Valves - Part 8-3: Noise Considerations - Control Valve Aerodynamic Noise Prediction Method." ''' k = gamma # alias C = Kv_to_Cv(Kv) N14 = 4.6E-3 N16 = 4.89E4 fs = 1.0 # structural loss factor reference frequency, Hz P_air_std = 101325.0 if T2 is None: T2 = T1 x = (P1 - P2)/P1 # FLP/FP when fittings attached FL_term = FLP/FP if FP is not None else FL P_vc = P1*(1.0 - x/FL_term**2) x_vcc = 1.0 - (2.0/(k + 1.0))**(k/(k - 1.0)) # mostly matches xc = FL_term**2*x_vcc alpha = (1.0 - x_vcc)/(1.0 - xc) xB = 1.0 - 1.0/alpha*(1.0/k)**((k/(k - 1.0))) xCE = 1.0 - 1.0/(22.0*alpha) # Regime determination check - should be ordered or won't work assert xc < x_vcc assert x_vcc < xB assert xB < xCE regime = None if x <= xc: regime = 1 elif xc < x <= x_vcc: regime = 2 elif x_vcc < x <= xB: regime = 3 elif xB < x <= xCE: regime = 4 else: regime = 5 # print('regime', regime) Dj = N14*Fd*(C*(FL_term))**0.5 Mj5 = (2.0/(k - 1.0)*( 22.0**((k-1.0)/k) - 1.0 ))**0.5 if regime == 1: Mvc = ( (2.0/(k-1.0)) *((1.0 - x/FL_term**2)**((1.0 - k)/k) - 1.0) )**0.5 # Not match elif regime in (2, 3, 4): Mj = ( (2.0/(k-1.0))*((1.0/(alpha*(1.0-x)))**((k - 1.0)/k) - 1.0) )**0.5 # Not match Mj = min(Mj, Mj5) elif regime == 5: pass if regime == 1: Tvc = T1*(1.0 - x/(FL_term)**2)**((k - 1.0)/k) cvc = (k*P1/rho*(1 - x/(FL_term)**2)**((k-1.0)/k))**0.5 Wm = 0.5*m*(Mvc*cvc)**2 else: Tvcc = 2.0*T1/(k + 1.0) cvcc = (2.0*k*P1/(k+1.0)/rho)**0.5 Wm = 0.5*m*cvcc*cvcc # print('Wm', Wm) if regime == 1: fp = Stp*Mvc*cvc/Dj elif regime in (2, 3): fp = Stp*Mj*cvcc/Dj elif regime == 4: fp = 1.4*Stp*cvcc/Dj/(Mj*Mj - 1.0)**0.5 elif regime == 5: fp = 1.4*Stp*cvcc/Dj/(Mj5*Mj5 - 1.0)**0.5 # print('fp', fp) if regime == 1: eta = 10.0**An*FL_term**2*(Mvc)**3 elif regime == 2: eta = 10.0**An*x/x_vcc*Mj**(6.6*FL_term*FL_term) elif regime == 3: eta = 10.0**An*Mj**(6.6*FL_term*FL_term) elif regime == 4: eta = 0.5*10.0**An*Mj*Mj*(2.0**0.5)**(6.6*FL_term*FL_term) elif regime == 5: eta = 0.5*10.0**An*Mj5*Mj5*(2.0**0.5)**(6.6*FL_term*FL_term) # print('eta', eta) Wa = eta*Wm rho2 = rho*(P2/P1) # Speed of sound c2 = (k*R*T2/(MW/1000.))**0.5 Mo = 4.0*m/(pi*d*d*rho2*c2) M2 = 4.0*m/(pi*Di*Di*rho2*c2) # print('M2', M2) Lg = 16.0*log10(1.0/(1.0 - min(M2, 0.3))) # dB if M2 > 0.3: Up = 4.0*m/(pi*rho2*Di*Di) UR = Up*Di*Di/(beta*d*d) WmR = 0.5*m*UR*UR*( (1.0 - d*d/(Di*Di))**2 + 0.2) fpR = Stp*UR/d MR = UR/c2 # Value listed in appendix here is wrong, "based on another # earlier standard. Calculation thereon is wrong". Assumed # correct, matches spreadsheet to three decimals. eta_R = 10**An*MR**3 WaR = eta_R*WmR L_piR = 10.0*log10((3.2E9)*WaR*rho2*c2/(Di*Di)) + Lg # print('Up', Up) # print('UR', UR) # print('WmR', WmR) # print('fpR', fpR) # print('MR', MR) # print('eta_R', eta_R, eta_R/8.8E-4) # print('WaR', WaR) # print('L_piR', L_piR) L_pi = 10.0*log10((3.2E9)*Wa*rho2*c2/(Di*Di)) + Lg # print('L_pi', L_pi) fr = c_pipe/(pi*Di) fo = 0.25*fr*(c2/c_air) fg = 3**0.5*c_air**2/(pi*t_pipe*c_pipe) if d > 0.15: dTL = 0.0 elif 0.05 <= d <= 0.15: dTL = -16660.0*d**3 + 6370.0*d**2 - 813.0*d + 35.8 else: dTL = 9.0 # print(dTL, 'dTL') P_air_ratio = P_air/P_air_std LpAe1m_sum = 0.0 LPis = [] LPIRs = [] L_pe1m_fis = [] for fi, A_weight in zip(fis_l_2015, A_weights_l_2015): # This gets adjusted when Ma > 0.3 fi_turb_ratio = fi/fp t1 = 1.0 + (0.5*fi_turb_ratio)**2.5 t2 = 1.0 + (0.5/fi_turb_ratio)**1.7 # Formula forgot to use log10, but log10 is needed for the numbers Lpif = L_pi - 8.0 - 10.0*log10(t1*t2) # print(Lpif, 'Lpif') LPis.append(Lpif) if M2 > 0.3: fiR_turb_ratio = fi/fpR t1 = 1.0 + (0.5*fiR_turb_ratio)**2.5 t2 = 1.0 + (0.5/fiR_turb_ratio)**1.7 # Again, log10 is missing LpiRf = L_piR - 8.0 - 10.0*log10(t1*t2) LPIRs.append(LpiRf) LpiSf = 10.0*log10( 10**(0.1*Lpif) + 10.0**(0.1*LpiRf) ) if fi < fo: Gx = (fo/fr)**(2.0/3.0)*(fi/fo)**4.0 if fo < fg: Gy = (fo/fg) else: Gy = 1.0 else: if fi < fr: Gx = (fi/fr)**0.5 else: Gx = 1.0 if fi < fg: Gy = fi/fg else: Gy = 1.0 eta_s = (0.01/fi)**0.5 # print('eta_s', eta_s) # up to eta_s is good den = (rho2*c2 + 2.0*pi*t_pipe*fi*rho_pipe*eta_s)/(415.0*Gy) + 1.0 TL_fi = 10.0*log10(8.25E-7*(c2/(t_pipe*fi))**2*Gx/den*P_air_ratio) - dTL # Formula forgot to use log10, but log10 is needed for the numbers if M2 > 0.3: term = LpiSf else: term = Lpif L_pe1m_fi = term + TL_fi - 10.0*log10((Di + 2.0*t_pipe + 2.0)/(Di + 2.0*t_pipe)) L_pe1m_fis.append(L_pe1m_fi) # print(L_pe1m_fi) LpAe1m_sum += 10.0**(0.1*(L_pe1m_fi + A_weight)) LpAe1m = 10.0*log10(LpAe1m_sum) return LpAe1m fluids-0.1.78/fluids/__init__.py0000644000175000017500000000711613632560624015244 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' import os from . import numerics from . import constants from . import atmosphere from . import compressible from . import core from . import friction from . import filters from . import fittings from . import flow_meter from . import geometry from . import mixing from . import open_flow from . import packed_bed from . import piping from . import pump from . import safety_valve from . import packed_tower from . import two_phase_voidage from . import two_phase from . import drag from . import saltation from . import separator from . import particle_size_distribution from . import jet_pump from . import control_valve from .atmosphere import * from .compressible import * from .control_valve import * from .core import * from .filters import * from .fittings import * from .flow_meter import * from .friction import * from .geometry import * from .mixing import * from .open_flow import * from .particle_size_distribution import * from .packed_bed import * from .piping import * from .pump import * from .safety_valve import * from .packed_tower import * from .two_phase import * from .two_phase_voidage import * from .drag import * from .saltation import * from .separator import * from .jet_pump import * __all__ = ['atmosphere', 'compressible', 'control_valve', 'core', 'filters', 'fittings', 'friction', 'geometry', 'mixing', 'open_flow', 'packed_bed', 'piping', 'pump', 'safety_valve', 'packed_tower', 'two_phase', 'two_phase_voidage', 'drag', 'saltation', 'separator', 'flow_meter', 'particle_size_distribution', 'jet_pump'] __all__.extend(atmosphere.__all__) __all__.extend(compressible.__all__) __all__.extend(control_valve.__all__) __all__.extend(core.__all__) __all__.extend(filters.__all__) __all__.extend(fittings.__all__) __all__.extend(friction.__all__) __all__.extend(geometry.__all__) __all__.extend(mixing.__all__) __all__.extend(open_flow.__all__) __all__.extend(flow_meter.__all__) __all__.extend(packed_bed.__all__) __all__.extend(piping.__all__) __all__.extend(pump.__all__) __all__.extend(safety_valve.__all__) __all__.extend(packed_tower.__all__) __all__.extend(two_phase.__all__) __all__.extend(two_phase_voidage.__all__) __all__.extend(drag.__all__) __all__.extend(saltation.__all__) __all__.extend(separator.__all__) __all__.extend(particle_size_distribution.__all__) __all__.extend(jet_pump.__all__) __version__ = '0.1.78' fluids_dir = os.path.dirname(__file__) fluids_data_dir = os.path.join(fluids_dir, 'data') fluids-0.1.78/fluids/particle_size_distribution.py0000644000175000017500000035062513632560624021147 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This module contains particle distribution characterization, fitting, interpolating, and manipulation functions. It may be used with discrete particle size distributions, or with statistical ones with parameters specified. For reporting bugs, adding feature requests, or submitting pull requests, please use the `GitHub issue tracker `_ or contact the author at Caleb.Andrew.Bell@gmail.com. .. contents:: :local: Particle Size Distribution Base Class ------------------------------------- .. autoclass:: ParticleSizeDistributionContinuous :members: Discrete Particle Size Distributions ------------------------------------ .. autoclass:: ParticleSizeDistribution :members: .. autoclass:: PSDInterpolated :members: Statistical Particle Size Distributions --------------------------------------- .. autoclass:: PSDLognormal :members: .. autoclass:: PSDGatesGaudinSchuhman :members: .. autoclass:: PSDRosinRammler :members: .. autoclass:: PSDCustom :members: Helper functions: Lognormal Distribution ---------------------------------------- .. autofunction:: pdf_lognormal .. autofunction:: cdf_lognormal .. autofunction:: pdf_lognormal_basis_integral Helper functions: Gates Gaudin Schuhman Distribution ---------------------------------------------------- .. autofunction:: pdf_Gates_Gaudin_Schuhman .. autofunction:: cdf_Gates_Gaudin_Schuhman .. autofunction:: pdf_Gates_Gaudin_Schuhman_basis_integral Helper functions: Rosin Rammler Distribution -------------------------------------------- .. autofunction:: pdf_Rosin_Rammler .. autofunction:: cdf_Rosin_Rammler .. autofunction:: pdf_Rosin_Rammler_basis_integral Sieves ------ .. autoclass:: Sieve .. autodata:: ASTM_E11_sieves .. autodata:: ISO_3310_1_sieves .. autodata:: ISO_3310_1_R20 .. autodata:: ISO_3310_1_R20_3 .. autodata:: ISO_3310_1_R40_3 .. autodata:: ISO_3310_1_R10 Point Spacing ------------- .. autofunction:: psd_spacing ''' from __future__ import division __all__ = ['ParticleSizeDistribution', 'ParticleSizeDistributionContinuous', 'PSDLognormal', 'PSDGatesGaudinSchuhman', 'PSDRosinRammler', 'PSDInterpolated', 'PSDCustom', 'psd_spacing', 'pdf_lognormal', 'cdf_lognormal', 'pdf_lognormal_basis_integral', 'pdf_Gates_Gaudin_Schuhman', 'cdf_Gates_Gaudin_Schuhman', 'pdf_Gates_Gaudin_Schuhman_basis_integral', 'pdf_Rosin_Rammler', 'cdf_Rosin_Rammler', 'pdf_Rosin_Rammler_basis_integral', 'ASTM_E11_sieves', 'ISO_3310_1_sieves', 'Sieve', 'ISO_3310_1_R20_3', 'ISO_3310_1_R20', 'ISO_3310_1_R10', 'ISO_3310_1_R40_3'] from math import log, exp, pi, log10 from fluids.numerics import (brenth, epsilon, gamma, erf, gammaincc, linspace, logspace, cumsum, diff, normalize) from fluids.numerics import numpy as np ROOT_TWO_PI = (2.0*pi)**0.5 NO_MATPLOTLIB_MSG = 'Optional dependency matplotlib is required for plotting' class Sieve(object): r'''Class for storing data on sieves. If a property is not available, it is set to None. Attributes ---------- designation : str The standard name of the sieve - its opening's length in units of millimeters old_designation : str The older, imperial-esque name of the sieve; in Numbers, or inches for large sieves opening : float The opening length of the sieve holes, [m] opening_inch : float The opening length of the sieve holes in the rounded inches as stated in common tables (not exactly equal to the `opening`), [inch] Y_variation_avg : float The allowable average variation in the Y direction of the sieve openings, [m] X_variation_max : float The allowable maximum variation in the X direction of the sieve openings, [m] max_opening : float The maximum allowable opening of the sieve, [m] calibration_samples : float The number of opening sample inspections required for `calibration`- type sieve openings (per 100 ft^2 of sieve material), [1/(ft^2)] compliance_sd : float The maximum standard deviation of `compliance`-type sieve openings, [-] inspection_samples : float The number of opening sample inspections required for `inspection`- type sieve openings (based on an 8-inch sieve), [-] inspection_sd : float The maximum standard deviation of `inspection`-type sieve openings, [-] calibration_samples : float The number of opening sample inspections required for `calibration`- type sieve openings (based on an 8-inch sieve), [-] calibration_sd : float The maximum standard deviation of `calibration`-type sieve openings, [-] d_wire : float Typical wire diameter of the specified sieve size, [m] d_wire_min : float Permissible minimum wire diameter of specified sieve size, [m] d_wire_max : float Permissible maximum wire diameter of specified sieve size, [m] ''' __slots__ = ('designation', 'old_designation', 'opening', 'opening_inch', 'Y_variation_avg', 'X_variation_max', 'max_opening', 'calibration_samples', 'compliance_sd', 'inspection_samples', 'inspection_sd', 'calibration_samples', 'calibration_sd', 'd_wire', 'd_wire_min', 'd_wire_max', 'compliance_samples') # def __repr__(self): # s = 'Sieve(%s)' # s2 = '' # for attr, value in self.__dict__.items(): # if value is not None: # if type(value) == float: # value = round(value, 8) # elif type(value) == str: # value = "'" + value + "'" # s2 += '%s=%s, '%(attr, value) # s2 = s2[0:-2] # return s %(s2) def __repr__(self): return '' %(self.designation, self.opening) def __init__(self, designation, old_designation=None, opening=None, opening_inch=None, Y_variation_avg=None, X_variation_max=None, max_opening=None, compliance_samples=None, compliance_sd=None, inspection_samples=None, inspection_sd=None, calibration_samples=None, calibration_sd=None, d_wire=None, d_wire_min=None, d_wire_max=None): self.designation = designation self.old_designation = old_designation self.opening_inch = opening_inch self.opening = opening self.Y_variation_avg = Y_variation_avg self.X_variation_max = X_variation_max self.max_opening = max_opening self.compliance_samples = compliance_samples self.compliance_sd = compliance_sd self.inspection_samples = inspection_samples self.inspection_sd = inspection_sd self.calibration_samples = calibration_samples self.calibration_sd = calibration_sd self.d_wire = d_wire self.d_wire_min = d_wire_min self.d_wire_max = d_wire_max ASTM_E11_sieves = {'0.02': Sieve(calibration_samples=300.0, d_wire_min=2e-08, d_wire=2e-08, inspection_sd=4.51, calibration_sd=4.75, old_designation='No. 635', opening=2e-05, compliance_samples=1000.0, opening_inch=8e-07, inspection_samples=100.0, designation='0.02', d_wire_max=2e-08, max_opening=0.035, X_variation_max=1.5e-05, Y_variation_avg=2.3e-06, compliance_sd=5.33), '0.025': Sieve(calibration_samples=300.0, d_wire_min=2e-08, d_wire=3e-08, inspection_sd=4.82, calibration_sd=5.06, old_designation='No. 500', opening=2.5e-05, compliance_samples=1000.0, opening_inch=1e-06, inspection_samples=100.0, designation='0.025', d_wire_max=3e-08, max_opening=0.041, X_variation_max=1.6e-05, Y_variation_avg=2.5e-06, compliance_sd=5.71), '0.032': Sieve(calibration_samples=300.0, d_wire_min=2e-08, d_wire=3e-08, inspection_sd=5.42, calibration_sd=5.71, old_designation='No. 450', opening=3.2e-05, compliance_samples=1000.0, opening_inch=1.2e-06, inspection_samples=100.0, designation='0.032', d_wire_max=3e-08, max_opening=0.05, X_variation_max=1.8e-05, Y_variation_avg=2.7e-06, compliance_sd=6.42), '0.038': Sieve(calibration_samples=300.0, d_wire_min=2e-08, d_wire=3e-08, inspection_sd=5.99, calibration_sd=6.31, old_designation='No. 400', opening=3.8e-05, compliance_samples=1000.0, opening_inch=1.5e-06, inspection_samples=100.0, designation='0.038', d_wire_max=3e-08, max_opening=0.058, X_variation_max=2e-05, Y_variation_avg=2.9e-06, compliance_sd=7.09), '0.045': Sieve(calibration_samples=250.0, d_wire_min=3e-08, d_wire=3e-08, inspection_sd=6.56, calibration_sd=6.84, old_designation='No. 325', opening=4.5e-05, compliance_samples=1000.0, opening_inch=1.7e-06, inspection_samples=100.0, designation='0.045', d_wire_max=4e-08, max_opening=0.067, X_variation_max=2.2e-05, Y_variation_avg=3.1e-06, compliance_sd=7.76), '0.053': Sieve(calibration_samples=250.0, d_wire_min=3e-08, d_wire=4e-08, inspection_sd=7.13, calibration_sd=7.44, old_designation='No. 270', opening=5.3e-05, compliance_samples=1000.0, opening_inch=2.1e-06, inspection_samples=100.0, designation='0.053', d_wire_max=4e-08, max_opening=0.077, X_variation_max=2.4e-05, Y_variation_avg=3.4e-06, compliance_sd=8.44), '0.063': Sieve(calibration_samples=250.0, d_wire_min=4e-08, d_wire=5e-08, inspection_sd=7.76, calibration_sd=8.09, old_designation='No. 230', opening=6.3e-05, compliance_samples=1000.0, opening_inch=2.5e-06, inspection_samples=100.0, designation='0.063', d_wire_max=5e-08, max_opening=0.089, X_variation_max=2.6e-05, Y_variation_avg=3.7e-06, compliance_sd=9.18), '0.075': Sieve(calibration_samples=250.0, d_wire_min=4e-08, d_wire=5e-08, inspection_sd=8.64, calibration_sd=9.02, old_designation='No. 200', opening=7.5e-05, compliance_samples=1000.0, opening_inch=2.9e-06, inspection_samples=100.0, designation='0.075', d_wire_max=6e-08, max_opening=0.104, X_variation_max=2.9e-05, Y_variation_avg=4.1e-06, compliance_sd=10.23), '0.09': Sieve(calibration_samples=200.0, d_wire_min=5e-08, d_wire=6e-08, inspection_sd=9.53, calibration_sd=9.8, old_designation='No. 170', opening=9e-05, compliance_samples=1000.0, opening_inch=3.5e-06, inspection_samples=100.0, designation='0.09', d_wire_max=7e-08, max_opening=0.122, X_variation_max=3.2e-05, Y_variation_avg=4.6e-06, compliance_sd=11.27), '0.106': Sieve(calibration_samples=200.0, d_wire_min=6e-08, d_wire=7e-08, inspection_sd=10.47, calibration_sd=10.77, old_designation='No. 140', opening=0.000106, compliance_samples=1000.0, opening_inch=4.1e-06, inspection_samples=100.0, designation='0.106', d_wire_max=8e-08, max_opening=0.141, X_variation_max=3.5e-05, Y_variation_avg=5.2e-06, compliance_sd=12.39), '0.125': Sieve(calibration_samples=200.0, d_wire_min=8e-08, d_wire=9e-08, inspection_sd=11.41, calibration_sd=11.74, old_designation='No. 120', opening=0.000125, compliance_samples=1000.0, opening_inch=4.9e-06, inspection_samples=100.0, designation='0.125', d_wire_max=1e-07, max_opening=0.163, X_variation_max=3.8e-05, Y_variation_avg=5.8e-06, compliance_sd=13.51), '0.15': Sieve(calibration_samples=200.0, d_wire_min=9e-08, d_wire=1e-07, inspection_sd=12.93, calibration_sd=13.3, old_designation='No. 100', opening=0.00015, compliance_samples=1000.0, opening_inch=5.9e-06, inspection_samples=100.0, designation='0.15', d_wire_max=1.2e-07, max_opening=0.193, X_variation_max=4.3e-05, Y_variation_avg=6.6e-06, compliance_sd=15.3), '0.18': Sieve(calibration_samples=200.0, d_wire_min=1.1e-07, d_wire=1.2e-07, inspection_sd=14.24, calibration_sd=14.65, old_designation='No. 80', opening=0.00018, compliance_samples=1000.0, opening_inch=7e-06, inspection_samples=100.0, designation='0.18', d_wire_max=1.5e-07, max_opening=0.227, X_variation_max=4.7e-05, Y_variation_avg=7.6e-06, compliance_sd=16.85), '0.212': Sieve(calibration_samples=160.0, d_wire_min=1.2e-07, d_wire=1.4e-07, inspection_sd=15.59, calibration_sd=16.08, old_designation='No. 70', opening=0.000212, compliance_samples=800.0, opening_inch=8.3e-06, inspection_samples=80.0, designation='0.212', d_wire_max=1.7e-07, max_opening=0.264, X_variation_max=5.2e-05, Y_variation_avg=8.7e-06, compliance_sd=18.79), '0.25': Sieve(calibration_samples=160.0, d_wire_min=1.3e-07, d_wire=1.6e-07, inspection_sd=17.44, calibration_sd=17.99, old_designation='No. 60', opening=0.00025, compliance_samples=800.0, opening_inch=9.8e-06, inspection_samples=80.0, designation='0.25', d_wire_max=1.9e-07, max_opening=0.308, X_variation_max=5.8e-05, Y_variation_avg=9.9e-06, compliance_sd=21.02), '0.3': Sieve(calibration_samples=160.0, d_wire_min=1.7e-07, d_wire=2e-07, inspection_sd=19.66, calibration_sd=20.29, old_designation='No. 50', opening=0.0003, compliance_samples=800.0, opening_inch=1.17e-05, inspection_samples=80.0, designation='0.3', d_wire_max=2.3e-07, max_opening=0.365, X_variation_max=6.5e-05, Y_variation_avg=1.15e-05, compliance_sd=23.7), '0.355': Sieve(calibration_samples=160.0, d_wire_min=1.9e-07, d_wire=2.2e-07, inspection_sd=21.95, calibration_sd=22.64, old_designation='No. 45', opening=0.000355, compliance_samples=800.0, opening_inch=1.39e-05, inspection_samples=80.0, designation='0.355', d_wire_max=2.6e-07, max_opening=0.427, X_variation_max=7.2e-05, Y_variation_avg=1.33e-05, compliance_sd=26.45), '0.425': Sieve(calibration_samples=120.0, d_wire_min=2.4e-07, d_wire=2.8e-07, inspection_sd=24.2, calibration_sd=25.08, old_designation='No. 40', opening=0.000425, compliance_samples=600.0, opening_inch=1.65e-05, inspection_samples=60.0, designation='0.425', d_wire_max=3.2e-07, max_opening=0.506, X_variation_max=8.1e-05, Y_variation_avg=1.55e-05, compliance_sd=29.95), '0.5': Sieve(calibration_samples=120.0, d_wire_min=2.7e-07, d_wire=3.2e-07, inspection_sd=26.85, calibration_sd=27.82, old_designation='No. 35', opening=0.0005, compliance_samples=600.0, opening_inch=1.97e-05, inspection_samples=60.0, designation='0.5', d_wire_max=3.6e-07, max_opening=0.589, X_variation_max=8.9e-05, Y_variation_avg=1.8e-05, compliance_sd=33.23), '0.6': Sieve(calibration_samples=100.0, d_wire_min=3.4e-07, d_wire=4e-07, inspection_sd=30.14, calibration_sd=31.32, old_designation='No. 30', opening=0.0006, compliance_samples=500.0, opening_inch=2.34e-05, inspection_samples=50.0, designation='0.6', d_wire_max=4.6e-07, max_opening=0.701, X_variation_max=0.000101, Y_variation_avg=2.12e-05, compliance_sd=38.0), '0.71': Sieve(calibration_samples=100.0, d_wire_min=3.8e-07, d_wire=4.5e-07, inspection_sd=33.82, calibration_sd=35.14, old_designation='No. 25', opening=0.00071, compliance_samples=500.0, opening_inch=2.78e-05, inspection_samples=50.0, designation='0.71', d_wire_max=5.2e-07, max_opening=0.822, X_variation_max=0.000112, Y_variation_avg=2.47e-05, compliance_sd=42.63), '0.85': Sieve(calibration_samples=80.0, d_wire_min=4.3e-07, d_wire=5e-07, inspection_sd=37.73, calibration_sd=39.36, old_designation='No. 20', opening=0.00085, compliance_samples=400.0, opening_inch=3.31e-05, inspection_samples=40.0, designation='0.85', d_wire_max=5.8e-07, max_opening=0.977, X_variation_max=0.000127, Y_variation_avg=2.91e-05, compliance_sd=48.76), '1': Sieve(calibration_samples=80.0, d_wire_min=0.00048, d_wire=0.00056, inspection_sd=0.042, calibration_sd=0.044, old_designation='No. 18', opening=0.001, compliance_samples=400.0, opening_inch=3.94e-05, inspection_samples=40.0, designation='1', d_wire_max=0.00064, max_opening=1.14, X_variation_max=0.00014, Y_variation_avg=3.4e-05, compliance_sd=0.055), '1.18': Sieve(calibration_samples=80.0, d_wire_min=0.00054, d_wire=0.00063, inspection_sd=0.049, calibration_sd=0.051, old_designation='No. 16', opening=0.00118, compliance_samples=400.0, opening_inch=4.69e-05, inspection_samples=40.0, designation='1.18', d_wire_max=0.00072, max_opening=1.34, X_variation_max=0.00016, Y_variation_avg=4e-05, compliance_sd=0.063), '1.4': Sieve(calibration_samples=80.0, d_wire_min=0.0006, d_wire=0.00071, inspection_sd=0.055, calibration_sd=0.057, old_designation='No. 14', opening=0.0014, compliance_samples=400.0, opening_inch=5.55e-05, inspection_samples=40.0, designation='1.4', d_wire_max=0.00082, max_opening=1.58, X_variation_max=0.00018, Y_variation_avg=4.6e-05, compliance_sd=0.071), '1.7': Sieve(calibration_samples=50.0, d_wire_min=0.00068, d_wire=0.0008, inspection_sd=0.059, calibration_sd=0.062, old_designation='No. 12', opening=0.0017, compliance_samples=250.0, opening_inch=6.61e-05, inspection_samples=25.0, designation='1.7', d_wire_max=0.00092, max_opening=1.9, X_variation_max=0.0002, Y_variation_avg=5.6e-05, compliance_sd=0.081), '100': Sieve(d_wire_min=0.0054, d_wire=0.0063, old_designation='4 in.', opening=0.1, compliance_samples=20.0, opening_inch=0.004, designation='100', d_wire_max=0.0072, max_opening=103.82, X_variation_max=0.00382, Y_variation_avg=0.00294), '106': Sieve(d_wire_min=0.0054, d_wire=0.0063, old_designation='4.24 in.', opening=0.106, compliance_samples=20.0, opening_inch=0.00424, designation='106', d_wire_max=0.0072, max_opening=109.99, X_variation_max=0.00399, Y_variation_avg=0.00312), '11.2': Sieve(calibration_samples=30.0, d_wire_min=0.0021, d_wire=0.0025, inspection_sd=0.256, calibration_sd=0.274, old_designation='7/16 in.', opening=0.0112, compliance_samples=150.0, opening_inch=0.000438, inspection_samples=15.0, designation='11.2', d_wire_max=0.0029, max_opening=11.97, X_variation_max=0.00077, Y_variation_avg=0.000346, compliance_sd=0.382), '12.5': Sieve(calibration_samples=30.0, d_wire_min=0.0021, d_wire=0.0025, inspection_sd=0.283, calibration_sd=0.302, old_designation='1/2 in.', opening=0.0125, compliance_samples=150.0, opening_inch=0.0005, inspection_samples=15.0, designation='12.5', d_wire_max=0.0029, max_opening=13.33, X_variation_max=0.00083, Y_variation_avg=0.000385, compliance_sd=0.421), '125': Sieve(d_wire_min=0.0068, d_wire=0.008, old_designation='5 in.', opening=0.125, compliance_samples=20.0, opening_inch=0.005, designation='125', d_wire_max=0.0092, max_opening=129.51, X_variation_max=0.00451, Y_variation_avg=0.00366), '13.2': Sieve(calibration_samples=30.0, d_wire_min=0.0024, d_wire=0.0028, inspection_sd=0.296, calibration_sd=0.316, old_designation='0.530 in.', opening=0.0132, compliance_samples=150.0, opening_inch=0.00053, inspection_samples=15.0, designation='13.2', d_wire_max=0.0032, max_opening=14.06, X_variation_max=0.00086, Y_variation_avg=0.000406, compliance_sd=0.441), '16': Sieve(calibration_samples=30.0, d_wire_min=0.0027, d_wire=0.00315, inspection_sd=0.354, calibration_sd=0.378, old_designation='5/8 in.', opening=0.016, compliance_samples=150.0, opening_inch=0.000625, inspection_samples=15.0, designation='16', d_wire_max=0.0036, max_opening=16.99, X_variation_max=0.00099, Y_variation_avg=0.00049, compliance_sd=0.527), '19': Sieve(calibration_samples=30.0, d_wire_min=0.0027, d_wire=0.00315, inspection_sd=0.418, calibration_sd=0.446, old_designation='3/4 in.', opening=0.019, compliance_samples=150.0, opening_inch=0.00075, inspection_samples=15.0, designation='19', d_wire_max=0.0035, max_opening=20.13, X_variation_max=0.00113, Y_variation_avg=0.000579, compliance_sd=0.622), '2': Sieve(calibration_samples=50.0, d_wire_min=0.00077, d_wire=0.0009, inspection_sd=0.068, calibration_sd=0.072, old_designation='No. 10', opening=0.002, compliance_samples=250.0, opening_inch=7.87e-05, inspection_samples=25.0, designation='2', d_wire_max=0.00104, max_opening=2.23, X_variation_max=0.00023, Y_variation_avg=6.5e-05, compliance_sd=0.094), '2.36': Sieve(calibration_samples=40.0, d_wire_min=0.00085, d_wire=0.001, inspection_sd=0.073, calibration_sd=0.077, old_designation='No. 8', opening=0.00236, compliance_samples=200.0, opening_inch=9.37e-05, inspection_samples=20.0, designation='2.36', d_wire_max=0.00115, max_opening=2.61, X_variation_max=0.00025, Y_variation_avg=7.6e-05, compliance_sd=0.104), '2.8': Sieve(calibration_samples=40.0, d_wire_min=0.00095, d_wire=0.00112, inspection_sd=0.085, calibration_sd=0.09, old_designation='No. 7', opening=0.0028, compliance_samples=200.0, opening_inch=0.00011, inspection_samples=20.0, designation='2.8', d_wire_max=0.0013, max_opening=3.09, X_variation_max=0.00029, Y_variation_avg=9e-05, compliance_sd=0.121), '22.4': Sieve(d_wire_min=0.003, d_wire=0.00355, inspection_sd=0.493, old_designation='7/8 in.', opening=0.0224, compliance_samples=150.0, opening_inch=0.000875, inspection_samples=15.0, designation='22.4', d_wire_max=0.0041, max_opening=23.67, X_variation_max=0.00127, Y_variation_avg=0.000681, compliance_sd=0.734), '25': Sieve(d_wire_min=0.003, d_wire=0.00355, inspection_sd=0.553, old_designation='1.00 in.', opening=0.025, compliance_samples=20.0, opening_inch=0.001, inspection_samples=15.0, designation='25', d_wire_max=0.0041, max_opening=26.38, X_variation_max=0.00138, Y_variation_avg=0.000758, compliance_sd=0.823), '26.5': Sieve(d_wire_min=0.003, d_wire=0.00355, inspection_sd=0.584, old_designation='1.06 in.', opening=0.0265, compliance_samples=20.0, opening_inch=0.00106, inspection_samples=15.0, designation='26.5', d_wire_max=0.0041, max_opening=27.94, X_variation_max=0.00144, Y_variation_avg=0.000802, compliance_sd=0.869), '3.35': Sieve(calibration_samples=40.0, d_wire_min=0.00106, d_wire=0.00125, inspection_sd=0.097, calibration_sd=0.103, old_designation='No. 6', opening=0.00335, compliance_samples=200.0, opening_inch=0.000132, inspection_samples=20.0, designation='3.35', d_wire_max=0.0015, max_opening=3.67, X_variation_max=0.00032, Y_variation_avg=0.000107, compliance_sd=0.138), '31.5': Sieve(d_wire_min=0.0034, d_wire=0.004, old_designation='1 1/4 in.', opening=0.0315, compliance_samples=20.0, opening_inch=0.00125, designation='31.5', d_wire_max=0.0046, max_opening=33.13, X_variation_max=0.00163, Y_variation_avg=0.00095, compliance_sd=1.066), '37.5': Sieve(d_wire_min=0.0038, d_wire=0.0045, old_designation='1 1/2 in.', opening=0.0375, compliance_samples=20.0, opening_inch=0.0015, designation='37.5', d_wire_max=0.0052, max_opening=39.35, X_variation_max=0.00185, Y_variation_avg=0.00113, compliance_sd=1.374), '4': Sieve(calibration_samples=30.0, d_wire_min=0.0012, d_wire=0.0014, inspection_sd=0.108, calibration_sd=0.115, old_designation='No. 5', opening=0.004, compliance_samples=150.0, opening_inch=0.000157, inspection_samples=15.0, designation='4', d_wire_max=0.0017, max_opening=4.37, X_variation_max=0.00037, Y_variation_avg=0.000127, compliance_sd=0.161), '4.75': Sieve(calibration_samples=30.0, d_wire_min=0.0013, d_wire=0.0016, inspection_sd=0.123, calibration_sd=0.131, old_designation='No. 4', opening=0.00475, compliance_samples=150.0, opening_inch=0.000187, inspection_samples=15.0, designation='4.75', d_wire_max=0.0019, max_opening=5.16, X_variation_max=0.00041, Y_variation_avg=0.00015, compliance_sd=0.182), '45': Sieve(d_wire_min=0.0038, d_wire=0.0045, old_designation='1 3/4 in.', opening=0.045, compliance_samples=20.0, opening_inch=0.00175, designation='45', d_wire_max=0.0052, max_opening=47.12, X_variation_max=0.00212, Y_variation_avg=0.00135), '5.6': Sieve(calibration_samples=30.0, d_wire_min=0.0013, d_wire=0.0016, inspection_sd=0.142, calibration_sd=0.151, old_designation='No. 3 1/2', opening=0.0056, compliance_samples=150.0, opening_inch=0.000223, inspection_samples=15.0, designation='5.6', d_wire_max=0.0019, max_opening=6.07, X_variation_max=0.00047, Y_variation_avg=0.000176, compliance_sd=0.211), '50': Sieve(d_wire_min=0.0043, d_wire=0.005, old_designation='2 in.', opening=0.05, compliance_samples=20.0, opening_inch=0.002, designation='50', d_wire_max=0.0058, max_opening=52.29, X_variation_max=0.00229, Y_variation_avg=0.00149), '53': Sieve(d_wire_min=0.0043, d_wire=0.005, old_designation='2.12 in.', opening=0.053, compliance_samples=20.0, opening_inch=0.00212, designation='53', d_wire_max=0.0058, max_opening=55.39, X_variation_max=0.00239, Y_variation_avg=0.00158), '6.3': Sieve(calibration_samples=30.0, d_wire_min=0.0015, d_wire=0.0018, inspection_sd=0.157, calibration_sd=0.167, old_designation='1/4 in.', opening=0.0063, compliance_samples=150.0, opening_inch=0.00025, inspection_samples=15.0, designation='6.3', d_wire_max=0.0021, max_opening=6.81, X_variation_max=0.00051, Y_variation_avg=0.000197, compliance_sd=0.233), '6.7': Sieve(calibration_samples=30.0, d_wire_min=0.0015, d_wire=0.0018, inspection_sd=0.164, calibration_sd=0.175, old_designation='0.265 in.', opening=0.0067, compliance_samples=150.0, opening_inch=0.000265, inspection_samples=15.0, designation='6.7', d_wire_max=0.0021, max_opening=7.23, X_variation_max=0.00053, Y_variation_avg=0.00021, compliance_sd=0.245), '63': Sieve(d_wire_min=0.0048, d_wire=0.0056, old_designation='2 1/2 in.', opening=0.063, compliance_samples=20.0, opening_inch=0.0025, designation='63', d_wire_max=0.0064, max_opening=65.71, X_variation_max=0.00271, Y_variation_avg=0.00187), '75': Sieve(d_wire_min=0.0054, d_wire=0.0063, old_designation='3 in.', opening=0.075, compliance_samples=20.0, opening_inch=0.003, designation='75', d_wire_max=0.0072, max_opening=78.09, X_variation_max=0.00309, Y_variation_avg=0.00222), '8': Sieve(calibration_samples=30.0, d_wire_min=0.0017, d_wire=0.002, inspection_sd=0.191, calibration_sd=0.204, old_designation='5/16 in.', opening=0.008, compliance_samples=150.0, opening_inch=0.000312, inspection_samples=15.0, designation='8', d_wire_max=0.0023, max_opening=8.6, X_variation_max=0.0006, Y_variation_avg=0.000249, compliance_sd=0.284), '9.5': Sieve(calibration_samples=30.0, d_wire_min=0.0019, d_wire=0.00224, inspection_sd=0.222, calibration_sd=0.237, old_designation='3/8 in.', opening=0.0095, compliance_samples=150.0, opening_inch=0.000375, inspection_samples=15.0, designation='9.5', d_wire_max=0.0026, max_opening=10.18, X_variation_max=0.00068, Y_variation_avg=0.000295, compliance_sd=0.33), '90': Sieve(d_wire_min=0.0054, d_wire=0.0063, old_designation='3 1/2 in.', opening=0.09, compliance_samples=20.0, opening_inch=0.0035, designation='90', d_wire_max=0.0072, max_opening=93.53, X_variation_max=0.00353, Y_variation_avg=0.00265) } '''Dictionary containing ASTM E-11 sieve series :py:func:`Sieve` objects, indexed by their size in mm as a string. References ---------- .. [1] ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves. ''' ASTM_E11_sieve_designations = ['125', '106', '100', '90', '75', '63', '53', '50', '45', '37.5', '31.5', '26.5', '25', '22.4', '19', '16', '13.2', '12.5', '11.2', '9.5', '8', '6.7', '6.3', '5.6', '4.75', '4', '3.35', '2.8', '2.36', '2', '1.7', '1.4', '1.18', '1', '0.85', '0.71', '0.6', '0.5', '0.425', '0.355', '0.3', '0.25', '0.212', '0.18', '0.15', '0.125', '0.106', '0.09', '0.075', '0.063', '0.053', '0.045', '0.038', '0.032', '0.025', '0.02'] ASTM_E11_sieve_list = [ASTM_E11_sieves[i] for i in ASTM_E11_sieve_designations] ISO_3310_1_sieves = { '0.02': Sieve(designation='0.02', d_wire_max=2.3e-05, compliance_sd=4.7e-06, X_variation_max=1.3e-05, d_wire=2e-05, Y_variation_avg=2.1e-06, d_wire_min=2.3e-05, opening=2e-05), '0.025': Sieve(designation='0.025', d_wire_max=2.9e-05, compliance_sd=5.2e-06, X_variation_max=1.5e-05, d_wire=2.5e-05, Y_variation_avg=2.2e-06, d_wire_min=2.9e-05, opening=2.5e-05), '0.032': Sieve(designation='0.032', d_wire_max=3.3e-05, compliance_sd=5.9e-06, X_variation_max=1.7e-05, d_wire=2.8e-05, Y_variation_avg=2.4e-06, d_wire_min=3.3e-05, opening=3.2e-05), '0.036': Sieve(designation='0.036', d_wire_max=3.5e-05, compliance_sd=6.3e-06, X_variation_max=1.8e-05, d_wire=3e-05, Y_variation_avg=2.6e-06, d_wire_min=3.5e-05, opening=3.6e-05), '0.038': Sieve(designation='0.038', d_wire_max=3.5e-05, compliance_sd=6.4e-06, X_variation_max=1.8e-05, d_wire=3e-05, Y_variation_avg=2.6e-06, d_wire_min=3.5e-05, opening=3.8e-05), '0.04': Sieve(designation='0.04', d_wire_max=3.7e-05, compliance_sd=6.5e-06, X_variation_max=1.9e-05, d_wire=3.2e-05, Y_variation_avg=2.7e-06, d_wire_min=3.7e-05, opening=4e-05), '0.045': Sieve(designation='0.045', d_wire_max=3.7e-05, compliance_sd=6.9e-06, X_variation_max=2e-05, d_wire=3.2e-05, Y_variation_avg=2.8e-06, d_wire_min=3.7e-05, opening=4.5e-05), '0.05': Sieve(designation='0.05', d_wire_max=4.1e-05, compliance_sd=7.3e-06, X_variation_max=2.1e-05, d_wire=3.6e-05, Y_variation_avg=3e-06, d_wire_min=4.1e-05, opening=5e-05), '0.053': Sieve(designation='0.053', d_wire_max=4.1e-05, compliance_sd=7.6e-06, X_variation_max=2.1e-05, d_wire=3.6e-05, Y_variation_avg=3.1e-06, d_wire_min=4.1e-05, opening=5.3e-05), '0.056': Sieve(designation='0.056', d_wire_max=4.6e-05, compliance_sd=7.8e-06, X_variation_max=2.2e-05, d_wire=4e-05, Y_variation_avg=3.2e-06, d_wire_min=4.6e-05, opening=5.6e-05), '0.063': Sieve(designation='0.063', d_wire_max=5.2e-05, compliance_sd=8.3e-06, X_variation_max=2.4e-05, d_wire=4.5e-05, Y_variation_avg=3.4e-06, d_wire_min=5.2e-05, opening=6.3e-05), '0.071': Sieve(designation='0.071', d_wire_max=5.8e-05, compliance_sd=8.9e-06, X_variation_max=2.5e-05, d_wire=5e-05, Y_variation_avg=3.6e-06, d_wire_min=4.3e-05, opening=7.1e-05), '0.075': Sieve(designation='0.075', d_wire_max=5.8e-05, compliance_sd=9.1e-06, X_variation_max=2.6e-05, d_wire=5e-05, Y_variation_avg=3.7e-06, d_wire_min=4.3e-05, opening=7.5e-05), '0.08': Sieve(designation='0.08', d_wire_max=6.4e-05, compliance_sd=9.4e-06, X_variation_max=2.7e-05, d_wire=5.6e-05, Y_variation_avg=3.9e-06, d_wire_min=4.8e-05, opening=8e-05), '0.09': Sieve(designation='0.09', d_wire_max=7.2e-05, compliance_sd=1.01e-05, X_variation_max=2.9e-05, d_wire=6.3e-05, Y_variation_avg=4.2e-06, d_wire_min=5.4e-05, opening=9e-05), '0.1': Sieve(designation='0.1', d_wire_max=8.2e-05, compliance_sd=1.08e-05, X_variation_max=3e-05, d_wire=7.1e-05, Y_variation_avg=4.5e-06, d_wire_min=6e-05, opening=0.0001), '0.106': Sieve(designation='0.106', d_wire_max=8.2e-05, compliance_sd=1.11e-05, X_variation_max=3.1e-05, d_wire=7.1e-05, Y_variation_avg=4.7e-06, d_wire_min=6e-05, opening=0.000106), '0.112': Sieve(designation='0.112', d_wire_max=9.2e-05, compliance_sd=1.15e-05, X_variation_max=3.2e-05, d_wire=8e-05, Y_variation_avg=4.8e-06, d_wire_min=6.8e-05, opening=0.000112), '0.125': Sieve(designation='0.125', d_wire_max=0.000104, compliance_sd=1.22e-05, X_variation_max=3.4e-05, d_wire=9e-05, Y_variation_avg=5.2e-06, d_wire_min=7.7e-05, opening=0.000125), '0.14': Sieve(designation='0.14', d_wire_max=0.000115, compliance_sd=1.31e-05, X_variation_max=3.7e-05, d_wire=0.0001, Y_variation_avg=5.7e-06, d_wire_min=8.5e-05, opening=0.00014), '0.15': Sieve(designation='0.15', d_wire_max=0.000115, compliance_sd=1.37e-05, X_variation_max=3.8e-05, d_wire=0.0001, Y_variation_avg=6e-06, d_wire_min=8.5e-05, opening=0.00015), '0.16': Sieve(designation='0.16', d_wire_max=0.00013, compliance_sd=1.42e-05, X_variation_max=4e-05, d_wire=0.000112, Y_variation_avg=6.3e-06, d_wire_min=9.5e-05, opening=0.00016), '0.18': Sieve(designation='0.18', d_wire_max=0.00015, compliance_sd=1.53e-05, X_variation_max=4.3e-05, d_wire=0.000125, Y_variation_avg=6.8e-06, d_wire_min=0.000106, opening=0.00018), '0.2': Sieve(designation='0.2', d_wire_max=0.00017, compliance_sd=1.63e-05, X_variation_max=4.5e-05, d_wire=0.00014, Y_variation_avg=7.4e-06, d_wire_min=0.00012, opening=0.0002), '0.212': Sieve(designation='0.212', d_wire_max=0.00017, compliance_sd=1.69e-05, X_variation_max=4.7e-05, d_wire=0.00014, Y_variation_avg=7.8e-06, d_wire_min=0.00012, opening=0.000212), '0.224': Sieve(designation='0.224', d_wire_max=0.00019, compliance_sd=1.75e-05, X_variation_max=4.9e-05, d_wire=0.00016, Y_variation_avg=8.1e-06, d_wire_min=0.00013, opening=0.000224), '0.25': Sieve(designation='0.25', d_wire_max=0.00019, compliance_sd=1.88e-05, X_variation_max=5.2e-05, d_wire=0.00016, Y_variation_avg=8.9e-06, d_wire_min=0.00013, opening=0.00025), '0.28': Sieve(designation='0.28', d_wire_max=0.00021, compliance_sd=2.03e-05, X_variation_max=5.6e-05, d_wire=0.00018, Y_variation_avg=1e-05, d_wire_min=0.00015, opening=0.00028), '0.3': Sieve(designation='0.3', d_wire_max=0.00023, compliance_sd=2.12e-05, X_variation_max=5.8e-05, d_wire=0.0002, Y_variation_avg=1e-05, d_wire_min=0.00017, opening=0.0003), '0.315': Sieve(designation='0.315', d_wire_max=0.00023, compliance_sd=2.19e-05, X_variation_max=6e-05, d_wire=0.0002, Y_variation_avg=1.1e-05, d_wire_min=0.00017, opening=0.000315), '0.355': Sieve(designation='0.355', d_wire_max=0.00026, compliance_sd=2.37e-05, X_variation_max=6.5e-05, d_wire=0.000224, Y_variation_avg=1.2e-05, d_wire_min=0.00019, opening=0.000355), '0.4': Sieve(designation='0.4', d_wire_max=0.00029, compliance_sd=2.57e-05, X_variation_max=7e-05, d_wire=0.00025, Y_variation_avg=1.3e-05, d_wire_min=0.00021, opening=0.0004), '0.425': Sieve(designation='0.425', d_wire_max=0.00032, compliance_sd=2.68e-05, X_variation_max=7.3e-05, d_wire=0.00028, Y_variation_avg=1.4e-05, d_wire_min=0.00024, opening=0.000425), '0.45': Sieve(designation='0.45', d_wire_max=0.00032, compliance_sd=2.79e-05, X_variation_max=7.5e-05, d_wire=0.00028, Y_variation_avg=1.5e-05, d_wire_min=0.00024, opening=0.00045), '0.5': Sieve(designation='0.5', d_wire_max=0.00036, compliance_sd=3e-05, X_variation_max=8e-05, d_wire=0.000315, Y_variation_avg=1.6e-05, d_wire_min=0.00027, opening=0.0005), '0.56': Sieve(designation='0.56', d_wire_max=0.00041, compliance_sd=3.24e-05, X_variation_max=8.7e-05, d_wire=0.000355, Y_variation_avg=1.8e-05, d_wire_min=0.0003, opening=0.00056), '0.6': Sieve(designation='0.6', d_wire_max=0.00046, compliance_sd=3.4e-05, X_variation_max=9.1e-05, d_wire=0.0004, Y_variation_avg=1.9e-05, d_wire_min=0.00034, opening=0.0006), '0.63': Sieve(designation='0.63', d_wire_max=0.00046, compliance_sd=3.52e-05, X_variation_max=9.3e-05, d_wire=0.0004, Y_variation_avg=2e-05, d_wire_min=0.00034, opening=0.00063), '0.71': Sieve(designation='0.71', d_wire_max=0.00052, compliance_sd=3.84e-05, X_variation_max=0.000101, d_wire=0.00045, Y_variation_avg=2.2e-05, d_wire_min=0.00038, opening=0.00071), '0.8': Sieve(designation='0.8', d_wire_max=0.00052, compliance_sd=4.18e-05, X_variation_max=0.000109, d_wire=0.00045, Y_variation_avg=2.5e-05, d_wire_min=0.00038, opening=0.0008), '0.85': Sieve(designation='0.85', d_wire_max=0.00058, compliance_sd=4.36e-05, X_variation_max=0.000114, d_wire=0.0005, Y_variation_avg=2.6e-05, d_wire_min=0.00043, opening=0.00085), '0.9': Sieve(designation='0.9', d_wire_max=0.00058, compliance_sd=4.55e-05, X_variation_max=0.000118, d_wire=0.0005, Y_variation_avg=2.8e-05, d_wire_min=0.00043, opening=0.0009), '1': Sieve(designation='1', d_wire_max=0.00064, compliance_sd=4.9e-05, X_variation_max=0.00013, d_wire=0.00056, Y_variation_avg=3e-05, d_wire_min=0.00048, opening=0.001), '1.12': Sieve(designation='1.12', d_wire_max=0.00064, compliance_sd=5.3e-05, X_variation_max=0.00014, d_wire=0.00056, Y_variation_avg=3e-05, d_wire_min=0.00048, opening=0.00112), '1.18': Sieve(designation='1.18', d_wire_max=0.00072, compliance_sd=5.6e-05, X_variation_max=0.00014, d_wire=0.00063, Y_variation_avg=4e-05, d_wire_min=0.00054, opening=0.00118), '1.25': Sieve(designation='1.25', d_wire_max=0.00072, compliance_sd=5.8e-05, X_variation_max=0.00015, d_wire=0.00063, Y_variation_avg=4e-05, d_wire_min=0.00054, opening=0.00125), '1.4': Sieve(designation='1.4', d_wire_max=0.00082, compliance_sd=6.3e-05, X_variation_max=0.00016, d_wire=0.00071, Y_variation_avg=4e-05, d_wire_min=0.0006, opening=0.0014), '1.6': Sieve(designation='1.6', d_wire_max=0.00092, compliance_sd=7e-05, X_variation_max=0.00017, d_wire=0.0008, Y_variation_avg=5e-05, d_wire_min=0.00068, opening=0.0016), '1.7': Sieve(designation='1.7', d_wire_max=0.00092, compliance_sd=7.3e-05, X_variation_max=0.00018, d_wire=0.0008, Y_variation_avg=5e-05, d_wire_min=0.00068, opening=0.0017), '1.8': Sieve(designation='1.8', d_wire_max=0.00092, compliance_sd=7.6e-05, X_variation_max=0.00019, d_wire=0.0008, Y_variation_avg=5e-05, d_wire_min=0.00068, opening=0.0018), '10': Sieve(designation='10', d_wire_max=0.0029, compliance_sd=0.000307, X_variation_max=0.00064, d_wire=0.0025, Y_variation_avg=0.00028, d_wire_min=0.0021, opening=0.01), '100': Sieve(designation='100', d_wire_max=0.0072, X_variation_max=0.00344, d_wire=0.0063, Y_variation_avg=0.00265, d_wire_min=0.0054, opening=0.1), '106': Sieve(designation='106', d_wire_max=0.0072, X_variation_max=0.00359, d_wire=0.0063, Y_variation_avg=0.0028, d_wire_min=0.0054, opening=0.106), '11.2': Sieve(designation='11.2', d_wire_max=0.0029, compliance_sd=0.000339, X_variation_max=0.00069, d_wire=0.0025, Y_variation_avg=0.00031, d_wire_min=0.0021, opening=0.0112), '112': Sieve(designation='112', d_wire_max=0.0092, X_variation_max=0.00374, d_wire=0.008, Y_variation_avg=0.00296, d_wire_min=0.0068, opening=0.112), '12.5': Sieve(designation='12.5', d_wire_max=0.0029, compliance_sd=0.000374, X_variation_max=0.00075, d_wire=0.0025, Y_variation_avg=0.00035, d_wire_min=0.0021, opening=0.0125), '125': Sieve(designation='125', d_wire_max=0.0092, X_variation_max=0.00406, d_wire=0.008, Y_variation_avg=0.0033, d_wire_min=0.0068, opening=0.125), '13.2': Sieve(designation='13.2', d_wire_max=0.0032, compliance_sd=0.000392, X_variation_max=0.00078, d_wire=0.0028, Y_variation_avg=0.00037, d_wire_min=0.0024, opening=0.0132), '14': Sieve(designation='14', d_wire_max=0.0032, compliance_sd=0.000413, X_variation_max=0.00081, d_wire=0.0028, Y_variation_avg=0.00039, d_wire_min=0.0024, opening=0.014), '16': Sieve(designation='16', d_wire_max=0.0036, compliance_sd=0.000467, X_variation_max=0.00089, d_wire=0.00315, Y_variation_avg=0.00044, d_wire_min=0.0027, opening=0.016), '18': Sieve(designation='18', d_wire_max=0.0036, compliance_sd=0.00052, X_variation_max=0.00097, d_wire=0.00315, Y_variation_avg=0.00049, d_wire_min=0.0027, opening=0.018), '19': Sieve(designation='19', d_wire_max=0.0036, compliance_sd=0.000548, X_variation_max=0.00101, d_wire=0.00315, Y_variation_avg=0.00052, d_wire_min=0.0027, opening=0.019), '2': Sieve(designation='2', d_wire_max=0.00104, compliance_sd=8.3e-05, X_variation_max=0.0002, d_wire=0.0009, Y_variation_avg=6e-05, d_wire_min=0.00077, opening=0.002), '2.24': Sieve(designation='2.24', d_wire_max=0.00104, compliance_sd=9e-05, X_variation_max=0.00022, d_wire=0.0009, Y_variation_avg=7e-05, d_wire_min=0.00077, opening=0.00224), '2.36': Sieve(designation='2.36', d_wire_max=0.00115, compliance_sd=9.4e-05, X_variation_max=0.00023, d_wire=0.001, Y_variation_avg=7e-05, d_wire_min=0.00085, opening=0.00236), '2.5': Sieve(designation='2.5', d_wire_max=0.00115, compliance_sd=9.8e-05, X_variation_max=0.00024, d_wire=0.001, Y_variation_avg=7e-05, d_wire_min=0.00085, opening=0.0025), '2.8': Sieve(designation='2.8', d_wire_max=0.0013, compliance_sd=0.000108, X_variation_max=0.00026, d_wire=0.00112, Y_variation_avg=8e-05, d_wire_min=0.00095, opening=0.0028), '20': Sieve(designation='20', d_wire_max=0.0036, compliance_sd=0.000575, X_variation_max=0.00105, d_wire=0.00315, Y_variation_avg=0.00055, d_wire_min=0.0027, opening=0.02), '22.4': Sieve(designation='22.4', d_wire_max=0.0041, compliance_sd=0.000641, X_variation_max=0.00114, d_wire=0.00355, Y_variation_avg=0.00061, d_wire_min=0.003, opening=0.0224), '25': Sieve(designation='25', d_wire_max=0.0041, compliance_sd=0.000713, X_variation_max=0.00124, d_wire=0.00355, Y_variation_avg=0.00068, d_wire_min=0.003, opening=0.025), '26.5': Sieve(designation='26.5', d_wire_max=0.0041, compliance_sd=0.000757, X_variation_max=0.00129, d_wire=0.00355, Y_variation_avg=0.00072, d_wire_min=0.003, opening=0.0265), '28': Sieve(designation='28', d_wire_max=0.0041, compliance_sd=0.000801, X_variation_max=0.00135, d_wire=0.00355, Y_variation_avg=0.00076, d_wire_min=0.003, opening=0.028), '3.15': Sieve(designation='3.15', d_wire_max=0.0015, compliance_sd=0.000118, X_variation_max=0.00028, d_wire=0.00125, Y_variation_avg=9e-05, d_wire_min=0.00106, opening=0.00315), '3.35': Sieve(designation='3.35', d_wire_max=0.0015, compliance_sd=0.000124, X_variation_max=0.00029, d_wire=0.00125, Y_variation_avg=0.0001, d_wire_min=0.00106, opening=0.00335), '3.55': Sieve(designation='3.55', d_wire_max=0.0015, compliance_sd=0.00013, X_variation_max=0.0003, d_wire=0.00125, Y_variation_avg=0.0001, d_wire_min=0.00106, opening=0.00355), '31.5': Sieve(designation='31.5', d_wire_max=0.0046, compliance_sd=0.000905, X_variation_max=0.00147, d_wire=0.004, Y_variation_avg=0.00085, d_wire_min=0.0034, opening=0.0315), '35.5': Sieve(designation='35.5', d_wire_max=0.0046, compliance_sd=0.001, X_variation_max=0.0016, d_wire=0.004, Y_variation_avg=0.00096, d_wire_min=0.0034, opening=0.0355), '37.5': Sieve(designation='37.5', d_wire_max=0.0052, compliance_sd=0.001, X_variation_max=0.00167, d_wire=0.0045, Y_variation_avg=0.00101, d_wire_min=0.0038, opening=0.0375), '4': Sieve(designation='4', d_wire_max=0.0017, compliance_sd=0.000143, X_variation_max=0.00033, d_wire=0.0014, Y_variation_avg=0.00011, d_wire_min=0.0012, opening=0.004), '4.5': Sieve(designation='4.5', d_wire_max=0.0017, compliance_sd=0.000157, X_variation_max=0.00036, d_wire=0.0014, Y_variation_avg=0.00013, d_wire_min=0.0012, opening=0.0045), '4.75': Sieve(designation='4.75', d_wire_max=0.0019, compliance_sd=0.000164, X_variation_max=0.00037, d_wire=0.0016, Y_variation_avg=0.00014, d_wire_min=0.0013, opening=0.00475), '40': Sieve(designation='40', d_wire_max=0.0052, compliance_sd=0.001, X_variation_max=0.00175, d_wire=0.0045, Y_variation_avg=0.00108, d_wire_min=0.0038, opening=0.04), '45': Sieve(designation='45', d_wire_max=0.0052, compliance_sd=0.001, X_variation_max=0.00191, d_wire=0.0045, Y_variation_avg=0.00121, d_wire_min=0.0038, opening=0.045), '5': Sieve(designation='5', d_wire_max=0.0019, compliance_sd=0.000171, X_variation_max=0.00039, d_wire=0.0016, Y_variation_avg=0.00014, d_wire_min=0.0013, opening=0.005), '5.6': Sieve(designation='5.6', d_wire_max=0.0019, compliance_sd=0.000188, X_variation_max=0.00042, d_wire=0.0016, Y_variation_avg=0.00016, d_wire_min=0.0013, opening=0.0056), '50': Sieve(designation='50', d_wire_max=0.0058, X_variation_max=0.00206, d_wire=0.005, Y_variation_avg=0.00134, d_wire_min=0.0043, opening=0.05), '53': Sieve(designation='53', d_wire_max=0.0058, X_variation_max=0.00215, d_wire=0.005, Y_variation_avg=0.00142, d_wire_min=0.0043, opening=0.053), '56': Sieve(designation='56', d_wire_max=0.0058, X_variation_max=0.00224, d_wire=0.005, Y_variation_avg=0.0015, d_wire_min=0.0043, opening=0.056), '6.3': Sieve(designation='6.3', d_wire_max=0.0021, compliance_sd=0.000207, X_variation_max=0.00046, d_wire=0.0018, Y_variation_avg=0.00018, d_wire_min=0.0015, opening=0.0063), '6.7': Sieve(designation='6.7', d_wire_max=0.0021, compliance_sd=0.000218, X_variation_max=0.00048, d_wire=0.0018, Y_variation_avg=0.00019, d_wire_min=0.0015, opening=0.0067), '63': Sieve(designation='63', d_wire_max=0.0064, X_variation_max=0.00244, d_wire=0.0056, Y_variation_avg=0.00169, d_wire_min=0.0048, opening=0.063), '7.1': Sieve(designation='7.1', d_wire_max=0.0021, compliance_sd=0.000229, X_variation_max=0.0005, d_wire=0.0018, Y_variation_avg=0.0002, d_wire_min=0.0015, opening=0.0071), '71': Sieve(designation='71', d_wire_max=0.0064, X_variation_max=0.00267, d_wire=0.0056, Y_variation_avg=0.00189, d_wire_min=0.0048, opening=0.071), '75': Sieve(designation='75', d_wire_max=0.0072, X_variation_max=0.00278, d_wire=0.0063, Y_variation_avg=0.002, d_wire_min=0.0054, opening=0.075), '8': Sieve(designation='8', d_wire_max=0.0023, compliance_sd=0.000254, X_variation_max=0.00054, d_wire=0.002, Y_variation_avg=0.00022, d_wire_min=0.0017, opening=0.008), '80': Sieve(designation='80', d_wire_max=0.0072, X_variation_max=0.00291, d_wire=0.0063, Y_variation_avg=0.00213, d_wire_min=0.0054, opening=0.08), '9': Sieve(designation='9', d_wire_max=0.0026, compliance_sd=0.000281, X_variation_max=0.00059, d_wire=0.00224, Y_variation_avg=0.00025, d_wire_min=0.0019, opening=0.009), '9.5': Sieve(designation='9.5', d_wire_max=0.0026, compliance_sd=0.000294, X_variation_max=0.00061, d_wire=0.00224, Y_variation_avg=0.00027, d_wire_min=0.0019, opening=0.0095), '90': Sieve(designation='90', d_wire_max=0.0072, X_variation_max=0.00318, d_wire=0.0063, Y_variation_avg=0.00239, d_wire_min=0.0054, opening=0.09) } '''Dictionary containing all of the individual :py:func:`Sieve` objects, on the ISO 3310-1:2016 series, indexed by their size in mm as a string. References ---------- .. [1] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' ISO_3310_1_sieve_designations = ['125', '112', '106', '100', '90', '80', '75', '71', '63', '56', '53', '50', '45', '40', '37.5', '35.5', '31.5', '28', '26.5', '25', '22.4', '20', '19', '18', '16', '14', '13.2', '12.5', '11.2', '10', '9.5', '9', '8', '7.1', '6.7', '6.3', '5.6', '5', '4.75', '4.5', '4', '3.55', '3.35', '3.15', '2.8', '2.5', '2.36', '2.24', '2', '1.8', '1.7', '1.6', '1.4', '1.25', '1.18', '1.12', '1', '0.9', '0.85', '0.8', '0.71', '0.63', '0.6', '0.56', '0.5', '0.45', '0.425', '0.4', '0.355', '0.315', '0.3', '0.28', '0.25', '0.224', '0.212', '0.2', '0.18', '0.16', '0.15', '0.14', '0.125', '0.112', '0.106', '0.1', '0.09', '0.08', '0.075', '0.071', '0.063', '0.056', '0.053', '0.05', '0.045', '0.04', '0.038', '0.036', '0.032', '0.025', '0.02'] ISO_3310_1_sieve_list = [ISO_3310_1_sieves[i] for i in ISO_3310_1_sieve_designations] ISO_3310_1_R20_3 = ['125', '90', '63', '45', '31.5', '22.4', '16', '11.2', '8', '5.6', '4', '2.8', '2', '1.4', '1', '0.71', '0.5', '0.355', '0.25', '0.18', '0.125', '0.09', '0.063', '0.045'] ISO_3310_1_R20_3 = [ISO_3310_1_sieves[i] for i in ISO_3310_1_R20_3] '''List containing all of the individual :py:func:`Sieve` objects, on the ISO 3310-1:2016 R20/3 series only, ordered from largest openings to smallest. References ---------- .. [1] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' ISO_3310_1_R20 = ['125', '112', '100', '90', '80', '71', '63', '56', '50', '45', '40', '35.5', '31.5', '28', '25', '22.4', '20', '18', '16', '14', '12.5', '11.2', '10', '9', '8', '7.1', '6.3', '5.6', '5', '4.5', '4', '3.55', '3.15', '2.8', '2.5', '2.24', '2', '1.8', '1.6', '1.4', '1.25', '1.12', '1', '0.9', '0.8', '0.71', '0.63', '0.56', '0.5', '0.45', '0.4', '0.355', '0.315', '0.28', '0.25', '0.224', '0.2', '0.18', '0.16', '0.14', '0.125', '0.112', '0.1', '0.09', '0.08', '0.071', '0.063', '0.056', '0.05', '0.045', '0.04', '0.036'] ISO_3310_1_R20 = [ISO_3310_1_sieves[i] for i in ISO_3310_1_R20] '''List containing all of the individual :py:func:`Sieve` objects, on the ISO 3310-1:2016 R20 series only, ordered from largest openings to smallest. References ---------- .. [1] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' ISO_3310_1_R40_3 = ['125', '106', '90', '75', '63', '53', '45', '37.5', '31.5', '26.5', '22.4', '19', '16', '13.2', '11.2', '9.5', '8', '6.7', '5.6', '4.75', '4', '3.35', '2.8', '2.36', '2', '1.7', '1.4', '1.18', '1', '0.85', '0.71', '0.6', '0.5', '0.425', '0.355', '0.3', '0.25', '0.212', '0.18', '0.15', '0.125', '0.106', '0.09', '0.075', '0.063', '0.053', '0.045', '0.038'] ISO_3310_1_R40_3 = [ISO_3310_1_sieves[i] for i in ISO_3310_1_R40_3] '''List containing all of the individual :py:func:`Sieve` objects, on the ISO 3310-1:2016 R40/3 series only, ordered from largest openings to smallest. References ---------- .. [1] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' ISO_3310_1_R10 = ['0.036', '0.032', '0.025', '0.02'] ISO_3310_1_R10 = [ISO_3310_1_sieves[i] for i in ISO_3310_1_R10] '''List containing all of the individual :py:func:`Sieve` objects, on the ISO 3310-1:2016 R10 series only, ordered from largest openings to smallest. References ---------- .. [1] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' sieve_spacing_options = {'ISO 3310-1': ISO_3310_1_sieve_list, 'ISO 3310-1 R20': ISO_3310_1_R20, 'ISO 3310-1 R20/3': ISO_3310_1_R20_3, 'ISO 3310-1 R40/3': ISO_3310_1_R40_3, 'ISO 3310-1 R10': ISO_3310_1_R10, 'ASTM E11': ASTM_E11_sieve_list,} def psd_spacing(d_min=None, d_max=None, pts=20, method='logarithmic'): r'''Create a particle spacing mesh in one of several ways for use in modeling discrete particle size distributions. The allowable meshes are 'linear', 'logarithmic', a geometric series specified by a Renard number such as 'R10', or the meshes available in one of several sieve standards. Parameters ---------- d_min : float, optional The minimum diameter at which the mesh starts, [m] d_max : float, optional The maximum diameter at which the mesh ends, [m] pts : int, optional The number of points to return for the mesh (note this is not respected by sieve meshes), [-] method : str, optional Either 'linear', 'logarithmic', a Renard number like 'R10' or 'R5' or 'R2.5', or one of the sieve standards 'ISO 3310-1 R40/3', 'ISO 3310-1 R20', 'ISO 3310-1 R20/3', 'ISO 3310-1', 'ISO 3310-1 R10', 'ASTM E11', [-] Returns ------- ds : list[float] The generated mesh diameters, [m] Notes ----- Note that when specifying a Renard series, only one of `d_min` or `d_max` can be respected! Provide only one of those numbers. Note that when specifying a sieve standard the number of points is not respected! Examples -------- >>> psd_spacing(d_min=5e-5, d_max=5e-4, method='ISO 3310-1 R20/3') [6.3e-05, 9e-05, 0.000125, 0.00018, 0.00025, 0.000355, 0.0005] References ---------- .. [1] ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves. .. [2] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' if method == 'logarithmic': return logspace(log10(d_min), log10(d_max), pts) elif method == 'linear': return linspace(d_min, d_max, pts) elif method[0] in ('R', 'r'): ratio = 10**(1.0/float(method[1:])) if d_min is not None and d_max is not None: raise Exception('For geometric (Renard) series, only ' 'one of `d_min` and `d_max` should be provided') if d_min is not None: ds = [d_min] for i in range(pts-1): ds.append(ds[-1]*ratio) return ds elif d_max is not None: ds = [d_max] for i in range(pts-1): ds.append(ds[-1]/ratio) return list(reversed(ds)) elif method in sieve_spacing_options: l = sieve_spacing_options[method] ds = [] for sieve in l: if d_min <= sieve.opening <= d_max: ds.append(sieve.opening) return list(reversed(ds)) else: raise Exception('Method not recognized') def pdf_lognormal(d, d_characteristic, s): r'''Calculates the probability density function of a lognormal particle distribution given a particle diameter `d`, characteristic particle diameter `d_characteristic`, and distribution standard deviation `s`. .. math:: q(d) = \frac{1}{ds\sqrt{2\pi}} \exp\left[-0.5\left(\frac{ \ln(d/d_{characteristic})}{s}\right)^2\right] Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m] s : float Distribution standard deviation, [-] Returns ------- pdf : float Lognormal probability density function, [-] Notes ----- The characteristic diameter can be in terns of number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Volume density is most often used. Interconversions among the distributions is possible but tricky. The standard distribution (i.e. the one used in Scipy) can perform the same computation with `d_characteristic` as the value of `scale`. >>> import scipy.stats >>> scipy.stats.lognorm.pdf(x=1E-4, s=1.1, scale=1E-5) 405.5420921156425 Scipy's calculation is over 300 times slower however, and this expression is numerically integrated so speed is required. Examples -------- >>> pdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1) 405.5420921156425 References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' try: log_term = log(d/d_characteristic)/s except ValueError: return 0.0 return 1./(d*s*ROOT_TWO_PI)*exp(-0.5*log_term*log_term) def cdf_lognormal(d, d_characteristic, s): r'''Calculates the cumulative distribution function of a lognormal particle distribution given a particle diameter `d`, characteristic particle diameter `d_characteristic`, and distribution standard deviation `s`. .. math:: Q(d) = 0.5\left(1 + \text{err}\left[\left(\frac{\ln(d/d_c)}{s\sqrt{2}} \right)\right]\right) Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m] s : float Distribution standard deviation, [-] Returns ------- cdf : float Lognormal cumulative density function, [-] Notes ----- The characteristic diameter can be in terns of number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Volume density is most often used. Interconversions among the distributions is possible but tricky. The standard distribution (i.e. the one used in Scipy) can perform the same computation with `d_characteristic` as the value of `scale`. >>> import scipy.stats >>> scipy.stats.lognorm.cdf(x=1E-4, s=1.1, scale=1E-5) 0.9818369875798177 Scipy's calculation is over 100 times slower however. Examples -------- >>> cdf_lognormal(d=1E-4, d_characteristic=1E-5, s=1.1) 0.9818369875798176 References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' try: return 0.5*(1.0 + erf((log(d/d_characteristic))/(s*2.0**0.5))) except: # math error at cdf = 0 (x going as low as possible) return 0.0 def pdf_lognormal_basis_integral(d, d_characteristic, s, n): r'''Calculates the integral of the multiplication of d^n by the lognormal pdf, given a particle diameter `d`, characteristic particle diameter `d_characteristic`, distribution standard deviation `s`, and exponent `n`. .. math:: \int d^n\cdot q(d)\; dd = -\frac{1}{2} \exp\left(\frac{s^2 n^2}{2} \right)d^n \left(\frac{d}{d_{characteristic}}\right)^{-n} \text{erf}\left[\frac{s^2 n - \log(d/d_{characteristic})} {\sqrt{2} s} \right] This is the crucial integral required for interconversion between different bases such as number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; often D[3, 3] is used for this purpose but not always, [m] s : float Distribution standard deviation, [-] n : int Exponent of the multiplied n Returns ------- pdf_basis_integral : float Integral of lognormal pdf multiplied by d^n, [-] Notes ----- This integral has been verified numerically. This integral is itself integrated, so it is crucial to obtain an analytical form for at least this integral. Note overflow or zero division issues may occur for very large values of `s`, larger than 10. No mathematical limit was able to be obtained with a CAS. Examples -------- >>> pdf_lognormal_basis_integral(d=1E-4, d_characteristic=1E-5, s=1.1, n=-2) 56228306549.26362 ''' try: s2 = s*s t0 = exp(s2*n*n*0.5) d_ratio = d/d_characteristic t1 = (d/(d_ratio))**n t2 = erf((s2*n - log(d_ratio))/(2.**0.5*s)) return -0.5*t0*t1*t2 except (OverflowError, ZeroDivisionError, ValueError): return pdf_lognormal_basis_integral(d=1E-80, d_characteristic=d_characteristic, s=s, n=n) def pdf_Gates_Gaudin_Schuhman(d, d_characteristic, m): r'''Calculates the probability density of a particle distribution following the Gates, Gaudin and Schuhman (GGS) model given a particle diameter `d`, characteristic (maximum) particle diameter `d_characteristic`, and exponent `m`. .. math:: q(d) = \frac{n}{d}\left(\frac{d}{d_{characteristic}}\right)^m \text{ if } d < d_{characteristic} \text{ else } 0 Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m] m : float Particle size distribution exponent, [-] Returns ------- pdf : float GGS probability density function, [-] Notes ----- The characteristic diameter can be in terns of number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Volume density is most often used. Interconversions among the distributions is possible but tricky. Examples -------- >>> pdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3) 283.8355768512045 References ---------- .. [1] Schuhmann, R., 1940. Principles of Comminution, I-Size Distribution and Surface Calculations. American Institute of Mining, Metallurgical and Petroleum Engineers Technical Publication 1189. Mining Technology, volume 4, p. 1-11. .. [2] Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. "Particle Size Distribution Models, Their Characteristics and Fitting Capability." Journal of Hydrology 529 (October 1, 2015): 872-89. ''' if d <= d_characteristic: return m/d*(d/d_characteristic)**m else: return 0.0 def cdf_Gates_Gaudin_Schuhman(d, d_characteristic, m): r'''Calculates the cumulative distribution function of a particle distribution following the Gates, Gaudin and Schuhman (GGS) model given a particle diameter `d`, characteristic (maximum) particle diameter `d_characteristic`, and exponent `m`. .. math:: Q(d) = \left(\frac{d}{d_{characteristic}}\right)^m \text{ if } d < d_{characteristic} \text{ else } 1 Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m] m : float Particle size distribution exponent, [-] Returns ------- cdf : float GGS cumulative density function, [-] Notes ----- The characteristic diameter can be in terns of number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Volume density is most often used. Interconversions among the distributions is possible but tricky. Examples -------- >>> cdf_Gates_Gaudin_Schuhman(d=2E-4, d_characteristic=1E-3, m=2.3) 0.024681354508800397 References ---------- .. [1] Schuhmann, R., 1940. Principles of Comminution, I-Size Distribution and Surface Calculations. American Institute of Mining, Metallurgical and Petroleum Engineers Technical Publication 1189. Mining Technology, volume 4, p. 1-11. .. [2] Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. "Particle Size Distribution Models, Their Characteristics and Fitting Capability." Journal of Hydrology 529 (October 1, 2015): 872-89. ''' if d <= d_characteristic: return (d/d_characteristic)**m else: return 1.0 def pdf_Gates_Gaudin_Schuhman_basis_integral(d, d_characteristic, m, n): r'''Calculates the integral of the multiplication of d^n by the Gates, Gaudin and Schuhman (GGS) model given a particle diameter `d`, characteristic (maximum) particle diameter `d_characteristic`, and exponent `m`. .. math:: \int d^n\cdot q(d)\; dd =\frac{m}{m+n} d^n \left(\frac{d} {d_{characteristic}}\right)^m Parameters ---------- d : float Specified particle diameter, [m] d_characteristic : float Characteristic particle diameter; in this model, it is the largest particle size diameter in the distribution, [m] m : float Particle size distribution exponent, [-] n : int Exponent of the multiplied n, [-] Returns ------- pdf_basis_integral : float Integral of Rosin Rammler pdf multiplied by d^n, [-] Notes ----- This integral does not have any numerical issues as `d` approaches 0. Examples -------- >>> pdf_Gates_Gaudin_Schuhman_basis_integral(d=2E-4, d_characteristic=1E-3, m=2.3, n=-3) -10136984887.543015 ''' return m/(m+n)*d**n*(d/d_characteristic)**m def pdf_Rosin_Rammler(d, k, m): r'''Calculates the probability density of a particle distribution following the Rosin-Rammler (RR) model given a particle diameter `d`, and the two parameters `k` and `m`. .. math:: q(d) = k m d^{(m-1)} \exp(- k d^{m}) Parameters ---------- d : float Specified particle diameter, [m] k : float Parameter in the model, [(1/m)^m] m : float Parameter in the model, [-] Returns ------- pdf : float RR probability density function, [-] Notes ----- Examples -------- >>> pdf_Rosin_Rammler(1E-3, 200, 2) 0.3999200079994667 References ---------- .. [1] Rosin, P. "The Laws Governing the Fineness of Powdered Coal." J. Inst. Fuel. 7 (1933): 29-36. .. [2] Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. "Particle Size Distribution Models, Their Characteristics and Fitting Capability." Journal of Hydrology 529 (October 1, 2015): 872-89. ''' return d**(m - 1.0)*k*m*exp(-d**m*k) def cdf_Rosin_Rammler(d, k, m): r'''Calculates the cumulative distribution function of a particle distribution following the Rosin-Rammler (RR) model given a particle diameter `d`, and the two parameters `k` and `m`. .. math:: Q(d) = 1 - \exp\left(-k d^m\right) Parameters ---------- d : float Specified particle diameter, [m] k : float Parameter in the model, [(1/m)^m] m : float Parameter in the model, [-] Returns ------- cdf : float RR cumulative density function, [-] Notes ----- The characteristic diameter can be in terns of number density (denoted :math:`q_0(d)`), length density (:math:`q_1(d)`), surface area density (:math:`q_2(d)`), or volume density (:math:`q_3(d)`). Volume density is most often used. Interconversions among the distributions is possible but tricky. Examples -------- >>> cdf_Rosin_Rammler(5E-2, 200, 2) 0.3934693402873667 References ---------- .. [1] Rosin, P. "The Laws Governing the Fineness of Powdered Coal." J. Inst. Fuel. 7 (1933): 29-36. .. [2] Bayat, Hossein, Mostafa Rastgo, Moharram Mansouri Zadeh, and Harry Vereecken. "Particle Size Distribution Models, Their Characteristics and Fitting Capability." Journal of Hydrology 529 (October 1, 2015): 872-89. ''' return 1.0 - exp(-k*d**m) def pdf_Rosin_Rammler_basis_integral(d, k, m, n): r'''Calculates the integral of the multiplication of d^n by the Rosin Rammler (RR) pdf, given a particle diameter `d`, and the two parameters `k` and `m`. .. math:: \int d^n\cdot q(d)\; dd =-d^{m+n} k(d^mk)^{-\frac{m+n}{m}}\Gamma \left(\frac{m+n}{m}\right)\text{gammaincc}\left[\left(\frac{m+n}{m} \right), kd^m\right] Parameters ---------- d : float Specified particle diameter, [m] k : float Parameter in the model, [(1/m)^m] m : float Parameter in the model, [-] n : int Exponent of the multiplied n, [-] Returns ------- pdf_basis_integral : float Integral of Rosin Rammler pdf multiplied by d^n, [-] Notes ----- This integral was derived using a CAS, and verified numerically. The `gammaincc` function is that from scipy.special, and `gamma` from the same. For very high powers of `n` or `m` when the diameter is very low, exceptions may occur. Examples -------- >>> "{:g}".format(pdf_Rosin_Rammler_basis_integral(5E-2, 200, 2, 3)) '-0.000452399' ''' # Also not able to compute the limit for d approaching 0. try: a = (m + n)/m x = d**m*k t1 = float(gamma(a))*float(gammaincc(a, x)) return (-d**(m+n)*k*(d**m*k)**(-a))*t1 except (OverflowError, ZeroDivisionError) as e: if d == 1E-40: raise e return pdf_Rosin_Rammler_basis_integral(1E-40, k, m, n) names = {0: 'Number distribution', 1: 'Length distribution', 2: 'Area distribution', 3: 'Volume/Mass distribution'} def _label_distribution_n(n): # pragma: no cover if n in names: return names[n] else: return 'Order %s distribution' %str(n) _mean_size_docstring = r'''Calculates the mean particle size according to moment-ratio notation. This is the more common and often convenient definition. .. math:: \left[\bar D_{p,q} \right]^{(p-q)} = \frac{\sum_i n_i D_i^p } {\sum_i n_i D_i^q} \left[\bar D_{p,p} \right] = \exp\left[\frac{\sum_i n_i D_i^p\ln D_i }{\sum_i n_i D_i^p}\right] \text{, if p = q} Note that :math:`n_i` in the above equation is replaceable with the fraction of particles in that bin. Parameters ---------- p : int Power and/or subscript of D moment in the above equations, [-] q : int Power and/or subscript of D moment in the above equations, [-] Returns ------- d_pq : float Mean particle size according to the specified p and q, [m] Notes ----- The following is a list of common names for specific mean diameters. * **D[-3, 0]**: arithmetic harmonic mean volume diameter * **D[-2, 1]**: size-weighted harmonic mean volume diameter * **D[-1, 2]**: area-weighted harmonic mean volume diameter * **D[-2, 0]**: arithmetic harmonic mean area diameter * **D[-1, 1]**: size-weighted harmonic mean area diameter * **D[-1, 0]**: arithmetic harmonic mean diameter * **D[0, 0]**: arithmetic geometric mean diameter * **D[1, 1]**: size-weighted geometric mean diameter * **D[2, 2]**: area-weighted geometric mean diameter * **D[3, 3]**: volume-weighted geometric mean diameter * **D[1, 0]**: arithmetic mean diameter * **D[2, 1]**: size-weighted mean diameter * **D[3, 2]**: area-weighted mean diameter, **Sauter mean diameter** * **D[4, 3]**: volume-weighted mean diameter, **De Brouckere diameter** * **D[2, 0]**: arithmetic mean area diameter * **D[3, 1]**: size-weighted mean area diameter * **D[4, 2]**: area-weighted mean area diameter * **D[5, 3]**: volume-weighted mean area diameter * **D[3, 0]**: arithmetic mean volume diameter * **D[4, 1]**: size-weighted mean volume diameter * **D[5, 2]**: area-weighted mean volume diameter * **D[6, 3]**: volume-weighted mean volume diameter This notation was first introduced in [1]_. The sum of p and q is called the order of the mean size [3]_. .. math:: \bar D_{p,q} \equiv \bar D_{q, p} Examples -------- %s References ---------- .. [1] Mugele, R. A., and H. D. Evans. "Droplet Size Distribution in Sprays." Industrial & Engineering Chemistry 43, no. 6 (June 1951): 1317-24. https://doi.org/10.1021/ie50498a023. .. [2] ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis. .. [3] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' _mean_size_iso_docstring = r'''Calculates the mean particle size according to moment notation (ISO). This system is related to the moment-ratio notation as follows; see the `mean_size` method for the full formulas. .. math:: \bar x_{p-q, q} \equiv \bar x_{k+r, r} \equiv \bar D_{p,q} Parameters ---------- k : int Power and/or subscript of D moment in the above equations, [-] r : int Power and/or subscript of D moment in the above equations, [-] Returns ------- x_kr : float Mean particle size according to the specified k and r in the ISO series, [m] Notes ----- The following is a list of common names for specific mean diameters in the ISO naming convention. * **x[-3, 0]**: arithmetic harmonic mean volume diameter * **x[-3, 1]**: size-weighted harmonic mean volume diameter * **x[-3, 2]**: area-weighted harmonic mean volume diameter * **x[-2, 0]**: arithmetic harmonic mean area diameter * **x[-2, 1]**: size-weighted harmonic mean area diameter * **x[-1, 0]**: arithmetic harmonic mean diameter * **x[0, 0]**: arithmetic geometric mean diameter * **x[0, 1]**: size-weighted geometric mean diameter * **x[0, 2]**: area-weighted geometric mean diameter * **x[0, 3]**: volume-weighted geometric mean diameter * **x[1, 0]**: arithmetic mean diameter * **x[1, 1]**: size-weighted mean diameter * **x[1, 2]**: area-weighted mean diameter, **Sauter mean diameter** * **x[1, 3]**: volume-weighted mean diameter, **De Brouckere diameter** * **x[2, 0]**: arithmetic mean area diameter * **x[1, 1]**: size-weighted mean area diameter * **x[2, 2]**: area-weighted mean area diameter * **x[2, 3]**: volume-weighted mean area diameter * **x[3, 0]**: arithmetic mean volume diameter * **x[3, 1]**: size-weighted mean volume diameter * **x[3, 2]**: area-weighted mean volume diameter * **x[3, 3]**: volume-weighted mean volume diameter When working with continuous distributions, the ISO series must be used to perform the actual calculations. Examples -------- %s References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' class ParticleSizeDistributionContinuous(object): r'''Base class representing a continuous particle size distribution specified by a mathematical/statistical function. This class holds the common methods only. Notes ----- Although the stated units of input are in meters, this class is actually independent of the units provided; all results will be consistent with the provided unit. Examples -------- Example problem from [1]_. >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6) References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' def _pdf_basis_integral_definite(self, d_min, d_max, n): # Needed as an api for numerical integrals return (self._pdf_basis_integral(d=d_max, n=n) - self._pdf_basis_integral(d=d_min, n=n)) def pdf(self, d, n=None): r'''Computes the probability density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis. The evaluation function varies with the distribution chosen. The interconversion between distribution orders is performed using the following formula [1]_: .. math:: q_s(d) = \frac{x^{(s-r)} q_r(d) dd} { \int_0^\infty d^{(s-r)} q_r(d) dd} Parameters ---------- d : float Particle size diameter, [m] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- pdf : float The probability density function at the specified diameter and order, [-] Notes ----- The pdf order conversions are typically available analytically after some work. They have been verified numerically. See the various functions with names ending with 'basis_integral' for the formulations. The distributions normally do not have analytical limits for diameters of 0 or infinity, but large values suffice to capture the area of the integral. Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> psd.pdf(1e-5) 30522.765209509154 >>> psd.pdf(1e-5, n=3) 30522.765209509154 >>> psd.pdf(1e-5, n=0) 1238.661379483343 References ---------- .. [1] Masuda, Hiroaki, Ko Higashitani, and Hideto Yoshida. Powder Technology: Fundamentals of Particles, Powder Beds, and Particle Generation. CRC Press, 2006. ''' ans = self._pdf(d=d) if n is not None and n != self.order: power = n - self.order numerator = d**power*ans denominator = self._pdf_basis_integral_definite(d_min=0.0, d_max=self.d_excessive, n=power) ans = numerator/denominator # Handle splines which might go below zero ans = max(ans, 0.0) if self.truncated: if d < self.d_min or d > self.d_max: return 0.0 ans = (ans)/(self._cdf_d_max - self._cdf_d_min) return ans def cdf(self, d, n=None): r'''Computes the cumulative distribution density function of a continuous particle size distribution at a specified particle diameter, an optionally in a specified basis. The evaluation function varies with the distribution chosen. .. math:: Q_n(d) = \int_0^d q_n(d) Parameters ---------- d : float Particle size diameter, [m] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- cdf : float The cumulative distribution function at the specified diameter and order, [-] Notes ----- Analytical integrals can be found for most distributions even when order conversions are necessary. Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> for n in (0, 1, 2, 3): ... print(psd.cdf(5e-6, n)) 0.933192798731 0.841344746069 0.691462461274 0.5 ''' if n is not None and n != self.order: power = n - self.order # One of the pdf_basis_integral calls could be saved except for # support for numerical integrals numerator = self._pdf_basis_integral_definite(d_min=0.0, d_max=d, n=power) denominator = self._pdf_basis_integral_definite(d_min=0.0, d_max=self.d_excessive, n=power) ans = max(numerator/denominator, 0.0) # Handle splines which might go below zero else: ans = max(self._cdf(d=d), 0.0) if self.truncated: if d <= self.d_min: return 0.0 elif d >= self.d_max: return 1.0 ans = (ans - self._cdf_d_min)/(self._cdf_d_max - self._cdf_d_min) return ans def delta_cdf(self, d_min, d_max, n=None): r'''Computes the difference in cumulative distribution function between two particle size diameters. .. math:: \Delta Q_n = Q_n(d_{max}) - Q_n(d_{min}) Parameters ---------- d_min : float Lower particle size diameter, [m] d_max : float Upper particle size diameter, [m] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- delta_cdf : float The difference in the cumulative distribution function for the two diameters specified, [-] Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> psd.delta_cdf(1e-6, 1e-5) 0.9165280099853876 ''' return self.cdf(d_max, n=n) - self.cdf(d_min, n=n) def dn(self, fraction, n=None): r'''Computes the diameter at which a specified `fraction` of the distribution falls under. Utilizes a bounded solver to search for the desired diameter. Parameters ---------- fraction : float Fraction of the distribution which should be under the calculated diameter, [-] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- d : float Particle size diameter, [m] Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> psd.dn(.5) 5e-06 >>> psd.dn(1) 0.0002947436533523378 >>> psd.dn(0) 0.0 ''' if fraction == 1.0: # Avoid returning the maximum value of the search interval fraction = 1.0 - epsilon if fraction < 0: raise ValueError('Fraction must be more than 0') elif fraction == 0: # pragma: no cover if self.truncated: return self.d_min return 0.0 # Solve to float prevision limit - works well, but is there a real # point when with mpmath it would never happen? # dist.cdf(dist.dn(0)-1e-35) == 0 # dist.cdf(dist.dn(0)-1e-36) == input # dn(0) == 1.9663615597466143e-20 # def err(d): # cdf = self.cdf(d, n=n) # if cdf == 0: # cdf = -1 # return cdf # return brenth(err, self.d_minimum, self.d_excessive, maxiter=1000, xtol=1E-200) elif fraction > 1: raise ValueError('Fraction less than 1') # As the dn may be incredibly small, it is required for the absolute # tolerance to not be happy - it needs to continue iterating as long # as necessary to pin down the answer return brenth(lambda d:self.cdf(d, n=n) -fraction, self.d_minimum, self.d_excessive, maxiter=1000, xtol=1E-200) def ds_discrete(self, d_min=None, d_max=None, pts=20, limit=1e-9, method='logarithmic'): r'''Create a particle spacing mesh to perform calculations with, according to one of several ways. The allowable meshes are 'linear', 'logarithmic', a geometric series specified by a Renard number such as 'R10', or the meshes available in one of several sieve standards. Parameters ---------- d_min : float, optional The minimum diameter at which the mesh starts, [m] d_max : float, optional The maximum diameter at which the mesh ends, [m] pts : int, optional The number of points to return for the mesh (note this is not respected by sieve meshes), [-] limit : float If `d_min` or `d_max` is not specified, it will be calculated as the `dn` at which this limit or 1-limit exists (this is ignored for Renard numbers), [-] method : str, optional Either 'linear', 'logarithmic', a Renard number like 'R10' or 'R5' or'R2.5', or one of the sieve standards 'ISO 3310-1 R40/3', 'ISO 3310-1 R20', 'ISO 3310-1 R20/3', 'ISO 3310-1', 'ISO 3310-1 R10', 'ASTM E11', [-] Returns ------- ds : list[float] The generated mesh diameters, [m] Notes ----- Note that when specifying a Renard series, only one of `d_min` or `d_max` can be respected! Provide only one of those numbers. Note that when specifying a sieve standard the number of points is not respected! References ---------- .. [1] ASTM E11 - 17 - Standard Specification for Woven Wire Test Sieve Cloth and Test Sieves. .. [2] ISO 3310-1:2016 - Test Sieves -- Technical Requirements and Testing -- Part 1: Test Sieves of Metal Wire Cloth. ''' if method[0] not in ('R', 'r'): if d_min is None: d_min = self.dn(limit) if d_max is None: d_max = self.dn(1.0 - limit) return psd_spacing(d_min=d_min, d_max=d_max, pts=pts, method=method) def fractions_discrete(self, ds, n=None): r'''Computes the fractions of the cumulative distribution functions which lie between the specified specified particle diameters. The first diameter contains the cdf from 0 to it. Parameters ---------- ds : list[float] Particle size diameters, [m] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- fractions : float The differences in the cumulative distribution functions at the specified diameters and order, [-] Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> psd.fractions_discrete([1e-6, 1e-5, 1e-4, 1e-3]) [0.0006434710129138987, 0.9165280099853876, 0.08282851796190027, 1.039798247504109e-09] ''' cdfs = [self.cdf(d, n=n) for d in ds] return [cdfs[0]] + diff(cdfs) def cdf_discrete(self, ds, n=None): r'''Computes the cumulative distribution functions for a list of specified particle diameters. Parameters ---------- ds : list[float] Particle size diameters, [m] n : int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer, [-] Returns ------- cdfs : float The cumulative distribution functions at the specified diameters and order, [-] Examples -------- >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6, order=3) >>> psd.cdf_discrete([1e-6, 1e-5, 1e-4, 1e-3]) [0.0006434710129138987, 0.9171714809983015, 0.9999999989602018, 1.0] ''' return [self.cdf(d, n=n) for d in ds] def mean_size(self, p, q): ''' >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6) >>> psd.mean_size(3, 2) 4.412484512922977e-06 Note that for the case where p == q, a different set of formulas are required - which do not have analytical results for many distributions. Therefore, a close numerical approximation is used instead, to perturb the values of p and q so they are 1E-9 away from each other. This leads only to slight errors, as in the example below where the correct answer is 5E-6. >>> psd.mean_size(3, 3) 4.9999999304923345e-06 ''' if p == q: p -= 1e-9 q += 1e-9 pow1 = q - self.order denominator = self._pdf_basis_integral_definite(d_min=self.d_minimum, d_max=self.d_excessive, n=pow1) root_power = p - q pow3 = p - self.order numerator = self._pdf_basis_integral_definite(d_min=self.d_minimum, d_max=self.d_excessive, n=pow3) return (numerator/denominator)**(1.0/(root_power)) def mean_size_ISO(self, k, r): ''' >>> psd = PSDLognormal(s=0.5, d_characteristic=5E-6) >>> psd.mean_size_ISO(1, 2) 4.412484512922977e-06 ''' p = k + r q = r return self.mean_size(p=p, q=q) @property def vssa(self): r'''The volume-specific surface area of a particle size distribution. .. math:: \text{VSSA} = \frac{6}{\bar x_{1,2}} Returns ------- VSSA : float The volume-specific surface area of the distribution, [m^2/m^3] Examples -------- >>> PSDLognormal(s=0.5, d_characteristic=5E-6).vssa 1359778.1436801916 References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' return 6/self.mean_size(3, 2) def plot_pdf(self, n=(0, 1, 2, 3), d_min=None, d_max=None, pts=500, normalized=False, method='linear'): # pragma: no cover r'''Plot the probability density function of the particle size distribution. The plotted range can be specified using `d_min` and `d_max`, or estimated automatically. One or more order can be plotted, by providing an iterable of ints as the value of `n` or just one int. Parameters ---------- n : tuple(int) or int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer; as many as desired may be specified, [-] d_min : float, optional Lower particle size diameter, [m] d_max : float, optional Upper particle size diameter, [m] pts : int, optional The number of points for values to be calculated, [-] normalized : bool, optional Whether to display the actual probability density function, which may have a huge magnitude - or to divide each point by the sum of all the points. Doing this is a common practice, but the values at each point are dependent on the number of points being plotted, and the distribution of the points; [-] method : str, optional Either 'linear', 'logarithmic', a Renard number like 'R10' or 'R5' or'R2.5', or one of the sieve standards 'ISO 3310-1 R40/3', 'ISO 3310-1 R20', 'ISO 3310-1 R20/3', 'ISO 3310-1', 'ISO 3310-1 R10', 'ASTM E11', [-] ''' try: import matplotlib.pyplot as plt except: # pragma: no cover raise Exception(NO_MATPLOTLIB_MSG) ds = self.ds_discrete(d_min=d_min, d_max=d_max, pts=pts, method=method) try: for ni in n: fractions = [self.pdf(d, n=ni) for d in ds] if normalized: fractions = normalize(fractions) plt.semilogx(ds, fractions, label=_label_distribution_n(ni)) except Exception as e: fractions = [self.pdf(d, n=n) for d in ds] if normalized: fractions = normalize(fractions) plt.semilogx(ds, fractions, label=_label_distribution_n(n)) plt.ylabel('Probability density function, [-]') plt.xlabel('Particle diameter, [m]') plt.title('Probability density function of %s distribution with ' 'parameters %s' %(self.name, self.parameters)) plt.legend() plt.show() return fractions def plot_cdf(self, n=(0, 1, 2, 3), d_min=None, d_max=None, pts=500, method='logarithmic'): # pragma: no cover r'''Plot the cumulative distribution function of the particle size distribution. The plotted range can be specified using `d_min` and `d_max`, or estimated automatically. One or more order can be plotted, by providing an iterable of ints as the value of `n` or just one int. Parameters ---------- n : tuple(int) or int, optional None (for the `order` specified when the distribution was created), 0 (number), 1 (length), 2 (area), 3 (volume/mass), or any integer; as many as desired may be specified, [-] d_min : float, optional Lower particle size diameter, [m] d_max : float, optional Upper particle size diameter, [m] pts : int, optional The number of points for values to be calculated, [-] method : str, optional Either 'linear', 'logarithmic', a Renard number like 'R10' or 'R5' or'R2.5', or one of the sieve standards 'ISO 3310-1 R40/3', 'ISO 3310-1 R20', 'ISO 3310-1 R20/3', 'ISO 3310-1', 'ISO 3310-1 R10', 'ASTM E11', [-] ''' try: import matplotlib.pyplot as plt except: # pragma: no cover raise Exception(NO_MATPLOTLIB_MSG) ds = self.ds_discrete(d_min=d_min, d_max=d_max, pts=pts, method=method) try: for ni in n: cdfs = self.cdf_discrete(ds=ds, n=ni) plt.semilogx(ds, cdfs, label=_label_distribution_n(ni)) except: cdfs = self.cdf_discrete(ds=ds, n=n) plt.semilogx(ds, cdfs, label=_label_distribution_n(n)) if self.points: plt.plot(self.ds, self.fraction_cdf, '+', label='Volume/Mass points') if hasattr(self, 'area_fractions'): plt.plot(self.ds, cumsum(self.area_fractions), '+', label='Area points') if hasattr(self, 'length_fractions'): plt.plot(self.ds, cumsum(self.length_fractions), '+', label='Length points') if hasattr(self, 'number_fractions'): plt.plot(self.ds, cumsum(self.number_fractions), '+', label='Number points') plt.ylabel('Cumulative density function, [-]') plt.xlabel('Particle diameter, [m]') plt.title('Cumulative density function of %s distribution with ' 'parameters %s' %(self.name, self.parameters)) plt.legend() plt.show() class ParticleSizeDistribution(ParticleSizeDistributionContinuous): r'''Class representing a discrete particle size distribution specified by a series of diameter bins, and the quantity of particles in each bin. The quantities may be specified as either the fraction of particles in each bin, or as cumulative distributions. The input fractions can be specified to be in a mass basis (`order=3`), number basis (`order=0`), or the orders in between for length basis or area basis. If the fractions do not sum to 1, and `cdf` is False, then the fractions are normalized. This allows flow rates or counts of size bins to be given as well. Parameters ---------- ds : list[float] Diameter bins; length of the specified quantities, optionally +1 that length to specify a cutoff diameter for the smallest diameter bin, [m] fractions : list[float], optional The mass/mole/volume/length/area/count fractions or cumulative distributions or counts of each particle size in each diameter bin (the type is specified by `order`), [-] order : int, optional 0 for a number distribution as input; 1 for length distribution; 2 for area distribution; 3 for mass, mole, or volume distribution, [-] cdf : bool, optional If the distribution is given as increasing fractions with 1 as the last result, `cdf` must be set to True, [-] monotonic : bool, optional If True, for interpolated quanties, monotonic splines will be used instead of the standard splines, [-] Attributes ---------- fractions : list[float] The mass/mole/volume basis fractions of particles in each bin, [-] area_fractions : list[float] The area fractions of particles in each bin, [-] length_fractions : list[float] The length fractions of particles in each bin, [-] number_fractions : list[float] The number fractions of particles in each bin, [-] fraction_cdf : list[float] The cumulative mass/mole/volume basis fractions of particles in each bin, [-] area_cdf : list[float] The cumulative area fractions of particles in each bin, [-] length_cdf : list[float] The cumulative length fractions of particles in each bin, [-] number_cdf : list[float] The cumulative number fractions of particles in each bin, [-] size_classes : bool Whether or not the diameter bins were set as size classes (as length of fractions + 1), [-] N : int The number of provided points, [-] Notes ----- Although the stated units of input are in meters, this class is actually independent of the units provided; all results will be consistent with the provided unit. Examples -------- Example problem from [1]_, calculating several diameters and the cumulative distribution. >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532]) >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) >>> psd References ---------- .. [1] ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis. .. [2] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' def __repr__(self): txt = '' return txt %(self.N, self.mean_size(p=3, q=3)) size_classes = False _interpolated = None points = True truncated = False name = 'Discrete' def __init__(self, ds, fractions, cdf=False, order=3, monotonic=True): self.monotonic = monotonic self.ds = ds self.order = order if ds is not None and (len(ds) == len(fractions) + 1): self.size_classes = True else: self.size_classes = False if cdf: # Convert a cdf to fraction set if len(fractions)+1 == len(ds): fractions = [fractions[0]] + diff(fractions) else: fractions = diff(fractions) fractions.insert(0, 0.0) elif sum(fractions) != 1.0: # Normalize flow inputs tot_inv = 1.0/sum(fractions) fractions = [i*tot_inv if i != 0.0 else 0.0 for i in fractions] self.N = len(fractions) # This will always be in base-3 basis if self.order != 3: power = 3 - self.order d3s = [self.di_power(i, power=power)*fractions[i] for i in range(self.N)] tot_d3 = sum(d3s) self.fractions = [i/tot_d3 for i in d3s] else: self.fractions = fractions # Set the number fractions D3s = [self.di_power(i, power=3) for i in range(self.N)] numbers = [Vi/Vp for Vi, Vp in zip(self.fractions, D3s)] number_sum = sum(numbers) self.number_fractions = [i/number_sum for i in numbers] # Set the length fractions D3s = [self.di_power(i, power=2) for i in range(self.N)] numbers = [Vi/Vp for Vi, Vp in zip(self.fractions, D3s)] number_sum = sum(numbers) self.length_fractions = [i/number_sum for i in numbers] # Set the surface area fractions D3s = [self.di_power(i, power=1) for i in range(self.N)] numbers = [Vi/Vp for Vi, Vp in zip(self.fractions, D3s)] number_sum = sum(numbers) self.area_fractions = [i/number_sum for i in numbers] # Things for interoperability with the Continuous distribution self.d_excessive = self.ds[-1] self.d_minimum = 0.0 self.parameters = {} self.order = 3 self.fraction_cdf = self.volume_cdf = cumsum(self.fractions) self.area_cdf = cumsum(self.area_fractions) self.length_cdf = cumsum(self.length_fractions) self.number_cdf = cumsum(self.number_fractions) @property def interpolated(self): if not self._interpolated: self._interpolated = PSDInterpolated(ds=self.ds, fractions=self.fractions, order=3, monotonic=self.monotonic) return self._interpolated def _pdf(self, d): return self.interpolated._pdf(d) def _cdf(self, d): return self.interpolated._cdf(d) def _pdf_basis_integral(self, d, n): return self.interpolated._pdf_basis_integral(d, n) def _fit_obj_function(self, vals, distribution, n): err = 0.0 dist = distribution(*list(vals)) l = len(self.fractions) if self.size_classes else len(self.fractions) - 1 for i in range(l): delta_cdf = dist.delta_cdf(d_min=self.ds[i], d_max=self.ds[i+1]) err += abs(delta_cdf - self.fractions[i]) return err def fit(self, x0=None, distribution='lognormal', n=None, **kwargs): '''Incomplete method to fit experimental values to a curve. It is very hard to get good initial guesses, which are really required for this. Differential evolution is promissing. This API is likely to change in the future. ''' dist = {'lognormal': PSDLognormal, 'GGS': PSDGatesGaudinSchuhman, 'RR': PSDRosinRammler}[distribution] if distribution == 'lognormal': if x0 is None: d_characteristic = sum([fi*di for fi, di in zip(self.fractions, self.Dis)]) s = 0.4 x0 = [d_characteristic, s] elif distribution == 'GGS': if x0 is None: d_characteristic = sum([fi*di for fi, di in zip(self.fractions, self.Dis)]) m = 1.5 x0 = [d_characteristic, m] elif distribution == 'RR': if x0 is None: x0 = [5E-6, 1e-2] from scipy.optimize import minimize return minimize(self._fit_obj_function, x0, args=(dist, n), **kwargs) @property def Dis(self): '''Representative diameters of each bin. ''' return [self.di_power(i, power=1) for i in range(self.N)] def di_power(self, i, power=1): r'''Method to calculate a power of a particle class/bin in a generic way so as to support when there are as many `ds` as `fractions`, or one more diameter spec than `fractions`. When each bin has a lower and upper bound, the formula is as follows [1]_. .. math:: D_i^r = \frac{D_{i, ub}^{(r+1)} - D_{i, lb}^{(r+1)}} {(D_{i, ub} - D_{i, lb})(r+1)} Where `ub` represents the upper bound, and `lb` represents the lower bound. Otherwise, the standard definition is used: .. math:: D_i^r = D_i^r Parameters ---------- i : int The index of the diameter for the calculation, [-] power : int The exponent, [-] Returns ------- di_power : float The representative bin diameter raised to `power`, [m^power] References ---------- .. [1] ASTM E799 - 03(2015) - Standard Practice for Determining Data Criteria and Processing for Liquid Drop Size Analysis. ''' if self.size_classes: rt = power + 1 return ((self.ds[i+1]**rt - self.ds[i]**rt)/((self.ds[i+1] - self.ds[i])*rt)) else: return self.ds[i]**power def mean_size(self, p, q): ''' >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532]) >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) >>> psd.mean_size(3, 2) 0.002269321031745045 ''' if p != q: # Note: D(p, q) = D(q, p); in ISO and proven experimentally numerator = sum(self.di_power(i=i, power=p)*self.number_fractions[i] for i in range(self.N)) denominator = sum(self.di_power(i=i, power=q)*self.number_fractions[i] for i in range(self.N)) return (numerator/denominator)**(1.0/(p-q)) else: numerator = sum(log(self.di_power(i=i, power=1))*self.di_power(i=i, power=p)*self.number_fractions[i] for i in range(self.N)) denominator = sum(self.di_power(i=i, power=q)*self.number_fractions[i] for i in range(self.N)) return exp(numerator/denominator) def mean_size_ISO(self, k, r): r''' >>> ds = 1E-6*np.array([240, 360, 450, 562.5, 703, 878, 1097, 1371, 1713, 2141, 2676, 3345, 4181, 5226, 6532]) >>> numbers = [65, 119, 232, 410, 629, 849, 990, 981, 825, 579, 297, 111, 21, 1] >>> psd = ParticleSizeDistribution(ds=ds, fractions=numbers, order=0) >>> psd.mean_size_ISO(1, 2) 0.002269321031745045 ''' p = k + r q = r return self.mean_size(p=p, q=q) @property def vssa(self): r'''The volume-specific surface area of a particle size distribution. Note this uses the diameters provided by the method `Dis`. .. math:: \text{VSSA} = \sum_i \text{fraction}_i \frac{SA_i}{V_i} Returns ------- VSSA : float The volume-specific surface area of the distribution, [m^2/m^3] References ---------- .. [1] ISO 9276-2:2014 - Representation of Results of Particle Size Analysis - Part 2: Calculation of Average Particle Sizes/Diameters and Moments from Particle Size Distributions. ''' ds = self.Dis Vs = [pi/6*di**3 for di in ds] SAs = [pi*di**2 for di in ds] SASs = [SA/V for SA, V in zip(SAs, Vs)] VSSA = sum([fi*SASi for fi, SASi in zip(self.fractions, SASs)]) return VSSA try: # pragma: no cover # Python 2 ParticleSizeDistributionContinuous.mean_size.__func__.__doc__ = _mean_size_docstring %(ParticleSizeDistributionContinuous.mean_size.__func__.__doc__) ParticleSizeDistributionContinuous.mean_size_ISO.__func__.__doc__ = _mean_size_iso_docstring %(ParticleSizeDistributionContinuous.mean_size_ISO.__func__.__doc__) ParticleSizeDistribution.mean_size.__func__.__doc__ = _mean_size_docstring %(ParticleSizeDistribution.mean_size.__func__.__doc__) ParticleSizeDistribution.mean_size_ISO.__func__.__doc__ = _mean_size_iso_docstring %(ParticleSizeDistribution.mean_size_ISO.__func__.__doc__) except AttributeError: # pragma: no cover # Python 3 ParticleSizeDistributionContinuous.mean_size.__doc__ = _mean_size_docstring %(ParticleSizeDistributionContinuous.mean_size.__doc__) ParticleSizeDistributionContinuous.mean_size_ISO.__doc__ = _mean_size_iso_docstring %(ParticleSizeDistributionContinuous.mean_size_ISO.__doc__) ParticleSizeDistribution.mean_size.__doc__ = _mean_size_docstring %(ParticleSizeDistribution.mean_size.__doc__) ParticleSizeDistribution.mean_size_ISO.__doc__ = _mean_size_iso_docstring %(ParticleSizeDistribution.mean_size_ISO.__doc__) class PSDLognormal(ParticleSizeDistributionContinuous): name = 'Lognormal' points = False truncated = False def __init__(self, d_characteristic, s, order=3, d_min=None, d_max=None): self.s = s self.d_characteristic = d_characteristic self.order = order self.parameters = {'s': s, 'd_characteristic': d_characteristic, 'd_min': d_min, 'd_max': d_max} self.d_min = d_min self.d_max = d_max # Pick an upper bound for the search algorithm of 15 orders of magnitude larger than # the characteristic diameter; should never be a problem, as diameters can only range # so much, physically. if self.d_max is not None: self.d_excessive = self.d_max else: self.d_excessive = 1E15*self.d_characteristic if self.d_min is not None: self.d_minimum = self.d_min else: self.d_minimum = 0.0 if self.d_min is not None or self.d_max is not None: self.truncated = True if self.d_max is None: self.d_max = self.d_excessive if self.d_min is None: self.d_min = 0.0 self._cdf_d_max = self._cdf(self.d_max) self._cdf_d_min = self._cdf(self.d_min) def _pdf(self, d): return pdf_lognormal(d, d_characteristic=self.d_characteristic, s=self.s) def _cdf(self, d): return cdf_lognormal(d, d_characteristic=self.d_characteristic, s=self.s) def _pdf_basis_integral(self, d, n): return pdf_lognormal_basis_integral(d, d_characteristic=self.d_characteristic, s=self.s, n=n) class PSDGatesGaudinSchuhman(ParticleSizeDistributionContinuous): name = 'Gates Gaudin Schuhman' points = False truncated = False def __init__(self, d_characteristic, m, order=3, d_min=None, d_max=None): self.m = m self.d_characteristic = d_characteristic self.order = order self.parameters = {'m': m, 'd_characteristic': d_characteristic, 'd_min': d_min, 'd_max': d_max} if self.d_max is not None: # PDF above this is zero self.d_excessive = self.d_max else: self.d_excessive = self.d_characteristic if self.d_min is not None: self.d_minimum = self.d_min else: self.d_minimum = 0.0 if self.d_min is not None or self.d_max is not None: self.truncated = True if self.d_max is None: self.d_max = self.d_excessive if self.d_min is None: self.d_min = 0.0 self._cdf_d_max = self._cdf(self.d_max) self._cdf_d_min = self._cdf(self.d_min) def _pdf(self, d): return pdf_Gates_Gaudin_Schuhman(d, d_characteristic=self.d_characteristic, m=self.m) def _cdf(self, d): return cdf_Gates_Gaudin_Schuhman(d, d_characteristic=self.d_characteristic, m=self.m) def _pdf_basis_integral(self, d, n): return pdf_Gates_Gaudin_Schuhman_basis_integral(d, d_characteristic=self.d_characteristic, m=self.m, n=n) class PSDRosinRammler(ParticleSizeDistributionContinuous): name = 'Rosin Rammler' points = False truncated = False def __init__(self, k, m, order=3, d_min=None, d_max=None): self.m = m self.k = k self.order = order self.parameters = {'m': m, 'k': k, 'd_min': d_min, 'd_max': d_max} if self.d_max is not None: self.d_excessive = self.d_max else: self.d_excessive = 1e15 # TODO if self.d_min is not None: self.d_minimum = self.d_min else: self.d_minimum = 0.0 if self.d_min is not None or self.d_max is not None: self.truncated = True if self.d_max is None: self.d_max = self.d_excessive if self.d_min is None: self.d_min = 0.0 self._cdf_d_max = self._cdf(self.d_max) self._cdf_d_min = self._cdf(self.d_min) def _pdf(self, d): return pdf_Rosin_Rammler(d, k=self.k, m=self.m) def _cdf(self, d): return cdf_Rosin_Rammler(d, k=self.k, m=self.m) def _pdf_basis_integral(self, d, n): return pdf_Rosin_Rammler_basis_integral(d, k=self.k, m=self.m, n=n) '''# These are all brutally slow! from scipy.stats import * from fluids import * distribution = lognorm(s=0.5, scale=5E-6) psd = PSDCustom(distribution) # psd.dn(0.5, n=2.0) # Doesn't work at all, but the main things do including plots ''' class PSDCustom(ParticleSizeDistributionContinuous): name = '' points = False truncated = False def __init__(self, distribution, order=3.0, d_excessive=1.0, name=None, d_min=None, d_max=None): if name: self.name = name else: try: self.name = distribution.dist.__class__.__name__ except: pass try: self.parameters = dict(distribution.kwds) self.parameters.update({'d_min': d_min, 'd_max': d_max}) except: self.parameters = {'d_min': d_min, 'd_max': d_max} self.distribution = distribution self.order = order self.d_max = d_max self.d_min = d_min if self.d_max is not None: self.d_excessive = self.d_max else: self.d_excessive = d_excessive if self.d_min is not None: self.d_minimum = self.d_min else: self.d_minimum = 0.0 if self.d_min is not None or self.d_max is not None: self.truncated = True if self.d_max is None: self.d_max = self.d_excessive if self.d_min is None: self.d_min = 0.0 self._cdf_d_max = self._cdf(self.d_max) self._cdf_d_min = self._cdf(self.d_min) def _pdf(self, d): return self.distribution.pdf(d) def _cdf(self, d): return self.distribution.cdf(d) def _pdf_basis_integral_definite(self, d_min, d_max, n): # Needed as an api for numerical integrals n = float(n) if d_min == 0: d_min = d_max*1E-12 to_int = lambda d : d**n*self._pdf(d) points = logspace(log10(max(d_max/1000, d_min)), log10(d_max*.999), 40) from scipy.integrate import quad return float(quad(to_int, d_min, d_max, points=points)[0]) # class PSDInterpolated(ParticleSizeDistributionContinuous): name = 'Interpolated' points = True truncated = False def __init__(self, ds, fractions, order=3, monotonic=True): self.order = order self.monotonic = monotonic self.parameters = {} ds = list(ds) fractions = list(fractions) if len(ds) == len(fractions)+1: # size classes, the last point will be zero fractions.insert(0, 0.0) self.d_minimum = min(ds) elif ds[0] != 0: ds = [0] + ds if len(ds) != len(fractions): fractions = [0] + fractions self.d_minimum = 0.0 self.ds = ds self.fractions = fractions self.d_excessive = max(ds) self.fraction_cdf = cumsum(fractions) if self.monotonic: from scipy.interpolate import PchipInterpolator globals()['PchipInterpolator'] = PchipInterpolator self.cdf_spline = PchipInterpolator(ds, self.fraction_cdf, extrapolate=True) self.pdf_spline = PchipInterpolator(ds, self.fraction_cdf, extrapolate=True).derivative(1) else: from scipy.interpolate import UnivariateSpline globals()['UnivariateSpline'] = UnivariateSpline self.cdf_spline = UnivariateSpline(ds, self.fraction_cdf, ext=3, s=0) self.pdf_spline = UnivariateSpline(ds, self.fraction_cdf, ext=3, s=0).derivative(1) # The pdf basis integral splines will be stored here self.basis_integrals = {} def _pdf(self, d): return max(0.0, float(self.pdf_spline(d))) def _cdf(self, d): if d > self.d_excessive: # Handle spline values past 1 that decrease to zero return 1.0 return max(0.0, float(self.cdf_spline(d))) def _pdf_basis_integral(self, d, n): # there are slight errors with this approach - but they are OK to # ignore. # DO NOT evaluate the first point as it leads to inf values; just set # it to zero if n not in self.basis_integrals: ds = np.array(self.ds[1:]) pdf_vals = self.pdf_spline(ds) basis_integral = ds**n*pdf_vals if self.monotonic: self.basis_integrals[n] = PchipInterpolator(ds, basis_integral, extrapolate=True).antiderivative(1) else: self.basis_integrals[n] = UnivariateSpline(ds, basis_integral, ext=3, s=0).antiderivative(n=1) return max(float(self.basis_integrals[n](d)), 0.0) fluids-0.1.78/fluids/packed_tower.py0000644000175000017500000006443413632560624016162 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This module contains correlations and functions for calculating pressure drop from packings and demisters; separation efficiency of demisters; demister pressure drop; and demister geometry. For reporting bugs, adding feature requests, or submitting pull requests, please use the `GitHub issue tracker `_ or contact the author at Caleb.Andrew.Bell@gmail.com. .. contents:: :local: Packing Pressure Drop --------------------- .. autofunction:: fluids.packed_tower.Robbins .. autofunction:: fluids.packed_tower.Stichlmair_dry .. autofunction:: fluids.packed_tower.Stichlmair_wet Packing Flooding ---------------- .. autofunction:: fluids.packed_tower.Stichlmair_flood Demister Pressure Drop ---------------------- .. autofunction:: fluids.packed_tower.dP_demister_dry_Setekleiv_Svendsen .. autofunction:: fluids.packed_tower.dP_demister_dry_Setekleiv_Svendsen_lit .. autofunction:: fluids.packed_tower.dP_demister_wet_ElDessouky Demister Separation Efficiency ------------------------------ .. autofunction:: fluids.packed_tower.separation_demister_ElDessouky Demister Geometry ----------------- .. autofunction:: fluids.packed_tower.voidage_experimental .. autofunction:: fluids.packed_tower.specific_area_mesh ''' from __future__ import division from math import log from fluids.constants import g, pi from fluids.numerics import newton, newton_system __all__ = ['voidage_experimental', 'specific_area_mesh', 'Stichlmair_dry', 'Stichlmair_wet', 'Stichlmair_flood', 'Robbins', 'dP_demister_dry_Setekleiv_Svendsen_lit', 'dP_demister_dry_Setekleiv_Svendsen', 'dP_demister_wet_ElDessouky', 'separation_demister_ElDessouky'] ### Demister def dP_demister_dry_Setekleiv_Svendsen(S, voidage, vs, rho, mu, L=1): r'''Calculates dry pressure drop across a demister, using the correlation in [1]_. This model is for dry demisters with no holdup only. .. math:: \frac{\Delta P \epsilon^2}{\rho_f v^2} = 10.29 - \frac{565} {69.6SL - (SL)^2 - 779} - \frac{74.9}{160.9 - 4.85SL} + 45.33\left( \frac{\mu_f \epsilon S^2 L}{\rho_f v}\right)^{0.75} Parameters ---------- S : float Specific area of the demister, normally ~250-1000 [m^2/m^3] voidage : float Voidage of bed of the demister material, normally ~0.98 [] vs : float Superficial velocity of fluid, Q/A [m/s] rho : float Density of fluid [kg/m^3] mu : float Viscosity of fluid [Pa*s] L : float, optional Length of the demister [m] Returns ------- dP : float Pressure drop across a dry demister [Pa] Notes ----- Useful at startup and in modeling. Dry pressure drop is normally negligible compared to wet pressure drop. Coefficients obtained by evolutionary programming and may not fit data outside of the limits of the variables. Examples -------- >>> dP_demister_dry_Setekleiv_Svendsen(S=250, voidage=.983, vs=1.2, rho=10, mu=3E-5, L=1) 320.3280788941329 References ---------- .. [1] Setekleiv, A. Eddie, and Hallvard F. Svendsen. "Dry Pressure Drop in Spiral Wound Wire Mesh Pads at Low and Elevated Pressures." Chemical Engineering Research and Design 109 (May 2016): 141-149. doi:10.1016/j.cherd.2016.01.019. ''' term = 10.29 - 565./(69.6*S*L - (S*L)**2 - 779) - 74.9/(160.9 - 4.85*S*L) right = term + 45.33*(mu*voidage*S**2*L/rho/vs)**0.75 return right*rho*vs**2/voidage**2 def dP_demister_dry_Setekleiv_Svendsen_lit(S, voidage, vs, rho, mu, L=1): r'''Calculates dry pressure drop across a demister, using the correlation in [1]_. This model is for dry demisters with no holdup only. Developed with literature data included as well as their own experimental data. .. math:: \frac{\Delta P \epsilon^2}{\rho_f v^2} = 7.3 - \frac{320} {69.6SL - (SL)^2 - 779} - \frac{52.4}{161 - 4.85SL} + 27.2\left( \frac{\mu_f \epsilon S^2 L}{\rho_f v}\right)^{0.75} Parameters ---------- S : float Specific area of the demister, normally ~250-1000 [m^2/m^3] voidage : float Voidage of bed of the demister material, normally ~0.98 [] vs : float Superficial velocity of fluid, Q/A [m/s] rho : float Density of fluid [kg/m^3] mu : float Viscosity of fluid [Pa*s] L : float, optional Length of the demister [m] Returns ------- dP : float Pressure drop across a dry demister [Pa] Notes ----- Useful at startup and in modeling. Dry pressure drop is normally negligible compared to wet pressure drop. Coefficients obtained by evolutionary programming and may not fit data outside of the limits of the variables. Examples -------- >>> dP_demister_dry_Setekleiv_Svendsen_lit(S=250, voidage=.983, vs=1.2, rho=10, mu=3E-5, L=1) 209.083848658307 References ---------- .. [1] Setekleiv, A. Eddie, and Hallvard F. Svendsen. "Dry Pressure Drop in Spiral Wound Wire Mesh Pads at Low and Elevated Pressures." Chemical Engineering Research and Design 109 (May 2016): 141-149. doi:10.1016/j.cherd.2016.01.019. ''' term = 7.3 - 320./(69.6*S*L - (S*L)**2 - 779) - 52.4/(161 - 4.85*S*L) right = term + 27.2*(mu*voidage*S**2*L/rho/vs)**0.75 return right*rho*vs**2/voidage**2 def dP_demister_wet_ElDessouky(vs, voidage, d_wire, L=1): r'''Calculates wet pressure drop across a demister, using the correlation in [1]_. Uses only their own experimental data. .. math:: \frac{\Delta P}{L} = 0.002357(1-\epsilon)^{0.375798}(V)^{0.81317} (d_w)^{-1.56114147} Parameters ---------- vs : float Superficial velocity of fluid, Q/A [m/s] voidage : float Voidage of bed of the demister material, normally ~0.98 [] d_wire : float Diameter of mesh wire,[m] L : float, optional Length of the demister [m] Returns ------- dP : float Pressure drop across a dry demister [Pa] Notes ----- No dependency on the liquid properties is included here. Because of the exponential nature of the correlation, the limiting pressure drop as V is lowered is 0 Pa. A dry pressure drop correlation should be compared with results from this at low velocities, and the larger of the two pressure drops used. The correlation in [1]_ was presented as follows, with wire diameter in units of mm, density in kg/m^3, V in m/s, and dP in Pa/m. .. math:: \Delta P = 3.88178(\rho_{mesh})^{0.375798}(V)^{0.81317} (d_w)^{-1.56114147} Here, the correlation is converted to base SI units and to use voidage; not all demisters are stainless steel as in [1]_. A density of 7999 kg/m^3 was used in the conversion. In [1]_, V ranged from 0.98-7.5 m/s, rho from 80.317-208.16 kg/m^3, depth from 100 to 200 mm, wire diameter of 0.2mm to 0.32 mm, and particle diameter from 1 to 5 mm. Examples -------- >>> dP_demister_wet_ElDessouky(6, 0.978, 0.00032) 688.9216420105029 References ---------- .. [1] El-Dessouky, Hisham T, Imad M Alatiqi, Hisham M Ettouney, and Noura S Al-Deffeeri. "Performance of Wire Mesh Mist Eliminator." Chemical Engineering and Processing: Process Intensification 39, no. 2 (March 2000): 129-39. doi:10.1016/S0255-2701(99)00033-1. ''' return L*0.002356999643727531*(1-voidage)**0.375798*vs**0.81317*d_wire**-1.56114147 def separation_demister_ElDessouky(vs, voidage, d_wire, d_drop): r'''Calculates droplet removal by a demister as a fraction from 0 to 1, using the correlation in [1]_. Uses only their own experimental data. .. math:: \eta = 0.85835(d_w)^{-0.28264}(1-\epsilon)^{0.099625}(V)^{0.106878} (d_p)^{0.383197} Parameters ---------- vs : float Superficial velocity of fluid, Q/A [m/s] voidage : float Voidage of bed of the demister material, normally ~0.98 [] d_wire : float Diameter of mesh wire,[m] d_drop : float Drop diameter, [m] Returns ------- eta : float Fraction droplets removed by mass [-] Notes ----- No dependency on the liquid properties is included here. Because of the exponential nature of the correlation, for smaller diameters separation quickly lowers. This correlation can predict a separation larger than 1 for higher velocities, lower voidages, lower wire diameters, and large droplet sizes. This function truncates these larger values to 1. The correlation in [1]_ was presented as follows, with wire diameter in units of mm, density in kg/m^3, V in m/s, separation in %, and particle diameter in mm. .. math:: \eta = 17.5047(d_w)^{-0.28264}(\rho_{mesh})^{0.099625}(V)^{0.106878} (d_p)^{0.383197} Here, the correlation is converted to base SI units and to use voidage; not all demisters are stainless steel as in [1]_. A density of 7999 kg/m^3 was used in the conversion. In [1]_, V ranged from 0.98-7.5 m/s, rho from 80.317-208.16 kg/m^3, depth from 100 to 200 mm, wire diameter of 0.2 mm to 0.32 mm, and particle diameter from 1 to 5 mm. Examples -------- >>> separation_demister_ElDessouky(1.35, 0.974, 0.0002, 0.005) 0.8982892997640582 References ---------- .. [1] El-Dessouky, Hisham T, Imad M Alatiqi, Hisham M Ettouney, and Noura S Al-Deffeeri. "Performance of Wire Mesh Mist Eliminator." Chemical Engineering and Processing: Process Intensification 39, no. 2 (March 2000): 129-39. doi:10.1016/S0255-2701(99)00033-1. ''' eta = 0.858352355761947*d_wire**-0.28264*(1-voidage)**0.099625*vs**0.106878*d_drop**0.383197 return min(eta, 1.0) def voidage_experimental(m, rho, D, H): r'''Calculates voidage of a bed or mesh given an experimental weight and fixed density, diameter, and height, as shown in [1]_. The formula is also self-evident. .. math:: \epsilon = 1 - \frac{\frac{m_{mesh}}{\frac{\pi}{4}d_{column}^2 L_{mesh}}}{\rho_{material}} Parameters ---------- m : float Mass of mesh or bed particles weighted, [kg] rho : float Density of solid particles or mesh [kg/m^3] D : float Diameter of the cylindrical bed [m] H : float Height of the demister or bed [m] Returns ------- voidage : float Voidage of bed of the material [] Notes ----- Should be trusted over manufacturer data. Examples -------- >>> voidage_experimental(m=126, rho=8000, D=1, H=1) 0.9799464771704212 References ---------- .. [1] Helsør, T., and H. Svendsen. "Experimental Characterization of Pressure Drop in Dry Demisters at Low and Elevated Pressures." Chemical Engineering Research and Design 85, no. 3 (2007): 377-85. doi:10.1205/cherd06048. ''' return 1 - m/(pi/4*D**2*H)/rho def specific_area_mesh(voidage, d): r'''Calculates the specific area of a wire mesh, as used in demisters or filters. Shown in [1]_, and also self-evident and non-empirical. Makes the ideal assumption that wires never touch. .. math:: S = \frac{4(1-\epsilon)}{d_{wire}} Parameters ---------- voidage : float Voidage of the mesh [] d : float Diameter of the wires making the mesh, [m] Returns ------- S : float Specific area of the mesh [m^2/m^3] Notes ----- Should be preferred over manufacturer data. Can also be used to show that manufacturer's data is inconsistent with their claimed voidage and wire diameter. Examples -------- >>> specific_area_mesh(voidage=.934, d=3e-4) 879.9999999999994 References ---------- .. [1] Helsør, T., and H. Svendsen. "Experimental Characterization of Pressure Drop in Dry Demisters at Low and Elevated Pressures." Chemical Engineering Research and Design 85, no. 3 (2007): 377-85. doi:10.1205/cherd06048. ''' return 4*(1-voidage)/d ### Packing def Stichlmair_dry(Vg, rhog, mug, voidage, specific_area, C1, C2, C3, H=1.): r'''Calculates dry pressure drop across a packed column, using the Stichlmair [1]_ correlation. Uses three regressed constants for each type of packing, and voidage and specific area. Pressure drop is given by: .. math:: \Delta P_{dry} = \frac{3}{4} f_0 \frac{1-\epsilon}{\epsilon^{4.65}} \rho_G \frac{H}{d_p}V_g^2 .. math:: f_0 = \frac{C_1}{Re_g} + \frac{C_2}{Re_g^{0.5}} + C_3 .. math:: d_p = \frac{6(1-\epsilon)}{a} Parameters ---------- Vg : float Superficial velocity of gas, Q/A [m/s] rhog : float Density of gas [kg/m^3] mug : float Viscosity of gas [Pa*s] voidage : float Voidage of bed of packing material [] specific_area : float Specific area of the packing material [m^2/m^3] C1 : float Packing-specific constant [] C2 : float Packing-specific constant [] C3 : float Packing-specific constant [] H : float, optional Height of packing [m] Returns ------- dP_dry : float Pressure drop across dry packing [Pa] Notes ----- This model is used by most process simulation tools. If H is not provided, it defaults to 1. If Z is not provided, it defaults to 1. Examples -------- >>> Stichlmair_dry(Vg=0.4, rhog=5., mug=5E-5, voidage=0.68, ... specific_area=260., C1=32., C2=7, C3=1) 236.80904286559885 References ---------- .. [1] Stichlmair, J., J. L. Bravo, and J. R. Fair. "General Model for Prediction of Pressure Drop and Capacity of Countercurrent Gas/liquid Packed Columns." Gas Separation & Purification 3, no. 1 (March 1989): 19-28. doi:10.1016/0950-4214(89)80016-7. ''' dp = 6*(1-voidage)/specific_area Re = Vg*rhog*dp/mug f0 = C1/Re + C2/Re**0.5 + C3 return 3/4.*f0*(1-voidage)/voidage**4.65*rhog*H/dp*Vg**2 def Stichlmair_wet(Vg, Vl, rhog, rhol, mug, voidage, specific_area, C1, C2, C3, H=1): r'''Calculates dry pressure drop across a packed column, using the Stichlmair [1]_ correlation. Uses three regressed constants for each type of packing, and voidage and specific area. This model is for irrigated columns only. Pressure drop is given by: .. math:: \frac{\Delta P_{irr}}{H} = \frac{\Delta P_{dry}}{H}\left(\frac {1-\epsilon + h_T}{1-\epsilon}\right)^{(2+c)/3} \left(\frac{\epsilon}{\epsilon-h_T}\right)^{4.65} .. math:: h_T = h_0\left[1 + 20\left(\frac{\Delta Pirr}{H\rho_L g}\right)^2\right] .. math:: Fr_L = \frac{V_L^2 a}{g \epsilon^{4.65}} .. math:: h_0 = 0.555 Fr_L^{1/3} .. math:: c = \frac{-C_1/Re_g - C_2/(2Re_g^{0.5})}{f_0} .. math:: \Delta P_{dry} = \frac{3}{4} f_0 \frac{1-\epsilon}{\epsilon^{4.65}} \rho_G \frac{H}{d_p}V_g^2 .. math:: f_0 = \frac{C_1}{Re_g} + \frac{C_2}{Re_g^{0.5}} + C_3 .. math:: d_p = \frac{6(1-\epsilon)}{a} Parameters ---------- Vg : float Superficial velocity of gas, Q/A [m/s] Vl : float Superficial velocity of liquid, Q/A [m/s] rhog : float Density of gas [kg/m^3] rhol : float Density of liquid [kg/m^3] mug : float Viscosity of gas [Pa*s] voidage : float Voidage of bed of packing material [] specific_area : float Specific area of the packing material [m^2/m^3] C1 : float Packing-specific constant [] C2 : float Packing-specific constant [] C3 : float Packing-specific constant [] H : float, optional Height of packing [m] Returns ------- dP : float Pressure drop across irrigated packing [Pa] Notes ----- This model is used by most process simulation tools. If H is not provided, it defaults to 1. If Z is not provided, it defaults to 1. A numerical solver is used and needed by this model. Its initial guess is the dry pressure drop. Convergence problems may occur. The model as described in [1]_ appears to have a typo, and could not match the example. As described in [2]_, however, the model works. Examples -------- Example is from [1]_, matches. >>> Stichlmair_wet(Vg=0.4, Vl = 5E-3, rhog=5., rhol=1200., mug=5E-5, ... voidage=0.68, specific_area=260., C1=32., C2=7., C3=1.) 539.8768237253518 References ---------- .. [1] Stichlmair, J., J. L. Bravo, and J. R. Fair. "General Model for Prediction of Pressure Drop and Capacity of Countercurrent Gas/liquid Packed Columns." Gas Separation & Purification 3, no. 1 (March 1989): 19-28. doi:10.1016/0950-4214(89)80016-7. .. [2] Piche, Simon R., Faical Larachi, and Bernard P. A. Grandjean. "Improving the Prediction of Irrigated Pressure Drop in Packed Absorption Towers." The Canadian Journal of Chemical Engineering 79, no. 4 (August 1, 2001): 584-94. doi:10.1002/cjce.5450790417. ''' dp = 6.0*(1.0 - voidage)/specific_area Re = Vg*rhog*dp/mug f0 = C1/Re + C2/Re**0.5 + C3 dP_dry = 3/4.*f0*(1-voidage)/voidage**4.65*rhog*H/dp*Vg*Vg c = (-C1/Re - C2/(2*Re**0.5))/f0 Frl = Vl**2*specific_area/(g*voidage**4.65) h0 = 0.555*Frl**(1/3.) def to_zero(dP_irr): hT = h0*(1.0 + 20.0*(dP_irr/H/rhol/g)**2) err = dP_dry/H*((1-voidage+hT)/(1.0 - voidage))**((2.0 + c)/3.)*(voidage/(voidage-hT))**4.65 -dP_irr/H return err return float(newton(to_zero, dP_dry)) def _Stichlmair_flood_f(inputs, Vl, rhog, rhol, mug, voidage, specific_area, C1, C2, C3, H): '''Internal function which calculates the errors of the two Stichlmair objective functions, and their jacobian. ''' Vg, dP_irr = float(inputs[0]), float(inputs[1]) dp = 6.0*(1.0 - voidage)/specific_area Re = Vg*rhog*dp/mug f0 = C1/Re + C2/Re**0.5 + C3 dP_dry = 0.75*f0*(1.0 - voidage)/voidage**4.65*rhog*H/dp*Vg*Vg c = (-C1/Re - 0.5*C2*Re**-0.5)/f0 Frl = Vl*Vl*specific_area/(g*voidage**4.65) h0 = 0.555*Frl**(1/3.) hT = h0*(1.0 + 20.0*(dP_irr/H/rhol/g)**2) err1 = dP_dry/H*((1.0 - voidage + hT)/(1.0 - voidage))**((2.0 + c)/3.)*(voidage/(voidage-hT))**4.65 - dP_irr/H term = (dP_irr/(rhol*g*H))**2 err2 = (1./term - 40.0*((2.0+c)/3.)*h0/(1.0 - voidage + h0*(1.0 + 20.0*term)) - 186.0*h0/(voidage - h0*(1.0 + 20.0*term))) return err1, err2 def _Stichlmair_flood_f_and_jac(inputs, Vl, rhog, rhol, mug, voidage, specific_area, C1, C2, C3, H): '''Internal function which calculates the errors of the two Stichlmair objective functions, and their jacobian. Derived using SymPy on the main flooding function. ''' Vg, dP_irr = float(inputs[0]), float(inputs[1]) x0 = 1.0/H x1 = Vg*Vg x2 = voidage**(-4.65) x3 = specific_area*x2 x4 = Vl*Vl*x3/g x5 = x4**0.333333333333333 x6 = dP_irr*dP_irr x7 = H*H x8 = 1.0/x7 x9 = g*g x10 = 1.0/x9 x11 = rhol*rhol x12 = 1.0/x11 x13 = x5*(20.0*x10*x12*x6*x8 + 1.0) x14 = 0.555*x13 x15 = (voidage/(voidage - x14))**4.65 x16 = 1.0/Vg x17 = 1.0/rhog x18 = voidage - 1.0 x19 = 1.0/x18 x20 = C1*mug*specific_area*x16*x17*x19 x21 = 2.44948974278318*C2 x22 = Vg*rhog/(mug*specific_area) x23 = x21*(-x18*x22)**-0.5 x24 = 6.0*C3 - x20 + x23 x25 = 1.0 - voidage x26 = x14 + x25 x27 = -x19*x26 x28 = 2.0*C1*mug*specific_area*x16*x17/x25 + x21*(x22*x25)**-0.5 x29 = 1.0/x24 x30 = x28*x29 x31 = x27**(-0.166666666666667*x30 + 0.666666666666667) x32 = x11*x7*x9 x33 = 200.0*voidage x34 = 111.0*x13 x35 = x33 - x34 x36 = 1.0/x35 x37 = -x33 + x34 + 200.0 x38 = 1.0/x37 x39 = 2.0*x20 x40 = -4.0*x20 + x23 + x29*(-x23 + x39)*(x23 - x39) x41 = dP_irr*rhog*specific_area*x0*x1*x10*x12*x15*x2*x24*x31 x42 = dP_irr*x10*x12*x4**0.666666666666667*x8 F1, F2, dF1_dVg, dF2_dVg, dF1_dP_irr, dF2_dP_irr = ( -dP_irr*x0 + 0.0208333333333333*rhog*specific_area*x1*x15*x2*x24*x31, x32/x6 - 20646.0*x36*x5 - x38*x5*(2960.0 - 740.0*x28*x29), 0.00173611111111111*Vg*rhog*x15*x3*x31*(144.0*C3 - 12.0*x20 + 18.0*x23 + x40*log(x27)), x0*(430.125*x36*x41*x5 - 15.4166666666667*x38*x41*x5*(x30 - 4.0) - 1.0), -1.85*x16*x29*x40*x5/x26, 3285600.0*x42*(-x30 + 4.0)*x38*x38- 91668240.0*x42*x36*x36 - 2.0*x32/(dP_irr*x6)) return [F1, F2], [[dF1_dVg, dF2_dVg], [dF1_dP_irr, dF2_dP_irr]] def Stichlmair_flood(Vl, rhog, rhol, mug, voidage, specific_area, C1, C2, C3, H=1.0): r'''Calculates gas rate for flooding of a packed column, using the Stichlmair [1]_ correlation. Uses three regressed constants for each type of packing, and voidage and specific area. Pressure drop is given by: .. math:: \frac{\Delta P_{irr}}{H} = \frac{\Delta P_{dry}}{H}\left(\frac {1-\epsilon + h_T}{1-\epsilon}\right)^{(2+c)/3} \left(\frac{\epsilon}{\epsilon-h_T}\right)^{4.65} .. math:: h_T = h_0\left[1 + 20\left(\frac{\Delta Pirr}{H\rho_L g}\right)^2\right] .. math:: Fr_L = \frac{V_L^2 a}{g \epsilon^{4.65}} .. math:: h_0 = 0.555 Fr_L^{1/3} .. math:: c = \frac{-C_1/Re_g - C_2/(2Re_g^{0.5})}{f_0} .. math:: \Delta P_{dry} = \frac{3}{4} f_0 \frac{1-\epsilon}{\epsilon^{4.65}} \rho_G \frac{H}{d_p}V_g^2 .. math:: f_0 = \frac{C_1}{Re_g} + \frac{C_2}{Re_g^{0.5}} + C_3 .. math:: d_p = \frac{6(1-\epsilon)}{a} Parameters ---------- Vl : float Superficial velocity of liquid, Q/A [m/s] rhog : float Density of gas [kg/m^3] rhol : float Density of liquid [kg/m^3] mug : float Viscosity of gas [Pa*s] voidage : float Voidage of bed of packing material [] specific_area : float Specific area of the packing material [m^2/m^3] C1 : float Packing-specific constant [] C2 : float Packing-specific constant [] C3 : float Packing-specific constant [] H : float, optional Height of packing [m] Returns ------- Vg : float Superficial velocity of gas, Q/A [m/s] Notes ----- A numerical solver is used to solve this model. Examples -------- Example is from [1]_, matches. >>> Stichlmair_flood(Vl = 5E-3, rhog=5., rhol=1200., mug=5E-5, ... voidage=0.68, specific_area=260., C1=32., C2=7., C3=1.) 0.6394323542746928 References ---------- .. [1] Stichlmair, J., J. L. Bravo, and J. R. Fair. "General Model for Prediction of Pressure Drop and Capacity of Countercurrent Gas/liquid Packed Columns." Gas Separation & Purification 3, no. 1 (March 1989): 19-28. doi:10.1016/0950-4214(89)80016-7. ''' guess = [Vl*100., 1000.0] return newton_system(_Stichlmair_flood_f_and_jac, x0=guess, jac=True, args=(Vl, rhog, rhol, mug, voidage, specific_area, C1, C2, C3, H), ytol=1e-11)[0][0] def Robbins(L, G, rhol, rhog, mul, H=1.0, Fpd=24.0): r'''Calculates pressure drop across a packed column, using the Robbins equation. Pressure drop is given by: .. math:: \Delta P = C_3 G_f^2 10^{C_4L_f}+0.4[L_f/20000]^{0.1}[C_3G_f^210^{C_4L_f}]^4 .. math:: G_f=G[0.075/\rho_g]^{0.5}[F_{pd}/20]^{0.5}=986F_s[F_{pd}/20]^{0.5} .. math:: L_f=L[62.4/\rho_L][F_{pd}/20]^{0.5}\mu^{0.1} .. math:: F_s=V_s\rho_g^{0.5} Parameters ---------- L : float Specific liquid mass flow rate [kg/s/m^2] G : float Specific gas mass flow rate [kg/s/m^2] rhol : float Density of liquid [kg/m^3] rhog : float Density of gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] H : float Height of packing [m] Fpd : float Robbins packing factor (tabulated for packings) [1/ft] Returns ------- dP : float Pressure drop across packing [Pa] Notes ----- Perry's displayed equation has a typo in a superscript. This model is based on the example in Perry's. Examples -------- >>> Robbins(L=12.2, G=2.03, rhol=1000., rhog=1.1853, mul=0.001, H=2.0, Fpd=24.0) 619.6624593438102 References ---------- .. [1] Robbins [Chem. Eng. Progr., p. 87 (May 1991) Improved Pressure Drop Prediction with a New Correlation. ''' # Convert SI units to imperial for use in correlation L = L*737.33812 # kg/s/m^2 to lb/hr/ft^2 G = G*737.33812 # kg/s/m^2 to lb/hr/ft^2 rhol = rhol*0.062427961 # kg/m^3 to lb/ft^3 rhog = rhog*0.062427961 # kg/m^3 to lb/ft^3 mul = mul*1000.0 # Pa*s to cP C3 = 7.4E-8 C4 = 2.7E-5 Fpd_root_term = (.05*Fpd)**0.5 Lf = L*(62.4/rhol)*Fpd_root_term*mul**0.1 Gf = G*(0.075/rhog)**0.5*Fpd_root_term Gf2 = Gf*Gf C4LF_10_GF2_C3 = C3*Gf2*10.0**(C4*Lf) C4LF_10_GF2_C3_2 = C4LF_10_GF2_C3*C4LF_10_GF2_C3 dP = C4LF_10_GF2_C3 + 0.4*(5e-5*Lf)**0.1*(C4LF_10_GF2_C3_2*C4LF_10_GF2_C3_2) return dP*817.22083*H # in. H2O to Pa/m fluids-0.1.78/fluids/data/0000755000175000017500000000000013632560624014037 5ustar kurtkurtfluids-0.1.78/fluids/data/Miller 2E 1990 conical contractions K part 2.csv0000644000175000017500000000310213632560624024112 0ustar kurtkurtx,.03 1.02285,0.28413 1.0236,0.25954 1.03334,0.30991 1.03554,0.237932 1.05143,0.218121 1.05154,0.33802 1.07922,0.200677 1.08578,0.36601 1.09124,0.196358 1.12822,0.181306 1.12932,0.39631 1.14149,0.405 1.17492,0.168011 1.19594,0.43692 1.22356,0.155691 1.26217,0.46965 1.27885,0.144273 1.33699,0.50119 1.34638,0.133689 1.41748,0.123882 1.42661,0.5329 1.50312,0.115626 1.52781,0.56455 1.58816,0.107921 1.6363,0.59378 1.67806,0.100365 1.69042,0.60456 1.81051,0.63356 2.02521,0.67598 2.1929,0.70582 2.37455,0.73431 2.5806,0.76395 2.7944,0.79479 2.9504,0.80917 3.1948,0.84183 3.4595,0.87265 3.7598,0.90458 4.146,0.93764 4.5226,0.96494 4.9151,1.00025 5.1522,1.01469 5.6201,1.04422 6.1975,1.07847 6.7361,1.10586 7.3479,1.13805 8.3716,1.1838 9.1325,1.20947 9.8545,1.23573 x,.05 2.792,0.203365 2.7932,0.215883 2.8062,0.190877 2.8218,0.235472 2.8491,0.175618 2.8716,0.256833 2.9034,0.160993 2.9542,0.27911 2.9802,0.147583 3.0503,0.30332 3.0813,0.135777 3.1726,0.32842 3.209,0.125366 3.3119,0.35432 3.3541,0.115752 3.4827,0.38086 3.5439,0.107649 3.6627,0.40278 3.7444,0.100475 3.8417,0.42366 4.066,0.44804 4.3704,0.47293 4.7149,0.4974 5.0866,0.52125 5.5078,0.54426 5.9371,0.56572 6.4232,0.5875 6.8928,0.60627 7.4638,0.63074 8.32,0.65853 9.0425,0.68016 9.855,0.69869 x,.1 5.9796,0.208462 5.9994,0.1939 6.0148,0.221291 6.0292,0.18398 6.0947,0.233208 6.0981,0.173777 6.2245,0.162362 6.3161,0.252514 6.4356,0.149374 6.5932,0.273412 6.7022,0.13792 6.9838,0.29283 7.0049,0.128269 7.3978,0.31249 7.4012,0.119722 7.8199,0.111744 8.1835,0.34322 8.2916,0.105531 8.7592,0.100571 8.7641,0.36362 9.4548,0.38243 9.8822,0.39576 fluids-0.1.78/fluids/data/ISO 3310-1 sieves.csv0000644000175000017500000001232513632560624017175 0ustar kurtkurtSize, m + X (any aperture size) +/- Y (Average aperture size) Maximum standard deviation Preferred wire size Maximum wire size Minimum wire size 0.125 0.00406 0.0033 0.008 0.0092 0.0068 0.112 0.00374 0.00296 0.008 0.0092 0.0068 0.106 0.00359 0.0028 0.0063 0.0072 0.0054 0.1 0.00344 0.00265 0.0063 0.0072 0.0054 0.09 0.00318 0.00239 0.0063 0.0072 0.0054 0.08 0.00291 0.00213 0.0063 0.0072 0.0054 0.075 0.00278 0.002 0.0063 0.0072 0.0054 0.071 0.00267 0.00189 0.0056 0.0064 0.0048 0.063 0.00244 0.00169 0.0056 0.0064 0.0048 0.056 0.00224 0.0015 0.005 0.0058 0.0043 0.053 0.00215 0.00142 0.005 0.0058 0.0043 0.05 0.00206 0.00134 0.005 0.0058 0.0043 0.045 0.00191 0.00121 0.001 0.0045 0.0052 0.0038 0.04 0.00175 0.00108 0.001 0.0045 0.0052 0.0038 0.0375 0.00167 0.00101 0.001 0.0045 0.0052 0.0038 0.0355 0.0016 0.00096 0.001 0.004 0.0046 0.0034 0.0315 0.00147 0.00085 0.000905 0.004 0.0046 0.0034 0.028 0.00135 0.00076 0.000801 0.00355 0.0041 0.003 0.0265 0.00129 0.00072 0.000757 0.00355 0.0041 0.003 0.025 0.00124 0.00068 0.000713 0.00355 0.0041 0.003 0.0224 0.00114 0.00061 0.000641 0.00355 0.0041 0.003 0.02 0.00105 0.00055 0.000575 0.00315 0.0036 0.0027 0.019 0.00101 0.00052 0.000548 0.00315 0.0036 0.0027 0.018 0.00097 0.00049 0.00052 0.00315 0.0036 0.0027 0.016 0.00089 0.00044 0.000467 0.00315 0.0036 0.0027 0.014 0.00081 0.00039 0.000413 0.0028 0.0032 0.0024 0.0132 0.00078 0.00037 0.000392 0.0028 0.0032 0.0024 0.0125 0.00075 0.00035 0.000374 0.0025 0.0029 0.0021 0.0112 0.00069 0.00031 0.000339 0.0025 0.0029 0.0021 0.01 0.00064 0.00028 0.000307 0.0025 0.0029 0.0021 0.0095 0.00061 0.00027 0.000294 0.00224 0.0026 0.0019 0.009 0.00059 0.00025 0.000281 0.00224 0.0026 0.0019 0.008 0.00054 0.00022 0.000254 0.002 0.0023 0.0017 0.0071 0.0005 0.0002 0.000229 0.0018 0.0021 0.0015 0.0067 0.00048 0.00019 0.000218 0.0018 0.0021 0.0015 0.0063 0.00046 0.00018 0.000207 0.0018 0.0021 0.0015 0.0056 0.00042 0.00016 0.000188 0.0016 0.0019 0.0013 0.005 0.00039 0.00014 0.000171 0.0016 0.0019 0.0013 0.00475 0.00037 0.00014 0.000164 0.0016 0.0019 0.0013 0.0045 0.00036 0.00013 0.000157 0.0014 0.0017 0.0012 0.004 0.00033 0.00011 0.000143 0.0014 0.0017 0.0012 0.00355 0.0003 0.0001 0.00013 0.00125 0.0015 0.00106 0.00335 0.00029 0.0001 0.000124 0.00125 0.0015 0.00106 0.00315 0.00028 9E-05 0.000118 0.00125 0.0015 0.00106 0.0028 0.00026 8E-05 0.000108 0.00112 0.0013 0.00095 0.0025 0.00024 7E-05 9.8E-05 0.001 0.00115 0.00085 0.00236 0.00023 7E-05 9.4E-05 0.001 0.00115 0.00085 0.00224 0.00022 7E-05 9E-05 0.0009 0.00104 0.00077 0.002 0.0002 6E-05 8.3E-05 0.0009 0.00104 0.00077 0.0018 0.00019 5E-05 7.6E-05 0.0008 0.00092 0.00068 0.0017 0.00018 5E-05 7.3E-05 0.0008 0.00092 0.00068 0.0016 0.00017 5E-05 7E-05 0.0008 0.00092 0.00068 0.0014 0.00016 4E-05 6.3E-05 0.00071 0.00082 0.0006 0.00125 0.00015 4E-05 5.8E-05 0.00063 0.00072 0.00054 0.00118 0.00014 4E-05 5.6E-05 0.00063 0.00072 0.00054 0.00112 0.00014 3E-05 5.3E-05 0.00056 0.00064 0.00048 0.001 0.00013 3E-05 4.9E-05 0.00056 0.00064 0.00048 0.0009 0.000118 2.8E-05 4.55E-05 0.0005 0.00058 0.00043 0.00085 0.000114 2.6E-05 4.36E-05 0.0005 0.00058 0.00043 0.0008 0.000109 2.5E-05 4.18E-05 0.00045 0.00052 0.00038 0.00071 0.000101 2.2E-05 3.84E-05 0.00045 0.00052 0.00038 0.00063 9.3E-05 2E-05 3.52E-05 0.0004 0.00046 0.00034 0.0006 9.1E-05 1.9E-05 3.4E-05 0.0004 0.00046 0.00034 0.00056 8.7E-05 1.8E-05 3.24E-05 0.000355 0.00041 0.0003 0.0005 8E-05 1.6E-05 3E-05 0.000315 0.00036 0.00027 0.00045 7.5E-05 1.5E-05 2.79E-05 0.00028 0.00032 0.00024 0.000425 7.3E-05 1.4E-05 2.68E-05 0.00028 0.00032 0.00024 0.0004 7E-05 1.3E-05 2.57E-05 0.00025 0.00029 0.00021 0.000355 6.5E-05 1.2E-05 2.37E-05 0.000224 0.00026 0.00019 0.000315 6E-05 1.1E-05 2.19E-05 0.0002 0.00023 0.00017 0.0003 5.8E-05 1E-05 2.12E-05 0.0002 0.00023 0.00017 0.00028 5.6E-05 1E-05 2.03E-05 0.00018 0.00021 0.00015 0.00025 5.2E-05 8.9E-06 1.88E-05 0.00016 0.00019 0.00013 0.000224 4.9E-05 8.1E-06 1.75E-05 0.00016 0.00019 0.00013 0.000212 4.7E-05 7.8E-06 1.69E-05 0.00014 0.00017 0.00012 0.0002 4.5E-05 7.4E-06 1.63E-05 0.00014 0.00017 0.00012 0.00018 4.3E-05 6.8E-06 1.53E-05 0.000125 0.00015 0.000106 0.00016 4E-05 6.3E-06 1.42E-05 0.000112 0.00013 9.5E-05 0.00015 3.8E-05 6E-06 1.37E-05 0.0001 0.000115 8.5E-05 0.00014 3.7E-05 5.7E-06 1.31E-05 0.0001 0.000115 8.5E-05 0.000125 3.4E-05 5.2E-06 1.22E-05 9E-05 0.000104 7.7E-05 0.000112 3.2E-05 4.8E-06 1.15E-05 8E-05 9.2E-05 6.8E-05 0.000106 3.1E-05 4.7E-06 1.11E-05 7.1E-05 8.2E-05 6E-05 0.0001 3E-05 4.5E-06 1.08E-05 7.1E-05 8.2E-05 6E-05 9E-05 2.9E-05 4.2E-06 1.01E-05 6.3E-05 7.2E-05 5.4E-05 8E-05 2.7E-05 3.9E-06 9.4E-06 5.6E-05 6.4E-05 4.8E-05 7.5E-05 2.6E-05 3.7E-06 9.1E-06 5E-05 5.8E-05 4.3E-05 7.1E-05 2.5E-05 3.6E-06 8.9E-06 5E-05 5.8E-05 4.3E-05 6.3E-05 2.4E-05 3.4E-06 8.3E-06 4.5E-05 5.2E-05 5.2E-05 5.6E-05 2.2E-05 3.2E-06 7.8E-06 4E-05 4.6E-05 4.6E-05 5.3E-05 2.1E-05 3.1E-06 7.6E-06 3.6E-05 4.1E-05 4.1E-05 5E-05 2.1E-05 3E-06 7.3E-06 3.6E-05 4.1E-05 4.1E-05 4.5E-05 2E-05 2.8E-06 6.9E-06 3.2E-05 3.7E-05 3.7E-05 4E-05 1.9E-05 2.7E-06 6.5E-06 3.2E-05 3.7E-05 3.7E-05 3.8E-05 1.8E-05 2.6E-06 6.4E-06 3E-05 3.5E-05 3.5E-05 3.6E-05 1.8E-05 2.6E-06 6.3E-06 3E-05 3.5E-05 3.5E-05 3.2E-05 1.7E-05 2.4E-06 5.9E-06 2.8E-05 3.3E-05 3.3E-05 2.5E-05 1.5E-05 2.2E-06 5.2E-06 2.5E-05 2.9E-05 2.9E-05 2E-05 1.3E-05 2.1E-06 4.7E-06 2E-05 2.3E-05 2.3E-05 fluids-0.1.78/fluids/data/Miller 2E 1990 Kb mitre bend.csv0000644000175000017500000000240013632560624021115 0ustar kurtkurtx,1 4.6184,0.02 6.4192,0.0219119 7.6847,0.023494 8.8531,0.0252742 9.9241,0.0270093 11.0925,0.0290558 12.2611,0.031466 13.3322,0.03385 14.4034,0.036415 16.0589,0.040901 17.0329,0.044147 18.0068,0.047492 19.0781,0.05126 19.8817,0.054734 20.4904,0.057385 21.4158,0.061939 22.3898,0.066854 23.2666,0.072158 24.3382,0.079187 25.3122,0.085471 26.4567,0.093408 27.9417,0.103276 29.0128,0.111101 30.084,0.11952 31.2524,0.128576 32.3236,0.138778 33.5893,0.14979 34.7577,0.161139 35.5366,0.168806 36.705,0.181596 37.5082,0.190393 38.2384,0.199121 39.139,0.209809 40.21,0.223841 41.5727,0.239208 42.8382,0.25648 44.201,0.274999 45.661,0.294855 47.1208,0.31405 48.5808,0.33561 50.1378,0.35628 51.5976,0.37948 53.6411,0.40823 55.2953,0.43193 56.8522,0.45701 57.2414,0.46312 58.9928,0.49001 60.2577,0.51162 62.0091,0.54133 63.6633,0.57276 65.9011,0.61208 67.7495,0.64333 69.5008,0.67842 71.3493,0.71306 73.1978,0.74947 75.0463,0.78774 76.8947,0.82796 78.7431,0.86735 80.5915,0.90861 82.0021,0.94085 83.5101,0.97908 85.1639,1.02057 87.0122,1.06558 89.0549,1.10889 91.1948,1.15013 93.3346,1.18895 95.5716,1.22909 97.7113,1.26637 99.8509,1.30045 100.3372,1.30911 102.574,1.33545 104.8107,1.36685 107.1447,1.39435 109.3814,1.4224 111.7152,1.44142 113.9518,1.46554 116.3342,1.48267 119.5673,1.50125 fluids-0.1.78/fluids/data/ASTM E11 sieves.csv0000644000175000017500000001166213632560624017114 0ustar kurtkurtDesignation, mm Designation, inch/No Nominal Sieve Opening (in.) +/- Y variation average opening, mm +X Maximum variation for opening, mm Resulting Maximum Individual Opening, mm (designation, + X opening) Compliance Sieves, sample x openings per 100 ft^2 Compliance Sieves, maximum standard deviation Inspection Sieves, sample openings per sieve Inspection Sieves, maximum standard deviation Calibration Sieves, sample openings per sieve Calibration Sieves, Maximum Standard Deviation Typical Wire diameter, mm Wire diameter, min, mm Wire diameter, max, mm 125 5 in. 5 3.66 4.51 129.51 20 – all – all – 8 6.8 9.2 106 4.24 in. 4.24 3.12 3.99 109.99 20 – all – all – 6.3 5.4 7.2 100 4 in. 4 2.94 3.82 103.82 20 – all – all – 6.3 5.4 7.2 90 3 1/2 in. 3.5 2.65 3.53 93.53 20 – all – all – 6.3 5.4 7.2 75 3 in. 3 2.22 3.09 78.09 20 – all – all – 6.3 5.4 7.2 63 2 1/2 in. 2.5 1.87 2.71 65.71 20 – all – all – 5.6 4.8 6.4 53 2.12 in. 2.12 1.58 2.39 55.39 20 – all – all – 5 4.3 5.8 50 2 in. 2 1.49 2.29 52.29 20 – all – all – 5 4.3 5.8 45 1 3/4 in. 1.75 1.35 2.12 47.12 20 – all – all – 4.5 3.8 5.2 37.5 1 1/2 in. 1.5 1.13 1.85 39.35 20 1.374 all – all – 4.5 3.8 5.2 31.5 1 1/4 in. 1.25 0.95 1.63 33.13 20 1.066 all – all – 4 3.4 4.6 26.5 1.06 in. 1.06 0.802 1.44 27.94 20 0.869 15 0.584 all – 3.55 3 4.1 25 1.00 in. 1 0.758 1.38 26.38 20 0.823 15 0.553 all – 3.55 3 4.1 22.4 7/8 in. 0.875 0.681 1.27 23.67 150 0.734 15 0.493 all – 3.55 3 4.1 19 3/4 in. 0.75 0.579 1.13 20.13 150 0.622 15 0.418 30 0.446 3.15 2.7 3.5 16 5/8 in. 0.625 0.49 0.99 16.99 150 0.527 15 0.354 30 0.378 3.15 2.7 3.6 13.2 0.530 in. 0.53 0.406 0.86 14.06 150 0.441 15 0.296 30 0.316 2.8 2.4 3.2 12.5 1/2 in. 0.5 0.385 0.83 13.33 150 0.421 15 0.283 30 0.302 2.5 2.1 2.9 11.2 7/16 in. 0.438 0.346 0.77 11.97 150 0.382 15 0.256 30 0.274 2.5 2.1 2.9 9.5 3/8 in. 0.375 0.295 0.68 10.18 150 0.33 15 0.222 30 0.237 2.24 1.9 2.6 8 5/16 in. 0.312 0.249 0.6 8.6 150 0.284 15 0.191 30 0.204 2 1.7 2.3 6.7 0.265 in. 0.265 0.21 0.53 7.23 150 0.245 15 0.164 30 0.175 1.8 1.5 2.1 6.3 1/4 in. 0.25 0.197 0.51 6.81 150 0.233 15 0.157 30 0.167 1.8 1.5 2.1 5.6 No. 3 1/2 0.223 0.176 0.47 6.07 150 0.211 15 0.142 30 0.151 1.6 1.3 1.9 4.75 No. 4 0.187 0.15 0.41 5.16 150 0.182 15 0.123 30 0.131 1.6 1.3 1.9 4 No. 5 0.157 0.127 0.37 4.37 150 0.161 15 0.108 30 0.115 1.4 1.2 1.7 3.35 No. 6 0.132 0.107 0.32 3.67 200 0.138 20 0.097 40 0.103 1.25 1.06 1.5 2.8 No. 7 0.11 0.09 0.29 3.09 200 0.121 20 0.085 40 0.09 1.12 0.95 1.3 2.36 No. 8 0.0937 0.076 0.25 2.61 200 0.104 20 0.073 40 0.077 1 0.85 1.15 2 No. 10 0.0787 0.065 0.23 2.23 250 0.094 25 0.068 50 0.072 0.9 0.77 1.04 1.7 No. 12 0.0661 0.056 0.2 1.9 250 0.081 25 0.059 50 0.062 0.8 0.68 0.92 1.4 No. 14 0.0555 0.046 0.18 1.58 400 0.071 40 0.055 80 0.057 0.71 0.6 0.82 1.18 No. 16 0.0469 0.04 0.16 1.34 400 0.063 40 0.049 80 0.051 0.63 0.54 0.72 1 No. 18 0.0394 0.034 0.14 1.14 400 0.055 40 0.042 80 0.044 0.56 0.48 0.64 0.85 No. 20 0.0331 0.0291 0.127 0.977 400 48.76 40 37.73 80 39.36 0.0005 0.00043 0.00058 0.71 No. 25 0.0278 0.0247 0.112 0.822 500 42.63 50 33.82 100 35.14 0.00045 0.00038 0.00052 0.6 No. 30 0.0234 0.0212 0.101 0.701 500 38 50 30.14 100 31.32 0.0004 0.00034 0.00046 0.5 No. 35 0.0197 0.018 0.089 0.589 600 33.23 60 26.85 120 27.82 0.000315 0.00027 0.00036 0.425 No. 40 0.0165 0.0155 0.081 0.506 600 29.95 60 24.2 120 25.08 0.00028 0.00024 0.00032 0.355 No. 45 0.0139 0.0133 0.072 0.427 800 26.45 80 21.95 160 22.64 0.000224 0.00019 0.00026 0.3 No. 50 0.0117 0.0115 0.065 0.365 800 23.7 80 19.66 160 20.29 0.0002 0.00017 0.00023 0.25 No. 60 0.0098 0.0099 0.058 0.308 800 21.02 80 17.44 160 17.99 0.00016 0.00013 0.00019 0.212 No. 70 0.0083 0.0087 0.052 0.264 800 18.79 80 15.59 160 16.08 0.00014 0.00012 0.00017 0.18 No. 80 0.007 0.0076 0.047 0.227 1000 16.85 100 14.24 200 14.65 0.000125 0.000106 0.00015 0.15 No. 100 0.0059 0.0066 0.043 0.193 1000 15.3 100 12.93 200 13.3 0.0001 8.5E-05 0.000115 0.125 No. 120 0.0049 0.0058 0.038 0.163 1000 13.51 100 11.41 200 11.74 9E-05 7.7E-05 0.000104 0.106 No. 140 0.0041 0.0052 0.035 0.141 1000 12.39 100 10.47 200 10.77 7.1E-05 6E-05 8.2E-05 0.09 No. 170 0.0035 0.0046 0.032 0.122 1000 11.27 100 9.53 200 9.8 6.3E-05 5.4E-05 7.2E-05 0.075 No. 200 0.0029 0.0041 0.029 0.104 1000 10.23 100 8.64 250 9.02 5E-05 4.3E-05 5.8E-05 0.063 No. 230 0.0025 0.0037 0.026 0.089 1000 9.18 100 7.76 250 8.09 4.5E-05 3.8E-05 5.2E-05 0.053 No. 270 0.0021 0.0034 0.024 0.077 1000 8.44 100 7.13 250 7.44 3.6E-05 3.1E-05 4.1E-05 0.045 No. 325 0.0017 0.0031 0.022 0.067 1000 7.76 100 6.56 250 6.84 3.2E-05 2.7E-05 3.7E-05 0.038 No. 400 0.0015 0.0029 0.02 0.058 1000 7.09 100 5.99 300 6.31 3E-05 2.4E-05 3.5E-05 0.032 No. 450 0.0012 0.0027 0.018 0.05 1000 6.42 100 5.42 300 5.71 2.8E-05 2.3E-05 3.3E-05 0.025 No. 500 0.001 0.0025 0.016 0.041 1000 5.71 100 4.82 300 5.06 2.5E-05 2.1E-05 2.9E-05 0.02 No. 635 0.0008 0.0023 0.015 0.035 1000 5.33 100 4.51 300 4.75 2E-05 1.7E-05 2.3E-05 fluids-0.1.78/fluids/data/isd-history-cleaned.tsv0000644000175000017500001042113113632560624020447 0ustar kurtkurt7005 99999 CWOS 07005 20120127 20120127 7011 99999 CWOS 07011 20120101 20121129 7018 99999 WXPOD 7018 0.0 0.0 7018.0 20130710 20130730 7025 99999 CWOS 07025 20120127 20120127 7026 99999 WXPOD 7026 AF 0.0 0.0 7026.0 20120713 20170822 7034 99999 CWOS 07034 20121024 20121106 7037 99999 CWOS 07037 20120726 20121125 7044 99999 CWOS 07044 20120127 20120127 7047 99999 CWOS 07047 20120613 20120717 7052 99999 CWOS 07052 20121129 20121130 7059 99999 CWOS 07059 20120314 20120828 7064 99999 CWOS 07064 20121218 20121219 7070 99999 WXPOD 7070 AF 0.0 0.0 7070.0 20140923 20150926 7076 99999 CWOS 07076 20121214 20121217 7083 99999 CWOS 07083 20120713 20120717 7084 99999 CWOS 07084 20121214 20121217 7094 99999 CWOS 07094 20121217 20121217 8268 99999 WXPOD8278 AF 32.95 65.567 1156.7 20120301 20120323 8401 99999 XM07 20120101 20121219 8403 99999 XM10 20120101 20140412 8405 99999 XM14 20120101 20120827 8411 99999 XM20 20121129 20160217 8413 99999 XM12 20120101 20130224 8414 99999 XM18 20120101 20160217 8415 99999 XM21 20131002 20160217 8416 99999 XM22 20120105 20150917 8418 99999 XM24 20120101 20160217 8419 99999 XM25 20120101 20131021 8421 99999 XM26 20120101 20151229 10000 99999 BOGUS NORWAY NO ENRS 20010927 20051231 10010 99999 JAN MAYEN(NOR-NAVY) NO ENJA 70.933 -8.667 9.0 19310101 20170923 10013 99999 ROST NO 19861120 19880105 10014 99999 SORSTOKKEN NO ENSO 59.792 5.341 48.8 19861120 20170922 10015 99999 BRINGELAND NO 61.383 5.867000000000001 327.0 19870117 20111020 10016 99999 RORVIK/RYUM NO 64.85 11.232999999999999 14.0 19870116 19910806 10017 99999 FRIGG NO ENFR 59.98 2.25 48.0 19880320 20050228 10020 99999 VERLEGENHUKEN NO 80.05 16.25 8.0 19861109 20170923 10030 99999 HORNSUND NO 77.0 15.5 12.0 19850601 20170923 10040 99999 NY-ALESUND II NO ENAS 78.917 11.933 8.0 19730101 20140523 10050 99999 ISFJORD RADIO SV 78.067 13.633 9.0 19310103 20140523 10060 99999 EDGEOYA NO 78.25 22.816999999999997 14.0 19730101 20170923 10070 99999 NY-ALESUND SV 78.917 11.933 7.7 19730106 20170923 10071 99999 LONGYEARBYEN SV 78.217 15.583 37.0 20050210 20050210 10080 99999 LONGYEAR SV ENSB 78.24600000000001 15.466 26.8 19750929 20170923 10090 99999 KARL XII OYA SV 80.65 25.0 5.0 19550101 20170923 10100 99999 ANDOYA NO ENAN 69.293 16.144000000000002 13.1 19310103 20170923 10110 99999 KVITOYA SV 80.067 31.5 10.0 19861118 20170923 10120 99999 19741130 19751116 10140 99999 SENJA-LAUKHELLA NO 69.233 17.9 9.0 19730101 20140523 10150 99999 HEKKINGEN FYR NO 69.6 17.833 14.0 19800314 20170923 10160 99999 KONGSOYA NO 78.933 28.9 20.0 19930501 20170923 10170 99999 AKSELOYA SV 77.683 14.783 6.0 19730101 20170923 10190 99999 SVARTTANGEN NO 77.517 20.816999999999997 20.0 20100825 20140523 10200 99999 SORKAPPOYA SV 76.483 16.55 10.0 20101008 20170923 10230 99999 BARDUFOSS NO ENDU 69.056 18.54 76.8 19400713 20170923 10231 99999 DRAUGEN NO ENDR 64.35 7.8 0.0 20040510 20170923 10240 99999 PYRAMIDEN NO 78.65 16.367 20.0 19730101 20170923 10250 99999 TROMSO NO ENTC 69.683 18.919 9.4 19730101 20170923 10260 99999 TROMSO NO 69.65 18.933 114.5 19970201 20170923 10270 99999 TROMSO-HOLT NO 69.65 18.9 20.0 20110928 20170923 10280 99999 BJORNOYA ISLAND NO ENBJ 74.517 19.017 18.0 19310103 20170923 10300 99999 KISTEFJELL NO 69.283 18.133 982.0 19510101 20170923 10303 99999 TROMSO/SKATTURA NO 69.7 19.017 14.0 20150108 20150108 10320 99999 OVERBYGD NO 69.017 19.283 78.0 19730101 20140523 10330 99999 TORSVAG FYR NO 70.25 19.5 24.0 19730101 20170923 10340 99999 FUGLOYKALVEN FYR NO 70.317 20.15 38.0 19871202 20140523 10350 99999 LYNGEN GJERDVASSBU NO 69.567 20.1 710.0 19730101 20170923 10360 99999 NORDNESFJELLET NO 69.567 20.433 710.0 20040510 20170923 10370 99999 SKIBOTN 2 NO 69.383 20.283 20.0 19730101 20170923 10400 99999 SKJERVOY NO 70.033 20.983 15.0 19730101 19780927 10410 99999 NORDREISA-OYENG NO 69.733 21.017 5.0 19730101 20140523 10420 99999 HASVIK-SLUSKFJELLET NO 70.6 22.45 438.0 20080917 20170923 10430 99999 ROGNSUNDET NO 70.417 22.816999999999997 10.0 19730101 20170410 10435 99999 HASVIK NO 70.483 22.15 7.0 19750515 20111014 10440 99999 HASVIK NO ENHK 70.487 22.14 6.4 20110928 20170923 10450 99999 NORDSTRAUM I KVAENANGEN NO 69.833 21.883000000000003 6.0 19730101 20170923 10455 99999 19741117 19750904 10460 99999 SORKJOSEN NO ENSR 69.78699999999999 20.959 4.9 19750905 20170923 10470 99999 KAUTOKEINO II NO ENKA 69.017 23.066999999999997 307.0 19730101 20170923 10490 99999 ALTA NO ENAT 69.976 23.372 2.7 19730101 20170923 10510 99999 SUOLOVUOPMI NO 69.583 23.533 374.0 19730102 20140523 10520 99999 HAMMERFEST AP NO ENHF 70.683 23.683000000000003 81.0 19401008 20170923 10530 99999 HAMMERFEST RADIO NO 70.683 23.683000000000003 70.0 19730101 19871226 10550 99999 FRUHOLMEN FYR NO 71.1 23.983 14.2 19310101 20170923 10570 99999 CUOVDDATMOHKKI NO 69.367 24.433000000000003 286.0 19730101 20170923 10580 99999 SUOLOVUOPMI LULIT NO 69.567 23.533 381.0 20050218 20170923 10590 99999 BANAK NO ENNA 70.069 24.973000000000003 7.6 19730101 20170923 10610 99999 BRENNELV NO 70.067 25.116999999999997 34.0 19730101 19840707 10617 99999 OSEBERG NO 19890101 19901001 10620 99999 HOPEN ISLAND NO ENHO 76.5 25.066999999999997 10.0 19550101 20170923 10630 99999 KISTRAND III NO 70.45 25.217 6.0 19730101 19870715 10650 99999 KARASJOK NO 69.467 25.517 133.0 19730101 20170923 10660 99999 HELNES FYR NO 71.067 26.233 33.0 19730101 20040619 10670 99999 LEVAJOK-EVJEN NO 69.9 26.416999999999998 112.0 19730103 19820924 10671 99999 LEVAJOK-EVJEN NO 69.9 26.416999999999998 112.0 20070307 20070307 10680 99999 HONNINGSVAG/VALAN NO ENHV 71.017 25.983 14.0 19800604 20170923 10720 99999 19740227 19740227 10740 99999 MEHAMN NO ENMH 71.033 27.833000000000002 13.0 19750905 20170923 10750 99999 RUSTEFJELBMA NO 70.4 28.2 11.2 19730101 20130531 10760 99999 TANABRU NO 70.217 28.166999999999998 32.0 20121121 20170923 10780 99999 SLETTNES FYR NO 71.1 28.233 10.0 19730101 20170923 10820 99999 NYRUD NO 69.15 29.25 56.0 19730919 20170923 10830 99999 BERLEVAG NO ENBV 70.867 29.033 13.0 19750905 20170923 10840 99999 PASVIK NO 69.45 30.033 27.0 19730101 20170923 10850 99999 BUGOYFJORD NO 69.85 29.416999999999998 8.0 19730101 19781008 10860 99999 BATSFJORD NO ENBS 70.6 29.693 149.4 20110928 20170922 10875 99999 HEIMDAL OIL PLATFORM NO ENHM 59.567 2.217 90.0 20110101 20170923 10876 99999 NORNE OIL PLATFORM NO ENNE 66.017 8.083 90.0 20110101 20170923 10877 99999 TROLL A OIL PLATFORM NO ENQA 60.633 3.717 90.0 20110101 20170923 10878 99999 SNORRE A OIL PLATFORM NO ENSE 61.45 2.133 90.0 20110101 20170923 10879 99999 SNORRE B OIL PLATFORM NO ENQR 61.533 2.2 90.0 20110101 20170923 10880 99999 VADSO NO ENVD 70.067 29.85 39.0 19750905 20170923 10881 99999 NARVIK III/FRAMNES NO 68.467 17.5 23.0 20050405 20111020 10882 99999 ROROS NO ENRO 62.578 11.342 626.1 20050405 20170923 10883 99999 SANDANE/ANDA NO 61.833 6.117000000000001 60.0 20050405 20111014 10884 99999 GEITERYGGEN NO ENSN 59.185 9.567 141.1 20050405 20151109 10885 99999 BATSFJORD NO 70.6 29.733 153.0 19940718 20111014 10886 99999 SLEIPNER A OIL PLATFORM NO ENSL 58.367 1.9 30.0 20050405 20170923 10887 99999 TROLL C OIL PLATFORM NO ENQC 60.886 3.61 20.0 20110512 20170923 10890 99999 HOYBUKTMOEN NO ENKR 69.726 29.893 86.3 19401101 20170923 10920 99999 MAKKAUR FYR NO 70.7 30.083000000000002 9.0 19730101 20170923 10970 99999 SVARTNES NO 70.35 31.05 12.0 19930209 20111014 10980 99999 VARDO NO 70.367 31.1 15.0 19310103 20170923 10985 99999 19741117 19750904 10986 99999 19741117 19750904 10987 99999 19741117 19750904 10990 99999 VARDO AP / SVARTNES NO ENSS 70.355 31.045 12.8 20110928 20170923 11010 99999 BOGUS NORWEGIAN NO 19851202 20070307 11020 99999 SKLINNA FYR NO 65.2 11.0 16.0 19750228 20170923 11025 99999 HEIDRUN NO ENHE 65.333 7.317 80.0 19990424 20170923 11030 99999 LEKA NO 65.1 11.7 47.0 19730101 20070307 11040 99999 ROTVAER NO 68.367 15.95 8.0 20070605 20080817 11050 99999 ROTVAER NO 68.367 15.95 8.0 19730101 20170923 11051 99999 SKOMVAER (LGT-H) NO 67.417 11.883 18.0 20070307 20070307 11060 99999 ROEST III NO 67.517 12.1 2.0 19280101 20081204 11070 99999 ROST (NOR-AFB) NO ENRS 67.517 12.1 4.0 19880303 20170923 11080 99999 VEGA-VALLSJO NO 65.7 11.85 9.1 19910801 20170923 11090 99999 SKALVAER NO 65.867 12.183 6.0 19730101 19800910 11100 99999 YTTERHOLMEN FYR NO 66.0 11.683 33.0 19961201 20050319 11110 99999 BRONNOYSUND NO 65.467 12.217 5.0 19730116 20070307 11120 99999 BRONNOY NO ENBN 65.461 12.218 7.6 19730101 20170923 11130 99999 GLOMFJORD NO 66.8 13.982999999999999 39.0 20040406 20091216 11133 99999 DAGALI NO ENDI 60.417 8.513 798.0 19860509 20030427 11140 99999 REIPA NO 66.9 13.633 8.0 20090702 20170923 11150 99999 MYKEN NO 66.767 12.482999999999999 13.0 19730101 20170923 11160 99999 STOKKA NO ENST 65.95 12.467 17.1 19730401 20170923 11170 99999 TJOTTA NO 65.817 12.417 21.0 20040119 20170923 11210 99999 SOLVAER III NO 66.367 12.617 10.0 19730101 20170923 11220 99999 KJAERSTAD NO ENMS 65.78399999999999 13.215 72.2 19881014 20170923 11240 99999 SNASA NO 64.167 12.467 195.0 20050218 20170923 11310 99999 GLAPEN LIGHTHOUSE NO 67.883 13.05 31.0 19730101 19850625 11320 99999 MAJAVATN V NO 65.167 13.367 319.0 20080229 20170923 11330 99999 LAKSFORS NO 65.617 13.283 50.0 20111129 20170923 11340 99999 MAJAVATN III NO 65.183 13.417 339.0 19730101 20070630 11350 99999 SELJELIA NO 66.117 13.583 123.0 20111129 20170923 11370 99999 STOTT NO 66.933 13.45 12.0 19730806 20070307 11380 99999 TENNHOLMEN (LGT-H) NO 67.3 13.5 14.0 19850912 20070307 11390 99999 VAEROY HELIPORT NO ENVR 67.65 12.717 4.0 20110928 20170923 11410 99999 LEKNES NO ENLK 68.15 13.617 26.0 19730620 20170923 11430 99999 DRAG-AJLUOKTA NO 68.05 16.083 19.0 20070806 20170923 11440 99999 HELLIGVAER II NO 67.4 13.883 24.0 20050315 20170923 11450 99999 KVALNES I LOFOTEN NO 68.35 13.967 15.0 19730101 19820504 11460 99999 SKAMDAL NO 66.233 13.883 5.0 19730101 20170923 11470 99999 VARNTRESK NO 65.833 14.183 406.0 19400907 20170923 11480 99999 STORFORSHEI NO 66.383 14.517000000000001 110.0 20110616 20170923 11490 99999 RANA-BASMOEN NO 66.333 14.1 42.0 19730101 20070228 11500 99999 HJARTASEN NO 66.5 14.95 251.0 19730103 20170923 11501 99999 HATTFJELLDAL-KRUTA NO 65.683 14.167 385.0 20020312 20020312 11505 99999 19751101 19751130 11510 99999 MOIRANA NO ENRA 66.367 14.3 70.0 19730401 20170923 11520 99999 BODO NO ENBO 67.26899999999999 14.365 12.8 19400917 20170923 11530 99999 BODO-VAGONES NO 67.283 14.45 33.0 20111003 20140611 11540 99999 LITLOY FYR NO 68.583 14.3 30.0 19940406 20170801 11550 99999 BO I VESTERALEN II NO 68.633 14.467 12.0 19730101 20041201 11560 99999 BO I VESTERALEN NO 68.6 14.433 7.6 20040510 20170923 11580 99999 SETSA NO 67.167 15.482999999999999 8.0 20100114 20170923 11600 99999 SKROVA FYR NO 68.15 14.65 11.0 19730101 20170923 11610 99999 SVOLVAER/HELLE NO ENSH 68.25 14.667 9.0 19730620 20170923 11620 99999 STORKMARKNES/SKAGEN NO ENSK 68.583 15.017000000000001 3.0 19730620 20170923 11630 99999 BOLNA NO 66.5 15.25 549.0 19730101 19770823 11650 99999 GROTOY NO 67.833 14.783 6.0 19730101 19781031 11670 99999 SORTLAND NO 68.7 15.417 3.0 19850201 20170923 11680 99999 KLEIVA I SORTLAND NO 68.65 15.283 23.0 19730101 20060611 11690 99999 SALTDAL-NORDNES NO 66.933 15.317 37.0 19830101 20170923 11691 99999 OVRE SALTDAL NO 66.967 15.317 26.0 19730101 19781008 11700 99999 FAUSKE-VETEN NO 67.233 15.317 165.0 19730101 19900307 11720 99999 FINNOY I HAMAROY NO 68.0 15.617 53.0 19730101 20060311 11730 99999 19730101 19730731 11751 99999 LODINGEN NO 68.4 16.0 10.0 20040108 20040108 11760 99999 KONGSVIK NO 68.567 16.267 25.0 19730101 19780118 11800 99999 HARSTAD NO 68.8 16.533 45.0 20040510 20170923 11820 99999 EVENSKJER NO 68.583 16.583 7.0 19730101 19851119 11830 99999 EVENES NO ENEV 68.491 16.678 25.6 19750905 20170923 11840 99999 SANDSOY I SENJA NO 68.933 16.683 45.0 19730101 19780613 11841 99999 SANDSOY NO 68.933 16.683 45.0 20070307 20070307 11890 99999 LILAND NO 68.483 16.883 19.0 19730102 20050302 11895 99999 19731008 19750904 11910 99999 SKJOMEN-SLETTJORD NO 68.283 17.317 6.0 19730101 19961104 11920 99999 STRAUMSNES NO 68.417 17.65 200.0 20110203 20170923 11930 99999 NARVIK III/FRAMNES NO ENNK 68.467 17.5 23.0 20010706 20170403 11940 99999 NARVIK III NO ENNK 68.467 17.5 23.0 19730101 20050405 11960 99999 TENNEVOLL NO 68.75 17.817 21.0 19730101 20020808 11980 99999 DIVIDALEN II NO 68.783 19.7 204.0 20100114 20170923 11990 99999 SIHCCAJAVRI NO 68.75 23.533 382.0 19490101 20170923 12030 99999 KRAKENES NO 62.033 4.9830000000000005 41.0 19310904 20170923 12050 99999 SVINOY LH NO 62.333 5.267 37.2 19730101 20170923 12070 99999 FISKABYGD NO 62.1 5.582999999999999 41.0 20040510 20170923 12090 99999 ORSTA-VOLDA/HOVDEN NO ENOV 62.183 6.067 74.0 19841211 20170923 12091 99999 ORSTA-VOLDA/HOVD NO ENOV 62.183 6.05 74.0 19840910 19841127 12100 99999 VIGRA NO ENAL 62.56 6.11 21.0 19730101 20170923 12120 99999 ONA II NO 62.867 6.5329999999999995 15.0 19550101 20170923 12140 99999 REKDAL NO 62.65 6.767 43.0 20090112 20170923 12150 99999 HJELVIK MYRBO NO 62.62 7.23 35.0 19730101 20090630 12160 99999 HJELVIK I ROMSDAL NO 62.617 7.2170000000000005 16.0 19731226 20020527 12161 99999 GJERMUNDNES NO 62.617 7.167000000000001 49.0 20040412 20040412 12170 99999 ARO NO ENML 62.745 7.263 3.0 19760201 20170923 12180 99999 TAFJORD NO 62.233000000000004 7.417000000000001 17.0 19730101 20170923 12200 99999 MANNEN NO 62.45 7.767 1294.0 20100315 20170923 12210 99999 TAGDALEN NO 63.05 9.083 415.0 20080115 20170923 12220 99999 19730101 19751231 12230 99999 KVERNBERGET NO ENKB 63.111999999999995 7.825 62.2 19730101 20170923 12240 99999 AALESUND NO 62.467 6.2170000000000005 50.0 19841201 20170923 12250 99999 VEIHOLMEN NO 63.516999999999996 7.95 5.0 19730101 20170923 12270 99999 INNERDALEN NO 62.717 8.783 405.0 19730101 20170923 12273 99999 TINGVOLL-HANEM NO 62.833 8.3 69.0 20150108 20150108 12280 99999 SULA NO 63.85 8.467 6.0 19730101 20170923 12300 99999 BJORLI NO 62.266999999999996 8.2 579.0 19730101 20170923 12310 99999 LESJASKOG NO 62.233000000000004 8.367 621.0 19771030 20080731 12320 99999 VINJEORA II NO 62.45 7.85 67.0 19730101 20170923 12330 99999 DOMBAAS NO 62.083 9.117 638.0 20061121 20170923 12340 99999 ORKDAL-THAMSHAMN NO 63.317 9.85 4.0 20061121 20170923 12350 99999 DOMBAS-KIRKENAER NO 62.083 9.133 645.0 19360101 19760602 12360 99999 KJOREMSGRENDE NO 62.1 9.05 626.0 20050218 20100104 12370 99999 HITRA NO 63.516999999999996 9.117 13.0 20050402 20170923 12380 99999 FOKSTUA II NO 62.117 9.283 974.0 19730101 20170923 12390 99999 HJERKINN II NO 62.217 9.55 1012.0 20100907 20170923 12400 99999 HALTEN FYR NO 64.167 9.4 16.0 19850110 20170923 12410 99999 ORLAND NO ENOL 63.699 9.604 8.5 19730101 20170923 12420 99999 AFJORD II NO 63.967 10.217 30.0 20080115 20170923 12430 99999 SONGLI NO 63.333 9.65 300.0 19730101 19761119 12450 99999 OPPDAL-SETER NO 62.6 9.667 606.0 19760201 20170923 12480 99999 VALLERSUND NO 63.85 9.732999999999999 4.0 19730101 19751219 12500 99999 FOLLDAL-FREDHEIM NO 62.133 10.0 694.0 20110928 20170923 12520 99999 BERKAK-LYNGHOLT NO 62.817 10.017000000000001 475.0 19730101 20080930 12530 99999 SOKNEDAL NO 62.95 10.183 299.0 20090112 20170923 12540 99999 KOTSOY NO 62.983000000000004 10.55 127.0 20090112 20170923 12570 99999 TRONDHEIM/VOLL NO 63.417 10.45 131.5 20040406 20170923 12580 99999 TRONDHEIM (TYHOLT) NO 63.417 10.433 113.0 19730101 19810714 12590 99999 BUHOLMRASA LH NO 64.4 10.45 18.4 19730101 20170917 12620 99999 NORDOYAN FYR NO 64.8 10.55 33.0 19280102 20170726 12650 99999 TYNSET-HANSMOEN NO 62.266999999999996 10.732999999999999 482.3 19490101 20170923 12680 99999 19730101 19750125 12700 99999 KVITHAMAR NO 63.483000000000004 10.883 40.0 20111003 20170923 12710 99999 VAERNES NO ENVA 63.458 10.94 17.1 19400413 20170923 12720 99999 FROSTA NO 63.567 10.7 70.0 20110929 20170923 12730 99999 SELBU NO 63.233000000000004 11.017000000000001 160.0 20071016 20170923 12740 99999 SELBU-STUBBE NO 63.2 11.117 242.0 19730101 20061115 12770 99999 STEINKJER NO 64.017 11.45 80.0 19730101 20170923 12771 99999 LEVANGER-EGGEN NO 63.717 11.232999999999999 97.0 19730101 19730216 12780 99999 VERDAL-REPPE NO 63.783 11.683 83.0 19850102 20170923 12800 99999 NAMDALSEID-VENGSTAD NO 64.133 11.333 118.0 19730101 20081231 12810 99999 NAMSSKOGAN NO 64.733 12.85 140.0 20070105 20170923 12820 99999 RORVIK/RYUM NO ENRM 64.85 11.232999999999999 14.0 19950901 20170923 12823 99999 RORVIK/RYUM NO 64.85 11.232999999999999 14.0 19910827 19950831 12870 99999 SOLENDET NO 62.683 11.817 747.0 20080115 20170923 12880 99999 ROROS NO 62.567 11.383 630.0 19730101 20170923 12890 99999 ROROS LUFTHAVN NO ENRO 62.583 11.35 626.0 19840909 20050405 12891 99999 ROROS/AIRPORT NO ENRO 62.583 11.383 626.0 19790301 19840817 12900 99999 NAMSOS AIRPORT NO ENNM 64.467 11.583 2.0 19730401 20170923 12910 99999 GARTLAND NO 64.533 12.383 95.0 20090112 20170923 12920 99999 MERAKER-UTSYN NO 63.417 11.7 240.0 19730101 20040930 12930 99999 MERAKER-EGGE NO 63.417 11.732999999999999 171.0 20050215 20170923 12940 99999 19730101 19740629 12950 99999 HOYLANDET NO 64.55 12.15 27.0 19730101 20070612 12960 99999 BERG I SNASA NO 64.25 12.417 127.0 19730101 19770606 12980 99999 NORDLI-HOLAND NO 64.45 13.717 433.0 19730101 20170923 13000 99999 GULLFAKS C NO 61.2 2.267 78.0 20010601 20170923 13005 99999 STATFJORD OIL PLATFORM HELIPORT FO ENSF 61.25 1.85 117.7 19841204 20170923 13040 99999 YTTEROYANE FYR NO 61.567 4.683 25.0 19840901 20170921 13060 99999 HELLISOY FYR NO 60.75 4.717 23.0 19730101 20041229 13070 99999 FEDJE NO 60.75 4.717 20.0 20050218 20170923 13080 99999 FURUNESET NO 61.3 5.05 7.0 20110928 20170923 13090 99999 KINN ISLAND NO 61.567 4.8 10.0 19310104 20051022 13100 99999 FLORO NO ENFL 61.583999999999996 5.025 11.3 19800407 20170923 13110 99999 FLESLAND NO ENBR 60.293 5.218 51.8 19730101 20170923 13140 99999 FOSSMARK NO 60.516999999999996 5.7170000000000005 10.0 20120615 20170923 13150 99999 EVANGER NO 60.633 6.1 17.0 20101214 20170923 13160 99999 BERGEN-FREDRIKSBERG NO 60.4 5.317 40.0 19730101 19851230 13170 99999 BERGEN/FLORIDA NO 60.383 5.332999999999999 36.0 19730101 20170923 13180 99999 SANDANE NO 61.783 6.183 51.0 20050614 20170923 13190 99999 TAKLE NO 61.033 5.382999999999999 38.0 19730101 20170923 13200 99999 SANDANE/ANDA NO ENSD 61.833 6.117000000000001 60.0 19810904 20170923 13210 99999 STRYN NO 61.9 6.55 208.0 19730101 20170923 13220 99999 FORDE-TEFRE NO 61.467 5.917000000000001 64.0 19730101 20170923 13230 99999 BRINGELAND NO ENBL 61.393 5.763999999999999 327.0 19840502 20170923 13250 99999 MODALEN II NO 60.833 5.95 114.0 19730101 20080924 13260 99999 MODALEN III NO 60.85 5.983 125.0 20081008 20170923 13270 99999 KVAMSKOGEN-JONSHOGDI NO 60.383 5.9670000000000005 455.0 20061121 20170923 13280 99999 KVAMSKOGEN NO 60.4 5.917000000000001 408.0 19730101 20060726 13290 99999 KVAMSOY NO 60.35 6.267 50.0 20050218 20170923 13300 99999 OMASTRAND NO 60.217 5.983 6.0 19730101 20050910 13320 99999 FJAERLAND BREMUSEET NO 61.43 6.77 3.0 20060201 20170923 13340 99999 FJERLAND SKARESTAD NO 61.433 6.767 10.0 20070413 20070413 13360 99999 BULKEN NO 60.65 6.2170000000000005 328.0 19730101 20170923 13370 99999 VOSSEVANGEN NO 60.633 6.433 55.0 20050218 20170923 13380 99999 VANGSNES NO 61.167 6.65 51.0 20040706 20170923 13390 99999 VANGSNES NO 61.167 6.65 53.0 19730101 20011102 13400 99999 FET I EIDFJORD NO 60.42 7.28 737.0 20050726 20170923 13410 99999 EIDFJORD-BU NO 60.467 6.867000000000001 166.0 19830101 20070227 13420 99999 ULLENSVANG NO 60.317 6.65 12.0 19730101 20170923 13440 99999 MJOLFJELL NO 60.7 6.95 695.0 19730101 20170923 13450 99999 KLEVAVATNET NO 60.717 7.2170000000000005 960.0 19731007 20170923 13460 99999 MIDTSTOVA NO 60.65 7.267 1162.0 20111125 20170923 13470 99999 SOGNDAL HAUKASEN NO ENSG 61.156000000000006 7.1370000000000005 511.0 19850118 20170923 13471 99999 SOGNDAL/HAUKASEN NO ENSG 61.167 7.132999999999999 498.0 19840801 19841217 13500 99999 FINSEVATN NO 60.6 7.5329999999999995 1208.0 20030330 20170923 13510 99999 FINSE III NO 60.6 7.5 1224.0 19730102 20011210 13520 99999 SANDHAUG NO 60.183 7.483 1250.0 20040107 20170923 13550 99999 LAERDAL IV NO 61.1 7.5 5.0 19730101 20170923 13560 99999 FANNARAKI FO 61.516999999999996 7.9 2062.0 19881125 20140827 13570 99999 HOLLEKOLTEN NO 60.867 8.517000000000001 804.2 19730101 20170923 13580 99999 HEMSEDAL II NO 60.85 8.6 604.0 20110929 20170923 13590 99999 GEILO-OLDEBRATEN NO 60.533 8.2 773.0 19730101 20170923 13591 99999 HAUGASTOL NO 60.516999999999996 7.867000000000001 988.0 20070307 20070307 13600 99999 BRATA-SLETTOM NO 61.9 7.9 664.0 19730101 20170923 13610 99999 GROTLI III NO 62.016999999999996 7.667000000000001 872.0 19730101 20170923 13620 99999 JUVVASSHOE NO 61.667 8.367 1894.0 20090626 20170923 13630 99999 19730101 19740906 13640 99999 FILEFJELL NO 61.183 8.117 955.1 19490101 20170923 13650 99999 BEITOSTOLEN II NO 61.251000000000005 8.917 965.0 19730404 20170923 13660 99999 SOGNEFJELL NO 61.567 8.0 1413.0 19790301 20170923 13670 99999 FAGERNES NO 60.983000000000004 9.217 365.4 19821001 20170923 13671 99999 BEITOSTOLEN NO 61.233000000000004 8.933 828.0 19730101 19801105 13680 99999 LEIRIN NO ENFG 61.016000000000005 9.288 822.0 19881014 20170923 13690 99999 ABJORSBRATEN NO 60.917 9.283 639.0 19881001 20170923 13700 99999 SKABU NO 61.516999999999996 9.4 928.0 19730101 20170923 13710 99999 LOKEN I VOLBU NO 61.117 9.067 521.0 19730101 20170923 13720 99999 NESBYEN-SKOGLUND NO 60.567 9.133 167.0 19730101 20040121 13730 99999 NESBYEN-TODOKK NO 60.567 9.133 166.0 19730101 20170923 13740 99999 VEST-TORPA II NO 60.933 10.033 542.0 19810501 20170923 13741 99999 19730101 19790810 13743 99999 FAGERNES/LEIRIN & NO 61.0 9.3 822.0 19880105 19880913 13750 99999 KVITFJELL NO 61.467 10.133 1028.0 19730101 20170923 13755 99999 GULLFAX (PLATFORM) NO ENGC 61.033 2.033 10.0 19891115 20170923 13760 99999 GULSVIK II NO 60.383 9.6 142.0 19730101 20170923 13780 99999 LILLEHAMMER-SAETHERENGEN NO 61.1 10.467 239.0 19730101 20170923 13790 99999 SOR-NESSET NO 61.883 10.15 739.0 19730101 20051209 13800 99999 VENABU NO 61.65 10.117 930.0 19850110 20170923 13801 99999 KITTILBU NO 61.167 9.967 816.0 19741114 19840827 13810 99999 APELSVOLL NO 60.7 10.867 264.0 20111003 20170923 13820 99999 KISE NO 60.766999999999996 10.8 128.0 19730101 20170923 13830 99999 EVENSTAD-DIH NO 61.4 11.08 255.0 19730101 20170923 13839 99999 HAMAR / STAFSBERG NO ENHA 60.817 11.067 223.0 19870205 19900222 13840 99999 GARDERMOEN NO ENGM 60.193999999999996 11.1 207.6 19400511 20170923 13850 99999 HAMER NO 60.817 11.067 222.3 20061024 20170923 13860 99999 HAMAR II NO 60.8 11.1 132.0 20090701 20170923 13870 99999 FAVANG NO 61.45 10.183 200.0 20110929 20170923 13890 99999 RENA AP NO 61.183 11.367 255.7 19730101 20170923 13910 99999 FLISA NO 60.617 12.017000000000001 188.0 19730101 20050331 13920 99999 FLISA II NO 60.617 12.017000000000001 185.0 20050218 20170923 13930 99999 DREVSJO NO 61.883 12.033 673.5 19730101 20170923 13970 99999 TRYSIL VEGSTASJON NO 61.3 12.267000000000001 361.4 19730101 20170923 14000 99999 EKOFISK NO 56.55 3.217 48.8 19981223 20170923 14010 99999 FRIGG NO 59.983000000000004 2.25 48.0 20010601 20070307 14030 99999 UTSIRA FYR NO 59.3 4.867 56.3 19280102 20170923 14033 99999 EKOFISK OIL PLTFRM NO ENEK 56.55 3.25 48.8 19810506 20170525 14035 99999 KARMOY NO 59.35 5.2170000000000005 23.0 19751101 19840807 14060 99999 SLATTEROY FYR NO 59.917 5.067 16.0 19730101 20170923 14080 99999 KARMOY NO ENHD 59.345 5.207999999999999 26.2 19840909 20170923 14090 99999 SKUDENES NO 59.15 5.25 7.0 20050218 20051028 14110 99999 KVITSOY - NORDBO NO 59.067 5.417000000000001 22.0 20050612 20170923 14120 99999 OBRESTAD NO 58.65 5.567 26.0 19730101 20170923 14130 99999 SAERHEIM NO 58.75 5.65 87.0 20110928 20170923 14140 99999 ROVER NO 59.433 5.067 25.0 19890520 20170923 14150 99999 SOLA NO ENZV 58.876999999999995 5.638 8.8 19400410 20170923 14160 99999 STAVANGER VAALAND NO 58.95 5.733 72.0 20080724 20170923 14170 99999 NEDRE VATS NO 59.483000000000004 5.75 65.0 19730103 20170923 14180 99999 AUSTEVOLL NO 60.016999999999996 5.2 32.0 19730101 20170923 14190 99999 LIARVATN NO 59.05 6.117000000000001 300.0 20100702 20170923 14211 99999 INDRE MATRE NO 59.85 6.0 24.0 20020314 20020314 14220 99999 FISTER SIGMUNDSTAD NO 59.167 6.0329999999999995 25.0 20070605 20170923 14230 99999 FISTER-TONNEVIK NO 59.167 6.05 50.0 19730101 20070529 14240 99999 SAUDA NO 59.65 6.367000000000001 6.0 19730101 20170923 14250 99999 EIK HOVE NO 58.516999999999996 6.517 66.0 19730101 20170923 14260 99999 EIGEROYA NO 58.433 5.867000000000001 49.0 20040425 20170923 14270 99999 LISTA FYR NO 58.117 6.567 14.0 19280101 20170923 14280 99999 LISTA NO ENLI 58.099 6.626 8.8 19730101 20070813 14281 99999 ULA OIL PLATFORM NO ENLA 59.111000000000004 2.846 94.0 20130806 20170923 14300 99999 MANDAL II NO 58.016999999999996 7.45 138.0 19730101 20170923 14310 99999 SIRDAL-SINNES NO 58.933 6.917000000000001 557.0 20070806 20170923 14320 99999 SIRDAL-TJORHOM NO 58.883 6.85 500.0 19741114 20100331 14321 99999 FIDJELAND NO 58.967 6.933 568.0 20070307 20070307 14330 99999 MIDTLAEGER NO 59.833 6.983 1081.0 19730101 20150528 14340 99999 VAAGSLI NO 59.766999999999996 7.367000000000001 822.0 20040406 20170923 14350 99999 HAUKELISETER TESTFELT NO 59.817 7.2170000000000005 989.5 19850111 20170923 14360 99999 LINDESNES FYR NO 57.983000000000004 7.05 13.0 19730101 20170923 14390 99999 KONSMO-HOYLAND NO 58.25 7.442 260.0 19730101 20170923 14400 99999 BLASJO NO 59.333 6.867000000000001 1104.6 19730101 20170923 14410 99999 HOVDEN-LUNDANE NO 59.583 7.382999999999999 836.0 19830101 20170923 14420 99999 BYGLANDSFJORD NO 58.667 7.8 211.0 19730101 20170923 14440 99999 VALLE NO 59.2 7.517 302.0 20110926 20170923 14450 99999 SKAFSA NO 59.45 8.0 77.0 19730101 19891113 14460 99999 OYFJELL-TROVATN NO 59.567 8.2 714.0 19830101 20040731 14470 99999 HOYDALSMO II NO 59.5 8.2 562.0 20061121 20170923 14480 99999 OKSOY FYR NO 58.067 8.05 8.0 19490101 20170923 14490 99999 GJERSTAD NO 58.867 9.033 32.0 20120105 20170923 14500 99999 MOSSTRAND II NO 59.833 8.183 977.0 19730101 20170923 14520 99999 KJEVIK NO ENCN 58.20399999999999 8.085 17.4 19400501 20170923 14530 99999 HYNNEKLEIV NO 58.6 8.417 162.0 20120105 20170923 14550 99999 TVEITSUND NO 59.033 8.517000000000001 252.0 19730101 20170923 14590 99999 NELAUG NO 58.65 8.633 142.0 19730101 20170923 14600 99999 GULLHOLMEN NO 59.433 10.583 14.0 20121102 20170923 14610 99999 19730101 19740930 14611 99999 GAUSTATOPPEN NO 59.85 8.65 1803.7 20140605 20170815 14620 99999 PORSGRUNN NO 59.083 9.667 90.0 20130729 20170923 14630 99999 AS NO 59.65 10.767000000000001 89.0 20110929 20170923 14640 99999 LANDVIK NO 58.333 8.517000000000001 6.0 20110928 20170923 14650 99999 TORUNGEN FYR NO 58.4 8.783 15.0 19730101 20170923 14660 99999 KJELLER AP NO 59.967 11.033 109.0 20110928 20170923 14670 99999 LYNGOR FYR NO 58.633 9.15 5.0 19730101 20170923 14680 99999 KONGSVINGER NO 60.183 12.0 148.0 20061003 20170923 14690 99999 HONEFOSS-HOYBY NO 60.167 10.25 140.0 20050719 20170923 14700 99999 GVARV NO 59.383 9.2 93.0 19730101 20160315 14703 99999 NOTODDEN NO ENNO 59.566 9.212 19.2 19901019 20170923 14710 99999 VEGGLI II NO 60.05 9.15 275.0 20061003 20170923 14730 99999 KONGSBERG BRANNSTASJON NO 59.617 9.633 173.0 20040510 20170923 14740 99999 LYNGDAL I NUMEDAL NO 59.9 9.533 294.0 19730101 20060831 14750 99999 SKIEN-GEITERYGGEN NO ENSN 59.183 9.567 141.0 19850717 20050411 14760 99999 JOMFRULAND FYR NO 58.85 9.55 5.0 19730101 20170923 14770 99999 KONNERUD NO 59.717 10.15 193.0 19730101 20170923 14780 99999 SVENNER LH NO 58.967 10.15 15.0 19730101 20170923 14800 99999 DRAMMEN BERSKOG NO 59.75 10.133 8.0 20050218 20170923 14810 99999 MELSOM NO 59.233000000000004 10.35 26.0 19740519 20170923 14820 99999 FERDER LH NO 59.033 10.517000000000001 7.7 19310101 20170923 14825 99999 TORP NO ENTO 59.187 10.259 87.2 20050329 20170923 14830 99999 TORP NO 59.183 10.267000000000001 88.0 19730101 20100310 14840 99999 AURSKOG NO 59.917 11.583 128.0 19730101 20170923 14843 99999 OSEBERG NO ENOA 59.317 10.45 15.0 19901019 20170923 14850 99999 DANDE-GALLEBERG NO 59.617 10.217 60.0 20110928 20170923 14860 99999 ASKER NO 59.85 10.433 163.0 20040510 20170923 14870 99999 ALNA NO 59.933 10.833 90.0 20040924 20150601 14880 99999 HAKADAL NO 60.117 10.833 170.0 19400407 20170923 14881 99999 STATFJORD B OIL PLATFORM NO ENFB 61.206 1.829 142.0 20101123 20170923 14890 99999 BJORNHOLT NO 60.05 10.683 360.0 20110928 20170923 14900 99999 TRYVANNSHOGDA NO 59.983000000000004 10.683 528.0 19730101 20170923 14920 99999 OSLO-BLINDERN NO 59.95 10.717 97.0 19730803 20170923 14930 99999 SARPSBORG NO 59.283 11.117 57.0 20040510 20170923 14940 99999 RYGGE NO ENRY 59.379 10.786 53.0 19730101 20170923 14950 99999 STROMTANGEN FYR NO 59.15 10.833 10.0 20040406 20170923 14960 99999 HOLAND-FOSSER NO 59.817 11.482999999999999 154.0 19730101 20071020 14965 99999 19750426 19750514 14970 99999 PRESTEBAKKE NO 59.0 11.533 157.0 19730101 20100409 14980 99999 MAGNOR NO 59.967 12.217 153.0 19830101 20050831 14981 99999 19730101 19780221 14983 99999 STATFJORD OIL RIG & NO 19821204 19841127 14990 99999 VAEROY NO 19860916 19900322 14993 99999 VAEROY NO ENVY 19880105 19900716 15000 99999 RAKKESTAD NO 59.383 11.383 100.0 20090708 20091216 20001 99999 LJUNGBYHED SW ESTL 56.083 13.213 42.7 20040510 20170923 20120 99999 RITSEM SW 67.733 17.467 521.0 19810801 20050924 20130 99999 RITSEM SW 67.733 17.467 542.7 20010601 20170923 20180 99999 SUORVA SW 67.533 18.233 415.0 19350101 19381231 20190 99999 KATTERJAKK A SW 68.417 18.167 516.0 20081027 20170923 20200 99999 KATTERJAKK SW 68.417 18.167 517.0 19770701 20170923 20220 99999 ABISKO SW 68.35 18.817 394.0 20011107 20051228 20230 99999 TORNEHAMN (AUT) SW 68.433 18.633 512.0 19860427 20050526 20240 99999 STORA SJOFALLET SW 67.5 18.3 425.0 20010601 20170923 20260 99999 ALUOKTA SW 67.317 18.883 385.0 20021023 20050930 20290 99999 TARFALA SW 67.917 18.6 1146.0 20010601 20170923 20310 99999 RENSJON SW 68.067 19.833 493.0 20010601 20170923 20320 99999 TORNETRASK LAKE SW 68.217 19.717 393.0 19770701 20030909 20360 99999 NIKKALUOKTA SW 67.85 19.033 468.0 19770701 20170923 20380 99999 LATNIVAARA SW 67.25 20.267 453.0 20010601 20170923 20430 99999 ESRANGE SW 67.933 21.066999999999997 341.0 19940301 19990630 20440 99999 KIRUNA SW ESNQ 67.822 20.337 459.6 19770701 20170923 20450 99999 KIRUNA-SOL SW 67.833 20.417 424.0 19950401 20030922 20480 99999 MALMBERGET SW 67.167 20.666999999999998 375.0 19350101 19910505 20490 99999 GALLIVARE SW ESNG 67.132 20.815 313.0 19790803 20170923 20500 99999 RIKSGRANSEN SW 68.417 18.117 508.0 19350101 19770630 20510 99999 KARESUANDO SZ 68.45 22.5 327.1 19550101 19591231 20520 99999 KVIKKJOKK & SW 66.95 17.75 337.0 19550101 19770630 20530 99999 MALMBERGET SW 67.133 20.666999999999998 365.0 19550101 19770630 20540 99999 NEDRE SOPPERO SW 68.05 21.75 360.0 19550101 20160421 20550 99999 NAIMAKKA SW 68.683 21.533 402.0 19730101 20170923 20560 99999 STENSELE SZ 65.067 17.167 330.1 19550101 19591231 20570 99999 KALLAX/LULEA (AFB) SW ESPA 65.55 22.133000000000003 17.0 19550101 19770630 20580 99999 HAPARANDA & SW 65.833 24.15 7.0 19730101 19770630 20590 99999 GADDEDE SW 64.5 14.133 318.0 19550101 19770630 20600 99999 NAIMAKKA SW 68.683 21.533 403.0 19550101 20041021 20620 99999 OSTERSUND FROSON AB SW 63.183 14.5 376.0 19550101 20050815 20630 99999 ASELE SW 64.167 17.367 329.0 19550101 19770630 20640 99999 SAITTAROVA SW 67.333 22.233 240.0 19730101 20170923 20650 99999 SVEG & SW 62.033 14.367 360.0 19550101 19770630 20660 99999 SUNDSVALL/HARNOSAND SW ESNN 62.533 17.45 4.0 19550101 19770630 20670 99999 SARNA SW 61.683 13.133 505.0 19550103 19770630 20680 99999 DELSBO SW 61.8 16.567 93.0 19350101 19770630 20690 99999 SODERHAMN (SWE-AFB) SW ESCL 61.266999999999996 17.1 26.0 19550101 19770630 20700 99999 GUSTAVSFORS & SW 60.15 13.8 198.0 19730101 19770630 20710 99999 NORRKOPING-SOL SW 58.583 16.15 58.0 19550101 19591231 20711 99999 BORLANGE SW 60.417 15.517000000000001 153.0 19730101 19730121 20720 99999 PARKALOMPOLO SW 67.733 22.833000000000002 313.0 20010601 20170923 20730 99999 KARLSTAD & SW ESSQ 59.367 13.467 46.0 19550101 19770630 20740 99999 OREBRO/EKEBY SW 59.266999999999996 15.333 33.0 19730101 19770630 20750 99999 VASTERAS/HASSLO AFB SW ESCD 59.583 16.633 6.0 19730101 19770630 20760 99999 UPPSALA & SW ESCM 59.883 17.6 21.0 19730101 19770630 20770 99999 STOCKHOLM/BROMMA & SW ESSB 59.35 17.95 15.0 19550101 19770630 20790 99999 SATENAS (SWE-AFB) SW ESIB 58.433 12.7 54.0 19730101 19770630 20800 99999 KARESUANDO SW 68.45 22.45 331.0 19350101 20120831 20810 99999 KARESUANDO SW 68.45 22.45 330.0 19550101 20170923 20820 99999 LANDSORT & SW 58.75 17.867 32.0 19730101 19770630 20830 99999 GOTSKA SANDON & SW 58.4 19.2 12.0 19730101 19770630 20840 99999 LANNAVAARA & SW 68.05 22.0 360.0 19550101 20040507 20850 99999 RANGEDALA (AUTO) SW 57.717 13.117 259.0 19730101 19770630 20860 99999 LAINIO SW 67.767 22.35 317.0 19550101 20050317 20870 99999 JONKOPING & SW ESSJ 57.766999999999996 14.083 226.0 19550101 19770630 20880 99999 KOMPELUSVAARA SW 67.083 22.217 263.0 19730101 20020521 20890 99999 OLANDS NORRA UDDE & SW 57.367 17.1 4.0 19730101 19770630 20900 99999 VISBY & SW ESSV 57.667 18.35 51.0 19550101 19770630 20910 99999 VISBY-SOL SW 57.667 18.35 49.0 19730101 19770630 20920 99999 MUODOSLOMPOLO SW 67.95 23.467 240.0 19730101 20040917 20930 99999 VAXJO & SW 56.867 14.8 166.0 19730101 19770630 20940 99999 UNGSKAR SW 56.033 15.8 1.0 19550101 19770630 20950 99999 PAJALA SW 67.2 23.383000000000003 171.0 19550101 20170923 20960 99999 PAJALA SW 67.217 23.4 168.0 19550101 20080218 20970 99999 MALMO /BULLTOFTON SZ 55.6 13.067 14.9 19550101 19740702 20980 99999 MALMO/STURUP SW ESMS 55.55 13.367 72.0 19730101 19770630 20990 99999 YSTAD & SW 55.433 13.833 34.0 19730101 19770630 21000 99999 NAIMAKKA SW 68.683 21.533 403.0 19730101 19770630 21010 99999 HEMAVAN SW ESUT 65.806 15.083 458.1 19730102 20170923 21020 99999 STEKENJOKK SW 65.1 14.517000000000001 1036.0 19581101 20170923 21030 99999 HEMAVAN-GIEREVARTO SW 65.783 15.067 793.0 19871118 20170923 21040 99999 HEMAVAN SW 65.817 15.083 485.0 19770701 20080218 21050 99999 ABELVATTNET SW 65.533 14.982999999999999 670.0 19730101 20040221 21060 99999 JOKKMOKK (SWE-AFB) SW 66.6 19.833 256.0 19730101 19770630 21080 99999 KLIMPFJALL SW 65.067 14.8 593.0 19770701 20050921 21090 99999 ABRAUR SW 65.9 19.1 342.0 19730102 19770630 21100 99999 GIELAS SW 65.333 15.067 577.0 19870518 20170923 21110 99999 VIDSEL (SWE-AFB) SW ESPE 65.867 20.133 180.0 19730102 19770630 21120 99999 SYLARNA SW 63.05 12.267000000000001 1035.0 19770701 20040821 21140 99999 NORRAKER SW 64.45 15.6 346.0 19750807 19770630 21150 99999 STORLIEN-VISJOVALE& SW 63.3 12.133 640.0 19550101 19770630 21160 99999 MORSIL SW 63.317 13.65 400.0 19730101 20050221 21170 99999 NORDMALING SW 63.567 19.5 6.0 19550101 19770630 21180 99999 DIKANAS/SKANSNAS SW 65.317 16.033 525.0 19730101 20050121 21190 99999 KVIKKJOKK ARRENJARKA SW 66.883 18.017 320.0 19730101 20170923 21200 99999 KVIKKJOKK-ARRENJARKA SW 66.883 18.017 315.0 19350101 20130331 21205 99999 STORUMAN SW 64.95 17.7 279.0 20050419 20170923 21210 99999 MIERKENIS SW 66.683 16.117 615.0 20010601 20170923 21220 99999 STENUDDEN SW 66.533 17.667 453.0 19790802 20040321 21230 99999 JAKKVIK SW 66.317 17.1 552.0 19730101 20160421 21240 99999 ARJEPLOG SW 66.05 17.833 432.0 19770405 20170923 21250 99999 OSTMARK SW 60.317 12.7 178.0 19730101 19770630 21260 99999 GUNNARN SW 65.017 17.7 251.0 19730101 20150818 21270 99999 STENSELE SW 65.067 17.167 327.0 19310103 20050823 21280 99999 GUNNARN SW ESPD 65.0 17.7 283.0 19730101 20130402 21290 99999 GUNNARN SOL (AUT) SW 64.967 17.7 278.0 19730101 19861125 21300 99999 ROPARUDDEN SW 66.483 16.417 481.0 19730101 20160421 21310 99999 ARVIKA SW 59.667 12.583 75.0 19730101 19770630 21330 99999 SNAVLUNDA SW 58.967 14.9 144.0 19730101 19770630 21350 99999 BURESJON SW 65.567 17.867 393.0 19730101 20170923 21360 99999 STORBERG SW 65.5 18.95 454.0 20030519 20040829 21380 99999 GRUNDKALLEN SW 60.5 18.867 23.0 19730101 19770630 21410 99999 TJAKAAPE SW 66.317 19.217 582.0 19730101 20170923 21420 99999 JOKKMOKK SW ESNJ 66.49600000000001 20.147000000000002 275.5 19770701 20000510 21430 99999 PALJAMYREN SW 66.217 19.133 570.0 19730101 20030731 21440 99999 ABRAUR SW 65.983 18.933 374.0 19770701 20040626 21450 99999 TELLEJAUR SW 66.15 19.633 436.0 20030725 20040322 21460 99999 VAJMAT SW 66.5 19.683 324.0 20010701 20160421 21470 99999 MALA-BRANNAN SW 65.15 18.6 363.0 19730101 20170923 21480 99999 NORRKOPING/BRAVALLA SW ESCK 58.617 16.117 27.0 19730101 19770630 21490 99999 ARVIDSJAUR SW 65.6 19.267 384.0 20010701 20170923 21500 99999 NYKOPING/SKAVST AFB SW ESCJ 58.783 16.917 42.0 19730101 19770630 21510 99999 JOKKMOKK FPL SW 66.483 20.167 275.0 19730101 20170923 21520 99999 SUDOK SW 66.3 20.417 174.0 19730101 20050919 21540 99999 VIDSEL SW ESPE 65.875 20.15 182.0 19770701 20170923 21550 99999 HAGSHULT (SWE-AFB) SW ESMV 57.3 14.133 169.0 19550101 19770630 21560 99999 STENSJON (AUT) SW 63.967 13.717 680.0 19770701 20031028 21580 99999 FALLFORS SW 65.133 20.783 190.0 19790726 20020807 21590 99999 FALLFORS SW ESUF 65.12 20.77 195.0 19960801 20050629 21600 99999 NATTAVAARA SW 66.75 21.05 327.0 20010829 20050307 21610 99999 NATTAVAARA SW 66.75 20.933000000000003 327.0 19730101 20170923 21620 99999 MARKARYD SW 56.467 13.65 118.0 19730101 19770630 21630 99999 LJUNGBYHED(SWE-AFB) SW ESDA 56.083 13.232999999999999 43.0 19730101 19770630 21640 99999 PALKEM SW 66.383 21.633000000000003 263.0 19730501 20030719 21660 99999 RONNEBY (SWE-AFB) SW ESDF 56.266999999999996 15.283 58.0 19730101 19770630 21670 99999 FALSTERBO (LGT-H) SW 55.383 12.817 5.0 19730101 19770630 21690 99999 HEDEN SW ESPJ 65.867 21.45 36.0 20020530 20020801 21700 99999 SAVAST SW 65.75 21.767 12.0 20101117 20160421 21710 99999 BODEN SW 65.817 21.633000000000003 18.0 19790802 20170923 21720 99999 ALVSBYN SW 65.683 20.967 50.0 19790710 19791123 21730 99999 ALVSBYN SW 65.667 21.066999999999997 43.0 20010701 20170923 21740 99999 LAKATRASK SW 66.283 21.133000000000003 186.0 20010701 20170923 21760 99999 PITE-RONNSKAR SW 65.033 21.566999999999997 4.0 19970901 20170923 21810 99999 OVERKALIX SVARTBYN SW 66.267 22.85 62.0 19960801 20170826 21820 99999 OVERKALIX SW 66.267 22.833000000000002 47.0 19790803 20020602 21830 99999 LULEA-SOL SW 65.55 22.116999999999997 32.0 20040802 20041020 21840 99999 PAHAROVA SW 66.817 22.333000000000002 229.0 20010701 20170923 21850 99999 LULEA-KALLAX SW 65.55 22.133000000000003 34.0 20010402 20011008 21860 99999 KALLAX SW ESPA 65.544 22.122 19.8 19770701 20170923 21880 99999 RODKALLEN SW 65.317 22.383000000000003 2.0 19730101 20170923 21900 99999 KORPILOMBOLO SW 66.85 23.033 180.0 20010716 20040402 21910 99999 STORON SW 65.7 23.1 4.0 20010701 20170923 21960 99999 HAPARANDA SW 65.833 24.15 6.0 19310101 20121231 21970 99999 HAPARANDA SW 65.817 24.116999999999997 16.0 20081027 20170923 21990 99999 YLINENJARVI SW 66.617 23.467 132.0 20010701 20170923 22000 99999 EDEVIK SW 63.983000000000004 12.867 425.0 19770701 20041225 22020 99999 TORNETRASK LAKE SW 68.217 19.717 393.0 19730101 19770630 22040 99999 NIKKALUOKTA SW 67.85 19.033 470.0 19730101 19770630 22060 99999 STORLIEN-STORVALLEN SW 63.283 12.133 583.0 19350101 20130228 22070 99999 STORLIEN-VISJOVALEN A SW 63.283 12.117 583.0 19730101 20170923 22090 99999 SYLARNA SW 63.05 12.283 1030.0 19730101 20170923 22100 99999 BLAHAMMAREN SW 63.183 12.167 1090.0 20100920 20170923 22120 99999 19740519 19740519 22150 99999 ARESKUTAN SW 63.433 13.083 1280.0 19970901 20040822 22160 99999 MATTMAR SW 63.3 13.883 365.0 19730101 20160421 22170 99999 ARE SW 63.367 13.167 435.0 20010701 20160421 22180 99999 MORSIL SW 63.317 13.65 400.0 19730105 20050924 22190 99999 GADDEDE A SW 64.5 14.217 550.0 20080301 20170923 22210 99999 KORSVATTNET SW 63.833 13.5 717.0 19971201 20170923 22220 99999 GADDEDE SW 64.5 14.167 330.0 19770701 20080218 22230 99999 STEMSJON (AUT) SW 63.967 13.717 680.0 19730101 19770630 22240 99999 FOLLINGE-VAGSKALET SW 63.766999999999996 14.433 475.0 20020609 20020609 22260 99999 OSTERSUND SW ESNZ 63.2 14.5 376.0 19350101 20170923 22271 99999 KALIX SW 65.85 23.133000000000003 7.0 20070307 20070307 22280 99999 EDEVIK SW 64.05 12.95 453.0 19730101 19770630 22290 99999 OSTERSUND-SOL SW 63.2 14.482999999999999 374.0 19970901 20050729 22300 99999 GUBBHOGEN SW 64.217 15.55 310.0 19730101 20170923 22310 99999 FOLLINGE SW 63.683 14.6 362.0 20010701 20170923 22320 99999 NORRAKER SW 64.433 15.633 346.0 19770701 20040903 22330 99999 SAXNAS SW 64.967 15.383 545.0 20010701 20160421 22340 99999 STROMSUND SW 63.867 15.583 373.0 19790105 19951130 22360 99999 HALLHAXASEN SW 63.766999999999996 15.333 376.0 19770701 20170923 22420 99999 HOTING SW 64.083 16.233 241.0 19730101 20170923 22430 99999 JUNSELE SW 63.683 16.95 214.0 19730101 20170923 22440 99999 JUNSELE SW 63.683 16.95 217.0 19960201 20080218 22450 99999 VILHELMINA SW 64.583 16.85 349.0 19960801 20170923 22455 99999 LYCKSELE SW ESNL 64.548 18.715999999999998 214.9 19980408 20170923 22470 99999 KRANGEDE SW 63.15 16.167 184.0 19730101 20170923 22480 99999 KRANGEDE SW 63.167 16.167 223.0 19770704 20050218 22510 99999 STORSJO KAPELL SW 62.8 13.067 575.0 19730101 19770630 22520 99999 IDVATTNET SW 64.45 17.083 353.0 19830201 20070307 22540 99999 ASELE SW 64.167 17.317 308.0 19770701 20170923 22550 99999 FRANSTA SW 62.5 16.183 75.0 19730101 19770630 22560 99999 RISTRASK SW 64.733 17.4 575.0 20010701 20160421 22570 99999 FLOTNINGEN SW 61.85 12.267000000000001 670.0 19730101 19770630 22580 99999 VINDEL-BJORKHEDEN SW 65.817 16.717 352.0 20011104 20041216 22590 99999 KRAMFORS SOLLEFTEA SW ESNK 63.049 17.769000000000002 10.4 19770701 20170923 22600 99999 VASTMARKUM SW 63.133 18.25 143.0 19730101 20170923 22610 99999 LYCKSELE SW 64.55 18.717 211.0 19730101 20170923 22620 99999 VUOGGATJALME SW 66.567 16.35 500.0 19730101 20040306 22630 99999 FREDRIKA SW 64.083 18.367 327.0 20010701 20170923 22640 99999 FREDRIKA SW 64.083 18.417 300.0 19730101 20021028 22650 99999 HEMLING SW 63.65 18.55 183.0 20010701 20170923 22660 99999 VILHELMINA (AUTO) SW 64.583 16.85 349.0 20020608 20020608 22670 99999 ORNSKOLDSVIK SW ESNO 63.408 18.99 107.9 19790802 20170923 22690 99999 SKAGSUDDE SW 63.183 19.017 11.0 19960801 20170923 22700 99999 NORSJO SW 64.917 19.467 301.0 20010614 20030914 22710 99999 NORSJO SW 64.933 19.383 310.0 20010701 20170923 22740 99999 VINDELN SW 64.217 19.717 206.0 19960501 20000509 22760 99999 NORDMALING SW 63.567 19.5 5.0 19770701 19870423 22780 99999 KRANGEDE (AUTO) SW 63.15 16.167 184.0 19770701 20041015 22790 99999 SKILLINGMARK SW 59.867 11.967 130.0 19730101 19770630 22800 99999 BLOMSKOG SW 59.283 12.05 110.0 19730101 19770630 22810 99999 AMAL SW 59.05 12.7 60.0 19730101 19770630 22820 99999 PETISTRASK SW 64.567 19.7 258.0 20010701 20170923 22830 99999 UMEA-SOL SW 63.817 20.233 22.0 19840712 19840712 22840 99999 JARNASKLUBB SW 63.433 19.683 7.0 19730101 20170923 22860 99999 UMEA SW ESNU 63.792 20.283 7.3 19770701 20170923 22861 99999 SODERHAMN SW ESCL 61.266999999999996 17.1 36.0 20040706 20120103 22870 99999 HOLMON SW 63.8 20.866999999999997 8.0 20050724 20170923 22880 99999 HOLMOGADD SW 63.6 20.75 6.0 19350101 20080111 22890 99999 SYDOSTBROTTEN (LH) SW 63.333 20.183 25.0 19730101 20010920 22900 99999 FURUOGRUND & SW 64.917 21.233 10.0 19750210 20030114 22920 99999 HOKMARKSBERGET SW 64.433 21.283 105.0 20010701 20160421 22930 99999 SKELLEFTEA SW ESNS 64.625 21.076999999999998 47.9 19790802 20170923 22960 99999 BJUROKLUBB (LGT-H) SW 64.483 21.583000000000002 36.0 19350101 20031222 22970 99999 BJUROKLUBB SW 64.483 21.583000000000002 43.0 20010601 20170923 22980 99999 SVARTEBORG SW 58.567 11.55 70.0 19730101 19770630 23000 99999 FJALLNAS SW 62.583 12.217 780.0 20020523 20060102 23020 99999 STORBO SW 61.833 12.283 665.0 20010701 20160421 23030 99999 FLATRUET SW 62.733000000000004 12.732999999999999 995.0 20010701 20160421 23040 99999 FLOTNINGEN SW 61.85 12.267000000000001 670.0 19770701 20040123 23050 99999 NASHUVUD SW 58.9 13.25 50.0 19730101 19770630 23060 99999 RORBACKSNAS SW 61.133 12.817 465.0 19770701 20041022 23070 99999 IDRE FJALL SW 61.883 12.85 869.0 19730101 20170923 23080 99999 TANNAS SW 62.45 12.667 724.0 19960801 20170923 23100 99999 STORSJO KAPELL SW 62.8 13.067 583.0 19770701 20050123 23110 99999 HOGFJALLSHOTELLET SW 61.15 13.117 744.0 20010701 20160421 23120 99999 MALEXANDER SW 58.067 15.217 153.0 19730101 19770630 23130 99999 VISINGSO SW ESGI 58.1 14.4 110.0 19731209 19731209 23140 99999 LOFSDALEN SW 62.1 13.25 610.0 20010729 20050523 23141 99999 TYLLINGE SW 58.016999999999996 16.067 100.0 20160801 20170923 23160 99999 SARNA SW 61.7 13.183 425.0 19350101 20050523 23170 99999 DRAVAGEN SW 62.1 13.617 566.0 20010701 20170923 23180 99999 TANDADALEN SW 61.167 13.017000000000001 830.0 19730101 20160204 23190 99999 BORTNAN SW 62.75 13.85 467.0 20010701 20170923 23191 99999 AMBJORNARP SW 57.417 13.283 220.0 20160726 20170923 23201 99999 TINGHALLA SW 57.967 13.85 278.0 20160726 20170923 23210 99999 ALVDALEN SW 61.25 14.033 253.0 19730101 20170923 23220 99999 20030123 20030723 23230 99999 KLOVSJO SW 62.533 14.2 550.0 20011124 20050223 23240 99999 SVEG SW 62.016999999999996 14.183 363.0 19370101 20121031 23250 99999 KLOVSJOHOJDEN SW 62.5 14.15 803.0 19730101 20170923 23260 99999 FREDRIKA SW 64.083 18.417 300.0 19770701 20041221 23270 99999 SVEG A SW 62.05 14.4 362.0 20090929 20170923 23280 99999 KRAMFORS (SWE-AFB) SW 63.05 17.767 19.0 20021217 20041102 23290 99999 HAMRA SW 61.667 15.0 455.0 19730101 20170923 23300 99999 HUNGE SW 62.75 15.1 342.0 19740627 20051008 23310 99999 HUNGE SW 62.75 15.083 343.0 20010701 20170923 23321 99999 FAGERHULT SW 57.15 15.667 115.0 20160726 20170923 23330 99999 LJUNGBY SW 56.833 13.917 155.0 19730101 19770630 23340 99999 FINNEBY SW 62.033 15.467 261.0 19730101 19770630 23360 99999 EDSBYN SW 61.383 15.833 163.0 19770701 20040209 23370 99999 NORRHOG SW 62.266999999999996 15.667 320.0 19730101 20160421 23380 99999 EDSBYN SW 61.367 15.717 185.0 19960801 20170923 23420 99999 FRANSTA SW 62.516999999999996 16.183 105.0 19770701 19960103 23430 99999 TORPSHAMMAR SW 62.5 16.283 100.0 19730101 20170923 23451 99999 SJOBO SW 55.633 13.7 32.0 20160726 20170923 23460 99999 DELSBO SW 61.783 16.55 90.0 19770928 20030818 23470 99999 DELSBO SW 61.833 16.55 72.0 20010701 20170923 23490 99999 SILLRE SW 62.766999999999996 16.733 205.0 20010701 20160421 23540 99999 RASTA SW 62.433 17.35 80.0 20010701 20160421 23550 99999 KUGGOREN SW 61.7 17.533 10.0 19960801 20170923 23600 99999 SKELLEFTEA AIRPORT SW ESNS 64.633 21.083000000000002 46.0 19740110 19740110 23610 99999 HARNOSAND SW 62.633 17.95 8.0 19290801 20040910 23631 99999 VASTERA SW 62.516999999999996 17.683 35.0 20070306 20070307 23640 99999 ORNSKOLDSVIK ARPT SW ESNO 63.4 18.967 107.0 19731014 19740213 23650 99999 SUNDSVALL-HARNOSAND SW 62.516999999999996 17.45 8.0 19760801 20050417 23660 99999 SUNDSVALL HARNOSAND SW ESNN 62.528 17.444000000000003 4.9 19770701 20170923 23670 99999 ALNON ISLAND SW 62.367 17.533 33.0 19840529 20051231 23680 99999 BRAMON SW 62.217 17.75 18.0 19870521 20170923 23690 99999 20010918 20011107 23700 99999 GAVLE/SANDVIKEN AFB SW ESSK 60.6 16.95 68.0 19730828 19740123 23710 99999 BORLANGE (SWE-AFB) SW ESSD 60.433 15.5 153.0 19730810 19731213 23750 99999 ESKILSTUNA(SWE-AFB& SW ESSU 59.35 16.717 40.0 19800302 20030313 23760 99999 SODERHAMN (SWE-AFB) SW 61.266999999999996 17.1 36.0 19770701 19980105 23780 99999 SODERHAMN FLYGPLATS SW 61.45 17.167 27.0 20040706 20120103 23810 99999 NORRKOPING/KUNGSANG SW ESSP 58.583 16.25 5.0 19730728 19770630 23820 99999 LUNGO SW 62.65 18.1 18.0 19730824 20170923 23980 99999 KRISTIANSTAD/EVEROD SW ESMK 55.917 14.083 23.0 19730708 19731106 24000 99999 OSTMARK SW 60.35 12.65 310.0 19770701 20050924 24020 99999 SKILLINGMARK SW 59.867 11.967 130.0 19771014 20040224 24030 99999 NAVEN SW 58.7 13.117 53.0 20010701 20170923 24040 99999 ARVIKA SW ESKV 59.667 12.583 75.0 19770701 20040224 24060 99999 BLOMSKOG SW 59.283 12.05 110.0 19770701 20040424 24070 99999 MALUNG A SW 60.683 13.7 306.0 20011124 20170923 24080 99999 BLOMSKOG SW 59.217 12.083 171.0 19960801 20170923 24090 99999 AMAL SW 59.05 12.7 60.0 19770701 20040424 24100 99999 MALUNG SW EVSM 60.683 13.7 308.0 19770701 20110818 24110 99999 ARVIKA SW ESKV 59.676 12.639000000000001 72.2 20010701 20170923 24120 99999 GUSTAVSFORS SW 60.15 13.8 190.0 19350101 20050726 24130 99999 BRATTMON SW 60.75 12.767000000000001 205.0 20010701 20160421 24150 99999 KARLSTAD SOL SW 59.367 13.467 46.0 19850731 20111025 24160 99999 20010718 20031017 24161 99999 MOLKOM SW 59.617 13.732999999999999 93.0 20020924 20020924 24170 99999 PALGRUNDEN SW 58.75 13.15 50.0 19781014 20170920 24180 99999 KARLSTAD SW ESOK 59.445 13.337 107.3 19350101 20170923 24190 99999 KARLSTAD SOL SW 59.367 13.467 46.0 19840520 19840520 24200 99999 MOCKFJARD SW 60.516999999999996 14.95 193.0 20011117 20041211 24220 99999 ASPHYTTAN SW 59.617 14.183 130.0 20031224 20050124 24230 99999 SUNNE SW 59.867 13.117 109.0 20010701 20170923 24240 99999 STALLDALEN SW 59.95 14.95 210.0 19960501 20030319 24260 99999 GUSTAVSFORS SW 60.15 13.8 188.0 20010701 20170923 24280 99999 ATORP SW 59.1 14.367 105.0 19770701 20050927 24283 99999 OREBRO SW ESOE 59.224 15.038 57.3 19910827 20170923 24284 99999 MORA SW ESKM 60.958 14.511 193.2 19910827 20170923 24285 99999 TORSBY SW ESST 60.158 12.991 119.8 20070226 20170923 24290 99999 DAGLOSEN SW 59.667 14.183 133.0 20010701 20170923 24300 99999 BACKA SW 60.917 15.117 227.0 20010711 20020721 24310 99999 KLOTEN SW 59.867 15.25 289.0 20090811 20170923 24320 99999 OREBRO SW 59.233000000000004 15.05 53.0 19960801 20170923 24330 99999 FALUN SW 60.617 15.667 157.0 19350101 20020704 24350 99999 BORLANGE SW ESSD 60.422 15.515 153.3 19790802 20170923 24360 99999 OREBRO/EKEBY (DEAD) SW 59.266999999999996 15.333 33.0 19350101 19820831 24373 99999 ARBOGA SW ESQO 59.387 15.924000000000001 10.1 20070226 20070227 24390 99999 FELLINGSBRO-FINNAKE SW 59.533 15.583 52.0 20020315 20021101 24400 99999 AMOT SW 60.967 16.433 162.0 20010601 20170923 24410 99999 MORA SW 60.967 14.5 197.0 20010701 20170923 24430 99999 ENKOPING SW 59.65 17.117 26.0 19790803 20170923 24440 99999 FOLKARNA SW 60.167 16.317 70.0 19770701 19960506 24460 99999 VASTERAS SW ESOW 59.589 16.634 6.4 19770701 20170923 24480 99999 DUNKER SW 59.2 16.917 33.0 20010620 20041226 24490 99999 ESKILSTUNA A SW 59.383 16.45 15.0 20010701 20170923 24500 99999 EGGEGRUND SW 60.733000000000004 17.567 4.0 19970901 20170923 24510 99999 VASTRA BANKEN (AUT) SW 60.883 17.917 22.0 19771211 20021213 24520 99999 KILSBERGEN-SUTTARBODA SW 59.3 14.9 219.0 20010701 20170923 24530 99999 GAVLE/SANDVIKEN AIR FORCE BASE SW ESSK 60.717 17.167 16.0 19960501 20170923 24540 99999 UTVALNAS SW 60.75 17.35 4.0 19780102 19780615 24560 99999 FILM SW 60.233000000000004 17.9 35.0 19960201 20170923 24580 99999 UPPSALA SW ESCM 59.897 17.589000000000002 20.7 19350101 20170923 24600 99999 ARLANDA SW ESSA 59.652 17.919 41.8 19770630 20170923 24620 99999 UPPSALA UNIVERSITY SW 59.867 17.633 13.0 20061108 20170923 24640 99999 BROMMA SW ESSB 59.354 17.942 14.3 19310101 20170923 24650 99999 STOCKHOLM/BROMMA UA SW 59.35 17.967 22.0 19801004 20021218 24680 99999 STORA SPANSBERGET SW 60.383 15.133 493.0 20010701 20170923 24690 99999 TULLINGE SW ESCN 59.183 17.917 54.0 20010601 20170923 24700 99999 ORSKAR (LGT-H) SW 60.533 18.383 5.0 20010825 20030601 24710 99999 GRUNDKALLEN SW 60.5 18.867 23.0 19770701 20031012 24720 99999 SKEPPMORA SW 60.117 15.117 240.0 20010701 20160421 24730 99999 UNDERSTEN (LGT-H) SW 60.283 18.917 40.0 19890126 19890301 24740 99999 SINGO ISLAND SW 60.167 18.75 14.0 19770701 20040430 24760 99999 FLODA SW 59.05 16.4 33.0 19960801 20170923 24780 99999 19870519 19870519 24800 99999 NORRTALJE/VASBY SW 59.85 18.733 10.0 20010804 20050522 24810 99999 SALA SW 59.917 16.683 58.0 20010701 20170923 24820 99999 KERSTINBO SW 60.266999999999996 16.983 57.0 20010701 20170923 24830 99999 STOCKHOLM-SOL SW 59.35 18.067 30.0 19970901 20140717 24840 99999 STOCKHOLM/OBSERVATORIET SW 59.35 18.067 44.0 20010601 20170923 24850 99999 STOCKHOLM SW 59.35 18.067 52.0 19840521 20170923 24853 99999 SKAVSTA SW ESKN 58.788999999999994 16.912 42.7 19910827 20170923 24860 99999 ADELSO SW 59.367 17.517 6.0 20010701 20170923 24870 99999 SKARPO A SW 59.35 18.733 22.0 19970901 20170923 24880 99999 ORSKAR SW 60.533 18.383 9.0 19960801 20170923 24890 99999 BERGA SW 59.067 18.117 3.0 20010601 20170923 24900 99999 SVANBERGA SW 59.833 18.633 16.0 20010701 20170923 24930 99999 SODERARM SW 59.75 19.417 15.0 20010701 20170923 24940 99999 BJUROKLUBB (LGT-H) SW 64.483 21.583000000000002 36.0 20010930 20060303 24950 99999 SVENSKA BJORN (AUT) SW 59.55 20.017 24.0 19780303 20050111 24960 99999 SVENSKA HOGARNA SW 59.45 19.5 12.0 19770701 20170923 24980 99999 SVENSKA HOGARNA A SW 59.45 19.5 12.0 20100602 20170923 24990 99999 ALMAGRUNDET SW 59.15 19.133 25.0 19970901 20100311 25000 99999 NORDKOSTER SW 58.9 11.0 35.0 19960201 20170923 25010 99999 VADEROARNA SW 58.583 11.067 24.0 19770804 20170923 25020 99999 DALS-ED SW 58.9 12.033 152.0 20020205 20040425 25040 99999 SVARTEBORG SW 58.567 11.55 70.0 19770701 20040425 25050 99999 MASESKAR SW 58.1 11.333 16.0 19960801 20170923 25060 99999 20011225 20031125 25070 99999 HUD SW 58.667 11.417 80.0 20010701 20160421 25080 99999 MASESKAR (LGT-H) SW 58.1 11.35 14.0 19730101 20050525 25100 99999 LJUNGSKILE SW 58.217 11.933 70.0 19350101 20050925 25103 99999 TROLLHATTAN VANERSBORG SW ESGT 58.318000000000005 12.345 41.8 19910827 20170922 25105 99999 LIDKOPING SW ESGL 58.466 13.174000000000001 61.0 20071016 20120830 25110 99999 FLADEN SW 57.217 11.833 10.0 20041102 20051026 25120 99999 SAVE SW ESGP 57.775 11.87 18.0 19350101 20170102 25130 99999 GOTEBORG SW 57.717 12.0 2.0 19960501 20170923 25140 99999 ARVIDSJAUR SW ESNX 65.59 19.282 379.5 19770701 20170923 25150 99999 TORPABRON SW 58.2 12.15 20.0 20010601 20160421 25160 99999 VINGA SW 57.633 11.617 19.0 19960901 20170923 25170 99999 TRUBADUREN SW 57.6 11.633 26.0 19780323 20070611 25180 99999 NIDINGEN SW 57.3 11.9 2.0 19730101 20170923 25190 99999 RINGHALS (AUT) SW 57.266999999999996 12.117 12.0 20020325 20040525 25200 99999 SATENAS SW ESIB 58.426 12.714 55.2 19770701 20170923 25210 99999 BERGARUD SW 58.6 12.417 55.0 19770701 20160421 25220 99999 20010625 20031226 25230 99999 ABRAUR SW 65.983 18.933 374.0 19730101 20050325 25240 99999 MOLLA SW 57.933 13.067 190.0 19730101 20060331 25260 99999 LANDVETTER SW ESGG 57.663000000000004 12.28 154.2 19771003 20170923 25270 99999 GOTEBORG/LANDVETTER SW 57.667 12.290999999999999 164.0 19991219 19991219 25280 99999 TANDADALEN SW 61.167 13.017000000000001 830.0 19770708 20030914 25290 99999 VARBERG & SW 57.117 12.267000000000001 0.0 19840707 19841024 25300 99999 NASHUVUD SW 58.9 13.25 50.0 19770701 19960127 25330 99999 SKARA SW 58.383 13.25 120.0 19350101 20030911 25350 99999 SKOVDE SW ESGR 58.456 13.972999999999999 98.8 19910827 20170923 25360 99999 RANGEDALA SW 57.783 13.167 299.0 19770701 20170923 25361 99999 DALSJOFORS SW 57.717 13.083 259.0 20160726 20170923 25380 99999 HESTRA SW 57.4 13.533 285.0 20031221 20170923 25390 99999 ULLARED SW 57.117 12.783 122.0 20010701 20170923 25400 99999 KROPPEFJALL-GRANAN SW 58.6 12.2 174.0 20010701 20170921 25410 99999 SNAVLUNDA SW 58.967 14.9 144.0 19770701 20030502 25420 99999 HALLUM SW 58.317 13.033 71.0 20010701 20170923 25430 99999 FAGRE SW 58.65 14.133 97.0 20030621 20030621 25440 99999 KARLSBORG SW 58.516999999999996 14.517000000000001 94.0 19770701 20170923 25450 99999 AXSTAL SW 58.567 14.567 93.0 20071104 20170923 25460 99999 GARDSJO SW 58.883 14.383 212.0 20010701 20170923 25480 99999 VISINGSO SW 58.1 14.417 95.0 20010601 20170923 25490 99999 TOMTABACKEN SW 57.5 14.467 356.0 20010701 20170923 25500 99999 JONKOPING SW ESGJ 57.758 14.069 225.9 19310101 20170923 25520 99999 MALEXANDER SW 58.067 15.232999999999999 197.0 20010701 20170923 25530 99999 KYMBO SW 58.083 13.783 220.0 20010701 20160421 25531 99999 HABO SW 57.917 14.083 176.0 20070226 20070226 25540 99999 KETTSTAKA SW 58.717 15.033 225.0 20010701 20170923 25550 99999 NASSJO SW 57.65 14.7 305.0 19770701 20030102 25560 99999 HAGSHULT SW ESMV 57.292 14.137 169.5 19770701 20170923 25570 99999 HORN SW 57.883 15.867 91.0 20010701 20170923 25580 99999 KOLMARDEN-STROMSFORS SW 58.683 16.317 155.0 20010701 20170923 25590 99999 GLADHAMMAR SW 57.7 16.467 31.0 20010701 20170923 25600 99999 ZINKGRUVAN SW 58.8 15.117 215.0 20010620 20061120 25610 99999 KVARN SW 58.65 15.433 10.0 20100503 20170923 25620 99999 MALMEN SW ESCF 58.402 15.526 93.9 19770701 20170923 25625 99999 SAAB SW ESSL 58.406000000000006 15.681 52.4 19951012 20170923 25630 99999 HARSTENA SW 58.25 17.017 18.0 20010701 20170923 25635 99999 ANGELHOLM SW ESDB 56.283 12.833 47.0 20040810 20170923 25640 99999 MALEXANDER SW 58.067 15.232999999999999 200.0 19770701 20050621 25650 99999 HULTSFRED SW ESSF 57.526 15.823 111.6 19790806 20170923 25660 99999 MALILLA SW 57.4 15.817 98.0 19730101 20150128 25670 99999 LANDSORT SW 58.75 17.867 20.0 19960801 20170923 25680 99999 ALLGUNNEN SW 57.067 15.967 115.0 19770707 20010608 25700 99999 NORRKOPING/BRAVALLA SW 58.617 16.117 33.0 19770701 20150129 25710 99999 KUNGSANGEN SW ESSP 58.586000000000006 16.250999999999998 9.8 19770701 20170923 25720 99999 NYKOPING/SKAVST AFB SW 58.783 16.917 42.0 19770701 19801003 25740 99999 NORRKOPING SW 58.583 16.15 41.6 19970901 20170923 25750 99999 OLANDS NORRA UDDE SW 57.367 17.1 4.0 19960801 20170923 25760 99999 GLADHAMMAR SW 57.717 16.467 35.0 19770701 20021102 25800 99999 STABBO (AUT) SW 58.967 18.45 10.0 19870314 20160617 25810 99999 UTO ISLAND SW 58.95 18.267 76.0 20020222 20030815 25820 99999 LANDSORT (LGT-H) SW 58.75 17.867 32.0 19350101 20061025 25830 99999 GUSTAF DALEN SW 58.6 17.467 3.0 19770708 20081126 25840 99999 GOTSKA SANDON SW 58.4 19.2 12.0 19350101 20061231 25860 99999 HARSTENA SW 58.25 17.017 7.0 19770701 20050215 25870 99999 FAROSUND-AR SW 57.917 18.95 13.0 20010701 20170923 25880 99999 FARO ISLAND SW 57.9 19.167 8.0 19770701 20020513 25890 99999 GOTSKA SANDON SW 58.4 19.2 17.0 20010701 20170923 25900 99999 VISBY SW ESSV 57.663000000000004 18.346 50.0 19310101 20170923 25910 99999 VISBY AEROLOGISKA STATION SW 57.65 18.35 47.0 20020315 20170917 25920 99999 OLANDS NORRA UDDE SW 57.367 17.1 4.0 19350101 20020516 25931 99999 VASTERGARN SW 57.433 18.15 2.0 20160726 20170923 25940 99999 STORA KARLSO(LGT-H) SW 57.3 17.967 40.0 20010629 20040712 25950 99999 ROMA SW 57.55 18.433 35.0 20010601 20160421 25960 99999 HERRVIK SW 57.417 18.917 5.0 20020516 20050325 25970 99999 KAJAANI FI 64.283 27.683000000000003 135.9 20020707 20030820 25980 99999 OSTERGARNSHOLM SW 57.433 18.983 5.0 20010701 20170923 25990 99999 NASUDDEN SW 57.067 18.217 5.0 19970901 19970902 26000 99999 GLOMMEN SW 56.933 12.367 7.0 20010626 20050727 26020 99999 HALLANDSASEN SW 56.4 12.95 140.0 20010701 20160421 26030 99999 BROEN SW 56.867 12.667 47.0 20010701 20170918 26040 99999 HALMSTAD SW ESMT 56.691 12.82 30.8 19770701 20170923 26050 99999 HALLANDS VADERO SW 56.45 12.55 10.0 19960801 20170923 26060 99999 KULLEN (LGT-H) SW 56.3 12.45 72.0 19770701 20050901 26070 99999 ANGELHOLM/BARKAKRA SW ESDB 56.283 12.083 18.0 19770701 20150818 26090 99999 RYNGE SW 55.467 13.667 50.0 20010701 20160421 26100 99999 ORJA (AUT) SW 55.867 12.867 11.0 19851009 20051108 26110 99999 HELSINGBORG SW 56.033 12.767000000000001 44.0 19840618 20170923 26140 99999 OSKARSGRUNDET SW 55.6 12.85 10.0 19840515 20050602 26150 99999 FALSTERBO A SW 55.383 12.817 5.0 20090713 20170923 26151 99999 KLAGSHAMN (PORT) SW 55.516999999999996 12.917 2.0 20020826 20020826 26160 99999 FALSTERBO SW 55.383 12.817 5.0 19770701 20170923 26170 99999 MAGLARP (AUT) SW 55.383 13.067 8.0 20020326 20040626 26180 99999 TORUP SW 56.95 13.067 130.0 20080229 20170923 26200 99999 TORUP SW 56.967 13.067 87.0 19960201 20080218 26220 99999 LJUNGBY SW 56.85 13.883 148.0 19770701 20170923 26230 99999 HORBY SW 55.867 13.667 114.0 20010827 20170923 26240 99999 MARKARYD SW 56.467 13.65 118.0 19770701 19870831 26241 99999 MARKARYD SW 56.433 13.6 118.0 20160726 20170923 26250 99999 SKILLINGE SW 55.483000000000004 14.317 5.0 19960801 20170923 26260 99999 OSBY SW 56.367 13.95 85.0 19770701 20170923 26270 99999 LUND-SOL SW 55.717 13.217 86.0 19970901 19970902 26280 99999 HANO SW 56.016999999999996 14.85 60.0 19960801 20170923 26290 99999 HASTVEDA SW 56.283 13.933 10.0 20100503 20170923 26291 99999 LINDEROD SW 55.967 13.85 130.0 20160728 20170918 26300 99999 LJUNGBYHED(SWE-AFB) SW ESDA 56.083 13.232999999999999 52.0 19770701 20030131 26320 99999 UTKLIPPAN SW 55.95 15.7 3.0 20010701 20170923 26330 99999 LUND SOL SW 55.717 13.217 86.0 20160726 20170923 26350 99999 MALMO SW 55.567 13.067 21.0 19350413 20170923 26360 99999 STURUP SW ESMS 55.53 13.372 71.9 19770630 20170923 26380 99999 SMYGEHUK (LGT-H) SW 55.333 13.35 5.0 19770701 20041208 26390 99999 YSTAD & SW 55.433 13.833 34.0 19350101 19830915 26400 99999 VAXJO/URASA(SAFB) SW 56.867 14.8 166.0 19350101 20041115 26410 99999 KRONOBERG SW ESMX 56.928999999999995 14.728 185.9 19790802 20170923 26440 99999 OLANDS SODRA UDDE SW 56.2 16.4 3.0 19960801 20170923 26460 99999 OLANDSBRON LAG SW 56.667 16.467 10.0 20010701 20160421 26480 99999 VAXJO SW 56.85 14.833 200.0 20010601 20170923 26500 99999 HANO ISLAND (LGT-H) SW 56.016999999999996 14.85 55.0 19770701 20050814 26510 99999 KRISTIANSTAD SW ESMK 55.922 14.085999999999999 23.2 19790802 20170923 26520 99999 KRISTIANSTAD SW 56.016999999999996 14.1 10.0 20101117 20160421 26531 99999 RINKABY SW 55.983000000000004 14.3 12.0 20070307 20170531 26540 99999 STENSHUVUD & SW 55.667 14.267000000000001 112.0 19730101 20030803 26560 99999 SANDHAMMAREN(LGT-H) SW 55.383 14.2 5.0 20010925 20020813 26610 99999 KOSTA (ORREFORS) SW 56.833 15.467 232.0 20010916 20170923 26640 99999 RONNEBY SW ESDF 56.266999999999996 15.265 58.2 19770701 20170923 26660 99999 UNGSKAR SW 56.033 15.8 3.0 19770701 20050415 26670 99999 KARLSKRONA-SODERSTJERNA SW 56.15 15.583 8.0 20100503 20170923 26700 99999 KALMAR SW 56.683 16.3 4.0 19960501 20170923 26720 99999 KALMAR SW ESMQ 56.68600000000001 16.288 5.2 19350101 20170923 26750 99999 20030407 20030407 26760 99999 OLANDS SODRA UDDE SW 56.2 16.4 3.0 20010811 20050820 26790 99999 HOBURG A SW 56.917 18.15 39.0 20090610 20170923 26800 99999 HOBURG SW 56.917 18.15 39.0 19351025 20120831 26810 99999 VRETA KLOSTER SW 58.483000000000004 15.517000000000001 52.0 20040529 20070624 26850 99999 OLANDS SODRA GRUND SW 56.067 16.683 30.0 19771126 20070307 27010 99999 KILPISJARVI SAANA FI 69.05 20.85 1009.0 20080115 20170923 27020 99999 INARI KAAMANEN FI 69.133 27.267 156.0 20140108 20170923 27030 99999 ESPOO SEPANKYLA FI 60.2 24.733 31.5 20080115 20150316 27040 99999 HATTULA LEPAA AWS FI 61.117 24.316999999999997 87.0 20080115 20170923 27050 99999 PELKOSENNIEMI PYHATUNTURI FI 67.017 27.217 487.5 20080116 20170923 27060 99999 LOHJA PORLA FI 60.25 24.05 37.0 20080115 20170923 27080 99999 KARVIA ALKKIA FI 62.183 22.8 161.0 20130805 20170923 27100 99999 VESANTO SONKARI FI 62.917 26.416999999999998 120.0 20080116 20170923 27110 99999 VAASA KESKUSTA FI 63.1 21.616999999999997 13.0 20080115 20111102 27130 99999 HAMEENLINNA LAMMI EVO FI 61.217 25.133000000000003 134.0 20130805 20170923 27140 99999 VAALA PELSO FI 64.5 26.44 114.0 20080116 20170923 27150 99999 HYRYNSALM KYTOMAKI FI 64.833 28.233 320.0 20080116 20090706 27160 99999 RANUA KK FI 65.933 26.517 154.0 20080116 20080731 27170 99999 KITTILA POKKA FI 68.167 25.767 272.0 20080115 20170923 27180 99999 PUUMALA KK URHEILUKENTTA FI 61.516999999999996 28.183000000000003 98.0 20130805 20170923 27190 99999 SODANKYLA KOKKA FI 67.817 27.75 240.0 20080116 20170923 27200 99999 KITTILA FI EFKT 67.70100000000001 24.846999999999998 196.3 20130101 20170923 27210 99999 KOKKOLA TANKAR FI 63.95 22.85 6.3 20080116 20170923 27220 99999 INARI SAARISELKA FI 68.417 27.416999999999998 302.0 20080123 20170923 27230 99999 KITTILA LEVITUNTURI FI 67.783 24.85 200.0 20080115 20160222 27240 99999 LUMPARLAND LANGNAS HARBOUR FI 60.117 20.3 11.0 20150216 20170923 27250 99999 HALSUA KANALA PUROLA FI 63.45 24.45 153.0 20080115 20170923 27260 99999 ENONTEKIO NAKKALA FI 68.6 23.583000000000002 374.0 20080115 20170923 27270 99999 ASIKKALA PULKKILANHARJU FI 61.266999999999996 25.517 76.0 20080115 20170923 27280 99999 TAIPALSAARI KYLANIEMI FI 61.3 28.183000000000003 88.0 20080115 20110915 27290 99999 JAMSA HIMOS FI 61.883 25.333000000000002 205.0 20090701 20110804 27300 99999 SAVOLINNA RUUNAVUORI FI 61.833 28.85 157.0 20090701 20110210 27310 99999 PUUMALA KK FI 61.533 28.2 127.0 20090801 20130627 27320 99999 KUOPIO RITONIEMI FI 62.8 27.9 87.0 20090701 20170923 27330 99999 LAPPEENRANTA KONNUNSUO FI 61.033 28.566999999999997 46.4 20090701 20170923 27340 99999 PARIKKALA KOITSANLAHTI FI 61.45 29.467 75.0 20090701 20170923 27350 99999 VIRRAT AIJANNEVA FI 62.333 23.55 139.5 20090701 20170923 27360 99999 JUVA PARTALA FI 61.9 27.883000000000003 111.5 20090701 20170923 27370 99999 TOHOLAMPI LAITALA FI 63.817 24.166999999999998 84.5 20090701 20170923 27380 99999 PYHAJARVI OL OJAKYLA FI 63.733000000000004 25.7 153.3 20090701 20170923 27390 99999 SOTKAMO KUOLANIEMI FI 64.117 28.333000000000002 162.5 20090701 20170923 27410 99999 JOMALA JOMLABY FI 60.183 19.983 11.0 20080116 20170923 27430 99999 KEMIONSAARI VANO FI 59.867 22.2 8.0 20090701 20170923 27440 99999 TAMPERE SATAKUNNANKATU FI 61.5 23.767 92.0 20130805 20170923 27450 99999 SALLA NARUSKA FI 67.167 29.183000000000003 214.7 20090701 20170923 27460 99999 HANKO TULLINIEMI FI 59.817 22.916999999999998 27.5 20090701 20170923 27470 99999 TURKU RAJAKARI FI 60.383 22.1 5.5 20090701 20170923 27480 99999 VARKAUS FI EFVR 62.17100000000001 27.869 87.2 20130101 20160511 27500 99999 HANKO TVARMINNE FI 59.85 23.25 3.0 20090701 20170923 27510 99999 PORI TAHKOLUOTO HARBOUR FI 61.633 21.383000000000003 4.6 20080116 20170923 27520 99999 KRISTIINANKAUPUNKI LIGHTHOUSE FI 62.2 21.166999999999998 21.7 20080115 20170923 27530 99999 KANKAANPAA NIINISALO AIRFIELD FI 61.833 22.467 122.0 20080115 20170923 27540 99999 HAMEENLINNA KATINEN FI 61.0 24.5 85.0 20080115 20170923 27550 99999 YLIVIESKA AIRFIELD FI 64.05 24.717 76.0 20030330 20170923 27560 99999 SALO KARKKA FI 60.367 23.116999999999997 2.0 20080115 20170923 27570 99999 RAASEPORI JUSSARO FI 59.817 23.583000000000002 22.8 20080116 20170923 27580 99999 VIHTI MAASOJA FI 60.417 24.4 44.2 20080115 20170923 27590 99999 PORVOO HARABACKA FI 60.4 25.6 23.5 20080116 20170923 27600 99999 KUUSAMO RUKA TALVIJARVI FI 66.167 29.133000000000003 306.5 20140108 20170923 27610 99999 RAUMA KYLMAPIHLAJA FI 61.15 21.3 29.0 20080115 20170923 27620 99999 KOKEMAKI PEIPOHJA HYRKOLA FI 61.266999999999996 22.25 39.0 20080115 20100528 27630 99999 TAMPERE HARMALA FI 61.467 23.75 86.0 20080115 20170923 27640 99999 KITTILA LOMPOLONVUOMA FI 68.0 24.217 270.0 20140108 20170923 27650 99999 LUHANKA JUDINSALO FI 61.7 25.5 83.2 20080115 20170923 27660 99999 ILOMANTSI POTSONVAARA FI 63.15 31.05 236.5 20120618 20170923 27670 99999 HAMEENLINNA LAMMI PAPPILA FI 61.05 25.05 125.0 20080115 20170923 27680 99999 HEINOLA ASEMANTAUS FI 61.2 26.05 92.0 20080115 20170923 27690 99999 KAUHAJOKI KUJA-KOKKO FI 62.417 22.183000000000003 93.0 20080116 20170923 27700 99999 JUUPAJOKI HYYTIALA FI 61.85 24.283 153.0 20080115 20170923 27710 99999 JOUTSA LEIVONMAKI SAVENAHO FI 61.883 26.1 146.0 20080115 20170923 27720 99999 RANTASALMI RUKKASLUOTO FI 62.067 28.566999999999997 80.0 20080115 20170923 27730 99999 TURKU ARTUKAINEN FI 60.45 22.183000000000003 9.1 20080115 20170923 27770 99999 SALO KIIKALA AIRFIELD FI 60.467 23.65 117.0 20040510 20170923 27780 99999 SAVONLINNA PUNKAHARJU FI 61.8 29.316999999999997 79.5 20080115 20170923 27800 99999 KORSNAS BREDSKARET FI 62.933 21.183000000000003 2.8 20080115 20170923 27810 99999 STROMMINGSBADN FI 62.983000000000004 20.733 3.7 20080115 20170920 27830 99999 LAMMI ISO-EVO FI 61.183 25.033 129.0 20080116 20090201 27870 99999 ALAJARVI MOKSY FI 63.083 24.267 171.4 20080115 20170923 27880 99999 KUOPIO MAANINKA FI 63.15 27.316999999999997 91.3 20080115 20170923 27890 99999 RAUTAVAARA YLA-LUOSTA FI 63.383 28.666999999999998 165.5 20080116 20170923 27900 99999 KUMLINGE KK FI 60.25 20.75 22.5 20030330 20170923 27910 99999 JUUKA NIEMELA FI 63.233000000000004 29.233 115.0 20080115 20170923 27930 99999 LIPERI TUISKAVANLUOTO FI 62.55 29.666999999999998 79.5 20080115 20170923 27940 99999 KIRKKONUMMI MAKILUOTO FI 59.917 24.35 2.0 20080115 20170923 27950 99999 HELSINKI HARMAJA FI 60.1 24.983 6.4 20080116 20170923 27960 99999 LIEKSA LAMPELA FI 63.317 30.05 98.0 20080115 20170923 27970 99999 HAAPAVEST MUSTIKKAMAKI FI 64.15 25.416999999999998 112.0 20080115 20170923 27980 99999 VALTIMO KK FI 63.667 28.833000000000002 115.0 20080115 20170923 27990 99999 KUHMO KALLIOJOKI FI 64.3 30.166999999999998 198.4 20080115 20170923 28000 99999 RAAHE NAHKIAINEN FI 64.617 23.9 23.8 20080116 20170923 28010 99999 ENONTEKIO KILPISJARVI FI 69.05 20.783 482.7 19790601 20170923 28030 99999 SIIKAJOKI REVONLAHTI FI 64.683 25.083000000000002 49.5 20080115 20170923 28040 99999 TAIVALKOSKI KK URHEILUTIE FI 65.583 28.217 197.0 20080115 20170923 28050 99999 UTSJOKI KEVO FI 69.75 27.0 106.3 19730101 20170923 28060 99999 KAAMANEN FI 69.1 27.217 149.0 19080101 19151231 28070 99999 IVALO FI EFIV 68.607 27.405 146.6 19520101 20170923 28075 99999 ENONTEKIO FI EFET 68.363 23.424 306.3 19980419 20170923 28080 99999 INARI SEVETTIJARVI FI 69.583 28.85 132.0 20080116 20110429 28110 99999 KUUSAMO KIUTAKONGAS FI 66.367 29.316999999999997 165.0 20080115 20170923 28120 99999 YLITORNIO MELTOSJARVI FI 66.533 24.65 93.0 20080115 20170923 28130 99999 ROVANIEMI APUKKA FI 66.583 26.017 107.4 20080115 20170923 28140 99999 KEMIJARVI AIRFIELD FI 66.717 27.166999999999998 208.0 20080116 20170923 28150 99999 SAVUKOSKI KK FI 67.283 28.183000000000003 180.0 20080115 20170923 28160 99999 SODANKYLA VUOTSO FI 68.083 27.183000000000003 248.8 20080116 20170923 28170 99999 SAARISELKA KAUNISPAA FI 68.433 27.45 438.0 20080115 20170923 28180 99999 INARI RAJAJOOSEPPI FI 68.483 28.3 254.9 20080115 20170923 28190 99999 SALLA VARRIOTUNTURI FI 67.75 29.616999999999997 360.0 20080115 20170923 28200 99999 MUONIO LAUKUKERO FI 68.067 24.033 762.0 20080115 20170923 28210 99999 MUONIO SAMMALTUNTURI FI 67.967 24.116999999999997 565.5 20080115 20170923 28230 99999 MUONIO ALAMUONIO FI 67.967 23.683000000000003 252.6 19730101 20170923 28234 99999 KITTILA FI 67.7 24.833000000000002 201.0 19920615 20121231 28240 99999 KITTILA KENTTAROVA FI 67.983 24.25 349.5 20080116 20170923 28250 99999 UTSJOKI NUORGAM FI 70.083 27.9 22.0 20080115 20170923 28270 99999 INARI VAYLA FI 69.067 27.5 123.5 20080115 20170923 28280 99999 KAARINA YLTOINEN FI 60.383 22.55 5.2 20080115 20170923 28290 99999 HYVINKAA HYVINKAANKYLA FI 60.6 24.8 87.5 20080115 20170923 28300 99999 KOUVOLA ANJALA FI 60.7 26.816999999999997 33.0 20080115 20170923 28310 99999 VIROLAHTI KOIVUNIEMI FI 60.533 27.666999999999998 5.0 20080115 20170923 28320 99999 TOHMAJARVI KEMIE FI 62.233000000000004 30.35 90.0 20080115 20170923 28330 99999 SEINAJOKI PELMAA FI 62.933 22.483 31.7 20080115 20170923 28340 99999 VIEREMA KAARAKKALA FI 63.833 27.217 207.6 20080116 20170923 28350 99999 INARI NELLIM FI 68.85 28.3 123.0 20080115 20170923 28360 99999 SODANKYLA FI EFSO 67.395 26.619 183.5 19170101 20170923 28440 99999 PELLO CENTRE FI EFPE 66.767 23.967 85.9 19730101 20170923 28450 99999 ROVANIEMI FI EFRO 66.565 25.83 196.6 19730101 20170923 28470 99999 ROVANIEMI RAUTATIEASEMA FI 66.5 25.717 82.3 20080115 20170923 28480 99999 SALLA FI 66.817 28.666999999999998 223.0 19730101 19990730 28490 99999 SALLA KK MYLLYTIE FI 66.833 28.666999999999998 221.7 20010601 20170923 28500 99999 VARKAUS KOLSUANNIEMI FI 62.317 27.9 83.0 20130805 20170923 28510 99999 OULU OULUNSALO PELLONPAA FI 64.933 25.366999999999997 12.0 20120101 20170923 28520 99999 KOKKOLA HOLLIHAKA FI 63.85 23.116999999999997 8.1 20130805 20170923 28570 99999 INARI ANGELI LINTUPUOLISELKA FI 68.9 25.733 285.0 20130805 20170923 28580 99999 INARI KIRAKKAJARVI FI 69.583 28.9 106.0 20130805 20170923 28590 99999 PUOLANKA PALJAKKA FI 64.667 28.05 341.0 20130805 20170923 28600 99999 KITTILA KK FI 67.65 24.9 181.0 20130805 20170923 28620 99999 KEMI AJOS FI 65.667 24.517 3.1 20040831 20170923 28630 99999 KEMI I LIGHTHOUSE FI 65.383 24.1 19.0 20040213 20170923 28640 99999 KEMI TORNIO FI EFKE 65.782 24.599 18.6 19520101 20170923 28650 99999 KUIVANIEMI FI 65.517 25.267 5.0 19730101 19790729 28660 99999 PUDASJARVI AIRFIELD FI 65.417 26.967 120.0 20010601 20170923 28670 99999 PUDASJARVI FI 65.367 27.017 117.0 19730101 20050807 28680 99999 KUUSAMO RUKATUNTURI FI 66.167 29.15 362.8 20080115 20170923 28690 99999 KUUSAMO FI EFKS 65.988 29.239 264.0 19090101 20170923 28720 99999 RAAHE LAPALUOTO HARBOUR FI 64.667 24.4 2.0 20080116 20170923 28730 99999 HAILUOTO MARJANIEMI FI 65.033 24.566999999999997 7.3 20040803 20170923 28740 99999 HAILUOTO ISLAND FI EFHL 65.033 24.8 6.0 19730101 20170923 28744 99999 YLIVIESKA FI EFYL 64.061 24.715999999999998 76.8 19920615 19950608 28750 99999 OULU FI EFOU 64.93 25.355 14.3 19060101 20170923 28760 99999 OULU VIHREASAARI HARBOUR FI 65.0 25.4 3.8 20080115 20170923 28790 99999 SUOMUSSALMI FI EFSU 64.9 29.017 224.0 19730101 20010309 28800 99999 TORNIO TORPPI FI 65.85 24.166999999999998 9.0 20130805 20170923 28810 99999 RANUA AIRFIELD FI 65.983 26.366999999999997 161.0 20130805 20170923 28820 99999 KITTILA MATOROVA FI 68.0 24.233 340.0 20130805 20170923 28830 99999 KAJAANI PETAISENNISKA FI 64.217 27.75 161.5 20130805 20170923 28880 99999 INARI SEITALAASSA FI 69.05 27.75 121.5 20130805 20170923 28890 99999 SUOMUSSALMI PESIO FI 64.933 28.75 225.2 20010919 20170923 28900 99999 UTSJOKI KEVO KEVOJARVI FI 69.75 27.017 76.0 20130805 20170923 28970 99999 KAJAANI FI EFKI 64.285 27.691999999999997 147.2 19160101 20170923 29010 99999 MASSKAR FI 63.733000000000004 22.583000000000002 13.0 19730101 20050822 29020 99999 ULKOKALLA FI 64.333 23.45 4.0 19730101 19770126 29030 99999 KRUUNUPYY FI EFKK 63.721000000000004 23.143 25.3 19601101 20170923 29050 99999 NIVALA FI 63.917 24.967 81.0 19730101 20040329 29060 99999 KEMIONSAARI KEMIO FI 60.167 22.75 12.0 20130805 20170923 29070 99999 KALAJOKI ULKOKALLA FI 64.333 23.45 5.0 19010101 20170923 29100 99999 MUSTASAARI VALASSAARET FI 63.433 21.066999999999997 11.0 19730101 20170923 29110 99999 VAASA FI EFVA 63.051 21.761999999999997 5.8 19170101 20170923 29120 99999 VAASA FI 63.1 21.583000000000002 14.0 19971201 20060119 29130 99999 KAUHAVA FI EFKA 63.126999999999995 23.051 46.0 19730101 20170923 29135 99999 KRUUNUPYY FI 63.717 23.133000000000003 26.0 19980316 20121231 29140 99999 KAUHAVA KK UUNIMAANTIE FI 63.117 23.05 40.0 20130805 20150109 29150 99999 VIITASAARI FI EFVI 63.083 25.866999999999997 132.0 19730101 20170923 29170 99999 KUOPIO FI EFKU 63.007 27.798000000000002 98.5 19060101 20170923 29190 99999 LAPPEENRANTA HIEKKAPAKKA FI 61.2 28.467 77.0 19730101 20170923 29200 99999 PIETARSAARI KALLAN FI 63.75 22.517 19.2 20040803 20170923 29210 99999 MOIKIPAA FI 62.883 21.1 13.0 19740301 20050331 29240 99999 AHTARI MYLLYMAKI FI EFHT 62.533 24.217 159.7 19730101 20170923 29244 99999 ILMAJOKI FI EFIL 62.7 22.833000000000002 92.0 19920520 19920615 29245 99999 SEINAJOKI FI EFSI 62.692 22.831999999999997 91.7 19990114 20170923 29260 99999 PORI RAILWAY STATION FI 61.483000000000004 21.783 10.1 20120101 20170923 29270 99999 MULTIA KARHILA FI 62.516999999999996 24.8 227.0 20130805 20170923 29280 99999 JOENSUU LINNUNLAHTI FI 62.6 29.717 81.0 20130805 20170923 29290 99999 JOENSUU FI EFJO 62.663000000000004 29.608 121.3 19520101 20170923 29310 99999 KASKINEN SALGRUND FI 62.333 21.183000000000003 5.0 20130805 20170923 29340 99999 HELSINKI RAILWAY STATION SQ FI 60.167 24.95 3.0 20120618 20150924 29350 99999 JYVASKYLA FI EFJY 62.398999999999994 25.678 139.9 19170101 20170923 29370 99999 KOKEMAKI TULKKILA FI 61.25 22.35 39.0 20120618 20170923 29390 99999 ILOMANTSI MEKRIJARVI FI 62.766999999999996 30.983 156.5 20030330 20170923 29420 99999 KANKAANPAA NIINISALO PUOLVOIM FI 61.833 22.467 124.8 19520101 20170923 29430 99999 TAMPERE SIILINKARI FI 61.516999999999996 23.75 98.0 19730101 20170923 29440 99999 TAMPERE PIRKKALA FI EFTP 61.413999999999994 23.604 118.9 19060101 20170923 29450 99999 HALLI FI EFHA 61.856 24.787 146.0 19730101 20170923 29460 99999 JAMSA HALLI LENTOASEMANTIE FI 61.867 24.816999999999997 144.0 20120618 20170923 29470 99999 MIKKELI FI EFMI 61.687 27.201999999999998 100.3 19730101 20170923 29474 99999 VARKAUS FI 62.167 27.866999999999997 89.0 19920615 20121231 29480 99999 SAVONLINNA FI EFSA 61.943000000000005 28.945 94.8 19840813 20170923 29490 99999 SOMERO SALKOLA FI 60.65 23.8 143.0 19730101 20170923 29500 99999 PARAINEN FAGERHOLM FI 60.117 21.7 4.5 19010101 20170923 29510 99999 19730101 19740810 29520 99999 PORI FI EFPO 61.461999999999996 21.8 13.4 19520101 20170923 29530 99999 HAMEENLINNA FI 60.983000000000004 24.45 92.0 19730101 19770119 29550 99999 KUOPIO SAVILAHTI FI 62.9 27.633000000000003 88.3 20120618 20170923 29560 99999 KOUVOLA UTTI LENTOPORTINTIE FI 60.883 26.933000000000003 99.0 20130805 20170923 29570 99999 VAASA KLEMETTILA FI 63.1 21.639 9.0 20120101 20170923 29580 99999 LAPPEENRANTA FI EFLP 61.045 28.144000000000002 106.4 19730101 20170923 29590 99999 LAPPEENRANTA LEPOLA FI 61.05 28.217 104.4 20120618 20170923 29600 99999 RAIJALA FI 61.183 22.616999999999997 51.0 19010101 19051231 29610 99999 KUUSKAJASKARI FI 61.133 21.366999999999997 10.0 19730101 20050801 29630 99999 JOKIOINEN FI 60.817 23.5 103.0 19570402 20170923 29640 99999 KUSTAVI ISOKARI FI 60.717 21.033 3.9 20040803 20170923 29650 99999 LAHTI LAUNE FI 60.967 25.633000000000003 78.7 19730101 20170923 29660 99999 UTTI FI EFUT 60.896 26.938000000000002 103.3 19730101 20170923 29670 99999 KOTKA HAAPASAARI FI 60.283 27.183000000000003 5.5 20040803 20170923 29680 99999 KOTKA KIRKONMAA FI 60.383 27.05 27.9 20120618 20130830 29700 99999 MARIEHAMN FI EFMA 60.122 19.898 5.2 19170101 20170923 29710 99999 JOMALA FI 60.15 19.867 10.0 19971201 20070102 29720 99999 TURKU FI EFTU 60.513999999999996 22.263 49.1 19010101 20170923 29730 99999 SUOMUSJARVI FI 60.4 23.767 86.0 19730101 20031017 29740 99999 HELSINKI VANTAA FI EFHK 60.317 24.963 54.6 19520101 20170923 29750 99999 HELSINKI MALMI FI EFHF 60.255 25.043000000000003 17.4 19170101 20170306 29760 99999 KOTKA RANKKI FI 60.383 26.967 13.1 19520101 20170923 29780 99999 HELSINKI KAISANIEMI FI 60.183 24.95 4.0 20080115 20170923 29790 99999 KOKAR BOGSKAR FI 59.5 20.35 16.0 20040803 20170923 29800 99999 LEMLAND NYHAMN FI 59.967 19.95 10.0 19730101 20170923 29810 99999 PARAINEN UTO FI 59.783 21.366999999999997 6.8 19010101 20170923 29820 99999 HANKO RUSSARO FI 59.766999999999996 22.95 6.5 19060101 20170923 29830 99999 NURMIJARVI GEOPHSICAL OBSERVATORY FI 60.516999999999996 24.65 113.0 20120618 20170923 29840 99999 INKOO BAGASKAR FI 59.933 24.017 12.0 19730101 20170923 29851 99999 ESPOO TAPIOLA FI 60.183 24.783 7.5 20150217 20170923 29860 99999 KATAJALUOTO FI 60.1 24.916999999999998 7.0 19730101 19850520 29870 99999 PORVOO KALLBADAGRUND FI 59.983000000000004 25.6 23.3 19821001 20170923 29880 99999 ISOSAARI FI 60.1 25.066999999999997 7.0 19841001 20081001 29890 99999 HELSINKI LIGHTHOUSE FI 59.95 24.933000000000003 20.2 20120618 20170923 29900 99999 KUMLINGE ISLAND FI 60.3 20.75 5.0 19841001 20030222 29910 99999 PORVOO EMASALO FI 60.2 25.633000000000003 27.1 20040803 20170923 29920 99999 LOVIISA ORRENGRUND FI 60.283 26.45 3.5 20040803 20170923 29930 99999 HAMMARLAND MARKET FI 60.3 19.133 15.1 20040213 20170923 29960 99999 RYMATTYLA RAULA FI 60.4 21.95 7.0 20080116 20120413 29980 99999 HELSINKI KUMPULA FI 60.2 24.967 24.0 20130805 20170923 30010 99999 MUCKLE FLUGGA UK 60.85 -0.883 53.0 19800421 20060115 30020 99999 BALTASOUND NO.2 UK EGPW 60.75 -0.85 15.0 19730101 20170923 30030 99999 SUMBURGH UK EGPB 59.879 -1.296 6.1 19770119 20170923 30031 99999 19730102 19750810 30040 99999 COLLAFIRTH HILL UK 60.533 -1.383 228.0 19790208 20050731 30050 99999 LERWICK UK 60.133 -1.183 84.0 19291001 20170923 30060 99999 SELLA NESS UK 60.45 -1.2670000000000001 7.0 19810501 20160211 30064 99999 SCATSTA UK EGPM 60.433 -1.296 24.7 19811015 20170923 30065 99999 UNST ISLAND UK 60.733000000000004 -0.8170000000000001 285.0 19811124 20021130 30070 99999 MUCKLE HOLM UK 60.583 -1.2670000000000001 20.0 19811124 20050505 30080 99999 FAIR ISLE UK 59.533 -1.633 57.0 19730103 20170923 30090 99999 NORTH RONALDSAY ISL UK 59.367 -2.417 11.0 19781003 20060410 30100 99999 SULE SKERRY UK 59.083 -4.4 12.0 19730101 20170923 30110 99999 NORTH RONA ISLAND UK 59.117 -5.817 103.0 19900901 20090320 30130 99999 FOULA UK 60.15 -2.0669999999999997 22.0 19840614 20050129 30140 99999 FOULA NO2 UK 60.117 -2.0669999999999997 13.0 19840801 20160426 30170 99999 KIRKWALL UK EGPA 58.958 -2.905 15.5 19730101 20170923 30180 99999 WOODVALE UK EGOW 53.582 -3.056 11.3 20050620 20170920 30200 99999 SAINT KILDA ISLAND UK 57.817 -8.567 8.0 19750402 19900321 30210 99999 LOCHBOISDALE UK 57.15 -7.317 6.0 19730103 20050920 30220 99999 BENBECULA UK EGPL 57.481 -7.3629999999999995 5.8 19730101 20170923 30230 99999 SOUTH UIST RANGE UK 57.333 -7.367000000000001 4.0 19920301 20170923 30240 99999 HYSKEIR (LGT-H) UK 56.967 -6.683 10.0 19860501 20051002 30250 99999 BUTT OF LEWIS (LH) UK 58.516999999999996 -6.267 23.0 19830804 20051013 30260 99999 STORNOWAY UK EGPO 58.216 -6.331 7.9 19291001 20170923 30270 99999 WATERSTEIN UK 57.433 -6.767 83.0 19771005 20060203 30280 99999 NEIST POINT (LGT-H) UK 57.417 -6.7829999999999995 21.0 19801001 19900221 30290 99999 ARDNAMURCHAN(LGT-H) UK 56.733000000000004 -6.2170000000000005 12.0 19730101 20021027 30300 99999 SAASAIG UK 57.1 -5.832999999999999 9.0 19730104 19761003 30310 99999 LOCH GLASCARNOCH UK 57.717 -4.883 264.0 19921022 20170923 30320 99999 RUBH RE UK 57.867 -5.817 16.0 19730101 19780327 30330 99999 DIABAIG UK 57.583 -5.7 60.0 19801001 20021025 30340 99999 AULTBEA NO2 UK 57.867 -5.632999999999999 10.0 19861001 20170923 30350 99999 BARRA ISLAND UK EGPR 57.033 -7.45 3.0 19870624 20070710 30360 99999 BROADFORD UK 57.25 -5.867000000000001 8.0 19880301 19910513 30370 99999 SKYE/LUSA UK 57.25 -5.8 18.0 19980301 20170502 30380 99999 FORT WILLIAM UK 56.833 -5.1 20.0 19730101 20020610 30390 99999 BEALACH NA BA NO2 UK 57.417 -5.683 773.0 19890301 20170923 30400 99999 KILMORY UK 56.766999999999996 -6.05 45.0 19890801 20040323 30410 99999 AONACH MOR UK 56.817 -4.967 1130.0 19920302 20170923 30430 99999 LOCHCARRON UK 57.4 -5.483 32.0 20030330 20031107 30440 99999 ALTNAHARRA NO2 UK 58.283 -4.433 80.0 19930302 20170923 30460 99999 LOCHLUICHART UK 57.617 -4.817 88.0 20010915 20041031 30470 99999 TULLOCH BRIDGE UK 56.867 -4.7 249.0 19830805 20170923 30490 99999 CAPE WRATH (LGT-H) UK 58.633 -5.0 112.0 19730101 20011219 30500 99999 FORT AUGUSTUS UK 57.133 -4.717 41.0 19730101 20050709 30520 99999 SHIN-IN-SUTHERLAND UK 57.95 -4.417 7.0 19730101 19800110 30521 99999 SHIN UK 57.95 -4.417 7.0 20070307 20070307 30530 99999 NAIRN UK 57.6 -3.867 52.0 19291001 19301231 30540 99999 STRATHY PT. (LGT-H) UK 58.6 -4.0169999999999995 32.0 19780211 20011104 30550 99999 RACKWICK UK 58.867 -3.383 18.0 19840609 20080429 30560 99999 DALWHINNIE UK 56.933 -4.2330000000000005 358.0 19310301 19390930 30570 99999 FOYERS UK 57.266999999999996 -4.4830000000000005 21.0 19820403 20031223 30580 99999 INVERGORDON HARBOUR UK 57.683 -4.167 3.0 19840614 20021129 30590 99999 INVERNESS UK EGPE 57.543 -4.048 9.4 19730102 20170923 30600 99999 TUMMEL BRIDGE UK 56.7 -4.0169999999999995 145.0 19730101 20020117 30610 99999 TARBAT NESS (CAPE) UK 57.867 -3.767 18.0 19730101 20050515 30620 99999 TAIN RANGE (SAWS) UK EGQA 57.817 -3.967 4.0 19891019 20170923 30630 99999 AVIEMORE UK 57.2 -3.833 228.0 19821201 20170923 30640 99999 GLENMORE LODGE UK 57.167 -3.7 341.0 19730101 19800530 30650 99999 CAIRNGORM SUMMIT UK 57.117 -3.633 1245.0 19850106 20170923 30660 99999 KINLOSS UK EGQK 57.648999999999994 -3.5610000000000004 6.7 19730101 20170923 30670 99999 FEALAR LODGE UK 56.9 -3.633 560.0 19861101 20051021 30680 99999 LOSSIEMOUTH UK EGQS 57.705 -3.339 12.8 19730103 20170923 30700 99999 GLENLIVET UK 57.35 -3.35 213.0 19730101 20080801 30710 99999 GRANTOWN-ON-SPEY UK 57.333 -3.633 335.0 19810107 20051025 30720 99999 CAIRNWELL UK 56.883 -3.417 933.0 19971201 20170923 30730 99999 19730102 19731231 30731 99999 CRATHIE DISTILLERY UK 57.033 -3.217 317.0 20070306 20070307 30740 99999 SCRABSTER HARBOUR UK 58.617 -3.55 10.0 19951001 20041015 30750 99999 WICK UK EGPC 58.458999999999996 -3.093 38.4 19291001 20170923 30760 99999 TEMP FOR 03075 UK 58.45 -3.1 39.0 19930313 19990425 30770 99999 LYBSTER UK 58.317 -3.283 85.0 19941001 20051112 30800 99999 ABOYNE NO2 UK 57.083 -2.833 140.0 19890412 20170923 30820 99999 SPITTAL OF GLENSHEE UK 56.766999999999996 -3.383 308.0 20040611 20060404 30840 99999 KIRKMICHAEL UK 56.717 -3.517 266.0 20040227 20040227 30850 99999 INCHMARLO UK 57.067 -2.533 80.0 19900301 20070301 30880 99999 INVERBERVIE NO.2 UK 56.85 -2.267 134.0 19871202 20170923 30890 99999 USAN UK 56.683 -2.45 30.0 19730308 19790709 30900 99999 WINDY HEAD UK 57.633 -2.233 231.0 19730102 19890107 30910 99999 DYCE UK EGPD 57.202 -2.198 65.5 19260602 20170923 30920 99999 PETERHEAD HARBOUR UK 57.5 -1.767 15.0 19781101 20160211 30930 99999 FRASERBURGH (LGT-H) UK 57.683 -2.0 19.0 19730308 19900718 30940 99999 ROSEHEARTY UK 57.7 -2.117 7.0 19951001 20120227 30960 99999 BRIDGE OF CLAY UK 56.65 -3.383 175.0 20010916 20040811 30970 99999 ENOCHDHU UK 56.75 -6.882999999999999 4.0 20030330 20050528 31000 99999 TIREE UK EGPU 56.498999999999995 -6.869 11.6 19291001 20170923 31020 99999 ORSAY (LGT-H) UK 55.667 -6.5 23.0 19840614 20050529 31050 99999 ISLAY: PORT ELLEN UK 55.683 -6.25 17.0 20010729 20170923 31051 99999 ISLAY (PORT ELLEN) UK 55.683 -6.25 18.0 19730401 19880105 31053 99999 ISLAY (PORT ELLEN) UK EGPI 55.683 -6.25 18.0 19880107 19880112 31060 99999 RHUVAAL UK 55.917 -6.132999999999999 20.0 19730101 19820623 31070 99999 DHU LOCH UK 55.817 -5.1 83.0 19730101 19850125 31110 99999 MACHRIHANISH UK EGQJ 55.433 -5.7 10.0 19730101 20170923 31140 99999 OBAN UK EGEO 56.417 -5.4670000000000005 4.0 19780902 20170923 31150 99999 19730115 19750612 31160 99999 DALMALLY STRONMILCHAN UK 56.4 -5.0 40.0 20010915 20090331 31180 99999 CORSEWALL PT. (LH) UK 55.0 -5.15 15.0 19730101 20050731 31190 99999 PORTPATRICK UK 54.85 -5.132999999999999 30.0 19730308 19751214 31200 99999 LOCHRANZA NO3 UK 55.7 -5.3 46.0 19880801 20081020 31210 99999 KILDONAN UK 55.433 -5.1 18.0 19730302 20030718 31220 99999 PLADDA (LGT-H) UK 55.417 -5.117 12.0 19861002 20040531 31290 99999 ARDROSSAN UK 55.65 -4.817 9.0 19730101 20010629 31300 99999 WEST FREUGH UK 54.85 -4.95 17.0 19730103 20070307 31310 99999 MULL OF GALLOWAY LH UK 54.633 -4.85 78.0 19730101 20050828 31320 99999 WEST FREUGH (AUT) UK EGOY 54.85 -4.95 12.0 19830804 20170923 31330 99999 SLOY UK 56.25 -4.717 6.0 19730101 20040814 31340 99999 GLASGOW BISHOPTON UK 55.9 -4.533 59.0 20030330 20170923 31350 99999 PRESTWICK UK EGPK 55.50899999999999 -4.587 19.8 19440101 20170923 31360 99999 PRESTWICK RNAS UK 55.516999999999996 -4.583 27.0 19930401 20170923 31370 99999 WHITHORN UK 54.7 -4.417 40.0 19800910 19940509 31380 99999 GREENOCK MRCC UK 55.967 -4.8 5.0 19870306 20070719 31390 99999 SAUGHALL UK 55.6 -4.217 223.0 19971201 20080731 31394 99999 CAMPBELTOWN UK EGEC 55.437 -5.686 12.8 19990118 20170922 31400 99999 GLASGOW UK EGPF 55.872 -4.433 7.9 19291001 20170923 31401 99999 MAGNUS OIL PLATFORM UK EGRE 61.617 1.3 470.0 20120301 20170923 31402 99999 BRUCE OIL PLATFORM UK EGRK 59.733000000000004 1.6669999999999998 470.0 20120301 20170923 31403 99999 HARDING OIL PLATFORM UK EGRL 59.266999999999996 1.5 470.0 20120301 20170923 31404 99999 MILLER OIL PLATFORM UK EGRM 58.717 1.4 470.0 20120301 20170812 31405 99999 ANDREW OIL PLATFORM UK EGRO 58.033 1.4 470.0 20120301 20170923 31406 99999 MUNGO OIL PLATFORM UK EGRP 57.367 1.983 470.0 20120301 20170923 31407 99999 MARNOCK OIL PLATFORM UK EGRS 57.283 1.65 470.0 20120301 20170923 31408 99999 RAVENSPURN N OIL PLATFORM UK EGRV 54.016999999999996 1.1 470.0 20120301 20170819 31409 99999 WEST SOLE OIL PLATFORM UK EGRW 53.7 1.133 470.0 20120301 20170923 31411 99999 SCHIEHALLION FPSO OIL PLATFORM UK EGRI 60.35 -4.05 470.0 20130312 20130326 31412 99999 CLAIR OIL PLATFORM UK EGRF 60.683 -2.533 470.0 20130312 20170923 31413 99999 CLEETON OIL PLATFORM UK EGRT 54.033 0.7170000000000001 470.0 20130312 20170923 31430 99999 KILLIN UK 56.483000000000004 -4.35 114.0 19730101 19890908 31440 99999 STRATHALLEN AIRFIELD UK 56.317 -3.733 35.0 19890502 20170923 31450 99999 GLASGOW WEA. CEN. UK 55.867 -4.2669999999999995 17.0 19730101 19850331 31470 99999 GLENLEE UK 55.1 -4.183 55.0 19730101 19901031 31480 99999 GLEN OGLE UK 56.417 -4.317 564.0 19961101 20170923 31490 99999 BECAME STN 031491 UK 56.067 -4.05 335.0 19730101 19811231 31500 99999 CRAWFORDJOHN UK 55.5 -3.767 274.0 19730101 19830730 31520 99999 SALSBURGH UK 55.867 -3.867 275.0 19730101 20040520 31530 99999 DUNDRENNAN UK 54.8 -4.0 113.0 19830804 20170923 31540 99999 DUMFRIES/DRUNGANS UK 55.05 -3.65 16.0 19730101 20040419 31550 99999 DRUMALBIN UK 55.617 -3.733 245.0 19910502 20170923 31560 99999 PITREAVIE UK EGRQ 56.05 -3.417 40.0 19820318 19850801 31570 99999 PERTH/SCONE UK 56.433 -3.367 121.0 19810330 19900402 31571 99999 PERTH/SCONE UK 56.433 -3.367 121.0 19730103 19810327 31573 99999 PERTH/SCONE UK EGPT 56.45 -3.367 121.0 19900424 19930701 31580 99999 CHARTERHALL UK 55.7 -2.383 111.0 19871002 20170923 31590 99999 INCHKEITH UK 56.033 -3.133 58.0 19291001 20160906 31600 99999 EDINBURGH UK EGPH 55.95 -3.373 41.1 19730101 20170923 31610 99999 EDDLESTON UK 55.7 -3.217 195.0 19730108 20060316 31620 99999 ESKDALEMUIR UK 55.317 -3.2 242.0 19291001 20170923 31634 99999 DUNDEE UK EGPN 56.452 -3.0260000000000002 5.2 19830404 20170923 31640 99999 BIGGAR UK 55.6 -3.55 206.0 20010916 20050529 31650 99999 SPADEADAM UK EGOM 55.05 -2.55 325.0 19920911 20170923 31660 99999 EDINBURGH GOGARBANK UK 55.933 -3.35 57.0 20030330 20170923 31670 99999 BASS ROCK (LGT-H) UK 56.083 -2.633 38.0 19761001 20010726 31680 99999 GALASHIELS UK 55.6 -2.9 146.0 19730101 20050523 31700 99999 SHANWELL UK 56.433 -2.867 5.0 19810929 20050821 31710 99999 LEUCHARS UK EGQL 56.373000000000005 -2.8680000000000003 11.6 19291001 20170923 31740 99999 FIFE NESS UK 56.3 -2.583 12.0 19780501 20071101 31750 99999 19730105 19760917 31760 99999 CARTERHOUSE UK 55.367 -2.517 308.0 19891001 20081031 31770 99999 BELL ROCK (LGT-H) UK 56.433 -2.4 21.0 19730101 19901008 31850 99999 ST. ABB'S HEAD (LH) UK 55.917 -2.133 75.0 19370701 19920127 31900 99999 SEAHOUSES UK 55.583 -1.65 11.0 19730308 19790629 32040 99999 ISLE OF MAN IM EGNS 54.083 -4.624 16.8 19730101 20170923 32050 99999 CALF OF MAN (AUX) IM 54.05 -4.833 93.0 19880504 20040626 32070 99999 SNAEFELL-ISLE UK 54.266999999999996 -4.467 615.0 19730104 20051011 32080 99999 POINT OF AYRE (LH) IM 54.417 -4.367 9.0 19350630 20030221 32090 99999 DRUMBURGH UK 54.933 -3.15 7.0 19951001 20050409 32100 99999 ST BEES HEAD NO.2 UK 54.516999999999996 -3.6 123.0 19840614 20170923 32110 99999 ST. BEES HEAD (LH) UK 54.516999999999996 -3.633 94.0 19730101 19870731 32120 99999 KESWICK UK 54.617 -3.167 81.0 19840614 20170923 32130 99999 ESKMEALS UK 54.317 -3.4 9.0 19730102 20010402 32140 99999 WALNEY ISLAND UK EGNL 54.131 -3.264 14.3 19830804 20170923 32145 99999 WARTON UK EGNO 53.745 -2.883 16.8 20111130 20170922 32150 99999 ASPATRIA UK 54.766999999999996 -3.3169999999999997 62.0 19771108 20070307 32160 99999 BROMFIELD UK 54.8 -3.283 20.0 19730101 19780323 32200 99999 CARLISLE UK 54.933 -2.967 27.0 19880601 20170923 32210 99999 CAUSEWAY FOOT UK 54.583 -3.083 160.0 19730809 19771101 32220 99999 CARLISLE UK EGNC 54.938 -2.8089999999999997 57.9 19730101 20170922 32230 99999 RYDAL UK 54.45 -2.983 67.0 19750426 19870112 32240 99999 SPADEADAM NO2 UK 55.05 -2.55 286.0 19921201 20170923 32250 99999 SHAP UK 54.5 -2.6830000000000003 255.0 19781101 20170923 32260 99999 WARCOP RANGE UK 54.567 -2.417 227.0 19830808 20170923 32270 99999 GREAT DUN FELL NO2 UK 54.683 -2.45 847.0 19941001 20170923 32280 99999 WHINS POND (AUX) UK 54.667 -2.7 125.0 19840614 20040128 32290 99999 GREAT DUN FELL UK 54.7 -2.45 847.0 19730101 20030731 32300 99999 REDESDALE CAMP UK 55.283 -2.283 212.0 19830804 20170923 32330 99999 RIBBLEHEAD UK 54.217 -2.333 312.0 19751218 19791202 32350 99999 BOLTSHOPE PARK UK 54.817 -2.083 434.0 19941101 20070331 32370 99999 FOREST UK 54.65 -2.2 381.0 19730101 19790404 32380 99999 ALBEMARLE UK 55.016999999999996 -1.867 146.0 20030330 20170923 32400 99999 BOULMER UK EGQM 55.424 -1.6030000000000002 21.3 19751001 20170923 32410 99999 LONG FRAMLINGTON UK 55.3 -1.8 158.0 19891201 20050822 32420 99999 BURNHOPE UK 54.817 -1.7169999999999999 244.0 19730101 20020616 32431 99999 NEWCASTLE/WOOLSING. UK 55.033 -1.683 81.0 19730101 19880105 32433 99999 NEWCASTLE UK EGNT 55.038000000000004 -1.692 81.1 19880105 20170923 32440 99999 19730101 19751110 32450 99999 NEWCASTLE WX CENTRE UK 54.967 -1.617 50.0 19730101 19901226 32460 99999 NEWCASTLE WEATHER CENTRE UK 54.983000000000004 -1.6 52.0 19901101 20051004 32490 99999 SUNDERLAND UNIVERSITY UK 54.983000000000004 -1.633 70.0 19890301 20010530 32570 99999 LEEMING UK EGXE 54.292 -1.535 40.2 19730101 20170923 32610 99999 DISHFORTH UK EGXD 54.137 -1.42 35.7 19920501 20160606 32620 99999 TYNEMOUTH UK 55.016999999999996 -1.4169999999999998 30.0 19260101 20050111 32635 99999 DURHAM TEES VALLEY AIRPORT UK EGNV 54.50899999999999 -1.429 36.6 19730101 20170923 32640 99999 19730101 19731005 32643 99999 TOPCLIFFE UK EGXZ 54.206 -1.382 28.0 19940720 20170923 32650 99999 TOPCLIFFE UK 54.2 -1.383 28.0 19970501 20170923 32660 99999 LINTON ON OUSE UK EGXU 54.049 -1.253 16.2 19730101 20170923 32690 99999 TEESMOUTH UK 54.65 -1.133 12.0 19750426 19840107 32700 99999 19730101 19750331 32710 99999 TEESMOUTH (AUX) UK 54.62 -1.13 12.0 19920401 20060207 32750 99999 LOFTUS UK 54.567 -0.867 159.0 19961101 20170923 32800 99999 CATTERICK UK 54.367 -1.617 53.0 19311113 19390930 32810 99999 FYLINGDALES UK 54.367 -0.667 262.0 19730101 20170923 32820 99999 WHITBY UK 54.483000000000004 -0.6 60.0 19730118 20050304 32910 99999 FLAMBOROUGH HEAD UK 54.117 -0.083 46.0 19730308 19870531 32920 99999 BRIDLINGTON MRSC UK 54.1 -0.16699999999999998 19.0 19870430 20170923 32930 99999 COWDEN UK 53.85 -0.1 15.0 19971201 20031006 33010 99999 MONA UK 53.266999999999996 -4.367 62.0 19291001 20170923 33020 99999 VALLEY UK EGOV 53.248000000000005 -4.535 11.3 19260606 20170923 33030 99999 AMLWCH UK 53.383 -4.367 114.0 19880501 19991214 33050 99999 CAPEL CURIG NO3 UK 53.1 -3.9330000000000003 215.0 19941001 20170923 33080 99999 SNOWDON SUMMIT UK 53.067 -4.083 1065.0 19880222 20051215 33090 99999 YSPYTTY IFAN UK 53.033 -3.7 262.0 19730101 19850930 33110 99999 HOLYHEAD UK 53.317 -4.617 8.0 19291001 19390930 33120 99999 RHYL UK 53.333 -3.5 15.0 19730308 20041105 33130 99999 RHYL NO2 UK 53.25 -3.5 76.0 19861001 20170923 33140 99999 MOEL-Y-CRIO UK 53.217 -3.217 263.0 19860501 20050919 33150 99999 FORMBY (DEAD) UK 53.55 -3.1 9.0 19730308 19821004 33160 99999 CROSBY UK 53.5 -3.0669999999999997 9.0 19840614 20170923 33170 99999 WOODVALE(RAF) UK 52.567 -3.05 11.0 20031010 20050906 33180 99999 BLACKPOOL UK EGNH 53.772 -3.029 10.4 19730101 20170923 33190 99999 FLEETWOOD UK 53.917 -3.033 8.0 19730212 19870223 33210 99999 HAWARDEN UK EGNR 53.178000000000004 -2.978 13.7 19850904 20170923 33220 99999 AUGHTON UK 53.55 -2.917 56.0 19780801 20020215 33230 99999 LIVERPOOL AIRPORT UK 53.333 -2.85 26.0 19291001 19900403 33233 99999 LIVERPOOL UK EGGP 53.333999999999996 -2.85 24.4 19900424 20170923 33290 99999 WINTER HILL UK 53.617 -2.517 440.0 19730101 20000103 33300 99999 LEEK THORNCLIFFE UK 53.133 -1.983 299.0 20040706 20170923 33340 99999 MANCHESTER UK EGCC 53.354 -2.275 78.3 19330930 20170923 33350 99999 MANCHESTER/BARTON UK EGCB 53.483000000000004 -2.25 37.0 19730101 19860729 33380 99999 CELLARHEAD UK 53.033 -2.083 228.0 19750426 20030812 33390 99999 SKIPTON NO2 UK 53.967 -2.033 153.0 19730101 20081031 33400 99999 HOLME MOSS (AUT) UK 53.533 -1.883 522.0 19781124 20021127 33410 99999 FLASH-IN-STAFFORD UK 53.2 -1.9669999999999999 457.0 19730101 19790929 33420 99999 HOLME MOSS UK 53.533 -1.867 524.0 19730101 19960305 33430 99999 HUDDERSFIELD/OAKES UK 53.65 -1.8330000000000002 232.0 19730101 19860930 33440 99999 BINGLEY NO.2 UK 53.817 -1.867 267.0 19730101 20170923 33450 99999 EMLEY MOOR UK 53.617 -1.6669999999999998 259.0 19730101 20100429 33460 99999 EMLEY MOOR NO 2 UK 53.6 -1.6669999999999998 267.0 19761221 20170923 33461 99999 19730101 19750802 33463 99999 LEEDS BRADFORD UK EGNM 53.86600000000001 -1.661 207.6 19880105 20170923 33464 99999 PENZANCE HELIPORT UK EGHK 50.12 -5.52 4.0 20050105 20121031 33465 99999 NEWQUAY CORNWALL UK 50.433 -4.9830000000000005 119.0 20090201 20170923 33470 99999 LEEDS WEATHER CTR UK 53.8 -1.55 47.0 19860101 20030902 33475 99999 SHEFFIELD CITY UK EGSY 53.394 -1.3880000000000001 70.4 19980408 20020914 33480 99999 WOODFORD UK 53.333 -2.15 88.0 19291001 20120528 33510 99999 ROSTHERNE NO 2 UK 53.367 -2.383 35.0 20121130 20170923 33540 99999 NOTTINGHAM/WATNALL UK 53.0 -1.25 117.0 19730101 20170923 33550 99999 CHURCH FENTON UK EGXG 53.833999999999996 -1.196 8.8 19730101 20131219 33600 99999 FINNINGLEY(RAF) UK 53.483000000000004 -1.0 17.0 19730101 19951001 33631 99999 SYERSTON UK 53.016999999999996 -0.917 63.0 20070307 20070307 33700 99999 HEMSWELL UK 53.4 -0.5670000000000001 63.0 19490101 19541231 33723 99999 BARKSTON HEATH UK EGYE 52.961999999999996 -0.562 111.9 19951129 20170922 33730 99999 SCAMPTON UK EGXP 53.308 -0.551 61.6 19730101 20170923 33735 99999 HUMBERSIDE UK EGNJ 53.574 -0.35100000000000003 36.9 19750109 20170923 33770 99999 WADDINGTON UK EGXW 53.166000000000004 -0.524 70.4 19500926 20170923 33790 99999 CRANWELL UK EGYD 53.03 -0.483 66.4 19290801 20170923 33820 99999 LECONFIELD UK 53.867 -0.433 7.0 20030330 20170923 33830 99999 LECONFIELD UK EGXV 53.883 -0.433 9.0 19730101 19781126 33840 99999 LECONFIELD (AUT) UK EGXV 53.867 -0.433 6.0 19810112 20170923 33850 99999 DONNA NOOK UK EGXX 53.467 0.067 8.0 19921208 20170923 33851 99999 DONNA NOOK RAF UK EGXS 53.475 0.152 3.0 20110512 20170923 33860 99999 NORTH COATES (AUT) UK 53.5 0.067 3.0 19890118 19940709 33870 99999 EASINGTON UK 53.667 0.11699999999999999 10.0 19881004 20050402 33880 99999 BINBROOK(RAF) UK 53.45 -0.2 108.0 19730101 20050820 33900 99999 INNER DOWSING (LH) UK 53.333 0.5670000000000001 37.0 19800301 19870227 33910 99999 CONINGSBY UK EGXC 53.093 -0.166 7.6 19430801 20170923 33920 99999 WAINFLEET (AUT) UK EGYW 53.083 0.267 5.0 19840614 20170923 33930 99999 DONNA NOOK (AUT) UK 53.383 0.217 4.0 19840614 19860725 33940 99999 GIBRALTAR POINT UK 53.1 0.317 4.0 19761023 20020928 33950 99999 19730101 19740911 33960 99999 SPURN HEAD (POINT) UK 53.617 0.15 12.0 19291001 19871004 33980 99999 HUMBER (LGT-VSL) UK 53.617 0.36700000000000005 5.0 19730209 19820801 33990 99999 DOWSING (LGT-VSL) UK 53.567 0.833 5.0 19730101 19830429 34000 99999 BARDSEY ISL (LGT-H) UK 52.75 -4.8 16.0 19730101 19870907 34010 99999 PORTHDYNLLAEN UK 52.95 -4.567 37.0 19730106 20030722 34020 99999 MYNYDD RHIW UK 52.817 -4.633 253.0 19730101 20040211 34030 99999 NANTMOR UK 53.0 -4.083 53.0 19840614 20020919 34040 99999 ABERDOVEY UK 52.55 -4.067 22.0 19730206 20051017 34050 99999 ABERDARON UK 52.783 -4.7330000000000005 94.0 19941001 20170923 34053 99999 LLANBEDR UK EGOD 52.812 -4.124 9.1 19940503 20070227 34054 99999 DONCASTER SHEFFIELD UK EGCN 53.475 -1.004 16.8 20050507 20170923 34055 99999 NORTH DENES AIRPORT UK EGSD 52.65 -1.7830000000000001 2.0 20100726 20150430 34060 99999 TRAWSFYNYDD UK 52.933 -3.9330000000000003 193.0 19730101 19950929 34070 99999 LLANBEDR UK 52.8 -4.117 9.0 20010822 20041108 34080 99999 CYNWYD UK 52.95 -3.417 227.0 19840614 20031108 34090 99999 BALA UK 52.9 -3.583 163.0 20110627 20170923 34100 99999 LAKE VYRNWY NO2 UK 52.75 -3.467 359.0 19941001 20170923 34110 99999 ABERHOSAN UK 52.567 -3.717 244.0 19920801 20040627 34140 99999 SHAWBURY UK EGOS 52.798 -2.668 75.9 19730101 20170923 34145 99999 COSFORD UK EGWC 52.64 -2.306 82.9 19940831 20170923 34150 99999 SHAWBURY (SAWS) UK 52.8 -2.6830000000000003 74.0 19880712 19951221 34160 99999 BOGUS ENGLAND UK 19840719 20050721 34180 99999 TERNHILL(RAF) UK 52.867 -2.533 83.0 19730101 20050605 34185 99999 NOTTINGHAM EAST MIDLANDS UK EGNX 52.831 -1.328 93.3 19730101 20170923 34530 99999 COTTESMORE UK EGXJ 52.736000000000004 -0.649 140.5 19730101 20111109 34540 99999 TEMP FOR 03453 UK 52.733000000000004 -0.667 138.0 19930318 20031204 34610 99999 WITTERING (AUT) UK 52.617 -0.483 75.0 19840614 20060212 34620 99999 WITTERING UK EGXT 52.613 -0.47600000000000003 83.2 19730301 20170923 34690 99999 HOLBEACH (AUT) UK EGYH 52.867 0.15 3.0 19851201 20170923 34700 99999 HOLBEACH RAF RANGE UK EGYH 52.883 0.183 12.0 19640713 19810128 34701 99999 HOLBEACH RAF RANGE UK 52.85 0.16699999999999998 12.0 19780405 19810526 34705 99999 19730731 19751021 34820 99999 MARHAM UK EGYM 52.648 0.551 22.9 19490401 20170923 34850 99999 WEST RAYNHAM UK EGYV 52.783 0.733 76.0 19730101 19760114 34870 99999 SCULTHORPE (AF MET) UK EGUP 52.85 0.767 65.0 19780707 20011018 34873 99999 SCULTHORPE (AF MET) UK EGUP 52.85 0.767 65.0 19490601 19900827 34875 99999 HIGH WICOMBE(USAF) UK EGUH 51.62 -0.77 75.0 20040901 20041220 34880 99999 WEYBOURNE UK 52.95 1.133 20.0 19860119 20170923 34920 99999 NORWICH UK EGSH 52.676 1.2830000000000001 35.7 19871202 20170923 34925 99999 NORWICH WEA CNTRE & UK 52.683 1.2830000000000001 37.0 19840909 19880105 34930 99999 CROMER (LGT-H) UK 52.917 1.317 62.0 19850128 19900904 34940 99999 CROMER UK 52.933 1.317 44.0 19730309 20040722 34950 99999 COLTISHALL UK EGYC 52.755 1.358 20.1 19730101 20060404 34960 99999 HEMSBY UK 52.683 1.683 14.0 19730109 20100712 34970 99999 GORLESTON UK 52.583 1.7169999999999999 3.0 19260101 19811031 34980 99999 NEWARP (LGT-VSL) UK 52.8 1.8330000000000002 5.0 19730227 19820801 34990 99999 BECAME STN 034991 UK 52.717 2.3 5.0 19730101 19820913 35010 99999 CAPEL DEWI UK 52.417 -4.0 92.0 19990514 20041029 35020 99999 ABERPORTH UK EGUC 52.133 -4.567 134.0 19730101 20170923 35030 99999 TRAWSGOED UK 52.35 -3.95 62.0 19830820 20170923 35031 99999 ESGAIRWEN UK 52.083 -4.0169999999999995 332.0 19730101 19770301 35040 99999 CENARTH-IN-RADNOR UK 52.383 -3.533 305.0 19760601 19820106 35050 99999 SAINT HARMON UK 52.333 -3.483 279.0 19751117 20050405 35051 99999 CENARTH MILL UK 52.383 -3.5 282.0 19730101 19750729 35060 99999 19731108 19740331 35070 99999 SENNYBRIDGE NO2 UK 52.067 -3.617 307.0 19840614 20170923 35077 99999 NORWICH UK 52.683 1.2830000000000001 37.0 19770114 19840807 35110 99999 NEWCASTLE ON CLUN UK 52.433 -3.117 215.0 19860101 20060201 35120 99999 19730101 19730514 35121 99999 LYONSHALL UK 52.183 -2.983 178.0 20070307 20070307 35200 99999 SHOBDON AIRFIELD UK 52.25 -2.883 99.0 19920801 20170923 35210 99999 MADLEY UK 52.033 -2.85 78.0 19840614 20040331 35220 99999 HEREFORD/CREDENHILL UK 52.083 -2.8 76.0 19291001 20170923 35250 99999 MALVERN UK 52.083 -2.3 53.0 20051002 20051002 35260 99999 BARBOURNE UK 52.2 -2.217 25.0 19971201 20030802 35270 99999 GREAT MALVERN UK 52.117 -2.3 44.0 19840614 20081107 35280 99999 PERSHORE UK 52.133 -2.033 40.0 19730101 19780217 35290 99999 PERSHORE UK 52.15 -2.033 31.0 19780301 20170923 35310 99999 BIRMINGHAM/EDBASTON UK 52.483000000000004 -1.933 163.0 19291001 19791013 35340 99999 BIRMINGHAM UK EGBB 52.45399999999999 -1.7480000000000002 99.7 19730101 20170923 35350 99999 COLESHILL UK 52.483000000000004 -1.683 96.0 20010706 20170923 35360 99999 HINTS/LICHFIELD MST UK 52.633 -0.5670000000000001 30.0 19781220 19820203 35410 99999 COVENTRY AIRPORT UK 52.367 -1.483 85.0 19761221 19880105 35411 99999 19730101 19751005 35413 99999 COVENTRY UK EGBE 52.37 -1.48 81.4 19880105 20170718 35420 99999 RAF HETHEL UK 52.567 1.167 49.0 19430623 19450521 35430 99999 RAF RIDGEWELL UK 52.05 0.55 79.0 19431231 19450608 35440 99999 CHURCH LAWFORD UK 52.367 -1.3330000000000002 106.0 19830824 20170923 35450 99999 RAF GREAT ASHFIELD UK 52.25 0.95 61.0 19430731 19440630 35460 99999 RAF TIBENHAM UK 52.45 1.15 54.0 19431201 19450522 35471 99999 BITTESWELL UK EGBC 52.45 -1.25 134.0 19730101 19790629 35480 99999 RAF SNETTERTON HEATH UK 52.467 0.95 45.0 19430701 19440630 35490 99999 RAF OLD BUCKENHAM UK 52.5 1.067 59.0 19440107 19450510 35500 99999 RAF BODNEY UK 52.567 0.7170000000000001 40.0 19430830 20070501 35510 99999 RAF HORHAM UK 52.317 1.2329999999999999 55.0 19430520 19440630 35520 99999 RAF DUXFORD UK 52.1 0.133 30.0 19430620 19440630 35530 99999 RAF DEENETHORPE UK 52.5 -0.583 101.0 19431111 19450604 35540 99999 KINGS CLIFF RAF UK 52.567 -0.483 77.0 19431007 19450903 35560 99999 19420925 19440525 35570 99999 CRANFIELD UK 52.067 -0.617 111.0 20031003 20050928 35571 99999 CRANFIELD UK 52.067 -0.617 111.0 19730101 19900125 35573 99999 CRANFIELD UK EGTC 52.071999999999996 -0.617 109.1 19900208 20170923 35580 99999 BEDFORD AIRPORT UK 52.217 -0.483 89.0 19730101 20050407 35590 99999 CARDINGTON UK 52.1 -0.41700000000000004 29.0 19300301 20050203 35600 99999 BEDFORD UK 52.217 -0.483 84.0 19870409 20170907 35610 99999 RAF BURY ST EDMUNDS UK 52.25 0.767 63.0 19421221 19440630 35620 99999 ALCONBURY RAF UK EGWZ 52.367 -0.217 47.9 19990515 20050710 35621 99999 ALCONBURY RAF UK 52.367 -0.217 49.0 19730101 19880105 35623 99999 ALCONBURY RAF & UK 52.367 -0.217 49.0 19430113 19950331 35630 99999 THORPE ABBOTTS RAF UK 52.383 1.217 50.0 19430701 19440630 35660 99999 WYTON UK EGUY 52.357 -0.10800000000000001 41.1 19501003 20151004 35661 99999 ISLAY UK EGPI 55.681999999999995 -6.257000000000001 17.1 20040510 20170923 35671 99999 BASSINGBOURN UK 52.1 -0.05 23.0 19501101 20070307 35710 99999 CAMBRIDGE UK 52.2 0.183 15.0 19730101 19750106 35715 99999 CAMBRIDGE UK EGSC 52.205 0.175 14.3 19770201 20170923 35770 35046 MILDENHALL RAF UK EGUN 52.367 0.483 10.0 19990101 20170923 35770 99999 MILDENHALL UK EGUN 52.361999999999995 0.486 10.1 19930701 20071231 35771 99999 MILDENHALL RAF & UK 52.367 0.483 10.0 19730101 19880105 35773 99999 MILDENHALL RAF & UK 52.367 0.483 10.0 19500714 19950831 35780 99999 19350701 19390930 35810 99999 FELTWELL UK 52.483000000000004 0.517 14.0 19490103 19541231 35830 35034 LAKENHEATH RAF UK EGUL 52.417 0.5670000000000001 10.0 19990102 20170923 35830 99999 LAKENHEATH UK EGUL 52.409 0.561 9.8 19930701 20071231 35831 99999 LAKENHEATH RAF UK 52.4 0.5670000000000001 10.0 19730101 19880105 35833 99999 LAKENHEATH RAF UK EGUL 52.4 0.5670000000000001 10.0 19490501 19950525 35860 99999 HONINGTON UK 52.333 0.767 53.0 19730101 20031130 35881 99999 SHEPHERD'S GROVE UK 52.317 0.917 60.0 19510601 19590109 35900 99999 WATTISHAM UK EGUW 52.126999999999995 0.956 86.6 19730101 20170923 35905 99999 NEWTON UK EGXN 52.967 -0.983 55.0 19950210 20011103 35930 99999 BECCLES (AUX) UK 52.433 1.617 22.0 19900201 20030120 35951 99999 WOODBRIDGE RAF UK 52.083 1.4 29.0 19730101 19880105 35953 99999 WOODBRIDGE RAF UK EGVG 52.083 1.4 29.0 19541001 20070307 35961 99999 BENTWATERS RAF UK 52.133 1.433 26.0 19730101 19880105 35963 35048 BENTWATERS RAF UK EGVJ 52.133 1.433 26.0 19930104 19930331 35963 99999 BENTWATERS RAF UK EGVJ 52.133 1.433 25.9 19450101 19921229 35980 99999 ALDEBURGH UK 52.15 1.6 9.0 19730402 20050908 35990 99999 HENLOW UK 52.016999999999996 -0.267 95.0 19730101 19810601 36010 99999 ST. ANNES HEAD UK 51.683 -5.167000000000001 43.0 19291001 20160906 36030 99999 BRAWDY(RAF) UK 51.883 -5.117 111.0 19741008 20010925 36040 99999 MILFORD HAVEN CONSERVANCY BOARD UK 51.7 -5.05 32.0 19730101 20170923 36050 99999 PEMBRY SANDS UK EGOP 51.717 -4.367 3.0 19930301 20170923 36060 99999 MONKSTONE PT. UK 51.7 -4.667 84.0 19730308 19830626 36061 99999 MONKSTONE POINT UK 51.7 -4.667 84.0 20070306 20070307 36070 99999 PENDINE (AUT) UK 51.75 -4.5169999999999995 5.0 19730101 19880826 36080 99999 PENDINE (AUT) UK 51.75 -4.5169999999999995 5.0 19880828 20010323 36090 99999 MUMBLES HEAD UK 51.567 -3.983 32.0 19730104 20170923 36095 99999 SWANSEA UK EGFH 51.605 -4.0680000000000005 91.1 19770126 19990127 36100 99999 PENCELLI (AUX) UK 51.917 -3.3169999999999997 160.0 19900101 20050528 36110 99999 BRYNAMMAN UK 51.817 -3.867 182.0 19730101 19851107 36120 99999 TRECASTLE UK 51.95 -3.7 312.0 19730101 19881031 36130 99999 CWMBARGOED UK 51.75 -3.333 372.0 19730101 19921001 36140 99999 CILFYNYDD UK 51.633 -3.3 194.0 19730716 20050505 36150 99999 ABERDARE UK 51.717 -3.467 174.0 19730101 19790427 36170 99999 STOREY ARMS UK 51.867 -3.483 457.0 19870405 20030202 36240 99999 KYMIN UK 51.817 -2.6830000000000003 181.0 19730101 19781110 36250 99999 WYESHAM UK 51.8 -2.7 38.0 19791015 19800701 36260 99999 BERRY HILL UK 51.8 -2.617 25.0 19800910 19830312 36270 99999 ROSS-ON-WYE UK 51.917 -2.583 68.0 19291001 19741022 36280 99999 FILTON UK 51.516999999999996 -2.583 59.0 19370601 20170923 36283 99999 BRISTOL FILTON UK EGTG 51.519 -2.591 68.9 19940718 20121221 36330 99999 GLOUCESTER UK 51.867 -2.217 24.0 19730101 19821109 36333 99999 GLOUCESTERSHIRE UK EGBJ 51.894 -2.167 30.8 19771001 20170923 36380 99999 KEMBLE RAF UK 51.667 -2.05 133.0 19730101 19880105 36383 99999 KEMBLE UK EGBP 51.668 -2.057 132.0 19880105 19920331 36440 99999 FAIRFORD UK EGVA 51.681999999999995 -1.79 87.2 19520610 20170923 36460 99999 19730101 19760430 36470 99999 LITTLE RISSINGTON UK 51.867 -1.683 210.0 19840614 20170923 36490 99999 BRIZE NORTON UK EGVN 51.75 -1.584 87.8 19510801 20170923 36530 99999 ABINGDON(RAF) UK 51.683 -1.317 80.0 19730101 19751113 36550 99999 UPPER HEYFORD(USAF) UK 51.933 -1.25 134.0 19301231 19390930 36551 99999 UPPER HEYFORD RAF UK 51.933 -1.25 133.0 19730101 19880105 36553 99999 UPPER HEYFORD RAF UK EGUA 51.933 1.25 133.0 19511101 19931215 36570 99999 BENSON (AUT) UK 51.617 -1.1 57.0 19840713 19930624 36580 99999 BENSON UK EGUB 51.61600000000001 -1.0959999999999999 68.9 19730101 20170923 36584 99999 COLERNE UK EGUO 51.43899999999999 -2.286 180.7 19420401 20170719 36600 99999 HIGH WYCOMBE HQAIR UK 51.683 -0.8 205.0 19971201 20170923 36690 99999 19420810 19600731 36720 99999 NORTHOLT UK EGWU 51.553000000000004 -0.418 37.8 19730101 20170923 36731 99999 LUTON ARPT UK 51.883 -0.36700000000000005 160.0 19730101 19880105 36733 99999 LUTON UK EGGW 51.875 -0.368 160.3 19880105 20170923 36740 99999 CHENIES(AUTO) UK 51.683 -0.5329999999999999 139.0 19921001 20010414 36800 99999 ROTHAMSTED UK 51.8 -0.358 128.0 20130820 20170923 36830 99999 STANSTED UK EGSS 51.885 0.235 106.1 19730101 20170923 36840 99999 ANDREWSFIELD UK 51.883 0.45 87.0 19980301 20170923 36880 99999 WETHERSFIELD(RAF) UK 51.967 0.5 98.0 19520507 19851015 36881 99999 WEATHERSFIELD RAF UK EGVT 51.967 0.5 101.0 19740117 19770617 36883 99999 WEATHERSFIELD RAF UK EGVT 51.967 0.5 101.0 19890304 19900122 36911 99999 SOUTHEND AIRPORT UK 51.567 0.7 15.0 19730101 19880105 36913 99999 SOUTHEND UK EGMC 51.571000000000005 0.696 14.9 19880105 20170923 36930 99999 SHOEBURYNESS LANDWICK UK 51.55 0.833 3.0 19291001 20170923 36940 99999 SHOEBURYNESS (AUT) UK 51.55 0.833 2.0 19850116 19940730 36950 99999 THAMES TOWER (AUT) UK 51.667 1.1 8.0 19811124 20041013 36960 99999 WALTON-ON-THE-NAZE UK 51.85 1.2830000000000001 5.0 19730117 20070621 36970 99999 FELIXSTOWE UK 51.95 1.3330000000000002 3.0 19290801 19390930 36980 99999 TONGUE (LGT-VSL) UK 51.516999999999996 1.383 15.0 19291001 19820914 36990 99999 GALLOPER (LGT-VSL) UK 51.733000000000004 1.9669999999999999 5.0 19730101 19770612 37000 99999 SAINT GOWAN L.V. UK 51.5 -5.0 5.0 19730207 20060207 37010 99999 GAWLISH UK 51.016999999999996 -4.5 122.0 19890301 20050607 37020 99999 LUNDY ISL (LGT-H) UK 51.167 -4.65 43.0 19730101 20030804 37030 99999 HARTLAND POINT UK 51.016999999999996 -4.533 91.0 19380520 19831129 37031 99999 HARTLAND POINT UK 51.033 -4.533 91.0 20070307 20070307 37040 99999 HARTLAND UK 50.983000000000004 -4.467 142.0 19840614 20030302 37060 99999 ILFRACOMBE C.G. UK 51.217 -4.083 61.0 19730308 19801130 37061 99999 ILFRACOMBE C.G. UK 51.217 -4.083 61.0 20070307 20070307 37070 99999 CHIVENOR UK EGDC 51.086999999999996 -4.15 8.2 19730101 20170923 37090 99999 MINEHEAD UK 51.2 -3.45 10.0 19870301 20051001 37100 99999 LISCOMBE UK 51.083 -3.6 347.0 19930113 20170923 37110 99999 EXTON UK 51.0 -3.483 332.0 19730101 19880508 37120 99999 TIVINGTON UK 51.2 -3.533 83.0 19890101 20051001 37150 99999 CARDIFF UK EGFF 51.397 -3.343 67.1 19730101 20170923 37155 99999 ST ATHAN UK 51.4 -3.4330000000000003 51.0 19940818 20050427 37160 99999 ST ATHAN UK EGDX 51.405 -3.4360000000000004 49.7 20010706 20170923 37170 99999 CARDIFF WEATHER CENTRE UK 51.483000000000004 -3.1830000000000003 52.0 19840614 20060616 37241 99999 BRISTOL/LULSGATE UK 51.383 -2.717 189.0 19730101 19880105 37243 99999 BRISTOL UK EGGD 51.383 -2.719 189.6 19880105 20170923 37260 99999 BRISTOL WEA CENTER UK 51.467 -2.6 11.0 19810801 20040819 37400 99999 LYNEHAM UK EGDL 51.505 -1.993 156.4 19730101 20170923 37430 99999 LARKHILL UK 51.2 -1.8 133.0 19890601 20170923 37435 99999 GREENHAM COMMON RAF UK EGVI 51.383 -1.2830000000000001 122.0 19760428 19920417 37440 99999 UPAVON UK EGDJ 51.3 -1.767 175.0 19730101 20040827 37450 99999 NETHERAVON(RA) UK 51.25 -1.767 139.0 19730101 20020315 37460 99999 BOSCOMBE DOWN UK EGDM 51.152 -1.7469999999999999 124.1 19310101 20170923 37480 99999 WINCHESTER UK 51.067 -1.317 83.0 19291001 19330831 37490 99999 MIDDLE WALLOP UK EGVP 51.15 -1.567 91.0 19730809 20170923 37520 99999 19730101 19760331 37590 99999 TEST SAMOS 03761 UK 51.25 -0.95 123.0 19930407 20000728 37610 99999 ODIHAM UK EGVO 51.233999999999995 -0.943 123.4 19730101 20170923 37630 99999 BRACKNELL/BEAUFORT UK EGRR 51.383 -0.7829999999999999 74.0 19730101 20151107 37640 99999 BRACKNELL (AUT) UK 51.383 -0.8 75.0 19871202 20040206 37660 99999 FARNBOROUGH (MIL) UK EGUF 51.283 -0.767 72.0 19291001 20051011 37661 99999 BIGGIN HILL UK 51.283 0.033 0.0 19840519 19880105 37663 99999 BIGGIN HILL UK EGKB 51.331 0.033 182.3 19880105 20170923 37670 99999 LIPHOOK UK 51.083 -0.8170000000000001 98.0 19730101 19880706 37680 99999 FARNBOROUGH UK EGLF 51.276 -0.7759999999999999 72.5 19880501 20170923 37683 99999 CITY UK EGLC 51.505 0.055 5.8 19880129 20170923 37690 99999 CHARLWOOD UK 51.144 -0.22899999999999998 68.0 19920301 20170923 37700 99999 ST JAMES PARK UK 51.5 -0.11699999999999999 5.0 20091218 20170923 37720 99999 HEATHROW UK EGLL 51.478 -0.461 25.3 19481201 20170923 37740 99999 CRAWLEY UK 51.083 -0.217 144.0 20011105 20070307 37750 99999 KEW-IN-LONDON UK 51.467 -0.317 5.0 19291001 19820510 37760 99999 GATWICK UK EGKK 51.148 -0.19 61.6 19730101 20170923 37770 99999 PURLEY OAKS UK 51.35 -0.11699999999999999 66.0 19290801 19390930 37780 99999 LONDON WEA CENTER UK 51.516999999999996 -0.11699999999999999 23.0 19730101 20030514 37790 99999 LONDON WEA CENTER UK EGRB 51.5 -0.11699999999999999 39.0 19920401 20100201 37800 99999 REDHILL UK 51.217 -0.133 63.0 20010702 20060228 37810 99999 KENLEY AIRFIELD UK 51.3 -0.083 170.0 19880201 20170923 37815 99999 LEAVESDEN UK EGTI 51.683 -0.41700000000000004 102.0 19730101 19950409 37820 99999 BLACKWALL UK 51.516999999999996 0.017 5.0 19741127 19881104 37830 99999 GALLIONS REACH UK 51.5 -0.067 12.0 19730101 19791011 37840 99999 GRAVESEND-BROADNESS UK 51.467 0.3 3.0 19960201 20170923 37850 99999 CHARING UK 51.2 0.7829999999999999 91.0 19800910 20011231 37860 99999 GRAVESEND UK 51.433 0.38299999999999995 5.0 19730101 20041016 37871 99999 WEST MALLING UK 51.283 0.41700000000000004 104.0 19601201 19640630 37890 99999 JUBILEE CORNER UK 51.183 0.633 47.0 19730105 19961002 37900 99999 EAST MALLING (AUT) UK 51.283 0.45 32.0 19851201 20011118 37910 99999 SHEERNESS UK 51.45 0.75 25.0 19730101 20080731 37920 99999 DODDINGTON UK 51.283 0.7829999999999999 91.0 19730101 19800913 37930 99999 ANVIL GREEN UK 51.2 1.0170000000000001 139.0 19730101 20050218 37940 99999 BECAME STN 037941 UK 51.15 1.383 91.0 19730308 19791003 37950 99999 LYMPNE UK 51.083 1.0170000000000001 104.0 19290801 19390930 37951 99999 ASHFORD UK EGMK 51.15 0.883 107.0 19730101 19741221 37960 99999 LANGDON BAY UK 51.133 1.35 117.0 19730308 20170923 37970 35047 MANSTON UK EGMH 51.35 1.3330000000000002 50.0 19300228 20170923 37970 99999 MANSTON UK EGMH 51.342 1.3459999999999999 54.3 20000101 20071231 37980 99999 FALLS (LGT-VSL) UK 51.3 1.817 5.0 19730101 19820913 37990 99999 EAST GOODWIN L.V. UK 51.217 1.6 5.0 19730101 19820623 38000 99999 SCILLY/ST. MARY'S UK 49.917 -6.2829999999999995 45.0 19890124 20031002 38010 99999 20010625 20021121 38020 99999 SCILLY/ROUND ISLAND UK 49.983000000000004 -6.317 38.0 19820304 20050829 38030 99999 SCILLY/SAINT MARY'S UK EGHE 49.917 -6.3 31.0 19860101 20170923 38040 99999 SCILLY/ST.MARYS UK EGHE 49.933 -6.3 51.0 19260101 20021106 38050 99999 SEVEN STONES L.V. UK 50.05 -6.067 5.0 19730227 19820801 38060 99999 LANDS END ARPT UK EGHC 50.06399999999999 -5.709 63.0 19730308 20170923 38080 99999 CAMBORNE UK 50.217 -5.317 88.0 19730101 20170923 38090 99999 CULDROSE UK EGDR 50.086000000000006 -5.256 81.4 19730101 20170923 38100 99999 PENDENNIS POINT UK 50.15 -5.067 42.0 19840614 20070621 38110 99999 PORT PENDENNIS UK 50.133 -5.033 61.0 19291001 19340404 38140 99999 LIZARD UK 49.95 -5.183 57.0 19320510 20020831 38150 99999 LIZARD LIGHTHOUSE UK 49.967 -5.2 60.0 19880719 20030529 38170 99999 ST MAWGAN UK EGDG 50.433 -5.0 118.9 19730101 20081201 38200 99999 DAVIDSTOW MOOR UK 50.633 -4.6 291.0 19920501 20040331 38230 99999 CARDINHAM BODMIN UK 50.5 -4.667 199.0 19870708 20170923 38240 99999 BASTREET UK 50.567 -4.4830000000000005 238.0 19750122 20040919 38250 99999 19730101 19740430 38270 99999 PLYMOUTH/MOUNTBATTE UK EGDB 50.35 -4.117 27.0 19730101 20170923 38273 99999 PLYMOUTH UK EGHD 50.423 -4.106 145.1 19880318 20111223 38280 99999 SOUTHWEST YELVERTON UK 50.483000000000004 -4.1 198.0 19291001 19390930 38300 99999 BURRINGTON UK 50.933 -3.983 199.0 19750521 20011001 38310 99999 NORTH HESSARY TOR UK 50.55 -4.0 510.0 19730101 20050323 38320 99999 OKEHAMPTON UK 50.717 -4.0 372.0 19760601 19891001 38330 99999 CHAWLEIGH UK 50.9 -3.8 160.0 19730101 19830116 38340 99999 PRAWLE POINT UK 50.2 -3.717 59.0 19730308 19830802 38341 99999 PRAWLE POINT UK 50.2 -3.717 59.0 20070307 20070307 38370 99999 BRIXHAM UK 50.4 -3.483 8.0 19730308 20070705 38390 99999 EXETER UK EGTE 50.733999999999995 -3.4139999999999997 31.1 19730101 20170923 38400 99999 DUNKESWELL AERODROME UK 50.867 -3.233 253.0 19910531 20170923 38410 99999 TEMP FOR 038400 UK 50.867 -3.25 255.0 19830825 20021227 38450 99999 BEER-IN-DEVON UK 50.7 -3.1 52.0 19730308 19840607 38530 99999 YEOVILTON UK EGDY 51.00899999999999 -2.639 22.9 19730101 20170923 38550 99999 PORTLAND BILL C.G. UK 50.516999999999996 -2.4330000000000003 53.0 19730112 20021101 38560 99999 PORTLAND BILL (LH) UK 50.516999999999996 -2.45 11.0 19291001 20041129 38570 99999 ISLE OF PORTLAND UK 50.516999999999996 -2.45 52.0 19730809 20170923 38580 99999 PORTLAND HELIPORT UK EGDP 50.567 -2.45 3.0 19730108 20021220 38590 99999 POOLE HARBOR UK 50.7 -1.983 5.0 20040909 20040910 38600 99999 ANVIL POINT UK 50.583 -1.9669999999999999 34.0 19780111 19810925 38610 99999 CHRISTCHURCH BAY UK 50.7 -1.6669999999999998 7.0 19811107 20020708 38620 99999 BOURNEMOUTH UK EGHH 50.78 -1.8430000000000002 11.6 19730101 20170923 38630 99999 THE NEEDLES (CAPE) UK 50.667 -1.5830000000000002 86.0 19730308 19860530 38640 99999 19291001 19390930 38650 99999 SOUTHAMPTON UK EGHI 50.95 -1.357 13.4 19730101 20170923 38660 99999 WIGHT: ST. CATHERINES POINT UK 50.583 -1.3 24.0 19730101 20170923 38670 99999 LEE-ON-SOLENT UK 50.817 -1.217 10.0 19730105 20050811 38690 99999 CALSHOT-IN-HANTS UK 50.817 -1.3 3.0 19730308 19830704 38700 99999 NAB TOWER LH (DEAD) UK 50.667 -0.95 24.0 19810121 19830713 38710 99999 19730101 19761101 38720 99999 THORNEY ISLAND UK 50.817 -0.917 3.0 19840703 20170923 38730 99999 TOTLAND UK 50.683 -1.5330000000000001 20.0 19890112 19960331 38740 99999 SOLENT UK 50.8 -1.217 13.0 19860602 20150227 38750 99999 WELLOW UK 50.683 -1.45 25.0 19890501 20070307 38760 99999 SHOREHAM UK EGKA 50.836000000000006 -0.297 2.1 19861201 20170923 38770 99999 EAST HOATHLY UK 50.917 0.15 38.0 19730101 20050817 38790 99999 SHOREHAM-BY-SEA UK 50.817 -0.25 5.0 19730209 19880105 38793 99999 SHOREHAM-BY-SEA UK 50.817 -0.267 18.0 19880105 19901016 38800 99999 NEWHAVEN (LGT-H) UK 50.783 0.05 5.0 19730101 20020929 38810 99999 BREDE UK 50.933 0.6 82.0 19880808 20050405 38820 99999 HERSTMONCEUX WEST END UK 50.9 0.317 52.0 19921201 20170923 38830 99999 EASTBOURNE UK 50.783 0.3 3.0 19730308 20050907 38840 99999 HERSTMONCEUX UK 50.867 0.33299999999999996 17.0 19761101 20030125 38850 99999 ROYAL SOVEREIGN(LH) UK 50.717 0.45 23.0 19730101 19821213 38860 99999 FAIRLIGHT UK 50.867 0.633 143.0 19730308 19910107 38871 99999 LYDD AIRPORT UK 50.95 0.9329999999999999 3.0 19750109 19880105 38873 99999 LYDD UK EGMD 50.956 0.9390000000000001 4.0 19880105 20170923 38880 99999 DUNGENESS UK 50.917 0.9670000000000001 3.0 19291001 19800314 38900 99999 CHANNEL (LGT-VSL) UK 49.9 -2.917 89.0 19790201 19820916 38915 99999 ALDERNEY GK EGJA 49.706 -2.215 88.4 19870629 20170923 38940 99999 GUERNSEY GK EGJB 49.435 -2.602 102.4 19291001 20170923 38950 99999 JERSEY JE EGJJ 49.208 -2.1959999999999997 84.4 19730101 20170923 38960 99999 ST. HELIER UK 49.2 -2.1 54.0 19840801 20170403 38980 99999 VARNE (LGT-VSL) UK 51.016999999999996 1.4 5.0 19730101 19821107 39000 99999 KNOCKAREVAN UK 54.417 -8.083 50.0 19730101 20050831 39010 99999 THOMASTOWN UK 54.333 -7.6 72.0 20120720 20170923 39020 99999 CORGARY UK 54.433 -8.05 145.0 19730809 20060207 39030 99999 ST ANGELO UK 54.4 -7.65 47.0 19850301 20130716 39040 99999 CASTLEDERG UK 54.7 -7.582999999999999 50.0 19971201 20170923 39050 99999 CARRIGANS UK 54.667 -7.317 113.0 19730101 20011116 39060 99999 CARMONEY UK 55.016999999999996 -7.233 73.0 19770803 20041231 39070 99999 MAGILLIGAN NO 2 UK 55.15 -6.933 6.0 20110901 20170923 39080 99999 BALLYKELLY UK 55.067 -7.017 5.0 19971201 20111103 39084 99999 LONDONDERRY EGLINTON UK EGAE 55.043 -7.1610000000000005 6.7 19900424 20170923 39090 99999 MONEYDIG UK 54.983000000000004 -6.6 34.0 19730101 19800724 39100 99999 MAGHERA UK 54.85 -6.7 141.0 19800912 19900124 39110 99999 LOUGH FEA UK 54.717 -6.817 227.0 19941003 20170923 39120 99999 MOYOLA UK 54.717 -6.517 17.0 19921201 20050815 39130 99999 ANNAGHMORE UK 54.45 -6.567 27.0 19810506 19851217 39140 99999 PORTRUSH UK 55.2 -6.667000000000001 8.0 19730309 20040926 39150 99999 PORTGLENONE UK 54.867 -6.45 65.0 19730308 20170923 39155 99999 COWDEN UK EGXF 53.85 -6.1 15.0 19950210 19980331 39160 99999 BALLYPATRICK FOREST UK 55.183 -6.167000000000001 156.0 19870301 20170923 39170 99999 ALDERGROVE UK EGAA 54.658 -6.216 81.7 19300228 20170923 39180 99999 CASTOR BAY UK 54.5 -6.332999999999999 18.0 19431004 20160906 39200 99999 HILLSBOROUGH UK 54.483000000000004 -6.1 38.0 19790208 20050912 39220 99999 KILKEEL UK 54.05 -6.0 18.0 19730323 19870130 39230 99999 GLENANNE NO2 UK 54.233000000000004 -6.5 160.0 19850207 20170923 39240 99999 CITY UK EGAC 54.618 -5.872999999999999 4.6 19730101 20170923 39250 99999 ORLOCK HEAD UK 54.667 -5.582999999999999 34.0 19730313 20020101 39260 99999 KILLOUGH UK 54.233000000000004 -5.617000000000001 18.0 19730107 20050814 39270 99999 BANGOR HARBOUR UK 54.667 -5.667000000000001 11.0 19920301 20071130 39280 99999 LARNE UK 54.85 -5.8 3.0 19291001 20040316 39290 99999 PORTMUCK UK 54.85 -5.733 43.0 19730323 19790529 39510 99999 SHERKIN ISLAND EI 51.467 -9.417 21.0 20091020 20170923 39520 99999 ROCHES POINT EI 51.8 -8.25 41.0 19291001 20170918 39530 99999 VALENTIA OBSERVATORY EI 51.933 -10.25 30.0 19260102 20170923 39550 99999 CORK EI EICK 51.841 -8.491 153.0 19730101 20170923 39560 99999 JOHNSTOWN CASTLE EI 52.283 -6.483 53.0 20070806 20170923 39570 99999 ROSSLARE EI 52.25 -6.332999999999999 25.0 19730101 20080407 39600 99999 KILKENNY EI 52.667 -7.267 64.0 19730101 20080407 39610 99999 OAK PARK - CARLOW EI 52.85 -6.9 63.0 20080721 20170918 39620 99999 SHANNON EI EINN 52.702 -8.925 14.0 19730101 20170923 39630 99999 MACE HEAD EI 53.317 -9.9 23.0 20091020 20170923 39640 99999 GALWAY EI 53.283 -9.017000000000001 21.0 19780616 20040928 39650 99999 BIRR EI 53.083 -7.882999999999999 72.0 19730101 20091001 39660 99999 GURTEEN EI 53.016999999999996 -8.0 76.0 19291001 20170923 39670 99999 CASEMENT EI EIME 53.302 -6.4510000000000005 97.2 19870201 20170923 39689 99999 DUBLIN WEATHER CENTER EI EIDB 53.433 -6.25 68.0 20160414 20160624 39690 99999 DUBLIN EI EIDW 53.42100000000001 -6.27 73.8 19730101 20170923 39700 99999 CLAREMORRIS EI 53.717 -8.982999999999999 69.0 19730101 20170923 39710 99999 MULLINGAR EI 53.533 -7.367000000000001 100.0 19730101 20170923 39730 99999 CONNAUGHT EI EIKN 53.91 -8.818 202.7 19291001 20170923 39740 99999 CLONES EI 54.183 -7.233 89.0 19730101 20080407 39760 99999 BELMULLET EI 54.233000000000004 -10.0 9.7 19730101 20170923 39780 99999 FINNER EI 54.483000000000004 -8.232999999999999 34.7 20010601 20170923 39790 99999 BALLYHAISE EI 54.05 -7.3 79.0 20080721 20170921 39800 99999 MALIN HEAD EI 55.367 -7.332999999999999 25.0 19260701 20170923 40010 99999 BREIDAVIK IC 65.533 -24.35 20.0 20011004 20041218 40011 99999 HVALLATUR IC 65.533 -24.467 8.0 20040720 20041123 40030 99999 KVIGINDISDALUR IC 65.55 -24.017 49.0 19310101 20070307 40040 99999 GUFUSKALAR IC 64.9 -23.933000000000003 7.0 19490101 20020405 40050 99999 BOLUNGAVIK IC 66.15 -23.25 24.0 19520201 20170923 40060 99999 BOGUS ICELAND IC 0.0 0.0 -999.0 19310105 20040211 40070 99999 HOLAR I DYRAFIRDI IC 65.867 -23.6 30.0 20051230 20100225 40100 99999 NEDRI-HOLL IC 64.8 -23.033 8.0 20050904 20070307 40110 99999 19490103 19561231 40130 99999 STYKKISHOLMUR IC BIST 65.083 -22.733 8.0 19730101 20170923 40131 99999 ISAFJORDUR IC BIIS 66.058 -23.135 2.4 20090403 20170923 40140 99999 REYKJANESVITI IC 63.817 -22.717 26.0 19740802 20060220 40170 99999 AEDEY IC 66.1 -22.666999999999998 5.0 20010923 20160503 40180 16201 KEFLAVIK NAVAL AIR STATION IC BIKF 63.967 -22.6 52.1 19421001 20170923 40230 99999 HORNBJARGSVITI (LH) IC 66.417 -22.383000000000003 27.0 19490102 20050622 40250 99999 REYKHOLAR IC 65.45 -22.2 11.0 20070226 20070307 40260 99999 HAUKATUNGA IC 64.817 -22.267 50.0 20070307 20070307 40270 99999 ASGARDUR IC 65.233 -21.75 10.0 19750930 20070307 40300 99999 REYKJAVIK IC BIRK 64.13 -21.941 14.6 19310101 20170923 40310 99999 GJOGUR IC 65.983 -21.35 5.0 19490101 20040323 40340 99999 STAFHOLTSEY IC 64.617 -21.6 14.0 19490101 20131204 40380 99999 EYRARBAKKI IC 63.867 -21.15 5.0 19740601 20161208 40400 99999 HEIDARBAER IC 64.2 -21.233 125.0 19740803 20070307 40410 99999 TANNSTADABAKKI IC 65.283 -21.1 8.0 20020910 20070307 40420 99999 HJARDARLAND IC 64.25 -20.417 101.0 20050114 20070307 40440 99999 HELLA IC 63.833 -20.4 20.0 20020316 20030812 40450 99999 BLONDUOS IC 65.667 -20.3 22.0 19490101 20031101 40480 99999 VESTMANNAEYJAR IC BIVM 63.424 -20.279 99.4 19310103 20170923 40500 99999 HAELL IC 64.067 -20.25 121.0 19510101 20050610 40530 99999 BERGSTADIR IC 65.7 -19.617 43.0 19540911 20170923 40550 99999 NAUTABU IC 65.45 -19.367 115.0 19490101 20070307 40560 99999 HVERAVELLIR IC 64.867 -19.567 642.0 19740731 20040610 40580 99999 VATNSSKARDSHOLAR IC 63.417 -19.183 20.0 19490101 20070307 40590 99999 SAUDANESVITI IC 66.183 -18.967 30.0 19490101 20070227 40620 99999 NORDURHJALEIGA IC 63.5 -18.383 18.0 20040902 20060111 40630 99999 AKUREYRI IC BIAR 65.66 -18.073 1.8 19310103 20170923 40640 99999 KIRKJUBAEJARKLAUSTUR IC 63.783 -18.067 38.0 19490101 20130501 40650 99999 GRIMSEY ISLAND IC BIGR 66.533 -18.017 16.0 19130101 20170731 40655 99999 BILDUDALUR IC BIBD 65.641 -23.546 5.5 20130220 20170922 40680 99999 SANDBUDIR IC 64.933 -17.983 821.0 19780131 19800726 40710 99999 MANARBAKKI IC 66.2 -17.1 17.0 19800502 20070307 40720 99999 FAGURHOLSMYRI IC 63.883 -16.65 46.0 19490101 20051218 40730 99999 GRIMSSTADIR IC 65.633 -16.117 386.0 19490101 20170923 40750 99999 MOURUDALUR IC 65.367 -15.883 450.0 19490101 19561231 40770 99999 RAUFARHOFN IC BIRG 66.45 -15.95 10.0 19490101 20090217 40800 99999 SNAEFELLSSKALI IC 64.8 -15.633 810.0 20040304 20070307 40810 99999 SAUDANES IC 66.25 -15.267000000000001 17.0 20010716 20060124 40820 99999 HORNAFJORDUR IC BIHN 64.296 -15.227 7.3 19730101 20170923 40831 99999 SKORUVIK IC 66.35 -14.767000000000001 13.0 20070307 20070307 40850 99999 SKJALDTHINGSSTADIR IC BIVO 65.75 -14.833 48.0 19750311 20170923 40860 99999 HORN I HORNAFIRDI IC 64.267 -14.982999999999999 5.0 19490101 19560831 40870 99999 STRANDHOFN IC 65.9 -14.65 19.0 19490101 20050908 40890 99999 EGILSSTADIR IC BIEG 65.283 -14.401 23.2 19490101 20170923 40910 99999 REYDARFJORDUR IC 65.033 -14.232999999999999 25.0 19860515 20170804 40920 99999 DJUPIVOGUR IC 64.65 -14.283 25.0 19490101 19561231 40970 99999 DALATANGI IC 65.267 -13.583 11.0 19310103 20170923 41010 99999 BJARGTANGAR IC 65.5 -24.517 36.0 20040925 20160503 41030 99999 PATREKSFJORDUR IC 65.6 -24.0 4.0 20040909 20070307 41040 99999 GUFUSKALAR IC 64.9 -23.933000000000003 7.0 20060912 20170923 41090 99999 THVERFJALL IC 66.05 -23.316999999999997 753.0 20141113 20160503 41100 99999 NAVY OPERATED(AMOS) GL 72.283 -38.8 3195.0 19871005 20070307 41150 99999 DYNJANDIHEIDI IC 65.7 -23.083000000000002 621.0 19900501 20170923 41200 99999 GRINDAVIK IC 63.85 -22.416999999999998 4.0 20050222 20051201 41230 99999 HORNBJARGSVITI IC 66.417 -22.383000000000003 22.0 20090501 20170923 41240 99999 STRAUMSVIK IC 64.05 -22.333000000000002 5.0 20121204 20160503 41260 99999 GRUNDARTANGI IC 64.35 -21.783 5.0 20141113 20160503 41270 99999 BOLUNGARVIK IC 66.167 -23.25 27.0 20080115 20170923 41300 99999 REYKJAVIK IC 64.133 -21.9 53.0 20031104 20170923 41310 99999 GJOGUR IC 65.983 -21.35 32.0 20040612 20160503 41370 99999 AKUREYRI A IC 65.683 -18.117 31.0 20080429 20170923 41400 99999 THORLAKSHOFN IC 63.85 -21.383000000000003 5.0 20040704 20050104 41450 99999 BLONDUOS IC 65.667 -20.3 22.0 20080115 20170923 41460 99999 VESTMANNAEYJABAER IC 63.433 -20.283 40.0 20071016 20170923 41490 99999 KOLKA IC 65.4 -19.717 505.0 20141113 20160503 41540 99999 BURFELL IC 64.083 -19.733 249.0 20040116 20160904 41560 99999 HVERAVELLIR IC 64.867 -19.567 641.0 20080115 20170923 41600 99999 THUFUVER IC 64.583 -18.6 614.0 20031104 20160503 41620 99999 VEIDIVATNAHRAUN IC 64.4 -18.5 648.0 20070226 20160503 41650 99999 GRIMSEY IC 66.533 -18.017 17.0 19630101 20170923 41660 99999 JOKULHEIMAR IC 64.317 -18.217 727.0 20040809 20160503 41680 99999 SANDBUDIR IC 64.933 -17.983 821.0 20001204 20160503 41700 99999 SKARDSFJORUVITI IC 63.516999999999996 -17.983 9.0 20040504 20160503 41750 99999 ICELAND SITE IC 66.51 -16.54 59.3 19630101 20160503 41760 99999 KARAHNJUKAR IC 64.933 -15.783 639.0 20071016 20170923 41800 99999 HVANNEY IC 64.233 -15.2 5.0 20031104 20150519 41830 99999 FONTUR IC 66.383 -14.533 44.0 20041028 20160503 41900 99999 BOGUS GREENLAND GL 19880315 19880821 41930 99999 GAGNHEIDI IC 65.217 -14.267000000000001 949.0 20050923 20160503 41950 99999 ICELAND SITE IC 65.28 -14.0 92.4 19801201 20160503 41960 99999 KAMBANES IC 64.8 -13.85 34.0 20141113 20160503 41970 99999 DALATANGI IC 65.267 -13.583 11.0 20031009 20170916 42000 99999 DUNDAS GL 76.5 -69.0 20.0 19460908 20060105 42010 99999 QAANAAQ GL 77.467 -69.217 19.0 19960201 20060103 42020 99999 THULE AIR BASE GL BGTL 76.531 -68.703 76.5 19511101 20170923 42021 99999 AASIAAT MITTARFIA GL 68.717 -52.8 27.0 20040510 20170923 42022 99999 JAKOBSHAVN LUFTHAVN GL 69.233 -51.067 31.0 20040510 20170923 42023 99999 QAARSUT MITTARFIA GL BGUM 70.733 -52.7 89.0 20040831 20170923 42024 99999 SISIMIUT GL BGSS 66.95 -53.733000000000004 50.0 20040510 20160625 42025 99999 UPERNAVIK GL 72.783 -56.167 122.0 20040510 20140724 42030 99999 KITSISSUT (CAREY OEER) GL 76.633 -73.0 11.0 19730701 20170923 42040 99999 MANIITSOQ GL 65.417 -52.933 15.0 20040803 20170923 42050 99999 MITTARFIK QAANAAQ GL 77.483 -69.383 16.0 19730102 20170923 42070 99999 HALL LAND GL 81.683 -59.933 105.0 19821101 20070607 42080 99999 KITSISSORSUIT (EDDERFUGLE OEER) GL 74.033 -57.817 40.0 19820104 20170923 42090 99999 UPERNAVIK AWS GL BGUP 72.77 -56.17 63.0 19840901 20060114 42100 99999 UPERNAVIK GL 72.783 -56.167 120.0 19490101 20060103 42110 99999 MITTARFIK UPERNAVIK (UPERNAVIK LUFTHAVN) GL 72.783 -56.133 129.0 20040706 20151218 42120 99999 UUMMANNAQ HELIPORT GL 70.683 -52.117 2.0 19500711 20061116 42130 99999 QAARSUT MITTARFIA (UUMMANNAQ LUFTHAVN) GL 70.733 -52.7 89.0 20040706 20140110 42140 99999 NUUSSUAATAA (NUUSSUAQ) GL 70.683 -54.617 27.0 19821001 20170923 42160 99999 JAKOBSHAVN GL 69.217 -51.05 39.0 19730102 19880105 42163 99999 JAKOBSHAVN GL 69.217 -51.05 39.0 19880105 19880822 42170 99999 QASIGIANNGUIT HELIPORT GL 68.817 -51.183 24.0 19730102 20060404 42180 99999 GODHAVN PORT GL 69.333 -53.583 24.0 19730101 20170518 42200 99999 AASIAAT (EGEDESMINDE) GL BGEM 68.7 -52.85 41.0 19430109 20170923 42210 99999 ILULISSAT (JAKOBSHAVN) GL 69.233 -51.067 31.0 19880901 20140114 42215 99999 QAANAAQ GL 77.467 -69.217 15.5 20070122 20140724 42240 99999 AASIAAT MITTARFIA (EGEDESMINDE LUFTHAVN) GL 68.717 -52.8 27.0 20040915 20140110 42280 99999 KITSISSUT (ATTU) GL 67.783 -53.967 12.0 19830812 20170923 42300 99999 SISIMIUT /HOLSTEINS GL BGHB 66.917 -53.667 9.0 19490101 20051227 42310 99999 SONDRE STROMFJORD GL BGSF 67.017 -50.68899999999999 50.3 19411201 20170923 42340 99999 SISIMIUT MITTARFIA (HOLSTEINSBORG LUFTHA GL 66.95 -53.717 8.0 20040706 20170923 42350 99999 DYE 1 (RED RIVER) GL 66.633 -52.867 1453.0 19621201 20050315 42361 99999 ITIVPLEQ GL 66.567 -53.417 -999.0 20070306 20070307 42400 99999 SUKKERTOPPEN GL 65.4 -52.867 25.0 19490101 19871103 42410 99999 MANIITSOQ MITTARFIA (SUKKERTOPPEN LUFTHA GL 65.417 -52.933 32.0 20040706 20140109 42420 99999 SIORALIK GL 65.017 -52.55 14.0 19830701 20170923 42500 99999 NUUK (GODTHAAB) GL 64.167 -51.75 84.0 19490101 20170923 42520 99999 FAERINGEHAVN GL 63.7 -51.55 10.0 19730102 19730905 42530 99999 UKIIVIK (FREDERIKSHAAB ISBLINK) GL 62.567 -50.417 22.0 19821101 20170923 42540 99999 MITTARFIK NUUK (GODTHAAB LUFTHAVN) GL 64.2 -51.683 87.0 20010621 20140113 42600 99999 FREDERIKSHAAB GL BGFH 62.016999999999996 -49.667 15.0 19490101 20140115 42605 99999 FREDICKSHAB/PAAMIUT AIRPORT GL BGPT 61.983000000000004 -49.7 13.0 20080423 20170923 42610 99999 GROENNEDAL GL BGGD 61.233000000000004 -48.1 32.0 19430202 20051015 42630 99999 ARSUK GL 61.183 -48.45 137.0 20020420 20051012 42660 99999 NUNARSUIT GL 60.75 -48.45 30.0 19820104 20170923 42700 99999 NARSARSUAQ GL BGBW 61.161 -45.426 34.1 19410722 20170923 42720 99999 JULIANEHAAB GL BGJH 60.717 -46.05 34.0 19360501 20170923 42730 99999 QAQORTOQ HELIPORT GL 60.717 -46.033 18.0 20050724 20050724 42740 99999 QAGSSIMIUT GL 60.8 -47.1 13.0 20011002 20050616 42800 99999 NARSAQ HELIPORT GL 60.917 -46.05 25.0 19490113 20060214 42801 99999 NARSSAQ GL BGNS 60.9 -45.967 30.0 19440613 19490101 42830 99999 NANORTALIK HELIPORT GL 60.133 -45.233000000000004 5.0 19730102 20060217 42850 99999 ANGISOQ GL BGAS 59.983000000000004 -45.2 16.0 19811202 20170923 43010 99999 KAP MORRIS JESUP GL 83.65 -33.367 4.0 19811029 20170923 43050 99999 CAPE HARALD MOLTKE GL 82.15 -29.916999999999998 4.0 19831001 20050601 43100 99999 STATION NORD GL 81.6 -16.65 43.0 19520511 20140404 43120 99999 STATION NORD AWS GL 81.6 -16.65 36.0 19850801 20170923 43130 99999 HENRIK KROEYER HOLME GL 80.65 -13.717 10.0 19840901 20170923 43200 99999 DANMARKSHAVN (PORT) GL BGDH 76.767 -18.667 12.0 19490101 20170923 43300 99999 DANEBORG (AUT) GL BGDB 74.3 -20.217 44.0 19450901 20170923 43311 99999 UGO DANEBORGE GL 74.3 -20.217 43.0 20070307 20070307 43350 99999 MYGGBUKTA GL 73.483 -21.566999999999997 3.0 19310104 19390730 43380 99999 MESTERS VIG GL BGMV 72.25 -24.333000000000002 10.0 19730101 20060418 43390 99999 SCORESBYSUND GL BGSC 70.483 -21.95 69.0 19360501 20161207 43400 99999 CAPE TOBIN (AUT) GL BGKT 70.417 -21.967 41.0 19510801 20040919 43410 99999 CONSTABLE POINT GL BGCO 70.75 -22.65 10.0 19860510 20170923 43490 99999 KANGERDLUGSSUAK GL 68.15 -31.75 3.0 19490101 19500804 43500 99999 APUTITEQ (AUT) GL BGAT 67.783 -32.3 18.0 19500801 19870131 43510 99999 APUTITEEQ GL BGAT 67.783 -32.283 23.0 19870301 20170923 43600 99999 TASIILAQ GL BGAM 65.6 -37.633 52.0 19360501 20170923 43610 99999 KULUSUK LUFTHAVN GL BGKK 65.583 -37.15 37.0 19431005 20170923 43650 99999 KULUSUK LUFTHAVN GL 65.567 -37.117 327.0 19730101 19901016 43730 99999 IKERMIIT GL 64.783 -40.3 80.0 19861201 20170923 43800 99999 TINGMIARMIUT GL 62.417 -42.25 10.0 19490101 20050906 43810 99999 IKERMIUARSSUK (AUT) GL 61.8 -42.0 33.0 19800215 19891129 43820 99999 IKERMIUARSUK GL 61.933 -42.067 39.0 19431101 20170923 43900 99999 PRINS CHRISTIAN GL BGPC 60.033 -43.117 19.0 19430101 20170923 44160 99999 SUMMIT GL 72.583 -38.45 3207.0 19980301 20170923 44180 99999 SUMMIT-US GL 72.583 -38.5 3198.0 20110201 20130212 44360 99999 NEEM GL 77.502 -50.873999999999995 2450.0 20110402 20151223 44520 99999 JAR 1 GL 69.49600000000001 -49.693999999999996 905.0 20151008 20160809 44580 99999 SISS CAMP GL 69.565 -49.331 1093.0 20151008 20160809 44640 99999 DYE 2 GL BGRN 66.48100000000001 -46.283 2098.0 20110201 20130212 44850 99999 SADDLE GL 65.983 -44.5 2467.0 20110105 20160809 44880 99999 NASA-SE GL 66.467 -42.483000000000004 2406.0 20110101 20160809 49999 1 BARBER GL 71.67 -38.17 3170.0 19900726 19960629 49999 2 CATHY (GREENLAND) GL 72.3 -38.0 3210.0 19870504 19890529 49999 3 GISP2 GL 72.58 -38.46 3205.0 19890608 19970125 49999 4 GRIP GL 72.57 -37.62 3230.0 19890804 19900613 49999 5 JULIE GL 72.57 -34.63 3100.0 19910802 19950520 49999 6 KENTON (GREENLAND) GL 72.28 -38.82 3185.0 19890609 19980619 49999 7 KLINCK GL 72.31 -40.48 3105.0 19900809 19950517 49999 8 MATT GL 73.48 -37.62 3100.0 19910808 19950515 60050 99999 MYKINES DA 62.1 -7.683 100.0 20010601 20150302 60080 99999 FRODBA HELIPORT DA 61.533 -6.767 23.0 20160517 20170817 60090 99999 AKRABERG DA 61.4 -6.667000000000001 102.0 19730101 20170923 60100 99999 VAGAR FO EKVG 62.06399999999999 -7.277 85.3 19740805 20170923 60110 99999 TORSHAVN DA 62.016999999999996 -6.767 61.0 19310103 20170923 60120 99999 KIRKJA DA 62.317 -6.317 56.0 20010716 20160916 60160 99999 HORNS REV A FO EKHR 55.5 7.867000000000001 21.0 20101213 20170923 60170 99999 HORNS REV B HELIDECK DA EKHN 55.6 7.624 10.0 20101213 20170923 60190 99999 SILSTRUP DA 56.933 8.633 41.0 20050405 20170923 60210 99999 HANSTHOLM DA 57.117 8.6 3.0 19310101 20170911 60220 99999 TYRA OST DA EKGF 55.72 4.8 43.0 20050309 20170923 60221 99999 GORM C OIL PLATFORM HELIPAD DA EKGC 55.58 4.7589999999999995 96.0 20120822 20170923 60222 99999 HALFDAN A OIL PLATFORM HELIPAD DA EKHA 55.531000000000006 5.004 94.5 20120821 20170923 60223 99999 TYRA E OIL PLATFORM HELIPAD DA EKTE 55.722 4.802 95.1 20120821 20170923 60224 99999 HARALD HELIDECK OIL RIG DA EKHD 56.343999999999994 4.272 95.0 20120904 20170923 60230 99999 GORM (AUT/MAN) DA 55.583 4.7669999999999995 10.0 19821001 19860907 60240 99999 THISTED DA EKTS 57.068999999999996 8.705 7.0 19730621 20070201 60300 99999 FLYVESTATION AALBORG DA EKYT 57.093 9.849 3.0 19400401 20170923 60310 99999 TYLSTRUP DA 57.183 9.95 13.0 20050405 20170923 60320 99999 STENHOJ DA 57.383 10.333 55.0 20050405 20170923 60330 99999 HIRTSHALS DA 57.6 9.967 3.0 19770110 20170912 60335 99999 SINDAL DA 57.467 10.217 28.0 19770322 19770513 60340 99999 SINDAL DA EKSN 57.504 10.229 28.0 19820501 20170922 60370 99999 SKAGEN DA 57.783 10.732999999999999 1.0 19730921 19791125 60410 99999 SKAGEN DA 57.733000000000004 10.633 5.0 19280101 20170923 60430 99999 FREDERIKSHAVN DA 57.4 10.517000000000001 80.0 19890216 20070307 60440 99999 HALS DA 56.983000000000004 10.317 16.0 19860614 20170911 60450 99999 DYBVAD DA 57.266999999999996 10.317 16.0 19780403 19900317 60460 99999 19730111 19740805 60470 99999 LAESO TRINDEL DA 57.467 11.417 1.0 19730103 20050722 60480 99999 HADSUND DA EKHS 56.717 10.117 2.0 19830203 20020403 60490 99999 HALD V DA 56.567 10.1 89.0 20010918 20170923 60520 99999 THYBOROEN DA 56.7 8.217 4.0 19730101 20170923 60530 99999 AGGERSUND DA 57.0 9.3 6.0 19760311 20040717 60540 99999 LINDTORP AIRPORT DA EKHO 56.383 8.433 15.0 19770508 20070307 60546 99999 HORNS REV A HELIDECK DA 55.50899999999999 7.875 10.0 20091110 20101214 60550 99999 TORSMINDE DA 56.367 8.117 5.0 20020722 20170918 60560 99999 MEJRUP DA 56.383 8.667 53.0 20120411 20170923 60580 99999 HVIDE SANDE DA 56.0 8.15 5.0 19890216 20170923 60590 99999 LYNGVIG DA 56.05 8.1 3.0 19730101 19900209 60600 99999 KARUP DA EKKA 56.297 9.125 51.8 19730101 20170923 60620 99999 SKIVE DA EKSV 56.55 9.173 22.6 19761201 20070307 60630 99999 RONBJERG HUSE HAVN DA 56.9 9.167 2.0 19400701 19411231 60640 99999 HOLSTEBRO DA 56.367 8.583 21.0 19740613 19740921 60650 99999 AARS SYD DA 56.75 9.5 33.0 19780415 20170923 60660 99999 STAUNING DA EKVJ 55.99 8.354 5.2 19730621 20170923 60670 99999 19730102 19730527 60680 99999 ISENVAD DA 56.1 9.183 62.0 20120411 20170923 60690 99999 FOULUM DA 56.5 9.567 58.0 19881001 20170923 60700 99999 AARHUS DA EKAH 56.3 10.619000000000002 25.0 19730101 20170923 60710 99999 FORNAES (CAPE) DA 56.45 10.967 8.0 19730101 20070307 60720 99999 OEDUM DA 56.3 10.133 62.0 20120411 20170923 60730 99999 SLETTERHAGE FYR DA 56.1 10.517000000000001 6.0 19770401 20170923 60740 99999 AARHUS SYD DA 56.083 10.133 55.0 19770226 20170923 60750 99999 AARHUS DA 56.167 10.217 15.0 20031011 20070307 60760 99999 HADSTEN (DEAD) DA 56.333 10.05 19.0 19790402 19830914 60780 99999 ANHOLT ISLAND (AUT) DA EKAT 56.7 11.55 8.0 19841201 20070319 60790 99999 ANHOLT DA 56.717 11.517000000000001 4.0 19730101 20170923 60800 99999 ESBJERG DA EKEB 55.526 8.552999999999999 29.6 19730621 20170923 60810 99999 BLAAVANDSHUK DA 55.55 8.083 18.0 19280103 20170923 60820 99999 BORRIS DA 55.967 8.633 25.0 20120411 20170923 60840 99999 HERNING/SKINDERHOLM DA EKHG 56.183 9.033 51.0 19770401 20020108 60860 99999 OKSBOEL DA 55.583 8.25 17.0 20080825 20120913 60870 99999 ANHOLT KNOB DA 56.75 11.9 1.0 19730103 19860421 60890 99999 SAEDENSTRAND DA 55.5 8.4 11.0 19730101 20070616 60930 99999 VESTER VEDSTED DA 55.3 8.667 4.0 20120411 20170923 60960 99999 ROEMOE/JUVRE DA 55.183 8.567 9.0 19840905 20170923 60990 99999 HAVNEBY DA 55.083 8.567 3.0 19781201 20030512 60994 99999 OKSBOEL DA EKOX 55.583 8.25 17.0 20050530 20170824 61000 99999 VANDEL DA EKVA 55.7 9.2 73.0 19730102 20050213 61020 99999 HORSENS/BYGHOLM DA 55.867 9.783 24.0 20120411 20170923 61040 99999 BILLUND DA EKBI 55.74 9.152000000000001 75.3 19730101 20170923 61050 99999 19740613 19740805 61060 99999 TVINGSTRUP DA 55.917 9.917 70.0 19750911 19900131 61070 99999 HORNS REV (DEAD) DA 55.567 7.332999999999999 1.0 19730101 19801024 61080 99999 KOLDING VAMDRUP DA EKVD 55.43600000000001 9.331 43.6 19900911 20170923 61090 99999 ASKOV DA 55.467 9.117 62.0 20120411 20170923 61100 99999 SKRYDSTRUP DA EKSP 55.226000000000006 9.264 43.0 19730101 20170923 61110 99999 BAAGOE DA 55.3 9.8 2.0 19740805 20040829 61150 99999 MOLLEHUS DA 54.9 8.833 1.0 19740915 19891031 61160 99999 ST. JYNDEVAD (AUT) DA 54.9 9.167 0.0 19840904 19880623 61180 99999 SONDERBORG DA EKSB 54.964 9.792 7.3 19730621 20170923 61190 99999 KEGNAES DA 54.85 9.982999999999999 19.0 19730101 20170923 61200 99999 ODENSE DA EKOD 55.477 10.331 17.1 19730101 20170923 61230 99999 ASSENS/TOROE DA 55.25 9.883 3.0 20010601 20170923 61240 99999 SYDFYNS/TASINGE ISL DA EKST 55.016999999999996 10.567 6.0 19830401 20170923 61245 99999 AVNO AIR BASE DA EKAV 55.083 11.783 4.0 20120704 20170923 61260 99999 AARSLEV DA 55.317 10.433 51.0 20120411 20170923 61280 99999 MIDDLEFART DA 55.516999999999996 9.767000000000001 28.0 20020112 20060418 61310 99999 VESBORG DA 55.766999999999996 10.55 5.0 19830201 19960416 61350 99999 FLAKKEBJERG DA 55.317 11.383 34.0 20120411 20170923 61360 99999 TYSTOFTE DA 55.25 11.333 12.0 20050405 20170923 61370 99999 HATTER BARN DA 55.867 10.933 0.0 19850802 19851226 61380 99999 LANGOE DA 54.817 11.0 4.0 20010726 20170923 61390 99999 KELDSNOR DA 54.733000000000004 10.732999999999999 8.0 19830201 19910331 61400 99999 NAKSKOV AIRPORT DA 54.817 11.133 -1.0 19880601 19890413 61410 99999 ABED DA 54.833 11.333 9.0 20010919 20170923 61420 99999 ALBUEN DA 54.833 10.967 6.0 19911002 20000807 61430 99999 LOLLAND FALSTER MARIBO DA EKMB 54.699 11.44 4.9 19860401 20070209 61440 99999 BOGUS DANISH DA 0.0 0.0 -999.0 19730624 19850919 61441 99999 MARIBO AIRPORT DA 54.7 11.45 5.0 19850921 19880104 61443 99999 MARIBO AIRPORT DA 54.7 11.433 5.0 19880105 19901016 61470 99999 VINDEBAEK KYST DA 54.883 12.183 3.0 19730101 20170923 61490 99999 GEDSER DA 54.567 11.95 5.0 19530101 20170923 61500 99999 AVNO(DAFB) DA 55.083 11.783 4.0 19730102 20060109 61510 99999 OMOE DA 55.167 11.133 3.0 19730101 20170923 61520 99999 GLUMSO-ON-SJAELLAND DA 55.35 11.683 25.0 19730401 19841231 61530 99999 TYVELSE DA 55.383 11.683 38.0 19801003 20080429 61540 99999 BRANDELEV DA 55.2 11.867 46.0 20120411 20170921 61560 99999 HOLBAEK DA 55.733000000000004 11.6 13.0 19740805 20170923 61570 99999 19730103 19750509 61580 99999 KALUNDBORG DA 55.667 11.1 2.0 19840814 20060113 61590 99999 ROESNAES DA 55.75 10.867 15.0 19740906 20170923 61600 99999 VAERLOSE DA EKVL 55.766999999999996 12.343 18.0 19391101 20070227 61610 99999 SPODSBJERG DA 55.983000000000004 11.867 5.0 19830401 20031208 61620 99999 KRONBORG DA 56.033 12.633 5.0 20010726 20010726 61640 99999 HESSELO ISL (AUT) DA 56.2 11.717 8.0 19850102 20040330 61641 99999 COPENHAGEN/SKOVLUND DA EKSL 55.717 12.383 32.0 20070306 20070307 61650 99999 HESSELOE DA 56.2 11.717 18.0 20010919 20170215 61655 99999 COPENHAGEN/ROSKILDE DA 55.583 12.133 45.0 19740613 19770323 61680 99999 NAKKEHOVED DA 56.117 12.35 43.0 19881101 20170923 61690 99999 GNIBEN DA 56.016999999999996 11.283 12.0 19740731 20170923 61700 99999 ROSKILDE DA EKRK 55.586000000000006 12.130999999999998 44.5 19770419 20170923 61730 99999 STEVNS DA 55.283 12.45 40.0 20000706 20010506 61740 99999 TESSEBOELLE DA 55.4 12.15 22.0 20050405 20170923 61790 99999 MOEN DA 54.95 12.533 17.0 19730101 20060531 61800 99999 KASTRUP DA EKCH 55.618 12.655999999999999 5.2 19290801 20170923 61810 99999 JAEGERSBORG DA 55.766999999999996 12.533 42.0 19990119 20170923 61830 99999 DROGDEN DA 55.533 12.717 6.0 19830201 20170607 61840 99999 DMI DA 55.717 12.567 8.0 19890601 20020906 61860 99999 KOEBENHAVN/LANDBOHOEJSKOLEN DA 55.683 12.55 7.0 20031113 20031113 61880 99999 SJAELSMARK DA 55.883 12.417 40.0 20120411 20170923 61900 99999 BORNHOLM RONNE DA EKRN 55.063 14.76 15.8 19740110 20170923 61910 99999 CHRISTIANSO (LGT-H) DA 55.317 15.183 15.0 19730101 20030306 61930 99999 HAMMER ODDE FYR DA 55.3 14.767000000000001 9.0 19310101 20170923 61960 99999 POVLSKER DA 55.016999999999996 15.067 22.0 19771007 19840719 61970 99999 NEXOE VEST DA 55.05 15.1 25.0 20070807 20170923 61990 99999 DUEODDE (CAPE) DA 55.0 15.083 6.0 19530101 19771229 62000 99999 YPENBURG(NAFB) NL 52.033 4.35 1.0 19490101 20090202 62010 99999 D15-FA-1 HELIPAD OIL PLATFORM NL EHDV 54.317 2.9330000000000003 36.0 20080826 20170923 62030 99999 P11-B / DE RUYTER NL EHPG 52.367 3.35 24.0 20091109 20170923 62040 99999 K14-FA-1C NL EHKV 53.266999999999996 3.633 27.0 20070815 20170923 62050 99999 A12-CPP HELIPAD OIL PLATFORM NL EHAK 55.417 3.8169999999999997 33.0 20090209 20170923 62060 99999 F16-A NL EHFZ 54.117 4.0169999999999995 28.0 20070105 20170923 62070 99999 L9-FF-1 NL EHMG 53.617 4.967 30.0 20070105 20170923 62080 99999 AWG-1 NL EHMA 53.5 5.95 27.0 20070105 20170923 62090 99999 IJMOND NL 52.467 4.5169999999999995 0.0 20010701 20170923 62100 99999 VALKENBURG NL EHVB 52.167 4.433 1.0 19490101 20160503 62110 99999 J6-A HELIPAD OIL PLATFORM NL EHJA 53.817 2.95 34.0 20090209 20170923 62120 99999 HOORN-A HELIPAD OIL PLATFORM NL EHQE 52.917 4.15 41.0 20081118 20170923 62200 99999 TEXEL ISLAND NL 53.083 4.75 3.0 19490101 20070307 62250 99999 IJMUIDEN NL 52.467 4.567 4.0 19531101 20170923 62290 99999 TEXELHORS WP NL 53.0 4.717 0.0 19960901 20140106 62300 99999 DEN HELDER NL 52.967 4.75 7.0 19310101 19730107 62350 99999 DE KOOIJ NL EHKD 52.923 4.781000000000001 0.9 19730101 20170923 62390 99999 F3 - NETHERLANDS NL EHFD 54.85 4.7330000000000005 0.0 19940301 20170923 62400 99999 SCHIPHOL NL EHAM 52.309 4.763999999999999 -3.4 19320503 20170923 62410 99999 AMSTERDAM/COPENHA NL 52.417 4.867 0.0 20031007 20070307 62420 99999 VLIELAND ISLAND NL EHVL 53.25 4.917 5.0 19730102 20170923 62440 99999 HOORAN AWS NL 52.65 5.05 -1.0 19940901 20070307 62450 99999 19360102 19750520 62470 99999 BLOEMENDAAL NL 52.417 4.55 18.0 19960801 20060613 62480 99999 WIJDENES NL 52.633 5.167000000000001 4.0 19970204 20170923 62490 99999 BERKHOUT NL 52.65 4.9830000000000005 -3.0 20010701 20170923 62500 99999 TERSCHELLING(LGT-H) NL 53.367 5.2170000000000005 27.0 19490101 20051203 62510 99999 TERSCHELLING HOORN AWS NL 53.4 5.35 2.0 19960801 20170923 62520 99999 K13-A NL EHJR 53.217 3.217 30.0 19960801 20170923 62530 99999 AUK-ALFA NL EHAU 56.383 2.05 34.0 19960801 20060303 62540 99999 MEETPOST NOORDWIJK NL 52.266999999999996 4.3 17.0 19960801 20060705 62550 99999 NOORDELIJKE ZEERAAF NL 61.233000000000004 1.15 47.0 19960801 20060303 62570 99999 WIJK AAN ZEE NL 52.5 4.6 10.0 20010701 20170923 62580 99999 HOUTRIBDIJK NL 52.65 5.4 7.0 20060809 20170923 62600 99999 DE BILT NL EHDB 52.1 5.183 4.0 19310101 20170923 62650 99999 SOESTERBERG NL EHSB 52.126999999999995 5.276 20.1 19511001 20081120 62670 99999 STAVOREN AWS NL 52.9 5.382999999999999 3.0 19940901 20170923 62680 99999 HOUTRIB NL 52.533 5.433 2.0 19780301 20070307 62690 99999 LELYSTAD NL EHLE 52.46 5.527 -4.0 19940901 20170923 62691 99999 AUK-ALFA NL 56.4 2.0669999999999997 34.0 20040510 20060303 62692 99999 EURO PLATFORM NL EHEP 52.0 3.283 18.0 20040510 20061127 62693 99999 VLISSINGEN NL EHFS 51.45 3.6 8.0 20040510 20170923 62694 99999 LE GOEREE NL EHGO 51.933 3.667 19.0 20040510 20061127 62695 99999 K13-A NL EHKA 53.217 3.217 30.0 20040510 20061127 62696 99999 MEETPOST NOORDWUK NL EHMP 52.266999999999996 4.3 17.0 20040510 20060705 62697 99999 NOORDELUKE ZEERAAF NL EHNC 61.233000000000004 1.15 47.0 20040510 20060303 62700 99999 LEEUWARDEN NL EHLW 53.229 5.761 0.9 19490101 20170923 62710 99999 STAVOREN HAVEN NL 52.883 5.35 3.0 20010701 20051019 62720 99999 RAMSPOL NL 52.617 5.85 6.0 19520101 19770831 62721 99999 RAMSPOL NL 52.617 5.85 6.0 20070306 20070307 62730 99999 MARKNESSE AWS NL 52.7 5.882999999999999 -3.0 19940901 20170923 62750 99999 DEELEN NL EHDL 52.06100000000001 5.872999999999999 48.2 19491017 20170923 62770 99999 LAUWERSOOG AWS NL 53.417 6.2 0.0 19940901 20170923 62780 99999 HEINO AWS NL 52.433 6.267 5.0 19940901 20170923 62790 99999 HOOGEVEEN AWS NL 52.733000000000004 6.5729999999999995 16.0 19940901 20170923 62800 99999 EELDE NL EHGG 53.12 6.579 5.2 19310601 20170923 62830 99999 HUPSEL AWS NL 52.067 6.65 29.0 19940901 20170923 62850 99999 HUIBERTGAT WP NL 53.567 6.4 0.0 19960901 20170923 62860 99999 NIEUW BEERTA NL 53.2 7.15 0.0 19940901 20170923 62900 99999 TWENTHE NL EHTW 52.27 6.874 34.7 19490101 20170923 63000 99999 NOORDHINDER NL 51.65 2.5669999999999997 3.0 19310102 19840718 63080 99999 CADZAND WP NL 51.383 3.383 7.0 19960901 20170923 63100 99999 VLISSINGEN NL 51.45 3.6 10.0 19280102 20170923 63110 99999 HOOFDPLAAT NL 51.367 3.667 0.0 20010701 20160705 63120 99999 OOSTERSCHELDE WP NL 51.766999999999996 3.617 0.0 19960901 20170923 63130 99999 VLAKTE VAN RAAN NL 51.5 3.25 0.0 20010704 20170923 63150 99999 HANSWEERT NL 51.433 4.0169999999999995 0.0 20010704 20170923 63160 99999 OOSTERSCHELDE 4 NL 51.65 3.7 0.0 19960901 20170923 63190 99999 WESTDORPE NL 51.233000000000004 3.867 2.0 19940901 20170923 63200 99999 LE GOEREE NL EHSC 51.933 3.667 19.0 19490101 20170923 63210 99999 EURO PLATFORM NL EHSA 52.0 3.283 18.0 19960801 20170923 63230 99999 WILHELMINADORP AWS NL 51.533 3.883 1.0 19940901 20140106 63240 99999 STAVENISSE NL 51.6 4.0 0.0 20010704 20170923 63250 99999 ZIERIKZEE NL 51.65 3.9330000000000003 1.0 19740613 19900324 63300 99999 HOEK VAN HOLLAND NL 51.983000000000004 4.1 14.0 19490214 20170923 63310 99999 MAROLLEGAT NL 51.483000000000004 4.2 0.0 19960901 20170923 63400 99999 WOENSDRECHT NL EHWO 51.449 4.342 19.2 19490103 20170923 63401 99999 WOENSDRECHT RNLAFB& NL EHWO 51.45 4.333 17.0 19810910 19830422 63430 99999 ROTTERDAM GEULHAVEN AWS NL 51.9 4.317 4.0 19940901 20170923 63440 99999 ROTTERDAM NL EHRD 51.957 4.437 -4.6 19570101 20170923 63480 99999 CABAUW TOWER NL 51.967 4.933 2.0 19960101 20170923 63500 99999 GILZE RIJEN NL EHGR 51.567 4.9319999999999995 14.9 19490101 20170923 63560 99999 HERWIJNEN AWS NL 51.85 5.132999999999999 1.0 19940901 20170923 63700 99999 EINDHOVEN NL EHEH 51.45 5.375 22.6 19490101 20170923 63750 99999 VOLKEL NL EHVK 51.656000000000006 5.709 21.9 19510601 20170923 63770 99999 ELL AWS NL 51.2 5.767 30.0 20010701 20170923 63790 99999 OOST MAARLAND AWS NL 50.8 5.7170000000000005 49.0 19940901 19990330 63800 99999 MAASTRICHT NL EHBK 50.912 5.77 114.3 19490101 20170923 63850 99999 DE PEEL(NAFB) NL 51.55 5.933 31.0 19730402 19940611 63910 99999 ARCEN AWS NL 51.5 6.2 19.0 19940901 20170923 64000 99999 KOKSIJDE BE EBFN 51.09 2.653 6.1 19490101 20170923 64040 99999 WEST-HINDER (LV) BE 51.4 2.4330000000000003 7.0 19740903 20031110 64070 99999 OOSTENDE BE EBOS 51.199 2.862 4.0 19360103 20170923 64080 99999 OOSTENDE (PIER) BE 51.233000000000004 2.917 15.0 19490101 20060112 64100 99999 ZEEBRUGGE TERMINAL BE 51.35 3.2 18.0 19520101 19550925 64140 99999 BEITEM BE 50.9 3.117 25.0 20080115 20170923 64160 99999 WEVELGEM BE 50.817 3.2 25.0 19771030 20030514 64180 99999 ZEEBRUGGE BE 51.35 3.2 9.0 20091026 20170923 64280 99999 SEMMERZAKE BE EBMT 50.933 3.667 37.5 19730101 20170923 64310 99999 GENT/INDUSTRIE-ZONE BE EBGT 51.183 3.8 8.0 19791030 20170923 64320 99999 CHIEVRES AB BE EBCV 50.576 3.8310000000000004 58.8 19730101 20170923 64324 99999 LIEGE BE EBLH 50.633 5.45 201.0 19990114 20100917 64325 99999 CASTEAU/HELI (MET) BE EBCT 50.5 3.98 78.0 20100419 20170923 64340 99999 MELLE BE 50.983000000000004 3.8169999999999997 15.0 20091026 20170923 64390 99999 SINT KATELIJNE-WAVER BE 51.083 4.5169999999999995 11.0 20121001 20170923 64470 99999 UCCLE BE 50.8 4.35 101.0 19490101 20170923 64480 99999 MELSBROEK (BEL-AFB) BE EBMB 50.9 4.5 55.0 19951007 20050130 64490 99999 BRUSSELS SOUTH BE EBCI 50.458999999999996 4.454 187.1 19730101 20170923 64494 99999 ELSENBORN BE 50.467 -6.2170000000000005 0.0 19810327 19840817 64500 99999 DEURNE BE EBAW 51.18899999999999 4.46 11.9 19400605 20170923 64505 99999 BRUSSELLS (MIL) BE EBWM 50.883 4.5169999999999995 58.0 20061025 20111208 64510 99999 BRUSSELS NATL BE EBBR 50.901 4.484 56.1 19300302 20170923 64511 99999 BERTRIX BE EBBX 49.891999999999996 5.224 461.5 20061121 20080910 64514 99999 MELSBROEK (BEL-AFB) BE EBMB 50.917 4.4830000000000005 0.0 19830915 19830920 64520 99999 BRASSCHAAT (MIL) BE EBBT 51.333 4.5 23.0 19730101 20060608 64550 99999 DOURBES BE 50.1 4.6 233.0 20091026 20170923 64560 99999 FLORENNES BE EBFS 50.243 4.646 285.0 19490101 20170923 64580 99999 BEAUVECHAIN BE EBBE 50.75899999999999 4.768 112.8 19730101 20170923 64590 99999 ERNAGE BE 50.583 4.683 157.0 19311105 20170923 64620 99999 WEELDE BE EBWE 51.395 4.96 32.0 19990418 20011012 64630 99999 GOETSENHOVEN (MIL) BE EBTN 50.783 4.95 81.0 19730101 20030731 64640 99999 RETIE BE 51.217 5.033 21.0 20091026 20170923 64650 99999 SCHAFFEN BE EBDT 51.0 5.067 54.0 19730101 20170923 64700 99999 SINT TRUIDEN BE EBST 50.792 5.202000000000001 75.0 19520121 20070307 64720 99999 HUMAIN BE 50.2 5.25 296.0 20091026 20170923 64730 99999 SINSIN BE 50.266999999999996 5.25 244.0 19730809 20040424 64740 99999 LIBRAMONT BE 49.917 5.367000000000001 492.0 19400706 19420630 64760 99999 SAINT HUBERT MIL BE EBSU 50.036 5.404 588.3 19490101 20170923 64765 99999 SAINT HUBERT BE EBSH 50.033 5.4 557.0 20090604 20170923 64770 99999 DIEPENBEEK BE 50.917 5.45 39.0 20091026 20170920 64780 99999 LIEGE BE EBLG 50.637 5.443 200.9 19490101 20170923 64785 99999 LIEGE/BIERSET(BAFB) BE 50.633 5.45 201.0 19741008 19901016 64790 99999 KLEINE BROGEL BE EBBL 51.168 5.47 61.0 19730101 20170923 64800 99999 MEIX-DEVANT-VIRTON BE 49.6 5.483 252.0 19490101 20031231 64810 99999 GENK/ZWARTBERG BE EBZW 50.933 5.5 63.0 19490101 20050102 64820 99999 19490101 19560630 64840 99999 BUZENOL BE 49.617 5.582999999999999 324.0 20091026 20170923 64900 99999 SPA/LA SAUVENIERE BE EBSP 50.483000000000004 5.917000000000001 482.0 19501001 20170923 64901 99999 SEMMERZAKE (BAFB) BE EBSZ 50.933 3.65 37.0 20040510 20170923 64940 99999 MONT-RIGI BE 50.516999999999996 6.067 673.0 20080115 20170923 64950 99999 BOTRANGE (MOUNT) BE 50.5 6.1 695.0 19510201 20011015 64960 99999 ELSENBORN (MIL) BE EBLB 50.467 6.183 570.0 19840501 20170923 65850 99999 CLERVAUX LU 50.05 6.017 454.0 19490101 19591231 65890 99999 LUXEMBOURG (BEGGEN) LU 49.65 6.132999999999999 235.0 19490101 19600928 65900 99999 LUXEMBOURG LU ELLX 49.626999999999995 6.212000000000001 376.1 19490101 20170923 65970 99999 ECHTERNACH LU 49.8 6.45 244.0 19490101 20060123 65985 99999 BERTRIX (BEL-AFB) BE EBBX 49.85 5.25 0.0 19840402 19840526 66000 99999 ST. CHRISCHONA SZ 47.567 7.683 493.0 19550101 19670930 66010 99999 BASEL-BINNINGEN SZ 47.55 7.582999999999999 317.0 19901101 20170923 66020 99999 DELEMONT SZ 47.35 7.35 439.4 20121126 20170923 66040 99999 NEUCHATEL (AUT) SZ LSGN 47.0 6.95 487.0 19820114 20170923 66045 99999 LES EPLATURES SZ LSGC 47.083999999999996 6.792999999999999 1026.6 20040803 20170923 66050 99999 CHASSERAL SZ 47.133 7.067 1631.0 19881201 20170923 66060 99999 CRESSIER SZ 47.05 7.067 431.0 20110124 20170923 66080 99999 CHAUMONT SZ 47.05 6.983 1136.1 20130905 20170923 66090 99999 LE MOLESON SZ 46.55 7.017 1973.0 19901101 20170923 66099 99999 DUBENDORF SZ LSMD 47.398999999999994 8.648 448.1 20040903 20170923 66100 99999 PAYERNE SZ 46.817 6.95 490.5 19590319 20170923 66110 99999 ALPNACH SZ LSMA 45.933 8.283 445.0 20050727 20070803 66120 99999 LA CHAUX-DE-FONDS SZ 47.083 6.8 1018.1 19800208 20170923 66130 99999 EMMEN SZ LSME 47.092 8.305 426.7 20050727 20170923 66140 99999 MEIRINGEN SZ LSMM 46.743 8.11 579.1 20050727 20170923 66160 99999 FAHY-BONCOURT SZ 47.433 6.95 597.0 19810101 20170923 66170 99999 LA BREVINE SZ 46.983000000000004 6.617000000000001 1050.0 20130905 20170923 66180 99999 MATHOD SZ 46.733000000000004 6.567 437.4 20060207 20170923 66190 99999 BULLET-LA FRETAZ SZ 46.833 6.582999999999999 1210.0 19901101 20170923 66200 99999 SCHAFFHAUSEN SZ 47.683 8.617 437.0 19550101 20170923 66210 99999 GUETTINGEN SZ 47.6 9.283 440.0 19901101 20170923 66230 99999 SALEN-REUTENEN SZ 47.65 9.017000000000001 719.7 20110124 20170923 66240 99999 HALLAU SZ 47.683 8.467 420.0 20120124 20170923 66250 99999 FRIBOURG-POSIEUX SZ 46.766999999999996 7.117000000000001 633.0 20111011 20170923 66260 99999 GOESGEN SZ 47.367 7.983 380.0 20080721 20170923 66270 99999 CHATEAU-D'OEX SZ 46.483000000000004 7.132999999999999 1030.0 20120208 20170923 66280 99999 PLAFFEIEN SZ 46.75 7.267 1041.0 19900205 20170923 66300 99999 BERN-BELPMOOS SZ 46.917 7.5 510.0 19310103 19900424 66303 99999 BERN BELP SZ LSZB 46.913999999999994 7.497000000000001 510.2 19900424 20170923 66304 99999 SAMEDAN SZ LSZS 46.534 9.884 1706.9 20070301 20170923 66310 99999 BERN-ZOLLIKOFEN SZ 46.983000000000004 7.4670000000000005 567.0 19901101 20170923 66320 99999 GRENCHEN SZ 47.183 7.417000000000001 429.0 19790402 20170923 66330 99999 BUCHS-AARAU SZ 47.383 8.083 389.0 19901101 20170923 66350 99999 KOPPIGEN SZ 47.133 7.617000000000001 482.0 20121130 20170923 66360 99999 MUEHLEBERG SZ 46.983000000000004 7.2829999999999995 483.0 20080604 20170923 66370 99999 MEIRINGEN SZ 46.717 8.167 590.6 20111011 20170923 66380 99999 LANGNAU IE SZ 46.933 7.8 706.0 20111011 20170923 66390 99999 NAPF SZ 47.0 7.933 1406.0 19821101 20170923 66400 99999 MARSENS SZ 46.65 7.067 714.5 20150818 20170923 66410 99999 MOEHLIN SZ 47.583 7.882999999999999 340.0 20110201 20170923 66430 99999 WYNAU SZ 47.25 7.7829999999999995 416.0 19780101 20170923 66440 99999 MOSEN SZ 47.25 8.232999999999999 453.5 20121130 20170923 66450 99999 RUENENBERG SZ 47.433 7.882999999999999 610.0 19900316 20170923 66460 99999 BEZNAU SZ 47.567 8.232999999999999 327.0 20080604 20170923 66470 99999 WUERENLINGEN SZ 47.533 8.232999999999999 337.0 20050321 20170923 66480 99999 EGOLZWIL SZ 47.183 8.0 522.0 20110124 20170923 66490 99999 LAUFENBURG SZ 47.55 8.05 322.0 20020424 20020424 66500 99999 LUZERN SZ 47.033 8.3 456.0 19901101 20170923 66510 99999 SCHUEPFHEIM SZ 46.95 8.017000000000001 743.7 20110124 20170923 66520 99999 FLUEHLI SZ 46.883 8.017000000000001 939.8 20020331 20170923 66540 99999 BRUGG-WILDEGG SZ 47.467 8.167 350.0 20031120 20031120 66550 99999 ENGELBERG SZ 46.817 8.417 1018.0 19901101 20170923 66560 99999 BRIENZ SZ 46.75 8.067 580.0 20121130 20170923 66570 99999 GISWIL SZ 46.85 8.2 475.0 20110124 20170923 66580 99999 ALPNACH SZ LSMA 46.943999999999996 8.283999999999999 445.0 19771212 20170923 66590 99999 PILATUS SZ 46.983000000000004 8.25 2110.0 19891016 20170923 66600 99999 ZUERICH-FLUNTERN SZ 47.383 8.567 557.6 19350101 20170923 66621 99999 GRENCHEN SZ LSZG 47.181999999999995 7.417000000000001 430.1 20040510 20170923 66640 99999 ZUERICH-AFFOLTERN SZ 47.433 8.517000000000001 441.0 19901101 20170923 66660 99999 LEIBSTADT SZ 47.6 8.183 341.0 20080604 20170923 66690 99999 LAEGEREN SZ 47.483000000000004 8.4 843.0 19740101 20170923 66700 99999 ZURICH SZ LSZH 47.465 8.549 431.6 19550101 20170923 66710 99999 STECKBORN SZ 47.667 8.982999999999999 398.0 20120209 20170923 66720 99999 ALTDORF SZ 46.867 8.633 451.0 19790401 20170923 66730 99999 WAEDENSWIL SZ 47.217 8.683 486.5 19901101 20170923 66740 99999 CHAM SZ 47.183 8.467 443.4 20140701 20170923 66750 99999 EINSIEDELN SZ 47.133 8.75 910.0 20070226 20170923 66760 99999 OBERAEGERI SZ 47.133 8.617 724.0 20070226 20170923 66770 99999 UETLIBERG SZ 47.35 8.482999999999999 854.0 20070226 20070228 66780 99999 BISCHOFSZELL SZ 47.5 9.232999999999999 470.0 20150818 20170923 66790 99999 AADORF-TAENIKON SZ 47.483000000000004 8.9 539.5 19901101 20170923 66800 99999 SAENTIS SZ 47.25 9.35 2500.0 19350101 20170923 66810 99999 ST. GALLEN SZ 47.433 9.4 777.8 19811101 20170923 66811 99999 ST GALLEN ALTENRHEIN SZ LSZR 47.485 9.561 398.1 20040510 20170923 66820 99999 ELM SZ 46.917 9.183 965.0 20111011 20170923 66830 99999 SCHMERIKON SZ 47.217 8.933 409.4 20111031 20170923 66840 99999 WEESEN SZ 47.133 9.1 423.0 20010808 20040917 66850 99999 GLARUS SZ 47.033 9.067 517.5 19901101 20170923 66860 99999 BAD RAGAZ SZ 47.016999999999996 9.5 497.5 20120206 20170923 66870 99999 QUINTEN SZ 47.133 9.217 423.0 20111024 20170923 66880 99999 CRAP MASEGN SZ 46.85 9.183 2480.0 20111011 20170923 66890 99999 HOERNLI SZ 47.367 8.95 1124.0 19940301 20170923 66900 99999 ALTENRHEIN SZ 47.483000000000004 9.567 398.4 20140127 20170923 66930 99999 EBNAT-KAPPEL SZ 47.266999999999996 9.1 623.0 20041224 20170923 66950 99999 ANDERMATT SZ 46.633 8.583 1438.1 20140127 20170923 67000 99999 GENEVA COINTRIN SZ LSGG 46.238 6.109 430.1 19350101 20170923 67010 99999 LE CHENIT SZ 46.6 6.2170000000000005 1015.0 20070226 20070228 67020 99999 LA DOLE SZ 46.433 6.1 1670.2 19730101 20170923 67030 99999 LES CHARBONNIERES SZ 46.667 6.317 1045.1 20020407 20170923 67040 99999 BIERE SZ 46.516999999999996 6.332999999999999 684.0 20070226 20170923 67050 99999 NYON-CHANGINS SZ 46.4 6.233 432.0 19901101 20170923 67060 99999 ST-PREX SZ 46.483000000000004 6.45 425.0 20111206 20170923 67070 99999 VILLARS-TIERCELIN SZ 46.617 6.7170000000000005 859.0 20140402 20170923 67080 99999 ORON SZ 46.567 6.867000000000001 828.8 20120124 20170923 67090 99999 BOUVERET SZ 46.4 6.867000000000001 375.0 20060103 20170923 67100 99999 LAUSANNE SZ 46.55 6.617000000000001 610.0 19870519 20010805 67110 99999 PULLY SZ 46.516999999999996 6.667000000000001 462.0 19901101 20170923 67120 99999 AIGLE SZ 46.333 6.917000000000001 383.0 19810501 20170923 67140 99999 LES DIABLERETS SZ 46.333 7.2 2964.3 20070226 20170923 67150 99999 EVIONNAZ SZ 46.183 7.0329999999999995 480.0 20140127 20170923 67160 99999 MOTTEC SZ 46.15 7.617000000000001 1580.0 19901101 20170923 67170 99999 COL DU GRAND ST BERNARD SZ 45.867 7.167000000000001 2479.0 19901101 20170923 67180 99999 NOVILLE SZ 46.383 6.9 373.0 19770104 20030710 67200 99999 SION SZ LSGS 46.22 7.327000000000001 481.9 19550101 20170923 67205 99999 SION SZ LSMS 46.22 7.32 482.0 20060710 20170923 67210 99999 BINN SZ 46.367 8.183 1448.0 20140128 20170923 67220 99999 EVOLENE-VILLAZ SZ 46.117 7.517 1828.0 19901101 20170923 67230 99999 VERBIER-LES ATTLELAS SZ 46.1 7.267 2733.0 20070226 20170923 67240 99999 MONTANA SZ 46.3 7.4670000000000005 1508.0 19790401 20170923 67250 99999 BLATTEN-LOETSCHENTAL SZ 46.417 7.817 1538.2 20130905 20170923 67260 99999 PLAINE MORTE SZ 46.367 7.483 2937.0 19780702 19780702 67270 99999 VISP SZ 46.3 7.85 642.0 19900401 20170923 67280 99999 GRAECHEN SZ 46.2 7.832999999999999 1605.2 20070226 20170923 67300 99999 JUNGFRAUJOCH SZ 46.55 7.983 3576.0 19350101 20170923 67330 99999 BOLTIGEN SZ 46.633 7.382999999999999 820.0 20070226 20170923 67340 99999 INTERLAKEN SZ 46.667 7.867000000000001 578.6 19770616 20170923 67350 99999 ADELBODEN SZ 46.5 7.567 1328.1 19901101 20170923 67390 99999 EGGISHORN SZ 46.433 8.083 2893.0 20070226 20170923 67400 99999 TITLIS SZ 46.766999999999996 8.433 3094.3 20130905 20170923 67430 99999 ERNEN SZ 46.4 8.133 1000.0 19930121 20050427 67440 99999 GRIMSEL-HOSPIZ SZ 46.567 8.333 1965.0 19901101 20170923 67450 99999 ULRICHEN SZ 46.5 8.317 1347.1 19901101 20170923 67470 99999 MONTE ROSA SZ 45.95 7.817 2885.0 20100201 20170923 67480 99999 ZERMATT SZ 46.033 7.75 1624.0 19901101 20170923 67490 99999 GORNERGRAT SZ 45.983000000000004 7.7829999999999995 3129.3 20130905 20170923 67500 99999 GUETSCH OB ANDERMATT SZ 46.65 8.617 2284.2 19550101 20170923 67510 99999 ROBIEI SZ 46.45 8.517000000000001 1891.0 19910806 20170923 67520 99999 CEVIO SZ 46.317 8.6 422.4 20131001 20170923 67530 99999 PIOTTA SZ 46.516999999999996 8.683 1016.0 19790202 20170923 67540 99999 MATRO SZ 46.417 8.933 2171.0 20050222 20170923 67560 99999 ACQUAROSSA-COMPROVASCO SZ 46.467 8.933 552.0 19881001 20170923 67570 99999 LODRINO SZ 46.3 8.982999999999999 261.0 20070226 20070228 67580 99999 GRONO SZ 46.25 9.167 324.3 20060114 20170923 67590 99999 CIMETTA SZ 46.2 8.8 1648.0 19740101 20170923 67600 99999 LOCARNO-MONTI SZ 46.167 8.783 380.0 19730101 20170923 67620 99999 LOCARNO - MAGADINO SZ LSZL 46.17 8.88 198.0 19550101 20170923 67700 99999 LUGANO SZ LSZA 46.004 8.911 278.9 19350101 20170923 67710 99999 STABIO SZ 45.85 8.933 352.4 19820401 20170923 67770 99999 MONTE GENEROSO SZ 45.933 9.017000000000001 1601.2 20121130 20170923 67780 99999 BUFFALORA SZ 46.65 10.267000000000001 1970.0 20070226 20170923 67790 99999 SEGL-MARIA SZ 46.433 9.767000000000001 1804.2 20140401 20170923 67800 99999 WEISSFLUHJOCH SZ 46.833 9.817 2667.0 19881201 20170923 67810 99999 TAVANASA SZ 46.75 9.05 800.0 20061129 20061129 67820 99999 DISENTIS-SEDRUN SZ 46.7 8.85 1180.0 19770701 20170923 67830 99999 S BERNARDINO SZ 46.467 9.183 1638.0 19820401 20170923 67840 99999 DAVOS SZ 46.817 9.85 1592.0 19901101 20170923 67850 99999 AROSA SZ 46.8 9.683 1878.2 20160118 20170923 67860 99999 CHUR SZ 46.867 9.533 556.0 19800208 20170923 67870 99999 ANDEER SZ 46.617 9.433 989.0 20010811 20170923 67880 99999 VICOSOPRANO SZ 46.35 9.633 1075.0 19901101 20170923 67890 99999 ILANZ SZ 46.783 9.217 698.0 20140401 20170923 67900 99999 SCHIERS SZ 46.983000000000004 9.667 626.0 20011106 20170923 67910 99999 PIZ CORVATSCH SZ 46.417 9.817 3299.0 19770701 20170923 67920 99999 SAMEDAM SZ 46.533 9.883 1706.0 19800208 20170923 67930 99999 VALBELLA SZ 46.75 9.55 1560.0 20050321 20170923 67940 99999 POSCHIAVO-ROBBIA SZ 46.35 10.067 1079.1 19780718 20170923 67950 99999 PIZ MARTEGNAS SZ 46.583 9.533 2670.0 20111011 20170923 67960 99999 STA MARIA VAL MUESTAIR SZ 46.6 10.433 1390.0 20121130 20170923 67970 99999 PASSO DEL BERNINA SZ 46.417 10.017000000000001 2260.2 20150818 20170923 67980 99999 SCUOL SZ 46.8 10.283 1295.0 19901101 20170923 67990 99999 NALUNS SZ 46.817 10.267000000000001 2400.0 20060124 20170923 68060 99999 BUOCHS SZ 46.983000000000004 8.383 442.0 20060817 20071002 68065 99999 BUOCHS AIRPORT / STANS SZ LSZC 46.967 8.4 450.0 20080916 20170923 68070 99999 DUEBENDORF SZ 47.4 8.633 435.0 20070226 20070307 68420 99999 SITTERDORF SZ 47.516999999999996 9.267000000000001 506.0 20080122 20170120 68460 99999 SCALOTTAS SZ 46.717 9.517000000000001 2323.0 20090127 20170121 68470 99999 BRIENZER ROTHORN SZ 46.783 8.05 2280.0 20100126 20100202 68480 99999 PFAEFERS SZ 46.933 9.502 1420.0 20100126 20170121 68490 99999 SALEZ SZ 47.233000000000004 9.5 436.0 20110124 20110131 68500 99999 BACHTEL SZ 47.3 8.883 1115.0 20110124 20160124 68510 99999 HOMBRECHTIKOM SZ 47.25 8.767000000000001 496.0 20110124 20170121 68520 99999 SENT SZ 46.817 10.35 1420.0 20110124 20140126 68570 99999 GAMS SZ 47.2 9.417 701.0 20140116 20140126 69545 99999 HORNS REV B HELIDECK DA 55.6 7.624 10.0 20090925 20101214 69900 99999 VADUZ LS 47.133 9.517000000000001 463.0 19730101 20170923 70020 99999 BOULOGNE FR 50.733000000000004 1.6 74.0 19730101 20170923 70023 99999 CAPTIEUX FR LFYJ 44.183 -0.267 132.0 19880105 19880129 70030 99999 LE TOUQUET PARIS PLAGE FR LFAT 50.515 1.6269999999999998 11.0 19730101 20170923 70040 99999 CAP GRIS NEZ FR 50.867 1.5830000000000002 45.0 20080423 20170507 70050 99999 ABBEVILLE FR LFOI 50.143 1.8319999999999999 67.1 19261004 20170923 70070 99999 SAINT INGLEVERT FR 50.867 1.75 123.0 19310101 19420630 70090 99999 CALAIS/DUNKERQUE FR 50.967 1.95 3.0 19290801 20170923 70100 99999 DUNKERQUE FR 51.05 2.333 17.0 19730101 20170923 70130 99999 BIHUCOURT FR 50.117 2.8 130.0 19401014 19420808 70140 99999 BERCK-SUR-MER FR 50.417 1.6 7.0 19400715 19420923 70150 99999 LESQUIN FR LFQQ 50.562 3.089 47.9 19450301 20170923 70160 99999 VITRY-EN-ARTOIS FR 50.333 3.0 48.0 19310101 20120222 70170 99999 EPINOY FR LFQI 50.222 3.154 78.3 19730101 20120629 70190 99999 BARFLEUR (POINT) FR 49.7 -1.2670000000000001 7.0 19850701 20170923 70200 99999 LA HAGUE FR 49.717 -1.933 12.0 19360706 20170923 70220 99999 VIGITE DU HAUMET FR 49.65 -1.5 130.0 19760302 20170923 70240 99999 MAUPERTUS FR LFRC 49.65 -1.47 139.9 19360101 20170923 70251 99999 LONGUES FR 49.683 -0.7170000000000001 75.0 20070306 20070307 70270 99999 CARPIQUET FR LFRK 49.173 -0.45 78.0 19730101 20170923 70280 99999 OCTEVILLE FR LFOH 49.534 0.08800000000000001 95.4 19310101 20170923 70290 99999 PORT EN BESSIN FR 49.35 -0.767 73.0 19840101 20170923 70310 99999 ST GATIEN FR LFRG 49.365 0.154 146.0 19730102 20170923 70330 99999 VITTEFLEUR/ST. VALE FR LFOS 49.833 0.65 83.0 19831208 20080622 70340 99999 CARTERET FR 49.367 -1.8 65.0 19861001 20170923 70361 99999 ROUEN FR 49.467 1.2830000000000001 69.0 20070306 20070307 70370 99999 VALLEE DE SEINE FR LFOP 49.38399999999999 1.175 156.1 19730101 20170923 70380 34061 EVREUX FR LFOE 49.016999999999996 1.217 138.0 19730101 20170923 70380 99999 FAUVILLE FR LFOE 49.028999999999996 1.22 141.4 20000101 20071231 70390 99999 VALOGNES (AUT) FR 49.516999999999996 -1.5 61.0 19910125 20090316 70400 99999 DIEPPE FR 49.933 1.1 38.0 19730101 20170923 70440 99999 ANTIFER FR 49.65 0.15 11.0 20080116 20091231 70460 99999 LE HAVRE-OCTEVILLE FR 49.533 0.083 94.0 20010919 20170923 70530 99999 CORMEILLES FR 49.083 2.033 88.0 19730107 20170923 70550 99999 TILLE FR LFOB 49.45399999999999 2.113 109.4 19360101 20170923 70570 99999 CREIL FR LFPC 49.254 2.519 88.7 19400713 20170923 70580 99999 THIEULLOY-L'ABBAYE FR 49.817 1.9669999999999999 180.0 19401101 19420630 70590 99999 MEAULTE FR 49.967 2.7039999999999997 111.0 19400617 20170923 70600 99999 MONTDIDIER FR 49.667 2.583 114.0 19400701 19420730 70610 99999 ST. QUENTIN/ROUPY FR LFOW 49.817 3.2 101.0 19360103 20170923 70640 99999 BERRY-AU-BAC FR 0.0 0.0 -999.0 19401009 19440630 70700 99999 CHAMPAGNE FR LFSR 49.31 4.05 95.1 19310105 20120523 70720 99999 REIMS-PRUNAY FR LFQA 49.217 4.15 96.0 19361010 20170923 70740 34072 SUIPPES GUN RANGE FR 49.15 4.633 192.9 19730102 19871229 70740 99999 SUIPPES RANGE (MET) FR 49.15 4.633 199.0 19880104 19880105 70743 34072 SUIPPES RANGE (MET) FR LFFS 49.15 4.533 199.0 19880105 19980123 70750 99999 CHARLEVILLE MEZIERES FR LFQV 49.784 4.647 149.0 19400703 20170923 70850 99999 BOGUS FRENCH FR 0.0 0.0 -999.0 19550702 20050710 70881 34064 ETAIN FR 49.233000000000004 5.683 237.1 19541213 19661031 70891 99999 CHAMBLEY AB FR LCHM 49.033 5.867000000000001 266.0 19541108 19661202 70900 99999 FRESCATY FR LFSF 49.071999999999996 6.132000000000001 191.7 19360102 20130429 70910 99999 GROSTENQUIN AB FR 49.016999999999996 6.7 252.0 19560101 19630731 70930 99999 METZ NANCY LORRAINE FR LFJL 48.982 6.251 265.2 19920408 20170923 71000 99999 OUESSANT FR 48.483000000000004 -5.05 68.0 19360102 20170923 71020 99999 POINTE ST MATHIEU FR 48.333 -4.7669999999999995 17.0 19831208 20170923 71030 99999 POINTE DU RAZ FR 48.033 -4.7330000000000005 89.0 19730101 20170923 71040 99999 POINTE DE TOULINGUET FR 48.283 -4.633 36.0 19831208 20170923 71060 99999 LANDIVISIAU FR LFRJ 48.53 -4.152 106.1 19730102 20170923 71070 99999 BRIGNOGAN FR 48.683 -4.333 18.0 19831207 20170923 71080 99999 PLABENNEC RADAR FR 48.47 -4.43 112.0 19831208 20060214 71090 99999 POULMIC FR LFRL 48.282 -4.445 87.5 19810202 20170923 71100 99999 GUIPAVAS FR LFRB 48.448 -4.419 99.1 19290801 20170922 71160 99999 BATZ ISLAND FR 48.75 -4.0169999999999995 37.0 19760708 20170923 71165 99999 LANNION FR 48.75 -3.467 91.0 19971101 20070307 71170 99999 PLOUMANAC'H PERROS GUIREC FR 48.833 -3.467 58.0 19831208 20170923 71180 99999 LANNION FR LFRO 48.754 -3.472 88.4 20010919 20170923 71190 99999 ROSTRENEN FR 48.233000000000004 -3.3 262.0 19730101 20070227 71200 99999 ARMOR FR LFRT 48.538000000000004 -2.8539999999999996 138.1 19860101 20170923 71210 99999 BREHAT ISLAND FR 48.85 -3.0 36.0 19360105 20170923 71230 99999 SAINT BRIEUC FR 48.516999999999996 -2.8 128.0 19851202 19880105 71233 99999 ST. BRIEUC ARMOR & FR LFRT 48.516999999999996 -2.8 128.0 19880105 19901016 71250 99999 PLEURTUIT FR LFRD 48.588 -2.08 66.8 19730101 20170923 71270 99999 GROUIN DE CANCALE FR 48.717 -1.85 41.0 19730101 20070307 71300 99999 ST JACQUES FR LFRN 48.07 -1.735 37.8 19310105 20170923 71330 99999 POINTE DU ROC FR 48.833 -1.617 42.0 19730101 20170923 71340 99999 LAVAL-ETRONNIER FR LFOV 48.033 -0.733 97.0 19880621 20170923 71390 99999 ALENCON/VALFRAMBERT FR LFOF 48.45 0.11699999999999999 141.0 19730101 20170923 71400 99999 CHATEAUDUN FR LFOC 48.058 1.3769999999999998 132.0 19730101 20170923 71411 99999 DREUX FR 48.733000000000004 1.367 186.0 20070307 20070307 71430 99999 CHARTRES/CHAMPOL FR LFOR 48.467 1.517 156.0 19360617 20170923 71440 99999 BOGUS FRENCH FR 19840507 19900925 71450 99999 TRAPPES FR 48.766999999999996 2.0 168.0 19870518 20170923 71460 99999 TOUSSUS LE NOBLE FR LFPN 48.751999999999995 2.106 164.0 19730101 20170923 71465 99999 LA CROIX DU BOIS FR 48.75 2.0669999999999997 131.0 19740315 20070307 71470 99999 VELIZY FR LFPV 48.773999999999994 2.202 178.0 19420101 20170923 71480 99999 BRETIGNY FR 48.6 2.333 80.0 19740102 20070307 71490 99999 ORLY FR LFPO 48.725 2.359 88.7 19370601 20170923 71500 99999 LE BOURGET FR LFPB 48.968999999999994 2.441 66.4 19280104 20170923 71515 99999 MAZAMET FR LFCK 43.556000000000004 2.289 240.2 20061025 20170923 71530 99999 VILLAROCHE FR LFPM 48.605 2.6710000000000003 92.0 19730328 20170923 71540 99999 PARIS ST-MAUR FR 48.8 2.5 50.0 19840504 20021107 71550 99999 COULOMMIERS FR 48.817 3.083 143.0 19421201 20070307 71560 99999 PARIS-MONTSOURIS FR 48.817 2.333 77.0 19831201 20170923 71570 99999 CHARLES DE GAULLE FR LFPG 49.013000000000005 2.55 119.5 19740419 20170923 71581 99999 DAMMARTIN EN GOELE FR 49.067 2.6830000000000003 172.0 20070227 20070227 71600 99999 19360108 19750505 71601 99999 ROMILLY-SUR-SEINE FR 48.516999999999996 3.717 80.0 20070306 20070307 71604 99999 PLOUJEAN FR LFRU 48.603 -3.8160000000000003 82.9 20141229 20170923 71650 99999 VATRY FR LFOK 48.776 4.184 178.9 19751203 20170923 71653 99999 CHALONS/VATRY FAFB& FR LFOK 48.783 4.183 179.0 19580901 19900517 71660 99999 VATRY AERO FR 48.766999999999996 4.15 179.0 20111129 20170923 71670 99999 ARCIS SUR AUBE FR 48.467 4.317 166.0 20050609 20070227 71680 99999 BARBEREY FR LFQB 48.321999999999996 4.0169999999999995 118.3 19750618 20170923 71690 99999 ROBINSON FR LFSI 48.636 4.899 139.6 19420101 20170923 71700 99999 DAMBLAIN(FAFB) FR 48.083 5.667000000000001 390.0 20031111 20061023 71701 99999 CHAUMONT FR 48.117 5.132999999999999 310.0 20070306 20070307 71703 99999 MONTMEDY-MARVILLE FR LFYK 0.0 0.0 -999.0 20070306 20070307 71704 99999 DAMBLAIN (FAFB) FR LFYD 48.1 5.65 390.0 19800807 19840329 71710 99999 BAR LE DUC FR 48.766999999999996 5.15 279.0 20070227 20070227 71720 99999 LOXEVILLE FR 48.75 5.4 313.0 19730102 19870830 71730 99999 EPINAL-DOGNEVILLE FR 48.2 6.433 320.0 19860604 20091125 71790 34051 TOUL / ROSIERES FR LFSL 48.783 5.983 286.0 19730101 20170923 71790 99999 TOUL/ROSIERES FR LFSL 48.783 5.983 286.0 20000214 20000214 71800 99999 ESSEY FR LFSN 48.692 6.23 228.9 19260404 20170923 71810 99999 OCHEY FR LFSO 48.583 5.955 337.1 19730101 20170923 71813 99999 BRETIGNY SUR ORGE FR LFPY 48.597 2.331 84.0 19980202 20070307 71820 99999 RECHICOURT-RADRA FR 48.717 6.582999999999999 286.0 19360102 20070227 71825 99999 MIRECOURT FR LFSG 48.325 6.07 330.4 20070227 20170923 71840 99999 SAVERNE FR 48.733000000000004 7.35 205.0 19360102 20070307 71860 34062 PHALSBOURG FR 48.817 7.2 313.0 19730101 19880929 71860 99999 PHALSBOURG FR 48.766999999999996 7.3 377.0 20020701 20070227 71900 99999 ENTZHEIM FR LFST 48.538000000000004 7.627999999999999 153.9 19310101 20170923 71910 99999 BOGUS FRENCH FR 19860801 20070307 71950 99999 STRASBOURG-NEUHOF FR 48.55 7.7829999999999995 42.0 19420102 19431231 71970 99999 MEYENHEIM FR LFSC 47.917 7.4 211.2 19730101 20170923 72000 99999 PENMARCH FR 47.8 -4.367 19.0 19360102 20170923 72010 99999 PLUGUFFAN FR LFRQ 47.975 -4.168 90.5 19730102 20170923 72030 99999 BEG MELEN FR 47.65 -3.5 54.0 19811104 20170923 72050 99999 LANN BIHOUE FR LFRH 47.761 -3.44 48.8 19730101 20170923 72070 99999 BELLE ILE-LE TALUT FR 47.3 -3.218 43.0 19310102 20170923 72080 99999 QUIBEKON / ST JULIEN FR 47.5 -3.117 30.0 19830701 20170916 72100 99999 VANNES/SENE FR LFRV 47.6 -2.717 3.0 19870601 20170923 72160 99999 CHEMOULIN FR 47.233000000000004 -2.3 20.0 20010919 20170923 72170 99999 MONTOIR FR LFRZ 47.312 -2.149 4.0 19730101 20170923 72220 99999 NANTES ATLANTIQUE FR LFRS 47.153 -1.611 27.4 19370601 20170923 72230 99999 TREILLIERES-RADAR FR 47.333 -1.65 69.0 20031223 20080927 72300 99999 BEAUCOUZE FR LFRA 47.483000000000004 -0.6 50.0 19360616 20170923 72350 99999 ARNAGE FR LFRM 47.949 0.20199999999999999 59.1 19730103 20170923 72400 99999 VAL DE LOIRE FR LFOT 47.431999999999995 0.728 108.8 19310101 20170923 72450 99999 LE BREUIL FR LFOQ 47.678000000000004 1.209 121.3 20010919 20170923 72470 99999 ROMORANTIN/PRUNIERS FR LFYR 47.317 1.683 86.0 19360701 20170923 72490 99999 BRICY FR LFOJ 47.988 1.761 125.6 19360102 20170923 72550 99999 BOURGES FR LFLD 47.058 2.37 161.2 19730101 20170923 72553 99999 TAVAUX FR LFGJ 47.038999999999994 5.4270000000000005 196.6 19980201 20170923 72554 99999 AVORD FR LFOA 47.053000000000004 2.633 176.8 19980201 20170923 72570 99999 AVORD FR 47.05 2.65 177.0 19310401 20170923 72600 99999 FOURCHAMBAULT FR LFQG 47.003 3.113 183.5 19730102 20170923 72650 99999 AUXERRE FR 47.8 3.55 212.0 19360615 20121231 72660 99999 BRANCHES FR LFLA 47.85 3.497 159.4 20130101 20170923 72700 99999 CHATEAU-CHINON FR 47.067 3.9330000000000003 598.0 19730101 20041116 72760 99999 CHATILLON-SUR-SEINE FR LFQH 47.85 4.55 264.0 19730101 20030324 72795 99999 DIJON/VAL SUZON FR LFGI 0.0 0.0 -999.0 19840909 19860707 72800 99999 LONGVIC FR LFSD 47.269 5.09 221.3 19310101 20170923 72830 99999 LANGRES FR 47.85 5.332999999999999 467.0 19730101 20170923 72835 99999 DOLE/TAVAUX FR 47.05 5.433 196.0 19440919 19750818 72880 99999 BESANCON/THISE(AUT) FR LFSA 47.25 5.983 309.0 19730101 20170923 72920 99999 SAINT SAUVEUR FR LFSX 47.783 6.364 278.3 19410301 20170923 72950 99999 BELFORT/FONTAINE FR LFSQ 47.633 6.867000000000001 423.0 19730103 20090915 72955 99999 LURE/MALBOUHANS AFB FR LFYL 47.7 6.55 317.0 19810309 19840328 72960 99999 DORANS FR 47.592 6.832999999999999 401.0 20100611 20170923 72990 99999 BALE MULHOUSE FR LFSB 47.59 7.53 269.7 19730101 20170923 73000 99999 SAINT-SAUVEUR FR 46.7 -2.333 32.0 19730101 20170923 73013 99999 NIORT/SOUCHE FR 46.317 -0.4 61.0 19860605 19901016 73060 99999 LES AJONCS FR LFRI 46.702 -1.379 91.1 19830405 20170923 73110 99999 POINTE DES BALEINES FR 46.25 -1.567 10.0 19880111 20170923 73140 99999 CHASSIRON FR 46.05 -1.4169999999999998 22.0 19730101 20170923 73150 99999 LA ROCHELLE FR 46.15 -1.15 10.0 19290801 20170923 73151 99999 LA ROCHELLE/LALEU FR LFBH 46.183 -1.183 22.0 19761201 19790310 73160 99999 ILE DE RE FR LFBH 46.178999999999995 -1.195 22.6 20040803 20170923 73170 99999 BISCAROSSE / PARENTIS FR LFWC 44.433 -1.25 39.0 20040803 20170923 73175 99999 BRAY FR LFAQ 49.972 2.698 110.9 20070822 20170923 73300 99999 SOUCHE FR LFBN 46.31100000000001 -0.402 61.9 19860101 20170923 73350 99999 BIARD FR LFBI 46.588 0.307 128.9 19360615 20170923 73540 34048 CHATEAURROUX DEOLS FR LFLX 46.867 1.7169999999999999 157.0 19360102 20170923 73540 99999 DEOLS FR LFLX 46.861999999999995 1.7309999999999999 161.2 20000101 20071231 73600 99999 GUERET FR 46.167 1.867 551.0 19871001 20120403 73610 99999 GUERET ST LAURENT FR 46.183 1.95 366.0 20120103 20170923 73625 99999 MONTLUCON GUERET FR LFBK 46.225 2.363 416.7 19840910 20080407 73740 99999 CHARMEIL FR LFLV 46.17 3.404 249.0 19730101 20170923 73790 99999 SAINT YAN FR LFLN 46.413000000000004 4.013 242.6 19730103 20170923 73820 99999 MONT SAINT VINCENT FR 46.65 4.433 603.0 19730101 20020311 73850 99999 CHARNAY FR LFLM 46.295 4.796 221.9 19730101 20170923 73860 99999 DOLE-TAVAUX FR 47.033 5.417000000000001 195.0 20010919 20170923 73865 99999 CHAMPFORGEUIL FR LFLH 46.826 4.8180000000000005 189.9 19840911 19850810 73900 99999 LONS-LE-SAUNIER FR 46.683 5.517 279.0 19870622 20090623 73901 99999 MARCE FR LFJR 47.56 -0.312 59.1 20040510 20170923 73930 99999 DOUBS FR 5.083 6.35 806.0 19801001 19810601 73940 99999 MORBIER FR 46.567 6.0329999999999995 928.0 19740111 19910521 73960 99999 PONTARLIER FR 46.9 6.332999999999999 817.0 19740111 19850610 74000 99999 LA COUBRE FR 45.7 -1.2329999999999999 6.0 19360616 20051012 74120 99999 CHATEAUBERNARD FR LFBG 45.658 -0.318 31.1 19730101 20170923 74200 99999 CHAMPNIERS FR LFBU 45.717 0.217 133.0 19310402 20170923 74280 99999 BASSILLAC FR LFBX 45.198 0.816 100.0 19730101 20170923 74300 99999 LA COURTINE FR 45.7 2.25 765.0 19311105 19371130 74340 99999 BELLEGARDE FR LFBL 45.863 1.179 396.2 19730101 20170923 74350 99999 19730101 19730619 74380 99999 LA ROCHE FR LFBV 45.151 1.469 115.5 19871001 20170923 74385 99999 BRIVE/LA ROCHE FR 45.15 1.4669999999999999 114.0 19840910 19901016 74420 99999 PUY DE DOME FR 45.766999999999996 2.967 1461.0 19360101 19820601 74600 99999 AUVERGNE FR LFLC 45.787 3.1689999999999996 332.2 19310102 20170923 74690 99999 CHAMONIX FR 45.93 6.88 1042.0 20050201 20090520 74700 99999 LE PUY CITY FR 45.05 3.9 714.0 19310101 19840807 74710 99999 LOUDES FR LFHP 45.081 3.763 832.4 19831201 20170923 74750 99999 BOUTHEON FR LFMH 45.541000000000004 4.296 403.9 19730101 20170923 74760 99999 CAUMONT FR LFMV 43.907 4.902 37.8 20040831 20170923 74765 99999 CORMEILLES EN VEXIN FR LFPT 49.097 2.041 99.1 20081022 20170923 74770 99999 LES SAUVAGES FR 45.933 4.383 720.0 19730101 20170923 74800 99999 BRON FR LFLY 45.727 4.944 200.9 19730101 20170923 74810 99999 SAINT EXUPERY FR LFLL 45.726000000000006 5.091 250.2 19310103 20170923 74820 99999 AMBERIEU FR LFXA 45.986999999999995 5.327999999999999 250.9 19801029 20170923 74840 99999 VILLARS DE LANS FR 45.067 5.517 1012.0 20070823 20170318 74850 99999 GRENOBLE FR 45.167 5.767 212.0 19830701 20131007 74860 99999 SAINT GEOIRS FR LFLS 45.363 5.329 396.8 19730101 20170923 74864 99999 CHALON/CHAMPFORGEUI FR 45.45 4.933 189.0 19801201 19840802 74870 99999 GRENONBLE LVD FR 45.22 5.85 220.0 20050201 20170923 74880 99999 19310104 19390831 74890 99999 SAINT-PANCRASSE FR 45.3 5.867000000000001 1154.0 19310104 20170921 74900 99999 MEYTHET FR LFLP 45.928999999999995 6.099 463.6 20100611 20170923 74910 99999 AIX LES BAINS FR LFLB 45.638000000000005 5.88 237.4 19730101 20170923 74920 99999 CHALLES-LES-EAUX FR 45.567 5.983 295.0 19730101 19730628 74940 99999 ANNECY / MEYTHET FR 45.933 6.1 463.0 19831201 20130430 74949 99999 ANNECY/MEYTHET FR 45.933 6.1 463.0 20070226 20100406 74950 99999 MEGEVE FR 45.867 6.617000000000001 950.0 20050824 20170324 74960 99999 MODANE AVRIEUX FR 45.217 6.7170000000000005 1104.0 19360106 20120502 74965 99999 DIJON/VAL SUZON FR 47.383 4.933 -999.0 19810625 19840805 74970 99999 BOURG ST-MAURICE FR 45.617 6.767 868.0 19730101 20170923 74985 99999 BRIVE/LA ROCHE FR 45.15 1.4669999999999999 113.0 19770201 19840727 74990 99999 CHAMONIX FR 45.917 6.867000000000001 1050.0 20100612 20170921 75000 99999 CAP FERRET FR 44.633 -1.25 10.0 19730101 20170923 75020 99999 CAZAUX FR LFBC 44.533 -1.125 25.6 19360706 20170923 75030 99999 BISCAROSSE/PARENTIS FR LFBS 44.433 -1.25 39.0 19740301 20170923 75100 99999 MERIGNAC FR LFBD 44.828 -0.716 49.4 19310101 20170923 75170 99999 CAPTIEUX WEATHER FR 44.183 -0.28300000000000003 133.0 19740102 20030130 75173 99999 CAPTIEUX MET FR 44.183 -0.28300000000000003 133.0 19880421 19880502 75240 99999 LA GARENNE FR LFBA 44.175 0.591 62.2 19730101 20170923 75280 99999 BERGERAC FR 44.85 0.483 33.0 19811001 20060314 75290 99999 BERGERAC/ROUMANIERE FR 44.817 0.517 51.0 19730101 19880105 75293 99999 BERGERAC/ROUMANIERE FR 44.817 0.517 51.0 19880105 19880614 75300 99999 ROUMANIERE FR LFBE 44.825 0.519 52.1 19880502 20170923 75350 99999 GOURDON FR 44.75 1.4 261.0 19730101 20170923 75400 99999 MONTAUBAN FR LFDB 44.026 1.3780000000000001 107.0 20010919 20170923 75490 99999 AURILLAC FR LFLW 44.891000000000005 2.4219999999999997 638.9 19790215 20170923 75500 99999 AURILLAC CITY FR 44.9 2.417 644.0 19730101 19840818 75520 99999 MARCILLAC FR LFCR 44.408 2.483 582.2 19740318 20170923 75540 99999 MENDE FR 44.533 3.45 716.0 19850301 20170923 75550 99999 CASSAGNES BEGONHES FR LFIG 44.178000000000004 2.515 616.9 19830601 20081230 75580 99999 MILLAU FR 44.117 3.017 720.0 19360618 20170923 75600 99999 MONT AIGOUAL FR 44.117 3.583 1565.0 19360107 20170923 75615 99999 BRENOUX FR LFNB 44.501999999999995 3.533 1024.7 19770501 20090205 75630 99999 AVIGNON FR 43.9 4.9 48.0 20050201 20170923 75700 99999 LANAS SYN FR 44.533 4.367 280.0 19880301 20170923 75770 99999 MONTELIMAR/ANCONE FR LFLQ 44.583 4.7330000000000005 74.0 19310401 20170923 75790 99999 CARITAT FR LFMO 44.14 4.867 60.0 19730101 20170923 75795 99999 CHABEUIL FR LFLU 44.922 4.97 160.0 20140901 20170923 75850 99999 19360101 19381231 75860 99999 CARPENTRAS FR 44.083 5.05 105.0 19760309 20170923 75864 99999 CHATEAU-ARNOUX FR 44.1 6.0 -999.0 19810310 19901029 75870 99999 LUS-LA-CROIX-HAUTE FR 44.683 5.7170000000000005 1069.0 19730101 20030104 75880 99999 ST-AUBAN-SUR-DURANC FR LFMX 44.067 6.0 461.0 19730101 20170923 75890 99999 SAINT CHRISTOPHE / OISANS FR 44.933 6.25 1570.0 19360702 20170922 75900 99999 GAP / TALLARD FR 44.567 6.082999999999999 733.0 20060109 20170922 75910 99999 EMBRUN FR 44.567 6.5 876.0 19730101 20170923 75920 99999 GUILLESTRE FR 44.667 6.65 995.0 19400701 20121227 75930 99999 BRIANCON FR 44.917 6.65 1336.0 19340801 20101231 76000 99999 SOCOA FR 43.4 -1.683 25.0 19840616 20170923 76020 99999 ANGLET FR LFBZ 43.468 -1.5230000000000001 74.7 19290801 20170923 76030 99999 DAX SEYRESSE FR LFBY 43.683 -1.067 33.0 19730101 20170923 76070 99999 MONT DE MARSAN FR LFBM 43.912 -0.508 61.9 19310401 20170923 76100 99999 PAU PYRENEES FR LFBP 43.38 -0.419 187.8 19360615 20170923 76103 99999 PAU/IDRON FR 43.283 -0.317 -999.0 19820927 19840808 76210 99999 LOURDES FR LFBT 43.178999999999995 -0.006 384.0 19730101 20170923 76220 99999 LAMOTHE FR LFDH 43.688 0.602 125.3 19841201 20170923 76230 99999 AUCH-IN-ARMAGNAC FR 43.633 0.6 133.0 19820401 19880105 76231 99999 AUCH-IN-ARMAGNAC FR 43.633 0.6 133.0 19850522 19850626 76233 99999 LAMOTHE/AUCH FR 43.683 0.6 125.0 19880105 19900612 76270 99999 ANTICHAN FR LFCG 43.008 1.103 417.0 19730101 20170923 76280 99999 MURET-LHERM FR 43.45 1.25 189.0 20100611 20170923 76293 99999 LHERM FR LFBR 43.449 1.263 189.6 20100611 20170923 76300 99999 BLAGNAC FR LFBO 43.629 1.364 152.1 19730101 20170923 76303 99999 MONTAUBAN FR 44.016999999999996 1.383 110.0 19980202 20040908 76304 99999 SAINT CHRISTOL FR LFXI 44.05 5.5 834.0 19980202 19990528 76310 99999 FRANCAZAL FR LFBF 43.54600000000001 1.368 163.1 19310101 20170923 76320 99999 LE SEQUESTRE FR LFCI 43.913999999999994 2.113 171.9 19890101 20170923 76323 99999 ALBI/LE SEQUESTRE & FR 43.917 2.1 167.0 19900517 19900612 76350 99999 SALVAZA FR LFMK 43.216 2.306 132.0 19730101 20170923 76360 99999 BOGUS FRENCH FR 19841123 20020109 76380 99999 BEZIERS VIAS FR 43.317 3.35 16.0 20050201 20170923 76400 99999 ALBI/LE SEQUESTRE & FR 43.917 2.1 167.0 19730101 19900513 76410 99999 SETE FR 43.4 3.7 81.0 19360615 20170923 76415 99999 VIAS FR LFMU 43.324 3.3539999999999996 17.1 19750717 20170923 76430 99999 MEDITERRANEE FR LFMT 43.576 3.963 5.2 19730101 20170923 76450 99999 NIMES/COURBESSAC FR LFME 43.867 4.4 62.0 19360615 20170923 76460 99999 GARONS FR LFTW 43.757 4.416 94.2 19730101 20170923 76470 99999 LE TUBE FR LFMI 43.523 4.9239999999999995 25.0 19360702 20170923 76480 99999 SALON FR LFMY 43.606 5.109 59.4 19730202 20170923 76490 99999 AIX LES MILLES FR LFMA 43.506 5.367999999999999 111.9 19760401 20050605 76500 99999 PROVENCE FR LFML 43.43600000000001 5.2139999999999995 22.6 19310101 20170923 76505 99999 19750701 19751231 76510 99999 BOGUS FRENCH FR 0.0 0.0 -999.0 19841201 20170923 76520 99999 CAP POMEGUES FR 43.266999999999996 5.3 70.0 19730101 20011210 76530 99999 CAP COURONNE FR 43.333 5.05 27.0 19750715 20170923 76560 99999 BEC DE LAIGLE FR 43.183 5.582999999999999 315.0 19760309 20170923 76570 99999 APT/ST. CHRISTOL AB FR 44.05 5.483 837.0 19750122 20021201 76580 99999 NIMES MANDUEL FR 43.8 4.5 77.0 20031213 20040529 76600 99999 TOULON FR 43.1 5.933 25.0 19360403 20170321 76610 99999 CAP CEPET FR 43.083 5.933 134.0 19760302 20170923 76630 99999 PIERREFEN/NAVY FR 43.25 6.132999999999999 81.0 19840102 20040326 76660 99999 LEUCATE FR 42.917 3.0669999999999997 50.0 20010919 20170923 76670 99999 LE PALYVESTRE FR LFTH 43.097 6.146 2.1 19730101 20170923 76700 99999 PORQUEROLLES FR 43.0 6.233 147.0 19730101 20150512 76720 99999 LA MOLE FR 43.2 6.483 18.0 19830605 19880806 76750 99999 LE CANNET FR LFMC 43.385 6.3870000000000005 80.8 19760309 20170923 76770 99999 CAPE CAMARAT FR 43.2 6.683 112.0 19750715 20170923 76780 99999 TOULON/ILE DU LEVAN FR 43.033 6.4670000000000005 131.0 19760309 20170923 76800 99999 SAINT-RAPHAEL FR 43.417 6.75 6.0 19440804 20130101 76810 99999 LE DRAMONT FR 43.417 6.85 126.0 20090801 20170923 76820 99999 GRASSE-IN-PROVENCE FR 43.75 6.917000000000001 1269.0 19810301 19860217 76840 99999 MANDELIEU FR LFMD 43.542 6.952999999999999 4.0 19810203 20170923 76870 99999 SAINT-ANTOINE GINE FR 43.717 7.2170000000000005 3.0 19310106 19381231 76880 99999 LA GAROUPE FR 43.567 7.132999999999999 82.0 19750916 20170923 76900 99999 COTE D AZUR FR LFMN 43.658 7.216 3.7 19451001 20170923 76950 99999 CAP FERRAT FR 43.683 7.332999999999999 144.0 19730101 20100412 77200 99999 PIC DU MIDI FR 42.933 0.15 2883.0 19730101 19850919 77370 99999 FORMIGUERES FR 42.61 2.1 1530.0 19860801 20141213 77380 99999 LES ESCALDES FR 42.483000000000004 1.983 1432.0 19820401 20131122 77385 99999 LA MONTAGNE-NOIRE FR LFMG 43.383 1.983 450.0 19730201 19820416 77400 99999 SAINT LEOCADIE FR 42.45 2.0 1328.0 19820401 20141214 77420 99999 ST MICHEL DE CUXA FR 43.433 2.417 450.0 19830605 20141027 77430 99999 BOGUS FRENCH FR 19831201 20040111 77440 99999 BOGUS FRENCH FR 19840401 19911231 77470 99999 RIVESALTES FR LFMP 42.74 2.8710000000000004 43.9 19290801 20170923 77490 99999 CAP BEAR FR 42.516999999999996 3.133 86.0 19730102 20170923 77520 99999 LA PARATA FR 41.917 8.617 40.0 19360617 20170923 77530 99999 ILE ROUSSE FR 42.633 8.917 153.0 19881001 20170923 77540 99999 SAINT CATHERINE FR LFKC 42.531000000000006 8.793 63.7 19730101 20170923 77560 99999 CAPE CAVALLO FR 42.516999999999996 8.683 302.0 19730101 19880802 77610 99999 CAMPO DELL ORO FR LFKJ 41.924 8.802999999999999 5.5 19360616 20170923 77650 99999 SOLENZARA FR LFKS 41.924 9.406 8.5 19730101 20170923 77680 99999 LA CHIAPPA FR 41.6 9.367 68.0 19360615 20170923 77700 99999 CAP PERTUSATO FR 41.367 9.167 116.0 19360703 20170913 77750 99999 ALISTRO FR 42.266999999999996 9.533 74.0 20010919 20170923 77800 99999 SUD CORSE FR LFKF 41.501000000000005 9.097999999999999 26.5 19800401 20170923 77850 99999 CAP CORSE FR 43.0 9.367 113.0 19360615 20170923 77880 99999 CARDO FR 42.683 9.417 289.0 19360615 19381031 77900 99999 PORETTA FR LFKB 42.553000000000004 9.484 7.9 19450518 20170923 77910 99999 CAPE SAGRO FR 42.8 9.482999999999999 120.0 19431204 20170923 77950 99999 BOGUS FRENCH FR 19840809 20051001 78230 99999 BOGUS FRENCH FR 19880530 20030827 78260 99999 BOGUS FRENCH FR 19870704 20050114 78270 99999 BOGUS FRENCH FR 19860801 20051002 78450 99999 BOGUS FRENCH FR 19860801 20010926 78760 99999 GRAND BORNAND FR 45.967 6.4670000000000005 1270.0 20090901 20170923 79030 99999 METZ-NANCY-LORRAINE FR 48.983000000000004 6.25 264.0 19911211 19920325 80001 99999 MADEIRA PO LPMA 32.698 -16.774 58.5 20040510 20170923 80010 99999 LA CORUNA SP 43.367 -8.417 67.0 19310101 20170923 80020 99999 A CORUNA SP LECO 43.302 -8.377 98.5 19741001 20170923 80030 99999 MONTEVENTOSO SP 43.483000000000004 -8.317 240.0 19730101 20050211 80050 99999 EL FERROL SP 43.483000000000004 -8.232999999999999 9.0 19730101 20051112 80070 99999 CERCEDA SP 43.167 -8.533 595.0 20040517 20060207 80080 99999 LUGO/ROZAS SP 43.117 -7.45 446.0 19730101 20170923 80110 99999 ASTURIAS SP LEAS 43.56399999999999 -6.035 126.8 19730101 20170923 80140 99999 GIJON-MUSEL SP 43.567 -5.7 6.0 19730101 20170923 80141 99999 CIUDAD REAL SP LEAO 38.983000000000004 -3.917 629.0 20040510 20170922 80142 99999 BARDENAS REALES SP LEBR 42.2 -1.45 295.0 20040510 20170923 80143 99999 VALENCIA SP LEBT 39.583 -0.45 50.0 20040510 20170923 80144 99999 ARMILLA SP LEGA 37.133 -3.636 700.1 20040525 20170923 80150 99999 OVIEDO SP 43.35 -5.867000000000001 339.0 19730313 20170923 80190 99999 AGUION SP 43.467 -6.3 927.0 20041129 20060312 80210 99999 SANTANDER SP LEXJ 43.427 -3.82 4.9 19730101 20170923 80230 99999 SANTANDER SP 43.483000000000004 -3.8 59.0 19730101 20170923 80250 99999 BILBAO SP LEBB 43.301 -2.911 42.1 19730101 20170923 80270 99999 SAN SEBASTIAN/IGUELDO SP 43.3 -2.033 259.0 19730101 20170923 80290 99999 SAN SEBASTIAN SP LESO 43.357 -1.791 4.6 19730101 20170923 80420 99999 SANTIAGO SP LEST 42.896 -8.415 369.7 19730101 20170923 80430 99999 MARIN SP 42.4 -8.7 10.0 19740104 20170923 80440 99999 PONTEVEDRA SP 42.433 -8.617 108.0 19730101 20170923 80450 99999 VIGO SP LEVX 42.232 -8.627 260.6 19730101 20170923 80460 99999 VIGO SP 42.233000000000004 -8.75 85.0 19730101 20070626 80480 99999 ORENSE SP 42.333 -7.867000000000001 147.0 19730101 20170923 80530 99999 PONFERRADA SP 42.567 -6.6 550.0 19730102 20170923 80550 99999 LEON SP LELN 42.589 -5.656000000000001 916.2 19730101 20170923 80710 99999 PALENCIA SP 42.016999999999996 -4.533 750.0 19730101 20040219 80720 99999 PALENCIA-AUTILLA PINO SP 42.0 -4.6 860.0 20170712 20170923 80750 99999 BURGOS SP LEBG 42.358000000000004 -3.6210000000000004 897.6 19730101 20170923 80760 99999 BURGOS SP 42.333 -3.7 860.0 19730101 19840102 80800 99999 VITORIA SP LEVT 42.883 -2.7239999999999998 512.7 19730101 20170923 80810 99999 BAKIO SP 43.4 -2.85 576.0 20040812 20051129 80830 99999 LOGRONO SP 42.467 -2.383 369.0 19730101 20070528 80840 99999 LOGRONO/AGONCILLO SP LELO 42.45 -2.333 363.0 19730101 20170923 80850 99999 PAMPLONA SP LEPP 42.77 -1.646 458.4 19730313 20170923 80860 99999 PAMPLONA SP 42.817 -1.6669999999999998 461.0 19730101 20010705 80870 99999 BARDENAS REALES SP 42.2 -1.45 295.0 19700119 20170923 80910 99999 JACA SP 42.567 -3.133 828.0 19830613 20170923 80940 99999 HUESCA-PIRINEOS SP LEHC 42.083 -0.33299999999999996 554.0 19730102 20170923 80960 99999 CANDANCHU SP 42.783 -0.5329999999999999 1608.0 19730105 20040110 81120 99999 TALAR SP 42.2 0.867 800.0 19840503 20170923 81170 99999 LA MOLINA SP 42.333 1.933 1702.0 19730103 20170923 81300 99999 ZAMORA SP 41.516999999999996 -5.733 667.0 19730101 20170923 81400 99999 VALLADOLID SP LEVD 41.706 -4.852 845.8 19730101 20170923 81410 99999 VALLADOLID SP 41.633 -4.75 735.0 19730101 20170923 81480 99999 SORIA SP 41.783 -2.483 1082.0 19730101 20170923 81570 99999 DAROCA I SP 41.117 -1.4169999999999998 779.0 19730101 20170922 81600 99999 ZARAGOZA AB SP LEZG 41.666000000000004 -1.042 263.0 19730101 20170923 81605 99999 ZARAGOZA (USAFB) SP LEZA 41.667 -1.05 263.0 19570701 20010108 81606 99999 ZARAGOZA (MIL/CIV)& SP 41.667 -1.033 263.0 19770427 19830209 81610 99999 ZARAGOZA SP 41.633 -0.9 222.0 19730101 20050614 81620 99999 PERDIGUERA SP 41.733000000000004 -0.55 820.0 20041201 20050404 81710 99999 LERIDA SP 41.633 0.6 199.0 19730101 20170923 81750 99999 REUS SP LERS 41.147 1.167 71.3 19730101 20170923 81760 99999 TARRAGONA SP 41.117 1.25 64.0 19730101 20040105 81763 99999 SABADELL SP LELL 41.516999999999996 2.1 250.0 20000830 20170923 81800 99999 BARCELONA CITY SP 41.417 2.133 176.0 19730101 20170923 81810 99999 BARCELONA SP LEBL 41.297 2.0780000000000003 3.7 19730101 20170923 81820 99999 MONTSENY MTN RANGE SP 41.783 2.4330000000000003 1708.0 19730502 20060111 81830 99999 GERONA-IN-CATALUNA SP 41.983000000000004 2.833 98.0 19730101 19780808 81840 99999 GIRONA SP LEGE 41.901 2.761 142.6 19731129 20170923 81860 99999 SAN LORENZO SP 41.633 2.017 1092.0 19731108 20170923 82010 99999 SALAMANCA SP 40.95 -5.65 787.0 19751105 20170923 82020 99999 SALAMANCA SP LESA 40.952 -5.502000000000001 791.0 19730101 20170923 82100 99999 AVILA SP 40.667 -4.683 1132.0 19730101 20170923 82130 99999 SEGOVIA SP 40.95 -4.133 1005.0 19730101 20170923 82150 99999 NAVACERRADA PUERTO SP 40.8 -4.0169999999999995 1888.0 19730101 20170923 82190 99999 MADRI-COLMENAR SP LECV 40.65 -3.733 -999.9 19970506 20170923 82200 99999 MADRID/C. UNIVERSITARIA SP 40.45 -3.717 669.0 19791201 20170923 82204 99999 MADRI-COLMENAR SP 40.65 -3.733 0.0 19920807 19930820 82210 99999 BARAJAS SP LEMD 40.494 -3.5669999999999997 609.6 19310102 20170923 82211 99999 MADRID WEATHER CENTER SP LEMM 40.483000000000004 -3.583 633.0 20041209 20140319 82220 99999 MADRID RETIRO SP 40.417 -3.6830000000000003 667.0 19990412 20170923 82230 99999 CUATRO VIENTOS SP LEVS 40.371 -3.785 691.0 19730719 20170923 82240 99999 GETAFE SP LEGT 40.294000000000004 -3.7239999999999998 618.4 19730101 20170923 82260 99999 GUADALAJARA SP 40.667 -3.167 640.0 19730101 20170923 82270 99999 TORREJON SP LETO 40.497 -3.446 617.5 19571001 20170923 82310 99999 CUENCA SP 40.067 -2.133 946.0 19730101 20170923 82320 99999 MOLINA DE ARAGON SP 40.85 -1.883 1063.0 19730102 20170923 82330 99999 CALAMOCHA SP LECH 40.933 -1.3 889.0 19730101 20170923 82350 99999 TERUEL SP 40.35 -1.117 902.0 19730101 20170923 82380 99999 TORTOSA SP 40.817 0.5 50.0 19730101 20170923 82610 99999 CACERES SP 39.467 -6.332999999999999 405.0 19730101 20170923 82620 99999 SIERRA DE FUENTES SP 39.433 -6.2829999999999995 667.0 20050106 20051224 82720 99999 TOLEDO SP 39.883 -4.05 516.0 19730101 20170923 82800 99999 ALBACETE SP LEAB 38.949 -1.864 701.6 19730101 20170923 82820 99999 INIESTA SP 39.433 -1.75 762.0 19751101 19781003 82840 99999 VALENCIA SP LEVC 39.489000000000004 -0.48200000000000004 68.6 19730101 20170923 82850 99999 VALENCIA VIVEROS SP 39.483000000000004 -0.38299999999999995 11.0 19730101 20170923 82860 99999 CASTELLON-ALMAZORA SP 39.95 -0.067 43.5 19730101 20170923 82900 99999 ALCIRA/ALZIRA SP 39.15 -0.433 20.0 19730102 20170923 83010 99999 PALMA DE MALLORCA CMT SP 39.55 2.633 6.0 19800418 20170923 83030 99999 ALFABIA MTN RANGE SP 39.733000000000004 2.717 1015.0 19730101 20170923 83060 99999 PALMA DE MALLORCA SP LEPA 39.55 2.733 8.0 19730101 20170923 83070 99999 POLLENSA SP 39.9 3.1 7.0 19730102 19780602 83140 99999 MENORCA SP LEMH 39.863 4.218999999999999 90.8 19310103 20170923 83300 99999 TALAVERA LA REAL SP LEBZ 38.891 -6.821000000000001 185.6 19730101 20170923 83350 99999 HINOJOSA DEL DUQUE SP LEHI 38.516999999999996 -5.117 540.0 19730101 20170923 83480 99999 CIUDAD REAL SP LERL 38.983000000000004 -3.917 629.0 19730101 20170922 83550 99999 BOGUS SPANISH SP 19830401 20011129 83590 99999 ALICANTE SP 38.367 -0.5 82.0 19730101 20170923 83600 99999 ALICANTE SP LEAL 38.282 -0.5579999999999999 43.3 19730101 20170923 83610 99999 AITANA (PEAK) SP 38.65 -0.267 1497.0 19730103 20051017 83620 99999 BENIDORM SP 38.533 -0.15 10.0 19760201 19840629 83650 99999 DENIA SP 38.833 0.11699999999999999 15.0 19730102 20170923 83730 99999 IBIZA SP LEIB 38.873000000000005 1.3730000000000002 6.1 19730101 20170923 83830 99999 HUELVA SP 37.283 -6.917000000000001 20.0 19730101 20170923 83840 99999 EL ARENOSILLO SP 37.1 -6.733 41.0 20020430 20070307 83900 99999 SEVILLA/TABLADA SP 37.367 -6.0 14.0 19730101 20051206 83905 99999 SEVILLA HELIPORT SP LEEC 37.317 -6.0 5.0 20070629 20170922 83910 99999 SEVILLA SP LEZL 37.418 -5.893 33.8 19730101 20170923 83970 99999 MORON AB SP LEMO 37.175 -5.6160000000000005 86.9 19580102 20170923 84100 99999 CORDOBA SP LEBA 37.842 -4.849 90.5 19730101 20170923 84170 99999 JAEN SP 37.783 -3.8169999999999997 580.0 19730201 20170923 84190 99999 GRANADA SP LEGR 37.189 -3.7769999999999997 566.9 19730101 20170923 84200 99999 GRANADA / ARMILLA SP 37.133 -3.617 717.0 19730101 20060403 84290 99999 ALCANTARILLA SP LERI 37.951 -1.23 76.2 19730101 20170923 84300 99999 MURCIA SP 38.0 -1.167 62.0 19730101 20170923 84310 99999 CASTILLO GALERAS SP 37.583 -1.0 217.0 19730101 20040805 84330 99999 MURCIA SAN JAVIER SP LELC 37.775 -0.812 3.4 19730101 20170923 84490 13025 ROTA NAVAL AIR STATION SP LERT 36.65 -6.35 25.6 19730101 20170923 84510 99999 JEREZ SP LEJR 36.745 -6.06 28.3 19730101 20170923 84515 99999 LLEIDA-ALGUAIRE AIRPORT SP LEDA 41.728 0.536 350.0 20100114 20170922 84520 99999 CADIZ OBS SP 36.5 -6.25 9.0 19730101 20170923 84530 99999 SAN FERNANDO SP 36.467 -6.2 30.0 19310103 20170923 84580 99999 TARIFA SP 36.0 -5.6 25.0 19730101 20170923 84750 99999 ALHAURIN EL GRANDE SP 36.617 -4.667 1147.0 20050604 20051221 84820 99999 MALAGA SP LEMG 36.675 -4.499 15.8 19730101 20170923 84840 99999 MALAGA SP 36.717 -4.417 54.0 19751215 19751215 84870 99999 ALMERIA SP LEAM 36.844 -2.37 21.3 19310102 20170923 84880 99999 ALMERIA SP 36.833 -2.467 7.0 20020109 20170923 84890 99999 NIJAR SP 36.833 -2.083 486.0 20040817 20050221 84900 99999 ALBORAN ISLAND SP 35.933 -3.033 19.0 19730101 20170923 84950 99999 GIBRALTAR GI LXGB 36.150999999999996 -5.35 4.6 19580101 20170923 85010 99999 FLORES PO LPFL 39.455 -31.131 34.1 19781201 20170923 85020 99999 CORVO ISLAND AZORES PO LPCR 39.67 -31.12 26.0 20031023 20170923 85030 99999 CORVO ISLAND AZ 39.667 -31.116999999999997 28.0 19480111 19840509 85050 99999 HORTA PO LPHR 38.52 -28.715999999999998 36.0 19760201 20170923 85060 99999 HORTA (ACORES) PO 38.516999999999996 -28.633000000000003 62.0 19310101 20170923 85080 99999 LAJES/SANTA RITA (ACORES) PO 38.766999999999996 -27.066999999999997 113.0 19990101 20050504 85090 99999 LAJES PO LPLA 38.762 -27.090999999999998 54.9 19470101 20170923 85095 99999 SAO JORGE PO LPSJ 38.666 -28.176 94.8 20061010 20160304 85110 99999 ANGRA DO HEROISMO (ACORES) PO 38.667 -27.217 76.0 19971201 20170923 85120 99999 PONTA DELGADA PO LPPD 37.741 -25.698 78.9 19310103 20170923 85125 99999 PICO PO LPPI 38.554 -28.441 33.2 20050628 20160304 85130 99999 PONTA DELGADA/OBS. (ACORES) PO 37.75 -25.666999999999998 36.0 20020416 20050702 85150 99999 SANTA MARIA PO LPAZ 36.971 -25.171 93.9 19440807 20170923 85155 99999 GRACIOSA PO LPGR 39.092 -28.03 26.2 20050719 20160304 85210 99999 FUNCHAL/S.CATARINA PO LPFU 32.683 -16.767 58.0 19480111 20170923 85220 99999 FUNCHAL PO 32.633 -16.9 56.0 19310101 20170923 85240 99999 PORTO SANTO PO LPPS 33.073 -16.35 103.9 19480113 20170923 85300 99999 CABO CARVOEIRO PO 39.35 -9.4 34.0 19480111 20111009 85305 99999 ALVERCA (POR-AFB) PO 38.883 -9.033 3.0 19730623 19730927 85310 99999 CABO CARVOEIRO PO 39.35 -9.4 34.0 20070822 20170923 85320 99999 SINTRA PO LPST 38.830999999999996 -9.34 134.1 19901001 20170922 85330 99999 SAGRES PO 37.0 -8.95 26.0 20010705 20170923 85340 99999 MONTIJO PO LPMT 38.704 -9.036 14.0 19830503 20170923 85350 99999 LISBOA/GEOF PO 38.717 -9.15 95.0 19901101 20170923 85360 99999 LISBOA PO LPPT 38.781 -9.136000000000001 114.0 19310103 20170923 85370 99999 ALVERCA PO LPAR 38.883 -9.03 3.4 19990104 20170922 85380 99999 SAGRES PO 37.0 -8.95 25.0 19480114 20020519 85390 99999 OTA PO 39.117 -8.982999999999999 49.0 19901105 20061220 85400 99999 MONTE REAL PO LPMR 39.830999999999996 -8.887 57.0 19901006 20170923 85410 99999 SINES/MONTES CHAOS PO 37.95 -8.867 103.0 19890422 20170923 85420 99999 SINES PO 37.95 -8.883 16.0 19800401 19810331 85430 99999 VIANA DO CASTELO PO 41.7 -8.8 18.0 19480111 20060322 85440 99999 OVAR/MACEDA PO 40.917 -8.633 22.0 19901101 20170923 85450 99999 PORTO PO LPPR 41.248000000000005 -8.681000000000001 69.5 19310103 20170923 85460 99999 PORTO/SERRA DO PILAR PO 41.133 -8.6 100.0 19901006 20080403 85470 99999 AVEIRO(PAFB) PO 40.65 -8.732999999999999 19.0 20011104 20051208 85480 99999 COIMBRA/CERNACHE PO 40.15 -8.467 179.0 19960801 20170923 85490 99999 COIMBRA PO 40.2 -8.417 140.0 19480111 20170303 85500 99999 CORUCHE CRUZ DO LE?O PO 39.067 -8.4 167.0 20040523 20060323 85510 99999 VIANA DO CASTELO-CHAPE PO 41.633 -8.8 48.0 20061010 20170923 85520 99999 TANCOS PO LPTN 39.475 -8.365 81.1 19901006 20090831 85540 99999 FARO PO LPFR 37.014 -7.966 7.3 19480111 20170923 85550 99999 FARO/CIDADE PO 37.016999999999996 -7.917000000000001 8.0 19971201 20030731 85570 99999 EVORA PO 38.567 -7.9 321.0 19480112 20050722 85580 99999 EVORA/C. COORD PO 38.533 -7.9 246.0 19950701 20170923 85581 99999 OVAR PO LPOV 40.916 -8.646 17.1 20040525 20170923 85600 99999 VISEU PO 40.717 -7.882999999999999 644.0 19971201 20170923 85610 99999 BEJA/B. AEREA PO 38.067 -7.917000000000001 203.0 19971201 20170923 85620 99999 BEJA PO LPBJ 38.079 -7.932 193.9 19480808 20170923 85660 99999 VILA REAL PO 41.317 -7.733 481.0 19480121 19920324 85670 99999 VILA REAL PO LPVR 41.273999999999994 -7.72 550.2 19920501 20170923 85680 99999 PENHAS DOURADAS PO 40.417 -7.55 1388.0 19480113 20170923 85700 99999 CASTELO BRANCO PO 39.833 -7.483 384.0 19860604 20170923 85710 99999 PORTALEGRE PO 39.283 -7.417000000000001 590.0 19480112 20170923 85750 99999 BRAGANCA PO LPBG 41.86 -6.706 690.4 19480112 20170923 85790 99999 LISBOA/GAGO COUTINHO PO 38.766999999999996 -9.133 105.0 19840502 20170923 85830 99999 MINDELO CV 16.833 -25.05 20.0 19310103 20170923 85890 99999 PRAIA CV 14.933 -23.483 95.0 19330309 20170923 85940 99999 AMILCAR CABRAL INTL CV GVAC 16.741 -22.949 53.9 19480304 20170923 85944 99999 BOA VISTA RABIL CV GVBA 16.137 -22.889 21.0 20080902 20170923 85945 99999 SAO PEDRO CV GVSV 16.834 -25.057 20.1 20071004 20170923 85950 99999 FRANCISCO MENDES CV GVFM 14.924000000000001 -23.494 230.0 20041002 20120318 89120 99999 ISABA EL FERIAL SP 42.95 -0.8 1591.0 20151207 20170923 89140 99999 CANDANCHU 'ETUKSA' SP 42.783 -0.5329999999999999 1560.0 20031016 20031016 89170 99999 SALLENT DE GALLEGO 'FURCO' SP 42.766999999999996 -0.38299999999999995 1855.0 20060201 20060201 89200 99999 SALLENT DE GALLEGO 'RESPOMUSO' SP 42.817 -0.3 2145.0 20051101 20051101 89220 99999 PANTICOSA 'REFUGIO CASA PIEDRA' SP 42.766999999999996 -0.233 1645.0 20050111 20170923 89480 99999 VALLTER 2000 SP 42.433 2.267 2167.0 20031017 20051128 89600 99999 VALDELINARES 'ESQUI' SP 40.383 -0.633 1955.0 20031222 20031222 90910 99999 ARKONA (CAPE) & GM 54.683 13.433 42.0 19750701 20020729 90930 99999 BOGUS GERMAN GM 19901203 19911031 91610 99999 BOLTENHAGEN & GM 54.0 11.2 15.0 19750701 19911031 91620 99999 SCHWERIN & GM 53.633 11.417 59.0 19750701 19920517 91631 99999 WISMAR GM 53.9 11.467 30.0 20070307 20070307 91680 99999 BOGUS GERMAN GM 19901203 20070307 91700 99999 WARNEMUENDE GM 54.183 12.083 4.0 19750701 20011121 91770 99999 TETEROW & GM 53.766999999999996 12.617 46.0 19750701 19911031 91800 99999 BARTH GM ETBH 54.333 12.717 7.0 19791106 19911031 91810 99999 PAROW GM ETPA 54.367 13.083 4.0 19910506 19911009 91840 99999 GREIFSWALD & GM 54.1 13.383 2.0 19771203 20020421 91850 99999 GRIEFSWALD/WIECK GM 54.1 13.45 2.0 19750701 19780110 91930 99999 UECKERMUENDE (AUT) GM 53.75 14.067 1.0 19750701 20020518 92490 99999 BOIZENBURG (AUT) & GM 53.383 10.717 45.0 19750701 19911031 92610 99999 SEEHAUSEN/ALTMARK GM 52.9 11.732999999999999 0.0 19761007 19920516 92620 99999 WITTENBERGE & GM 53.033 11.8 24.0 19750701 19770323 92640 99999 MARNITZ (AUT) & GM 53.317 11.933 81.0 19761001 19911031 92670 99999 BOGUS GERMAN GM 19901005 19911031 92700 99999 NEURUPPIN & GM 52.9 12.817 38.0 19750701 19911031 92770 99999 NEUGLOBSOW GM 53.15 13.033 62.0 19910206 19911031 92790 99999 NEUSTRELITZ & GM 53.35 13.083 64.0 19750701 20010803 92800 99999 NEUBRANDENBURG GM 53.6 13.317 79.0 19760701 19911031 92810 99999 NEUBRANDENBURG/TROL GM ETNB 53.6 13.317 71.0 19910421 19911027 92890 99999 BOGUS GERMAN GM 19901001 19911031 92910 99999 ANGERMUENDE GM 53.016999999999996 14.0 48.0 19750701 19911031 93560 99999 BOGUS GERMAN GM 19901101 19911031 93590 99999 GARDELEGEN (AUT) & GM 52.516999999999996 11.4 47.0 19750701 19911031 93610 99999 MAGDEBURG & GM ETMG 52.1 11.583 79.0 19750701 19920516 93650 99999 BOGUS GERMAN GM 19910701 19911030 93680 99999 BOGUS GERMAN GM 19901101 19911031 93790 99999 POTSDAM & GM 52.383 13.067 81.0 19750701 19920517 93810 99999 19750728 19750728 93850 99999 BERLIN/SCHONEFELD GM 52.383 13.517000000000001 48.0 19750401 19920517 93890 99999 BOGUS GERMAN GM 19910502 19911031 93930 99999 LINDENBERG & GM 52.217 14.117 98.0 19750701 19920503 93950 99999 NEUHARDENBERG/WRIEZ GM ETWN 52.617 14.232999999999999 10.0 19910511 19910912 93960 99999 BOGUS GERMAN GM 19901206 19911031 93980 99999 FRANKFURT/ODER GM 52.367 14.533 48.0 19750701 19860622 94490 99999 LEINEFELDE (AUT) & GM 51.383 10.317 354.0 19750701 19911031 94530 99999 BROCKEN (PEAK) GM 51.8 10.617 1142.0 19750701 19911031 94540 99999 WERNIGERODE (AUT) & GM 51.85 10.767000000000001 234.0 19750701 19911031 94550 99999 BOGUS GERMAN GM 19901001 20070307 94580 99999 BOGUS GERMAN GM 19901001 20070307 94600 99999 ARTERN & GM 51.367 11.3 164.0 19750701 19911031 94690 99999 LEIPZIG/SCHKEUDITZ& GM 51.417 12.232999999999999 142.0 19750701 19911031 94740 99999 WITTENBERG & GM 51.883 12.65 104.0 19750701 19911031 94790 99999 COLLMBERG (DEAD) GM 51.3 13.017000000000001 370.0 19750701 20070307 94800 99999 OSCHATZ GM 51.3 13.117 152.0 19830201 19911031 94880 99999 DRESDEN/KLOTZSCHE GM 51.133 13.8 226.0 19750401 20070307 94900 99999 DOBERLUG/KIRCHHAIN& GM 51.65 13.583 97.0 19750701 20011009 94920 99999 COTTBUS GM ETCB 51.766999999999996 14.3 68.0 19750701 19911003 94930 99999 PRESCHEN GM ETPR 51.667 14.633 100.0 19910411 19911029 94960 99999 COTTBUS GM ETCO 51.783 14.333 69.0 19830201 19911031 94990 99999 GOERLITZ GM 51.167 14.95 237.0 19750702 19911031 95460 99999 BOGUS GERMAN GM 50.633 10.15 487.0 19750701 19911031 95480 99999 MEININGEN & GM 50.55 10.367 448.0 19790101 19911031 95490 99999 GROSSER INSELSBERG& GM 50.85 10.467 944.0 19750701 19780831 95510 99999 BOGUS GERMAN GM 19910701 19911031 95520 99999 SCHMUECKE (RIDGE) GM 50.65 10.767000000000001 935.0 19780801 19911031 95540 99999 ERFURT/BINDERSLEBN& GM 50.983000000000004 10.967 315.0 19750701 19920516 95570 99999 NEUHAUS GM 50.5 11.15 850.0 19900206 19911031 95580 99999 SONNEBERG/NEUFANG & GM 50.383 11.183 630.0 19750701 19911031 95640 99999 BOGUS GERMAN GM 19901101 20070307 95650 99999 BOGUS GERMAN GM 19901101 19911031 95670 99999 GERA/LEUMNITZ & GM 50.883 12.133 303.0 19750702 19911031 95690 99999 PLAUEN (AUT) GM 50.5 12.15 408.0 19750701 19911031 95740 99999 BOGUS GERMAN GM 19901001 20070307 95750 99999 BOGUS GERMAN GM 19901001 20070307 95770 99999 KARL-MARX-STADT & GM 50.817 12.9 357.0 19750701 19911031 95780 99999 FICHTELBERG MTN & GM 50.433 12.95 1213.0 19750701 20021106 95790 99999 BOGUS GERMAN GM 19901204 19911031 95820 99999 ZINNWALD/GEORGENFE& GM 50.733000000000004 13.75 887.0 19761001 19911031 95823 99999 BOGUS EAST GERMAN GM ETAR 19870304 20070307 95910 99999 BOGUS GERMAN GM 19910501 19911031 95970 99999 BOGUS GERMAN GM 19910101 20070307 100001 99999 NIEDERRHEIN GM EDLV 51.602 6.142 32.3 20050516 20170923 100010 99999 FORSCHUNGS PLATFORM GM 54.7 7.167000000000001 24.0 19310101 20030203 100020 99999 BORKUMRIFF(LGT-VSL) GM 53.8 6.367000000000001 6.0 19280101 19891216 100030 99999 LIGHTSHIP 01 WESER GM 53.867 7.832999999999999 5.0 19310101 19900219 100031 99999 LIGHTSHIP 01 WESER GM 53.917 7.832999999999999 0.0 19730101 19810923 100040 99999 UFS TW/EMS (AUT) GM 54.167 6.35 3.0 19590805 20071231 100050 99999 ELBE 1 (LGT-VSL) GM 54.0 8.117 5.0 19310101 19921231 100060 99999 NORDSEEBOJE III GM 54.683 6.75 5.0 19310101 20090603 100065 99999 MARIENLEUCHTE GM 54.5 11.232999999999999 4.0 19730101 19730601 100070 99999 UFS DEUTSCHE BUCHT GM 54.183 7.433 3.0 19730101 20071231 100080 99999 NORDSEEBOJE I GM 55.0 6.332999999999999 3.0 19310101 20090401 100100 99999 19310101 19390731 100130 99999 19360102 19421230 100150 99999 HELGOLAND/DUNE GM 54.183 7.9 4.0 19730101 20071231 100155 99999 HELGOLAND GM 54.2 7.882999999999999 4.0 19730101 19740205 100180 99999 WESTERLAND SYLT GM EDXW 54.913000000000004 8.34 15.5 19890318 20170923 100190 99999 19310101 19411231 100195 99999 WESTERLAND/SYLT & GM EDHX 54.917 8.35 16.0 19780601 19811005 100196 99999 WESTERLAND/SYLT GM 54.917 8.35 16.0 19870416 19881009 100200 99999 LIST/SYLT GM 55.016999999999996 8.417 26.0 19340101 20071231 100220 99999 LECK GM 54.8 8.95 17.0 19730101 20121231 100260 99999 HUSUM (GER-AFB) GM 54.516999999999996 9.15 28.0 19730101 19921231 100270 99999 19360605 19421231 100280 99999 ST PETER-ORDING GM 54.333 8.6 11.0 20010915 20121231 100290 99999 19730101 19740821 100320 99999 19370301 19390731 100330 99999 MEIERWIK GM ETGG 54.833 9.5 33.0 19360101 20170923 100340 99999 EGGEBEK GM ETME 54.625 9.346 20.0 19730101 20050629 100350 99999 SCHLESWIG GM 54.533 9.55 43.0 19590805 20071231 100370 99999 SCHLESWIG GM ETNS 54.458999999999996 9.516 21.3 19420101 20170923 100380 99999 HOHN GM ETNH 54.312 9.538 11.9 19730101 20170923 100420 99999 OLPENITZ (AUT) GM 54.667 10.033 4.0 19750606 20071231 100430 99999 FEHMARNBELT GM 54.6 11.15 8.0 20090130 20090302 100440 99999 KIEL (LGT-H/AUT) GM 54.5 10.283 21.0 19370815 20071231 100450 99999 KIEL/KRONSHAGEN GM 54.333 10.1 19.0 19340101 19900301 100460 99999 KIEL/HOLTENAU(GNVY) GM ETMK 54.383 10.15 31.0 19290801 20071231 100465 99999 KIEL HOLTENAU GM EDHK 54.38 10.145 30.8 19950827 20170923 100480 99999 FRIEDRICHSORT GM 54.383 10.183 11.0 19750523 20010925 100500 99999 19420101 20090301 100550 99999 FEHMAR GM 54.533 11.067 9.0 19960901 20121231 100630 99999 PUTTGARDEN (AUT) GM 54.5 11.217 3.0 19860604 19921231 100670 99999 MARIENLEUCHTE GM 54.5 11.232999999999999 12.0 19310101 20120601 100910 99999 ARKONA (CAPE) GM 54.683 13.433 41.0 19310101 20071231 100930 99999 PUTBUS GM 54.367 13.482999999999999 34.0 19911101 20071231 100970 99999 GREIFSWALDER OIE GM 54.25 13.917 12.0 20010705 20121231 100974 99999 GREIFSWALDER OIE GM 54.25 13.917 12.0 20020410 20031028 101130 99999 NORDERNEY ISLAND GM 53.717 7.15 13.0 19350206 20071231 101200 99999 HELGOLAND ISLAND GM 54.183 7.882999999999999 53.0 19290801 20050510 101220 99999 JEVER GM ETNJ 53.534 7.888999999999999 7.3 19370105 20130926 101225 99999 WITTMUND GM 53.583 7.817 1.0 19730101 19730330 101230 99999 WANGEROGGE ISLAND GM 53.8 7.9 29.0 19870320 20081027 101240 99999 ALTE WESER (LGT-H) GM 53.867 8.132 32.0 19800307 20071231 101250 99999 WILHELMSHAVEN-MARIE GM 53.5 8.05 5.0 20010917 20041112 101260 99999 WITTMUNDHAFEN GM ETNT 53.548 7.667000000000001 7.9 19730101 20170923 101270 99999 WILHELMSHAVEN GM 53.533 8.167 11.0 19290801 20090301 101280 99999 SENGWARDEN GM EDZE 53.583 8.033 1.0 19730101 19830704 101281 99999 SENGWARDEN GM 53.583 8.033 1.0 19881014 19900110 101286 99999 WILHEIMSHAVEN GM 53.516999999999996 8.133 4.0 19730101 19730601 101290 99999 BREMERHAVEN GM 53.533 8.583 7.0 19490101 20071231 101300 99999 ELPERSBUETTEL (AUT) GM 54.067 9.017000000000001 1.0 19821104 20071231 101310 99999 CUXHAVEN GM 53.867 8.7 4.0 19310101 20071231 101330 99999 SAINT MICHAELISDONN GM 53.983000000000004 9.15 41.0 20031203 20040614 101360 99999 NORDHOLZ GM ETMN 53.768 8.658999999999999 22.6 19460901 20170923 101390 99999 BREMERVOERDE (AUT) GM 53.5 9.167 5.0 19900403 20071231 101420 99999 ITZEHOE GM ETHI 53.983000000000004 9.567 26.0 19730102 20121231 101430 99999 NEUMUNSTER/WASBEK GM EDHN 54.083 9.982999999999999 25.0 19420101 19921231 101440 99999 UETERSEN GM 53.65 9.7 7.0 19730622 20040522 101445 99999 HAMBURG/FINKENWERDE GM 53.55 9.833 0.0 19880201 19881027 101460 99999 QUICKBORN GM 53.733000000000004 9.883 17.0 19821111 20121231 101470 99999 HAMBURG GM EDDH 53.63 9.988 16.2 19280401 20170923 101480 99999 HAMBURG-STADT GM 53.55 9.967 22.0 20140930 20160113 101490 99999 HAMBURG FINKENWERDER GM EDHI 53.536 9.837 6.7 19881028 20170923 101500 99999 DOERNICK GM 54.167 10.35 28.0 20010707 20121231 101510 99999 DAHMESHOVED GM 54.2 11.1 8.0 19330701 19830509 101520 99999 PELZERHAKEN (AUT) GM 54.083 10.883 2.0 19880201 20071231 101560 99999 LUBECK BLANKENSEE GM EDHL 53.805 10.719000000000001 16.2 19730101 20170923 101610 99999 BOLTENHAGEN GM 54.0 11.2 17.0 19730101 20071231 101620 99999 SCHWERIN GM 53.633 11.417 68.0 19360102 20071231 101624 99999 SCHWERIN PARCHIM GM EDOP 53.427 11.783 50.6 19990115 20170923 101630 99999 PARCHIM GM 53.417 11.783 44.0 19520101 19601231 101680 99999 GOLDBERG (AUT) GM 53.6 12.1 58.0 19911101 20071231 101690 99999 ROSTOCK GM 54.183 12.067 4.0 20040530 20040530 101700 99999 WARNEMUENDE GM 54.183 12.083 10.0 19310101 20071231 101720 99999 LAAGE GM ETNL 53.918 12.277999999999999 42.1 19911218 20170923 101730 99999 19360515 19431231 101770 99999 TETEROW GM 53.766999999999996 12.617 50.0 19520101 20030816 101780 99999 TUTOW GM EDUW 53.922 13.219000000000001 7.0 19350101 19400324 101800 99999 BARTH GM 54.367 12.732999999999999 7.0 19360608 20071231 101810 99999 PAROW GM 54.367 13.083 4.0 19360325 20020501 101840 99999 GREIFSWALD GM 54.1 13.4 6.0 19911028 20071231 101850 99999 NAME AND LOC UNKN GM 0.0 0.0 -999.0 19370102 20020903 101920 99999 HERINGSDORF GM 53.883 14.15 28.0 19370202 20041024 101930 99999 UECKERMUENDE (AUT) GM 53.75 14.067 7.0 19361005 20071231 101935 99999 HERINGSDORF GM EDAH 53.879 14.152000000000001 28.3 19950315 20170923 102000 99999 EMDEN GM EDWE 53.391000000000005 7.227 0.6 19830506 20130528 102020 99999 EMDEN/WOLTHUSEN GM 53.367 7.2170000000000005 1.0 19590805 19830523 102030 99999 EMDEN/HAFEN GM 53.333 7.2 6.0 19600401 19921231 102040 99999 EMDEN-KNOCK GM 53.333 7.0329999999999995 2.0 20040929 20040929 102050 99999 PAPENBURG (AUT) GM 53.083 7.382999999999999 1.0 19870906 19900527 102100 99999 FRIESOYTHE-ALTENOYTHE GM 53.067 7.9 7.0 20120927 20121231 102130 99999 19390502 19431231 102150 99999 OLDENBURG GM 53.183 8.167 20.0 19730101 20121001 102180 99999 AHLHORN(GAFB) GM 52.883 8.232999999999999 56.0 19730101 20020114 102240 99999 BREMEN GM EDDW 53.048 8.787 4.3 19290801 20170923 102244 99999 LEMWERDER GM EDWD 53.15 8.617 30.0 19920827 19970226 102340 99999 ROTENBURG GM ETGQ 53.133 9.35 61.0 19420101 20161010 102350 99999 SOLTAU GM 53.0 9.833 77.0 19730101 20071231 102380 99999 BERGEN (MIL) GM ETGB 52.817 9.933 69.0 19730102 20170922 102420 99999 19501103 19560831 102460 99999 FASSBERG GM ETHS 52.919 10.198 74.7 19360102 20170923 102490 99999 BOIZENBURG (AUT) GM 53.4 10.683 46.0 19520101 20071231 102500 99999 19351202 19421231 102530 99999 LUCHOW/REHBECK GM 52.967 11.133 17.0 19490101 20071231 102540 99999 SALZWEDEL GQ 52.833 11.15 34.1 19360106 19570531 102610 99999 SEEHAUSEN/ALTMARK GM 52.9 11.732999999999999 23.0 19911101 20071231 102620 99999 WEISEN B WITTENBERGE GQ 53.033 11.8 24.1 19380106 19750707 102640 99999 MARNITZ (AUT) GM 53.317 11.933 87.0 19911101 20071231 102670 99999 KYRITZ (AUT) GM 52.933 12.417 40.0 19911101 20071231 102680 99999 WAREN GM 53.516999999999996 12.667 71.0 19941001 20121231 102700 99999 NEURUPPIN GM 52.9 12.817 39.0 19340806 20071231 102720 99999 WITTSTOCK GM ETGW 53.2 12.517000000000001 74.0 19950403 20140309 102730 99999 BASEPOHL GM 53.733000000000004 12.933 53.0 19920430 20031231 102740 99999 19310702 19440630 102770 99999 NEUGLOBSOW GM 53.15 13.033 62.0 19911003 20050531 102790 99999 NEUSTRELITZ GQ 53.35 13.083 64.0 19520101 19750730 102800 99999 NEUBRANDENBURG GM 53.55 13.2 80.0 19360101 20050531 102810 99999 NEUBRANDENBURG GM ETNU 53.602 13.306 69.5 19920630 20130930 102820 99999 FELDBERG/MECLENBERG GM 53.317 13.417 115.0 20060109 20060109 102860 99999 WOLDEGK GM 53.467 13.617 118.0 19920601 19921231 102890 99999 GRUENOW (AUT) GM 53.317 13.933 57.0 19360102 20071231 102910 99999 ANGERMUENDE GM 53.033 14.0 55.0 19520101 20071231 103030 99999 19360102 19431231 103040 99999 MEPPEN (MIL) GM ETWM 52.717 7.317 26.0 19761201 20170923 103050 99999 LINGEN GM 52.516999999999996 7.317 21.0 19730101 20071231 103060 99999 RHEINE BENTLAGE GM ETHE 52.291000000000004 7.3870000000000005 39.3 19401001 20170923 103070 99999 RHEINE/WALDHUGEL GM 52.266999999999996 7.433 78.0 19830504 20030227 103080 99999 NORDHORN RANGE GM ETUN 52.45 7.167000000000001 26.0 19310102 20040915 103084 99999 NORDHORN RANGE & GM 52.45 7.167000000000001 26.0 19771003 19900424 103090 99999 AHAUS GM 52.083 6.95 46.0 19411201 20060809 103100 99999 19310502 19431229 103120 99999 BELM GM 52.318000000000005 8.17 104.0 19310102 19421231 103130 99999 MUNSTER/TELGTE GM EDLT 51.967 7.6 64.0 19380404 19891129 103134 99999 MUNSTER/OSNABRUCK GM 52.133 7.683 48.0 19771108 19881027 103140 99999 HOPSTEN GM ETNP 52.339 7.541 40.0 19730101 20051223 103150 99999 MUNSTER OSNABRUCK GM EDDG 52.135 7.685 48.8 19881027 20170923 103160 99999 19300501 19421231 103170 99999 OSNABRUCK/ATTERHEID GM 52.25 8.05 95.0 19390519 20071231 103180 99999 BORGHOLZHAUSEN GM 52.117 8.283 305.0 19850227 20021122 103190 99999 19360501 19411222 103193 99999 PADERBORN/LIPPSTAD& GM 51.617 8.617 217.0 19870302 19881026 103200 99999 GUTERSLOH GM ETUO 51.923 8.306000000000001 71.9 19370503 20131028 103210 99999 DIEPHOLZ GM ETND 52.586000000000006 8.341000000000001 38.7 19730102 20170922 103250 99999 BAD SALZUFLEN GM 52.1 8.75 98.0 19730101 20071231 103280 99999 DETMOLD (UK-ARMY) GM 51.95 8.9 189.0 19360302 20010707 103340 99999 WUNSTORF GM ETNW 52.457 9.427 57.0 19370507 20170923 103350 99999 BUCKEBURG GM ETHB 52.278999999999996 9.082 70.1 19730102 20170923 103370 99999 HILDESHEIM GM 52.183 9.95 88.0 19341201 20021102 103380 99999 HANNOVER GM EDDV 52.461000000000006 9.685 55.8 19260101 20170923 103390 99999 19370106 19431231 103400 99999 19300502 19420630 103410 99999 19370601 19431231 103430 99999 CELLE GM ETHC 52.591 10.022 39.3 19360102 20170923 103480 99999 BRAUNSCHWEIG WOLFSBURG GM EDVE 52.318999999999996 10.556 89.9 19310102 20170923 103490 99999 19360508 19431231 103510 99999 19361116 19431016 103520 99999 19380103 19420630 103560 99999 UMMENDORF(AUT) GM 52.167 11.183 163.0 19911025 20071231 103570 99999 19360102 19431231 103590 99999 GARDELEGEN (AUT) GM 52.516999999999996 11.4 48.0 19360101 20071231 103610 99999 MAGDEBURG GM 52.117 11.583 85.0 19310101 20071231 103620 99999 MAGDENBURG GM 52.067 11.617 81.0 19381014 19431231 103630 99999 19350105 19431231 103640 99999 19360603 19411231 103650 99999 GENTHIN (AUT) GM 52.383 12.167 39.0 19911022 20071231 103660 99999 19360803 19431231 103680 99999 WIESENBURG GM 52.117 12.467 188.0 19911101 20071231 103700 99999 BRANDENBURG/BRIEST GM 52.433 12.45 31.0 19381201 20010923 103710 99999 19400501 19411231 103760 99999 BARUTH GM 52.117 13.617 57.0 20030518 20071231 103780 99999 POTSDAM (SOR) GM 52.367 13.083 89.0 20040510 20040510 103790 99999 POTSDAM GM 52.383 13.067 100.0 19730101 20071231 103800 99999 POTSDAM GQ 52.383 13.05 70.1 19520101 19601231 103810 99999 BERLIN/DAHLEM GM 52.467 13.3 51.0 19730101 20071231 103820 99999 TEGEL GM EDDT 52.56 13.288 37.2 19360310 20170923 103830 99999 19391114 19431231 103840 99999 TEMPELHOF GM EDDI 52.473 13.404000000000002 50.9 19290801 20071231 103850 99999 SCHONEFELD GM EDDB 52.38 13.523 47.9 19400408 20170923 103860 99999 19731129 19740923 103870 99999 19350201 19431231 103890 99999 BERLIN/ALEXANDERPLZ GM 52.516999999999996 13.417 84.0 19911101 20071231 103930 99999 LINDENBERG GM 52.217 14.117 112.0 19311001 20071231 103940 99999 LINDENBERG GM 52.217 14.117 101.0 20040714 20040714 103950 99999 TROLLENBERG-BEESKOW GM 52.167 14.117 71.0 19920126 20030326 103960 99999 MANSCHNOW GM 52.55 14.55 16.0 19911101 20071231 103980 99999 FRANKFURT /ODER GQ 52.367 14.517000000000001 49.1 19360102 19750630 104000 99999 DUSSELDORF GM EDDL 51.288999999999994 6.767 44.8 19310102 20170923 104010 99999 BRUGGEN (RAF) GM ETUR 51.2 6.132999999999999 76.0 19730102 20030622 104020 99999 WILDENRATH(GAFB) GM 51.117 6.2170000000000005 89.0 19730101 20030508 104030 99999 MOENCHENGLADBACH GM 51.233000000000004 6.5 38.0 19381001 19421031 104040 99999 KALKAR (MIL COMM) GM ETGY 51.75 6.2829999999999995 43.0 19730102 20140122 104043 99999 KALKAR (MIL COMM) GM 51.683 6.167000000000001 19.0 19820927 19870304 104050 99999 LAARBRUCH (RAF) GM ETUL 51.6 6.15 31.0 19730102 20030615 104060 99999 BOCHOLT GM 51.833 6.5329999999999995 25.0 19730101 20050531 104070 99999 19381001 19421231 104090 99999 ESSEN/MUELHEIM GM 51.4 6.9670000000000005 161.0 19300414 19431231 104100 99999 ESSEN/MULHEIM GM EDZE 51.4 6.9670000000000005 161.0 19310101 20071231 104160 99999 DORTMUND GM EDLW 51.518 7.612 129.5 19310101 20170923 104180 99999 LUEDENSCHEID GM 51.25 7.65 392.0 19940301 20121231 104183 99999 DORTMUND/WICKEDE & GM 19880105 19881027 104190 99999 LUDENSCHEID & GM 51.233000000000004 7.6 458.0 19270906 20030306 104230 99999 19390901 19421231 104240 99999 WERL GM 51.583 7.882999999999999 85.0 19390801 20121231 104260 99999 PADERBORN LIPPSTADT GM EDLP 51.614 8.616 213.1 19381104 20170923 104264 99999 SOEST (UK-ARMY) GM 51.583 8.217 125.0 19830406 19900403 104270 99999 KAHLER ASTEN(MOUNT) GM 51.183 8.482999999999999 835.0 19260501 20071231 104300 99999 BAD LIPPSPRINGE GM 51.783 8.833 151.0 19370603 20071231 104310 99999 EGGEGEBIRGE GM 51.833 8.95 430.0 20010921 20010921 104320 99999 KOETERBERG (AUT) GM 51.85 9.317 493.0 19750816 19921231 104330 99999 LUEGDE-PAENBRUCH GM 51.867 9.267000000000001 260.0 19290809 20121231 104340 99999 FLECHTDORF GM 51.333 8.85 516.0 19300301 19431231 104350 99999 WARBURG (AUT) GM 51.5 9.183 225.0 19750825 20071231 104360 99999 KASSEL CALDEN GM EDVK 51.408 9.378 276.8 19881223 20170923 104370 99999 FRITZLAR-KASSELER W GM 51.133 9.283 223.0 19990501 20030705 104374 99999 MONCHENGLADBACH GM EDLN 51.23 6.504 38.1 19960715 20170923 104380 99999 KASSEL GM 51.3 9.45 158.0 19310101 20071231 104390 99999 FRITZLAR GM ETHF 51.115 9.286 172.5 19380722 20170923 104400 99999 FLECHTDORF GM 51.317 8.8 551.0 19281018 19431231 104410 99999 SCHAUNBERG-ELGERSHAUSEN GM 51.283 9.367 317.5 19390902 19411201 104420 99999 ALFELF GM 51.967 9.8 66.0 19371001 20080111 104440 99999 GOETTINGEN GM 51.55 9.95 176.0 19420101 20071231 104480 99999 KALTENEBER GQ 51.333 10.167 445.9 19370109 19560731 104490 99999 LEINEFELDE (AUT) GM 51.4 10.317 356.0 19270510 20071231 104500 99999 19370201 19420630 104510 99999 19390201 19431231 104520 99999 BRAUNLAGE GM 51.733000000000004 10.6 607.0 19730101 20071231 104530 99999 BROCKEN (PEAK) GM 51.8 10.617 1153.0 19260801 20071231 104540 99999 WERNIGERODE (AUT) GM 51.85 10.767000000000001 240.0 19520101 20071231 104550 99999 SCHIERKE (AUT) GM 51.766999999999996 10.667 617.0 19911230 20020306 104560 99999 19341205 19431231 104570 99999 19300909 19411231 104580 99999 HARZGERODE GM 51.65 11.133 405.0 19911101 20071231 104600 99999 ARTERN GM 51.383 11.3 166.0 19730101 20071231 104660 99999 HALLE-KROELLWITZ GM 51.516999999999996 11.95 93.0 19360401 20071231 104680 99999 OPPIN GM 51.55 12.067 106.0 19310102 19431231 104690 99999 LEIPZIG HALLE GM EDDP 51.424 12.235999999999999 141.7 19290311 20170923 104700 99999 LEIPZIG /MOCKAU GQ 51.4 12.417 131.1 19570601 19711130 104710 99999 LEIPZIG-HOLZHAUSEN GM 51.317 12.45 151.0 19300303 20121231 104720 99999 19360118 19411231 104730 99999 19360618 19431231 104740 99999 WITTENBERG GM 51.883 12.65 106.0 19310301 20071231 104750 99999 19390102 19431231 104760 99999 HOLZDORF GM ETSH 51.768 13.168 80.8 19911020 20170923 104770 99999 19360102 19430531 104790 99999 COLOMBERG GQ 51.3 13.017000000000001 324.9 19520101 19750630 104800 99999 OSCHATZ GM 51.3 13.1 152.0 19370107 20071231 104810 99999 19310219 19431231 104820 99999 19351101 19421230 104860 99999 WAHNSDORF GM 51.117 13.683 232.0 19520101 19600930 104880 99999 DRESDEN GM EDDC 51.133 13.767000000000001 230.1 19310101 20170923 104900 99999 DOBERLUG/KIRCHHAIN GM 51.65 13.583 100.0 19360102 20071231 104910 99999 19390901 19431231 104920 99999 COTTBUS (FLUGPLATZ) GM ETHT 51.766999999999996 14.3 67.0 19311102 20030613 104930 99999 PRESCHEN GM 51.667 14.633 100.0 19400801 20011007 104940 99999 19390103 19411231 104960 99999 COTTBUS GM 51.783 14.317 69.0 19520101 20071231 104970 99999 19390901 19431231 104980 99999 19311010 19420630 104990 99999 GOERLITZ GM 51.167 14.95 238.0 19320104 20071231 105000 99999 GEILENKIRCHEN GM ETNG 50.961000000000006 6.042000000000001 90.2 19820625 20170922 105010 99999 AACHEN GM 50.783 6.1 202.0 19280101 20071231 105020 99999 NORVENICH GM ETNN 50.831 6.6579999999999995 117.7 19730101 20170923 105030 99999 AACHEN/MERZBRUCK GM ETBA 50.817 6.183 191.0 19780901 20030305 105040 99999 EIFEL GM 50.65 6.2829999999999995 572.0 20040501 20040501 105050 99999 AACHEN-ORSBACH GM 50.783 6.017 232.0 20110512 20121231 105060 99999 NUERBURG-BARWEILER GM 50.367 6.867000000000001 488.0 19950401 20121231 105080 99999 BLANKENHEIM GM 50.45 6.65 556.0 19781002 19840504 105090 99999 BUTZWEILERHOF(BAFB) GM 50.983000000000004 6.9 49.0 19780901 19950823 105100 99999 NUERBURG GM 50.333 6.95 626.0 19300901 19921231 105120 99999 19310602 20080913 105130 99999 KOLN BONN GM EDDK 50.86600000000001 7.143 92.0 19310101 20170923 105140 99999 MENDIG GM ETHM 50.36600000000001 7.315 182.0 19730102 20070614 105150 99999 BENDORF GM 50.417 7.582999999999999 96.0 19310102 20071231 105170 99999 BONN/FRIESDORF(AUT) GM 50.7 7.15 61.0 19360102 19921231 105180 99999 BONN-HARDTHOEHE GM 50.7 7.0329999999999995 160.0 19750523 20031030 105190 99999 BONN-ROLEBER GM 50.733000000000004 7.2 162.0 20010705 20121231 105260 99999 BAD MARIENBERG GM 50.667 7.9670000000000005 547.0 19730101 20071231 105320 99999 GIESSEN GM 50.583 8.7 186.0 19390102 20071231 105325 99999 FRIEDBERG (USA-HP) GM 50.333 8.732999999999999 146.0 19731129 19740102 105330 99999 GIESSEN (USA-HP) GM 50.6 8.732999999999999 152.0 19810902 19820412 105350 99999 WAHLEN (AUT) GM 50.817 9.133 320.0 19320301 20071231 105360 99999 FULDA(USA\AF) GM 50.55 9.65 305.0 19600908 20021225 105390 99999 19310302 19411231 105420 99999 BAD HERSFELD (AHP) GM 50.867 9.717 212.0 19730101 20071231 105440 99999 WASSERKUPPE (MOUNT) GM 50.5 9.95 921.0 19310101 20071231 105445 99999 MELLENDORF GM EDEX 50.533 9.633 305.0 19730102 19881027 105460 99999 KALTENNORDHEIM(AUT) GM 50.633 10.15 494.0 19520101 19921231 105480 99999 MEININGEN GM 50.567 10.383 453.0 19280305 20071231 105490 99999 GROSSER INSELSBERG GQ 50.85 10.467 920.2 19280702 19750630 105500 99999 19341001 19431231 105510 99999 SUHL GM 50.617 10.667 505.0 19911028 19951213 105520 99999 SCHMUECKE (RIDGE) GM 50.65 10.767000000000001 942.0 19911101 20071231 105536 99999 ALTENBURG NOBITZ GM EDAC 50.982 12.505999999999998 195.1 19960321 20170923 105540 99999 ERFURT GM EDDE 50.98 10.958 315.8 19310101 20170923 105550 99999 WEIMAR GM 50.983000000000004 11.317 268.0 19370106 20070702 105560 99999 19390103 19430131 105570 99999 NEUHAUS GM 50.5 11.133 850.0 19911101 20071231 105580 99999 SONNEBERG/NEUFANG GM 50.383 11.183 630.0 19370401 20071231 105590 99999 19370403 19411231 105600 99999 19390903 19420630 105610 99999 19310903 19390331 105620 99999 19360701 19420630 105640 99999 SCHLEIZ (AUT) GM 50.567 11.817 502.0 19410216 20071231 105650 99999 OSTERFELD (AUT) GM 51.083 11.933 263.0 19911101 20071231 105670 99999 GERA/LEUMNITZ GM 50.883 12.133 312.0 19520101 20071231 105690 99999 PLAUEN (AUT) GM 50.483000000000004 12.133 389.0 19310101 20071231 105730 99999 19390102 19420630 105740 99999 CARLSFELD GM 50.433 12.617 899.0 19911101 20071231 105750 99999 AUE GM 50.6 12.717 397.0 19911101 20071231 105760 99999 19300915 19431231 105770 99999 CHEMNITZ GM 50.8 12.867 420.0 19310101 20071231 105780 99999 FICHTELBERG MTN GM 50.433 12.95 1215.0 19310101 20071231 105790 99999 MARIENBERG GM 50.65 13.15 640.0 19300415 20071231 105820 99999 ZINNWALD/GEORGENFE GM 50.733000000000004 13.75 882.0 19911008 20071231 105910 99999 LICHTENHAIN-MITTELD GM 50.933 14.217 300.0 19911101 20071231 105970 99999 BOGUS GERMAN GM 19920224 19920727 106070 99999 SPANGDAHLEM AB GM ETAD 49.973 6.693 364.8 19530518 20170923 106074 99999 BITBURG GM EDRB 49.945 6.565 372.8 19970826 19980709 106090 99999 TRIER/PETRISBERG GM 49.75 6.667000000000001 265.0 19310102 20071231 106100 99999 BITBURG(US ARMY) GM 49.95 6.567 374.0 19520401 20010822 106130 99999 BUCHEL GM ETSB 50.174 7.063 477.9 19730101 20170923 106140 99999 RAMSTEIN AB GM ETAR 49.437 7.6 238.1 19520301 20170923 106145 99999 PIRMASEN (USA-HP) GM 49.217 7.617000000000001 415.0 19730102 19881027 106150 99999 DEUSELBACH GM 49.766999999999996 7.05 479.0 19730101 20071231 106156 99999 BIRKENFELD GM 49.65 7.183 547.0 19840716 19930716 106160 99999 FRANKFURT HAHN GM EDFH 49.949 7.263999999999999 502.6 19530722 20170923 106161 99999 MAGDEBURG GM EDBM 52.074 11.626 81.7 20040510 20070105 106162 99999 SIEGERLAND GM EDGS 50.708 8.083 599.2 20040510 20170923 106163 99999 ZWEIBRUCKEN GM EDRZ 49.21 7.401 345.3 20040510 20141128 106164 99999 COCHSTEDT GM EDBC 51.855 11.419 180.0 20100716 20170724 106170 99999 TRABEN-TRARBACH GM 49.967 7.117000000000001 257.0 19850601 19920625 106180 99999 IDAR-OBERSTEIN(MIL) GM ETGI 49.7 7.332999999999999 377.0 19730102 20131216 106190 99999 BAUMHOLDER (USA-AF) GM 49.65 7.3 426.0 19650201 19850807 106260 99999 PFERDSFELD (GER-AF) GM ETSP 49.85 7.6 396.0 19730101 20010421 106265 99999 BAD KREUZNACH AAF & GM 49.85 7.882999999999999 103.0 19730102 19881027 106270 99999 BAD KREUZNACH AAF GM ETEH 49.85 7.882999999999999 103.0 19591104 20010223 106280 99999 GEISENHEIM GM 49.983000000000004 7.95 123.0 19830503 20121231 106290 99999 OFFENTHAL (RADAR) GM 49.983000000000004 8.717 198.0 19380601 19411231 106320 99999 FINTHEN (USA-AF) GM EDOT 49.967 8.15 232.0 19420101 19921009 106325 99999 EGELSBACH GM EDFE 49.961000000000006 8.642000000000001 117.3 20070807 20170403 106330 99999 WIESBADEN AAF GM ETOU 50.05 8.325 140.5 19380106 20170923 106334 99999 MEBSTETTEN / ALBSTADT GM ETCE 50.117 9.117 475.0 19801015 19950104 106335 99999 FINTHEN (USA-AF) & GM 49.967 8.15 232.0 19730102 19881027 106350 99999 KLEINER FELDBERG GM 50.217 8.45 805.0 19260501 20071231 106370 99999 FRANKFURT MAIN GM EDDF 50.026 8.543 110.9 19260101 20170923 106380 99999 MAURICE ROSE(USAHP) GM 50.183 8.65 104.0 19920601 20030516 106390 99999 LANGEN GM 50.016999999999996 8.667 135.0 19490101 19971005 106400 99999 OFFENBACH-M GM 50.1 8.732999999999999 112.0 19730101 20010517 106405 99999 MAURICE ROSE(USAHP) GM EDEN 50.183 8.667 104.0 19650501 19860330 106410 99999 OFFENBACH WETTERPAR GM 50.083 8.783 119.0 19410401 20050808 106420 99999 HANAU AAF GM ETID 50.169 8.962 112.2 19381104 20060428 106430 99999 BABENHAUSEN GM EDEF 49.95 8.967 131.0 19850509 19860330 106450 99999 BREITSOL (AUT) GM 49.9 9.433 585.0 19880105 20050531 106460 99999 NEUHUTTEN-SPESSART GM 50.016999999999996 9.417 339.0 19410101 19410731 106480 99999 MICHELSTADT/VIELBRU GM 49.717 9.1 405.0 19871002 20071231 106530 99999 GIEBELSTADT AAF GM ETEU 49.648 9.966000000000001 298.7 19360102 20060831 106550 99999 WURZBURG (USA-AF) GM 49.766999999999996 9.967 259.0 19310103 20071231 106570 99999 WERTHEIM (USA-HP) GM 49.75 9.5 338.0 19380202 19990401 106580 99999 BAD KISSINGEN GM 50.2 10.083 224.0 19460202 20071231 106585 99999 SCHWEINFURT AHP GM ETOA 50.047 10.171 239.9 20030423 20051104 106590 99999 KITZINGEN(US ARMY) GM 49.75 10.2 210.0 19340801 20011119 106595 99999 VILSECK AAF GM ETOI 49.63399999999999 11.767000000000001 412.4 19810102 20130325 106596 99999 HEIDELBERG AHP GM ETIE 49.383 8.65 109.0 20060424 20091203 106597 99999 LANDSTUHL AHP GM ETIP 49.403 7.5360000000000005 355.7 20060831 20151215 106598 99999 BAUMHOLDER GM EDEK 49.633 7.2829999999999995 426.0 20060425 20170923 106600 99999 19380103 19431231 106690 99999 KITZINGEN AAF GM ETIN 49.743 10.201 210.0 19990424 20020117 106700 99999 19490101 19541231 106710 99999 COBURG GM 50.283 10.982999999999999 337.0 19730101 20071231 106750 99999 BAMBERG (USA-AF) GM 49.883 10.917 242.0 19730101 20071231 106755 99999 BAMBERG (USA-AF) GM EDEJ 49.917 10.917 242.0 19461101 19820716 106770 99999 BAYREUTH GM EDQD 49.983999999999995 11.639000000000001 488.0 19310102 20070701 106780 99999 GRADFFENWOHR GM 49.7 11.933 415.0 19410501 19431231 106810 99999 19490101 19541231 106840 99999 HOF GM 50.283 11.85 588.0 20040610 20040907 106850 99999 HOF PLAUEN GM EDQM 50.288999999999994 11.855 597.4 19310101 20170923 106860 99999 WUNSIEDEL-SCHOENBRUNN GM 50.033 11.967 623.0 20061010 20061011 106870 99999 GRAFENWOHR AAF GM ETIC 49.699 11.94 415.4 19390901 20170923 106874 99999 HERZO BASE (USA-HP) GM 49.583 10.917 329.0 19370401 19431231 106875 99999 ERLANGEN (USA-AF) GM 49.583 11.033 282.0 19470630 19731121 106880 99999 WEIDEN (MIL/MET) GM 49.667 12.183 438.0 19310102 20071231 107000 99999 19741029 19741029 107020 99999 KARLSRUHE/BADEN-B GM 48.783 8.083 124.0 19860107 20010918 107040 99999 BERUS GM 49.283 6.683 363.0 19730101 20071231 107050 99999 19730101 19750513 107060 99999 THOLEY GM 49.483000000000004 7.05 398.0 19750618 20071231 107070 99999 19410701 19431231 107080 99999 SAARBRUCKEN GM EDDR 49.215 7.11 322.5 19350701 20170923 107090 99999 SAARBRUECKEN GM 49.25 6.933 213.0 19311104 20041123 107100 99999 19380901 19411231 107110 99999 19400719 19411231 107120 99999 SEMBACH (USAFB) GM ETAS 49.5 7.867000000000001 321.0 19530708 20100216 107140 99999 ZWEIBRUECKEN GM 49.217 7.4 353.0 19541001 20030329 107170 99999 PIRMASENS (USA-HP) GM 49.217 7.617000000000001 415.0 19881027 20021228 107220 99999 KARLSRUHE/BADEN-BAD GM 48.783 8.083 135.0 19550702 19930526 107230 99999 NEUSTADT/WEINSTR. GM 49.367 8.133 163.0 19730101 19840724 107240 99999 WEINBIET (AUT) GM 49.383 8.117 553.0 19730101 20071231 107250 99999 BADEN-OOS GM 48.8 8.183 126.0 19770803 20020311 107260 99999 19360107 19431231 107270 99999 KARLSRUHE (USA-AF) GM 49.033 8.367 114.0 19290801 20071231 107275 99999 KARLSRUHE BADEN BADEN GM EDSB 48.778999999999996 8.081 124.4 19970723 20170923 107280 99999 COLEMAN AAF GM ETOR 49.56399999999999 8.463 94.2 19310101 20130114 107290 99999 MANNHEIM CITY GM EDFM 49.473 8.514 94.2 19470729 20170923 107295 99999 COLEMAN (USA-AF) & GM 49.567 8.467 94.0 19730102 19881027 107320 99999 19390711 19411231 107330 99999 WAIBSTADT GM 49.3 8.9 237.0 20011008 20070925 107340 99999 HEIDELBERG AAF GM 49.4 8.65 109.0 19461118 20090925 107345 99999 HEIDELBERG AHP GM ETIE 49.393 8.652000000000001 109.1 20111130 20130614 107350 99999 SINSHEIM (AUT) GM 49.25 8.883 169.0 19870904 20050531 107360 99999 MUEHLACKER (AUT) GM 48.967 8.867 244.0 19790314 20071231 107370 99999 STUTTGART GM 48.766999999999996 9.183 305.0 19360701 20030425 107380 99999 STUTTGART GM EDDS 48.69 9.222000000000001 388.9 19390902 20170923 107390 99999 STUTTGART/SCHNARREN GM 48.833 9.2 315.0 19840807 20071231 107420 99999 OEHRINGEN GM 49.217 9.517000000000001 276.0 19490101 20071231 107430 99999 NIEDERSTETTEN GM ETHN 49.391999999999996 9.958 468.2 19730102 20170923 107450 99999 SCHWABISCH HALL GM EDTY 49.118 9.783999999999999 399.6 19360102 20170923 107460 99999 19311123 19431231 107520 99999 ILLESHEIM AHP GM ETIK 49.474 10.388 328.6 19390901 20170923 107550 99999 ANSBACH AHP GM ETEB 49.308 10.639000000000001 467.0 19390101 20170923 107552 99999 19730102 19761022 107610 99999 WEISSENBURG GM 49.016999999999996 10.967 422.0 19310102 20071231 107620 99999 FURTH (USA-HP) GM 49.5 10.967 302.0 19310501 20030719 107630 99999 NURNBERG GM EDDN 49.498999999999995 11.078 318.8 19310101 20170923 107635 99999 FURTH (USA-HP) GM EDEW 49.5 10.967 302.0 19460301 19710704 107640 99999 FEUCHT(USA\AF) GM 49.383 11.167 386.0 19680117 20030729 107650 99999 ROTH GM ETHR 49.218 11.1 386.5 19390901 20131205 107655 99999 FEUCHT AAF GM EDIG 49.383 11.167 386.0 19730101 19790108 107710 99999 KUEMMERSBRUCK GM ETGK 49.433 11.9 418.0 19730102 20140925 107715 99999 HOHENFELS (USA-AF)& GM 49.217 11.833 442.0 19730102 19881027 107750 99999 HOHENFELS AAF GM ETIH 49.218 11.835999999999999 443.5 19610918 20170923 107760 99999 REGENSBURG/OBERHUB GM 49.05 12.1 376.0 19310102 20071231 107770 99999 GELBELSEE GM 48.95 11.433 539.0 19870906 20071231 107780 99999 19411001 19431231 107880 99999 STRAUBING GM 48.833 12.567 360.0 19390902 20121231 107910 99999 GROSSER ARBER (MTN) GM 49.117 13.133 1307.0 19490101 20071231 107960 99999 ZWIESEL (AUT) GM 49.033 13.232999999999999 581.0 19760403 20071231 108030 99999 FREIBURG (CIV/FAFB) GM 48.0 7.85 269.0 19310106 20071231 108040 99999 19300730 19411231 108050 99999 LAHR GM EDTL 48.369 7.827999999999999 155.8 19730101 20170923 108055 99999 19740604 19740812 108060 99999 19290521 19411231 108100 99999 19290522 19411231 108150 99999 FREUDENSTADT GM 48.45 8.417 797.0 19730101 20071231 108180 99999 KLIPPENECK (CLIFF) GM 48.1 8.75 973.0 19300903 20071231 108260 99999 TUBINGEN GM 48.516999999999996 9.05 370.0 19730101 19790809 108270 99999 MESSSTETTEN GM ETGZ 48.183 9.0 920.0 19740820 20130930 108280 99999 SIGMARINGEN GM 48.1 9.25 646.0 19950201 20080725 108320 99999 TUERKHEIM GM 48.583 9.783 731.0 20040818 20040818 108330 99999 19360603 19400616 108340 99999 RIEDLINGEN (AUT) GM 48.167 9.5 526.0 19880105 19921231 108350 99999 GOPPINGEN(US ARMY) GM 48.717 9.7 382.0 19730102 19750214 108354 99999 GOPPINGEN (USA-AF) GM 48.717 9.7 382.0 19370104 19900201 108360 99999 STOETTEN GM 48.667 9.867 734.0 19490101 20071231 108365 99999 19750905 19760325 108370 99999 LAUPHEIM GM ETHL 48.22 9.91 538.3 19730102 20170923 108380 99999 ULM (MIL/MET) GM 48.383 9.95 522.0 19490101 20071231 108390 99999 ULM/WILHELMSBURG & GM 48.4 9.982999999999999 596.0 19410116 19430430 108400 99999 19391001 19431231 108410 99999 19410301 19431231 108450 99999 LEIPHEIM(GAFB) GM 48.433 10.232999999999999 489.0 19370802 19940331 108460 99999 19320504 19431231 108500 99999 HARBURG (AUT) GM 48.783 10.7 457.0 19750822 20071231 108520 99999 AUGSBURG GM EDMA 48.425 10.932 461.8 19371101 20170923 108522 99999 AUGSBURG/MULHAUSEN GM 48.433 10.933 461.0 19850205 19900108 108523 99999 AUGSBURG/MULHAUSEN GM 48.433 10.933 461.0 19900111 19901029 108530 99999 NEUBURG GM ETSN 48.711000000000006 11.212 380.7 19380804 20170923 108560 99999 LECHFELD GM ETSL 48.18600000000001 10.860999999999999 555.3 19281114 20170923 108570 99999 LANDSBERG LECH GM ETSA 48.071000000000005 10.905999999999999 623.0 19380103 20170923 108580 99999 FURSTENFELDBRUCK GM ETSF 48.206 11.267000000000001 519.1 19380401 20030814 108590 99999 OBERPFAFFENHOFEN GM 48.083 11.283 600.0 19400902 19431231 108600 99999 INGOLSTADT MANCHING GM ETSI 48.716 11.534 366.4 19391101 20170923 108605 99999 SIEGENBERG G.R.(MIL GM 48.75 11.8 404.0 19730108 19830322 108620 99999 SIEGENBURG(MIL/MET) GM 48.75 11.8 404.0 19830405 20031015 108630 99999 WEIHENSTEPHAN-DURNA GM 48.4 11.7 470.0 19890319 20121231 108640 99999 NEUBIBERG (GER-AFB) GM 48.067 11.633 560.0 19370401 20010409 108644 99999 OBERPFAFFENHOFEN GM EDMO 48.081 11.283 593.4 19920831 20170923 108645 99999 MUNICH/PERLACHER GM EDEM 48.083 11.6 567.0 19731108 19860725 108646 99999 BAYREUTH/BINDLACHER GM 49.983000000000004 11.633 488.0 19771108 19881026 108650 99999 MUNICH GM 48.133 11.55 520.0 19260101 20071231 108660 99999 MUNCHEN GM EDDM 48.354 11.786 453.2 19290801 20170923 108670 99999 OBERSCHLEISSHEIM GM EDPO 48.233000000000004 11.55 486.0 19730102 19810630 108680 99999 MUENCHEN-OBERSCHLEI GM 48.244 11.552999999999999 489.0 19350101 19431231 108690 99999 ERDING GM ETSE 48.321999999999996 11.949000000000002 461.8 19370901 20150130 108700 99999 MUNICH ARPT GM 48.35 11.783 448.0 19920416 20071231 108710 99999 FUERHOLZEN GM 48.333 11.617 510.0 19940327 19990509 108750 99999 MUHLDORF GM 48.283 12.5 401.0 19730101 20071231 108760 99999 19380401 19441231 108930 99999 PASSAU GM 48.583 13.467 409.0 19490101 19921231 108940 99999 19391005 19431231 108950 99999 FUERSTENZELL GM 48.55 13.35 480.0 19980301 20121231 109000 99999 BREMGARTEN(GAFB) GM 47.9 7.617000000000001 217.0 19730101 20020131 109080 99999 FELDBERG/SCHWARZWAL GM 47.883 8.0 1486.0 19310106 20071231 109120 99999 DONAUESCHINGEN VILLINGEN GM EDTD 47.973 8.522 680.0 20040406 20170629 109210 99999 NEUHAUSEN OB ECK GM 47.983000000000004 8.9 804.0 19730102 19950228 109290 99999 KONSTANZ GM EDTZ 47.683 9.183 447.0 19360102 20071231 109340 99999 FRIEDRICHSHAFEN GM 47.65 9.482999999999999 401.0 19590801 19780126 109350 99999 FRIEDRICHSHAFEN GM EDNY 47.67100000000001 9.511000000000001 416.7 19290801 20170923 109353 99999 FRIEDRICHSHAFEN GM 47.667 9.517000000000001 424.0 19880105 19881011 109360 99999 19340102 19420630 109460 99999 KEMPTEN/DURACH GM 47.717 10.333 705.0 19410114 20071231 109470 99999 ALLGAU GM EDJA 47.989 10.24 629.1 19370401 20170923 109480 99999 OBERSTDORF GM 47.4 10.283 810.0 19730101 20030628 109530 99999 KAUFBEUREN(GAFB) GM 47.867 10.617 721.0 19360102 20030227 109540 99999 ALTENSTADT GM ETHA 47.833 10.867 760.0 19321122 20170923 109543 99999 ALTENSTADT (GAM) & GM EDPL 47.833 10.867 739.0 19881027 19901029 109610 99999 ZUGSPITZE MOUNTAIN GM 47.417 10.982999999999999 2960.0 19310101 20071231 109620 99999 HOHENPEISSENBERG GM 47.8 11.017000000000001 977.0 19370402 20071231 109630 99999 GARMISCH (USA-HP) GM 47.483000000000004 11.067 719.0 19490101 20071231 109650 99999 MITTENWALD GM 47.417 11.267000000000001 1035.0 19300602 19401231 109710 99999 BAD TOLZ (USA-AF) GM 47.766999999999996 11.6 716.0 19730102 19990321 109711 99999 BAD TOLZ (USA-AF) & GM EDOV 47.766999999999996 11.6 716.0 19640916 19861114 109720 99999 19310515 19431231 109800 99999 WENDELSTEIN MTN GM 47.7 12.017000000000001 1832.0 19730101 20071231 109820 99999 CHIEMING (AUT) GM 47.883 12.533 549.0 19420101 20071231 109970 99999 19730101 19751219 109973 99999 ALTENSTADT (GAM) & GM 47.833 10.867 739.0 19870119 19881027 109999 99999 19730101 19730531 110010 99999 WOLFSEGG AU 48.1 13.667 615.6 19730715 20170923 110030 99999 RIED IM INNKREIS AU 48.217 13.482999999999999 443.0 19520103 20050409 110050 99999 SCHAERDING/SUBEN AU 48.4 13.433 330.0 20010807 20010807 110080 99999 ROHRBACH AU 48.567 14.0 602.0 19761101 20170923 110090 99999 WELS/FLUGFELD AU 48.183 14.033 318.0 19340502 20050814 110100 99999 LINZ AU LOWL 48.233000000000004 14.187999999999999 298.1 19341001 20170923 110110 99999 HORSCHING (AUS-AFB) AU LOXL 48.233000000000004 14.183 313.0 19391204 20030929 110120 99999 KREMSMUENSTER AU 48.05 14.133 389.0 19730802 20170923 110130 99999 STADT HAAG/HEIMBERG AU 48.117 14.617 408.0 20030120 20040827 110140 99999 KOENIGSWIESEN AU 48.4 14.833 608.0 19730706 20041212 110150 99999 FREISTADT AU 48.5 14.5 548.0 19730623 20140804 110160 99999 FREISTADT-FLUGFELD AU 48.516999999999996 14.417 682.0 20010807 20031001 110161 99999 WIENER NEUSTADT EAST AU LOAN 47.843 16.26 273.1 20040510 20170923 110162 99999 LUGPLATZ VOSLAU AU LOAV 47.967 16.267 233.0 20040510 20170923 110163 99999 PUNITZ / GUESSING AU LOGG 47.15 16.317 290.0 20040519 20130620 110164 99999 OBEROSTERREICH / FREISTADT AU LOLF 48.516999999999996 14.417 685.0 20040510 20080208 110165 99999 WIENER NEUSTADT AU LOXN 47.85 16.25 272.0 20040510 20170923 110170 99999 FREISTADT AU 48.516999999999996 14.5 563.0 20031008 20050910 110180 99999 AMSTETTEN AU 48.1 14.9 271.0 19650526 20170923 110190 99999 ALLENTSTEIG AU 48.683 15.367 607.0 19940601 20170923 110200 99999 STIFT ZWETTL AU 48.617 15.2 506.0 19791002 20170923 110210 99999 LITSCHAU AU 48.95 15.033 556.7 19761021 20170923 110220 99999 RETZ AU 48.766999999999996 15.95 323.0 19650526 20170923 110230 99999 GARS AM KAMP AU 48.583 15.667 267.0 20140521 20160518 110240 99999 JAUERLING AU 48.333 15.333 959.0 19730623 20170923 110250 99999 WEITRA AU 48.7 14.883 471.0 20140521 20170923 110260 99999 KREMS/LANGENLOIS GNEIXENDORF AU 48.45 15.633 312.0 20041211 20050315 110270 99999 STOCKERAU AU 48.4 16.2 205.1 19330102 20170923 110280 99999 ST. POELTEN AU 48.183 15.617 284.0 19520101 20050721 110300 99999 TULLN AU LOXT 48.321000000000005 16.112000000000002 175.3 19400311 20170923 110320 99999 POYSDORF AU 48.667 16.633 207.0 19730821 20170923 110330 99999 BREITENFORT AU 48.15 16.133 440.0 19820101 19850502 110340 99999 WIEN/INNERE STADT AU 48.2 16.367 171.0 19900705 20170923 110350 99999 WIEN/HOHE WARTE AU 48.25 16.367 200.0 19310102 20170923 110360 99999 SCHWECHAT AU LOWW 48.11 16.57 182.9 19520101 20170923 110370 99999 GROSSENZERSDORF AU 48.2 16.567 153.0 20080310 20170923 110380 99999 RAUCHENWARTH BEI SCHWECHAT AU 48.067 16.533 205.0 19400411 19440831 110390 99999 SPITZERBERG AIRPORT AU 48.1 16.933 183.0 19380101 20050517 110400 99999 WIEN/UNTERLAA AU 48.133 16.417 199.0 20010919 20170923 110510 99999 RANSHOFEN AU 48.217 13.033 388.1 19950801 20170923 110520 99999 FELDKIRCHEN AU 48.067 13.067 550.0 20041018 20051008 110530 99999 RIED IM INNKREIS AU 48.217 13.482999999999999 429.2 20010919 20170923 110550 99999 SCHAERDING AU 48.467 13.433 318.0 19941012 20170923 110590 99999 WELS/SCHLEISSHEIM AU 48.167 14.067 314.0 20050928 20170923 110600 99999 LINZ/STADT AU 48.3 14.283 263.0 19940601 20170923 110700 99999 KREMS AU 48.417 15.617 204.0 20010919 20170923 110750 99999 LANGENOIS (AUT) AU LOAG 48.467 15.7 210.0 19901201 20170923 110780 99999 LILIENFELD/TARSCHBERG AU 48.033 15.583 696.0 19940201 20170923 110800 99999 WIEN/MARIABRUNN AU 48.2 16.233 227.0 20031021 20170923 110810 99999 BADEN AU 48.0 16.233 244.0 19910206 20100225 110820 99999 GUMPOLDSKIRCHEN AU 48.033 16.283 233.0 19920201 20170923 110830 99999 LEISER BERGE AU 48.567 16.367 451.0 20040306 20170923 110850 99999 ZWERNDORF-MARCHEGG AU 48.333 16.833 146.0 20040430 20170923 110900 99999 WEIN-DONAUFELD AU 48.25 16.433 161.0 20140521 20170923 111010 99999 BREGENZ AU 47.5 9.75 441.9 19650526 20170923 111030 99999 HOHENEMS/DORNBIRN FLUGFELD AU 47.383 9.7 418.0 20010810 20040506 111050 99999 FELDKIRCH AU 47.266999999999996 9.617 439.0 19661006 20170923 111060 99999 LAZ/MUTTERSBERG AU 47.183 9.817 900.0 19761007 20031011 111090 99999 ST ANTON AM ARLBERG AU 47.133 10.317 1275.0 19820301 20170921 111100 99999 GALZIG AU 47.133 10.232999999999999 2080.0 19821030 20170923 111120 99999 LANDECK AU 47.14 10.564 806.5 19650526 20170923 111130 99999 NAUDERS AU 46.883 10.482999999999999 1330.0 20141207 20170502 111140 99999 REUTTE/HOEFEN ARPT AU 47.467 10.7 857.0 20020131 20041209 111150 99999 VILS BEI REUTTE AU 47.567 10.6 832.0 19670613 19780204 111160 99999 REUTTE/TIROL AU 47.5 10.75 870.0 19790807 20170923 111190 99999 SEEFELD AU 47.317 11.183 1183.7 19670622 20170923 111200 99999 INNSBRUCK AU LOWI 47.26 11.344000000000001 580.9 19310104 20170923 111210 99999 INNSBRUCK-FLUGHAFEN AU 47.25 11.35 579.0 20140521 20170923 111220 99999 SCHWAZ (HELIPORT) AU LOXS 47.333 11.7 543.0 19760930 20020717 111240 99999 VALLUGA (RADAR) AU 47.15 10.2 2809.0 20161011 20170511 111260 99999 PATSCHERKOFEL AU 47.217 11.467 2254.0 19670622 20170923 111270 99999 OBERGURGL AU 46.867 11.033 1937.0 19840102 20170923 111280 99999 BRENNER AU 47.0 11.517000000000001 1447.0 19670609 20110221 111290 99999 PASSO DEL BRENNERO IT LIVB 47.0 11.5 -999.9 19870519 20170923 111300 99999 KUFSTEIN AU 47.583 12.167 493.0 19650526 20170923 111320 99999 SAINT JOHANN/TIROL AU 47.516999999999996 12.45 670.0 19380103 20030206 111330 99999 ST. JOHANN IN TIROL AU 47.516999999999996 12.45 670.0 20040824 20040824 111340 99999 GERLOS AU 47.217 12.033 1250.0 20011014 20040511 111350 99999 HAHNENKAMM/EHRENBACHHOEHE AU 47.417 12.367 1763.6 19730101 20170921 111360 99999 KRIMML AU 47.233000000000004 12.183 1010.7 19730704 20170923 111370 99999 MARIA ALM AU 47.4 12.9 792.0 20050719 20170923 111380 99999 ALPINZENTRUM RUDOLFSHUETTE AU 47.133 12.633 2310.0 19810401 20170923 111390 99999 ANNABERG IM LAMMERTAL AU 47.55 13.433 885.0 20030227 20030227 111400 99999 LOFER AU 47.583 12.7 629.0 19730724 20170923 111410 99999 BISCHOFSHOFEN AU 47.4 13.217 548.0 19810303 20170923 111420 99999 ST. JOHANN/PONGAU AU 47.317 13.183 647.0 20010919 20170923 111430 99999 ZELL AM SEE-FLUGFELD AU 47.3 12.783 754.0 19380103 20040403 111440 99999 ZELL AM SEE (AUT) AU LOWZ 47.333 12.8 763.0 19661003 20170923 111450 99999 BAD GASTEIN AU 47.117 13.133 1100.0 19730228 20041020 111460 99999 SONNBLICK AU 47.05 12.95 3109.0 19390101 20170923 111470 99999 RADSTADT AU 47.383 13.45 861.0 19731108 20170923 111480 99999 ST. MICHAEL IM LUNGAU AU 47.1 13.65 1094.0 19730712 20170923 111490 99999 OBERTAUERN AU 47.25 13.567 1744.9 19730425 20170923 111500 99999 SALZBURG AU LOWS 47.793 13.004000000000001 430.1 19380601 20170923 111510 99999 SEEWALCHEN/ATTERSEE AU 47.95 13.6 496.0 19830701 20050819 111520 99999 MATTSEE AU 47.983000000000004 13.1 503.0 19730821 20170923 111530 99999 MONDSEE AU 47.85 13.367 491.0 19730814 20170923 111540 99999 GMUNDEN AU 47.9 13.8 428.0 19730820 20161211 111550 99999 FEUERKOGEL AU 47.817 13.717 1620.1 19650526 20170923 111560 99999 BAD ISCHL AU 47.717 13.633 470.0 19730731 20070131 111570 99999 AIGEN/ENNSTAL (MIL) AU LOXA 47.533 14.133 649.0 19380103 20170923 111580 99999 BOGUS AUSTRIAN AU 47.117 13.732999999999999 -999.0 19380102 20040908 111590 99999 PYHRNPASS AU 47.617 14.3 940.0 20010804 20021108 111600 99999 HIEFLAU AU 47.6 14.75 492.0 19800408 20070912 111610 99999 PRAEBICHL AU 47.516999999999996 14.95 1214.2 19730821 20170923 111620 99999 MAUTERNDORF AU 47.133 13.683 1115.0 20011221 20051013 111630 99999 STOLZALPE (MOUNT) AU 47.117 14.2 1305.0 19730821 20040914 111640 99999 ZIRBITZKOGEL AU 47.067 14.56 2372.0 20050830 20050830 111650 99999 ZELTWEG AU LOXZ 47.203 14.744000000000002 676.7 19380601 20170923 111680 99999 WALD AM SCHOBER AU 47.45 14.667 849.0 20020331 20030304 111690 99999 GEMEINDEALPE/MITTER AU 47.817 15.25 1626.0 19870301 19900406 111700 99999 LUNZ AU 47.85 15.067 615.0 19730624 20170923 111710 99999 ST SEBASTIAN/MARIAZELL AU 47.8 15.3 872.0 19870901 20170923 111720 99999 MARIAZELL AU 47.766999999999996 15.317 875.0 19730101 20050704 111730 99999 FISHBACH AU 47.45 15.65 1050.0 20060711 20170923 111740 99999 ST. MICHAEL/LEOBEN AU 47.333 15.0 572.0 19850904 20130514 111750 99999 BRUCK/MUR AU 47.417 15.267000000000001 482.0 19661006 20170923 111770 99999 KUB AU 47.683 15.867 462.0 19330103 19380630 111800 99999 RAX/SEILBAHN-BERGSTATION AU 47.717 15.783 1554.0 19770114 20170923 111810 99999 VOESLAU-FLUGFELD AU 47.967 16.267 233.0 19390302 20021111 111820 99999 WIENER NEUSTADT AU 47.833 16.217 285.0 19340501 20170923 111830 99999 SEMMERING AU 47.633 15.817 960.0 19761101 20041108 111840 99999 STUHLECK MOUNTAIN AU 47.567 15.783 1782.0 19790701 19800226 111850 99999 MOENICHKIRCHEN AU 47.516999999999996 16.033 994.0 19650526 20170923 111860 99999 MOENICHKIRCHEN/OST AU 47.516999999999996 16.05 940.0 19890703 19891118 111890 99999 BAD TATZMANNSDORF AU 47.333 16.233 360.0 19761202 19791220 111900 99999 EISENSTADT AU 47.85 16.533 189.3 19730627 20170923 111910 99999 TRAUSDORF AIRPORT AU LOAT 47.8 16.567 164.0 20010824 20021222 111920 99999 KLEINZICKEN AU 47.2 16.333 267.0 19780502 20170923 111930 99999 BAD TATZMANNSDORF AU 47.333 16.217 340.0 20060726 20170923 111940 99999 NEUSIEDL AM SEE AU 47.95 16.85 132.0 19850102 20170923 111950 99999 PUNITZ/GUESSING FLUGFELD AU 47.15 16.317 290.0 19810603 20050924 112010 99999 SILLIAN AU 46.75 12.417 1081.0 20080310 20170923 112020 99999 FELBERTAUERN/SUEDPORTAL AU 47.117 12.5 1632.0 19810626 20040124 112030 99999 ISELSBERG AU 46.85 12.867 1208.0 20040704 20050104 112040 99999 LIENZ AU 46.833 12.817 666.0 19380401 20170923 112050 99999 LAVANT AU 46.8 12.85 660.0 20040719 20050531 112070 99999 REISACH AU 46.65 13.15 646.0 19730724 20071231 112100 99999 MALLNITZ AU 46.983000000000004 13.183 1185.0 19761101 20050706 112110 99999 RADENTHEIN AU 46.783 13.7 685.0 19751230 20030731 112120 99999 VILLACHERALPE AU 46.6 13.667 2160.0 19650526 20170922 112130 99999 VILLACH AU 46.617 13.883 494.0 19761102 20170923 112140 99999 PREITENEGG AU 46.933 14.917 1035.0 19650526 20170923 112150 99999 MILLSTATT AU 46.808 13.573 719.0 19381214 19440630 112190 99999 NEUMARKTER SATTEL AU 47.117 14.4 1125.0 19870301 20031212 112200 99999 NEUMARKT AU 47.067 14.417 870.0 19761101 20170923 112250 99999 WEITENSFELD AU 46.85 14.183 712.4 19761102 20170923 112270 99999 FELDKIRCHEN AU 46.717 14.1 551.0 20080310 20170923 112280 99999 FRIESACH AU 46.967 14.4 641.3 20141230 20170217 112290 99999 ST. ANDRAE I.L. AU 46.766999999999996 14.833 404.0 19771101 20170923 112310 99999 KLAGENFURT(CIV/MIL) AU LOWK 46.65 14.333 452.0 19310107 20170923 112320 99999 FEISTRITZ OB BLEIBURG AU 46.567 14.767000000000001 527.0 19930101 20170923 112330 99999 SAINT MICHAEL AU 46.583 14.75 500.0 19761101 20051024 112340 99999 BAD EISENKAPPEL AU 46.5 14.593 620.0 20040619 20170923 112360 99999 UEBELBACH/REICHERHOEHE AU 47.233000000000004 15.232999999999999 999.0 20030221 20030819 112370 99999 ST VIET/GLAN AU 46.733000000000004 14.383 462.0 19761101 19900315 112400 99999 GRAZ AU LOWG 46.99100000000001 15.44 339.9 19340201 20170923 112410 99999 SCHOECKL AU 47.2 15.467 1442.0 19761101 20170923 112420 99999 ST RADEGUND AU 47.167 15.482999999999999 725.0 20140521 20170923 112440 99999 BAD GLEICHENBERG AU 46.867 15.9 282.0 20071016 20170923 112450 99999 BAD GLEICHENBERG AU 46.867 15.9 326.0 19390406 20030731 112480 99999 BAD RADKERSBURG AU 46.683 15.982999999999999 214.0 19940801 20160405 112520 99999 VIRGEN AU 47.0 12.45 1190.0 19940201 20170923 112550 99999 KOETSCHACH-MAUTHEN AU 46.683 13.0 711.0 19901201 20170923 112600 99999 MALLNITZ-BAD AU 47.0 13.167 1201.2 19901201 20170923 112610 99999 OBERVELLACH AU 46.933 13.217 809.0 19910202 20150201 112630 99999 WEISSENSEE/GATSCHACH AU 46.717 13.283 954.0 20040610 20170923 112650 99999 VILLACHER ALPE AUTOM AU 46.6 13.667 2160.0 20010919 20170923 112700 99999 DELLACH IM DRAUTAL AU 46.733000000000004 13.083 625.0 19910214 20170923 112720 99999 SPITTAL/DRAU AU 46.783 13.482999999999999 542.0 20050815 20170923 112750 99999 ARRIACH AU 46.733000000000004 13.85 892.3 19901201 20170923 112780 99999 POERTSCHACH AU 46.633 14.167 453.0 20080310 20170923 112800 99999 MURAU AU 47.117 14.183 813.0 19901201 20170923 112850 99999 DEUTSCHLANDSBERG AU 46.817 15.232999999999999 355.0 20040223 20170923 112900 99999 GRAZ UNIVERSITAET AU 47.083 15.45 378.0 19920215 20170923 112920 99999 LASSNITZHOEHE AU 47.067 15.583 533.0 19901201 20170923 112950 99999 LEIBNITZ AU 46.783 15.55 272.0 20010919 20031028 112960 99999 LEIBNITZ AU 46.766999999999996 15.55 265.7 20140521 20170923 112980 99999 FELDBACH AU 46.933 15.867 283.0 20091117 20170923 113010 99999 ALBERSCHWENDE AU 47.45 9.85 719.0 20100224 20170923 113020 99999 DORNBIRN AU LOIH 47.433 9.732999999999999 410.0 19951001 20170923 113040 99999 BRAND AU 47.1 9.732999999999999 1029.0 20140521 20170923 113060 99999 SCHROECKEN AU 47.266999999999996 10.083 1243.9 20141213 20170430 113070 99999 LANGEN/ARLBERG AU 47.117 10.117 1221.0 20141211 20170430 113080 99999 WARTH AU 47.25 10.183 1471.0 19910205 20170923 113090 99999 GARGELLEN AU 46.967 9.917 438.0 19290204 19381231 113100 99999 ISCHGL/IDALPE AU 46.983000000000004 10.317 2319.0 19901201 20170923 113120 99999 GALTUER AU 46.967 10.183 1584.0 20100224 20170923 113140 99999 REUTTE AUTOM. AU 47.5 10.732999999999999 852.0 20100225 20100225 113150 99999 HOLZGAU AU 47.25 10.333 1140.0 20141024 20170502 113160 99999 PITZTALER GLETSCHER AU 46.933 10.883 2843.0 20070226 20170923 113180 99999 BRUNNENKOGEL/OETZTALER ALPEN AU 46.917 10.867 3429.5 20050218 20170923 113200 99999 INNSBRUCK/UNIVERSITAET AU 47.266999999999996 11.383 579.0 19990109 20020916 113250 99999 JENBACH AU 47.383 11.75 531.4 20091117 20170923 113280 99999 ACHENKIRCH AU 47.516999999999996 11.7 904.0 20140521 20161004 113300 99999 MAYRHOFEN AU 47.167 11.85 633.0 20140521 20170923 113310 99999 KLAGENFURT-FLUGHAFEFN AU 46.633 14.317 450.0 20140521 20170923 113320 99999 MISTELBACH AU 48.567 16.6 195.0 20140521 20170923 113360 99999 KITZBUEHEL AU 47.433 12.383 746.0 20141024 20141024 113370 99999 LOFERER ALM AU 47.6 12.65 1626.0 20091117 20170923 113400 99999 SCHMITTENHOEHE AU 47.333 12.732999999999999 1954.4 19900601 20170923 113420 99999 BAD GASTEIN/BOECKSTEIN AU 47.1 13.117 1100.0 20010919 20100207 113430 99999 SONNBLICK - AUTOM. AU 47.05 12.95 3113.8 20010919 20170923 113450 99999 ST VEIT IM PONGAU AU 47.333 13.15 749.2 19900601 20170923 113460 99999 RAURIS AU 47.217 13.0 935.0 19940601 20170923 113480 99999 MARIAPFARR AU 47.15 13.75 1151.0 19911102 20170923 113490 99999 KATSCHBERG AU 47.067 13.617 1637.3 20140521 20170923 113500 99999 SALZBURG/FREISAAL AU 47.783 13.05 423.0 19941001 20170923 113510 99999 RAMSAU/DACHSTEIN AU 47.433 13.633 1209.7 19911102 20170923 113520 99999 FRANKENMARKT AU 47.983000000000004 13.417 571.0 20140521 20170315 113530 99999 SCHOBERSTEIN AU 47.9 14.333 1250.0 20040127 20040301 113540 99999 BAD GOISERN AU 47.633 13.617 503.0 20010919 20160426 113550 99999 WINDISCHGARSTEN AU 47.733000000000004 14.333 614.0 19900601 20170923 113560 99999 BAD AUSSEE AU 47.617 13.75 747.0 19950102 20170923 113570 99999 ST. WOLFGANG AU 47.733000000000004 13.45 537.0 19900601 20170923 113580 99999 BAD MITTERNDORF AU 47.55 13.933 803.0 19950102 20170923 113590 99999 GROEBMING AU 47.433 13.9 765.0 20140521 20170923 113600 99999 IRDNING/GUMPENSTEIN AU 47.5 14.1 707.0 19900601 20030731 113620 99999 KALWANG AU 47.417 14.767000000000001 744.0 20040512 20170923 113650 99999 ZELTWEG/AUTOM. STAT. AU 47.2 14.767000000000001 682.0 20091117 20170923 113660 99999 SAALBACH AU 47.383 12.65 980.6 20141111 20170923 113670 99999 BAERNKOPF AU 48.383 15.0 970.0 20140521 20170923 113680 99999 WAIDHOFEN/YBBS AU 47.95 14.784 365.0 20140521 20170923 113700 99999 KAPFENBERG AU 47.45 15.3 506.4 20010919 20170923 113720 99999 BAD GASTEIN AU 47.1 13.133 1092.0 20141112 20170923 113750 99999 AFLENZ AU 47.55 15.232999999999999 774.0 20091117 20170923 113780 99999 GUTENSTEIN-MARIAHILFBERG AU 47.867 15.883 709.0 20091117 20170923 113800 99999 REICHENAU/RAX AU 47.7 15.833 486.0 19910206 20170923 113820 99999 PUCHBERG AU 47.783 15.9 582.0 19910401 20170923 113830 99999 SEMMERING AU 47.617 15.817 985.0 19910217 20170923 113840 99999 HIRSCHENKOGEL AU 47.617 15.833 1319.0 19950701 20170923 113850 99999 HOHE WAND/HOCHKOGELHAUS AU 47.817 16.033 939.0 19940201 20170923 113860 99999 KRUMBACH ID BUCKLIGEN WELT AU 47.516999999999996 16.183 545.0 20140521 20170923 113870 99999 SEIBERSDORF AU 47.983000000000004 16.5 186.0 20040820 20170923 113890 99999 ST POELTEN LANDHAUS AU 48.183 15.617 273.0 20071016 20170923 113900 99999 HARTBERG AU 47.283 15.982999999999999 335.0 20091117 20170923 113930 99999 LUTZMANNSBURG AU 47.467 16.667 199.0 20041214 20170923 113950 99999 ANDAU AU 47.766999999999996 17.033 122.0 20091117 20170923 114060 99999 CHEB EZ 50.067 12.383 490.0 19370102 20170923 114140 99999 KARLOVY VARY EZ LKKV 50.203 12.915 606.2 19390101 20170923 114180 99999 MARIANSKE LAZNE EZ 49.917 12.717 541.0 19390901 20010907 114230 99999 PRIMDA EZ 49.667 12.683 747.4 19400102 20170923 114231 99999 CESKE BUDEJOVICE EZ LKCS 48.946000000000005 14.427 443.0 20040510 20090328 114232 99999 KBELY EZ LKKB 50.121 14.544 286.2 20040510 20170923 114233 99999 KUNOVICE EZ LKKU 49.028999999999996 17.44 177.1 20040510 20170922 114234 99999 LIBEREC EZ LKLB 50.766999999999996 15.017000000000001 398.0 20040510 20130102 114330 99999 KOPISTY EZ 50.55 13.617 240.0 20080401 20090525 114380 99999 TUSIMICE EZ 50.383 13.333 326.2 19780608 20170923 114480 99999 PLZEN LINE EZ LKLN 49.675 13.275 362.1 19390401 20170923 114500 99999 PLZEN-MIKULKA EZ 49.766999999999996 13.383 371.5 19370301 20170923 114550 99999 LUBY EZ 49.383 13.3 397.0 19401001 19431231 114570 99999 CHURANOV EZ 49.067 13.617 1122.2 19730101 20170923 114640 99999 MILESOVKA EZ 50.55 13.933 842.6 19310202 20170923 114650 99999 TEPLICE EZ 50.65 13.8 228.0 19330503 20090617 114870 99999 KOCELOVICE EZ 49.467 13.833 521.9 19750801 20170923 115020 99999 USTI NAD LABEM EZ 50.683 14.033 378.6 19780714 20170923 115090 99999 DOKSANY EZ 50.467 14.167 160.2 19950401 20170923 115180 99999 RUZYNE EZ LKPR 50.101000000000006 14.26 380.1 19290801 20170923 115190 99999 PRAHA-KARLOV / KLEMENTINUM EZ 50.067 14.433 254.0 19310101 20170923 115200 99999 PRAHA-LIBUS EZ 50.0 14.45 303.7 19730101 20170923 115380 99999 TEMELIN EZ 49.2 14.35 508.0 19891201 20170923 115400 99999 HOSIN EZ 49.033 14.482999999999999 488.0 19880301 20030726 115410 99999 CESKE BUDEJOVICE EZ 48.95 14.433 436.0 19330102 20070227 115420 99999 19400501 19431231 115430 99999 OLSINA EZ 48.8 14.133 766.0 19411201 19531231 115440 99999 19391001 19431231 115460 99999 C. BUDEJOVICE-ROZNOV EZ 48.95 14.467 396.4 20010915 20170923 115670 99999 PRAHA-KBELY EZ 50.117 14.533 285.5 19390321 20170923 115820 99999 TABOR EZ 49.417 14.667 444.0 19520101 19531231 116030 99999 LIBEREC EZ 50.766999999999996 15.017000000000001 401.5 19370302 20170923 116240 99999 CASLAV EZ LKCV 49.94 15.382 242.0 19970101 20170923 116280 99999 KOSETICE EZ 49.567 15.083 532.1 19881001 20170923 116360 99999 KOSTELNI MYSLOVA EZ 49.167 15.433 572.4 19520101 20170923 116380 99999 BOGUS CZECHOSLOVAK EZ 19870626 19890117 116430 99999 PEC POD SNEZKOU EZ 50.7 15.732999999999999 820.6 19310101 20170923 116440 99999 ZACLER EZ 50.667 15.917 173.0 19381117 19411231 116450 99999 BROUMOV EZ 50.583 16.333 128.0 19400816 19420630 116480 99999 HRADEC KRALOVE EZ 50.25 15.85 244.0 19390317 20030731 116490 99999 HRADEC KRALOVE EZ 50.183 15.833 285.0 20070226 20070227 116500 99999 HAVLICKUV BROD EZ 49.617 15.583 456.0 19400301 19431231 116520 99999 PARDUBICE EZ LKPD 50.013000000000005 15.739 225.9 19960506 20170923 116530 99999 SNEZKA EZ 50.733000000000004 15.732999999999999 1602.0 20090501 20170923 116580 99999 VESELICE EZ 49.617 15.533 459.0 19520101 19531231 116590 99999 PRIBYSLAV EZ 49.583 15.767000000000001 536.4 19370102 20170923 116690 99999 POLOM EZ 50.35 16.317 747.2 20061010 20121231 116790 99999 USTI NAD ORLICI EZ 49.983000000000004 16.417 404.9 19730101 20170923 116830 99999 SVRATOUCH EZ 49.733000000000004 16.033 740.4 19770601 20170923 116920 99999 NAMEST EZ LKNA 49.166000000000004 16.125 471.8 19960506 20170923 116930 99999 DUKOVANY EZ 49.1 16.133 402.0 19871001 20170923 116980 99999 KUCHAROVICE EZ 48.883 16.083 338.7 19780608 20170923 117100 99999 LUKA EZ 49.65 16.95 515.6 19770601 20170923 117220 99999 BRNO-SOKOLNICE EZ 49.117 16.75 300.0 19520101 20040607 117230 99999 TURANY EZ LKTB 49.151 16.694000000000003 237.1 19390320 20170923 117240 99999 LICHKOV EZ 50.1 16.683 160.0 19390221 19420630 117250 99999 DOLNI BENESOV EZ 49.917 18.1 75.0 19401101 19420630 117300 99999 SERAK EZ 50.183 17.117 1327.5 20040706 20170923 117350 99999 PRADED MOUNTAIN EZ 50.067 17.233 1492.0 19370102 20020307 117400 99999 OPAVA EZ 49.933 17.883 267.0 19370103 19420630 117440 99999 OLOMOUC EZ 49.6 17.217 263.0 19410101 19411231 117470 99999 PROSTEJOV EZ 49.45 17.133 216.0 20140930 20170923 117480 99999 PREROV EZ LKPO 49.426 17.405 206.0 19960506 20131001 117500 99999 PREROV EZ 49.433 17.4 205.0 19740204 19900315 117660 99999 CERVENA EZ 49.783 17.55 753.3 19780608 20170923 117740 99999 HOLESOV EZ LKHO 49.317 17.567 224.0 19530404 20170923 117810 99999 NOVY JICIN EZ 49.6 18.017 87.0 19401001 19420630 117820 99999 MOSNOV EZ LKMT 49.696000000000005 18.111 257.3 19520101 20170923 117830 99999 19410115 19431231 117870 99999 LYSA HORA EZ 49.55 18.45 1326.8 19730101 20170923 118010 99999 MALACKY LO LZMC 48.4 17.15 207.0 20031123 20170923 118120 99999 MALY JAVORNIK LO 48.25 17.15 368.5 20120101 20170923 118130 99999 BRATISLAVA-LOLIBA LO 48.167 17.117 163.1 20120101 20170923 118160 99999 M R STEFANIK LO LZIB 48.17 17.213 132.9 19400101 20170923 118190 99999 JASLOVSKE BOHUNICE LO 48.483000000000004 17.667 178.0 20040909 20170923 118260 99999 PIESTANY LO LKPP 48.617 17.833 164.0 19370102 20170923 118410 99999 ZILINA/HRICOV LO 49.233000000000004 18.617 311.0 19750515 20170923 118550 99999 NITRA LO 48.283 18.133 136.0 19370102 20170923 118560 99999 MOCHOVCE LO 48.283 18.45 262.0 20100226 20170923 118580 99999 HURBANOVO LO 47.867 18.2 124.0 19730101 20170923 118650 99999 ZILINA EZ 49.2 18.767 365.0 19570401 19750620 118670 99999 PRIEVIDZA LO 48.766999999999996 18.6 261.0 19780606 20170923 118800 99999 DUDINCE LO 48.167 18.867 140.0 19780308 20170923 119000 99999 BAISOARA RO 46.533 23.3 1356.0 20120501 20170923 119030 99999 SLIAC LO LKSL 48.65 19.15 315.0 19520101 20170918 119060 99999 LEST GM 48.35 19.317 720.0 19521106 19531231 119160 99999 CHOPOK LO 48.983000000000004 19.6 2007.0 19730101 20170923 119180 99999 LIESEK LO 49.367 19.683 693.0 19330301 20170923 119270 99999 LUCENEC LO LZLU 48.333 19.733 214.0 19780608 20170923 119271 99999 KOSICE LO LZKZ 48.663000000000004 21.241 230.1 20040510 20170923 119272 99999 NITRA LO LZNI 48.283 18.133 134.0 20040510 20121231 119273 99999 PRIEVIDZA LO LZPE 48.766999999999996 18.583 260.0 20040510 20121231 119274 99999 PIESTANY LO LZPP 48.625 17.828 166.1 20040510 20170923 119275 99999 SLIAC LO LZSL 48.638000000000005 19.134 317.9 20040510 20170923 119276 99999 ZILINA LO LZZI 49.232 18.614 310.9 20040510 20170923 119300 99999 LOMNICKY STIT LO 49.2 20.217 2635.0 19520101 20170923 119330 99999 KAMENICA NAD CIROCHOU LO LZKC 48.933 22.0 177.0 19780608 20170923 119340 99999 TATRY LO LZTT 49.074 20.241 718.1 19570312 20170923 119380 99999 TELGART LO 48.85 20.183 906.0 19780608 20170923 119520 99999 POPRAD-GANOVCE LO 49.033 20.317 703.0 20000530 20170923 119550 99999 PRESOV LO LZPW 49.033 21.316999999999997 324.0 20110815 20170923 119580 99999 KOJSOVSKA HOLA LO 48.783 20.983 1246.0 20060228 20170923 119650 99999 19330504 19361223 119680 99999 KOSICE LO LKKZ 48.667 21.217 231.0 19520101 20170923 119760 99999 STROPKOV TISINEC LO 49.217 21.65 217.0 19780608 20170923 119780 99999 MILHOSTOV LO 48.667 21.733 106.0 19890103 20170923 119930 99999 KAMENICA NAD CIROCHOU LO 48.933 22.0 178.0 19730101 20170923 119950 99999 SPISSKA NOVA VES FLD LO 48.933 20.55 495.0 19410101 19411231 120010 99999 PETROBALTIC BETA PL 55.467 18.167 46.0 20141127 20141127 121000 99999 KOLOBRZEG PL 54.183 15.583 5.0 19350101 20170923 121010 99999 BEACON 186 PL 54.15 15.35 1.0 19390103 19431231 121020 99999 DZWIRZYNO PL 54.016999999999996 14.767000000000001 1.0 19370601 19431231 121030 99999 DZIWNOW PL 54.016999999999996 14.732999999999999 4.0 19870103 20081017 121050 99999 KOSZALIN PL EPKO 54.2 16.15 34.0 19520101 20170923 121051 99999 BABICE PL EPBC 52.268 20.910999999999998 107.3 20040526 20170923 121052 99999 INOWROCLAW PL 52.817 18.333 83.0 20040510 20170923 121053 99999 LECZYCA PL 52.0 19.15 150.0 19880421 20170923 121054 99999 TOMASZOW PL EPTM 51.533 20.017 190.0 20040510 20170923 121055 99999 LUBLINEK PL 51.717 19.4 184.0 20040810 20170923 121056 99999 MODLIN PL EPMO 52.451 20.651999999999997 103.9 20120718 20170923 121060 99999 KOSZALIN ZEGRZE PL 54.033 16.3 72.0 19740215 20050831 121070 99999 BOGUS POLISH PL 54.283 16.117 -999.0 19350718 20010804 121080 99999 POLANOW PL 54.117 16.683 24.0 19360102 19420630 121110 99999 BOGUS POLISH PL 19861101 20011029 121120 99999 BYTOW PL 54.167 17.5 38.0 19360102 19411231 121140 99999 NIECHORZE PL 54.1 15.067 10.0 19300201 20081017 121150 99999 USTKA PL 54.583 16.867 11.0 19370715 20170923 121160 99999 MRZEZYNO PL 54.15 15.3 8.0 19310101 20060203 121163 99999 REDZIKOWO PL EPSK 54.479 17.108 66.1 19901120 19920225 121170 99999 BOGUS POLISH PL 19861101 20020705 121180 99999 KOLOBRZEG PL 54.183 15.55 6.0 20020601 20081017 121190 99999 GASKI PL 54.25 15.85 9.0 20020601 20070830 121195 99999 LUBLIN AIRPORT PL EPLB 51.233000000000004 22.683000000000003 203.0 20130521 20170923 121200 99999 LEBA PL 54.75 17.533 6.0 19730101 20170923 121220 99999 WICKO MORSKIE PL EPWI 54.55 16.62 3.0 20020820 20170921 121230 99999 LAZY PL 54.3 16.183 8.0 20020601 20070305 121240 99999 DARLOWEK PL EPDA 54.4 16.35 5.0 20020601 20170923 121250 99999 LEBORK PL 54.55 17.75 41.0 19530401 20170923 121270 99999 DARLOWO PL 54.43 16.37 4.0 20020604 20081017 121280 99999 ZEGRZE POMORSKIE PL EPZE 54.05 16.267 72.0 20020601 20080923 121290 99999 JAROSLAWIEC PL 54.55 16.533 35.0 20020601 20160102 121310 99999 USTKA PL 54.583 16.85 15.0 19860101 20081017 121320 99999 BOGUS POLISH PL 19880504 20011031 121330 99999 SLUPSK/REDZIKOWO PL EPSS 54.483000000000004 17.1 65.0 19390923 20120730 121350 99999 HEL PL 54.6 18.817 3.0 19550701 20170923 121360 99999 LEBUNIA PL EPCE 54.417 17.767 22.0 20020601 20170923 121370 99999 CZOLPINO PL 54.717 17.233 48.0 20020601 20081017 121380 99999 LEBA PL 54.766999999999996 17.533 23.0 19870106 20081017 121390 99999 BIALOGORA PL 54.833 17.933 30.0 20020601 20081017 121400 99999 GDANSK PORT PN. PL 54.4 18.7 7.0 20010704 20121231 121420 99999 OKSYWIE PL 54.567 18.517 70.0 20020601 20170923 121430 99999 ROZEWIE PL 54.833 18.35 85.0 20020601 20031004 121450 99999 GDYNIA PL 54.516999999999996 18.567 22.0 19340329 20050612 121460 99999 PRUSZCZ GDANSKI PL EPPR 54.248000000000005 18.672 6.4 20020601 20170923 121465 99999 PIOTRKOW TRYBUNALSKI PL EPPT 51.383 19.683 205.1 20110331 20170509 121470 99999 GORA SZWEDOW PL 54.633 18.817 17.0 20020601 20081017 121480 99999 HEL PL 54.58 18.8 12.0 20020601 20081017 121490 99999 OKSYWIE PL 54.533 18.567 2.0 20020601 20081017 121500 99999 LECHA WALESY PL EPGD 54.378 18.465999999999998 149.0 19310101 20170923 121530 99999 GDANSK-NOWY PORT PL 54.4 18.667 16.0 20020601 20080829 121540 99999 MALBORK PL EPMK 54.03 19.13 5.0 20020601 20151108 121550 99999 GDANSK-SWIBNO PL 54.333 18.933 9.0 19820901 20141127 121560 99999 SKOWEONKI PL 54.367 19.283 22.0 20020601 20081017 121580 99999 BOGUS POLISH PL 19870104 19920926 121590 99999 19390822 19421231 121600 99999 ELBLAG-MILEJEWO PL EPEL 54.223 19.543 43.0 19330102 20170923 121610 99999 BOGUS POLISH PL 19861101 20020308 121620 99999 19390413 19431231 121630 99999 LIDZBARK WARMINSKI PL 54.133 20.566999999999997 27.0 19370818 19420630 121850 99999 KETRZYN PL 54.067 21.366999999999997 110.0 19520101 20170923 121860 99999 OLECKO PL 54.033 22.517 50.0 19330102 19421231 121950 99999 SUWALKI PL 54.133 22.95 186.0 19310109 20170923 121960 99999 BOGUS POLISH PL 19870607 20020814 122000 99999 SWINOUJSCIE PL 53.917 14.232999999999999 5.0 19330704 20170923 122010 99999 SWINOUJSCIE PL 53.917 14.283 10.0 20020824 20040124 122030 99999 MIEDZYZDROJE PL 53.95 14.467 70.0 20020601 20081017 122050 99999 SZCZECIN PL EPSD 53.4 14.617 7.0 19280101 20170923 122060 99999 GOLENIOW PL 53.583 14.9 38.0 20020105 20050813 122070 99999 STARGARD SZCZECINSKI PL 53.317 15.0 9.0 19360810 19430227 122080 99999 PNIEWO PL 53.9 15.45 12.0 19400102 19410628 122090 99999 19391101 19411231 122100 99999 RESKO-SMOLSKO PL 53.766999999999996 15.4 52.9 19730101 20170923 122110 99999 SOUTH SWIDWIN PL 53.766999999999996 15.783 27.0 19360101 19420630 122120 99999 SWIDWIN PL EPSN 53.791000000000004 15.825999999999999 117.3 19400402 20170923 122140 99999 BOGUS POLISH PL 19861101 20030408 122150 99999 SZCZECINEK PL 53.717 16.747 144.0 19730101 20170923 122220 99999 BOGUS POLISH PL 19870102 20040922 122250 99999 NADARZYCE PL EPNA 53.45 16.5 129.0 19311102 20170922 122260 99999 MIROSLAWIEC PL EPMI 53.395 16.083 139.9 19870301 20170923 122300 99999 PILA PL 53.133 16.75 73.0 19730101 20140909 122310 99999 MORYN PL 52.833 14.417 15.0 19400401 19431231 122320 99999 19310105 19431231 122350 99999 CHOJNICE PL 53.717 17.55 172.0 19410101 20170923 122360 99999 LUBANIE PL 53.733000000000004 18.933 19.0 19330102 20170308 122370 99999 GRUDZIADZ PL 53.467 18.783 7.0 19340329 19431231 122380 99999 BYDGOSZCZ PL 53.117 17.967 72.0 20020601 20090716 122400 99999 BYDGOSZCZ PL 53.083 17.983 71.0 19730101 19830222 122440 99999 BOGUS POLISH PL 19861101 20010820 122500 99999 TORUN PL 53.05 18.583 72.0 19340331 20170923 122620 99999 BOGUS POLISH PL 19870203 20020813 122690 99999 MARWALD PL 53.533 19.95 92.0 19400201 19420630 122700 99999 MLAWA PL 53.1 20.35 149.0 19340331 20170923 122720 99999 OLSZTYN PL 53.766999999999996 20.417 137.0 19350101 20170923 122730 99999 CIECHANOW PL 52.883 20.633000000000003 36.0 19391108 19421012 122800 99999 MIKOLAJKI PL 53.783 21.583000000000002 132.0 19621105 20170923 122810 99999 SZCZYTNO PL 53.567 21.0 36.0 19330102 19420630 122830 99999 BOGUS POLISH PL 19870602 19920229 122850 99999 OSTROLEKA PL 53.083 21.566999999999997 97.0 19410101 20170923 122950 99999 BIALYSTOK PL 53.1 23.166999999999998 151.0 19310101 20170923 122990 99999 STARE KUROWO PL 52.85 15.667 11.0 19320801 19420630 123000 99999 GORZOW WLKP PL 52.75 15.283 73.0 19520101 20170923 123100 99999 SLUBICE PL 52.35 14.6 24.0 19520102 20170923 123110 99999 MIEDZYRZECZ PL 52.433 15.55 14.0 19360101 19411231 123120 99999 BABIMOST PL EPZG 52.138999999999996 15.799000000000001 59.1 20020603 20170923 123150 99999 WAGROWIEC PL 52.833 17.3 90.0 19400101 19420630 123180 99999 BOGUS POLISH PL 19870601 20050405 123250 99999 BOGUS POLISH PL 19870104 20050327 123260 99999 KRZESINY PL EPKS 52.332 16.965999999999998 80.8 20020601 20170923 123290 99999 BOGUS POLISH PL 19861101 20011107 123300 99999 LAWICA PL EPPO 52.42100000000001 16.826 93.9 19310102 20170923 123310 99999 BEDNERY PL 52.533 17.217 109.0 19340331 19381231 123320 99999 CHORZEN PL 52.233000000000004 18.217 83.0 19410101 19411231 123330 99999 BOGUS POLISH PL 19861101 20040528 123360 99999 POWIDZ PL EPPW 52.379 17.854 113.1 20010919 20170923 123400 99999 19391109 19431130 123420 99999 INOWROCLAW PL 52.817 18.333 83.0 20020601 20140911 123450 99999 KOLO PL 52.2 18.667 117.0 19520401 20170923 123540 99999 BOGUS POLISH PL 19870403 20030221 123590 99999 WLOCLAWEK PL 52.65 19.083 61.0 19400101 19411231 123600 99999 PLOCK PL 52.583 19.733 109.0 19350101 20170923 123610 99999 KROSNIEWICE PL 52.25 19.233 114.0 19410509 19421231 123630 99999 WARSZAWA/BABICE PL EPBC 52.266999999999996 20.916999999999998 106.0 19890401 20030217 123650 99999 BRWINOW PL 52.133 20.717 98.0 20050329 20050329 123720 99999 WARSZAWA BIELANY PL 52.283 20.967 100.0 20011027 20030113 123740 99999 LEGIONOWO PL 52.4 20.967 96.0 20000420 20040516 123750 99999 OKECIE PL EPWA 52.166000000000004 20.967 110.3 19280102 20170923 123760 99999 MINSK MAZOWIECKI PL EPMM 52.196000000000005 21.656 184.1 20020601 20170923 123764 99999 NOWA DEBA PL EPND 50.433 21.767 170.0 20090908 20170830 123765 99999 MALBORK PL EPMB 54.027 19.134 4.9 20050507 20170923 123766 99999 CEWICE PL 54.417 17.767 151.0 20050228 20120403 123767 99999 SZWEDEROWO PL 53.1 17.983 235.0 20060201 20170923 123810 99999 BOGUS POLISH PL 19861202 19920229 123850 99999 SIEDLCE PL 52.181000000000004 22.25 155.0 19730101 20170923 123950 99999 BIALA PODLASKA PL 52.016999999999996 23.116999999999997 146.6 19410101 19590730 123960 99999 PODLASKA PL 52.0 23.15 150.0 19861101 20160520 123990 99999 TERESPOL PL 52.067 23.616999999999997 137.0 19730101 20170923 124000 99999 ZIELONA GORA PL 51.933 15.533 192.0 19310101 20170923 124010 99999 ZARY MISATO PL 51.65 15.15 144.0 19370712 19420630 124020 99999 BOGUS POLISH PL 19870403 19920229 124030 99999 NOWE MIASTECZKO PL 51.683 15.732999999999999 31.0 19360102 19420630 124040 99999 STARA KOPERNIA PL 51.633 15.383 46.0 19390821 19420930 124050 99999 ZGORZELEC PL 51.133 15.033 203.0 19730101 19830209 124060 99999 SZPROTAWA PL 51.55 15.583 39.0 19390815 19431231 124110 99999 BOGUS POLISH PL 19870601 20051128 124140 99999 BOLESLAWIEC MIASTO PL 51.266999999999996 15.567 59.0 19360102 20160328 124150 99999 LEGNICA PL 51.2 16.2 124.0 19370401 20170923 124160 99999 WSCHOWA PL 51.8 16.317 29.0 19360102 19420630 124170 99999 LUBIN MIASTO PL 51.417 16.2 46.0 19390810 19411231 124180 99999 LESZNO PL 51.833 16.533 92.0 19730101 20140909 124190 99999 JAROCIN PL 51.967 17.55 120.0 19391113 19420630 124230 99999 BOGUS POLISH PL 19870103 20050730 124240 99999 STRACHOWICE PL EPWR 51.103 16.886 123.1 19390102 20170923 124250 99999 WROCLAW I PL 51.117 16.883 122.0 19280101 20141205 124260 99999 SYCOW PL 51.3 17.717 51.0 19360102 19420630 124280 99999 WROCLAW/STRACHOWICE PL EPWL 51.1 16.883 123.0 20020601 20090815 124290 99999 BOGUS POLISH PL 19861102 20020817 124300 99999 OLESNICA PL 51.217 17.45 46.0 19400115 19410531 124350 99999 KALISZ PL 51.783 18.083 140.0 19520101 20170923 124440 99999 BOGUS POLISH PL 19870105 20020703 124470 99999 BOGUS POLISH PL 19870102 19920229 124520 99999 LECZYCA PL 52.0 19.15 150.0 20020601 20140912 124540 99999 LASK PL EPLK 51.552 19.179000000000002 192.9 20020601 20170923 124550 99999 WIELUN PL 51.217 18.567 201.0 19391201 20170923 124640 99999 NOWE PL 51.617 20.533 180.0 20031110 20031110 124650 99999 LODZ PL 51.733000000000004 19.4 190.0 19340329 20140912 124660 99999 TOMASZOW PL 51.533 20.017 190.0 20020601 20140915 124690 99999 SULEJOW PL 51.35 19.867 189.0 19730101 20170923 124710 99999 BELSK PL 51.833 20.8 180.0 20030414 20030414 124760 99999 BOGUS POLISH PL 19870301 20051019 124850 99999 RADOM PL EPRP 51.417 21.116999999999997 183.0 19391101 20140915 124860 99999 BOGUS POLISH PL 19870104 20050908 124880 99999 KOZIENICE PL 51.567 21.55 126.0 19750812 20170923 124900 99999 DEBLIN PL EPDE 51.551 21.894000000000002 119.5 19340104 20170923 124950 99999 LUBLIN RADAWIEC PL 51.217 22.4 240.0 19310103 20170923 124970 99999 WLODAWA PL 51.55 23.533 179.0 19730101 20170923 125000 99999 JELENIA GORA PL 50.9 15.8 344.0 19330601 20170923 125010 99999 MIROSLAWICE PL 50.95 16.767 47.0 19390901 19420628 125100 99999 SNIEZKA PL 50.733000000000004 15.732999999999999 1613.0 19520101 20170923 125110 99999 WALBRZYCH PL 50.766999999999996 16.283 131.0 19360102 19420630 125180 99999 OPOLE-NOWE PL 50.633 17.783 57.0 19390907 19420630 125190 99999 DUSZNIKI-ZDROJ PL 50.4 16.4 170.0 19360703 19411231 125200 99999 KLODZKO PL 50.433 16.617 357.0 19520102 20170923 125210 99999 OLAWA PL 50.983000000000004 17.25 39.0 19390901 19420630 125220 99999 SLEZA PL 50.867 16.717 217.0 19400414 19420630 125230 99999 SWIDNICA PL 50.85 16.483 75.0 19410114 19431231 125240 99999 STRZELCE OPOLSKIE PL 50.516999999999996 18.3 69.0 19400201 19420630 125250 99999 BRZEG PL 50.833 17.433 47.0 19380815 19430531 125260 99999 STARY GRODKOW PL 50.633 17.4 53.0 19410102 19420630 125270 99999 BOGUS POLISH PL 19861101 20031207 125280 99999 OLESNO PL 50.867 18.417 73.0 19400701 19420630 125290 99999 KRAPKOWICE PL 50.5 17.983 56.0 19400816 19420630 125300 99999 OPOLE PL 50.617 17.967 163.0 19730101 20170923 125310 99999 RADZIKOWICE PL 50.5 17.3 62.0 19410101 19411231 125320 99999 ROZKOCHOW PL 50.367 17.933 59.0 19430115 19431231 125330 99999 BYSTRZYCA PL 50.3 16.667 113.0 19360615 19420630 125390 99999 KOLO PL 52.266999999999996 18.667 75.0 19310501 19420630 125400 99999 RACIBORZ PL 50.05 18.2 206.0 19530102 20170923 125500 99999 CZESTOCHOWA PL 50.817 19.1 295.0 19400101 20170923 125550 99999 PYRZOWICE PL 50.483000000000004 19.083 304.0 19881013 20021121 125560 99999 KRAKOW/BALICE PL EPKF 50.083 19.783 241.0 20020601 20160404 125600 99999 KATOWICE PL EPKM 50.233000000000004 19.033 284.0 19340330 20170923 125650 99999 KRAKOW PL 50.083 19.8 236.5 19520101 19600930 125660 99999 BALICE PL EPKK 50.078 19.785 241.1 19310103 20170923 125680 99999 BOGUS POLISH PL 19870102 19920917 125690 99999 WLOSZCZOWA PL 50.85 19.967 261.0 19400220 19420331 125700 99999 KIELCE-SUKOW PL 50.817 20.7 261.0 19341002 20170923 125750 99999 TARNOW PL 50.033 20.983 209.0 19391126 20170923 125760 99999 JAROGLAW PL 50.016999999999996 22.683000000000003 210.0 19410301 20090119 125770 99999 MIELEC PL 50.3 21.45 170.0 19400510 19781026 125800 99999 JASIONKA PL EPRZ 50.11 22.019000000000002 205.7 19540102 20170923 125830 99999 BOGUS POLISH PL 19870605 20030920 125850 99999 SANDOMIERZ PL 50.7 21.717 218.0 19400101 20170923 125950 99999 ZAMOSC PL 50.7 23.25 213.0 19400220 20170923 125960 99999 BOGUS POLISH PL 19870607 19890513 125990 99999 OSWIECIM PL 50.033 19.217 73.0 19350101 19420630 126000 99999 BIELSKO-BIALA PL 49.8 19.0 399.0 19391009 20170923 126010 99999 BOGUS POLISH PL 19870601 20021020 126070 99999 BOGUS POLISH PL 19870701 20011114 126250 99999 ZAKOPANE PL 49.3 19.967 857.0 19340329 20170923 126500 99999 KASPROWY WIERCH PL 49.233000000000004 19.983 1989.0 19400101 20170923 126600 99999 NOWY SACZ PL 49.617 20.7 295.0 19730101 20170923 126650 99999 CIESZYN PL 49.75 18.633 312.0 19340329 20070712 126700 99999 KROSNO PL 49.7 21.767 329.0 19850401 20170923 126760 99999 BOGUS POLISH PL 19861101 20041001 126800 99999 KROSCIENKO WYZNE PL 49.683 21.816999999999997 281.0 19391101 20101213 126899 99999 NOWY TARG AIRPORT PL EPNT 49.467 20.05 628.0 20140513 20170609 126900 99999 LESKO PL 49.467 22.35 422.0 19730101 20170923 126914 99999 KOSZALIN & PL 19870117 19880323 126915 99999 SLUPSK & PL 54.467 17.017 0.0 19870117 19901115 126926 99999 BOGUS POLISH PL 19870202 19880323 126950 99999 PRZEMYSL PL 49.8 22.767 280.0 19340330 20170923 126980 99999 BOGUS POLISH PL 19870408 20051008 127560 99999 SZECSENY HU 48.117 19.517 153.0 20010705 20170923 127660 99999 JOSVAFO HU 48.483000000000004 20.533 305.0 20010705 20170923 127720 99999 MISKOLC HU LHMC 48.083 20.767 236.0 19520101 20170923 127860 99999 ZAHONY HU 48.4 22.166999999999998 104.0 20010705 20170923 128050 99999 SOPRON HU 47.683 16.6 239.0 19360601 20170923 128120 99999 SZOMBATHELY HU LHSY 47.266999999999996 16.633 221.0 19360105 20170923 128150 99999 MOSONMAGYAROVAR HU 47.883 17.283 122.0 19961201 20170923 128220 99999 GYOR HU LHPR 47.717 17.683 129.0 19730101 20170923 128250 99999 PAPA HU LHPA 47.364 17.500999999999998 152.0 19730101 20170923 128300 99999 VESZPREM/SZENTKIRALYSZABADJA HU 47.067 17.833 281.0 19880210 20170923 128305 99999 TOKOL HU LHTL 47.346000000000004 18.980999999999998 104.0 19951213 20010427 128310 99999 DOBOGOKO (MOUNT) HU 47.7 18.883 676.0 19340901 20020830 128360 99999 TATA HU 47.65 18.317 129.0 20010705 20170923 128380 99999 BUDAORS HU LHBS 47.45 18.967 132.0 19780119 19971231 128390 99999 FERIHEGY HU LHBP 47.437 19.256 150.9 19520101 20170923 128400 99999 BUDAPEST MET CENTER HU LHBM 47.516999999999996 19.033 129.0 19310103 20031111 128430 99999 BUDAPEST/PESTSZENTLORINC HU 47.433 19.183 139.0 19730101 20170923 128440 99999 TOKOL HU 47.35 18.983 104.0 20011106 20011106 128460 99999 AGARD HU 47.183 18.617 106.0 20010705 20170923 128470 99999 TAT HU 47.75 18.6 109.0 20010805 20170923 128510 99999 KEKESTETO HU 47.867 20.017 1015.0 19340901 20170923 128550 99999 NAGYKOROS HU 47.033 19.783 114.0 19360904 19390930 128600 99999 SZOLNOK HU LHSN 47.123000000000005 20.236 98.1 19520101 20170923 128601 99999 AZENTKILYSZABADJA HU LHSA 47.067 17.983 303.0 19960221 19960410 128603 99999 SZENTKIRALYSZABADJA HU LHSA 47.078 17.968 280.1 19960403 20040914 128605 99999 BALATON HU LHSM 46.68600000000001 17.159000000000002 124.4 20061010 20170923 128660 99999 POROSZLO HU 47.65 20.633000000000003 92.0 20010705 20170923 128700 99999 EGER HU 47.9 20.383 218.0 19360102 20170923 128820 99999 DEBRECEN HU LHDC 47.489 21.615 110.0 19310104 20170923 128920 99999 NYIREGYHAZA HU LHNY 47.983999999999995 21.691999999999997 103.0 19730101 20170923 129100 99999 SZENTGOTTHARD/FARKASFA HU 46.917 16.317 313.0 19740812 20170923 129150 99999 ZALAEGERSZEG/ANDRASHIDA HU 46.867 16.8 180.0 19770909 20170923 129200 99999 KESZTHELY HU 46.733000000000004 17.233 113.0 19360101 20001211 129220 99999 SARMELLEK HU 46.683 17.167 125.0 20010919 20170923 129250 99999 NAGYKANIZSA HU 46.45 16.967 141.0 19730101 20170923 129255 99999 TASZAR HU LHTA 46.4 17.917 160.0 19951213 19971029 129300 99999 KAPOSVAR HU LHKV 46.383 17.833 145.0 19361001 20170923 129320 99999 TASZAR HU LHTA 46.393 17.917 164.0 19970201 20051001 129350 99999 SIOFOK HU LHSK 46.917 18.05 109.0 19730101 20170923 129400 99999 PECS HU 46.067 18.233 201.8 19520101 19561231 129410 99999 PECS/ARPADTETO HU 46.133 18.25 440.0 19311001 20011007 129420 99999 PECS SOUTH HU LHPP 45.99100000000001 18.241 304.8 19360501 20170923 129500 99999 PAKS HU 46.583 18.85 98.0 19801009 20170923 129600 99999 BAJA HU 46.183 19.017 113.0 19730101 20170923 129700 99999 KECSKEMET HU LHKE 46.918 19.749000000000002 114.6 19730101 20170923 129820 99999 SZEGED (AUT) HU LHUD 46.25 20.1 83.0 19360101 20170923 129900 99999 19730612 19730619 129920 99999 BEKESCSABA HU LHBC 46.683 21.166999999999998 90.0 19361201 20170923 130050 99999 BOVEC SI 46.333 13.567 452.0 19920301 20050601 130060 99999 VOGEL SI 46.266999999999996 13.833 1535.0 19920301 19960101 130070 99999 RATECE/PLANICA SI 46.5 13.717 865.0 19920302 20001113 130080 99999 KREDARICA SI 46.383 13.85 2514.0 19730105 19960405 130090 99999 ATLAS BUOY / LAMBADA SI 13009 8.0 -38.0 3.0 19930101 19960118 130100 99999 ATLAS BUOY 13010 / SOUL 0.0 0.0 3.0 19930105 20170923 130120 99999 KATARINA SI 46.1 14.367 685.0 19920301 19960101 130140 99999 LJUBLJANA/BRNIK SI 46.217 14.482999999999999 385.0 19730101 20070805 130145 99999 CERKLJE SI LJCE 45.9 15.53 155.4 20051017 20170923 130150 99999 LJUBLJANA/BEZIGRAD SI 46.067 14.517000000000001 299.0 19360701 19960130 130180 99999 LJUBLJANA /BRNIK SI 46.233000000000004 14.482999999999999 388.9 19520102 19621231 130200 99999 ROGLA SI 46.45 15.333 1480.0 19920301 20011201 130210 99999 SMARTNO SI 46.483000000000004 15.117 452.0 19730105 19960109 130230 99999 CELJE SI 46.25 15.25 244.0 19910708 20050704 130240 99999 LISCA SI 46.067 15.283 941.0 19861201 20000713 130250 99999 MARIBOU-MESTO SI 46.533 14.867 157.0 19920301 19951231 130260 99999 MARIBOR SI 46.483000000000004 15.683 265.0 19730101 20040924 130310 99999 MURSKA SOBOTA SI 46.65 16.183 188.0 19910708 20020613 130330 99999 VARAZDIN HR 46.3 16.383 167.0 19730102 20030607 130670 99999 PALIC RI 46.1 19.767 105.0 19730101 20170923 130680 99999 BOGUS YUGOSLAVIAN SI 19880602 19890513 131050 99999 PORTOROZ/SECOVLJE SI 45.483000000000004 13.617 3.0 19740602 20070307 131060 99999 NOVA GORICA SI 45.95 13.65 102.0 19830210 19960208 131070 99999 19730101 19740817 131090 99999 PAZIN HR 45.233000000000004 13.967 293.0 19800712 19900313 131110 99999 IL SISTRICA SI 45.567 14.25 413.0 19920302 19960203 131120 99999 POSTOJNA SI 45.766999999999996 14.2 533.0 19920302 19960101 131130 99999 BOGUS YUGOSLAVIAN SI 19910701 19920903 131160 99999 RIJEKA HR LYRI 45.217 14.57 84.7 19730101 20170923 131180 99999 KOCEVJE SI 45.9 14.867 56.0 19920301 20020613 131200 99999 CRNOMELJ SI 45.567 15.15 157.0 19920301 19960501 131210 99999 NOVO MESTO SI 45.783 15.183 213.0 19730105 19960413 131220 99999 OGULIN & HR 45.266999999999996 15.232999999999999 328.0 19730102 19951231 131280 99999 PUNTIJARKA (MOUNT) HR 45.9 15.967 988.0 19520101 19951231 131290 99999 ZAGREB/GRIC HR 45.817 15.982999999999999 163.0 19940613 19951231 131300 99999 ZAGREB/MAKSIMIR HR 45.817 16.033 123.0 19360101 19951231 131310 99999 ZAGREB/PLESO HR 45.733000000000004 16.067 106.0 19730101 19960507 131420 99999 DARUVAR HR 45.6 17.233 161.0 19730102 19951231 131430 99999 BOGUS YUGOSLAVIAN EG 28.866999999999997 31.333000000000002 103.6 19910701 19920802 131500 99999 SLAVONSKI BROD HR 45.167 18.0 88.0 19360901 19970116 131510 99999 BOGUS YUGOSLAVIAN SI 19910701 19920223 131560 99999 BOGUS YUGOSLAVIAN HR 45.533 18.733 92.0 19520101 19920812 131570 99999 OSIJEK HR LDOS 45.533 18.733 89.0 19730105 19941130 131590 99999 OSIJEK/SPA HR 45.533 18.633 92.0 19950401 19951218 131600 99999 SOMBOR RI 45.766999999999996 19.15 89.0 19820101 20170923 131680 99999 NOVI SAD RIMSKI SANCEVI RI 45.333 19.85 87.0 19360801 20170923 131681 99999 PETROVARADIN RI 45.25 19.883 87.0 19730102 19841129 131730 99999 ZRENJANIN RI 45.367 20.417 82.0 19820101 20170923 131740 99999 KIKINDA RI 45.85 20.467 82.0 19730102 20170923 131800 99999 BANATSKI KARLOVAC RI 45.05 21.033 91.0 19910701 20170923 131825 99999 CAMP BONDSTEEL AHP KV 42.35 21.25 595.0 20061101 20120118 131830 99999 VRSAC RI LYVR 45.147 21.31 84.1 19730101 20170923 132080 99999 PULA HR 44.867 13.85 32.0 19520101 19621231 132090 99999 PULA HR 44.9 13.917 67.0 19730101 19960507 132140 99999 MALI LOSINJ HR 44.533 14.467 53.0 19730107 19960123 132160 99999 BARBAT NA RABU HR 44.75 14.8 342.0 19360702 19391231 132180 99999 SENJ & SI 44.983000000000004 14.9 26.0 19820101 19951231 132190 99999 ZAVIZAN MOUNTAIN HR 44.817 14.982999999999999 1597.0 19801022 20020112 132220 99999 ZADAR 44.117 15.232999999999999 4.0 19520101 19621231 132230 99999 GOSPIC HR 44.55 15.367 564.0 19820401 19951231 132240 99999 ZADAR/ZEMUNIK HR 44.083 15.35 82.0 19730101 19960101 132280 99999 BIHAC BK LQBI 44.817 15.883 250.0 19570115 20030714 132340 99999 DRVAR BK 44.383 16.4 485.0 19730102 19841115 132420 99999 BANJA LUKA BK LQBK 44.941 17.298 121.9 19360701 20170923 132440 99999 BUGOJNA BK 44.067 17.467 562.0 19730102 19960113 132490 99999 ZENICA SI 44.217 17.9 344.0 19890907 19950227 132570 99999 TUZLA BK 44.55 18.7 306.0 19730305 20100724 132600 99999 BANJA KOVILJACA RI 44.516999999999996 19.167 125.0 19360102 19391231 132610 99999 LOZNICA TUGOSLAVIA RI 44.55 19.233 121.9 19520101 19621231 132620 99999 LOZNICA RI 44.55 19.233 122.0 19730101 20170923 132660 99999 SREMSKA MITROVICA RI 45.1 19.55 83.0 19820401 20170923 132690 99999 VALJEVO RI 44.317 19.917 177.0 19730102 20170923 132720 99999 BEOGRAD RI LYBE 44.818000000000005 20.309 102.1 19450501 20170923 132725 99999 BEOGRAD/BATAJNICA RI LYBT 44.935 20.258 80.8 20080115 20170923 132740 99999 BEOGRAD RI 44.8 20.467 132.0 19520101 20170923 132750 99999 BEOGRAD/KOSUTNJAK RI 44.766999999999996 20.417 203.0 19310101 20020104 132780 99999 KRAGUJEVAC RI 44.033 20.933000000000003 185.0 20070228 20170923 132790 99999 SMEDEREVSKA PALANKA RI 44.367 20.95 122.0 19730102 20170923 132850 99999 VELIKO GRADISTE RI 44.75 21.517 84.0 19360701 20170923 132890 99999 CRNI VRH RI 44.117 21.95 1039.0 19730302 20170923 132950 99999 NEGOTIN RI 44.233000000000004 22.55 44.0 19730101 20170923 133220 99999 BOGUS YUGOSLAVIAN SI 19910701 20021207 133290 99999 SIBENIK HR 43.733000000000004 15.917 77.0 19730102 19960201 133300 99999 BOGUS YUGOSLAVIAN SI 19910701 20051128 133330 99999 SPLIT/KASTEL STAFIL HR 43.533 16.3 24.0 19610101 19960714 133340 99999 SPLIT/MARJAN HR 43.516999999999996 16.433 128.0 19310102 20041006 133350 99999 HVAR HR 43.167 16.45 20.0 19820101 19960101 133400 99999 LIVNO BK LQLV 43.833 17.017 724.0 19820101 19930224 133480 99999 MOSTAR BK LQMO 43.283 17.846 47.5 19360701 20170923 133490 99999 MOSTAR BK 43.333 17.817 107.9 19570111 19590731 133510 99999 SJELASNICA BK 43.717 18.267 2069.9 19570124 19590731 133520 99999 BJELASNICA MTN RNG BK 43.717 18.267 2067.0 19730302 19930203 133530 99999 SARAJEVO BK LQSA 43.825 18.331 520.6 19360102 20170923 133535 99999 SARAJEVO/BUTMIR BK LQSA 43.817 18.35 511.0 19941007 19950124 133540 99999 SARAJEVO & BK 43.867 18.433 637.0 19751004 19920914 133560 99999 CEMERNO (MOUNT) BK 43.233000000000004 18.6 1305.0 19730109 19841010 133610 99999 ZABLJAK MJ 43.15 19.133 1450.0 19820101 20081204 133630 99999 PLEVLJA MJ 43.35 19.35 788.0 19360102 20170923 133670 99999 ZLATIBOR RI 43.733000000000004 19.717 1029.0 19730101 20170923 133690 99999 SJENICA RI 43.283 20.0 1039.0 19820401 20170923 133700 99999 POZEGA UZICKA RI 43.833 20.033 312.0 19820101 20170923 133760 99999 KRALJEVO RI LYKV 43.7 20.7 217.0 19360102 20170923 133765 99999 KRALJEVO AIRPORT RI 43.817 20.583000000000002 209.0 20100527 20100527 133766 99999 UZICE-PONIKVE RI LYUZ 43.9 19.7 904.0 20071203 20170923 133770 99999 KRALJEVO RI 43.733000000000004 20.683000000000003 221.0 19520101 19621231 133780 99999 KOPAONIK RI 43.283 20.8 1713.0 19820401 20170923 133820 99999 KURSUMLIJA RI 43.133 21.267 383.0 19730105 20060314 133830 99999 KRUSEVAC RI 43.567 21.35 167.0 19820101 20170923 133840 99999 CUPRIJA RI 43.933 21.383000000000003 125.0 19730105 20170923 133880 99999 NIS RI LYNI 43.336999999999996 21.854 197.5 19360102 20170923 133890 99999 LESKOVAC RI 42.983000000000004 21.95 232.0 19730102 20170923 133970 99999 DIMITROVGRAD RI 43.016999999999996 22.75 450.0 19730105 20170923 134320 99999 PALAGRUZA SI 42.4 16.267 97.0 19910701 19960101 134380 99999 PALAGRUZA 42.4 16.267 82.0 19520101 19620614 134390 99999 LASTOVO ISLAND HR 42.766999999999996 16.9 187.0 19830301 19900515 134510 99999 DUBROVNIK GORICA HR 42.65 18.083 53.0 19590805 19951231 134520 99999 DUBROVNIK-CILIPI HR 42.567 18.267 161.0 19730101 20030106 134550 99999 HERCEG NOVI-IGALO MJ 42.45 18.55 10.0 19360102 20081204 134555 99999 19760422 19761221 134570 99999 TIVAT MJ LYTV 42.405 18.723 6.1 19761221 20170923 134590 99999 NIKSIC MJ 42.766999999999996 18.95 647.0 19751023 20170923 134610 99999 BAR MJ 42.1 19.1 6.0 19820101 20170923 134615 99999 OHRID-AERODROME MK LYOH 41.1 20.816999999999997 700.0 20130101 20170923 134620 99999 PODGORICA / GOLUBOVCI MJ LYTI 42.367 19.25 33.0 19520101 20170923 134624 99999 PODGORICA TITOGRAD MJ LYPG 42.433 19.283 53.0 19930408 20170923 134630 99999 PODGORICA-GRAD MJ 42.433 19.283 50.0 20010916 20170923 134640 99999 ULCINJ MJ 41.917 19.217 29.0 19970101 20081204 134650 99999 KOLASIN MJ 42.833 19.533 945.0 19730105 20081204 134720 99999 PEC RI 42.667 20.3 501.1 19520801 19621211 134730 99999 PEC KV 42.667 20.3 499.0 19730101 20070227 134740 99999 KOSOVSKA MITROVICA KV 42.833 20.833000000000002 521.0 19360102 19391231 134770 99999 PRIZREN KV 42.217 20.733 403.0 19730102 20140602 134810 99999 PRISTINA KV LYPR 42.573 21.035999999999998 545.3 19730101 20051024 134811 99999 PRISTINA KV BKPR 42.57 21.03 559.0 20040706 20170923 134830 99999 SXODJE MK 41.983000000000004 21.467 241.1 19520101 19621231 134890 99999 VRANJE RI 42.55 21.916999999999998 434.0 19791104 20170923 134900 99999 RESERVED FOR NAVY 0.0 0.0 0.0 19940116 20040112 134910 99999 SKOPJE MK 42.516999999999996 22.283 1176.0 19940107 19960219 134920 99999 POPOVA SAPKA MK 41.016999999999996 20.883000000000003 1750.0 20020914 20130228 134930 99999 KRIVA PALANKA MK 42.2 22.333000000000002 696.0 19730101 20170923 135620 99999 ULCINJ MJ 41.917 19.217 29.0 19520101 20021222 135710 99999 TETOVO MK 42.0 20.967 462.0 20130225 20170923 135750 99999 POZARANE-PGC MK 41.85 20.866999999999997 885.0 20010725 20170923 135760 99999 MAVROVO MK 41.7 20.75 1240.0 20120703 20170923 135770 99999 LAZAROPOLE MK 41.533 20.7 1321.0 19730102 20170923 135780 99999 OHRID MK LWOH 41.18 20.741999999999997 705.0 19730105 20170923 135790 99999 OHRID-AERODROME MK LYOH 41.1 20.816999999999997 700.0 19910701 20121231 135800 99999 PRETOR-PGC MK 40.983000000000004 21.066999999999997 910.0 20011113 20170923 135810 99999 TOPOLCANI-PGC MK 41.217 21.467 -999.9 20010730 20170923 135820 99999 KRUSEVO MK 41.367 21.25 1230.0 19570101 20130301 135830 99999 BITOLA MK 41.05 21.366999999999997 589.0 19730101 20170923 135840 99999 SOLUNSKA GLAVA MK 41.733000000000004 21.517 2540.0 20010705 20120823 135850 99999 PRILEP MK 41.333 21.566999999999997 674.0 19360102 20170923 135860 99999 SKOPJE MK LWSK 41.961999999999996 21.621 238.0 19280106 20170923 135880 99999 SKOPJE-ZAJCEV RID MK 42.016999999999996 21.4 301.0 20011113 20170923 135890 99999 KUMANOVO MK 42.133 21.717 338.0 20151212 20151212 135900 99999 GURISTE-PGC MK 41.9 21.85 856.0 20010713 20170923 135910 99999 STIP MK 41.75 22.183000000000003 327.0 19730102 20170923 135920 99999 DEMIR KAPIJA MK 41.417 22.25 126.0 19730101 20170923 135930 99999 POZAR-PGC MK 41.3 22.416999999999998 1030.0 20011113 20161114 135940 99999 VINICA-PGC MK 41.883 22.5 513.0 20010726 20170923 135950 99999 STRUMICA MK 41.433 22.65 224.0 20011113 20170923 135970 99999 GEVGELIJA MK 41.15 22.5 59.0 20010705 20170923 135980 99999 BEROVO MK 41.717 22.85 836.0 19910701 20170923 135990 99999 KAVADARCI MK 41.433 22.033 260.0 20130228 20130301 136000 99999 SHKODRA AL 42.1 19.533 43.0 19560101 20170923 136010 99999 TIRANA-LA PRAKA AL 41.333 19.8 97.0 20110525 20170923 136100 99999 KUKES AL 42.033 20.417 354.0 19730106 20170923 136110 99999 DURRES AL 41.3 19.45 12.0 19730106 20170923 136120 99999 DURRES AL 41.3 19.467 8.0 19931101 20041116 136150 99999 TIRANA RINAS AL LATI 41.415 19.721 38.4 19560101 20170923 136190 99999 PESHKOPI AL 41.683 20.433 653.0 19730106 20170923 136220 99999 VLORE AL 40.467 19.483 5.0 19601002 20170923 136230 99999 SAZAN ISLAND AL 40.5 19.283 240.0 19330516 20170923 136240 99999 QYTETI STALIN AL 40.8 19.9 33.0 19730106 20170923 136250 99999 GJIROKASTRA AL 40.083 20.15 194.0 19560101 20170923 136290 99999 KORCA AL 40.6 20.767 899.0 19560101 20170923 136424 99999 PODGORICA (TITOGRAD 42.383 19.283 37.0 19930112 19930208 140050 99999 BOVEC SI LJBO 46.333 13.567 452.0 19960204 20050913 140060 99999 VOGEL SI 46.266999999999996 13.833 1535.0 19960101 20170923 140070 99999 RATECE SI 46.5 13.717 864.5 19960101 20170923 140080 99999 KREDARICA SI 46.383 13.85 2515.0 19960201 20170923 140090 99999 VOJSKO SI 46.033 13.9 1067.0 19960102 20170923 140100 99999 LESCE SI 46.367 14.183 515.0 19960101 20170923 140120 99999 KATARINA SI 46.1 14.367 685.0 19960101 20170923 140140 99999 LJUBLJANA SI LJLJ 46.224 14.458 388.0 19960201 20170923 140150 99999 LJUBLJANA/BEZIGRAD SI 46.067 14.517000000000001 298.0 19960101 20170923 140210 99999 SLOVENJ GRADEC SI 46.483000000000004 15.117 444.0 19960101 20170923 140230 99999 CELJE SI LJCL 46.233000000000004 15.232999999999999 243.6 19960101 20170923 140240 99999 LISCA SI 46.067 15.283 941.0 19960201 20170923 140250 99999 MARIBOR/TABOR SI 46.533 15.65 278.0 19960101 20010414 140260 99999 MARIBOR SI LJMB 46.48 15.686 267.0 19960101 20170923 140310 99999 MURSKA SOBOTA SI 46.65 16.2 186.7 19960201 20170923 141050 99999 PORTOROZ SI LJPZ 45.473 13.615 2.1 19960101 20170923 141060 99999 NOVA GORICA SI 45.9 13.633 56.1 19960101 20170923 141110 99999 ILIRSKA BISTRICA SI 45.567 14.25 413.0 19960101 20080821 141120 99999 POSTOJNA SI 45.766999999999996 14.2 533.0 19960101 20170923 141180 99999 KOCEVJE SI 45.65 14.85 467.0 19960201 20170923 141200 99999 CRNOMELJ SI 45.567 15.15 157.0 19960201 20170923 141210 99999 NOVO MESTO SI 45.8 15.183 220.0 19960201 20170923 141220 99999 CERKLJE OB KRKI SI 45.9 15.517000000000001 161.6 20061010 20170923 142160 99999 RIJEKA/KOZALA HR 45.333 14.45 125.0 19960201 20170923 142190 99999 PARG HR 45.6 14.633 863.0 19960201 20170923 142320 99999 KARLOVAC HR 45.5 15.567 111.0 19960201 20170923 142340 99999 KRAPINA HR 46.133 15.883 203.1 19960201 20170923 142350 99999 PUNTIJARKA HR 45.917 15.967 988.0 19960201 20170923 142360 99999 ZAGREB/GRIC HR 45.8 15.967 157.0 19960201 20170923 142400 99999 ZAGREB\MAKSIMIR HR LDDD 45.817 16.033 128.0 19960201 20170923 142410 99999 ZAGREB HR LDZA 45.743 16.069000000000003 107.6 19960201 20170923 142440 99999 SISAK HR 45.5 16.367 106.0 19960201 20170923 142460 99999 VARAZDIN HR LDVA 46.295 16.381 167.0 19960201 20170923 142480 99999 KRIZEVCI HR 46.033 16.55 146.0 19960117 20170923 142530 99999 BJELOVAR HR 45.917 16.867 142.4 19960201 20170923 142531 99999 LOSINJ ISLAND HR LDLO 44.567 14.4 45.0 20040510 20170923 142560 99999 BILOGORA HR 45.883 17.2 263.0 19960201 20170923 142580 99999 DARUVAR HR 45.6 17.233 161.0 19960201 20170923 142790 99999 OSIJEK\SPA HR 45.533 18.633 92.0 19960501 20020630 142800 99999 OSIJEK-CEPIN HR LDOC 45.5 18.567 89.3 20030330 20170923 142840 99999 OSIJEK HR LDOS 45.463 18.81 88.4 20040713 20170923 143010 99999 POREC HR 45.233000000000004 13.6 15.0 19960201 20100630 143014 99999 CEPIN HR 45.533 18.633 93.0 19960328 20070227 143015 99999 OSIJEK HR 45.467 18.817 88.0 20040803 20110915 143030 99999 ROVINJ/SV.IVAN NA PUCINI HR 45.05 13.617 8.0 19960201 20090930 143070 99999 PULA HR LDPL 44.894 13.922 83.5 19960201 20170923 143080 99999 PAZIN HR 45.233000000000004 13.933 293.0 19960201 20170923 143140 99999 MALI LOSINJ HR 44.533 14.482999999999999 53.0 19960201 20170923 143170 99999 RIJEKA/OMISALJ HR LDRI 45.217 14.583 85.0 19960501 20121231 143200 99999 CRIKVENICA HR 45.167 14.7 2.0 19960103 20060216 143210 99999 RAB HR 44.75 14.767000000000001 19.9 19960201 20170923 143230 99999 SENJ HR 45.0 14.9 28.0 19960201 20170923 143240 99999 ZAVIZAN HR 44.817 14.982999999999999 1597.0 19960201 20170923 143280 99999 OGULIN HR 45.266999999999996 15.232999999999999 328.0 19960201 20170923 143300 99999 GOSPIC HR 44.55 15.367 565.0 19960201 20170923 143700 99999 SLAVONSKI BROD HR LDOR 45.167 18.0 89.0 19960201 20170923 143820 99999 GRADISTE HR 45.15 18.7 98.0 19960106 20170923 144270 99999 VELA SESTRICA HR 43.85 15.2 35.0 19960201 20090910 144280 99999 ZADAR PUNTAMIKA HR 44.133 15.217 7.0 19960201 20170923 144310 99999 ZADAR HR LDZD 44.108000000000004 15.347000000000001 88.1 19960101 20170923 144380 99999 SIBENIK HR 43.733000000000004 15.917 75.0 19960201 20170923 144410 99999 KOMIZA HR 43.05 16.1 20.0 19960201 20170923 144420 99999 KNIN HR 44.033 16.2 255.0 19960227 20170923 144430 99999 PALAGRUZA HR 42.4 16.267 98.0 19960201 20170923 144440 99999 SPLIT HR LDSP 43.538999999999994 16.298 24.1 19960201 20170923 144450 99999 SPLIT/MARJAN HR 43.516999999999996 16.433 128.0 19960201 20170923 144460 99999 BRAC HR LDSB 43.286 16.68 541.3 20040810 20170923 144470 99999 HVAR HR LDSH 43.167 16.45 25.0 19960201 20170923 144520 99999 LASTOVO HR 42.766999999999996 16.9 187.0 20010916 20170923 144540 99999 MAKARSKA HR 43.283 17.017 49.0 19960201 20170923 144620 99999 PLOCE HR 43.05 17.45 5.0 19960201 20170923 144720 99999 DUBROVNIK/GORICA HR 42.65 18.083 53.0 19960201 20170923 144740 99999 DUBROVNIK HR LDDU 42.56100000000001 18.268 160.6 19960101 20170923 145280 99999 BIHAC BK 44.817 15.883 250.0 20010705 20170923 145370 99999 SANSKI MOST BK 44.766999999999996 16.7 158.0 20010705 20170923 145420 99999 BANJA LUKA BK 44.783 17.217 156.0 20010705 20170923 145430 99999 JAJCE BK 44.35 17.267 431.0 20010705 20170923 145440 99999 BUGOJNO BK 44.067 17.467 566.0 19981012 20170923 145490 99999 ZENICA BK 44.217 17.9 348.0 19981012 20170923 145510 99999 DRIFTER 14551 / ARGOS 62575 20130720 20150906 145540 99999 GRADACAC BK 44.883 18.433 140.0 20010705 20170923 145570 99999 TUZLA BK LQTZ 44.55 18.7 307.0 20010705 20170923 146400 99999 LIVNO BK LQLV 43.833 17.017 728.0 19990109 20170923 146480 99999 MOSTAR BK 43.35 17.8 108.0 20010705 20170923 146500 99999 IVAN SEDLO BK 43.766999999999996 18.033 972.0 20010705 20170923 146520 99999 BJELASNICA BK 43.717 18.267 2070.0 19991029 20170923 146540 99999 SARAJEVO-BJELAVE BK 43.867 18.433 638.0 19981012 20170923 146560 99999 CEMERNO BK 43.233000000000004 18.6 1309.0 20080801 20081009 146570 99999 NEUM BK 42.917 17.6 14.0 20080721 20170923 150000 99999 DARABANI RO 48.2 26.583000000000002 260.0 19861201 20170923 150001 99999 BOBOC AIR BASE RO LRBO 45.21 26.97 103.0 20080811 20170923 150002 99999 BORCEA FETESTI AIR BASE RO LRFT 44.383 27.717 54.0 20080811 20170817 150010 99999 AVRAMENI RO 48.016999999999996 26.95 240.0 19730721 20020805 150030 99999 BOGUS ROMANIAN RO 52.233000000000004 0.467 86.9 19851201 20020927 150040 99999 SIGHETUL MARMATIEI RO 47.933 23.9 276.0 19650701 20170923 150070 99999 RADAUTI RO 47.833 25.9 391.0 19730721 20170923 150080 99999 20010708 20030605 150090 99999 DOROHOI RO 47.967 26.4 241.0 19730721 20020921 150100 99999 SATU MARE RO LRSM 47.703 22.886 126.2 19520101 20170923 150105 99999 BAIA MARE/MAGHERUSI RO 47.667 23.666999999999998 152.0 19730621 19900127 150110 99999 BOGUS ROMANIAN RO 19850102 20020915 150130 99999 BOGUS ROMANIAN RO 19860603 19900220 150140 99999 TAUTII MAGHERAUS RO LRBM 47.658 23.47 184.1 19740315 20170923 150150 99999 OCNA SUGATAG RO 47.733000000000004 23.95 503.0 19740316 20170923 150200 99999 BOTOSANI RO 47.733000000000004 26.65 163.0 19570901 20170923 150230 99999 STEFAN CEL MARE RO LRSV 47.688 26.354 419.1 19730105 20170923 150235 99999 SUCEAVA/SALCEA RO 47.683 26.35 399.0 19760204 19900127 150250 99999 STANCA STEFANESTI RO 47.833 27.217 110.0 19841101 20170923 150320 99999 RODNEI MOUNTAIN RNG RO 47.583 24.666999999999998 2303.0 19740315 20020601 150330 99999 IEZER RO 47.6 24.65 1786.0 19730721 20170923 150400 99999 CIMPULUNG MOLDOVENE RO 47.533 25.566999999999997 660.0 19520101 20040615 150410 99999 RAUSENI RO 47.567 27.2 61.0 19730721 20020802 150420 99999 SACUIENI RO 47.35 22.1 113.0 19730802 20170923 150430 99999 BOGUS ROMANIAN RO 19880302 20020516 150440 99999 SUPURU DE JOS RO 47.45 22.783 161.0 19730721 20170923 150470 99999 TARGU LAPUS RO 47.433 23.866999999999997 365.0 19870701 20170923 150480 99999 20010731 20020920 150520 99999 RARAU RO 47.45 25.566999999999997 1574.0 19660102 20040903 150540 99999 BOGUS ROMANIAN RO 19880201 20020928 150550 99999 RADASENI RO 47.467 26.25 230.0 19840401 20051004 150560 99999 COTNARI RO 47.367 26.933000000000003 289.0 19730721 20170923 150620 99999 BOGUS ROMANIAN RO 19900615 20020430 150630 99999 ZALAU RO 47.183 23.05 294.0 19730105 20170923 150690 99999 POIANA STAMPEI RO 47.317 25.133000000000003 920.0 19730802 20170923 150700 99999 BOGUS ROMANIAN RO 19880601 20051015 150730 99999 TARGU NEAMT RO 47.217 26.383000000000003 388.0 19730721 20170923 150740 99999 BOGUS ROMANIAN RO 19851001 20020528 150750 99999 PODUL ILOAIEI RO 47.217 27.267 90.0 19740316 20030515 150790 99999 BOGUS ROMANIAN RO 19881101 19900205 150800 99999 ORADEA RO LROD 47.025 21.903000000000002 141.7 19360101 20170923 150830 99999 DEJ RO 47.133 23.9 236.0 19740318 20170923 150840 99999 BOGUS ROMANIAN RO 19870201 20030513 150850 99999 BISTRITA RO 47.15 24.517 367.0 19660102 20170923 150880 99999 CALIMANI RETITIS RO 47.1 25.25 2021.0 19900201 20170923 150890 99999 CEAHLAU RO 47.05 25.967 554.0 19740319 20020925 150900 99999 IASI RO LRIA 47.178000000000004 27.621 121.0 19360101 20170923 150910 99999 BOGUS ROMANIAN RO 19861101 20030227 150920 99999 BOGUS ROMANIAN RO 19830301 20020829 150940 99999 BARNOVA RO 47.016999999999996 27.583000000000002 400.0 20120329 20170923 150950 99999 BOROD RO 46.983000000000004 22.6 317.0 19730721 20170923 150980 99999 BOGUS ROMANIAN RO 19880201 20030623 150990 99999 HUEDIN RO 46.85 23.033 561.0 19830301 20170923 151070 99999 TOPLITA RO 46.933 25.366999999999997 688.0 19730721 20170923 151080 99999 CEAHLAU TOACA RO 46.983000000000004 25.95 1898.0 19640201 20170923 151090 99999 PIATRA NEAMT RO 46.917 26.383000000000003 361.0 19730721 20170923 151110 99999 ROMAN RO 46.967 26.916999999999998 217.0 19350701 20170923 151130 99999 NEGRESTI RO 46.85 27.45 131.0 19730721 20170923 151150 99999 BOGUS ROMANIAN RO 19870609 20020916 151160 99999 BOGUS ROMANIAN RO 19830301 20020523 151170 99999 HOLOD RO 46.783 22.116999999999997 165.0 19740316 20170923 151180 99999 STANA DE VALE RO 46.683 22.616999999999997 1116.0 19830301 20170923 151190 99999 VLADEASA 1800 RO 46.766999999999996 22.8 1837.0 19730721 20170923 151200 99999 CLUJ NAPOCA RO LRCL 46.785 23.686 315.8 19360101 20170923 151205 99999 CLUJ-NAPOCA/SOMESEN RO LRCL 46.783 23.566999999999997 410.0 19760203 19900108 151230 99999 SARMASU RO 46.75 24.166999999999998 398.0 19730722 20170923 151240 99999 BATOS RO 46.883 24.65 448.0 19870301 20170923 151270 99999 JOSENI RO 46.7 25.517 751.0 19730721 20170923 151320 99999 PLOPANA RO 46.683 27.233 251.0 19730721 20080211 151340 99999 HUSI RO 46.683 28.066999999999997 98.0 19830301 20020601 151360 99999 CHISINEU-CRIS RO 46.533 21.533 96.0 19730721 20170923 151380 99999 DUMBRAVITA DE CODRU RO 46.633 22.166999999999998 586.0 19840101 20170923 151400 99999 STEIU RO 46.533 22.45 500.0 19840401 20120531 151430 99999 TURDA RO 46.583 23.783 428.0 19740315 20170923 151450 99999 VIDRASAU RO LRTM 46.468 24.413 293.5 19520401 20170923 151455 99999 TIGU MURES/VIDRASA RO LRTM 46.533 24.533 308.0 19760203 19900127 151480 99999 BUCIN RO 46.65 25.3 1279.0 19830301 20170923 151490 99999 BOGUS ROMANIAN RO 19910201 20020828 151500 99999 BACAU RO LRBC 46.522 26.91 185.0 19520101 20170923 151520 99999 BOGUS ROMANIAN RO 19840401 20020906 151540 99999 VASLUI RO 46.65 27.717 117.0 19740316 20170923 151550 99999 20010728 20030222 151580 99999 ZARAND RO 46.4 21.65 112.0 19830301 20040525 151590 99999 MOCREA RO 46.383 21.816999999999997 697.0 19830301 20020929 151600 99999 STEI RO 46.533 22.467 279.0 19730804 20170923 151620 99999 CAMPENI RO 46.367 23.05 611.0 19740315 20170923 151630 99999 BAISOARA RO 46.533 23.316999999999997 1356.0 19730721 20170923 151650 99999 TARNAVENI RO 46.367 24.233 524.0 19870301 20170923 151680 99999 ODORHEIUL SECUIESC RO 46.3 25.3 525.0 19730802 20170923 151700 99999 MIERCUREA CIUC RO 46.367 25.733 662.0 19660102 20170923 151740 99999 ONCESTI RO 46.467 27.25 204.0 19730721 20020802 151750 99999 BOGUS ROMANIAN RO 19890310 20020928 151790 99999 SIRIA RO 46.25 21.65 473.0 19850401 20170923 151820 99999 GURAHONT RO 46.266999999999996 22.333000000000002 177.0 19730721 20170923 151840 99999 ROSIA MONTANA RO 46.317 23.133000000000003 1193.0 19840101 20170923 151860 99999 BOGUS ROMANIAN RO 19850104 20020531 151880 99999 BOGUS ROMANIAN RO 19890601 20050309 151890 99999 DUMBRAVENI RO 46.233000000000004 24.6 319.0 19730105 20170923 151910 99999 BOGUS ROMANIAN RO 19860603 20021222 151940 99999 TARGU OCNA RO 46.266999999999996 26.65 243.0 19730114 20170923 151970 99999 BARLAD RO 46.233000000000004 27.65 173.0 19660102 20170923 151990 99999 SANNICOLAU MARE RO 46.067 20.6 86.2 19730802 20170923 152000 99999 ARAD RO LRAR 46.177 21.261999999999997 107.3 19361105 20170923 152005 99999 ARAD RO 46.167 21.316999999999997 108.0 19751202 19901120 152040 99999 VARADIA DE MURES RO 46.016999999999996 22.15 157.0 19730721 20170923 152060 99999 TEBEA RO 46.167 22.726 264.0 19730802 20170923 152080 99999 ALBA IULIA RO 46.067 23.566999999999997 247.0 19830301 20170923 152090 99999 BLAJ RO 46.183 23.933000000000003 334.0 19730105 20170923 152100 99999 BOGUS ROMANIAN RO 19890508 20030130 152110 99999 BOGUS ROMANIAN RO 19870615 20030615 152120 99999 HOMOROD RO 46.05 25.267 451.0 19840902 20020930 152150 99999 BARAOLT RO 46.083 25.6 509.0 19730721 20170923 152170 99999 TARGU SECUIESC RO 46.0 26.133000000000003 569.0 19730721 20170923 152190 99999 ADJUD RO 46.1 27.166999999999998 102.0 19740318 20170923 152210 99999 BALINTESTI RO 46.033 27.916999999999998 214.0 19730721 20041215 152220 99999 BOGUS ROMANIAN RO 19840104 20020718 152300 99999 DEVA RO 45.867 22.9 231.0 19520101 20170923 152310 99999 SEBES ALBA RO 45.967 23.533 272.2 19730721 20170923 152350 99999 FAGARAS RO 45.833 24.933000000000003 429.0 19660505 20170923 152370 99999 BOGUS ROMANIAN RO 19881001 20020713 152380 99999 SFANTU GHEORGHE GOVASNA RO 45.867 25.816999999999997 526.0 19740315 20170923 152390 99999 BOGUS ROMANIAN RO 19880501 20020726 152410 99999 TULNICI RO 45.917 26.666999999999998 563.0 19730721 20020930 152450 99999 JIMBOLIA RO 45.783 20.7 80.0 19860101 20170923 152470 99999 TRAIAN VUIA RO LRTR 45.81 21.338 106.1 19520101 20170923 152490 99999 BOGUS ROMANIAN RO 19910201 20020901 152540 99999 PALTINIS SIBIU RO 45.65 23.933000000000003 1454.0 19730802 20170923 152590 99999 POSTAVARU RO 45.567 25.55 1784.0 19891201 20090205 152600 99999 SIBIU RO LRSB 45.786 24.090999999999998 456.0 19360101 20170923 152610 99999 INTORSURA BUZAULUI RO 45.683 26.017 710.0 19730105 20170923 152620 99999 LACAUTI RO 45.817 26.383000000000003 1785.0 19730721 20170923 152640 99999 FOCSANI RO 45.7 27.2 59.0 19830301 20170923 152650 99999 TECUCI RO 45.85 27.416999999999998 61.0 19360102 20170923 152670 99999 RAUTI RO 45.667 20.933000000000003 80.0 19730721 20020909 152700 99999 LUGOJ RO 45.683 21.933000000000003 123.0 19740316 20170923 152710 99999 20010707 20020803 152720 99999 20010820 20030220 152730 99999 PICLISA RO 45.567 22.883000000000003 381.0 19730721 20020607 152770 99999 BOITA RO 45.65 24.267 519.0 19730721 20170923 152780 99999 BOGUS ROMANIAN RO 19840102 20020922 152790 99999 BALEA LAC RO 45.6 24.616999999999997 2038.0 19830301 20170923 152800 99999 VARFU OMU RO 45.45 25.45 2509.0 19520101 20170923 152810 99999 BOGUS ROMANIAN RO 19830301 20021106 152820 99999 POIANA BRASOV RO 45.6 25.55 1028.0 19870301 20040514 152830 99999 BOGUS ROMANIAN RO 19840501 20020517 152840 99999 PENTELEU RO 45.6 26.416999999999998 1626.0 19880101 20170923 152850 99999 BISOCA RO 45.55 26.7 833.0 19840401 20170923 152870 99999 MAICANESTI RO 45.5 27.5 18.0 19740315 20080625 152890 99999 BANLOC RO 45.383 21.133000000000003 83.0 19730105 20170923 152900 99999 BOGUS ROMANIAN RO 0.0 0.0 -999.9 19850102 20020916 152920 99999 CARANSEBES RO LRCS 45.42 22.253 264.0 19650701 20170923 152950 99999 BOGUS ROMANIAN RO 19880201 20030302 152960 99999 PETROSANI RO 45.417 23.383000000000003 599.0 19730115 20170923 152970 99999 OBARSIA LOTRULUI RO 45.433 23.633000000000003 1350.0 19830301 20170923 152980 99999 COZIA PASS (AUT) RO 45.25 24.25 1640.0 19740318 20030221 152990 99999 RUCAR RO 45.4 25.166999999999998 581.0 19830301 20020619 153000 99999 BRASOV-GHIMBAV RO 45.7 25.533 538.0 19730721 20170923 153010 99999 FUNDATA RO 45.433 25.267 1383.0 19730721 20170923 153020 99999 PREDEAL RO 45.5 25.583000000000002 1093.0 19340703 20170923 153030 99999 BOGUS ROMANIAN RO 19870701 20020521 153040 99999 BOGUS ROMANIAN RO 19880201 20020903 153070 99999 RAMNICU SARAT RO 45.383 27.05 154.0 19740315 20170923 153100 99999 GALATI RO 45.483000000000004 28.033 71.0 19350702 20170923 153110 99999 BOGUS ROMANIAN RO 19850102 20030205 153120 99999 BOGUS ROMANIAN RO 19371103 20020809 153140 99999 RESITA RO 45.3 21.916999999999998 286.0 19830401 20170923 153150 99999 SEMENIC RO 45.183 22.05 1433.0 19730721 20170923 153160 99999 CUNTU RO 45.3 22.517 1450.0 19730721 20170923 153170 99999 TARCU RO 45.283 22.533 2186.0 19730721 20170923 153180 99999 20010710 20030208 153190 99999 VOINEASA RO 45.417 23.967 575.0 19730720 20170923 153200 99999 PARANG RO 45.383 23.467 1550.0 19730720 20170923 153210 99999 PARING (AUT) RO 45.35 23.517 2075.0 19740318 20020822 153220 99999 BOGUS ROMANIAN RO 19890101 20020930 153240 99999 CAMPULUNG MUSCEL RO 45.283 25.033 680.0 19740315 20170923 153250 99999 SINAIA-1500 RO 45.35 25.5 1510.0 19730721 20170923 153280 99999 PATARLAGELE RO 45.317 26.366999999999997 291.0 19740315 20170923 153330 99999 BRAILA RO 45.2 27.916999999999998 15.0 19830401 20170923 153350 99999 CATALOI RO LRTC 45.062 28.714000000000002 61.0 19730105 20170923 153355 99999 TULCEA/CATALOI RO 45.067 28.717 46.0 19760203 19900108 153360 99999 GORGOVA RO 45.183 29.166999999999998 4.0 19740315 20170923 153370 99999 MAHMUDIA RO 45.083 29.066999999999997 173.0 19930501 20170923 153380 99999 ORAVITA RO 45.033 21.683000000000003 310.0 19730108 20170923 153400 99999 TARGU JIU RO 45.033 23.267 205.5 19660506 20170923 153410 99999 APA NEAGRA RO 45.0 22.866999999999997 251.0 19730819 20170923 153440 99999 POLOVRAGI RO 45.183 23.816999999999997 532.0 19740315 20170923 153450 99999 MORARESTI RO 45.0 24.533 550.0 19730728 20170923 153460 99999 RAMNICU VALCEA RO 45.1 24.366999999999997 239.0 19370316 20170923 153470 99999 CURTEA DE ARGES RO 45.167 24.666999999999998 449.0 19730721 20170923 153480 99999 BOGUS ROMANIAN RO 19910601 20020930 153490 99999 CAMPINA RO 45.144 25.75 463.0 19730721 20170923 153500 99999 BUZAU RO 45.15 26.816999999999997 97.0 19360101 20170923 153510 99999 BOGUS ROMANIAN RO 19870611 20030622 153550 99999 FAUREI/=694514 KQYB RO 45.067 27.233 53.0 19730721 20041018 153560 99999 VIZIRU RO 45.016999999999996 27.7 20.0 19730721 20010401 153570 99999 BOGUS ROMANIAN RO 19900301 20021103 153580 99999 BOGUS ROMANIAN RO 19880201 20030609 153600 99999 SULINA RO 45.167 29.733 9.0 19360101 20170923 153610 99999 BOGUS ROMANIAN RO 19890520 20050826 153630 99999 CARBUNARI RO 44.833 21.75 90.0 19840104 20020519 153640 99999 BOZOVICI RO 44.917 22.0 252.0 19740315 20170923 153660 99999 BAILE HERCULANE RO 44.883 22.416999999999998 176.0 19830401 20170923 153690 99999 TARGU LOGRESTI RO 44.883 23.7 265.0 19730721 20170923 153730 99999 PITESTI RO 44.85 24.816999999999997 315.0 19660202 20170923 153750 99999 TARGOVISTE RO 44.933 25.433000000000003 297.7 19730105 20170923 153770 99999 PLOIESTI RO 44.95 26.0 177.0 19660105 20170923 153800 99999 20010718 20030711 153870 99999 SFANTU GHEORGHE DELTA RO 44.9 29.6 2.0 19730102 20170923 153880 99999 MOLDOVA VECHE RO 44.717 21.633000000000003 83.0 19740315 20170923 153890 99999 BERZASCA RO 44.65 21.95 68.0 19730721 20020523 153950 99999 DRAGASANI RO 44.667 24.233 281.0 19730721 20170923 153990 99999 BOGUS ROMANIAN RO 19910201 20030921 154010 99999 BOGUS ROMANIAN RO 19851101 20020908 154020 99999 URZICENI RO 44.717 26.65 61.0 19730721 20170923 154050 99999 GRIVITA RO 44.75 27.3 51.0 19660105 20170923 154060 99999 HARSOVA RO 44.683 27.95 38.0 19740315 20170923 154080 99999 CORUGEA RO 44.733000000000004 28.35 220.0 19730804 20170923 154090 99999 JURILOVCA RO 44.766999999999996 28.883000000000003 38.0 19730105 20170923 154100 99999 DROBETA TURNU SEVERIN RO 44.633 22.633000000000003 80.0 19360101 20170923 154120 99999 BACLES RO 44.483000000000004 23.116999999999997 313.0 19730721 20170923 154130 99999 BOGUS ROMANIAN RO 19920301 20020531 154140 99999 BOGUS ROMANIAN RO 19840402 20020930 154160 99999 STOLNICI RO 44.567 24.8 210.0 19730721 20170923 154190 99999 TITU RO 44.65 25.583000000000002 160.0 19740315 20170923 154200 99999 AUREL VLAICU RO LRBS 44.503 26.101999999999997 90.5 19310106 20170923 154210 99999 HENRI COANDA RO LROP 44.571000000000005 26.085 95.7 19730101 20170923 154215 99999 CAMPIA TURZII RO LRCT 46.501999999999995 23.886 330.1 20050727 20170923 154220 99999 BUCURESTI FILARET RO 44.417 26.1 83.5 19790808 20170923 154230 99999 DILGA RO 44.45 26.967 51.0 19730721 20020607 154240 99999 FUNDULEA RO 44.467 26.517 67.0 19730721 20120531 154250 99999 SLOBOZIA RO 44.55 27.4 52.0 19830401 20170923 154280 99999 GURA PORTITEI RO 44.683 29.0 6.0 19850410 20170923 154290 99999 SARULESTI RO 44.417 26.65 88.0 19830401 20020930 154340 99999 SLATINA RO 44.433 24.35 173.0 19830401 20170923 154360 99999 BOGUS ROMANIAN RO 0.0 0.0 159.0 19850501 20020604 154430 99999 DOR MARUNT RO 44.45 26.916999999999998 40.0 19830401 20020614 154440 99999 FETESTI RO 44.367 27.85 61.0 19730105 20170923 154450 99999 CERNAVODA RO 44.35 28.05 88.0 19850801 20170923 154470 99999 SARBATO RO 44.283 23.633000000000003 162.0 19840401 19860807 154480 99999 BOGUS ROMANIAN RO 0.0 0.0 19910201 20020623 154490 99999 BOGUS ROMANIAN RO 19910201 20020916 154500 99999 CRAIOVA RO LRCV 44.318000000000005 23.889 190.8 19360101 20170923 154510 99999 CRAIOVA RO 44.3 23.8 113.0 19740315 19901024 154550 99999 VIDELE RO 44.283 25.533 107.0 19740318 20170923 154580 99999 MINASTIREA RO 44.25 26.85 41.0 19740429 19841112 154600 99999 CALARASI RO 44.2 27.35 20.0 19360101 20170923 154620 99999 MEDGIDIA RO 44.25 28.267 72.0 19730721 20170923 154630 99999 BOGUS ROMANIAN RO 0.0 0.0 49.0 19840102 20020618 154640 99999 20010717 20020923 154650 99999 BAILESTI RO 44.016999999999996 23.333000000000002 58.0 19730721 20170923 154690 99999 CARACAL RO 44.1 24.366999999999997 107.0 19730721 20170923 154700 99999 ROSIORII DE VEDE RO 44.1 24.983 103.0 19660506 20170923 154740 99999 BOGUS ROMANIAN RO 0.0 0.0 93.0 19890201 20020930 154750 99999 OLTENITA RO 44.067 26.633000000000003 16.0 19831201 20170923 154760 99999 GREACA RO 44.117 26.333000000000002 4.0 19841001 20030614 154770 99999 PLATFORMA GLORIA RO 44.516999999999996 29.566999999999997 14.0 19830401 20120531 154790 99999 ADAMCLISI RO 44.083 27.967 160.0 19730721 20170923 154800 99999 CONSTANTA RO 44.217 28.65 14.0 19360101 20170923 154810 99999 MIHAIL KOGALNICEANU RO LRCK 44.361999999999995 28.488000000000003 107.6 19730620 20170923 154820 99999 CALAFAT RO 43.983000000000004 22.95 63.0 19730105 20170923 154830 99999 BOGUS ROMANIAN RO 19860301 20020924 154890 99999 ALEXANDRIA RO 43.983000000000004 25.35 76.0 19730721 20170923 154900 99999 TURNU-MAGURELE RO 43.75 24.883000000000003 31.0 19361201 20170923 154910 99999 GIURGIU RO 43.883 25.95 24.0 19730115 20170923 154930 99999 TUZLA RO 44.0 28.666999999999998 49.0 19730721 19900809 154931 99999 TUZLA RO LRTZ 43.985 28.607 50.0 20110715 20170923 154940 99999 BECHET RO 43.783 23.95 40.0 19740315 20170923 154950 99999 BOGUS ROMANIAN RO 19910201 20020813 154980 99999 ZIMNICEA RO 43.667 25.35 34.0 19830401 20170923 154990 99999 MANGALIA RO 43.817 28.583000000000002 9.0 19640101 20170923 155010 99999 NOVO SELO BU 44.167 22.8 38.0 19530306 20160726 155020 99999 VIDIN BU 43.983000000000004 22.85 595.0 19730314 20170923 155030 99999 GRAMADA BU 43.833 22.666999999999998 253.0 19730305 19910707 155050 99999 VRATZA BU 43.2 23.533 310.0 19730305 20131101 155070 99999 MONTANA BU 43.417 23.217 204.0 20040916 20100714 155100 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19750903 20030518 155110 99999 LOM BU 43.817 23.25 33.0 19520101 20131101 155140 99999 ORYAHOVO BU 43.683 23.967 31.0 19660111 20131101 155200 99999 BOGUS BULGARIAN BU 19730305 20050225 155250 99999 LOVETCH BU 43.15 24.7 221.0 19751101 20170923 155253 99999 GORNA ORYAHOVITSA BU LBGO 43.151 25.713 86.9 19970102 20170923 155254 99999 DOLNA MITROPOLIA AB BU LBPL 43.45 24.5 101.0 20080721 20121019 155255 99999 GRAF IGNATIEVO BU LBPG 42.29 24.73 196.0 20071016 20170504 155256 99999 BEZMER AB BU LBIA 42.45 26.35 155.0 20080721 20121019 155257 99999 BALCHICK AB BU LBWB 43.417 28.183000000000003 201.0 20080722 20121019 155258 99999 GRAF IGNATIEVO AIR BASE BU LBGD 42.283 24.75 58.0 20080916 20121019 155260 99999 PLEVEN BU 43.417 24.6 71.0 19520803 20020918 155280 99999 PLEVEN BU 43.4 24.6 160.0 20010915 20131101 155300 99999 VELIKO TARNOVO BU 43.083 25.65 218.0 19360701 20131101 155330 99999 SVICHTOV BU 43.617 25.35 26.0 19530301 20131101 155340 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19730305 19740429 155350 99999 ROUSSE/RUSE BU LBRS 43.85 25.95 45.0 19360701 20131101 155380 99999 BOGUS BULGARIAN BU 19730305 20020518 155440 99999 SHUMEN BU 43.266999999999996 26.933000000000003 220.0 19650701 19901130 155460 99999 SAMOUIL BU 43.516999999999996 26.75 475.0 19730305 19801004 155470 99999 BOGUS BULGARIAN BU 19860504 19900210 155490 99999 RAZGRAD BU 43.567 26.5 347.0 19810101 20170923 155500 99999 SILISTRA BU 44.117 27.267 16.0 19530801 20131101 155520 99999 VARNA BU LBWN 43.232 27.825 70.1 19360102 20170923 155560 99999 LJUBEN KARAVELOVO BU 43.233000000000004 27.816999999999997 62.0 19730101 19750514 155561 99999 BALGAREVO BU 43.383 28.383000000000003 83.0 19750515 19900125 155610 99999 SHABLA BU 43.533 28.533 28.0 19750401 20131101 155620 99999 KALIAKPA BU 43.367 28.467 64.0 19730305 20131101 155630 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19730305 20020312 155750 99999 BOGUS BULGARIAN BU 19751101 19900220 156000 99999 MOURGASH BU 42.833 23.666999999999998 1692.0 19730305 20170923 156010 99999 KUSTENDIL BU 42.266999999999996 22.767 527.0 19660503 20131101 156050 99999 DRAGOMAN BU 42.933 22.933000000000003 716.0 19730305 20150530 156090 99999 SOFIA/VRAZHDEBNA BU 42.7 23.416999999999998 531.0 19730101 19750514 156091 99999 SOFIA (OBSERVATORY) BU 42.817 23.383000000000003 595.0 19750515 19900208 156110 99999 BOGUS BULGARIAN BU 19730305 20070104 156130 99999 CHERNI VRAH (TOP/SOMMET) BU 42.583 23.267 2292.0 19530804 20131101 156140 99999 SOFIA BU LBSF 42.695 23.406 531.0 19310901 20170923 156150 99999 MUSSALA (TOP/SOMMET) BU 42.183 23.583000000000002 2927.0 19350102 20170923 156180 99999 BOGUS BULGARIAN BU 19730305 20051016 156190 99999 BOGUS BULGARIAN BU 19730305 20030225 156220 99999 IHTIMAN BU 42.433 23.816999999999997 637.0 19530305 20030501 156250 99999 PLOVDIV BU LBPD 42.068000000000005 24.851 182.0 19390102 20170923 156260 99999 PLOVDIV BU 42.067 24.85 156.0 20040831 20131101 156270 99999 BOTEV VRAH (TOP/SOMMET) BU 42.667 24.833000000000002 2389.0 19570701 20131101 156280 99999 IVAILO BU 42.217 24.333000000000002 214.0 19730305 20131101 156300 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19751101 19781103 156310 99999 KAZANLUK BU 42.617 25.4 387.0 19360701 19390930 156350 99999 CHIRPAN BU 42.2 25.333000000000002 178.0 19530402 20131101 156360 99999 YAMBOL BU 42.483000000000004 26.517 146.0 19360701 19390930 156370 99999 BOGUS BULGARIAN BU 19730308 20050326 156400 99999 SLIVEN * BU 42.667 26.333000000000002 257.0 19530305 20170923 156420 99999 ELHOVO BU 42.183 26.566999999999997 139.0 19530401 20131101 156450 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19730305 20021015 156460 99999 KARNOBAT BU 42.65 26.983 195.0 19570630 19900219 156500 99999 BOGUS BULGARIAN BU 19730306 19891223 156550 99999 BURGAS BU LBBG 42.57 27.515 41.1 19530101 20170923 156610 99999 ACHTOPOL BU 42.1 27.85 19.0 19730305 20131101 156620 99999 PRIMORSKO BU 42.283 27.75 10.0 19890604 20020922 157120 99999 SANDANSKI BU 41.55 23.267 207.0 19520101 20170923 157180 99999 BOGUS BULGARIAN BU 19730305 20071217 157250 99999 SNEJANKA (TOP/SOMMET) BU 41.667 24.683000000000003 1930.0 19530309 20020618 157260 99999 ROJEN BU 41.883 24.733 1750.0 20010915 20131101 157290 99999 BOGUS BULGARIAN BU 19730305 20020104 157300 99999 KURDJALI BU 41.65 25.383000000000003 331.0 19570627 20170923 157340 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19750901 20021003 157360 99999 NAME AND LOC UNKN BU 0.0 0.0 -999.0 19730305 20020825 157410 99999 SVILENGRAD BU 41.766999999999996 26.2 55.0 19660101 20050630 157720 99999 20010810 20021014 158430 99999 20010906 20020401 158840 99999 BOGUS BULGARIAN BU 19881104 20020507 160000 99999 BOGUS ITALIAN IT 19850126 20030328 160010 99999 BASSANO DEL GRAPPA IT LIPJ 45.766999999999996 11.732999999999999 19770513 19790830 160015 99999 UNKNOWN IT 0.0 0.0 -999.0 19730101 19740228 160016 99999 ANCONA IT 43.617 13.517000000000001 103.0 19730101 19751109 160060 99999 BOGUS ITALIAN IT 19860721 20020121 160080 99999 S. VALENTINO ALLA MUTA IT 46.75 10.533 1461.0 19670102 20170923 160083 99999 RESIA PASS IT LIVE 46.833 10.5 1800.0 19870326 20170923 160100 99999 VIPITENO IT 46.883 11.35 942.0 20040216 20051016 160140 99999 VIPITENO IT 46.883 11.433 921.0 20050727 20170923 160150 99999 BRENNERO PASS IT 46.983000000000004 11.5 1362.0 19730101 19840514 160180 99999 SOPRABOLZANO IT 46.533 11.417 1298.0 19730226 19760101 160200 99999 BOLZANO IT LIPB 46.46 11.325999999999999 240.5 19650129 20170923 160210 99999 ROLLE PASS IT LIVR 46.3 11.783 2006.0 19730101 20170923 160220 99999 PAGANELLA MOUNTAIN IT LIVP 46.15 11.033 2129.0 19730101 20170923 160230 99999 TRENTO IT 46.016999999999996 11.117 190.0 20070605 20170923 160330 99999 DOBBIACO IT LIVD 46.733000000000004 12.217 1226.0 19730101 20170923 160360 99999 AVIANO AB IT LIPA 46.032 12.595999999999998 117.0 19660701 20170923 160365 99999 AVIANO (USAF) IT 46.016999999999996 12.617 126.0 19560101 19950831 160370 99999 AVIANO (USAF) IT LIYW 46.033 12.617 125.0 19930701 20151020 160400 99999 TARVISIO IT LIVO 46.5 13.583 778.0 19650129 20170923 160410 99999 TARVISIO IT 46.5 13.583 778.0 20050727 20120531 160440 99999 UDINE/CAMPOFORMIDO IT LIPD 46.033 13.183 94.0 19660104 19990330 160450 99999 RIVOLTO IT LIPI 45.979 13.049000000000001 54.6 19580414 20170922 160455 99999 GORIZIA IT LIPG 45.95 13.633 63.0 19731122 19840512 160460 99999 UDINE/RIVOLTO IT 45.967 13.033 53.0 20061024 20120531 160520 99999 PIAN ROSA (MTN TOP) IT LIMH 45.933 7.7 3488.0 19650129 20170923 160530 99999 COLLE DEL GIGANTE IT LIMI 46.917 12.1 -999.9 19730101 20050505 160540 99999 AOSTA POLLEIN IT LIMW 45.733000000000004 7.35 551.0 19840701 20170923 160550 99999 BOGUS ITALIAN IT 19850602 20041129 160580 99999 BOUSSON IT 44.933 6.817 1400.0 20050727 20170621 160590 99999 TORINO CASELLE IT LIMF 45.201 7.65 301.4 19640811 20170923 160595 99999 AERITALIA-TORINO IT LIMA 45.086000000000006 7.603 288.3 20080425 20170923 160600 99999 TORINO VENARIA IT 45.117 7.617000000000001 277.0 20050727 20170923 160610 99999 TORINO/BRIC CROCE IT LIMK 45.033 7.733 710.0 19730101 20170923 160640 99999 CAMERI IT LIMN 45.53 8.669 178.6 19660923 20170922 160660 99999 MALPENSA IT LIMC 45.631 8.728 233.8 19650204 20170923 160670 99999 GALLARATE IT 45.65 8.817 238.0 20061024 20120531 160680 99999 CASALE MONFERRATO IT 45.1 8.45 120.0 20050727 20170923 160700 99999 GRIGNA SETTENTRION IT 45.95 9.383 2403.0 19730301 20050902 160720 99999 BISBINO MOUNTAIN IT LIMO 45.867 9.067 1322.0 19730101 20070227 160730 99999 MONTE BISBINO IT 45.867 9.067 1323.0 20060201 20080801 160740 99999 VALCAVA IT 45.783 9.517000000000001 1262.0 19770309 19790828 160760 99999 BERGAMO ORIO AL SERIO IT LIME 45.674 9.704 238.4 19660908 20170923 160800 99999 LINATE IT LIML 45.445 9.277000000000001 107.6 19310104 20170923 160810 99999 MILANO/LINATE IT 45.467 9.267000000000001 108.0 20050727 20170923 160840 99999 PIACENZA IT LIMS 44.913000000000004 9.722999999999999 139.0 19660914 20170923 160870 99999 VERONA IT 45.467 10.982999999999999 67.0 20050509 20050509 160880 99999 GHEDI IT LIPL 45.431999999999995 10.267999999999999 101.5 19660904 20170923 160890 99999 DESENZANO IT 45.467 10.55 65.0 20050727 20170923 160900 99999 VILLAFRANCA IT LIPX 45.396 10.889000000000001 72.8 19450518 20170923 160903 99999 PADOVA (CIV/IT-AFB) IT 45.4 11.85 13.0 19820625 19901115 160920 99999 GRAPPA MOUNTAIN IT 45.867 11.8 1775.0 19730101 19840910 160940 99999 VICENZA IT LIPT 45.573 11.53 39.0 19660904 20150116 160950 99999 PADOVA IT LIPU 45.4 11.85 14.0 19730101 20170923 160960 99999 MOUNT VENDA IT LIVV 45.317 11.683 575.0 19730101 19790315 160980 99999 ISTRANA IT LIPS 45.685 12.083 41.8 19660904 20170923 160990 99999 TREVISO IT LIPH 45.648 12.194 18.0 19660901 20170923 161000 99999 VENEZIA/SAN NICOLO IT LIPV 45.433 12.383 4.0 19511001 19790830 161010 99999 VENEZIA LIDO IT 45.433 12.383 5.0 19961205 20170923 161050 99999 VENEZIA TESSERA IT LIPZ 45.505 12.352 2.1 19610301 20170923 161070 99999 CONCORDIA SAGITTARIA IT 45.75 12.85 2.0 20051013 20170923 161080 99999 RONCHI DEI LEGIONARI IT LIPQ 45.828 13.472000000000001 11.3 19730101 20170923 161100 99999 TRIESTE IT LIVT 45.65 13.75 20.0 19321020 20170923 161110 99999 MONTE SETTEPANI IT 44.233000000000004 8.2 1382.0 20050727 20170923 161120 99999 FRAITEVE MOUNTAIN IT LIMX 44.983000000000004 6.85 2680.0 19730101 19840525 161140 99999 MONDOVI IT 44.383 7.817 560.0 19841101 20170923 161150 99999 MALANOTTE MOUNTAIN IT LIMY 44.25 7.8 1742.0 19730608 20170923 161155 99999 MALANOTTE MOUNTAIN& IT 44.25 7.8 1742.0 19730101 19740515 161160 99999 GOVONE IT 44.8 8.1 315.0 19730101 20010713 161170 99999 CUNEO LEVALDIGI IT 44.533 7.617000000000001 386.0 19730620 20120531 161180 99999 NOVI LIGURE IT 44.766999999999996 8.783 187.0 19750401 20050506 161190 99999 GIOVI PASS IT LIMV 44.633 8.933 475.0 19730101 20170923 161200 99999 GENOVA SESTRI IT LIMJ 44.412 8.842 4.0 19280101 20170923 161210 99999 GENOVA IT 44.4 8.9 45.0 19511001 20170711 161220 99999 ALBENGA IT LIMG 44.051 8.127 45.1 19730101 20170923 161230 99999 CHIAVARI IT 44.317 9.333 30.0 20050727 20170923 161240 99999 CISA PASS IT LIMT 44.433 9.933 1040.0 19730101 20170922 161250 99999 SARZANA/LUNI IT LIQW 44.083 9.982999999999999 10.0 19731109 20170922 161260 99999 PASSO DEI GIOVI IT 44.55 8.933 488.0 20050727 20120531 161270 99999 SARZANA IT 44.083 9.982999999999999 9.0 20050727 20120531 161280 99999 MODENA IT 44.65 10.95 33.0 20050727 20160130 161290 99999 PALMARIA ISLAND IT LIQP 44.033 9.833 192.0 19730101 20170923 161300 99999 PARMA IT 44.817 10.283 51.0 19660101 20160516 161320 99999 BOLOGNA IT 44.533 11.283 52.0 20050727 20170923 161330 99999 FERRARA IT 44.8 11.6 10.0 20050727 20170923 161340 99999 CIMONE MOUNTAIN IT LIVC 44.2 10.7 2173.0 19650201 20170923 161343 99999 PORRETTA PASS IT LIQD 44.033 10.933 932.0 19901018 19940816 161350 99999 PASSO PORRETTA IT 44.033 11.0 1314.0 20050727 20090206 161360 99999 PASSO PORRETTA IT 44.016999999999996 11.0 1314.0 19730101 20090531 161380 99999 FERRARA (AUT) IT LIPF 44.833 11.617 10.0 19730101 20170923 161400 99999 BOLOGNA IT LIPE 44.535 11.289000000000001 37.5 19640811 20170923 161420 99999 RIFREDO MUGELLO IT 44.05 11.383 887.0 19441202 20050124 161440 99999 S. PIETRO CAPOFIUME MOLINELLA (BOLOGNA) IT 44.65 11.617 12.0 20001019 20010202 161450 99999 PUNTA MARINA IT 44.467 12.283 6.0 20050727 20120531 161460 99999 POINT MARINA/RAVENN IT LIVM 44.45 12.3 6.0 19660104 20160718 161470 99999 FORLI IT LIPK 44.195 12.07 29.6 19730101 20170922 161480 99999 CERVIA IT LIPC 44.224 12.307 5.5 19730101 20170923 161490 99999 RIMINI IT LIPR 44.02 12.612 12.5 19450408 20170923 161500 99999 IMPERIA IT 43.867 8.033 60.0 19851201 20120531 161530 99999 CAPE MELE IT LIMU 43.95 8.167 221.0 19650501 20170923 161540 99999 ISOLA GORGONA IT 43.433 9.9 260.0 19730101 20090206 161550 99999 ISOLA CAPRAIA IT 43.033 9.817 27.0 20070717 20081113 161560 99999 S. GIOVANNI ALLA VE IT 43.683 10.583 7.0 20050403 20050403 161580 99999 PISA IT LIRP 43.684 10.392999999999999 1.8 19441124 20170923 161640 99999 VOLTERRA IT LIQV 43.4 10.867 575.0 19730101 20170707 161650 99999 VOLTERRA IT 43.4 10.883 575.0 20050727 20060927 161680 99999 MOUNT ARGENTARIO IT LIQO 42.383 11.167 632.0 19730101 20170923 161700 99999 FIRENZE IT LIRQ 43.81 11.205 43.9 19310102 20170923 161710 99999 FIRENZE IT 43.783 11.217 18.0 20050727 20170923 161720 99999 AREZZO IT LIQB 43.467 11.85 249.0 19780914 20170923 161740 99999 SIENA IT 43.317 11.35 322.0 19730101 19781104 161743 99999 SIENA & IT LIQS 43.317 11.35 322.0 19441004 19450116 161760 99999 SASSOFELTRIO IT 43.883 12.517000000000001 461.0 19730101 19751224 161780 99999 FRONTONE IT 43.516999999999996 12.717 574.0 20051017 20120531 161790 99999 FRONTONE IT LIVF 43.516999999999996 12.732999999999999 574.0 19730101 20170923 161800 99999 PERUGIA IT 43.133 12.383 493.0 19650204 20050317 161810 99999 PERUGIA IT LIRZ 43.096000000000004 12.513 211.2 19671106 20170923 161820 99999 PERUGIA S. EGIDIO IT 43.1 12.5 205.0 20050727 20120531 161900 99999 ANCONA IT 43.617 13.533 142.0 19490403 20170923 161910 99999 FALCONARA IT LIPY 43.61600000000001 13.362 14.9 19450414 20170923 161915 99999 JESI IT 43.516999999999996 13.232999999999999 -999.0 19730719 19740814 161920 99999 LORETO IT 43.433 13.583 197.0 20050727 20170923 161940 99999 19730101 19751126 161970 99999 MONTE CALAMITA IT LIRX 42.733000000000004 10.4 397.0 19730101 20170923 161980 99999 ISOLA D'ELBA IT 42.733000000000004 10.4 397.0 20050727 20090206 162000 99999 PIANOSA ISLAND IT 42.583 10.1 15.0 19650201 19791220 162040 99999 RADICOFANI IT LIQR 42.9 11.767000000000001 918.0 19730101 20170922 162060 99999 GROSSETO IT LIRS 42.76 11.072000000000001 4.6 19441211 20170923 162100 99999 FURBARA IT 42.0 12.017000000000001 11.0 20151209 20160817 162120 99999 S. TERESA IT 44.417 14.167 5.0 20070809 20070809 162140 99999 CIVITAVECCHIA IT 42.016999999999996 11.817 4.0 19450305 20170923 162150 99999 CIVITAVECCHIA IT LIQJ 42.02 11.82 4.0 20050727 20170923 162160 99999 VITERBO IT LIRV 42.43 12.064 301.8 19440701 20170923 162170 99999 ORTE IT 42.483000000000004 12.333 75.0 20050727 20120531 162180 99999 VITERBO IT 42.433 12.05 310.0 20050727 20170923 162190 99999 TERMINILLO MOUNTAIN IT LIRK 42.467 12.982999999999999 1875.0 19650201 20170923 162210 99999 RIETI IT LIQN 42.417 12.85 389.0 19731213 20170923 162230 99999 VIGNA DI VALLE IT 42.083 12.217 266.0 20050727 20080523 162240 99999 VIGNA DI VALLE(MIL) IT LIRB 42.083 12.217 270.0 19730101 20170923 162250 99999 GROTTAMMARE IT 42.983000000000004 13.867 1.0 19730101 19840916 162260 99999 L'AQUILA IT 42.367 13.317 669.0 20050727 20080611 162270 99999 FUCINO IT 41.983000000000004 13.6 650.0 19840801 20160523 162280 99999 PRETURO IT LIAP 42.367 13.3 667.0 19730101 19891204 162281 99999 GRAN SASSO MTN RNG IT 42.45 13.55 2138.0 19850118 19900125 162283 99999 GRAN SASSO MTN RNG IT LIQI 42.45 13.7 2138.0 19900208 20090603 162290 99999 GRAN SASSO MTN RNG IT 42.45 13.7 2138.0 20030725 20050511 162300 99999 PESCARA IT LIBP 42.431999999999995 14.181 14.6 19650201 20170923 162310 99999 MONTE S. ANGELO IT LIBE 41.7 15.95 844.0 20040917 20170923 162320 99999 TERMOLI IT LIBT 42.0 15.0 44.0 19730101 20170923 162330 99999 GUIDONIA IT 42.0 12.732999999999999 90.0 20050727 20120531 162340 99999 GUIDONIA IT LIRG 41.99 12.741 88.1 19660923 20170922 162350 99999 URBE IT LIRU 41.952 12.499 16.8 19730101 20170923 162380 99999 ROMA/CENTOCELLE IT 41.867 12.567 53.0 20050727 20120531 162390 99999 CIAMPINO IT LIRA 41.799 12.595 130.1 19511001 20170923 162400 99999 ROME IT 41.9 12.482999999999999 95.0 19280101 20040826 162420 99999 FIUMICINO IT LIRF 41.803999999999995 12.251 4.6 19650701 20170923 162430 99999 LATINA IT LIRL 41.542 12.909 28.3 19440301 20170923 162440 99999 FROSINONE (IT-AFB) IT LIRH 41.633 13.3 181.0 19730101 20170922 162450 99999 PRATICA DI MARE IT LIRE 41.659 12.445 12.5 19660923 20170923 162460 99999 FROSINONE IT 41.633 13.3 186.0 20050727 20090206 162470 99999 LATINA IT 41.55 12.9 26.0 20050727 20161018 162490 99999 CAPE CIRCEO IT LIQT 41.217 13.05 3.0 19730101 20160803 162520 99999 CAMPOBASSO IT LIBS 41.567 14.65 807.0 19650201 20170923 162530 99999 GRAZZANISE IT LIRM 41.06100000000001 14.082 8.8 19440331 20170923 162580 99999 MONTE S. ANGELO IT 41.7 15.95 848.0 19730101 20170923 162591 99999 PARMA IT LIMP 44.824 10.296 49.1 20040525 20170923 162592 99999 LEVALDIGI IT LIMZ 44.547 7.622999999999999 386.2 20040510 20170923 162593 99999 MONTICHIARI IT LIPO 45.428999999999995 10.331 108.5 20040510 20170923 162600 99999 GINA LISA IT LIBF 41.433 15.533 81.0 19570701 20170923 162603 99999 FOGGIA/GINO LISA & IT LIBF 41.433 15.533 80.0 19430930 19460915 162610 99999 AMENDOLA IT LIBA 41.541000000000004 15.718 55.8 19440131 20170922 162620 99999 TREVICO IT 41.05 15.232999999999999 1093.0 20050727 20120531 162630 99999 TREVICO IT LIRT 41.05 15.232999999999999 1093.0 19730101 20170923 162640 99999 MARINA DI GINOSA IT 41.133 15.517000000000001 514.0 19730101 19900403 162660 99999 VIESTE IT 41.883 16.167 4.0 19730101 20170923 162700 99999 BARI IT LIBD 41.133 16.767 53.9 19431207 20170923 162710 99999 BARI IT 41.117 16.883 11.0 20050727 20170923 162800 99999 PONZA ISLAND IT LIQZ 40.917 12.95 185.0 19650201 20170923 162810 99999 PONZA IT 40.917 12.95 185.0 20050831 20081003 162880 99999 CASERTA IT 41.067 14.317 62.0 20050727 20170712 162890 34113 NAPLES NAVAL AIR STATION IT LIRN 40.9 14.3 67.1 19981101 20170923 162890 99999 NAPOLI/CAPODICHINO IT LIRN 40.85 14.3 72.0 19511001 20150602 162920 99999 PONTECAGNANO IT 40.617 14.917 39.0 19730101 20090206 162923 99999 PONTECAGNANO IT LIRI 40.62 14.911 37.5 19930129 20170923 162940 99999 CAPRI ISLAND IT LIQC 40.55 14.25 269.0 19730101 20170923 162950 99999 CAPRI IT 40.55 14.2 161.0 20050728 20060529 162980 99999 19440301 19470228 163000 99999 POTENZA IT LIBZ 40.633 15.8 843.0 19650201 20070213 163100 99999 CAPE PALINURO IT LIQK 40.016999999999996 15.283 185.0 19640811 20170923 163120 99999 GIOIA DEL COLLE IT LIBV 40.768 16.933 361.8 19440229 20170923 163140 99999 MATERA IT 40.65 16.7 498.0 20050727 20170923 163160 99999 LATRONICO IT 40.083 16.017 896.0 19740902 20170923 163170 99999 LATRONICO IT LIBU 40.083 16.017 896.0 20050727 20170923 163180 99999 MARTINA FRANCA IT 40.633 17.217 414.0 19730915 20170923 163200 99999 CASALE IT LIBR 40.658 17.947 14.3 19431129 20170923 163240 99999 GROTTAGLIE IT LIBG 40.518 17.403 65.5 19430927 20170923 163250 99999 MARINA DI GINOSA IT LIBH 40.433 16.883 12.0 19670317 20170923 163300 99999 TARANTO IT 40.467 17.233 22.0 19310104 19391231 163320 99999 LECCE IT LIBN 40.239000000000004 18.133 47.5 19431231 20170923 163330 99999 LECCE IT 40.233000000000004 18.133 48.0 20050727 20170923 163340 99999 OTRANTO IT 40.1 18.483 80.0 19730101 20170729 163360 99999 BONIFATI IT 39.583 15.9 485.0 20060201 20120531 163370 99999 BONIFATI (CAPE) IT LIBW 39.583 15.883 485.0 19650201 20170923 163380 99999 CALOPEZZATI IT LICM 39.567 16.8 179.0 19740808 19810220 163383 99999 CALOPEZZATI IT LICM 39.55 16.8 179.0 19930312 19961009 163440 99999 MONTE SCURO IT 39.333 16.4 1677.0 19730101 20170923 163445 99999 SCURO MOUNTAIN IT LIBQ 39.333 16.4 1720.0 20070806 20170923 163450 99999 MONTE SCURO IT 39.333 16.4 1677.0 20061024 20120531 163500 99999 CROTONE IT LIBC 38.997 17.08 158.8 19570701 20170716 163510 99999 CROTONE IT 39.0 17.083 155.0 20050727 20120531 163600 99999 SANTA MARIA DI LEUC IT LIBY 39.817 18.35 112.0 19650201 20170923 163620 99999 LAMEZIA TERME IT LICA 38.905 16.242 11.9 19771101 20170923 163640 99999 SERRALTA DI S. VITO IT 38.75 16.367 997.0 19730101 20170923 163650 99999 CATANZARO IT 38.9 16.6 358.0 20060711 20170923 163680 99999 VIBO VALENTIA IT 38.667 16.1 520.0 19730725 19810711 164000 99999 USTICA ISLAND IT LICU 38.7 13.183 251.0 19570701 20170923 164010 99999 USTICA IT 38.7 13.183 243.0 20051017 20120529 164050 99999 PALERMO IT LICJ 38.176 13.091 19.8 19640811 20170923 164090 99999 PALERMO BOCCADIFALCO IT 38.117 13.317 123.0 20060710 20170923 164100 99999 BOCCADIFALCO IT LICP 38.111 13.312999999999999 105.2 19430807 20090111 164150 99999 ISOLA SALINA IT 38.567 14.85 46.0 19840501 20170923 164160 99999 ISOLA STROMBOLI IT 38.8 15.232999999999999 5.0 19730101 20170922 164200 99999 MESSINA IT LICF 38.2 15.55 51.0 19310101 20170923 164220 99999 REGGIO CALABRIA IT LICR 38.071 15.652000000000001 29.3 19730101 20170923 164290 99999 TRAPANI BIRGI IT LICT 37.911 12.488 7.3 19650201 20170923 164300 99999 MARSALA IT 37.817 12.467 2.0 19570701 19581231 164340 99999 PRIZZI IT LICX 37.717 13.433 1035.0 19730101 20170922 164350 99999 PRIZZI IT 37.717 13.433 1035.0 20050727 20160205 164360 99999 SCIACCA IT 37.516999999999996 13.083 125.0 19431010 20170809 164420 99999 GIBILMANNA IT 37.983000000000004 14.017000000000001 998.0 20050727 20170923 164500 99999 ENNA IT LICE 37.567 14.283 965.0 19730101 20170923 164530 99999 GELA IT LICL 37.083 14.217 33.0 19430902 20170923 164535 99999 19730101 19740117 164540 99999 GELA IT 37.083 14.217 65.0 20050727 20170526 164590 99999 CATANIA/SIGONELLA IT LICZ 37.4 14.917 22.0 19430810 20170923 164594 33126 SIGONELLA IT KQNS 37.4 14.917 31.1 19790101 20041231 164600 99999 CATANIA FONTANAROSSA IT LICC 37.467 15.065999999999999 11.9 19431028 20170923 164640 99999 SIRACUSA IT 37.05 15.279000000000002 2.0 20050727 20170907 164650 99999 MEZZO GREGORIO IT 36.967 14.95 639.0 20050727 20170824 164690 99999 CAPO SPARTIVENTO IT 37.933 16.05 118.0 19740601 20170824 164700 99999 PANTELLERIA IT LICG 36.817 11.969000000000001 193.5 19430620 20170923 164710 99999 PANTELLERIA IT 36.817 11.967 185.0 20050727 20090206 164750 99999 COMISO IT LICB 36.983000000000004 14.617 210.0 20050727 20170923 164751 99999 COMISO AS (USAF) IT LICB 36.983000000000004 14.583 220.0 19840323 19860430 164800 99999 COZZO SPADARO IT LICO 36.683 15.133 51.0 19660101 20170923 164900 99999 LAMPEDUSA IT LICD 35.498000000000005 12.618 21.3 19660104 20170923 164910 99999 LAMPEDUSA IT 35.5 12.6 50.0 20050727 20120531 165020 99999 ASINARA ISLAND IT LIER 41.117 8.317 115.0 19701001 19751209 165029 99999 19751117 19761215 165040 99999 PORTO TORRES IT 40.839 8.405 8.0 20151207 20160705 165060 99999 GUARDIAVECCHIA IT LIEG 41.217 9.4 170.0 19701001 20021029 165200 99999 ALGHERO IT LIEA 40.632 8.291 26.5 19570701 20170923 165220 99999 CAPE CACCIA IT LIEH 40.567 8.167 205.0 19750717 20170923 165230 99999 CAPO CACCIA IT 40.567 8.167 204.0 20050727 20120528 165240 99999 MACOMER SA' CRABARZA IT 40.266999999999996 8.767000000000001 586.0 19730101 20090206 165300 99999 OLSIA SARDINIA IT 40.933 9.5 2.1 19310104 19750910 165310 99999 OLBIA COSTA SMERALDA IT LIEO 40.899 9.517999999999999 11.3 19691117 20170923 165320 99999 MONTE LIMBARA IT 40.85 9.167 1363.0 20050727 20170409 165370 99999 FONNI IT 40.117 9.25 992.0 20050727 20080221 165380 99999 FONNI IT LIEN 40.117 9.25 1029.0 19730301 20161015 165390 99999 CAPE FRASCA IT LIEF 39.75 8.467 92.0 19660104 20170923 165410 99999 PERDASDEFOGU IT LIEP 39.667 9.433 645.0 19730101 20170921 165420 99999 CAPE S. LORENZO IT LIEL 39.5 9.617 22.0 19730101 20170922 165430 99999 CAPO S. LORENZO IT 39.5 9.633 3.0 20050727 20081125 165440 99999 MOUNT SERPEDDI IT 39.367 9.3 1067.0 19730101 19780812 165450 99999 PERDASDEFOGU IT 39.667 9.45 609.0 20050727 20120531 165460 99999 DECIMOMANNU IT LIED 39.354 8.972000000000001 30.5 19660923 20170923 165480 99999 CARLOFORTE IT 39.133 8.317 15.0 19780914 20020327 165490 99999 CARLOFORTE IT 39.133 8.3 12.0 19850301 20081023 165500 99999 CAPE BELLAVISTA IT LIEB 39.933 9.717 156.0 19660104 20170923 165600 99999 ELMAS IT LIEE 39.251 9.054 4.0 19431101 20170923 165635 99999 LAMEZIA TERME IT 38.917 16.233 12.0 19770125 19830627 165640 99999 CAPE CARBONARA IT LIEC 39.1 9.517000000000001 118.0 19730101 20170923 165643 99999 BOGUS ITALIAN IT LIEZ 19890310 19900901 165650 99999 CAPO CARBONARA IT 39.1 9.517000000000001 118.0 20050805 20120525 165700 99999 TEULADA IT 38.983000000000004 8.65 50.0 20080115 20120529 165820 99999 PADOVA IT 45.7 11.85 15.0 20070822 20170220 165840 99999 BARI PALESE IT 41.133 16.767 46.0 20070822 20170810 165850 99999 CAGLIARI S AVENDRACE IT 39.25 9.05 17.0 20070822 20080406 165860 99999 TRIPANI BIRGI IT 37.917 12.5 5.0 20080414 20080514 165970 99999 LUQA MT LMML 35.857 14.478 91.4 19310104 20170923 165974 99999 MALTA(ACC) MT LMMM 35.917 14.433 95.0 19801213 20091110 166000 99999 ORESTIAS GR 41.817 26.517 48.0 19600701 19780930 166060 99999 SERRAI GR 41.067 23.566999999999997 35.0 19321101 20170923 166100 99999 KOMOTINI GR 41.117 25.4 31.0 19651204 20031017 166130 99999 FLORINA GR 40.783 21.4 662.0 19321101 20170923 166140 99999 ARISTOTELIS GR LGKA 40.446 21.281999999999996 660.5 19801014 20170923 166200 99999 SEDES(GAFB) GR 40.55 23.017 57.0 19491001 19700520 166220 99999 MAKEDONIA GR LGTS 40.52 22.971 6.7 19600701 20170923 166240 99999 MEGAS ALEXANDROS INTL GR LGKV 40.913000000000004 24.619 5.5 19910827 20170923 166250 99999 KAVALA/AMIGDHALEON GR 40.933 24.383000000000003 62.0 19360101 20030316 166270 99999 DIMOKRITOS GR LGAL 40.856 25.956 7.3 19321101 20170923 166320 99999 FILIPPOS GR LGKZ 40.286 21.840999999999998 627.6 19380103 20170923 166410 99999 IOANNIS KAPODISTRIAS INTL GR LGKR 39.602 19.912 1.8 19321101 20170923 166420 99999 IOANNINA (AIRPORT) GR LGIO 39.7 20.816999999999997 483.0 19321101 20170923 166421 99999 PAROS GR LGPA 37.016999999999996 25.133000000000003 36.0 20040713 20170923 166430 99999 AKTIO GR LGPZ 38.925 20.765 3.4 19730101 20170923 166450 99999 TRIKALA GR 39.55 21.767 116.0 19390101 20050909 166480 99999 LARISA GR LGLR 39.65 22.465999999999998 73.5 19321101 20170923 166500 99999 LIMNOS GR LGLM 39.917 25.236 4.3 19770217 20170923 166510 99999 LIMNOS ISLAND ARPT GR 39.933 25.25 9.0 19491001 19780618 166540 99999 ARTA (HALKIADES) GR 39.167 21.0 11.0 19860413 20120525 166560 99999 ARTA GR 39.167 21.0 42.0 19661104 19700514 166610 99999 VOLOS / AIRPORT GR 39.367 22.95 27.0 19651204 19700526 166620 99999 SKOPELOS ISLAND GR 39.117 23.733 11.0 19640101 19710318 166650 99999 NEA ANCHIALOS GR LGBL 39.22 22.794 25.3 19651204 20170923 166651 99999 NEA ANGHIALOS HAFB GR LGBL 39.217 22.8 25.0 19810617 19850628 166653 99999 ALEXANDROS PAPADIAMANTIS GR LGSK 39.177 23.504 16.5 19910827 20170923 166670 99999 MITILINI GR LGMT 39.056999999999995 26.598000000000003 18.3 19600713 20170923 166690 99999 LEFKAS GR 38.833 20.717 3.0 19330102 19710318 166720 99999 AGRINION (AIRPORT) GR 38.6 21.35 24.0 19380101 20091117 166740 99999 ALIARTOS GR 38.383 23.1 110.0 19690919 20021202 166750 99999 LAMIA GR 38.883 22.433000000000003 13.8 19321101 20170117 166820 99999 ANDRAVIDA GR LGAD 37.921 21.293000000000003 16.8 19650424 20170923 166830 99999 KIMI GR 38.633 24.1 221.0 19640101 19710321 166840 99999 SKIROS GR LGSY 38.968 24.487 13.4 19491001 20170923 166850 99999 KEFALLINIA GR LGKF 38.12 20.5 18.0 19651204 20170923 166870 99999 ARAXOS GR LGRX 38.150999999999996 21.426 14.0 19420101 20170923 166890 99999 PATRAI GR 38.25 21.733 3.0 19321101 20061024 166900 99999 PLATANOS GR 38.6 21.783 851.0 19830801 19840217 166970 99999 CHALKIS GR 38.467 23.6 6.1 19651205 19700514 166990 99999 TANAGRA GR LGTG 38.34 23.565 147.8 19651204 20170923 167010 99999 ATHINAI (FILADELFIA) GR 38.05 23.666999999999998 138.0 19490930 20091117 167040 99999 CHIOS DODECANESE IS GR 38.367 26.15 61.0 19491001 19710318 167050 99999 ZAKYNTHOS GR 37.783 20.883000000000003 4.0 19321101 19710318 167060 99999 CHIOS GR LGHI 38.343 26.141 4.6 19910828 20170923 167100 99999 TRIPOLIS GR LGTP 37.531 22.404 644.0 19321101 20170923 167110 99999 TRIPOLIS GR 37.516999999999996 22.35 666.0 19491001 19591231 167120 99999 CORINTH RUINS GR 37.933 22.95 15.0 19651204 19700518 167131 99999 NAFPLION GR 37.583 22.767 2.0 20160301 20170923 167140 99999 ATHENS OBSERVATORY GR 37.967 23.717 107.0 20010808 20010810 167150 99999 TATOI GR LGTT 38.109 23.784000000000002 239.3 19660804 20170923 167160 99999 ATHINAI GR LGAT 37.882 23.735 21.0 19490301 20170923 167161 99999 ELEFTHERIOS VENIZELOS INTL GR LGAV 37.936 23.944000000000003 93.9 20040105 20170923 167170 99999 PIRAEUS GR 37.983000000000004 23.566999999999997 2.0 19651205 20091117 167180 99999 ELEFSIS GR LGEL 38.064 23.555999999999997 43.6 19651204 20170923 167190 99999 ZAKINTHOS GR 37.783 20.883000000000003 4.0 20090915 20170923 167193 99999 DIONYSIOS SOLOMOS GR LGZA 37.751 20.884 4.6 19910902 20170923 167210 99999 SAMOS ISLAND GR 37.75 26.866999999999997 48.0 19491002 19810211 167230 99999 SAMOS GR LGSM 37.69 26.912 5.8 19780407 20170923 167240 99999 KALAMATA GR 37.033 22.1 4.9 19600701 19710318 167260 99999 KALAMATA GR LGKL 37.068000000000005 22.026 7.9 19730512 20170923 167263 99999 MIKONOS GR LGMK 37.435 25.348000000000003 123.4 19910827 20170923 167264 99999 SYROS GR LGSO 37.423 24.951 71.9 19980201 20170923 167300 99999 SIROS ISLAND GR 37.45 24.95 10.0 19651205 19730222 167320 99999 NAXOS GR 37.1 25.366999999999997 9.8 19381010 20170923 167330 99999 XIROKAMBOS GR 37.117 26.866999999999997 22.0 19350101 19391231 167340 99999 METHONI GR 36.833 21.7 53.2 19340201 20170923 167341 99999 CYCLADES ISLANDS GR LGNX 37.083 25.366999999999997 3.0 20040510 20170923 167380 99999 MILOS GR 36.733000000000004 24.433000000000003 168.4 19321101 20170224 167400 99999 KOS ISLAND GR 36.8 27.1 125.0 19670318 19710318 167410 99999 EL VENIZELOS GR 37.917 23.933000000000003 73.5 20090915 20170923 167420 99999 KOS GR LGKO 36.793 27.092 125.6 19821001 20170923 167430 99999 KITHIRA GR LGKC 36.274 23.017 318.5 19330101 20170923 167440 99999 THIRA (AIRPORT) GR 36.417 25.433000000000003 36.0 19350101 20020513 167443 99999 SANTORINI GR LGSR 36.399 25.479 38.7 19910801 20170923 167460 99999 SOUDA GR LGSA 35.532 24.15 149.4 19321101 20170923 167464 33209 SOUDA BAY CRETE GR CR KQNC 35.533 24.15 146.3 19730801 20041231 167470 99999 KHANIA GR 35.5 24.033 62.0 19491001 19700514 167480 99999 KARPATHOS (TOWN) GR 35.5 27.217 9.0 19920612 20041216 167490 99999 DIAGORAS GR LGRP 36.405 28.086 5.8 19350101 20170923 167494 99999 RHODES/PARADISSI & GR 36.383 28.116999999999997 62.0 19770803 19870320 167500 99999 TAVRONITIS BEACH GR 35.533 23.816999999999997 25.0 19410809 20091117 167540 99999 NIKOS KAZANTZAKIS GR LGIR 35.34 25.18 35.1 19321101 20170923 167543 99999 KARPATHOS GR LGKP 35.421 27.146 20.1 19980201 20170923 167560 99999 IERAPETRA GR 35.0 25.733 13.0 19651204 20030306 167570 99999 SITIA GR 35.2 26.1 28.0 19640101 20170923 167580 99999 RETHYMNON GR 35.35 24.517 7.0 19670317 20030317 167590 99999 TYMBAKION (AIRPORT) GR 35.066 24.75 7.0 19420108 20170923 167600 99999 KASTELI (AIRPORT) GR 35.183 25.316999999999997 336.0 20090323 20170923 167650 99999 KARPATHOS (AIRPORT) GR 35.428000000000004 27.147 6.0 19910920 20170923 169990 99999 UNKNOWN TEST STN GR 0.0 0.0 -999.0 19860101 20030128 170200 99999 BARTIN TU 41.633 32.333 33.0 19510101 20170923 170220 99999 ZONGULDAK TU LTAS 41.45 31.8 137.0 19570703 20170923 170222 99999 KASTAMONU TU 41.317 33.783 1100.0 20130705 20170923 170223 99999 SAMANDIRA TU LTBX 41.0 29.217 121.9 20111212 20170922 170240 99999 INEBOLU TU 41.983000000000004 33.783 64.0 19730101 20170923 170260 99999 SINOP TU LTCM 42.033 35.167 32.0 19570701 20170923 170290 99999 SAMSUN\MEYDAN TU LTAQ 41.283 36.333 168.0 19730101 20151210 170300 99999 SAMSUN TU LTAQ 41.283 36.3 4.0 19510101 20170923 170310 99999 CARSAMBA/SAMSUN TU 41.25 36.55 7.0 20010915 20151204 170330 99999 ORDU TU 40.983000000000004 37.9 4.0 20031119 20170923 170340 99999 GIRESUN TU 40.917 38.383 37.0 19730101 20170923 170380 99999 TRABZON TU LTCG 40.995 39.79 31.7 19510101 20170923 170400 99999 RIZE TU 41.033 40.516999999999996 9.0 20031117 20170923 170420 99999 HOPA TU 41.4 41.433 33.0 19630103 20170923 170450 99999 ARTVIN TU 41.183 41.817 628.0 20010912 20170923 170460 99999 ARDAHAN TU 41.117 42.717 1829.0 20080906 20170923 170500 99999 EDIRNE TU 41.667 26.566999999999997 51.0 19550101 20170923 170520 99999 KIRKLARELI TU 41.733000000000004 27.233 232.0 19910202 20170923 170540 99999 CORLU TU 41.133 27.916999999999998 160.0 20070127 20070127 170560 99999 TEKIRDAG TU 40.983000000000004 27.55 3.0 19630101 20170923 170575 99999 CORLU TU 41.133 27.916999999999998 179.0 19921223 20170923 170590 99999 KUMKOY TU 41.25 29.033 30.0 19730101 20170923 170600 99999 ATATURK TU LTBA 40.977 28.820999999999998 49.7 19450613 20170923 170610 99999 SARIYER TU 41.133 29.066999999999997 58.0 19650405 20170923 170620 99999 ISTANBUL/GOZTEPE TU 40.9 29.15 33.0 19990603 20070509 170630 99999 SABIHA GOKCEN TU 40.883 29.3 99.0 20031118 20150105 170640 99999 ISTANBUL BOLGE (KARTAL) TU 40.9 29.15 18.0 20140218 20170923 170660 99999 19730101 19750823 170661 99999 IZMIT TU 40.766999999999996 29.9 76.0 20150817 20170923 170670 99999 GOLCUK/DUMLUPINAR TU 40.667 29.833000000000002 18.0 19630101 20161214 170671 99999 KAPADOKYA TU 38.766999999999996 34.533 969.0 20040510 20170923 170672 99999 YENISEHIR TU 40.25 29.55 239.0 20040510 20170923 170673 99999 CARSAMBA TU 41.25 36.567 6.0 20040510 20170923 170674 99999 SABIHA GOKCEN TU LTFJ 40.899 29.309 95.1 20040510 20170923 170675 99999 EDREMIT KORFEZ TU 39.55 27.0 50.0 20101001 20170923 170680 99999 CENGIZTOPEL TU 40.85 29.9 70.0 19990315 20170923 170690 99999 ADAPAZARI TU 40.783 30.416999999999998 30.0 20030606 20170923 170700 99999 BOLU TU 40.733000000000004 31.6 743.0 19730101 20170923 170720 99999 DUZCE TU 40.833 31.166999999999998 146.0 20081020 20170923 170740 99999 KASTAMONU TU 41.367 33.783 800.0 19630101 20151210 170780 99999 KARABUK TU 41.2 32.633 259.0 20080801 20160516 170800 99999 CANKIRI TU 40.6 33.617 751.0 20040417 20170923 170820 99999 MERZIFON TU LTAP 40.829 35.522 535.8 19500101 20170923 170840 99999 CORUM TU 40.55 34.95 776.0 19730101 20170923 170850 99999 AMASYA TU 40.65 35.85 412.0 19910212 20170923 170860 99999 TOKAT TU LTAW 40.3 36.567 608.0 19910216 20170923 170880 99999 GUMUSHANE TU 40.467 39.467 1219.0 19860624 20170923 170890 99999 BAYBURT TU 40.25 40.233000000000004 1584.0 20091117 20170923 170900 99999 SIVAS TU LTAR 39.814 36.903 1595.9 19630103 20170923 170905 99999 SIVAS (CIV/MIL) TU LTAR 39.75 37.016999999999996 1285.0 19760802 19900801 170920 99999 ERZINCAN TU LTCD 39.71 39.527 1153.1 19500101 20170923 170950 99999 ERZURUM BOLGE TU 39.9 41.283 1869.0 20140218 20170923 170960 99999 ERZURUM TU LTCE 39.957 41.17 1756.6 19500501 20170923 170965 99999 ERZURUM (CIV/MIL) TU 39.917 41.266999999999996 1869.0 19751202 19901128 170980 99999 KARS TU LTCF 40.562 43.115 1795.0 19630105 20170923 170981 99999 SIIRT TU LTCL 37.979 41.84 609.9 20061222 20170922 170990 99999 AGRI TU LTCO 39.733000000000004 43.05 1632.0 20010712 20170923 171000 99999 IGDIR TU 39.917 44.05 858.0 19630106 20170923 171001 99999 IGDIR AIRPORT TU LTCT 39.983000000000004 43.867 946.0 20120713 20170923 171100 99999 GOKCEADA TU LTFK 40.183 25.9 72.0 19730101 20160328 171110 99999 BOZCAADA TU 39.833 26.066999999999997 30.0 20080922 20160809 171120 99999 CANAKKALE TU LTBH 40.138000000000005 26.427 7.0 19630101 20170923 171150 99999 BANDIRMA TU LTBG 40.318000000000005 27.978 51.8 19500101 20170923 171160 99999 BURSA TU LTBE 40.183 29.066999999999997 100.0 19730101 20170923 171170 99999 KUTAHYA(TAFB) TU LTBN 39.433 30.017 921.0 19730101 20170922 171180 99999 YENISEHIR TU 40.233000000000004 29.533 238.0 20070419 20150106 171185 99999 SIVRIHISAR TU LTAV 39.451 31.365 970.8 19940124 20170922 171190 99999 YALOVA TU LTBP 40.667 29.283 4.0 20080808 20170923 171200 99999 BILECIK TU 40.15 29.967 539.0 19950901 20170923 171240 99999 ESKISEHIR TU LTBI 39.784 30.581999999999997 786.7 19500101 20170923 171270 99999 AKINCI TU 40.067 32.567 840.0 19730101 20151210 171273 99999 MURTED (TUR-AFB) TU 40.083 32.567 840.0 19900424 19950831 171280 99999 ESENBOGA TU LTAC 40.128 32.995 952.5 19670101 20170923 171290 99999 ETIMESGUT TU LTAD 39.95 32.689 808.6 19450131 20170923 171295 99999 GUVERCINLIK TU 39.933 32.733000000000004 842.0 19940806 20170923 171300 99999 ANKARA/CENTRAL TU 39.95 32.883 891.0 19740601 20170923 171310 99999 GUVERCINLIK TU 39.933 32.75 823.0 20070127 20151210 171350 99999 KIRIKKALE TU 39.85 33.516999999999996 748.0 19980303 20170923 171400 99999 YOZGAT TU 39.817 34.8 1298.0 19910301 20170923 171450 99999 EDREMIT TU 39.583 27.017 21.0 19990211 20130630 171500 99999 BALIKESIR TU LTBF 39.619 27.926 103.6 19500101 20170923 171550 99999 KUTAHYA TU 39.417 29.967 969.0 20030330 20170923 171600 99999 KIRSEHIR TU 39.15 34.167 1007.0 19630111 20170923 171620 99999 GEMEREK TU 39.183 36.067 1171.0 19730101 20160701 171650 99999 TUNCELI TU 39.117 39.55 981.0 20090112 20170923 171700 99999 VAN TU LTCI 38.468 43.332 1670.3 19570701 20170923 171750 99999 AYVALIK TU 39.3 26.7 4.0 19980303 20170923 171770 99999 BOGUS TURKISH TU 19881001 19900329 171800 99999 DIKILI TU 39.067 26.883000000000003 3.0 19730101 20170923 171840 99999 AKHISAR TU LTBT 38.809 27.834 80.2 19630101 20170923 171860 99999 MANISA TU 38.617 27.433000000000003 71.0 19860624 20170923 171865 99999 MANISA / SANAYI AIRPORT TU LTBZ 38.633 27.35 73.5 20121124 20170923 171880 99999 USAK TU LTBO 38.683 29.4 919.0 19630101 20170923 171890 99999 AFYONKARAHISAR TU 38.73 30.6 1012.0 20060125 20170923 171900 99999 AFYON TU LTAH 38.726 30.601 1008.9 19630101 20170922 171905 99999 AFYON (MIL) TU 38.733000000000004 30.6 1010.0 19500101 19901011 171910 99999 CIHANBEYLI TU 38.65 32.95 969.0 20080807 20170923 171920 99999 AKSARAY TU 38.383 34.05 961.0 20081125 20170923 171930 99999 NEVSEHIR TU 38.617 34.7 1260.0 20010711 20170923 171940 99999 KAPODOKYA TU 38.766999999999996 34.533 945.0 20070227 20070227 171950 99999 ERKILET TU LTAU 38.77 35.495 1055.5 19660722 20170923 171960 99999 KAYSERI BOLGE TU LTAM 38.683 35.483000000000004 1096.0 19630101 20021121 171970 99999 TULGA TU LTAO 38.354 38.254 919.3 20020902 20170923 171983 99999 AKHISAR (TUR-AFB) & TU 38.8 27.833000000000002 75.0 19870108 19881213 171990 99999 MALATYA/BOLGE TU LTAO 38.35 38.317 948.0 20040713 20131125 172000 99999 ERHAC TU LTAT 38.435 38.091 862.0 19500106 20170923 172005 99999 TOPEL TU LTBQ 40.735 30.083000000000002 55.5 19770323 20170923 172006 99999 ANADOLU TU LTBY 39.81 30.519000000000002 788.8 20050804 20170923 172007 99999 GAP/SANLIURFA TU 37.483000000000004 38.883 2708.0 20090507 20170910 172020 99999 ELAZIG TU LTCA 38.607 39.291 892.1 19730101 20170923 172030 99999 BINGOL TU LTCU 38.867 40.5 1177.0 19910406 20170923 172040 99999 MUS TU 38.733000000000004 41.516999999999996 1320.0 20031121 20170923 172043 99999 MUS TU LTCK 38.748000000000005 41.661 1267.1 19920914 20170923 172050 99999 TATVAN TU 38.483000000000004 42.3 1665.0 19750427 20161129 172100 99999 SIIRT TU 37.917 41.95 896.0 19630104 20170923 172180 99999 CIGLI TU LTBL 38.513000000000005 27.01 4.9 19500115 20170923 172189 99999 KAKLIC TU LTFA 38.518 26.976999999999997 4.0 19971010 20170922 172190 99999 ADNAN MENDERES TU LTBJ 38.292 27.156999999999996 125.6 19800925 20170923 172191 99999 GAZIEMIR TU LTBK 38.319 27.159000000000002 132.0 19731108 20170922 172200 99999 IZMIR/GUZELYALI TU 38.433 27.166999999999998 29.0 19500115 20170923 172210 99999 CESME TU 38.3 26.3 5.0 20090313 20170923 172320 99999 KUSADASI TU 37.867 27.25 22.0 20070127 20170923 172340 99999 AYDIN TU LTBD 37.85 27.85 56.0 19821101 20170923 172345 99999 DALAMAN/MUGLA TU 36.717 28.783 7.0 19860111 19881111 172370 99999 DENIZLI TU 37.783 29.083000000000002 425.0 19730101 20170923 172375 99999 CARDAK TU LTAY 37.786 29.701 851.9 19940805 20170923 172380 99999 BURDUR TU 37.667 30.333000000000002 967.0 20070127 20170923 172390 99999 AKSEHIR TU 38.35 31.416999999999998 1002.0 20081105 20170923 172400 99999 ISPARTA TU LTBM 37.785 30.581999999999997 990.6 19630101 20170923 172410 99999 SULEYMAN DEMIREL TU LTFC 37.855 30.368000000000002 864.1 20040713 20170923 172440 99999 KONYA TU LTAN 37.979 32.562 1030.5 19500102 20170923 172460 99999 KARAMAN TU 37.2 33.217 1023.0 20091028 20170923 172480 99999 EREGLI/KONYA TU 37.5 34.05 1044.0 19730101 20170923 172500 99999 NIGDE TU 37.967 34.683 1210.0 19880106 20170923 172550 99999 KAHRAMANMARAS TU LTCN 37.6 36.933 572.0 19980303 20170923 172600 99999 OGUZELI TU LTAJ 36.946999999999996 37.479 705.6 19730101 20170923 172620 99999 KILIS TU 36.717 37.117 638.0 20080821 20170923 172650 99999 ADIYAMAN TU LTCP 37.75 38.283 672.0 20070127 20170923 172700 99999 SANLIURFA TU LTCH 37.094 38.847 452.0 19630105 20170923 172710 99999 GAP/SANLIURFA TU LTCS 37.483000000000004 38.883 825.4 20080401 20170923 172720 99999 SANLIURFA / MEYDAN TU 37.1 38.85 452.0 20051017 20070802 172734 99999 MILAS BODRUM TU 37.25 27.666999999999998 7.0 19990114 20170923 172750 99999 MARDIN TU LTCR 37.3 40.733000000000004 1050.0 19910214 20170923 172800 99999 DIYARBAKIR TU LTCC 37.894 40.201 686.1 19500101 20170923 172805 99999 BATMAN (TUR-AFB) TU LTCJ 37.933 41.117 533.0 19740731 19891228 172820 99999 BATMAN TU LTCJ 37.929 41.117 555.3 19910209 20170923 172821 99999 SIRNAK TU LTCV 37.367 42.567 621.0 20130917 20170923 172850 99999 HAKKARI TU 37.567 43.766999999999996 1728.0 19730101 20170923 172900 99999 IMSIK TU LTBV 37.14 27.67 61.6 19630101 20170923 172910 99999 BODRUM MILAS TU 37.233000000000004 27.666999999999998 11.0 20091117 20140919 172920 99999 MUGLA TU 37.217 28.366999999999997 646.0 19630101 20170923 172950 99999 DALAMAN TU LTBS 36.713 28.793000000000003 6.1 19860624 20170923 172953 99999 DALAMAN/MUGLA TU 36.717 28.783 7.0 19881208 19901126 172960 99999 FETHIYE TU 36.617 29.116999999999997 3.0 20080821 20170923 172970 99999 DATCA TU 36.7 27.666999999999998 28.0 20080821 20170923 172980 99999 MARMARIS TU 36.85 28.267 16.0 19871227 20170923 173000 99999 ANTALYA TU LTAI 36.899 30.8 53.9 19510101 20170923 173020 99999 ANTALYA-BOLGE TU 36.867 30.7 47.0 20080801 20170923 173100 99999 ALANYA TU 36.55 32.0 6.0 20010705 20170923 173200 99999 ANAMUR TU 36.083 32.833 4.0 19861216 20170923 173300 99999 SILIFKE TU 36.383 33.933 15.0 19630101 20170923 173400 99999 MERSIN TU 36.8 34.633 3.0 19740820 20170923 173500 33308 ADANA/INCIRLIK TU LTAG 37.0 35.417 66.0 19730101 20170923 173500 99999 INCIRLIK AB TU LTAG 37.001999999999995 35.426 72.5 20000101 20071231 173505 99999 ADANA CIVIL TU 36.983000000000004 35.283 20.0 19730503 19870320 173510 99999 ADANA/BOLGE TU 36.983000000000004 35.35 27.0 19990612 20050921 173520 99999 ADANA TU LTAF 36.982 35.28 19.8 19450412 20170923 173550 99999 OSMANIYE TU 37.1 36.25 94.0 20091117 20170923 173700 99999 ISKENDERUN TU LTAK 36.573 36.154 7.6 19510101 20170923 173720 99999 HATAY-ANTAKYA TU 36.2 36.167 100.0 19760315 20091117 173721 99999 ERCAN/TYMBOU CY 35.15 33.5 117.0 19870302 19881027 173725 99999 HATAY TU LTDA 36.35 36.283 267.0 19761023 20170923 173750 99999 FINIKE TU 36.3 30.15 2.0 19860624 20170923 173800 99999 KAS TU 36.2 29.65 153.0 20080824 20170923 175000 99999 GUZELYURT CY LCGU 35.183 32.983000000000004 52.0 20050322 20170923 175010 99999 LEFKE CY 35.817 32.85 129.0 20080721 20170923 175050 99999 AKDENIZ CY LCAK 35.3 32.967 89.0 20080721 20170923 175070 99999 YESILIRMAK CY LCYS 35.167 32.733000000000004 20.0 20090701 20170923 175100 99999 GIRNE CY 35.35 33.333 10.0 20050322 20170923 175150 99999 LEFKOSA CY 35.2 33.35 131.0 20050323 20170923 175210 99999 ERCAN CY 35.15 33.5 119.0 20050322 20160719 175300 99999 GECITKALE CY 35.233000000000004 33.733000000000004 45.0 20090701 20170923 175350 99999 ISKELE CY LCIS 35.283 33.883 39.0 20080721 20170923 175400 99999 GAZIMAGUSA CY 35.133 33.933 0.0 20050322 20170923 175470 99999 DIPKARPAZ CY LCDP 35.583 34.383 136.0 20090701 20170923 175500 99999 YENIERENKOY CY 35.533 34.016999999999996 123.0 20080721 20170923 176000 99999 PAFOS INTL CY LCPH 34.718 32.486 12.5 19490101 20170923 176010 99999 AKROTIRI CY LCRA 34.59 32.988 23.2 19600103 20170923 176020 99999 GECITKALE CY 35.233000000000004 -33.717 44.0 19490101 20090918 176051 99999 ERCAN/TYMBOU CY 35.15 33.5 117.0 19890131 19900119 176060 99999 NICOSIA AIRFIELD CY 35.15 33.283 216.7 19490101 19760111 176070 99999 NICOSIA/ATHALASSA CY LCNC 35.15 33.4 161.0 19900101 20170923 176074 99999 ERCAN CY 35.15 33.5 91.0 19921219 20170923 176083 99999 BOGUS CYPRUS CY LCGK 19860620 19881028 176090 99999 LARNACA CY LCLK 34.875 33.625 2.4 19770101 20170923 176110 99999 AYIOS NICOLAOS CY 35.083 33.9 37.0 19541215 20070127 176170 99999 KARPAZIA CY 35.667 34.567 6.0 19490101 19531231 200260 99999 VIKTORIYA ISLAND RS 80.167 36.75 9.0 19591102 20020320 200290 99999 ABELOYA SV 79.0 30.166999999999998 0.0 19600119 19621230 200340 99999 NAGURSKOYE RS 80.817 47.417 18.0 19550305 20030314 200460 99999 POLARGMO IM. E.T. KRENKELJA RS 80.617 58.05 22.0 19570703 20170923 200470 99999 BUKHTA YURIYA RS 80.317 52.8 6.0 19550305 19591218 200490 99999 TIKHAYA BAY RS 80.367 52.917 46.0 19320202 20040930 200660 99999 USHAKOVA ISLAND RS 80.833 79.7 47.0 19550305 20040118 200690 99999 OSTROV VIZE RS 79.483 76.983 10.0 19550305 20170923 200740 99999 ... 79.5 81.833 19620304 19621127 200850 99999 OSTROV PIONEER RS 79.883 91.23299999999999 30.0 19591101 19591225 200870 99999 MGMS IM. G.F. USHAKOVA RS 79.55 90.56700000000001 8.0 19320101 20170923 200970 99999 CAPE PESCHANIY RS 79.383 102.417 6.0 19590901 20040925 201070 99999 BARENTSBURG RS 78.067 14.25 75.0 19520101 20170923 201080 99999 LONGYEARBYEN SV 70.433 83.75 29.0 19540605 19570613 201460 99999 ZALIV GULDA RS 79.917 58.917 -999.0 19620201 19621230 201860 99999 KRASNOFLOTSKIYE ISL RS 78.617 98.7 8.0 19550305 19871130 201990 99999 MALYY TAYMIR ISLAND RS 78.133 107.2 12.0 19550305 19940818 202740 99999 OSTROV UEDINENIJA RS 77.5 82.2 23.0 19350202 19961121 202770 99999 ISACHENKO ISLAND RS 77.283 89.667 5.0 19550305 19970330 202890 99999 RUSSKIY ISLAND RS 77.183 96.583 9.0 19550305 19960426 202910 99999 SOLNECHNAYA BAY RS 78.233 103.117 30.0 19550305 20050901 202920 99999 GMO IM.E.K. FEDOROVA RS 77.717 104.3 15.0 19330107 20170923 202940 99999 GEYBERGA ISLAND RS 77.617 101.48299999999999 6.0 19550305 19950731 203010 99999 SAVITSJVATNET SV 76.917 15.833 115.0 19600104 19621231 203530 99999 MYS ZHELANIYA RS 76.95 68.55 8.0 19320103 20150130 203570 99999 RUSSKAYA GAVAN' RS 76.183 63.567 9.0 19480101 20050403 203860 99999 OSTROV TYRTOVA RS 76.6 97.667 1.0 19550305 19601025 203880 99999 PRAVDY ISLAND RS 76.283 94.73299999999999 10.0 19550305 20031010 203890 99999 POLAR STATION RS 76.233 98.833 19550305 19581226 203930 99999 OSTROV FADDEYA RS 76.967 108.0 3.0 19550305 19581201 204050 99999 TUNHEIM SV 74.483 19.25 3.0 19600102 19621231 204710 99999 IZVESTIJ TSIK RS 75.95 82.95 11.9 19550130 20170923 204760 99999 MYS STERLEGOVA RS 75.417 88.9 11.0 19550305 20170923 204780 99999 19740717 19740911 204810 99999 OSTROV RYKACHEVA RS 75.867 92.833 7.0 19550305 19570630 205780 99999 OSTROV PESTSOVYY RS 74.25 86.5 2.0 19610311 19621028 205940 99999 LAKE TAJMYR RS 74.5 102.5 11.0 19550305 20050303 206470 99999 OSTROV GOLETS RS 73.05 53.1 29.0 19550305 19621210 206490 99999 MAMOCKIN SAR RS 73.267 56.4 43.0 19320102 19580916 206650 99999 VILKICKOGO ISLAND RS 73.5 76.0 4.0 19550305 20010222 206670 99999 IM. M.V. POPOVA RS 73.333 70.05 7.0 19360101 20170923 206740 99999 OSTROV DIKSON RS 73.5 80.4 47.0 19320101 20170923 206750 99999 MAKAROVA RS 73.683 85.25 15.0 19480104 20050802 206790 99999 TAREYA (STREAM) RS 73.25 90.917 21.0 19550304 20020807 206960 99999 CAPE KASISTY RS 73.667 109.75 20.0 19550305 19910418 207440 99999 MALYE KARMAKULY RS 72.367 52.7 19.0 19480101 20170923 207560 99999 CAPE PAYNOTE RS 72.65 68.983 10.0 19900601 19910525 207640 99999 DRONYANAYA RS 72.667 70.833 13.0 19550304 19630523 207660 99999 LESKINO RS 72.333 79.5 10.0 19550305 20030130 208440 99999 19740812 19740831 208560 99999 CAPE KHARASOVOY RS 71.4 67.633 18.0 19550307 20021020 208620 99999 MONGATALYANG RS 71.983 75.4 21.0 19810101 19991110 208640 99999 TAMBEY RS 71.483 71.817 8.0 19570703 20010430 208710 99999 SOPOCHNAYA KARGA RS 71.883 82.7 5.9 19550306 20170923 208910 99999 HATANGA RS 71.983 102.46700000000001 33.0 19370102 20170923 209210 99999 BOGUS SOVIET FR 49.783 4.633 156.1 19850301 20030819 209400 99999 VAIGACH RS 70.4 58.8 11.0 19480101 19510805 209430 99999 CAPE MENSHIKOVA RS 70.717 57.617 14.0 19550305 19950307 209460 99999 IM E K FEDOROVA RS 70.45 59.083 12.2 19320101 20170923 209630 99999 GYDA RS 70.883 78.5 8.0 19480101 20051205 209640 99999 TADIBE-YAKHA RS 70.35 74.133 4.0 19550306 19950627 209670 99999 SEYAHA RS 70.167 72.517 17.8 19570702 20170923 209700 99999 MUNGUY RS 70.433 83.75 3.0 19590902 19591031 209730 99999 KRESTI RS 70.85 89.883 29.0 19550306 20010430 209780 99999 KARAUL RS 70.083 83.167 28.7 19550305 20170923 209820 99999 VOLOCHANKA RS 70.967 94.5 40.0 19370101 20170923 210060 99999 BOGUS SOVIET RS 19841119 20011126 210080 99999 BOGUS SOVIET RS 19841117 20050725 210100 99999 BOGUS SOVIET RS 19841117 20050819 212120 99999 20020703 20030707 213010 99999 ANDREYA ISLAND RS 76.8 110.833 6.0 19550306 19990618 213530 99999 MYS MELVILLE RS 77.117 156.583 19550305 19570630 213580 99999 ZOHOVA ISLAND RS 76.15 152.833 14.0 19550601 19960101 214050 99999 B. PRONCHISHCHEVOY RS 75.533 113.51700000000001 6.0 19550305 20020111 214320 99999 OSTROV KOTEL'NYJ RS 76.0 137.86700000000002 8.0 19361231 20170923 214350 99999 TEMPA BAY RS 75.75 137.583 10.0 19550305 19750731 215020 99999 BOGUS SOVIET RS 19860306 20020531 215040 99999 OSTROV PREOBRAZENIJ RS 74.667 112.93299999999999 57.0 19550305 20020224 215350 99999 SANNIKOVA RS 74.667 138.9 14.6 19550305 20170923 215370 99999 STOLBOVOY ISLAND RS 74.117 135.86700000000002 20.0 19810101 20020601 215410 99999 ZEMLYA BUNGE RS 74.883 142.2 10.0 19550305 20031012 215430 99999 NOVAYA SIBIR RS 74.95 147.86700000000002 24.0 19550305 19581231 216080 99999 ANABAR RS 73.217 113.5 13.3 19880501 20170923 216110 99999 CAPE TERPAY-TUMUS RS 73.567 118.75 10.0 19550326 20020618 216130 99999 DUNWAY ISLAND RS 73.9 124.6 9.0 19550305 19941008 216270 99999 ANTIPINSKIY RS 73.167 128.833 5.0 19611103 20050829 216360 99999 KIGILYAH RS 73.336 139.86700000000002 24.7 19550305 20170923 216390 99999 DRIFTER 21639 20140626 20161020 216470 99999 MYS SHALAUROVA RS 73.183 143.233 22.0 19340701 20030117 217010 99999 URYUNG-KHAYA RS 72.817 113.26700000000001 25.0 19690623 20040130 217110 99999 UST' OLENEK RS 73.0 119.867 14.9 19550305 20170923 217120 99999 STANNAKH-KHOCHO RS 72.967 121.667 23.0 19810101 19940721 217150 99999 TAJMYRLYR RS 72.6 121.85 22.0 19550305 20020904 217210 99999 IM YU A HABAROVA RS 72.4 126.35 19.6 19550305 20170923 217270 99999 TIT-ARY RS 71.917 127.01700000000001 20.0 19790701 19811225 217280 99999 BYKOVSKI RS 71.933 129.083 7.0 19590802 19900131 217290 99999 APPROXIMATE LOCALE RS 72.167 132.667 0.0 19751001 19850212 217330 99999 CAPE SVATOJ RS 72.75 140.75 6.0 19550305 19880215 217390 99999 CAPE KURTAKH RS 72.167 139.5 8.0 19730701 19800523 217480 99999 CHIKHACHEVA RS 72.3 146.817 8.0 19590901 19631023 217490 99999 OZERO MOGOTOYEVO RS 72.233 149.083 23.0 19690202 19901225 218020 99999 SASKYLAH RS 71.967 114.083 18.0 19570702 20170923 218130 99999 TYUMYATI RS 71.917 123.56700000000001 26.6 19590101 20170923 218200 99999 BOGUS SOVIET RS 19831201 20020805 218210 99999 BYKOV (MYS) RS 72.0 129.11700000000002 16.5 19830202 20170923 218230 99999 YAKUTSK RS UEEE 62.093 129.77100000000002 99.1 19550305 20170923 218240 99999 TIKSI RS UE38 71.69800000000001 128.903 9.1 19331205 20170923 218241 99999 POLYARNY RS 66.4 112.01700000000001 522.0 20040713 20120811 218250 99999 MOSTAKH ISLAND RS 71.533 129.917 3.0 19361231 20060604 218260 99999 OZERO KHARGY (LAKE) RS 71.5 132.667 18.0 19811101 20050903 218340 99999 KUOGASTAKH RS 71.383 135.167 12.0 19550315 20031014 218350 99999 UEDEY RS 71.5 136.583 11.0 19690101 19940609 218490 99999 RUSSKOYE UST'YE RS 71.017 149.0 6.0 19550305 20071010 218530 99999 TABOR RS 71.267 150.2 3.0 19590901 19940609 219050 99999 DRIFTER 21905 / ARGOS 78801 20130410 20160510 219060 99999 DRIFTER 21906 / ARGOS 78800 20140701 20160620 219080 99999 DZALINDA RS 70.133 113.96700000000001 62.0 19590101 20170923 219210 99999 KJUSJUR RS 70.683 127.4 33.0 19480101 20170923 219230 99999 KHAYYR RS 70.817 133.5 91.0 19810101 20030212 219310 99999 JUBILEJNAJA RS 70.767 136.217 24.0 19480102 20170923 219320 99999 UST YANSK RS 70.9 136.333 10.0 19550305 19570622 219330 99999 DRIFTER 21933 / ARGOS 63738 20130415 20150607 219370 99999 KUJGA RS 70.033 135.667 92.2 20120829 20170923 219460 99999 CHOKURDAH RS 70.617 147.88299999999998 61.0 19550305 20170923 219550 99999 ALAZEJA RIVER RS 70.55 154.25 2.0 19550305 19940926 219610 99999 DRIFTER 21961 / ARGOS 90122 20160216 20170923 219650 99999 OSTROV CHETYREHSTOLBOVOY RS 70.633 162.483 41.0 19350206 19950909 219780 99999 VAL' KARKAY RS 70.083 170.933 5.8 19480101 20170923 219790 99999 MORPORT RS 70.05 171.417 2.0 19550415 19570605 219800 99999 WRANGEL RS 70.917 179.667 83.0 19570701 19631231 219820 99999 OSTROV VRANGELYA RS 70.983 -178.65 4.0 19341101 20170923 219830 99999 ZVEZDNYY RS 70.95 -179.6 30.0 19590901 20011103 220030 99999 VAIDA GUBA (BAY) RS 69.933 31.983 8.0 19590101 20170923 220040 99999 NIKEL RS 69.4 30.233 92.0 19530705 20170923 220060 99999 PECHENGA RS 69.55 31.116999999999997 31.0 19590101 20030704 220070 99999 HEVOSKOSKI RS 69.133 29.267 101.0 19540102 19541231 220090 99999 PEREVALYAUR RS 69.267 31.767 302.0 19590101 19980725 220120 99999 TSYP-NAVOLOK RS 69.733 33.1 11.0 19590101 20160604 220140 99999 BOLSHAYA-ZAPADNAYA RS 69.417 32.167 117.0 19590101 20000316 220180 99999 URA-GUBA (BAY) RS 69.283 32.8 27.0 19530908 20050821 220190 99999 SEVEROMORSK RS 69.083 33.45 20.0 19320101 20010430 220200 99999 VOSTOCHNIY KILDIN ? RS 69.317 34.2 -999.0 19831004 20030808 220280 99999 TERIBERKA RS 69.2 35.117 30.0 19590101 20170923 220370 99999 DALNE-ZELENETSKAYA RS 69.117 36.067 42.0 19531001 19891217 220950 99999 KOLGUYEV ISLAND RS 69.083 49.25 24.0 19361231 20010429 221000 99999 VERKHOV'E R LOTTA RS 68.533 28.916999999999998 115.0 19600220 20170923 221010 99999 YANISKOSKI RS 68.967 28.783 101.0 19590101 20160614 221050 99999 NIVANKYUL RS 68.35 30.733 90.0 19590101 20160614 221060 99999 PADUN RS 68.6 31.8 63.0 19590101 20170923 221120 99999 KOLA RS 68.883 33.016999999999996 7.0 19590101 19840610 221130 99999 MURMANSK RS ULMM 68.782 32.751 81.1 19361231 20170923 221140 99999 LOPARSKAYA RS 68.633 33.2 112.0 19590101 20010430 221190 99999 PULOZERO RS 68.35 33.3 143.0 19590101 20011028 221230 99999 GOLITSINO RS 69.067 35.733000000000004 15.0 19730101 20040914 221260 99999 VORONYE RS 68.45 35.367 19590101 19631231 221270 99999 LOVOZERO RS 68.0 35.033 162.0 19471002 20170923 221330 99999 OSTROV HATLOV RS 68.817 37.333 64.0 19590101 20141112 221400 99999 SVYATOJ NOS RS 68.15 39.766999999999996 12.0 19590802 20170923 221440 99999 CHERNYY (CAPE) RS 68.4 38.667 10.0 19860701 20020714 221450 99999 CAPE CHERNIY RS 68.367 38.65 10.0 19550101 19861008 221490 99999 KACHALOVKA RS 67.983 39.817 149.0 19320101 19891130 221650 99999 KANIN NOS RS 68.65 43.3 49.0 19460106 20170923 221930 99999 BUGRINO RS 68.783 49.3 7.0 19590101 20170923 222040 99999 KOVDOR RS 67.567 30.4 247.0 19590101 20010902 222050 99999 ENA RS 67.6 31.166999999999998 160.0 19590101 20051127 222120 99999 MONCHEGORSK RS 67.933 32.917 132.0 19590101 20170923 222130 99999 APATITY RS 67.55 33.35 134.0 19810101 20170923 222140 99999 ZASHEYEK RS 67.417 32.55 151.0 19730101 20020922 222160 99999 APATITY RS 67.567 33.367 136.0 19320101 20020322 222170 99999 KANDALAKSHA RS 67.15 32.35 25.0 19320101 20170923 222190 99999 KIROVSK RS 67.617 33.667 1093.0 19861001 19980101 222270 99999 KANOZERO (LAKE) RS 67.117 34.083 584.0 19590101 19891120 222320 99999 KOLMYABR RS 67.7 37.117 244.0 19590101 20040925 222350 99999 KRASNOSCEL'E RS 67.35 37.05 156.0 19461101 20170923 222490 99999 KANEVKA RS 67.133 39.667 151.0 19550101 20170923 222590 99999 TERSKO-ORLOVSKAJA RS 67.217 41.333 72.0 19590101 20011008 222690 99999 MYS KONUSIN RS 67.15 43.9 13.0 19590101 20010728 222710 99999 SHOJNA RS 67.883 44.15 18.0 19590101 20170923 222820 99999 MYS MIKULKIN RS 67.8 46.667 6.0 19530216 20170923 222920 99999 INDIGA RS 67.683 48.683 4.0 19590101 20170923 223010 99999 ALAKURTTI RS 66.95 30.3 152.0 19600102 19960522 223020 99999 NYAM (LAKE) RS 66.967 31.467 152.0 19810101 20010922 223050 99999 ZASHEEK RS 66.25 31.116999999999997 119.0 19630613 20160614 223080 99999 NIISKA RS 66.267 31.116999999999997 1.0 19590101 19610724 223120 99999 KOVDA RS 66.7 32.883 18.0 19460307 20170923 223180 99999 LOUHI RS 66.067 33.0 94.0 19590101 20030630 223240 99999 UMBA RS 66.683 34.35 40.0 19590101 20170923 223330 99999 SLYUDYANKA RS 66.717 38.0 150.0 19590101 20041003 223340 99999 KASHKARANTSY RS 66.333 36.016999999999996 3.5 19320101 20170923 223390 99999 CHAVANGA (STREAM) RS 66.1 37.817 7.0 19590101 20011029 223490 99999 PJALICA RS 66.183 39.533 9.0 19370101 20170923 223550 99999 SOSNOVETS ISLAND RS 66.483 40.683 16.0 19590101 20010619 223610 99999 MORZHOVEC RS 66.717 42.483000000000004 16.2 19590102 20170923 223650 99999 ABRAMOVSKIJ MAJAK RS 66.383 43.25 21.0 19590101 20170923 223750 99999 NES' RS 66.65 44.683 14.0 19590101 20020715 223760 99999 VIZHAS RS 66.633 45.9 12.0 19590101 19760105 223830 99999 NIZHNYAYA PESHA RS 66.733 47.717 13.5 19590101 20170923 224030 99999 KESTEN'GA RS 65.883 31.833000000000002 129.0 19590101 20010908 224080 99999 KALEVALA RS 65.217 31.166999999999998 120.0 19460901 20170923 224130 99999 ENGOZERO RS 65.783 33.933 80.0 19730103 20170923 224160 99999 PILDOZERO RS 65.667 33.483000000000004 79.9 19590101 19630209 224180 99999 PANOZERO (LAKE) RS 64.967 32.917 91.0 19730103 20040617 224220 99999 GRIDINO RS 65.9 34.766999999999996 12.0 19460102 20070425 224290 99999 SOLOVKI RS 65.033 35.7 7.4 19590101 20170923 224380 99999 ZIZGIN RS 65.2 36.817 17.0 19550701 20170923 224460 99999 ZIMNEGORSKIJ MAJAK RS 65.467 39.733000000000004 77.0 19590101 20170923 224520 99999 INCY RS 65.967 40.717 5.0 19590101 20021213 224560 99999 KEPINO RS 65.383 41.883 68.6 19590101 20170923 224710 99999 MEZEN' RS 65.867 44.217 19.0 19320101 20170923 224810 99999 MOSEEVO RS 65.767 46.2 42.2 19590101 20170923 224990 99999 BARKOVSKAJA RS 65.233 49.583 155.0 19590101 19930717 225110 99999 JUSKOZERO RS 64.75 32.117 97.0 19570703 19931019 225180 99999 RUGOZERO RS 64.083 32.783 159.0 19590101 20020608 225200 99999 KEM' PORT RS 64.983 34.8 8.0 20061121 20170923 225220 99999 KEM' RS 64.95 34.65 8.0 19320101 20060628 225250 99999 RAZNAVOLOK RS 64.567 34.917 9.0 19480306 20170923 225260 99999 JUKOVO RS 64.367 35.667 4.0 19590101 19620517 225290 99999 KOLEZMA RS 64.233 35.883 3.0 19590101 20170923 225350 99999 LJAMCA RS 64.433 37.083 8.0 19590101 20030115 225410 99999 UNSKIJ MAJAK RS 64.833 38.4 5.0 19590101 20170923 225460 99999 SEVERODVINSK RS 64.55 39.766999999999996 7.9 19590101 20170923 225480 99999 ... RS 64.283 38.7 19621014 19631216 225500 99999 TALAGI RS ULAA 64.6 40.717 18.9 19310104 20170923 225510 99999 MUD'JUG RS 64.85 40.283 3.0 19590101 20170923 225550 99999 VAS'KOVO RS 64.533 40.5 11.0 19630406 20030910 225590 99999 HOLMOGORY RS 64.217 41.667 12.0 19590101 20170917 225630 99999 PINEGA RS 64.7 43.383 31.0 19460102 20170923 225730 99999 LESUKONSKOE RS 64.9 45.766999999999996 71.0 19590101 20170923 225830 99999 KOJNAS RS 64.75 47.65 64.0 19320101 20170923 226020 99999 REBOLY RS 63.833 30.816999999999997 182.0 19460201 20170923 226190 99999 PADANY RS 63.266999999999996 33.417 128.0 19590101 20170923 226210 99999 SEGEZA RS 63.766999999999996 34.283 112.0 19460109 20170923 226220 99999 VORENZA RS 63.917 35.266999999999996 91.0 19590101 20050823 226290 99999 19310106 19360430 226380 99999 KALGACHIHA RS 63.333 36.717 182.9 19590101 20141231 226410 99999 ONEGA RS 63.9 38.117 13.0 19460307 20170923 226480 99999 TURCASOVO RS 63.117 39.233000000000004 34.0 19590101 20170923 226510 99999 KHOLMOGORSKAYA RS 63.8 40.667 85.0 19590101 20050726 226560 99999 EMECK RS 63.483000000000004 41.8 18.0 19590101 20170923 226570 99999 EMCA RS 63.067 40.35 108.0 19460101 19881008 226710 99999 KARPOGORY RS 64.017 44.45 65.1 19590101 20170923 226760 99999 SURA RS 63.583 45.633 62.0 19361231 20170923 226860 99999 VENDINGA RS 63.45 47.917 80.0 19590101 20170923 226950 99999 KOSLAN RS 63.45 48.9 158.0 19590101 20170923 227070 99999 VYARTSILYA RS 62.183 30.683000000000003 102.0 19010101 20010814 227100 99999 KUDAMGUBA RS 62.867 32.4 173.0 19630821 19910522 227120 99999 SOVDDVERO RS 62.717 33.25 167.0 19590101 19621219 227170 99999 SUOYARVI RS 62.1 32.383 156.0 19590101 20170923 227210 99999 MEDVEZEGORSK RS 62.917 34.433 81.0 19480101 20170923 227230 99999 DANILOVO RS 62.967 35.7 139.0 19590101 19951222 227250 99999 SHUNGA RS 62.6 34.95 48.0 19590101 19880614 227270 99999 KONDOPOGA RS 62.167 34.3 38.0 19590101 20170923 227380 99999 KUGONAVOLOK RS 62.233000000000004 36.883 147.0 19590101 20020920 227490 99999 KONEVO RS 62.133 39.3 101.3 19590101 20170923 227620 99999 DVINSKIJ BEREZNIK RS 62.817 42.783 34.0 19590101 20170921 227650 99999 19361231 19371229 227680 99999 SHENKURSK RS 62.1 42.9 45.0 19320101 20170923 227780 99999 VERHNJAJA TOJMA RS 62.233000000000004 45.016999999999996 58.0 19590101 20170923 227810 99999 OKULOVSKAYA RS 62.967 46.583 95.0 19590101 20021107 227840 99999 KERGA RS 62.65 46.033 130.0 19590101 19600520 227930 99999 LOPTYUGA RS 62.9 49.633 180.0 19590101 19941002 227980 99999 JARENSK RS 62.167 49.117 92.0 19480101 20170923 228020 99999 SORTAVALA RS 61.717 30.717 19.0 19170101 20170923 228050 99999 VALAAM RS 61.367 30.883000000000003 16.0 19590101 20170923 228060 99999 MANTSINSARI ISLAND RS 61.333 31.6 24.0 19590101 20081205 228070 99999 PRIOZERSK RS 61.05 30.133000000000003 9.0 19590101 19901126 228090 99999 ORITSEL KYA RS 61.283 31.633000000000003 1.0 19590101 19630331 228140 99999 PALALAKHTA RS 61.633 32.417 93.0 19590101 19891218 228160 99999 PRIAZA RS 61.683 33.617 133.0 19590101 19960902 228170 99999 VIDLITSA RS 61.183 32.433 13.0 19590101 20050727 228200 99999 PETROZAVODSK RS ULPB 61.817 34.266999999999996 110.0 19320101 20170923 228230 99999 KLIMENITSY RS 61.85 35.2 40.0 19590101 19940724 228240 99999 LADVA-VETKA RS 61.35 34.45 57.0 19590101 20050812 228260 99999 BESOV NOS (CAPE) RS 61.667 36.067 43.0 19590101 19891111 228290 99999 VOSNESEN'E RS 61.016999999999996 35.483000000000004 41.0 19590101 20160614 228300 99999 TEREBOVSKAYA RS 61.783 36.033 34.0 19590101 20030129 228310 99999 PUDOZ RS 61.8 36.583 44.0 19471002 20170923 228330 99999 KOLODOZERO RS 61.783 37.75 116.0 19590101 19960216 228350 99999 MIRONOVA RS 61.45 36.9 152.0 19730520 20051011 228370 99999 VYTEGRA RS 61.016999999999996 36.45 56.0 19320112 20170923 228450 99999 KARGOPOL' RS 61.5 38.933 126.0 19590101 20170923 228540 99999 NJANDOMA RS 61.667 40.183 233.0 19361231 20170923 228670 99999 VEL'SK RS 61.083 42.067 91.0 19320101 20170923 228690 99999 SHANGALY RS 61.133 43.35 117.2 19590101 20170923 228760 99999 KRASNOBORSK RS 61.55 45.933 59.6 19590101 20170923 228830 99999 SLOBODICHIKOVO RS 61.75 48.25 88.0 19590101 19841007 228860 99999 SEVERNY RS 61.583 47.467 19630627 19631219 228870 99999 KOTLAS RS ULKK 61.233000000000004 46.717 56.0 19480104 20170923 228890 99999 VILEGODSKOE RS 61.117 48.0 69.8 19900101 20170923 228910 99999 SOSNOVO RS 60.55 30.316999999999997 70.0 19590101 20160614 228920 99999 VYBORG RS 60.717 28.733 13.0 19060101 20170923 228940 99999 BOLSHOY BOR RS 60.516999999999996 28.25 0.0 19590101 19631124 228960 99999 ROSCINO RS 60.217 29.717 96.0 19590101 19940916 228970 99999 OZERKI FS 60.2 29.0 11.0 19590101 20160614 229050 99999 RANTA-KYULYA RS 60.567 30.666999999999998 6.0 19591018 19631009 229060 99999 SOSNOVO RS 60.516999999999996 30.483 68.0 19600510 19901006 229070 99999 TOKSOVO RS 60.15 30.517 115.0 19590911 20050115 229080 99999 OSINOVETS RS 60.167 31.066999999999997 8.0 19590101 20020622 229120 99999 OLONEC RS 60.983000000000004 32.983000000000004 12.0 19590101 20170923 229130 99999 LODEJNOE POLE RS 60.717 33.55 23.0 19590101 20170923 229140 99999 STOROZHNO RS 60.516999999999996 32.633 8.0 19730103 19891109 229150 99999 SVIRICA RS 60.467 32.9 8.0 19460308 19970511 229170 99999 NOVAJA LADOGA RS 60.117 32.317 9.0 19590101 20170923 229250 99999 VINNICY RS 60.633 34.783 111.0 19590101 20170923 229320 99999 NOVO-PETROVSKOYE RS 60.833 37.083 145.0 19590101 19601224 229390 99999 BELOZERSK RS 60.016999999999996 37.75 131.0 19320101 20170923 229440 99999 CHAROZERO RS 60.467 38.65 158.0 19590101 19960404 229510 99999 KONOSHA RS 60.983000000000004 40.25 226.5 19590101 20170923 229540 99999 VOZEGA RS 60.467 40.2 202.0 19480101 20170923 229740 99999 NYUKSENITSA RS 60.417 44.217 136.5 19590101 20170923 229810 99999 VELIKIJ USTJUG RS 60.766999999999996 46.25 99.0 19320101 20170923 229830 99999 LAL' SK RS 60.7 47.6 84.1 20120328 20170923 229880 99999 PODOSINOVETS RS 60.283 47.083 134.0 19590102 19631226 229960 99999 OB'JACEVO RS 60.367 49.65 152.0 19590101 20170917 230200 99999 JUGORSKI STRAIT RS 69.75 60.583 13.0 19810101 20020607 230210 99999 YUGORSKIY SHAR RS 69.817 60.75 13.0 19320101 19840816 230220 99999 AMADERMA RS ULDD 69.75 61.7 49.0 19480101 20170923 230240 99999 CAPE BELY RS 69.483 60.333 6.0 19590405 20050821 230290 99999 UST-KARA RS 69.25 64.983 4.0 19570712 20010430 230320 99999 MARESALE RS 69.717 66.8 25.0 19320101 20170923 230580 99999 ANTIPAJUTA RS 69.083 76.85 3.0 19600211 20170923 230660 99999 UST PORT /UST ENISEISK RS 69.65 84.4 27.1 19320101 19570629 230740 99999 DUDINKA RS 69.4 86.167 19.0 19480101 20141221 230770 99999 NORILSK RS 69.333 87.95 19590101 19760104 230780 99999 NORIL'SK RS 69.333 88.25 64.0 19751001 20170923 231030 99999 HODOVARIHA RS 68.933 53.766999999999996 11.0 19590101 20010429 231040 99999 SENGEJSKI STRAIT RS 68.483 51.25 5.0 19590101 20021213 231050 99999 TOBSEDA RS 68.6 52.333 6.0 19590101 20050202 231090 99999 NDSOVAJA RS 68.25 54.516999999999996 24.0 19590101 20010717 231120 99999 VARANDEY RS 68.8 57.983000000000004 6.6 19590102 20170923 231140 99999 MYS KONSTANTINOVSKIJ RS 68.533 55.5 6.7 19590101 20170923 231210 99999 KOROTAJIHA RS 68.85 61.183 10.0 19590102 19950723 231460 99999 CAPE KAMENNYJ RS 68.5 73.583 5.0 19550305 19940828 231740 99999 POTAPOVO RS 68.667 86.25 41.0 19570830 20170923 231790 99999 SNEZHNOGORSK RS 68.1 87.76700000000001 93.8 19730101 20170923 232050 99999 NAR'JAN-MAR RS 67.633 53.033 12.0 19320101 20170917 232070 99999 KOTKINO RS 67.017 51.133 18.0 19590101 20050112 232140 99999 LAYATO (LAKE) RS 67.567 56.133 137.0 19830701 19960330 232150 99999 HOREJ-VER RS 67.433 58.033 71.0 19590101 20080612 232190 99999 HOSEDA-HARD RS 67.033 59.4 83.0 19480101 20160417 232200 99999 ZELEZNODOROZNY RS 67.833 64.75 116.0 19590801 20050223 232201 99999 SALEKHARD RS USDD 66.59100000000001 66.611 66.4 20040706 20170615 232202 99999 RADUZHNY RS 62.15 77.3 78.0 20040706 20050818 232203 99999 KOGALYM RS 62.183 74.533 69.0 20040706 20120403 232204 99999 ROSCHINO RS USTR 57.19 65.324 115.2 20040706 20170923 232205 99999 UKHTA RS UUYH 63.55 53.817 149.0 20040706 20130719 232210 99999 USINSK RS UUYS 66.0 57.367 80.0 20040803 20130719 232215 99999 MAGNITOGORSK RS USCM 53.393 58.756 435.9 20090601 20170923 232260 99999 VORKUTA RS 67.483 64.017 172.0 19530216 20170923 232420 99999 NOVYJ PORT RS 67.683 72.883 12.0 19320101 20170923 232560 99999 TAZOVSKIJ RS 67.467 78.733 8.0 19480101 20170923 232740 99999 IGARKA RS 67.467 86.56700000000001 28.0 19480101 20170923 233050 99999 OKUNEV NOS RS 66.25 52.55 22.0 19480304 20170923 233110 99999 MISVAN RS 66.95 55.766999999999996 61.0 19600101 20010429 233160 99999 ADZVA-VOM RS 66.6 59.283 67.0 19590101 19891004 233220 99999 SIVOMASKINSKI RS 66.667 62.516999999999996 96.0 19590101 19880805 233240 99999 PETRUN' RS 66.433 60.766999999999996 62.0 19590101 20170923 233300 99999 SALEHARD RS 66.533 66.667 16.0 19320101 20170919 233310 99999 RA-IZ RS 66.9 65.667 890.0 19530216 20030821 233320 99999 SANGOMNOY RS 66.75 67.75 31.0 19590102 20030624 233330 99999 JAMBUR RS 66.8 68.883 32.0 19560101 20030308 233380 99999 POLUY RS 66.267 67.867 38.0 19690110 20020906 233390 99999 POLUJ RS 66.033 68.683 35.9 19740517 20170923 233410 99999 JAR-SALE RS 66.833 70.833 8.0 19570702 19980328 233450 99999 NYDA RS 66.633 72.933 7.0 19570701 20170923 233580 99999 NOVYJ URENGOJ RS 66.1 76.783 61.9 20120425 20170923 233630 99999 SDOVETSKAYA RECHKA RS 66.817 83.667 47.0 19630802 19631229 233650 99999 SIDOROVSK RS 66.6 82.5 34.0 19590103 19941231 233680 99999 MUNGUV RS 66.25 82.167 22.0 19560103 19630118 233750 99999 KUREJKA RIVER RS 66.417 87.2 27.0 19590101 20070715 233760 99999 SVETLOGORSK RS 66.933 88.367 100.8 20120328 20170923 233830 99999 AGATA RS 66.883 93.46700000000001 278.0 19570702 20170923 234050 99999 UST'-CIL'MA RS 65.433 52.266999999999996 68.0 19320101 20170923 234110 99999 MUNTNIY MATERIK RS 65.95 55.15 72.0 19611104 20031011 234120 99999 UST'-USA RS 65.967 56.917 78.0 19480104 20170923 234160 99999 KOSJU RIVER RS 65.633 59.15 89.0 19590101 20010722 234180 99999 PECHORA RS 65.133 57.133 53.2 19570803 20170923 234230 99999 UNSILGORT RS 65.85 65.0 40.0 19590101 20021114 234260 99999 MUZHI RS 65.483 64.717 19.0 19530216 20170923 234310 99999 PITLYAR RS 65.833 65.933 16.5 19530216 20170923 234430 99999 PANGODY RS 65.833 74.5 51.9 19870601 20170923 234450 99999 NADYM RS USMM 65.467 72.667 19.0 19560101 20170923 234530 99999 URENGOJ RS 65.95 78.4 23.7 19550701 20170923 234630 99999 YANOV-STAN RS 65.983 84.32799999999999 40.0 19570710 20170703 234650 99999 KRASNOSEL' KUPSK RS 65.7 82.45 24.7 19631002 20170923 234710 99999 NIZHNEVARTOVSK RS USNN 60.949 76.484 53.9 19690101 20170923 234720 99999 TURUHANSK RS 65.783 87.98899999999999 38.0 19320106 20170923 234750 99999 SUKHAYA TUNGUSKA RS 65.167 87.917 27.0 19690101 19840623 234840 99999 BOLSOJ POROG RS 65.633 90.01700000000001 65.0 19590101 20061023 234990 99999 TEMBENCHI RS 64.933 98.867 203.0 19570722 20110308 235010 99999 LEVKINSKAJA RS 64.783 51.067 167.0 19590101 19961001 235030 99999 IZHMA RS 65.033 53.967 52.0 19590101 20170923 235040 99999 MICHMAICHMON RS 64.4 51.016999999999996 250.0 19630615 19631223 235090 99999 KEDVA RIVER RS 64.233 53.5 60.0 19590101 20041117 235140 99999 IRAEL RS 64.45 55.133 157.0 19590101 20011020 235160 99999 IJID-PATOK RS 64.333 58.217 84.0 19630501 19940323 235180 99999 UST'-SUGOR RS 64.267 57.617 75.0 19480130 20170923 235190 99999 VERHNI SUGOR RS 64.033 59.5 290.0 19590101 20051008 235270 99999 SARAN-PAUL' RS 64.283 60.883 29.0 19530216 20170923 235310 99999 SHIZHIMGORT RS 64.883 65.583 24.0 19750716 20010710 235410 99999 HEJGIJAHA RIVER RS 64.75 70.967 63.0 19870601 20020224 235520 99999 TARKO-SALE RS 64.917 77.817 27.0 19570701 20170923 235550 99999 19740804 19741006 235580 99999 KHARAMPUR RS 64.283 78.15 30.0 19730101 20021130 235780 99999 VERESHCHAGINO RS 64.233 87.56700000000001 30.0 19570715 20170923 235850 99999 KOCHUNDEK RS 66.383 93.117 91.7 19570701 19741001 235890 99999 TUTONCHANY RS 64.2 93.78299999999999 105.0 19690503 20170923 235920 99999 BOGUS SOVIET RS 19881007 20020812 236040 99999 PEGISHDOR RS 63.433 50.55 137.0 19630502 20031002 236060 99999 UHTA RS 63.55 53.817 137.0 19530216 20170923 236080 99999 MESJU RS 63.233000000000004 52.9 180.0 19590101 20010830 236090 99999 IZVAJIL RS 63.05 54.467 112.0 19590101 19970506 236110 99999 DUTOVO-IN-KOMI RS 63.783 56.683 92.0 19590101 19820409 236120 99999 VUKTYL RS 63.833 57.417 97.0 19830401 20040903 236250 99999 SOSVA RS 63.65 62.1 28.0 19530220 20170923 236280 99999 SARTINYA RS 63.367 63.067 50.0 19730101 20010706 236290 99999 IGRIM RS 63.2 64.483 28.0 19560101 20030223 236310 99999 BEREZOVO RS 63.933 65.05 32.0 19320101 20170923 236320 99999 KISLOR WEST RS 63.717 66.7 61.0 19530216 20020604 236350 99999 YUIL' SK RS 63.667 69.6 85.8 19690101 20170923 236440 99999 NUMTO RS 63.5 71.333 109.0 19590101 19910720 236560 99999 HALESOVAYA RS 63.383 78.317 67.1 19600205 20170923 236570 99999 NOYABR' SK RS 63.117 75.283 131.0 20120425 20170923 236620 99999 TOL'KA RS 63.983000000000004 82.083 33.0 19590101 20170923 236660 99999 BOGUS SOVIET RS 19850801 20011004 236780 99999 VERHNEIMBATSK RS 63.15 87.95 46.0 19320107 20170923 236910 99999 UCAMI RS 63.833 96.65 105.0 19570710 20020807 236990 99999 KERBO RS 62.717 101.117 230.4 19570710 20170923 237010 99999 VESLJANA RS 62.983000000000004 50.9 103.0 19530216 20170923 237040 99999 ZELEZNODOROZNY RS 62.617 50.917 87.0 19590101 20021016 237070 99999 UST-VYM RS 62.217 50.417 80.0 19590101 19601224 237080 99999 LUN' RS 62.233000000000004 52.483000000000004 120.0 19590101 20170923 237090 99999 POMOZDINO RS 62.2 54.2 154.0 19590101 20010429 237110 99999 TROICKO-PECHERSKOE RS 62.7 56.2 139.0 19320101 20170923 237140 99999 ZELENETS-IN-KOMI RS 62.433 55.3 214.0 19590101 19751221 237230 99999 RUZITGORT RS 62.867 64.967 45.0 19800402 19891004 237240 99999 NJAKSIMVOL' RS 62.433 60.867 51.0 19530216 20170923 237290 99999 TUZKIN-KURT RS 62.167 64.0 85.0 19530216 19700406 237340 99999 OKTJABR'SKOE RS 62.45 66.05 72.0 19480101 20170923 237370 99999 MYS SOSNOVIY RS 62.05 66.4 25.0 19530216 20030606 237410 99999 NIZHNESORTYMSK RS 62.75 71.667 85.5 20120425 20170923 237450 99999 KOCEVJE RS 62.467 73.117 80.0 19730101 19940927 237480 99999 KOGALYM RS USRK 62.19 74.53399999999999 67.1 19881201 20170923 237580 99999 RADUZHNY RS USNR 62.158 77.313 78.0 20120425 20170923 237740 99999 KELLOG RS 62.483000000000004 86.28299999999999 60.4 19570710 20170923 237760 99999 BAHTA RS 62.467 89.01700000000001 57.1 19590101 20170923 237880 99999 KUZ' MOVKA RS 62.317 92.117 62.0 19570728 20170923 237890 99999 POLIGUS RS 61.967 94.667 140.0 19591201 20070112 238030 99999 UST'-KULOM RS UUYT 61.683 53.683 144.0 19480101 20170923 238040 99999 SYKTYVKAR RS UUYY 61.647 50.845 98.8 19320101 20170923 238045 99999 OSTAFYEVO RS UUMO 55.508 37.505 172.0 20090701 20170923 238060 99999 ... RS 61.417 54.333 19610301 19751012 238070 99999 VIZINGA RS 61.083 50.167 134.0 19590101 20010429 238080 99999 LOPIDINO-IN-KOMI RS 61.133 52.133 133.0 19590101 19890928 238120 99999 JAKSHA RS 61.833 56.867 131.0 19590101 20170923 238130 99999 UST-UNJA RS 61.8 57.917 174.0 19630601 19950703 238140 99999 BOGUS SOVIET RS 19870603 20030205 238150 99999 TULPAN RS 61.35 57.483000000000004 202.0 19620418 20011208 238170 99999 LAREVKA RS 61.2 56.667 152.0 19740821 20050224 238200 99999 PIONERSKI RS 61.2 62.95 63.0 19810101 20020513 238230 99999 VONEGAN RS 61.95 64.9 111.4 19700108 20170918 238270 99999 BURMANTOVO RS 61.283 60.483000000000004 127.0 19590101 20040812 238290 99999 SOVETSKI RS 61.333 63.483000000000004 116.0 19740820 19970208 238380 99999 BECAME STN 238281 RS 61.05 68.633 28.0 19690503 19890618 238410 99999 GORSKOVA RS 61.7 70.667 46.0 19570701 20000303 238430 99999 YERMAKOVO RS 61.8 74.083 48.0 19570701 19890523 238470 99999 SYTOMINO RS 61.3 71.3 33.4 19530216 20170923 238480 99999 NEFTEJUGANSK RS 61.1 72.75 27.0 19881201 19980423 238490 99999 SURGUT RS USRR 61.343999999999994 73.402 61.0 19320101 20170923 238520 99999 VAR-YEGAN RS 61.983000000000004 76.733 63.0 19730402 20020708 238590 99999 LOBCHINSKIYE RS 60.95 78.617 49.0 19590105 19861227 238620 99999 KORLIKI RS 61.533 82.417 71.0 19690331 20170923 238670 99999 LAR' YAK RS 61.1 80.25 57.0 19570710 20170923 238830 99999 PEREVALOCHNAYA RS 61.85 93.46700000000001 456.0 19560101 19591128 238840 99999 BOR RS 61.6 90.01700000000001 58.0 19530216 20170923 238900 99999 19870511 19870511 238910 99999 BAJKIT RS 61.667 96.367 262.0 19570701 20170923 239040 99999 KAZIM RS 60.333 51.55 126.0 19590801 20020216 239050 99999 UST-CERNAJA RS 60.5 52.667 152.0 19590101 20010915 239070 99999 KAZHIM RS 60.333 51.55 19580121 19581221 239090 99999 GAJNY RS 60.283 54.35 198.0 19530216 20170918 239120 99999 NYROB RS 60.7 56.75 173.0 19590101 20060221 239130 99999 PRIISKOVAYA RS 60.8 58.95 305.0 19740904 19891014 239140 99999 CHERDYN' RS 60.4 56.516999999999996 207.0 19320101 20170918 239150 99999 POLJUDOV KAMEN' RS 60.5 57.133 523.0 19590101 19910227 239160 99999 SOLVA RS 60.4 59.417 647.0 19600202 19630731 239190 99999 POKROVSK-URAL'SKIY RS 60.133 59.817 229.0 19620605 20000109 239210 99999 IVDEL' RS 60.683 60.45 95.0 19480101 20170923 239230 99999 SUPRA RS 60.867 64.9 81.0 19690331 20010719 239250 99999 SANTAL RS 60.4 63.133 68.0 19530216 20030304 239270 99999 SEVEROURALSK RS 60.15 60.016999999999996 186.0 19620617 20050829 239290 99999 SAIM RS 60.317 64.217 53.0 19530216 20170923 239330 99999 KHANTY MANSIYSK RS USHH 61.028 69.086 23.2 19320101 20170923 239331 99999 NIZHNEVARTOVSK RS 60.95 76.483 55.0 20040831 20120407 239390 99999 ALTAY RS 60.333 68.967 32.3 19530225 20170923 239460 99999 UGUT RS 60.5 74.017 48.1 19530216 20170923 239470 99999 SALYM RS 60.067 71.483 54.6 20120425 20170923 239530 99999 LOBCINSKIJE RS 60.95 78.783 56.0 19860601 20040610 239550 99999 ALEKSANDROVSKOE RS 60.433 77.867 48.0 19480104 20170923 239660 99999 VANZIL'-KYNAK RS 60.35 84.083 99.0 19530216 20170923 239730 99999 VOROGOVO RS 61.033 89.633 49.0 19530216 20170923 239750 99999 SYM RS 60.35 88.367 86.0 19530216 20170923 239820 99999 VEL'MO RS 61.016999999999996 93.43299999999999 121.8 19570710 20170923 239860 99999 SEVERO-ENISEJSK RS 60.367 93.03299999999999 511.0 19570722 20170923 239870 99999 JARCEVO RS 60.25 90.23299999999999 58.0 19480101 20170923 239920 99999 UST'-KAMO RS 60.717 97.51700000000001 178.0 19570731 20170923 240510 99999 SIKTJAH RS 69.917 125.167 38.0 19690101 19940218 240520 99999 SAHANJA RS 69.75 128.2 315.0 19690102 19940906 240650 99999 TOMTOR RS 69.5 132.2 99.0 19810101 19930707 240710 99999 JANGKI-IN-YAKUT RS 69.767 135.067 49.0 19690101 20020627 240760 99999 DEPUTATSKI RS 69.333 139.667 284.5 19730102 20170923 240950 99999 VORONTSOVO RS 69.583 147.533 16.0 19690101 19810122 241050 99999 ESSEJ RS 68.467 102.367 271.0 19570701 20040524 241250 99999 OLENEK RS 68.5 112.43299999999999 220.0 19620101 20170922 241360 99999 SUHANA RS 68.617 118.333 77.0 19590101 20170923 241430 99999 DZARDZAN RS 68.733 124.0 39.0 19480101 20170923 241520 99999 VERKHOYANSK RANGE RS 68.85 127.367 683.0 19590101 19631231 241660 99999 JANSK RS 68.45 134.8 103.0 19590102 20010624 241940 99999 BELAYA GORA RS 68.55 146.217 41.0 20120829 20170923 241970 99999 DRUZINA RS 68.233 145.3 152.0 19590101 19930226 242190 99999 YAROL'IN RS 67.133 108.53299999999999 235.8 19590101 20170923 242310 99999 MAAK-IN-YAKUT RS 67.733 116.167 70.0 19590101 20030801 242430 99999 MENKERE RS 67.967 123.4 4.0 19590101 19800108 242570 99999 SOBOPOL-IN-YAKUT RS 67.117 126.117 184.0 19590101 19790604 242610 99999 BATAGAJ-ALYTA RS 67.8 130.38299999999998 491.2 19590101 20170923 242630 99999 BATAGAJ RS 67.65 134.683 214.0 19591105 20170923 242660 99999 VERHOJANSK RS 67.567 133.4 138.0 19480101 20170923 242750 99999 MALIY TUOSTAKH RS 67.383 137.217 224.0 19590101 20020629 243220 99999 POLIARNY RS UERP 66.4 112.03 506.0 19760403 20170923 243290 99999 SHELAGONTSY RS 66.25 114.28299999999999 236.0 19570701 20170923 243380 99999 EJK RS 66.033 117.4 304.3 19730101 20170923 243430 99999 ZHIGANSK RS 66.767 123.4 92.0 19480103 20170923 243610 99999 EKYUCHCHYU RS 66.767 131.6 200.1 19590101 20170923 243710 99999 UST'-CHARKI RS 66.8 136.683 273.8 19590101 20170923 243820 99999 UST'-MOMA RS 66.45 143.233 196.0 19590101 20170923 243960 99999 ARGA RS 66.5 149.783 40.0 19590101 19931212 244210 99999 AJHAL RS 66.0 111.53299999999999 396.0 19730101 19890629 244490 99999 BESTYAHSKAYA ZVEROFERMA RS 65.3 127.117 73.3 19590101 20170923 244620 99999 SEBYAN-KYUEL' RS 65.3 130.0 777.2 20120829 20170923 244770 99999 IEMA RS 65.3 135.8 674.9 19590101 20170923 244880 99999 BEREZKIN RS 65.25 143.167 503.0 19600101 19791208 245070 99999 TURA RS 64.267 100.23299999999999 168.0 19370101 20170923 245250 99999 HABARDINO RS 64.6 112.51700000000001 251.2 19730518 20170923 245380 99999 CHUMPURUK RS 64.233 116.917 139.1 19590101 20170923 245440 99999 UGULYAT RS 64.55 120.5 146.0 19590101 20021229 245570 99999 SOGO-HAYA RS 64.283 126.45 85.0 19590101 20170923 245590 99999 BOGUS SOVIET RS 19840121 20020324 245610 99999 SYURYUN-KYUYEL' RS 65.0 130.683 737.0 19570702 19880627 245670 99999 BOGUS SOVIET RS 19740610 19860727 245840 99999 RAZVEDCHIK RS 64.5 140.667 1013.0 19590101 19700607 245850 99999 NERA RS 64.55 144.4 518.5 19590101 20170923 245880 99999 YURTY RS 64.05 141.88299999999998 589.7 19620625 20170923 245890 99999 SAYYLYK RS 64.367 143.083 676.0 19590101 19630124 245980 99999 DARPIR RS 64.167 148.033 841.0 19590101 19950920 246060 99999 KISLOKAN RS 63.583 103.96700000000001 211.0 19560101 20170923 246290 99999 SYULDYUKAR RS 63.217 113.633 163.0 19570701 20050829 246390 99999 NJURBA RS 63.283 118.333 119.0 19340903 20170923 246410 99999 VILJUJSK RS 63.766999999999996 121.617 111.0 19370101 20170923 246430 99999 HATYAYK-HOMO RS 63.95 124.833 76.5 19590101 20170923 246440 99999 VERHNEVILJUJSK RS 63.45 120.31700000000001 115.3 19590101 20170923 246520 99999 SANGARY RS 63.967 127.46700000000001 96.0 19480101 20170923 246560 99999 BATAMAJ RS 63.516999999999996 129.483 79.0 19480101 20170923 246610 99999 SEGEN-KYUEL' RS 64.0 130.3 208.0 19590101 20170923 246680 99999 VERHOJANSK PEREVOZ RS 63.317 132.017 90.9 19590101 20170923 246710 99999 TOMPO RS 63.95 135.86700000000002 402.0 19590101 20170923 246780 99999 ZAPADNAYA-IN-YAKUT RS 63.05 137.95 849.0 19590101 20020128 246790 99999 VOSTOCHNAYA RS 63.217 139.6 1287.9 19590101 20170923 246840 99999 AGAYAKAN RS 63.333 141.733 776.9 19590101 20170923 246880 99999 OJMJAKON RS 63.25 143.15 741.0 19480101 20170923 246910 99999 DELYANKIR RS 63.833 145.6 800.9 19590101 20170923 246980 99999 ARKAGALA RS 63.15 146.967 798.0 19590101 19780627 247130 99999 NAKANNO RS 62.883 108.43299999999999 246.0 19550701 20070227 247180 99999 HAMAKAR RS 62.1 108.23299999999999 272.0 19570701 20011120 247240 99999 CHERNISHEVSKIJ RS 63.033 112.48299999999999 422.0 19480101 20170923 247250 99999 TUOJ-HAYA RS 62.533 111.23299999999999 259.7 19730518 20170923 247260 99999 MIRNY RS UERR 62.535 114.039 352.0 19610701 20170923 247300 99999 OYUSUT RS 62.833 115.21700000000001 156.0 19590901 19591223 247370 99999 KRESTYAH RS 62.266999999999996 116.15 139.1 19591101 20170923 247380 99999 SUNTAR RS 62.15 117.65 133.0 19331202 20170923 247390 99999 CHAINGDA RS 62.283 119.85 308.2 19590101 20150415 247530 99999 NAMTSY RS 62.733000000000004 129.667 89.8 19690101 20170923 247580 99999 BERDIGESTYAH RS 62.266999999999996 127.06700000000001 231.4 19590101 20170923 247610 99999 BOROGONCY RS 62.667 131.13299999999998 140.0 19600113 19810411 247630 99999 KREST-HAL' DZHAY RS 62.817 134.433 114.5 19590101 20170923 247660 99999 YTYK-KJUEL RS 62.467 133.417 120.0 19590101 20020703 247680 99999 CURAPCA RS 62.033 132.6 186.0 19480101 20170923 247710 99999 TEPLY KLJUCH RS 62.783 136.85 288.6 19590101 20170923 247840 99999 MUSKHAYA RS 62.6 140.7 2149.0 19590101 19631231 247900 99999 SUSUMAN RS 62.783 148.167 655.0 19590901 20170923 247960 99999 YAGODNOYE RS 62.533 149.63299999999998 504.0 19590101 19780709 247990 99999 JEK-LONDON (LAKE) RS 62.117 149.517 808.0 19690101 19831230 248020 99999 STRELKA CHUNYA RS 61.733000000000004 102.81700000000001 358.2 19570722 20170923 248070 99999 MUTORAJ RS 61.333 100.48299999999999 331.5 19590101 20170923 248130 99999 MARKHAY RS 61.983000000000004 109.76700000000001 268.0 19690102 19800211 248170 99999 ERBOGACEN RS 61.266999999999996 108.01700000000001 291.0 19370102 20170923 248260 99999 DOROZHNYJ RS 61.617 114.617 353.7 19590101 20170923 248430 99999 TONGULAH RS 61.917 124.55 199.1 19590101 20170923 248560 99999 POKROVSK RS 61.483000000000004 129.15 115.0 19480101 20170923 248580 99999 SINSKOYE-IN-YAKUT RS 61.133 126.8 122.0 19590101 19840810 248590 99999 BROLOGYAKHATAT RS 61.283 128.933 118.0 19590101 20011213 248710 99999 OHOTSKIJPEREVOZ RS 61.867 135.5 140.6 19590101 20170923 248780 99999 ALLAH-JUN RS 61.133 137.983 613.0 19590101 19960910 248910 99999 KULU RS 61.883 147.35 670.0 19590101 20050816 248940 99999 KOLYMSKAYA RS 61.85 147.667 838.8 20120530 20170923 248980 99999 UST' OMCHUG RS 61.117 149.63299999999998 574.5 19590101 20170923 248990 99999 UST OMCHUK RS 61.15 149.63299999999998 19590101 19631207 249080 99999 VANAVARA RS 60.333 102.26700000000001 260.0 19570701 20170923 249180 99999 PREOBRAZHENKA RS 60.05 108.083 295.2 19570701 20170923 249230 99999 LENSK RS 60.717 114.883 234.0 19480101 20170923 249280 99999 KOMAKA RS 60.266999999999996 111.73299999999999 298.6 19590101 20170923 249330 99999 KILEER RS 60.95 119.3 249.3 19590101 20170923 249340 99999 NJUJA RS 60.533 116.23299999999999 168.0 19331202 20010814 249440 99999 OLEKMINSK RS 60.4 120.417 229.6 19311231 20170923 249460 99999 SANI-YAKHTAT RS 60.6 124.03299999999999 139.0 19590101 19890919 249510 99999 ISIT' RS 60.817 125.31700000000001 118.0 19331202 20170923 249520 99999 BOGUS SOVIET RS 19880301 19890930 249550 99999 DOBROLET-IN-YAKUT RS 60.516999999999996 127.917 468.0 19590101 19800228 249590 99999 JAKUTSK RS 62.016999999999996 129.717 101.0 19311231 20170923 249620 99999 AMGA RS 60.9 131.983 146.0 19480101 20170923 249660 99999 UST'-MAJYA RS 60.383 134.45 170.0 19331209 20170923 249670 99999 TEGYULTYA RS 60.467 130.0 171.0 19590101 20170923 249750 99999 YNYKVHAN RS 60.367 137.5 385.0 20120829 20141111 249820 99999 UEGA RS 60.717 142.783 398.0 19541122 20170923 249880 99999 ARKA RS 60.083 142.333 198.0 19480101 20170923 249940 99999 NOVVY KHEYDZHAM RS 60.667 145.533 408.0 19621005 19630906 249950 99999 APPROXIMATE LOCALE RS 60.516999999999996 148.2 305.0 19731004 19780301 250020 99999 KONDAKOVA RS 69.75 151.667 68.0 19620821 19631223 250170 99999 ADRYUSKINO RS 69.167 154.5 16.0 19830401 20170611 250230 99999 19870511 19870511 250260 99999 OSTROV SUKHARYYA RS 69.583 161.733 1.0 19610401 19630304 250340 99999 BUHTA AMBARCIK RS 69.617 162.3 23.0 19480101 20170923 250420 99999 AJON RS 69.917 167.967 13.7 19550305 20170923 250440 99999 RAUCHUA RS 69.5 166.583 4.6 19550305 20170923 250510 99999 PEVEK RS UHMP 69.783 170.597 3.4 19550305 20170923 250520 99999 APAPELKHINO RS 69.75 170.6 4.0 19550305 20020507 250530 99999 SHALAUROVA ISLAND RS 69.983 172.783 20.0 19590802 19630830 250550 99999 KRASNOARMEJSKI RS 69.617 172.033 193.0 19570701 19931221 250560 99999 APPROXIMATE LOCALE RS 69.5 174.0 0.0 19821101 20020901 250620 99999 MYS BILLINGSA RS 69.883 175.767 3.0 19550305 20170923 250770 99999 CAPE KJANGTOKJNMANK RS 69.217 179.36700000000002 7.0 19811101 19950419 251210 99999 KOLYMSKAYA RS 68.733 158.717 12.0 19590101 20170923 251230 99999 CHERSKIJ RS 68.75 161.283 28.0 19550305 20170923 251290 99999 KONSTANTINOVSKAYA RS 68.15 161.167 8.4 20120731 20170923 251380 99999 OSTROVNOE RS 68.117 164.167 94.0 19590101 20170923 251470 99999 BILIBINO RS 68.05 166.45 279.5 20120731 20170923 251500 99999 CAUNSKAJA BAY RS 68.9 170.667 6.0 19821101 20041025 251510 99999 CHAUN RS 68.883 170.783 4.7 19590101 20170923 251730 99999 MYS SHMIDTA RS 68.9 -179.63299999999998 3.0 19331203 20150318 251870 99999 YULINU RS 68.333 177.717 4.0 19590901 19630923 251960 99999 /OPEN WATER/ 68.0 -172.0 19591001 19591211 252060 99999 CREDNEKOLYMSK RS 67.45 153.717 21.0 19590101 20170923 252410 99999 KEPERVEYEM RS 67.833 166.167 137.0 19731108 20020419 252480 99999 ILIRNEJ RS 67.25 167.967 353.0 19590101 20170923 252730 99999 IULTIN-IN-CHUKOT RS 67.867 -178.75 234.0 19590101 19890909 252820 99999 MYS VANKAREM RS 67.833 -175.833 5.0 19550305 20170710 252860 99999 KOLJUCINSKAJA BAY RS 66.833 -174.5 31.0 19550305 19940308 253250 99999 UST'-OLOJ RS 66.55 159.417 127.0 19590101 20141112 253350 99999 BAIMKA RS 66.533 164.283 286.3 19690331 20170923 253560 99999 EN' MUVEEM RS 66.383 173.333 77.0 19590101 20170922 253720 99999 AMGUJEMA RS 67.033 -178.917 138.0 19590101 20020830 253780 99999 EGVEKINOT RS 66.35 -179.11700000000002 26.0 19460101 20170923 253790 99999 MYS RAZDEL NYY RS 66.183 -179.0 19590901 19591226 253920 99999 ENURMINO RS 66.933 -171.833 20.0 19550305 19920509 253990 99999 MYS UELEN RS 66.15 -169.833 3.0 19331203 20170923 254000 99999 ZYRYANKA RS 65.733 150.9 43.0 19460101 20170923 254280 99999 OMOLON RS 65.233 160.533 264.0 19590101 20170923 254340 99999 KULYUKA RS 65.433 161.717 610.0 19730101 20020927 254480 99999 EREPOL RS 65.267 168.667 197.0 19860501 19940522 254490 99999 EREPOL RS 65.267 168.667 125.0 19590101 19890109 254560 99999 UST BELAYA RS 65.483 173.3 23.0 19590101 19810531 254690 99999 KANCHALAN RS 65.183 176.767 18.5 19590101 20170923 254930 99999 RATMANOVA ISLAND RS 65.783 -169.083 39.0 19460405 19930510 254960 99999 LAVRENTIJA RS 65.55 -171.033 9.0 19591212 20020129 255030 99999 KORKODON RS 64.75 153.967 98.0 19590101 20170923 255260 99999 KRESTIK RS 64.1 161.033 373.0 19590101 19780119 255380 99999 VERHNEE PENZINO RS 64.217 164.233 326.0 19590101 20161231 255510 99999 MARKOVO RS 64.683 170.417 26.0 19460102 20170923 255520 99999 PEVEK RS 69.7 170.283 3.0 20040810 20120608 255610 99999 TANYURER RS 64.867 174.417 8.0 19460103 20170921 255630 99999 UGOLNY RS UHMA 64.735 177.74099999999999 59.1 19331201 20170923 255680 99999 YARANGI-IN-CHUKOT RS 64.183 176.417 12.0 19590101 20020314 255940 99999 PROVIDENIYA BAY RS UHMD 64.378 -173.243 21.9 19470502 20170922 255950 99999 CHAYBUKHA RS UHMG 61.95 160.417 1.0 19460102 20050915 256030 99999 RS 19870511 19870511 256080 99999 KANON-IN-MAGADAN RS 63.4 151.317 686.0 19590101 19770816 256110 99999 BALYGYCAN RIVER RS 64.0 154.167 145.0 19590101 19890225 256210 99999 KEDON RS 64.0 158.917 683.0 19590101 20001225 256270 99999 LABAZNAYA RS 63.3 158.5 709.0 19590101 20170923 256480 99999 SLAUTNOE RS 63.2 167.85 44.0 19550501 20170923 256560 99999 BEREZOVO RS 63.417 172.717 200.0 19590101 20000221 256770 99999 BERINGOVSKAJA RS 63.016999999999996 179.283 82.0 19550305 20141112 257000 99999 EL' GEN (SOVHOZ) RS 62.8 150.667 312.4 19590101 20170923 257010 99999 KHATINNAKH RS 62.717 150.017 782.0 19471231 19831224 257030 99999 SEJMCHAN RS 62.917 152.417 205.0 19590101 20170923 257050 99999 SREDNIKAN RS 62.45 152.317 260.0 19590101 20170923 257070 99999 BOHAPCHA RS 62.1 150.683 348.8 19730313 20170923 257150 99999 OMSUKCHAN RS 62.516999999999996 155.8 499.8 19590101 20170923 257190 99999 BOGUS SOVIET RS 19860107 19870204 257440 99999 KAMENSKOE RS 62.433 166.083 10.0 19550501 20090527 257450 99999 KAMENSKOE RS 62.483000000000004 166.217 40.0 20090801 20170923 257670 99999 HATYRKA RS 62.05 175.283 13.2 19550417 20141112 257770 99999 BUHTA GAVRIILA RS 62.417 179.13299999999998 7.0 19360102 19780809 258020 99999 STRELKA-IN-MAGADAN RS 61.883 152.4 583.0 19590101 20030618 258080 99999 TALATA RS 61.133 152.38299999999998 707.5 19590201 20170923 258160 99999 PESTRAYA DRESVA RS 61.533 156.7 7.0 19590101 19881009 258200 99999 EVENSK RS 61.917 159.217 11.8 20120530 20170923 258210 99999 NAJAHAN RS 61.917 158.983 23.0 19370212 20020428 258220 99999 GIZIGA RS 62.05 160.5 2.0 19590101 20020503 258580 99999 VATYNA RS 61.233000000000004 172.38299999999998 15.0 19630404 19870519 259020 99999 ATKA RS 60.85 151.767 901.0 19590101 20041002 259040 99999 MADAUN RS 60.6 150.7 521.9 19590101 20170923 259070 99999 PALATKA RS 60.1 151.0 347.0 19590101 19771125 259100 99999 ... RS 59.7 150.417 19590101 19630203 259110 99999 ARMAN RS 59.667 150.13299999999998 19590101 19631212 259120 99999 MAGADAN NW RS 59.917 150.717 254.0 19590101 19790221 259130 99999 SOKOL RS UHMM 59.911 150.72 175.0 19451231 20170923 259140 99999 NAGAJEVA BAY RS 59.483000000000004 150.5 6.0 19370101 19951125 259150 99999 OLA RS 59.617 151.333 4.0 19590101 19800220 259160 99999 ALEVINA (MYS) RS 58.833 151.35 65.1 19620501 20170915 259170 99999 ZAVYALOVA ISLAND RS 59.0 150.467 221.0 19590101 19820616 259180 99999 DYUGUDYAKH RS 59.117 152.333 15.0 19621201 19630314 259190 99999 BRAT' EV (MYS) RS 59.1 153.333 12.9 19630608 20170923 259220 99999 SHELIHOVA RS 60.717 155.88299999999998 33.3 19611201 20170923 259270 99999 BROHOVO RS 59.65 154.267 5.0 19590101 20170923 259320 99999 TAJGONOS RS 60.683 160.4 30.0 19590101 20130917 259410 99999 CHEMURNAUT RS 60.733000000000004 163.017 14.0 19550501 20170923 259540 99999 KORF RS 61.35 166.0 3.6 19370101 20120731 259550 99999 YEMET RS 60.583 168.15 7.0 19750808 20010908 259560 99999 APUKA RS 60.433 169.667 5.0 19530216 20170923 259640 99999 TOPATA-OLYUTORSKAYA RS 60.55 171.083 12.0 19550501 19890723 260120 99999 SORVE EN 57.917 22.05 2.0 19591101 20040912 260270 99999 OSMUSSAR ISLAND EN 59.333 23.25 5.0 19601201 19621119 260290 99999 PAKRI EN 59.383 24.033 26.0 19591223 20170923 260340 99999 NAISSAAR ISLAND EN 59.6 24.416999999999998 2.0 19600817 20040717 260380 99999 TALLINN EN EETN 59.413000000000004 24.833000000000002 39.9 19530216 20170923 260381 99999 PARNU EN 58.417 24.467 47.0 20040713 20170923 260390 99999 MUSTAMETSA EN 59.45 25.65 70.0 19590101 19630305 260450 99999 KUNDA EN 59.516999999999996 26.55 3.0 19590101 20170923 260460 99999 JOHVI EN 59.333 27.383000000000003 75.0 19590101 20170923 260490 99999 JOHVI ESTONIA EN 59.367 27.416999999999998 19550101 19570630 260500 99999 MOSCNI ISLAND EN 60.0 27.833000000000002 6.0 19590101 20030310 260570 99999 SILLAMAE EN 59.4 27.75 16.0 19590102 19621229 260580 99999 NARVA-JOESUU EN 59.388999999999996 28.116999999999997 29.9 19590101 20170923 260590 99999 KINGISEPP RS 59.367 28.6 19.0 19480101 20170923 260600 99999 LOMONOSOV RS 59.917 29.767 2.0 19881002 20050801 260630 99999 PULKOVO RS ULLI 59.8 30.263 24.1 19310401 20170923 260635 99999 SMOLNAYA RS ULSS 59.983000000000004 30.583000000000002 18.0 19730101 19890315 260636 99999 ST. PETERSBURG RS 59.967 30.3 4.0 19880621 19901128 260640 99999 BEGUNITSY RS 59.583 29.316999999999997 160.0 19590809 19960426 260660 99999 PUSKIN RS 59.733000000000004 30.416999999999998 63.0 20011108 20020322 260670 99999 VOLOSOVO RS 59.433 29.5 129.0 19590101 20160614 260680 99999 DILITSY RS 59.483000000000004 29.767 19610207 19610707 260690 99999 BELOGORKA RS 59.35 30.133000000000003 90.0 19590101 20170923 260720 99999 SHLISSEL'BURG RS 59.933 31.0 17.0 19590101 20170923 260780 99999 LJUBAN' RS 59.35 31.233 39.0 19480101 20170923 260800 99999 KIRISHI RS 59.45 32.033 26.0 19831002 20170923 260810 99999 VOLHOV RS 59.933 32.317 31.0 19590101 19900930 260870 99999 BUDOGOSC RS 59.317 32.483000000000004 54.0 19550101 20021227 260920 99999 SUGOZERO RS 59.95 34.2 91.0 19590101 19940930 260940 99999 TIHVIN RS 59.65 33.55 61.0 19320101 20170923 260990 99999 EFIMOVSKAJA RS 59.5 34.7 176.0 19590101 20170923 261148 99999 MINSK 2 BO UMMS 53.882 28.031 204.2 19990114 20170923 261149 99999 MOGILEV BO 53.95 30.1 194.0 20040810 20170923 261150 99999 RISTNA EN 58.917 22.066999999999997 9.0 19550101 20170923 261160 99999 KARDLA EN EEKA 58.99100000000001 22.831 5.5 19590101 20170923 261161 99999 KURESSAARE EN 58.217 22.5 4.0 20040510 20170923 261190 99999 METSKULA EN 58.567 22.533 17.0 19590101 19630517 261200 99999 HELTERMAA EN 58.867 23.05 4.0 19590101 20050914 261210 99999 SUTLEPA EN 59.033 23.65 5.0 19550101 19570630 261220 99999 RIGULDI EN 59.133 23.533 3.0 19590101 19631018 261240 99999 LAANE-NIGULA EN 58.95 23.816999999999997 25.0 19590101 20170923 261280 99999 VIRTSU EN 58.567 23.517 3.0 19590102 20170923 261340 99999 KUUSIKU EN 58.967 24.733 52.0 19690101 20170923 261350 99999 TURI EN 58.817 25.416999999999998 65.0 19550101 20170923 261410 99999 VALKE-MAARJA EN 59.133 26.233 123.0 19621211 20170923 261440 99999 JOGEVA EN 58.75 26.416999999999998 71.0 20010919 20170923 261450 99999 TILRIKOJA EN 58.867 26.95 34.0 19550101 20170923 261570 99999 GDOV RS 58.733000000000004 27.833000000000002 40.0 19361231 20170923 261590 99999 LYADY RS 58.617 28.833000000000002 74.1 19590101 19631027 261610 99999 OS'MINO RS 59.016999999999996 29.083000000000002 54.0 19590101 20030106 261670 99999 NIKOLAEVSKOE RS 58.567 29.8 91.0 19550301 20170923 261680 99999 LUGA RS 58.733000000000004 29.883000000000003 104.0 19460106 19511114 261790 99999 NOVGOROD RS 58.516999999999996 31.25 24.0 19320101 20170923 261840 99999 MALAYA VISHERA RS 58.85 32.233000000000004 61.0 19880201 20041218 261880 99999 VEREB'YE RS 58.683 32.7 116.0 19590101 19890919 261960 99999 HVOJNAJA RS 58.9 34.533 164.0 19460105 19910423 262100 99999 19290101 19420930 262140 99999 VILSANDI EN 58.383 21.816999999999997 6.0 19590101 20170923 262150 99999 KURESSAARE-ROOMASSAARE EN 58.233000000000004 22.5 4.0 19550101 20051225 262180 99999 SORVE EN 57.917 22.05 4.0 19730101 20170923 262260 99999 KIHNU EN 58.1 23.967 4.0 19590101 20170923 262270 99999 RUHNU EN 57.783 23.25 2.0 19611110 20170923 262290 99999 AINAZI LG 57.867 24.366999999999997 5.0 19550101 20170923 262310 99999 PJARNU-SAUGA EN 58.417 24.467 8.0 19480101 20140828 262330 99999 VILJANDI EN 58.367 25.6 86.0 19590101 20170923 262380 99999 RUJIENA LG 57.9 25.383000000000003 12.0 19590101 20170923 262410 99999 19310101 19381231 262420 99999 TARTU EN EETU 58.306999999999995 26.69 66.8 19480101 20170923 262470 99999 VALGA EN 57.783 26.033 66.0 19590101 20170923 262490 99999 VORU EN 57.85 27.017 83.0 19590101 20170923 262580 99999 PSKOV RS ULOO 57.784 28.396 46.9 19530216 20170923 262640 99999 STRUGI KRASNYE RS 58.266999999999996 29.1 129.0 19590101 20070306 262680 99999 DNO RS 57.817 29.95 71.0 19361231 20170923 262750 99999 STARAYA RUSSA RS 58.016999999999996 31.316999999999997 25.0 19550101 20170923 262830 99999 OKULOVKA RS 58.367 33.317 176.0 19590101 19940618 262850 99999 KRESTCY RS 58.266999999999996 32.533 63.0 19590101 20170923 262890 99999 VALDAJ RS 57.967 33.233000000000004 219.0 19460102 20010630 262910 99999 BOROVICI RS 58.417 33.9 89.0 19590101 20170923 262980 99999 BOLOGOE RS 57.9 34.03 188.0 19590807 20170922 263100 99999 STENDE BO 57.167 22.5 70.0 19550101 19800824 263130 99999 KOLKA LG 57.75 22.6 5.0 19550101 20170923 263140 99999 VENTSPILS LG UMRW 57.4 21.533 3.0 19480101 20140828 263180 99999 STENDE LG 57.183 22.55 79.0 19590101 20170923 263240 99999 MERSRAGS LG 57.35 23.116999999999997 6.0 19590101 20170923 263260 99999 SKULTE LG 57.317 24.416999999999998 10.0 19590101 20170923 263350 99999 PRIEKULI LG 57.317 25.333000000000002 122.0 19550101 20151204 263390 99999 ZOSENI LG 57.133 25.916999999999998 180.0 19950101 20170923 263460 99999 ALUKSNE LG 57.433 27.033 193.0 19590101 20170923 263480 99999 GULBENE LG 57.133 26.717 143.0 19480101 20170923 263500 99999 PYTALOVO RS 57.1 27.983 82.0 19590101 19800527 263550 99999 OSTROV RS 57.35 28.333000000000002 55.0 19460101 19491231 263570 99999 VILAKA LG 57.183 27.666999999999998 93.0 19590101 20110312 263590 99999 PUSKINSKIE GORY RS 57.016999999999996 28.9 108.0 19590101 20170923 263780 99999 HOLM RS 57.15 31.183000000000003 71.0 19460307 20170923 263810 99999 DEMJANSK RS 57.65 32.467 62.0 19590101 20170923 263890 99999 OSTASKOV RS 57.133 33.117 218.0 19590102 20170911 263930 99999 VYSNIJ VOLOCEK RS 57.55 34.567 169.0 19320101 20170919 263980 99999 KUVSINOVO RS 57.05 34.217 244.0 19890101 19890811 264030 99999 PAVILOSTA LG 56.883 21.183000000000003 10.0 19590101 20170923 264050 99999 VENTSPILS LG 57.35 21.533 6.0 20040905 20170923 264060 99999 LIEPAJA INTL LG EVLA 56.518 21.096999999999998 4.9 19550101 20170923 264140 99999 KAZDANGA LG 56.733000000000004 21.733 95.0 19690101 20040926 264160 99999 SALDUS LG 56.683 22.5 112.0 19550101 20170923 264190 99999 AUCE LG 56.467 22.833000000000002 104.0 19690101 20080827 264220 99999 RIGA LG UMRR 56.917 23.967 26.0 19280102 20140103 264225 99999 RIGA LG EVRR 56.967 24.05 26.0 19940718 20170923 264240 99999 DOBELE LG 56.617 23.316999999999997 44.0 19960501 20170923 264250 99999 JELGAVA LG 56.65 23.733 9.0 19590101 20170923 264290 99999 BAUSKA LG 56.4 24.217 33.0 19590101 20170923 264350 99999 SKRIVERI LG 56.65 25.133000000000003 83.0 19550101 20170923 264360 99999 ZILANI LG 56.516999999999996 25.916999999999998 109.0 19590101 20170923 264410 99999 MADONA LG 56.883 26.333000000000002 251.0 19590101 19800503 264460 99999 REZEKNE LG 56.533 27.267 157.0 19550101 20170923 264470 99999 MADONA LG 56.85 26.233 133.0 19280102 20170923 264560 99999 OPOCHKA RS 56.717 28.717 99.0 19590101 20170923 264590 99999 IDRICA RS 56.317 28.9 139.0 19480101 20030523 264620 99999 SUSHCHEVO RS 57.0 29.916999999999998 108.0 19590101 19960513 264770 99999 VELIKIE LUKI RS ULOL 56.35 30.62 106.0 19320101 20170923 264780 99999 PSKOV RS 57.783 28.4 47.0 20040810 20170910 264790 99999 TOROPEC RS 56.483000000000004 31.633000000000003 187.0 19631204 20170918 264870 99999 ZAPADNAJA DVINA RS 56.266999999999996 32.083 197.0 19631102 20030615 264980 99999 RZEV RS 56.266999999999996 34.317 196.0 19320101 19990421 264990 99999 STARITSA RS 56.5 34.933 186.0 20010915 20170921 265010 99999 MAZEIKIAI LH 56.35 22.316999999999997 66.8 20140701 20150311 265020 99999 PALANGA INTL LH EYPA 55.973 21.094 10.1 19590101 20170923 265021 99999 SIAULIAI INTL LH 55.883 23.383000000000003 138.0 20040106 20170923 265030 99999 RUCAVA LG 56.15 21.166999999999998 19.0 19590101 19801013 265090 99999 KLAIPEDA LH 55.733000000000004 21.083000000000002 7.3 19290801 20170923 265100 99999 RYBACHIY RS 55.15 20.866999999999997 1.0 19330102 19420630 265110 99999 DONSKOYE RS 54.933 19.95 10.0 19401102 19431231 265120 99999 PIONERSKIJ RS 54.95 20.25 7.0 19370401 19431231 265150 99999 TELSIAI LH 55.967 22.25 152.0 19590101 20150401 265180 99999 LAUKUVA LH 55.617 22.233 166.0 19590101 20170923 265240 99999 SIAULIAI LH 55.933 23.316999999999997 107.0 19550101 20140521 265290 99999 PANEVEZYS LH EYPP 55.733000000000004 24.416999999999998 58.3 19590101 20150327 265310 99999 BIRZAI LH 56.2 24.767 51.5 19590101 20170923 265440 99999 DAUGAVPILS LG 55.867 26.616999999999997 122.0 19550101 20170923 265470 99999 DUKSTAS LH 55.516999999999996 26.3 168.0 20010705 20140908 265510 99999 DAGDA LG 56.1 27.55 181.0 19590101 20070227 265540 99999 VERHNEDVINSK BO 55.817 27.95 132.0 19590101 20170923 265650 99999 NEVEL RS 56.0 29.916999999999998 150.0 19590101 19610816 265660 99999 YEZERISHCHE BO 55.833 29.983 171.0 19730101 19820525 265680 99999 SHCHELOKI BO 55.683 29.816999999999997 213.0 19610209 19631023 265750 99999 VELKZH RS 55.617 31.2 159.1 19460103 19491231 265780 99999 VELIZH RS 55.617 31.183000000000003 166.0 19590803 20170917 265850 99999 BELYJ RS 55.85 32.95 222.0 19480101 20170920 265950 99999 SYCHEVKA RS 55.833 34.283 200.0 19590710 19961012 266000 99999 SILUTE LH 55.35 21.467 5.0 19940601 20150326 266030 99999 NIDA LH 55.3 21.0 2.6 19590101 20140908 266070 99999 SVETLOGORSK RS 54.917 20.133 37.0 19590101 19801028 266140 99999 SOVETSK RS 55.083 21.866999999999997 37.0 19330102 19810506 266150 99999 TAURAGE LH 55.25 22.283 34.5 19590101 20050912 266200 99999 DOTNUVA LH 55.4 23.883000000000003 77.1 19590101 20020131 266210 99999 RASEINIAI LH 55.4 23.15 110.5 19590101 20150330 266290 99999 KAUNAS LH 54.883 23.833000000000002 77.0 19530216 20170923 266295 99999 KAUNAS INTL LH EYKA 54.964 24.085 78.0 19980301 20170923 266330 99999 UTENA LH 55.516999999999996 25.583000000000002 105.7 19590101 20170923 266340 99999 UKMERGE LH 55.266999999999996 24.767 73.2 19590101 20150401 266360 99999 SVENCIONYS LH 55.15 26.166999999999998 222.3 20140701 20150311 266430 99999 SHARCOVSCHINA BO 55.367 27.467 131.0 19610208 20170923 266440 99999 SVENCIONYS LITHUANIA LH 55.117 26.166999999999998 19590101 19600929 266450 99999 LYNTUPY BO 55.05 26.316999999999997 212.0 19610208 20170923 266490 99999 BUDSLAV BO 54.817 27.533 177.0 19730101 20020518 266530 99999 POLOTSK BO 55.467 28.767 133.0 19610207 20170923 266570 99999 DOKSHITSY BO 54.883 27.75 193.0 19610930 20170923 266590 99999 LEPEL BO 54.883 28.7 174.0 19590101 20170923 266660 99999 VITEBSK BO UMII 55.126999999999995 30.35 207.9 19320101 20170923 266661 99999 GRODNO BO 53.6 24.533 138.0 20040713 20170923 266680 99999 SENNO BO 54.817 29.683000000000003 176.0 19600127 20170923 266730 99999 DEMIDOV RS 55.266999999999996 31.517 209.0 19881201 19910506 266810 99999 BAL'SHOYE BERESNEVO RS 55.35 32.317 244.0 19881201 19890328 266930 99999 GUTENFELD RS 54.683 20.65 3.0 19390901 19431231 266940 99999 CHKALOVSK RS 54.75 20.283 3.0 19370802 19431231 266950 99999 VJAZ'MA RS 55.167 34.4 251.0 19460101 20170920 266960 99999 PROVEREN RS 54.766999999999996 20.4 10.0 19380616 19411231 266970 99999 BALTIYSK NAVAL RS 54.617 19.883 6.0 19370202 19431231 266980 99999 NIVENSKOYE RS 54.567 20.6 7.0 19370712 19431231 266990 99999 GURYEVSK RS 54.783 20.616999999999997 6.0 19350502 19431231 267010 99999 BALTIJSK RS 54.667 19.967 2.0 19590101 20020526 267020 99999 KHRABROVO RS UMKK 54.89 20.593000000000004 13.1 19280101 20170923 267030 99999 19420101 19420718 267040 99999 MAMONOVO RS 54.467 19.95 23.0 19590101 19740818 267050 99999 BAGRATIONOVSK RS 54.4 20.633000000000003 55.0 19590102 19631231 267060 99999 ZELEZNODOROZNY RS 54.383 21.316999999999997 49.0 19590101 19710630 267110 99999 CHERNYAHOVSK RS 54.633 21.8 31.1 19590101 20170923 267130 99999 KYBARTAI LH 54.65 22.8 59.4 19330102 20140908 267140 99999 MARIJAMPOLE LH 54.533 23.35 86.0 20130813 20150328 267210 99999 MARIAMPOLE LH 54.567 23.35 75.0 20011121 20100209 267280 99999 LAZDIJAI LH 54.233000000000004 23.517 133.6 19590101 20020131 267300 99999 VILNIUS INTL LH EYVI 54.63399999999999 25.285999999999998 196.9 19340313 20170923 267320 99999 VILNIUS LH 54.633 25.283 196.0 20010705 20020920 267360 99999 OSMJANY BO 54.45 25.95 211.0 19690101 20170305 267370 99999 VARENA LH 54.25 24.55 110.7 19590101 20020131 267450 99999 VILEYKA BO 54.483000000000004 26.9 183.0 19610209 20050312 267460 99999 STARINKI BO 54.5 27.316999999999997 19620106 19620122 267480 99999 MOLODECNO BO 54.317 26.883000000000003 155.0 19600208 20170305 267490 99999 RADOSKOVICI BO 54.2 27.283 198.0 19610207 20050307 267590 99999 BORISOV BO 54.266999999999996 28.5 189.0 19590103 20170923 267630 99999 ORSHA BO 54.5 30.416999999999998 185.0 19460101 20170923 267640 99999 SLAVNOYE BO 54.3 29.433000000000003 193.0 19610220 19771012 267660 99999 BOGUS SOVIET BO 19810101 19820126 267740 99999 GORKI BO 54.3 30.933000000000003 205.0 19320101 20170923 267810 99999 SMOLENSK BO 54.75 32.067 239.0 19361231 20170922 267840 99999 POCHINOK RS 54.417 32.433 201.0 19881201 20170904 267950 99999 SPAS-DEMENSK RS 54.417 34.016999999999996 238.0 19590101 20170923 268250 99999 GRODNO BO 53.6 24.05 134.0 19340329 20140829 268320 99999 LIDA BO 53.902 25.316999999999997 157.0 19340331 20170923 268340 99999 SCUCIN BO 53.65 24.8 178.0 19730101 20021205 268360 99999 NOVOGRUDOK BO 53.6 25.85 280.0 19600108 20170305 268460 99999 STOLBTSY BO 53.62 27.08 190.0 19610209 20160614 268500 99999 MINSK 1 BO UMMM 53.864 27.54 228.0 19320101 20170923 268530 99999 BEREZINO BO 53.833 28.983 154.0 19600401 20170923 268550 99999 MARIYNA GORKA BO 53.45 28.133000000000003 177.0 19610204 20170923 268630 99999 MOGILEV BO 53.95 30.066999999999997 192.0 19550101 20140829 268640 99999 KLICHEV BO 53.5 29.333000000000002 155.0 19610203 20170923 268780 99999 SLAVGOROD BO 53.45 31.017 170.0 19610203 20170923 268820 99999 ROSLAVL' RS 53.933 32.833 224.0 19460102 20170908 268870 99999 KOSTUCKOVICHI BO 53.35 32.067 167.0 19600110 20170923 268940 99999 ZUKOVKA RS 53.533 33.75 177.0 19320102 20170923 268980 99999 BRYANSK RS UUBP 53.214 34.176 202.1 19361231 20170923 269230 99999 VOLKOVYSK BO 53.17 24.45 183.0 19600307 20160614 269290 99999 PRUZANY BO 52.6 24.467 167.0 19600101 20021011 269380 99999 IVACEVICI BO 52.72 25.35 156.0 19590101 20160614 269390 99999 BEREZOVKA BO 53.016999999999996 25.75 176.0 19340502 19381231 269410 99999 BARANOVICHI BO 53.117 26.0 193.0 19550101 20170923 269470 99999 GANEVICI BO 52.75 26.483 157.0 19600113 20020725 269500 99999 URECH'YE BO 52.95 27.883000000000003 146.0 19610623 20081127 269510 99999 SLUTSK BO 53.033 27.55 162.0 19590101 20170923 269520 99999 MLYNOK BO 53.083 28.166999999999998 155.0 19600502 19620222 269610 99999 BOBRUISK BO 53.217 29.127 156.0 19550101 20170923 269660 99999 ZHLOBIN BO 52.9 30.033 142.0 19610203 20170923 269740 99999 CECERSK BO 52.917 30.9 142.0 19600101 20040520 269760 99999 KRASNAJA GORA RS 53.016999999999996 31.6 148.0 19530217 20170923 269860 99999 POCHEP RS 52.933 33.45 157.0 19591219 19630630 269870 99999 KLINCY RS 52.766999999999996 32.283 182.0 19600121 19811205 269970 99999 TRUBCHEVSK RS 52.583 33.766999999999996 178.0 19550101 20170923 270020 99999 BOGUS SOVIET RS 19860717 19881010 270030 99999 BORISOVO-SUDSKOYE RS 59.9 36.016999999999996 177.0 19590101 20020415 270080 99999 BABAEVO RS 59.4 35.9 137.0 19361231 20170923 270200 99999 YARSHEVO RS 59.95 38.6 120.4 20120328 20170923 270210 99999 KIRILLOV RS 59.85 35.383 19590101 19601229 270260 99999 KOROBOVO RS 59.6 39.167 133.0 19590101 20170923 270370 99999 VOLOGDA RS ULWW 59.233000000000004 39.867 131.0 19320101 20170923 270440 99999 CUCKOVO RS 59.583 41.25 197.0 19590101 19751223 270510 99999 TOTMA RS ULWT 59.967 42.766999999999996 134.0 19361231 20170923 270660 99999 NIKOL'SK RS 59.533 45.467 143.0 19480101 20170923 270710 99999 LUBOZINO RS 59.817 45.533 19590101 19750917 270830 99999 OPARINO RS 59.85 48.283 180.0 19480101 20170923 270950 99999 LETKA RS 59.6 49.433 168.0 19610801 20030401 270970 99999 MURASI RS 59.383 48.983000000000004 213.0 19730101 20050801 271060 99999 USTYUZHNA RS 58.85 36.433 125.0 19590101 20170923 271080 99999 OHONY RS 58.567 35.633 145.0 19590101 20170923 271130 99999 CHEREPOVEC RS ULWC 59.266999999999996 38.016999999999996 114.0 19550301 20170923 271430 99999 SOLIGALIC RS 59.083 42.283 142.0 19590101 19840514 271640 99999 KOLOGRIV RS 58.817 44.317 151.2 19590103 20170915 271740 99999 PISCUG RS 58.883 45.717 150.0 19730106 19750723 271760 99999 VOHMA RS 58.933 46.766999999999996 159.2 20120229 20170918 271850 99999 DAROVSKOJ RS 58.783 47.983000000000004 146.0 19600116 20041206 271960 99999 KIROV RS 58.65 49.617 147.0 19320101 20021211 271990 99999 KIROV RS 58.567 49.567 158.0 19940802 20170923 272080 99999 MAKSATIKHA RS 57.8 35.883 142.0 19881201 20170921 272120 99999 KES'MA RS 58.4 37.067 183.0 19881201 19891216 272150 99999 KRASNYY KHOLM RS 58.033 37.1 166.6 19881201 20170919 272170 99999 BEZECK RS 57.8 36.7 147.0 19590101 20010306 272230 99999 POSHEHON'E RS 58.483000000000004 39.133 117.8 20120229 20170923 272250 99999 RYBINSK RS 58.1 38.683 105.0 19360101 20170917 272255 99999 TUNOSHNA RS UUDL 57.56100000000001 40.157 87.5 20120504 20170923 272420 99999 BUJ RS 58.483000000000004 41.533 103.0 19460102 20170917 272520 99999 NIKOLO-POLOMA RS 58.35 43.383 150.0 19590101 20170917 272590 99999 MAKARYEV RS 57.883 43.8 119.0 19590102 19631222 272710 99999 SAR'JA RS 58.367 45.533 125.0 19361231 20170917 272770 99999 VETLUGA RS 57.85 45.766999999999996 136.0 19590101 20170923 272810 99999 SABALINO RS 58.3 47.117 166.0 19590101 20030302 272830 99999 KOTEL'NIC RS 58.3 48.35 127.0 19840511 20170923 272960 99999 KUMENY RS 58.1 49.917 177.1 19590814 20170923 273050 99999 RAMESHKL RS 57.35 36.05 155.0 19881201 19890617 273160 99999 KASIN RS 57.35 37.583 138.0 19590101 20170915 273210 99999 UGLIC RS 57.5 38.3 122.0 19320101 20170918 273290 99999 ROSTOV RS 57.2 39.417 101.0 19460401 20170918 273310 99999 JAROSLAVL' RS 57.633 39.75 129.0 19690101 19800119 273330 99999 KOSTROMA RS 57.733000000000004 40.783 126.0 19590101 20170921 273460 99999 KINESHMA RS 57.417 42.183 128.0 19840511 19840513 273470 99999 IVANOVO RS UUBI 56.95 40.967 126.0 19361231 20170922 273490 99999 LUKH RS 57.016999999999996 42.266999999999996 150.0 19590101 19840514 273550 99999 JUR'EVEC RS 57.333 43.117 132.0 19550301 20170917 273690 99999 KRASNYE BAKI RS 57.133 45.167 110.0 19570701 20170923 273700 99999 ARYA RS 57.5 45.967 130.0 20010808 20010808 273730 99999 SAKUN'JA RS 57.667 46.633 175.0 19550301 20170923 273910 99999 SOVETSK RS 57.583 48.967 19590101 19631226 273930 99999 NOLINSK RS 57.55 49.95 136.0 19550701 20170923 274010 99999 MEDNOYE RS 56.933 35.483000000000004 140.0 19590927 20030723 274015 99999 TVER RS 56.825 35.758 143.0 20070822 20071228 274020 99999 TVER' RS UUEM 56.883 35.867 137.0 19460101 20170919 274120 99999 SAVELOVO RS 56.867 37.383 124.0 19640401 20030810 274170 99999 KLIN RS 56.35 36.75 167.0 19840511 20170920 274190 99999 DMITROV RS 56.333 37.516999999999996 158.0 19590809 19630505 274280 99999 ALEKSANDROV RS 56.4 38.75 185.0 19590101 19781020 274530 99999 GORODEC RS 56.683 43.433 103.0 19840511 20170923 274550 99999 PUREKH RS 56.65 43.05 115.8 19590101 19631231 274590 99999 STRIGINO RS UWGG 56.23 43.784 78.0 19940802 20170923 274620 99999 SEMENOV RS 56.733000000000004 44.516999999999996 118.0 19590101 19631229 274630 99999 19730104 19750809 274790 99999 KOZ'MODEM'JANSK RS 56.333 46.583 107.0 19550301 20170923 274800 99999 SANCURSK RS 56.983000000000004 47.317 103.0 19590101 19960317 274850 99999 JOSHKAR-OLA RS 56.633 47.766999999999996 106.0 19590101 20170923 274910 99999 NOVYJ TOR'JAL RS 57.0 48.733000000000004 143.0 19730104 20170923 274930 99999 19730106 19751205 274980 99999 MORKI RS 56.467 49.0 130.0 19590101 19840519 275020 99999 VOLOKOLAMSK RS 56.016999999999996 35.933 198.0 19590101 19800604 275070 99999 GAGARIN RS 55.516999999999996 35.033 194.0 19590101 20170922 275090 99999 MOZAJSK RS 55.516999999999996 36.0 185.0 19460307 20031027 275110 99999 NOVO-JERUSALIM RS 55.9 36.817 162.0 19590102 20170923 275155 99999 SHEREMETYEVO RS UUEE 55.973 37.415 189.6 19730101 20170923 275185 99999 VNUKOVO RS UUWW 55.592 37.260999999999996 208.8 19730101 20170923 275195 99999 RYZAN/DYAGILEVO RS 55.65 39.567 131.0 19770803 19830706 275230 99999 PAVLOVSKIJ POSAD RS 55.766999999999996 38.683 135.0 19590101 20170907 275243 99999 MOSCOW/MONINO RS 55.833 38.167 -999.0 19830206 19831102 275280 99999 KUROVSKOYE SOUTH RS 55.533 38.95 133.0 19600128 19620222 275320 99999 VLADIMIR RS 56.117 40.35 172.0 19460307 20170921 275390 99999 GUS'-HRUSTAL'NYJ RS 55.6 40.65 136.0 19590101 20170920 275490 99999 MUROM RS 55.6 42.033 119.0 20011119 20030228 275530 99999 GOR'KIJ RS 56.217 43.817 82.0 19320101 19951120 275550 99999 PAVLOVO RS 55.967 43.083 100.0 19590101 20020605 275630 99999 LYSKOVO RS 56.05 45.067 93.0 19840506 19840514 275740 99999 KURMYS RS 55.833 46.067 82.0 19590101 19631005 275770 99999 SERGAC RS 55.533 45.5 125.0 19640303 20170923 275810 99999 CEBOKSARY RS 56.083 47.333 163.0 19590101 19780801 275870 99999 KANAS RS 55.516999999999996 47.467 183.0 19590101 19840514 275930 99999 ARSK RS 56.083 49.867 157.0 19620112 20170917 275950 99999 KAZAN RS UWKD 55.606 49.278999999999996 126.2 19320101 20170923 276040 99999 IZNOSKI RS 54.983000000000004 35.317 213.0 19881201 19891030 276060 99999 MALOJAROSLAVEC RS 55.016999999999996 36.483000000000004 197.0 19600116 20170923 276070 99999 BEGISHEVO RS UWKE 55.565 52.093 196.0 20040810 20170923 276110 99999 NARO-FOMINSK RS 55.383 36.7 193.0 19590101 20170921 276120 99999 MOSKVA VDNH (DOLGOPRUDNYJ) RS 55.833 37.617 200.0 19320101 20170918 276180 99999 SERPUHOV RS 54.933 37.467 166.0 19590101 20030626 276230 99999 YEGORYEVSK RS 55.383 39.033 143.0 19630601 19630630 276250 99999 KOLOMNA RS 55.133 38.733000000000004 114.0 19590101 20040813 276270 99999 KASIRA RS 54.833 38.15 221.0 19590823 20170906 276430 99999 VYKSA RS 55.333 42.117 114.0 19590101 20170923 276480 99999 ELAT'MA RS 54.95 41.766999999999996 136.0 19320101 20170918 276530 99999 ARZAMAS RS 55.367 43.783 127.0 19590101 20170923 276650 99999 LUKOJANOV RS 55.033 44.5 219.0 19460309 20170923 276750 99999 PORETSKOE RS 55.183 46.333 136.0 20090128 20170923 276790 99999 ALATYR' RS 54.817 46.583 180.0 19361231 20170923 276830 99999 BOLSHIYE KAYBITSY RS 55.417 48.25 127.0 19740820 19870705 276930 99999 LAISEVO RS 55.433 49.533 61.0 19621011 19870517 276970 99999 TETYUSHI RS 54.933 48.783 156.0 19620414 20170923 277030 99999 KALUGA RS 54.55 36.367 198.8 19320101 20170923 277070 99999 SUHINICHI RS 54.1 35.35 238.0 19590101 20170923 277190 99999 TULA RS 54.233000000000004 37.617 203.0 19590101 20170923 277290 99999 MIHAJLOV RS 54.233000000000004 39.033 166.0 19590101 20050913 277300 99999 RYAZAN' RS 54.633 39.7 158.0 19940802 20170917 277310 99999 RJAZAN' RS 54.617 39.717 170.0 19460308 20041113 277360 99999 SILOVO RS 54.3 40.883 99.0 19590101 19840604 277450 99999 SASOVO RS 54.35 41.967 115.0 20120125 20170923 277520 99999 TEMNIKOV RS 54.633 43.233000000000004 139.0 19590101 20170923 277560 99999 KRASNOSLOBODSK RS 54.433 43.766999999999996 188.0 20120328 20170923 277580 99999 TORBEEVO RS 54.083 43.25 198.0 19590101 19780801 277600 99999 SARANSK RS 54.133 45.233000000000004 201.0 19590101 20170923 277620 99999 POCHINKI RS 54.7 44.867 137.0 19590101 19630927 277760 99999 SURSKOE RS 54.483000000000004 46.7 100.0 19590101 20170922 277820 99999 STARYYE ALGASHI RS 54.7 47.533 188.0 19740821 19800115 277850 99999 ULYANOVSK KZ UWLL 54.32 48.33 129.0 20120731 20170918 277860 99999 ULYANOVSK RS 54.317 48.333 129.0 19480102 20130430 277870 99999 ANNENKOVO RS 54.1 47.333 192.0 19620619 20030817 277990 99999 DIMITROVGRAD RS 54.233000000000004 49.6 73.0 19611208 20170918 278150 99999 CERN' RS 53.45 36.883 229.0 19320101 19780615 278170 99999 MCENSK RS 53.383 36.533 201.0 19910911 20170923 278210 99999 UZLOVAJA RS 54.0 38.133 231.0 20031011 20170920 278230 99999 PAVELETS RS 53.783 39.25 209.0 19460306 20170920 278240 99999 MALEVKA RS 53.6 38.25 219.0 19590103 19621225 278350 99999 RJAZSK RS 53.717 40.117 127.0 19881108 20170919 278480 99999 MORSANSK RS 53.45 41.8 142.0 19590101 20170923 278530 99999 NAROVCAT RS 53.867 43.683 148.0 19590101 20030719 278570 99999 ZAMETCHINO RS 53.483000000000004 42.633 131.0 19320101 20170922 278580 99999 PACELMA RS 53.333 43.317 261.0 19590101 20170917 278610 99999 INSAR RS 53.867 44.367 165.0 19590101 19630829 278720 99999 INZA RS 53.85 46.417 175.4 19570701 20170917 278880 99999 BEZVODOVKA RS 53.5 47.95 263.0 19590101 20010919 278900 99999 SENGILEJ RS 53.967 48.766999999999996 61.0 19620902 19880825 278940 99999 NOVODEVIC'E RS 53.6 48.833 143.0 19620621 20170917 279060 99999 OREL RS 52.933 36.0 196.0 19460102 20170923 279210 99999 EFREMOV RS 53.15 38.117 215.0 19590101 20170923 279280 99999 ELEC RS 52.633 38.516999999999996 168.0 19480101 20170923 279300 99999 LIPECK RS 52.7 39.516999999999996 177.0 19590101 20170923 279350 99999 MICURINSK RS 52.883 40.483000000000004 158.0 19361231 20170923 279470 99999 TAMBOV RS 52.8 41.333 128.0 19570701 20170923 279550 99999 BELINSKIY RS 52.967 43.4 205.7 19740820 20170917 279570 99999 KIRSANOV RS 52.667 42.717 169.0 19460306 20170923 279620 99999 PENZA RS UWPP 53.133 45.016999999999996 174.0 19320101 20170923 279621 99999 VOSTOCHNY RS UWLW 54.401 48.803000000000004 76.8 20040713 20170923 279622 99999 CHEBOKSARY RS UWKS 56.09 47.347 170.1 20080825 20170923 279720 99999 RADISHCHEVO RS 53.05 46.433 252.6 20120229 20170923 279730 99999 KUZNECK RS 53.1 46.6 270.0 19590101 20030302 279810 99999 KANADEY RS 53.15 47.516999999999996 98.9 20120229 20170917 279830 99999 SYZRAN' RS 53.183 48.4 103.0 19590101 20170918 279870 99999 KADYSHEVKA RS 52.683 47.167 167.0 19620601 19630326 279950 99999 SAMARA (BEZENCHUK) RS 52.983000000000004 49.433 46.0 19320102 20170918 279980 99999 APPROXIMATE LOCALE RS 52.633 49.217 46.0 19740822 19800115 280070 99999 NAGORSKOYE RS 59.317 50.817 19590101 19751023 280090 99999 KIRS RS 59.35 52.25 168.0 19550101 20170923 280130 99999 KOSA RS 59.95 55.016999999999996 183.0 19740820 19950524 280160 99999 KOCEVO RS 59.633 54.3 174.0 19590101 20030625 280260 99999 SOLIKAMSK RS 59.65 56.8 180.0 19530216 20020625 280280 99999 BEREZNIKI RS 59.55 56.833 223.0 19740820 20040829 280330 99999 KARPINSK RS 59.75 60.016999999999996 228.0 19740820 19890823 280350 99999 SOSNOVKA RS 59.55 58.917 421.0 19590103 19631223 280360 99999 KYTLYM RS 59.5 59.2 411.0 19860601 20020505 280380 99999 RASTES-IN-SVERDLOV RS 59.433 58.75 457.0 19740821 20060102 280440 99999 SEROV RS 59.6 60.533 130.0 19320101 20170918 280490 99999 GARI RS 59.433 62.333 131.0 19530216 20170918 280640 99999 LEUSI RS 59.617 65.717 72.0 19530216 20170923 280660 99999 KONDINSKOJE RS 59.667 67.417 41.0 19530216 20011121 280740 99999 19870511 19870511 280760 99999 DEM'JANSKOE RS 59.6 69.283 57.0 19530216 20170923 280870 99999 LIMKOYEVSKIYE RS 59.533 70.417 50.0 19570701 20051016 280970 99999 TAUROVO RS 59.583 73.283 60.3 19730809 20170923 280980 99999 TAYLAKOVY RS 59.25 73.967 80.0 19690101 19740720 281140 99999 AFANASYEVO RS 58.85 53.25 19590101 19631220 281160 99999 KUDYMKAR RS 58.983000000000004 54.65 186.0 19460309 20170918 281280 99999 CERMOZ RS 58.766999999999996 56.2 123.0 19610806 20090414 281310 99999 KIZEL RS 59.033 57.567 316.0 19460309 19970713 281340 99999 GUBAKHA RS 58.867 57.783 304.0 19920301 20040915 281350 99999 SREDNJAJA US'VA RS 58.983000000000004 58.917 457.0 19740820 19950821 281380 99999 BISER RS 58.516999999999996 58.85 463.0 19590101 20170918 281430 99999 SOSVA RS 59.167 61.833 80.0 19590101 19890605 281440 99999 VERHOTUR'E RS 58.867 60.783 125.0 19590101 20170918 281550 99999 NOSOVA-IN-SVERDLOV RS 58.967 63.766999999999996 61.0 19591201 19800212 281580 99999 TABORY RS 58.516999999999996 64.55 73.0 19850701 20010128 281650 99999 KUMINSKAYA RS 58.717 66.083 81.2 19730101 20170920 281720 99999 UVAT RS 59.15 68.917 41.0 19530216 19950923 282120 99999 SEVERNY KOMMUNAR RS 58.383 54.033 152.0 19850615 19890827 282130 99999 SIVA-IN-PERM RS 58.4 54.383 172.0 19740820 19790207 282140 99999 GLAZOV RS 58.133 52.583 169.0 19470506 20170923 282160 99999 VERESCAGINO RS 58.083 54.683 226.0 19590101 20170918 282240 99999 PERM' RS 58.0 56.333 170.9 20040713 20170918 282250 99999 BOLSHOYE SAVINO RS USPP 57.915 56.021 123.1 19320101 20170923 282330 99999 KUSVA RS 58.3 59.75 268.0 19740820 19930222 282340 99999 LYS'VA RS 58.117 57.783 226.0 19610813 20080116 282380 99999 KYN RS 57.833 58.65 245.0 19930202 20110910 282400 99999 NIZHNYJ TAGIL RS 57.883 60.067 260.0 19460309 20170921 282440 99999 VERHNJAJA SALDA RS 58.05 60.567 200.0 19610803 20020623 282480 99999 ALAPAEVSK RS 57.867 61.7 130.0 19530216 19970428 282550 99999 TURINSK RS 58.05 63.683 103.0 19460314 20170726 282570 99999 IRBIT RS 57.817 63.05 79.9 19600301 19631206 282640 99999 TAVDA BELYJAR RS 58.05 65.35 59.0 19600212 20030222 282750 99999 TOBOL'SK RS 58.15 68.25 50.0 19320101 20170923 282780 99999 VAGAY RIVER RS 57.917 69.033 100.0 19690101 19971223 283020 99999 UNI RS 57.75 51.5 183.0 19590101 20020809 283070 99999 URZUM RS 57.117 50.0 165.0 19590101 19631230 283090 99999 BOLSHOY KIYAIK RS 57.05 52.65 185.0 19590101 19631212 283120 99999 DEBESSI-IN-UDMURT RS 57.65 53.817 192.0 19590103 20010724 283190 99999 NOZOVKA RS 57.083 54.75 131.0 19460309 20170918 283210 99999 OHANSK RS 57.717 55.383 163.0 19470219 20170918 283240 99999 OSA RS 57.283 55.433 98.0 19610806 20071027 283260 99999 KUNGUR RS 57.417 56.933 150.0 19600301 20071218 283330 99999 VISIM RS 57.65 59.5 314.0 19600630 19940703 283340 99999 SAMARY RS 57.35 58.217 244.0 19530216 20170923 283390 99999 KUZINO-IN-SVERDLOV RS 57.016999999999996 59.433 333.0 19600625 20021205 283440 99999 NEVJANSK RS 57.533 60.217 277.0 19590103 19940817 283450 99999 LIPOVSKOYE RS 57.45 61.15 207.0 20010922 20010922 283460 99999 ARTEMOVSIJ RS 57.367 61.917 154.0 19590102 19940712 283510 99999 IRBIT RS 57.683 63.05 76.0 19740820 19950208 283520 99999 KRASNO-POLYANSKOYE RS 57.533 63.65 85.0 19740821 19890721 283590 99999 TUGULYM RS 57.067 64.667 90.0 19610801 20021204 283620 99999 NIZHNAYA TRADVA RS 57.667 66.167 19610105 19631005 283660 99999 JARKOVO RS 57.417 67.083 52.1 19530216 20170923 283670 99999 TYUMEN' RS 57.117 65.433 102.0 19320101 20170919 283820 99999 UST'-ISIM RS 57.683 71.183 62.0 19480101 20170923 283830 99999 TEVRIZ RS 57.516999999999996 72.4 67.0 19480101 20170918 283960 99999 VASISS-IN-OM RS 57.367 74.75 101.0 19530216 20040328 284020 99999 KILMEZ-IN-KIROV RS 56.95 51.067 100.0 19730106 20031009 284040 99999 SAVALS RS 56.533 50.633 107.9 19550101 19551231 284090 99999 MOZGA RS 56.433 52.2 169.0 19590101 19840627 284110 99999 IZHEVSK RS 56.833 53.45 159.0 19570701 20170923 284130 99999 DUBROVA RS 57.0 54.55 76.0 19740820 20080116 284180 99999 SARAPUL RS 56.467 53.733000000000004 133.0 19611223 20170923 284190 99999 JANAUL RS 56.283 54.967 99.4 19460309 20050629 284210 99999 BARDA RS 56.917 55.6 133.0 19601005 20010621 284230 99999 NIZHNYAYA IRGA RS 56.867 57.433 229.0 19630610 19881117 284260 99999 CHAD-IN-PERM RS 56.516999999999996 57.266999999999996 319.0 19590101 19780924 284280 99999 CERNUSKA RS 56.5 56.133 148.0 19590101 20170918 284290 99999 OKTJABRSKI RS 56.516999999999996 57.2 229.0 19740910 20090128 284300 99999 REVDA RS 56.817 59.95 325.0 19590101 20011225 284320 99999 BISERT RS 56.867 59.067 303.0 19610902 20020629 284330 99999 DRUZININO RS 56.8 59.533 345.0 19590102 20011029 284340 99999 KRASNOUFIMSK RS 56.65 57.783 206.0 19460401 20170923 284370 99999 SYZGI RS 56.5 57.833 229.0 19740821 20020429 284380 99999 ARTI RS 56.433 58.55 305.0 19740820 20050904 284400 99999 KOLTSOVO RS USSS 56.743 60.803000000000004 232.9 19320101 20170923 284430 99999 BOGDANOVICH RS 56.783 62.067 159.0 19740820 19990925 284440 99999 SVERDLOVSKY/KOLTSOV RS 56.733000000000004 60.817 236.0 19600217 19881009 284450 99999 EKATERINBURG (VERHNEE DUBROVO) RS 56.733000000000004 61.067 290.0 19891004 19980306 284480 99999 SYSERT RS 56.516999999999996 60.833 266.0 19600229 20020523 284490 99999 KAMENSK-URALSKIJ RS 56.433 61.867 171.0 19530216 19930714 284510 99999 KAMYSLOV RS 56.85 62.717 127.0 19480101 20170918 284550 99999 BUTKA RS 56.717 63.766999999999996 106.0 19920204 19980720 284560 99999 SATROVO RS 56.516999999999996 64.65 114.0 19590101 19940909 284570 99999 KATAJSK RS 56.3 62.6 152.0 19590101 19961106 284650 99999 JALTUROVOSK RS 56.683 66.35 61.0 19530216 20170923 284690 99999 VAGAJ RS 56.483000000000004 67.3 131.0 19480101 19891030 284780 99999 GOLYSMANOVO RS 56.383 68.383 122.0 19890101 19960313 284810 99999 VIKULOVO RS 56.817 70.617 78.0 19480101 20170923 284910 99999 BOL'SIE UKI RS 56.933 72.667 87.0 19550101 20170918 284930 99999 TARA RS 56.9 74.383 73.0 19320101 20170923 284935 99999 YEMELYANOVO RS UNKL 56.173 92.493 287.1 19990114 20170923 284980 99999 KOLOSOVKA RS 56.45 73.65 98.0 19600104 20030215 285020 99999 VJATSKIE POLJANY RS 56.233000000000004 51.033 83.0 19590101 20170923 285060 99999 ELABUGA RS 55.766999999999996 52.067 91.0 19460101 20170918 285090 99999 19730701 19760112 285170 99999 MENZELINSK RS 55.717 53.067 112.0 20050828 20170918 285220 99999 ASKINO RS 56.083 56.583 207.0 20050629 20170923 285260 99999 KARAIDELSKI RS 55.817 57.083 200.0 19590101 20050514 285330 99999 NTAZEPETROVSK RS 56.05 59.583 320.0 19460309 20050412 285350 99999 KARLJHANOVO RS 55.95 58.667 231.0 19590101 20030702 285370 99999 DUVAN RS 55.7 57.9 338.0 19530216 20160718 285410 99999 VERHNIJ UFALEJ RS 56.083 60.3 399.0 19590101 20170923 285450 99999 BOLSHAY KUYASH RS 55.833 61.1 229.0 19850701 20020814 285460 99999 TAKHTALYM RS 55.933 61.766999999999996 117.0 19740820 20010815 285480 99999 ARGAJAS RS 55.516999999999996 60.917 254.0 19590101 20030922 285490 99999 BRODOKALMAK RS 55.583 62.067 158.0 19590101 19950330 285520 99999 SADRINSK RS 56.067 63.65 89.0 19460311 20170918 285610 99999 TEBENJAKSKOE RS 56.167 65.45 61.0 19620618 19990727 285660 99999 MOKROUSOVO RS 55.817 66.783 115.0 19530216 20030207 285730 99999 ISHIM RS 56.1 69.433 82.0 19480101 20170923 285740 99999 BERDYUZHYE RS 55.8 68.317 129.0 19730101 20031226 285810 99999 KAMJSENKA RS 56.15 70.65 122.0 19890101 19970225 285860 99999 TJUKALINSK RS 55.867 72.2 118.0 19480101 20170923 285870 99999 SLADKOV RS 55.533 70.317 134.0 19890101 19950922 285880 99999 NAZYVOEVSK RS 55.567 71.367 126.0 19530216 20170921 285930 99999 BOL'SHERECH'E RS 56.1 74.633 77.0 19480101 20170923 285980 99999 SARGATSKOE RS 55.6 73.483 81.0 19530216 20160330 286010 99999 CISTOPOL' RS 55.317 50.617 179.0 19590102 19991124 286110 99999 MUSLJUMOVO RS 55.317 53.2 80.0 19620501 20020724 286120 99999 MUSLJUMOVO RS 55.317 53.183 79.0 20120125 20170920 286130 99999 DYURTYULI RS 55.483000000000004 54.867 155.0 19850701 20040919 286150 99999 BAKALY RS 55.183 53.8 125.0 19590101 20160718 286210 99999 BIRSK RS 55.417 55.533 186.0 19590101 20170923 286220 99999 STARONADEZDINO RS 55.317 56.417 129.0 19740820 19950311 286240 99999 KUSHNARENKOVO RS 55.1 55.35 162.0 19900201 19931220 286250 99999 BLAGOVESHCHENSK RS 55.016999999999996 55.983000000000004 19631014 19631022 286290 99999 ULU-TELJAK RS 54.9 56.95 119.0 19740820 19940207 286300 99999 ZLATOUST RS 55.2 59.667 538.0 19590101 20060828 286330 99999 TAGANAJ GORA (MTN) RS 55.367 59.917 1102.0 19590101 20021009 286360 99999 BERDYAUSH RS 55.15 59.117 378.0 19600322 19890727 286370 99999 KROPACEVO RS 55.0 57.983000000000004 415.0 19460309 20010508 286390 99999 BOGUS SOVIET RS 19850801 20021128 286420 99999 BALANDINO RS USCC 55.306000000000004 61.503 234.4 19320101 20170923 286450 99999 CHELYABINSK-GOROD RS 55.15 61.3 237.0 19460311 20170923 286470 99999 MEDVEDEVSKAJA RS 54.967 60.766999999999996 305.0 19600301 19940521 286550 99999 SUMIHA RS 55.233000000000004 63.317 178.0 19600106 20170918 286590 99999 KURTAMYS RS 54.917 64.433 158.0 19590101 20020530 286610 99999 KURGAN RS 55.467 65.4 74.0 19320101 20170918 286620 99999 LEBJAZJE RS 55.266999999999996 66.5 135.0 19590101 20020208 286630 99999 MORSHIKHA RS 55.367 67.083 132.0 19610801 19620721 286660 99999 MAKUSINO RS 55.25 67.3 140.0 19530216 20170626 286680 99999 POLOVINNOE RS 54.766999999999996 66.0 152.0 19600101 20010930 286730 99999 ILINSKOYE-IN-TYUMEN RS 55.45 69.317 92.0 19690101 20040820 286740 99999 PETUHOVO RS 55.1 67.967 136.0 19590101 20050616 286750 99999 BOGUS SOVIET RS 19890403 20021121 286760 99999 PETROPAVLOVSK KZ UACP 54.83 69.15 142.0 20110201 20170923 286790 99999 PETROPAVLOVSK KZ 54.833 69.15 136.0 19320101 20110201 286870 99999 BULAJEVO KZ 54.9 70.45 134.0 19590101 20110819 286880 99999 ISIL'KUL' KZ 54.9 71.25 125.0 19480101 20170923 286960 99999 KALACINSK RS 55.033 74.583 110.0 19530216 20170923 286980 99999 OMSK RS UNOO 54.967 73.311 94.8 19320101 20170923 287040 99999 CULPANOVO RS 54.5 50.417 78.0 19590101 20170918 287050 99999 CELNO-VERSINY RS 54.417 51.1 158.0 19611205 20170919 287100 99999 RAEVSKY RS 54.083 54.917 120.0 19590101 20030223 287110 99999 BUGUL'MA RS 54.617 52.8 303.0 19460309 20170921 287120 99999 TUIMAZY RS 54.583 53.733000000000004 135.0 19590101 20020712 287130 99999 BUZDYAK RS 54.567 54.516999999999996 171.0 19740820 20000219 287190 99999 AKSAKOVO RS 54.016999999999996 54.15 355.9 19590101 20170923 287220 99999 UFA RS UWUU 54.558 55.873999999999995 136.9 19320101 20170923 287260 99999 ARHANGELSKOJE RS 54.4 56.8 168.0 19590101 20010711 287300 99999 TIRJANSKI RS 54.2 58.567 533.0 19590901 20040717 287360 99999 UCALY RS 54.333 59.516999999999996 525.0 19740821 20030214 287410 99999 MIRNII RS 54.55 60.3 319.0 19930201 20011231 287450 99999 JUZNO-URALSK RS 54.45 61.25 217.0 19740820 19940422 287470 99999 PETROPAVLOVSKIJ ZER RS 54.016999999999996 60.117 314.0 20011119 20020503 287480 99999 TROIZK RS 54.083 61.617 192.0 19460312 20170923 287520 99999 POLOVINNOJE RS 54.7 63.833 217.0 19740820 20041202 287540 99999 OKTJABRSKI RS 54.4 62.733000000000004 168.0 19590101 20010519 287550 99999 UST-UJSKOJE RS 54.266999999999996 63.95 104.0 19530216 20010831 287560 99999 ZVERINOGOLOVSKOE KZ 54.467 64.867 117.0 19590803 20170430 287640 99999 PRESNOGORKOVKA KZ 54.483000000000004 65.767 158.0 19590101 20160423 287660 99999 BLAGOVESHCHENKA KZ 54.367 66.967 151.0 19480101 20170923 287670 99999 FEDOROVKA KZ 54.217 65.5 166.0 19630304 19631231 287750 99999 YAVLENKA KZ 54.333 68.467 19590101 19760107 287850 99999 VOZVISHEN SOVKHOZ KZ 54.433 70.917 127.0 19590102 20080905 287854 99999 ABAKAN RS UNAA 53.74 91.385 253.3 19990114 20170923 287860 99999 POLTAVKA KZ 54.367 71.75 125.0 19530216 20170923 287910 99999 SERBAKUL' RS 54.633 72.433 115.0 19610215 20170923 287970 99999 ODESSKOE RS 54.2 72.967 125.0 19480101 20170923 287980 99999 PAVLOGRADKA RS 54.2 73.55 125.0 19860101 20030227 287990 99999 CERLAK RS 54.167 74.8 115.0 19480101 20170923 288010 99999 KRASNOE POSELENIE RS 53.967 50.367 65.0 19590101 20020519 288020 99999 SERGIYEVSK RS 53.933 51.167 19600424 19630322 288060 99999 BUGURUSLAN RS 53.617 52.45 92.0 19361231 20170923 288070 99999 SAMARA (SNYSLJAEVKA) RS 53.25 50.45 40.0 19961001 20131223 288080 99999 KROTOVKA RS 53.283 51.167 45.0 19590926 20021101 288150 99999 ABDULINO RS 53.7 53.65 164.0 19620401 20020822 288230 99999 TUKAN RS 53.833 57.516999999999996 548.0 19610901 20031105 288250 99999 STERLITAMAK RS 53.583 55.934 137.0 19460309 20170923 288270 99999 STERLIBASEVO RS 53.467 55.266999999999996 279.0 19740820 20020120 288290 99999 VERKHNIY AVZYAN RS 53.516999999999996 54.067 457.0 19850701 20020809 288310 99999 BELORECK RS 53.967 58.35 568.1 19530216 20010903 288330 99999 VERHNEURAL'SK RS 53.883 59.2 403.0 19320101 19950626 288360 99999 FERSHAMPENUAZ RS 53.516999999999996 59.8 350.0 19610804 20020504 288380 99999 MAGNITOGORSK RS 53.35 59.083 384.0 19351231 20170923 288430 99999 KOMSOMOLEC KZ 53.75 62.033 187.0 19590102 20020319 288440 99999 BORODINOVSKIY RS 53.533 60.766999999999996 280.0 19740820 20040918 288540 99999 FYODOROV SOVKHOZ KZ 53.75 63.167 184.0 19590101 19631218 288630 99999 MARYEVKA KZ 53.766999999999996 67.383 137.0 19600101 19631231 288670 99999 SARYKOL KZ 53.317 65.55 216.0 19530216 20170923 288730 99999 KRASNOARMEJSK KZ 53.833 69.783 153.0 19530216 19710630 288770 99999 VOLODARSKOE KZ 53.317 68.1 319.0 19590101 20020319 288790 99999 KOKSHETAY KZ 53.283 69.383 229.0 19320101 20170923 288840 99999 CHKALOVO KZ 53.617 70.417 19610301 19631224 288860 99999 KZIL-TUS SOVKHOZ KZ 53.633 72.367 138.0 19630602 20030223 288950 99999 RUSSKAJA POLIANA RS 53.783 73.883 125.0 19570701 20050630 289000 99999 KURUMOCH RS UWWW 53.505 50.163999999999994 145.4 19460101 20170923 289010 99999 BEZYMYANKA RS 53.233000000000004 50.167 136.0 19361231 19371231 289060 99999 BUZULUK RS 52.783 52.283 75.0 19800715 20050728 289080 99999 AVANGARD ZERNOSOVHOZ RS 52.617 51.283 88.0 19611205 20170917 289090 99999 BUZULUK RS 52.817 52.217 80.0 19530216 20170923 289120 99999 ROMANOVKA RS 53.033 54.067 149.0 19611205 20020731 289160 99999 SARLYK RS 52.933 54.75 190.0 19591201 20170923 289250 99999 MELEUZ RS 52.917 55.917 180.0 19530216 20050629 289270 99999 JERMOLAJEVO RS 52.717 55.8 247.0 19630603 20010726 289380 99999 KIZILSKOJE RS 52.733000000000004 58.9 316.0 19590101 20010608 289390 99999 KALININSK RS 52.5 59.7 381.0 19590101 19970218 289410 99999 KARTALY RS 53.05 60.667 301.0 19590101 20030306 289480 99999 GEORGIYEVKA KZ 52.717 61.167 260.0 19630614 19890104 289520 99999 KOSTANAY KZ UAUU 53.217 63.617 170.0 19351231 20170923 289570 99999 TOBOL KZ 52.683 62.6 208.0 19530216 20020319 289660 99999 RUZAEVKA KZ 52.817 66.967 227.0 19531101 20170923 289670 99999 KARASUL KZ 52.667 65.5 209.0 19590101 19741025 289760 99999 DOROGOVKA KZ 52.85 69.417 19630601 19631124 289780 99999 BALKASINO KZ 52.533 68.75 398.0 19590101 20170923 289840 99999 SUCINSK KZ 52.95 70.217 395.0 19530216 20170923 289860 99999 ZOLOTAJA NIVA KZ 52.967 71.933 196.0 19630302 20010815 289930 99999 GOLUBOVKA KZ 53.15 74.2 126.0 19610915 20011014 290160 99999 MURASOVA RS 59.516999999999996 79.517 39.0 19620401 19631231 290230 99999 NAPAS RS 59.85 81.95 76.0 19480101 20170923 290370 99999 BEREZOVKA RS 59.383 82.833 68.0 19530216 20071106 290590 99999 ALEKSANDROVSKIJ SHLYUZ RS 59.433 89.28299999999999 102.2 19591101 20170923 290680 99999 NAZIMOVO RS 59.5 90.928 67.0 19590101 20170923 290750 99999 CHIRIMBA-IN-KRASNOY RS 59.717 93.43299999999999 454.0 19590101 19880419 291030 99999 KATYLGA RS 59.067 76.733 69.0 19530216 19950423 291110 99999 SREDNY VASJUGAN RS 59.217 78.233 69.0 19480101 20170923 291220 99999 KARGASOK RS 59.05 80.833 57.0 19480101 20170923 291280 99999 PARABEL' RS 58.7 81.5 63.0 19530216 20020531 291490 99999 STEPANOVKA RS 58.633 86.73299999999999 105.0 19570702 20170923 291980 99999 KLIMINO-IN-KRASNOY RS 58.633 98.73299999999999 150.0 19530901 19891020 292020 99999 GRABTSOVY RS 58.35 76.383 90.0 19530216 19570630 292030 99999 NOVYJ VASYUGAN RS 58.583 76.517 80.0 19570718 20170923 292090 99999 MAJSK RS 57.8 77.217 99.0 19480101 20170923 292240 99999 STARICA RS 58.133 80.583 80.0 19550108 19960503 292310 99999 KOLPASEVO RS 58.317 82.95 75.0 19320101 20170923 292330 99999 RYBINSK TOMSKAYA RS 58.383 84.75 72.0 19530216 19601105 292410 99999 PALOCKA RS 58.383 84.6 81.0 19600218 19960418 292470 99999 BATURINO RS 57.75 85.2 90.0 19600424 20000209 292530 99999 LOSINOBORSKOE RS 58.45 89.46700000000001 133.0 19530216 20170923 292630 99999 JENISEJSK RS UNII 58.45 92.15 78.0 19320101 20170923 292650 99999 MAKOVSKOYE RS 59.2 90.9 162.0 19610101 19891008 292740 99999 STRELKA RS 58.083 93.0 90.0 19590101 20170923 292760 99999 MOTYGINO RS 58.183 94.75 161.1 19600103 20170923 292820 99999 BOGUCANY RS 58.383 97.45 133.0 19530216 20170923 292890 99999 GONDA RS 57.85 97.4 378.0 19590101 20020724 293130 99999 PUDINO RS 57.533 79.431 97.0 19480101 20170923 293280 99999 BAKCHAR RS 57.0 82.06700000000001 110.0 19480101 20170923 293320 99999 MOLCHANOVO RS 57.583 83.78299999999999 114.0 19530216 20170923 293350 99999 ZHUKOVA RS 57.383 83.917 106.0 19550113 19580417 293400 99999 19870511 19870511 293480 99999 PERVOMAJSKOE RS 57.067 86.21700000000001 114.0 19480101 20170923 293540 99999 TEGULDET RS 57.3 88.18299999999999 19530216 19601103 293550 99999 TUTALO-CULYM RIVER RS 57.45 88.46700000000001 140.0 19600105 19960121 293560 99999 CHINDAT-IN-KRASNOY RS 57.367 89.31700000000001 150.0 19480101 19890830 293630 99999 PIROVSKOE RS 57.633 92.26700000000001 179.0 19480101 20170923 293650 99999 PLATONOVKA RS 57.266999999999996 91.167 221.0 19590101 19600906 293670 99999 NOVOBIRILYUSSY RS 56.967 90.68299999999999 180.6 19530216 20170923 293740 99999 KAZACHINSKOE RS 57.683 93.26700000000001 92.9 19590101 20170923 293760 99999 TASEYEVO & RS 57.217 94.917 147.0 19530804 19890323 293790 99999 TASEEVO RS 57.2 94.55 168.0 19870701 20170923 293820 99999 MOLCHANOVO RS 57.583 83.78299999999999 128.0 19480101 19530215 293930 99999 CHERVYANKA RS 57.65 99.53299999999999 220.5 19530216 20170923 294010 99999 SEDELNIKOVO RS 56.95 75.3 90.0 19600424 19970728 294050 99999 KYSTOVKA RS 56.6 76.567 116.0 19480101 20170923 294070 99999 MUROMCEVO RS 56.383 75.25 87.0 19600708 19900123 294180 99999 SEVERNOE RS 56.35 78.35 126.0 19480101 20170923 294300 99999 TOMSK RS 56.5 84.917 139.0 19320101 20170923 294330 99999 MALOBRAGINO RS 56.867 84.367 81.0 19540207 19630105 294560 99999 TJUHTET RS 56.533 89.31700000000001 205.0 19530216 20170923 294640 99999 BOL'SOJ ULUJ RS 56.65 90.55 231.0 19460131 20170923 294670 99999 ACHINSK RS 56.283 90.51700000000001 257.2 19530216 20170923 294710 99999 BOL'SHAJA MURTA RS 56.9 93.133 180.0 19480101 20170923 294770 99999 SUHOBUZIMSKOE RS 56.5 93.28299999999999 164.0 19610303 20170923 294810 99999 DZERZHINSKOE RS 56.85 95.21700000000001 188.0 19480101 20170923 294830 99999 DOLGIY MOST RS 56.766999999999996 96.8 257.0 19590101 19880502 294850 99999 ABAN RS 56.683 96.05 244.5 20120328 20170923 294980 99999 SITKINO RS 56.35 98.367 221.0 19480102 20070227 295240 99999 KRESCHENKA RS 55.85 80.033 129.0 19530216 20170923 295320 99999 KOZEVNIKOVO RS 56.25 84.0 113.0 19530216 20010621 295340 99999 PIHTOVKA RS 55.983000000000004 82.7 127.0 19480101 19911118 295390 99999 BOLOTNOE RS 55.667 84.4 193.0 19530216 20030127 295400 99999 ANZERO-SUDZENSK RS 56.117 86.0 259.0 19530216 19951120 295410 99999 TAJGA RS 56.067 85.617 251.0 19530216 19970518 295420 99999 JAJA RS 56.2 86.43299999999999 139.0 19480101 19530215 295480 99999 BARZAS RS 55.717 86.3 208.0 19530218 19970705 295510 99999 MARIINSK RS 56.183 87.68299999999999 144.0 19530216 20170923 295520 99999 TJAZIN RS 56.117 88.51700000000001 222.0 19530216 20070226 295530 99999 BOGOTOL RS 56.217 89.55 290.0 19460102 20170923 295570 99999 TISUL' RS 55.75 88.31700000000001 211.0 19530216 20170923 295580 99999 GGP KATEK RS 55.533 89.2 318.8 20120328 20170923 295590 99999 SHARYPOV RS 55.55 89.23299999999999 274.0 19840314 20011226 295610 99999 NAZAROVO RS 56.033 90.31700000000001 255.9 20120328 20170923 295620 99999 KEMCHUG RS 56.1 91.667 332.0 19590101 20170923 295630 99999 KACA RS 56.117 92.2 479.0 20051018 20170923 295660 99999 SHUMIHA RS 55.933 92.28299999999999 274.5 20120328 20170923 295670 99999 KRUTOYARSKIY RS 55.783 90.133 371.0 19590101 19871230 295700 99999 KRASNOJARSK OPYTNOE POLE RS 56.067 92.73299999999999 234.6 19960701 20160225 295710 99999 MININO RS 56.067 92.73299999999999 234.6 20120328 20170923 295720 99999 EMEL' YANOVO RS 56.183 92.6 206.7 20070226 20070226 295740 99999 KRASNOJARSK RS 56.0 92.883 277.0 19320101 19960416 295750 99999 SOROKINO RS 55.883 93.383 338.0 19460108 19530214 295760 99999 UJAR RS 55.817 94.3 375.0 19530216 20170923 295780 99999 SHALINSKOE RS 55.717 93.75 399.2 19590101 20170923 295800 99999 SOLYANKA RS 56.167 95.26700000000001 357.2 20120328 20170923 295810 99999 KANSK RS 56.2 95.633 207.0 19320106 20170923 295830 99999 KLYUCHI-IN-KRASNOY RS 56.117 97.31700000000001 338.0 19530216 20011110 295870 99999 IRBEJSKOE RS 55.633 95.46700000000001 252.0 19530216 20170923 295900 99999 NOVOCUNSKOE RS 56.15 99.3 265.0 19590101 20090415 295940 99999 TAJSHET RS 55.95 98.0 307.0 19530906 20170923 295980 99999 ALZAMAY RS 55.55 98.667 295.0 19530216 19540225 296020 99999 CHANY RS 55.3 76.75 111.0 19530218 20170923 296050 99999 TATARSK RS 55.2 76.01899999999999 112.0 19480101 20170923 296120 99999 BARABINSK RS 55.333 78.308 120.0 19320102 20170923 296130 99999 UBINSKOE RS 55.3 79.617 140.0 19480101 20020109 296210 99999 19870519 19870519 296220 99999 PENKI-IN-NOVOSIBIR RS 55.483000000000004 81.6 146.0 19530216 20020111 296250 99999 CULYM RS 55.1 80.967 140.0 19530216 20170923 296260 99999 KOCENEVO RS 55.016999999999996 82.23299999999999 159.0 19480101 19950703 296300 99999 LENINSKIY RS 55.167 83.133 220.0 19620601 19631211 296310 99999 KOLYVAN' RS 55.3 82.75 137.0 19530216 20170923 296320 99999 MOSKOVO RS 55.3 83.6 215.0 19530216 20020102 296340 99999 TOLMACHEVO RS UNNT 55.013000000000005 82.65100000000001 111.3 19320101 20170923 296360 99999 TOGUCHIN RS 55.233000000000004 84.4 173.0 19480101 20170923 296380 99999 NOVOSIBIRSK (OGOURTSOVO) RS 54.9 82.95 133.0 20040803 20170923 296390 99999 KOURAK RS 54.833 84.7 195.0 19530908 19631115 296420 99999 KEMEROVO RS UNEE 55.27 86.10700000000001 263.0 19460101 20170923 296450 99999 KEMEROVO CGMS RS 55.25 86.21700000000001 148.0 20090225 20170923 296490 99999 KRAPIVINO RS 55.0 86.8 151.0 19530219 19960627 296530 99999 UZUR RS 55.3 89.81700000000001 387.0 19480101 20170923 296540 99999 CENTRAL'NYJ RUDNIK RS 55.217 87.65 495.0 19530216 20170923 296580 99999 ORDZHONIKIDZEVSKIY RS 54.766999999999996 88.96700000000001 610.0 19740429 19891026 296620 99999 BALAHTA RS 55.383 91.617 321.0 19480101 20170923 296630 99999 DERBINO RS 55.367 92.3 221.0 19570711 19631231 296640 99999 SVETLOLYUBOVO RS 55.083 90.85 325.3 19590101 20170923 296650 99999 LEGOATAYEVO RS 55.133 91.03299999999999 327.0 19530216 19581030 296750 99999 KOLBA RS 55.083 93.367 477.0 19530216 20121031 296760 99999 AGINSKOE RS 55.25 94.883 337.0 19480101 20170923 296980 99999 NIZNE-UDINSK RS UINN 54.883 99.03299999999999 410.0 19320104 20170923 297010 99999 LJUBIMOVKA RS 54.667 75.1 111.0 19601201 19950411 297020 99999 CISTOOZERNOJE RS 54.717 76.717 111.0 19590101 20030301 297060 99999 KUPINO RS 54.367 77.283 115.0 19480101 20170923 297120 99999 ZDVINSK RS 54.7 78.667 113.0 19530216 20170923 297130 99999 19870511 19870511 297160 99999 DOVOLNOYE RS 54.483000000000004 79.667 132.0 19590101 19620502 297220 99999 UZANIHA RS 54.667 81.05 175.0 19530418 20021120 297240 99999 KOCHKI RS 54.333 80.467 160.0 19530216 20170923 297260 99999 ORDYNSKOE RS 54.367 81.883 132.0 19480101 20170923 297350 99999 POSEVNAJA RS 54.3 83.314 293.0 19530216 19980722 297360 99999 MASLJANINO RS 54.333 84.21700000000001 198.0 19480101 20170923 297420 99999 KOLCHUGINO RS 54.667 86.18299999999999 276.0 19320103 19631231 297450 99999 BELOVO RS 54.45 86.367 226.0 19530216 20050117 297490 99999 ZHERNOVO RS 54.15 87.31700000000001 291.0 19530219 19631221 297520 99999 NENASTNAYA RS 54.75 88.81700000000001 1183.0 19530302 20170923 297560 99999 SIRA RS 54.5 89.93299999999999 475.0 19460101 20090524 297590 99999 KOMMUNAR RS 54.333 89.28299999999999 847.0 19590101 20170923 297620 99999 KHAKASSKIY RS 54.6 90.93299999999999 281.0 19590101 19621209 297660 99999 IDRINSKOE RS 54.367 92.133 282.0 19480101 20170923 297680 99999 LEBYAZH'E RS 54.2 91.583 252.8 20120330 20170923 297710 99999 SHCHETINKINO RS 55.35 92.1 804.3 20120330 20170923 297720 99999 ARTEMOVSK RS 54.367 93.43299999999999 479.3 19530216 20170923 297890 99999 VERHNJAJA GUTARA RS 54.217 96.96700000000001 984.0 19530216 20170923 297940 99999 BIRJUSA RS 54.383 97.78299999999999 802.0 19590102 20010529 298020 99999 MIKHAILOVKA KZ 53.817 76.533 114.0 19590102 20170923 298070 99999 ERTIS KZ 53.35 75.45 94.0 19480101 20170923 298130 99999 KRASNOOZERSK RS 53.967 79.233 144.0 19530218 20170923 298140 99999 KARASUK RS 53.733000000000004 78.017 115.0 19530216 20170923 298160 99999 HABARY RS 53.617 79.55 138.0 19530216 20021222 298220 99999 KAMEN'-NA-OBI RS 53.817 81.267 129.0 19460101 20170923 298230 99999 19870511 19870511 298270 99999 BAEVO RS 53.266999999999996 80.767 122.0 19530218 20170923 298320 99999 TALMENKA RS 53.817 83.583 144.0 19530216 20090627 298360 99999 SOROKINO RS 53.75 84.95 221.0 19530216 20011027 298370 99999 SELABOLIHA RS 53.4 82.6 170.0 19570701 20020828 298380 99999 BARNAUL RS UNBB 53.364 83.539 255.1 19320101 20170923 298430 99999 BAYDAYEVKA RS 53.766999999999996 87.23299999999999 213.0 19350329 19550630 298460 99999 NOVOKUZNETSK RS UNWW 53.733000000000004 87.18299999999999 308.0 19550701 20170615 298480 99999 TOGUL RS 53.467 85.917 272.0 19480101 20090627 298490 99999 KUZEDEEVO RS 53.333 87.167 293.0 19530216 19970328 298540 99999 MEZDURECENSK RS 53.683 88.05 242.0 19600102 19961116 298550 99999 TEBA RS 53.633 88.56700000000001 304.0 19730101 20050108 298560 99999 ASUK RS 53.633 89.45 783.0 19610509 19620823 298580 99999 NEOZIDANNIJ PRIISK RS 53.283 89.167 527.0 19530216 20090523 298620 99999 HAKASSKAJA RS 53.766999999999996 91.31700000000001 256.0 19960701 20070328 298640 99999 UYBAT RS 53.717 90.367 525.0 19480101 20170923 298650 99999 ABAKAN RS UNKA 53.75 91.4 245.0 19330215 20011024 298660 99999 MINUSINSK RS 53.717 91.7 254.5 19320213 20170923 298690 99999 ERMAKOVSKOE RS 53.3 92.417 298.0 19480101 20170923 298700 99999 KURAGINO RS 53.883 92.667 284.0 19590222 20030512 298710 99999 BEREZOVSKOYE RS 53.933 92.8 311.0 19530216 19620508 298740 99999 KARATUZSKOE RS 53.583 92.883 319.7 20120330 20170923 298760 99999 KAZYR RS 53.683 94.2 446.1 19590101 20170923 298890 99999 ... RS 53.383 97.15 19611025 19620518 298920 99999 HADAMA RS 53.95 98.81700000000001 705.0 19530218 20170923 298940 99999 ALYGDZER RS 53.633 98.21700000000001 918.0 19480101 20010926 299060 99999 USPENKA KZ 52.917 77.417 112.0 19590801 19860902 299150 99999 SLAVGOROD RS 52.967 78.65 126.0 19480101 20170923 299230 99999 REBRIHA RS 53.067 82.3 219.0 19530216 20170923 299250 99999 ZAVYALOVO-IN-ALTAY RS 52.833 80.95 165.0 19530216 20011104 299370 99999 ALEJSKAJA RS 52.516999999999996 82.76700000000001 175.0 19480101 20170923 299390 99999 BIJSK ZONAL'NAYA RS 52.667 84.917 225.0 19320101 20170923 299460 99999 KONDOMA RS 52.867 87.28299999999999 354.0 19530216 20050627 299550 99999 UST-KABIRZA RS 52.817 88.45 416.0 19690101 19950715 299560 99999 TASTYP RS 52.8 89.917 455.0 19480101 20170923 299620 99999 BEJA RS 53.05 90.917 469.0 19530216 20090524 299630 99999 RAZYEZZHEYE RS 53.117 92.45 326.0 19590101 20150624 299730 99999 VERHNI AMIL RS 53.133 94.46700000000001 765.0 19590901 19960405 299740 99999 OLEN' YA RECHKA RS 52.8 93.23299999999999 1398.5 19361231 20170923 299980 99999 ORLIK RS 52.5 99.81700000000001 1376.0 19970101 20170923 299990 99999 ORLIK (MTN STN) RS 52.5 99.81700000000001 1570.0 19480105 19990910 300140 99999 CEMDALSK RS 59.75 103.3 277.0 19591101 20110316 300280 99999 IKA RS 59.283 106.167 352.0 19530216 20170923 300370 99999 NEPA RS 59.25 108.23299999999999 323.0 19550701 20010528 300540 99999 VITIM RS 59.45 112.583 190.0 19340805 20170923 300740 99999 MACHA RS 59.933 117.6 163.8 19590901 20170923 300890 99999 DZHIKIMDA RS 59.016999999999996 121.76700000000001 175.0 19590101 20170923 301020 99999 KEZMA RS 58.967 101.083 185.0 19370101 19960309 301170 99999 UST-ILIMSK RS 58.2 102.75 401.0 19530216 20020421 301270 99999 TOKMA RS 58.233000000000004 105.73299999999999 438.8 19570701 20170923 301350 99999 19870519 19870519 301360 99999 ICHERA RS 58.55 109.76700000000001 234.0 19480101 19840513 301380 99999 CECUJSK RS 58.1 108.68299999999999 245.0 19530216 20020501 301390 99999 PUSHCHINA RS 58.183 109.333 240.0 19811101 19890717 301420 99999 VIZIRNYJ RS 58.883 111.25 227.0 19530216 20140831 301510 99999 VORONCOVKA RS 58.85 112.9 203.0 19480101 20040630 301570 99999 MAMA RS 58.317 112.867 224.0 19530216 20170923 301650 99999 SVETLY RS 58.417 116.01700000000001 422.5 19550322 20150917 301730 99999 TYANYA RS 59.0 119.8 198.5 19590102 20170923 301770 99999 ... RS 58.083 118.25 457.2 19620805 19630324 301980 99999 SUON-TIT RS 58.067 123.71700000000001 416.8 19600108 20170923 302170 99999 NIZHNE-ILIMSK RS 57.183 103.25 19530216 19740112 302190 99999 MAKSIMOVO RS 57.1 105.0 354.0 19560101 20010529 302290 99999 VERHNE-MARKOVO RS 57.333 107.06700000000001 271.0 19530216 19950619 302300 99999 KIRENSK RS UIKK 57.766999999999996 108.06700000000001 258.0 19320101 20170923 302460 99999 GORNO-CUJSKI RS 57.667 111.667 332.0 19550310 20010511 302520 99999 MAMAKAN RS 57.817 114.01700000000001 249.0 20051229 20170923 302530 99999 BODAJBO RS UIKB 57.85 114.2 278.0 19480101 20051228 302550 99999 MAMAKAN RS 57.8 114.083 532.0 19690101 20010704 302630 99999 NICATKA RS 57.833 117.667 562.0 19600114 20020112 303050 99999 19740425 19740926 303070 99999 BRATSK RS 56.367 101.7 489.0 20040706 20090225 303090 99999 BRATSK RS UIBB 56.371 101.698 490.7 19340202 20170923 303120 99999 ILIMSK RS 56.766999999999996 103.833 274.9 19530216 19730626 303170 99999 ZAJARSK RS 56.2 102.833 427.0 19731213 20080115 303200 99999 UST'-KUT RS 56.867 105.7 669.0 19530216 20001025 303210 99999 USTKUT SOUTHWEST RS 56.75 105.48299999999999 596.0 19480101 19520629 303230 99999 UST' KUT RS 56.8 105.8 325.7 20120425 20170923 303280 99999 ORLINGA RS 56.05 105.833 338.0 19530216 20170923 303370 99999 KAZACHINSK RS 56.317 107.617 362.0 19480101 20170923 303560 99999 ULON-MAKIT RS 56.367 114.633 516.0 19730102 20010528 303640 99999 MUJA RS 56.5 115.667 474.0 19480101 20020218 303700 99999 BOGUS SOVIET RS 19881103 19891020 303720 99999 CHARA RS 56.9 118.26700000000001 711.0 19480101 20170923 303740 99999 BOLSAJA-LEPRINDA RS 56.65 117.56700000000001 1000.0 19550304 20020321 303790 99999 KATUGINO RS 56.0 119.45 996.0 19580219 20010528 303850 99999 UST'-NJUKZHA RS 56.583 121.48299999999999 426.0 19530223 20170923 303930 99999 CULMAN/NERIUGRI RS UE40 56.833 124.867 859.0 19480101 20170923 304050 99999 TANGUJ RS 55.383 101.03299999999999 423.0 19480101 20170923 304060 99999 ARTUMEJ RS 55.617 102.31700000000001 448.0 19730128 20010925 304120 99999 KOCHENGA-IN-IRKUT RS 55.917 104.06700000000001 325.0 19590104 19790527 304130 99999 JASACNAJA RS 55.833 104.23299999999999 331.0 19790601 20021011 304240 99999 GOLOVSKOE RS 55.483000000000004 105.48299999999999 372.0 19370109 19951220 304300 99999 ONOKOCHAN SOUTH RS 55.533 109.18299999999999 453.0 19530216 19600527 304320 99999 GOUJOKIT RS 55.717 109.06700000000001 676.0 19600713 20020315 304330 99999 NIZHNEANGARSK RS 55.783 109.55 487.0 19480101 20170923 304340 99999 TUKOLON RS 55.4 107.71700000000001 457.0 19590101 19590921 304360 99999 BAYKALSKOYE RS 55.367 109.18299999999999 478.0 19590115 19740303 304370 99999 KARAM RS 55.15 107.617 497.0 19600621 20050312 304380 99999 TALAYA RS 55.333 109.167 19530216 19541223 304390 99999 TOMPA RS 55.117 109.75 465.0 19530216 20170923 304550 99999 UAKIT RS 55.467 113.617 1097.0 19480101 20170923 304570 99999 BAUNT RS 55.266999999999996 113.133 1078.0 19530216 20030328 304610 99999 TILISMA RS 55.8 115.43299999999999 830.0 19590101 20010528 304690 99999 KALAKAN RS 55.117 116.76700000000001 613.0 19370402 20141112 304710 99999 SREDNIJ KALAR RS 55.867 117.367 750.0 19530216 20010528 304730 99999 IMENI ODINNADTSATOGO RS 55.9 119.6 1080.0 19480105 19580219 304840 99999 SREDNJAJA OLEKMA RS 55.433 120.667 531.0 19570702 20010528 304930 99999 NAGORNYJ RS 55.967 124.883 861.0 19361231 20170923 304970 99999 UST-URKIMA RS 55.3 123.167 522.0 19690101 20020924 304980 99999 SREDNAYAYA NYUKZHA RS 55.167 123.5 557.2 19530219 19760105 304990 99999 TYNDA RS 55.183 124.667 528.0 19530216 20170923 305040 99999 TULUN RS 54.6 100.633 522.0 19480101 20170923 305070 99999 IKEJ RS 54.183 100.083 527.0 19530216 20081018 305130 99999 ZHAMENKA RS 54.7 104.85 470.0 19530216 19550531 305140 99999 UST-UDA RS 54.167 103.01700000000001 427.0 19480102 20040315 305210 99999 ZHIGALOVO RS 54.8 105.167 418.0 19480101 20170923 305260 99999 TIRKA RS 54.483000000000004 107.06700000000001 650.8 19550701 20170827 305360 99999 DAVSA RS 54.35 109.51700000000001 469.0 19550415 20010528 305370 99999 SOLNETHNAYA RS 54.033 108.26700000000001 464.0 19530216 20050922 305420 99999 TASSA RS 54.85 111.15 563.0 19480103 20060726 305440 99999 SAKHULI RS 54.417 110.4 573.0 20011121 20040501 305450 99999 POD-LKAT RS 54.433 111.367 874.0 19600105 19600829 305470 99999 KURUMKAN RS 54.317 110.31700000000001 509.0 19550315 20010528 305490 99999 KARAFTIT RS 54.2 111.95 1302.0 19480101 20041117 305500 99999 TSIPIKAN WEST RS 54.917 113.15 1251.0 19550305 19600623 305510 99999 VERKHNIY TSIPIKAN RS 54.85 113.06700000000001 1166.0 19540301 20040424 305520 99999 ZADORNY WEST RS 54.7 113.5 1375.0 19590101 19591208 305540 99999 BAGDARIN RS 54.483000000000004 113.583 995.0 19480101 20170923 305550 99999 TROICKIJ PRIISK RS 54.617 113.133 1314.0 19530216 20030618 305650 99999 UST-KARENGA RS 54.45 116.51700000000001 686.0 19550315 20020910 305670 99999 BUGARIHTA RS 54.05 115.01700000000001 738.0 19550315 20010528 305760 99999 TUPIK RS 54.433 119.9 644.0 19480101 20010528 305790 99999 TUNGIR MINE RS 54.117 119.35 19530216 19630401 305850 99999 KROPOCHEVA SOUTHEAST RS 54.333 120.5 757.0 19590101 19630204 305970 99999 URUSA RS 54.033 122.9 454.0 19530216 19910725 305980 99999 TAKHTAMYGDA NE RS 54.15 123.667 425.0 19530216 19631110 305990 99999 TIGAN-URKAN RS 54.083 124.76700000000001 379.0 19590130 19880915 306030 99999 ZIMA RS 53.933 102.05 458.0 19480101 20170923 306040 99999 ... RS 53.5 100.0 19600528 19601228 306050 99999 SARAM RS 53.333 101.18299999999999 600.0 19530310 20010528 306060 99999 ZALARI RS 53.6 102.53299999999999 450.0 19690101 20070921 306120 99999 BALAGANSK RS 54.0 103.06700000000001 427.0 19530216 20170923 306170 99999 CEREMHOVO RS 53.167 103.083 598.0 19690101 20080429 306180 99999 BOHAN RS 53.133 103.76700000000001 446.0 19530216 20011112 306200 99999 SARMA RS 53.1 106.81700000000001 464.0 19550701 19910326 306220 99999 KACUG RS 53.967 105.9 533.0 19480101 20170923 306270 99999 BAJANDAJ RS 53.1 105.53299999999999 762.0 19480101 20170923 306320 99999 BOLSOJ USKAN ISLAND RS 53.85 108.6 460.0 19550701 20020615 306350 99999 UST'-BARGUZIN RS 53.417 109.01700000000001 461.0 19530216 20170923 306360 99999 BARGUZIN RS 53.617 109.633 489.0 19320106 20170923 306370 99999 UZUR RS 53.317 107.73299999999999 461.6 19550701 20170923 306380 99999 MAKSIMIHA RS 53.266999999999996 108.75 475.0 19550701 20000108 306390 99999 BOGUS SOVIET RS 19871002 20020916 306490 99999 UST-ZAZA RS 53.183 111.71700000000001 973.0 19550306 20010528 306500 99999 ROMANOVKA RS 53.2 112.78299999999999 923.0 19480101 20170923 306510 99999 BOLSOJ AMALAT RS 53.917 113.417 935.0 19550315 20010625 306550 99999 INGUR RS 53.583 113.76700000000001 810.0 19590101 20010528 306570 99999 POLIVTSEVO RS 53.283 112.78299999999999 1203.0 19550312 19890929 306580 99999 ALEKSEYEVKA RS 53.133 113.617 914.0 19740620 20011025 306640 99999 TUNGOKOCEN RS 53.533 115.617 811.0 19480101 20170923 306670 99999 KIKER RS 53.167 115.833 596.0 19550315 20020319 306690 99999 ZILOVO RS 53.067 117.48299999999999 708.0 19480101 20150413 306730 99999 MOGOCHA RS 53.75 119.73299999999999 625.0 19480101 20170923 306750 99999 KSEN'EVSKAJA RS 53.55 118.71700000000001 582.0 19480108 20011209 306760 99999 SOBOLINA RS 53.383 119.68299999999999 456.0 19530218 19590408 306790 99999 GORBICA RS 53.1 119.21700000000001 384.0 19530216 20141112 306820 99999 AMAZAR RS 53.867 120.867 472.0 19530216 20020516 306830 99999 EROFEJ PAVLOVIC RS 53.967 121.93299999999999 522.0 19311231 20170923 306860 99999 IGNASINO RS 53.467 122.4 295.0 19530216 20170923 306880 99999 POKROVKA RS 53.35 121.55 314.0 19530216 20010528 306920 99999 SKOVORODINO RS 54.0 123.96700000000001 398.0 19480101 20141029 306930 99999 TALDAN RS 53.7 124.833 462.1 19530216 19590731 306950 99999 DZALINDA RS 53.467 123.9 266.0 19530216 20170923 307000 99999 KHORYO-IN-BURYAT RS 52.167 100.35 1590.0 19570701 19891023 307020 99999 ... RS 52.9 101.2 19600612 19601230 307030 99999 INGA RS 52.967 101.98299999999999 543.0 19480101 20170923 307080 99999 ILCIR RS 52.05 101.06700000000001 2083.0 19550701 19960326 307100 99999 IRKUTSK RS UIII 52.268 104.389 510.5 19320101 20170923 307110 99999 MIKHAYLOVKA RS 52.95 103.28299999999999 535.0 19530216 19631230 307120 99999 USOL' E-SIBIRSKOE RS 52.783 103.68299999999999 437.4 19740429 20131225 307130 99999 UST'ORDYNSKIJ RS UIIO 52.817 104.76700000000001 526.0 19480101 20010926 307140 99999 DABADY RS 52.1 102.7 755.9 19530315 20170923 307150 99999 ANGARSK RS 52.483000000000004 103.85 437.0 19960901 20050416 307180 99999 SMOLENSHCHINA RS 52.25 104.2 437.0 19730108 19891030 307190 99999 IRKUTSK OBSERVATORY RS 52.266999999999996 104.31700000000001 468.0 19570701 19740416 307250 99999 KRESTOVAYA SE RS 52.65 106.417 568.0 19550701 19590131 307260 99999 SUHAJA RS 52.567 107.133 461.0 19590130 20060426 307270 99999 BOLSOJE-GOLOUSTNOJ RS 52.033 105.4 461.0 19570701 20020606 307290 99999 KABANSK RS 52.05 106.65 467.0 19480101 20021107 307300 99999 CHEREMUKHOVO RS 52.766999999999996 108.133 462.0 19530216 19600731 307310 99999 GORJACINSK RS 52.983000000000004 108.28299999999999 487.0 19480101 20170923 307330 99999 TAKARKHAY NW RS 52.75 109.0 1043.0 19591006 19600814 307380 99999 VERKHNIYS TALTSY NE RS 52.05 108.93299999999999 592.0 19550315 19620105 307390 99999 HORINSK RS UIUH 52.167 109.78299999999999 666.1 19480101 20170923 307410 99999 ZAMAKTA RS 52.766999999999996 109.96700000000001 1286.0 19480101 20170923 307450 99999 SOSNOVO-OZERSKOE RS 52.533 111.55 952.0 19480101 20170923 307500 99999 CHITA /NORTHWEST FLO RS 52.067 113.43299999999999 659.9 19600127 19601221 307510 99999 TELEMBA RS 52.733000000000004 113.26700000000001 929.0 19530216 20020418 307570 99999 BEKLEMISEVO RS 52.117 112.667 968.0 19591127 20020423 307580 99999 KADALA RS UIAA 52.026 113.306 692.5 19320101 20170923 307640 99999 USUGLI RS 52.65 115.167 646.0 19480101 20170923 307650 99999 ZJUL'ZJA RS 52.55 116.2 533.0 19530216 20011223 307660 99999 CHERNYSHEVSK RS 52.533 117.0 539.0 19530216 20020526 307670 99999 EDAKUY-IN-CHITA RS 52.3 115.03299999999999 779.0 19550315 19810426 307680 99999 NERCINSK RS 52.0 116.53299999999999 482.0 19530216 20020422 307720 99999 UST'-KARA RS 52.7 118.8 407.0 19530216 20030602 307770 99999 SRETENSK RS 52.233000000000004 117.7 525.0 19320101 20170923 307810 99999 URJUPINO RS 52.75 120.03299999999999 370.0 19480108 20170923 307910 99999 IRKUTSK RS 52.266999999999996 104.35 498.0 20040706 20090225 308020 99999 MONDY RS 51.683 100.98299999999999 1304.0 19490101 20170923 308030 99999 BAGO-GORHON RS 51.7 102.45 889.0 19740517 20031119 308060 99999 KYREN RS 51.683 102.167 758.0 19730101 20020207 308110 99999 TUNKA RS 51.733000000000004 102.53299999999999 721.0 19530216 20060426 308120 99999 SLJUDJANKA RS 51.65 103.667 471.0 19480101 20011202 308130 99999 ISTOK ANGRY RS 51.9 104.81700000000001 470.0 19530216 20020408 308140 99999 KULTUK RS 51.733000000000004 103.7 472.0 19540402 20021124 308150 99999 HAMAR-DABAN RS 51.533 103.6 1442.0 19530216 20170923 308180 99999 UNKNOWN RS 51.167 103.667 481.0 19740419 20010528 308220 99999 BABUSKIN RS 51.717 105.85 467.0 19530216 20170923 308230 99999 MUKHINO RS UIUU 51.808 107.43799999999999 515.1 19480101 20170923 308240 99999 TANHOJ RS 51.567 105.117 472.0 19480101 20060426 308290 99999 NOVOSELENGINSK RS 51.1 106.65 556.0 19480101 20170923 308330 99999 ... RS 51.817 107.51700000000001 19590101 19591217 308370 99999 MUHORSIBIR RS 51.016999999999996 107.833 733.0 19550315 20010528 308380 99999 PETROVSKIJ ZAVOD RS 51.317 108.867 806.0 19480101 20170923 308410 99999 INNOKENTYEVKA SOUTH RS 51.9 110.15 684.0 19531112 19551231 308430 99999 MOGZON RS 51.733000000000004 112.0 907.0 19480102 20020127 308440 99999 HILOK RS 51.35 110.46700000000001 802.0 19480101 20170923 308450 99999 HARAGUN RS 51.55 111.167 858.0 19550113 20000210 308460 99999 ULETY RS 51.35 112.46700000000001 743.0 19480101 20170923 308490 99999 NIKOLAJEVSKOE RS 51.05 111.76700000000001 817.0 19570701 20020507 308510 99999 TURGUTUJ (MTN STN) RS 51.85 112.633 1030.0 19530216 19600808 308530 99999 KARYMSKAJA RS 51.633 114.31700000000001 616.0 19530216 20070301 308560 99999 SEDLOVAJA RS 51.483000000000004 114.53299999999999 877.0 19480101 19960801 308580 99999 KUROT-DARASUA RS 51.2 113.71700000000001 805.0 19550315 20020618 308590 99999 AGINSKOE RS 51.1 114.51700000000001 681.0 19530216 20170923 308600 99999 NERCHINSK RS 51.85 116.01700000000001 19570701 19611125 308620 99999 SHILKA RS 51.867 116.03299999999999 597.0 19480101 20170923 308630 99999 KAZAKOVSKIY-PROMYSEL RS 51.65 117.56700000000001 19550315 19600513 308660 99999 BALEJ RS 51.583 116.633 649.0 19690101 20010729 308740 99999 SELOPUGINO RS 51.65 117.56700000000001 715.0 19530216 20020207 308750 99999 TAJNA RS 51.583 118.46700000000001 698.0 19530216 20050104 308790 99999 NERCHINSKIJ ZAVOD RS 51.317 119.617 619.0 19340102 20170923 309110 99999 SANAGA RS 50.733000000000004 102.833 1170.0 19550312 20021002 309150 99999 CAKIR RS 50.417 103.617 989.0 19550315 20021121 309160 99999 TOREJ RS 50.516999999999996 104.833 733.0 19550315 19950909 309240 99999 PETROPAVLOVKA RS 50.633 105.31700000000001 684.0 19600520 20010528 309250 99999 KJAHTA RS 50.367 106.45 797.0 19480101 20170923 309340 99999 BICURA RS 50.6 107.583 638.0 19530216 20010804 309350 99999 KRASNYJ CHIKOJ RS 50.367 108.75 771.0 19550315 20170923 309380 99999 MENZA RS 49.433 108.9 940.0 19550315 20010528 309400 99999 ESUTAY RS 50.183 110.417 1100.0 19590825 19620831 309410 99999 ENGOROK RS 50.967 110.35 920.0 19550315 19601213 309420 99999 NOVOSALIYA SOUTHEAST RS 50.95 111.45 940.0 19550315 19570328 309440 99999 CEREMHOVO RS 50.567 110.2 885.0 19550315 20020302 309470 99999 SUMILOVKA RS 50.067 110.15 1154.0 19550107 20020616 309480 99999 GRJAZI RS 50.016999999999996 111.18299999999999 1234.0 19550315 20011112 309490 99999 KYRA RS 49.567 111.96700000000001 908.0 19480101 20170923 309530 99999 AGINSKLY RS 51.083 114.46700000000001 19590101 19710101 309540 99999 DULDURGA RS 50.633 113.583 811.0 19550313 20020927 309560 99999 KUBUKHAY RS 50.383 114.78299999999999 19550306 19570628 309570 99999 AKSA RS 50.266999999999996 113.26700000000001 732.0 19480101 20170923 309580 99999 UBUR-TOKHTOR RS 50.1 113.633 19611007 19611007 309610 99999 OLOVJANNAJA RS 50.95 115.583 640.0 19480102 20170923 309620 99999 BOGUS SOVIET RS 19610725 20011029 309640 99999 KUBUHAJ RS 50.5 114.81700000000001 679.0 19730101 20020217 309650 99999 BORZYA RS 50.4 116.51700000000001 676.0 19361231 20170923 309670 99999 SOLOV'EVSK RS 49.9 115.75 623.0 19530216 20170923 309680 99999 HARANOR RS 50.1 116.667 705.0 19850306 20020612 309690 99999 MATSIYEVSKAYA RS 49.733000000000004 117.26700000000001 736.0 19530216 20020310 309710 99999 ALEKSANDROVSKIJ ZAVOD RS 50.917 117.93299999999999 807.0 19480101 20170923 309720 99999 DONO RS 50.883 118.583 694.0 19530216 20010528 309750 99999 PRIARGUNSK RS 50.333 119.06700000000001 521.1 19480105 20170923 309760 99999 BIRKA-IN-CHITA RS 50.65 118.55 587.0 19570701 19890714 309780 99999 KAJLASTUJ RS 49.833 118.383 550.0 19480101 20170923 310040 99999 ALDAN RS 58.617 125.367 679.0 19341013 20170923 310050 99999 TOMMOT RS 58.967 126.26700000000001 283.5 19340807 20170923 310070 99999 USMUN RS 58.317 125.35 951.0 19590101 20041003 310110 99999 BUJAGA RS 59.667 127.05 278.4 19570702 20170923 310160 99999 UGINO RS 58.633 128.5 230.6 19590101 20170923 310260 99999 UCHUR RS 58.733000000000004 130.61700000000002 197.4 19590101 20170923 310410 99999 UST'-MIL' RS 59.633 133.033 179.4 19590101 20170923 310540 99999 UST'-JUDOMA RS 59.183 135.15 212.0 19590101 20170923 310620 99999 YUGORENOK RS 59.766999999999996 137.667 383.7 19590102 20170923 310670 99999 KURUN-URJAKAH RS 58.65 137.217 457.0 19590102 20080227 310830 99999 HEJDZHAN RS 59.967 144.783 121.0 19590101 20150701 310860 99999 INJA RS 59.5 144.8 6.0 19590101 19780425 310870 99999 UL' YA RS 58.817 141.85 5.0 19590101 20170923 310880 99999 OHOTSK RS 59.367 143.2 6.0 19360103 20170923 310920 99999 TALON RS 59.8 148.833 19.0 19590101 19941127 310930 99999 ARMAN RS 59.717 150.2 8.0 19590101 19890401 310960 99999 SPAFAR' EVA (OSTROV) RS 59.15 149.033 52.0 19630523 20170923 310970 99999 USKI RS 59.183 146.333 17.0 19590101 19931118 311020 99999 KANKU RS 57.65 125.96700000000001 1204.0 19690101 20170923 311120 99999 SVETLYY WEST RS 57.8 127.883 777.0 19590101 19631231 311130 99999 ... RS 57.5 128.917 19620808 19631223 311230 99999 CJUL'BJU RS 57.766999999999996 130.9 255.0 19570701 20170923 311250 99999 ... RS 56.733000000000004 129.917 19620821 19621209 311320 99999 ... RS 57.633 132.25 19620828 19620828 311370 99999 TOKO RS 56.283 131.13299999999998 850.0 19590101 20170923 311520 99999 NEL' KAN RS 57.65 136.15 318.0 19480115 20170923 311580 99999 BATOMGA RS 56.65 136.35 496.0 19590101 20031018 311630 99999 ENKAN RS 57.766999999999996 140.183 10.0 19590101 20151117 311680 99999 AYAN RS 56.45 138.15 8.0 19471231 20170923 311730 99999 CAPE UKOY RS 55.65 136.75 29.0 19590101 20020528 311740 99999 BOL'SHOJ SHANTAR RS 54.833 137.533 21.0 19590101 20170923 311830 99999 OSTROV BELICHIY RS 54.45 137.86700000000002 19620606 19620606 311870 99999 AMURSKAYA NORTH RS 55.2 126.383 630.0 19590924 19630306 311990 99999 UNAHA RS 55.033 126.8 448.0 19530216 20020816 312350 99999 JANA RS 55.483000000000004 134.333 318.0 19590101 20080930 312530 99999 BOMNAK RS 54.717 128.86700000000002 364.0 19530216 20170923 312570 99999 DAMBUKI RS 54.333 127.633 272.0 19530216 20031018 312600 99999 DATA BUOY 31260 BR -28.5 -47.533 3.0 20130502 20170104 312610 99999 DATA BUOY 31261 BR -31.533 -49.867 3.0 20140305 20141211 312630 99999 LOKSAK RS 54.733000000000004 130.45 464.0 19530216 20161115 312650 99999 BOGUS SOVIET RS 19850201 20050413 312850 99999 UDSKOE RS 54.5 134.417 62.0 19590118 20170923 312860 99999 CUMIKAN RS 54.717 135.317 5.0 19360104 20090917 312880 99999 TOROM RS 54.117 135.7 182.0 19590101 19960109 312950 99999 MAGDAGACI RS 53.467 125.81700000000001 370.0 19480106 20170923 312990 99999 TYGDA RS 53.1 126.35 314.0 19530216 19581214 313000 99999 ZEJA RS 53.7 127.3 229.0 19480101 20170923 313060 99999 DEP-DOLBIR RS 53.533 128.75 318.0 19531201 19811123 313110 99999 OGORON RS 53.967 129.067 405.0 19531202 20020831 313180 99999 DUGDA RS 53.35 130.017 319.3 19531201 20031018 313250 99999 SEVLI RS 53.516999999999996 132.917 442.0 19600808 20020303 313289 99999 IGNATYEVO RS UHBB 50.425 127.412 194.5 20101203 20170923 313290 99999 EKIMCAN RS UHBP 53.067 132.933 543.0 19471231 20170923 313310 99999 BOLODEK RS 53.717 133.15 280.0 19590101 20050724 313380 99999 SELEMDZA RS 53.133 133.967 682.0 19480101 19940918 313460 99999 TUGUR RS 53.85 136.86700000000002 52.0 19590101 19940325 313480 99999 BURUKAN RS 53.05 136.033 153.0 19480116 20170923 313610 99999 OSTROV REYNEK SW RS 54.033 139.217 98.0 19590101 19631231 313620 99999 ALEKSANDRA RS 54.283 139.783 9.0 19590101 20090613 313640 99999 KULCI RS 53.567 139.65 128.0 19570701 19930630 313660 99999 PETROVSK NW RS 53.467 140.88299999999998 36.0 19590102 19621207 313690 99999 NIKOLAEVSK-ON-AMUR RS UHNN 53.15 140.7 68.0 19311231 20170923 313710 99999 CHERNJAEVO RS 52.783 126.0 210.0 19480101 20170923 313720 99999 AYAK (?) RS 52.8 127.78299999999999 196.0 19550107 20010909 313730 99999 OKTJABR'SKIJ PRIISK RS 53.0 128.65 332.0 19531201 20070228 313770 99999 MUHINO RS 52.266999999999996 127.21700000000001 326.0 19590101 20020420 313840 99999 GAR RS 52.567 129.067 246.0 19531201 20020311 313880 99999 NORSK RS 52.35 129.917 208.0 19471231 20170923 313920 99999 STOJBA RS 52.8 131.717 359.0 19471231 20031018 313940 99999 SELEMDZINSKOE RS 52.583 131.13299999999998 300.0 19531201 19571215 313970 99999 BYSSA RS 52.45 130.86700000000002 267.0 19540210 20031018 314160 99999 IM POLINY OSIPENKO RS 52.417 136.5 73.0 19471231 20170923 314180 99999 VESELAJA GORKA RS 52.283 135.8 201.0 19530216 20170923 314190 99999 KAMENKA RS 47.417 142.817 0.0 19790601 19831117 314210 99999 GUGA RS 52.7 137.533 60.0 19480116 19990803 314230 99999 UDINSKOJE RS 52.9 138.86700000000002 15.0 19480115 20110907 314320 99999 VOSKRESENSKOJE RS 52.867 140.0 25.0 19590101 20021101 314330 99999 PAD RS 52.667 140.167 92.0 19590104 19621013 314360 99999 UARKI RS 52.516999999999996 141.2 14.0 19590106 20031018 314370 99999 SOMNITELNIJ-PRIISK RS 52.167 139.067 220.0 19590104 20050417 314390 99999 BOGORODSKOE RS 52.383 140.467 35.0 19471231 20170923 314410 99999 USAKOVO RS 51.9 126.583 159.0 19730313 19930630 314420 99999 SIMANOVSK RS 51.983000000000004 127.65 281.0 19471231 20170923 314430 99999 MAZANOVO RS 51.633 128.817 161.0 19530216 20000228 314440 99999 KUMARA RS 51.583 126.75 173.0 19460307 19740415 314450 99999 SVOBODNYJ RS 51.45 128.11700000000002 197.0 19471231 20170923 314590 99999 VERHNJAJA TOM RS 51.35 130.433 261.0 19471231 20110116 314690 99999 CEGDOMYN RS 51.167 132.95 374.0 19550101 20080916 314740 99999 UST'-UMAL'TA RS 51.633 133.267 384.0 19480101 20170923 314750 99999 SREDNYAYA IPPATA RS 51.417 134.13299999999998 930.0 19590101 20100322 314780 99999 SOFIJSKIJ PRIISK RS 52.266999999999996 133.983 902.0 19471231 20170923 314820 99999 DUKI RS 51.717 135.933 132.0 19471231 20011229 314840 99999 HULARIN RS 51.417 135.083 269.0 19480101 20170923 314890 99999 GORIN RS 51.2 136.8 92.0 19531201 20170923 314920 99999 BICHI-IN-KHABAROV RS 51.967 138.183 430.0 19590105 20030403 314970 99999 BAKTOR RS 51.133 137.417 35.0 19590127 20021219 315020 99999 MARIINSKOJE RS 51.717 140.317 20.0 19590104 20081117 315040 99999 SUHANOVKA RS 51.35 139.1 63.0 19471231 20081117 315090 99999 DE-KASTRI RS 51.483000000000004 140.783 36.0 19590103 20030805 315100 99999 BLAGOVESCENSK RS 50.283 127.48299999999999 169.2 19311231 20170923 315110 99999 SERGEJEVKA RS 50.783 127.3 145.0 19480101 20010523 315120 99999 BLAGOVESCENSK RS 50.2 127.56700000000001 132.0 20090801 20141224 315130 99999 BELOGORSK RS 50.917 128.467 178.0 19530216 20170923 315210 99999 BRATOLJUBOVKA RS 50.783 129.333 227.0 19471231 20170923 315270 99999 ZAVITAJA RS 50.117 129.467 241.0 19471231 20170923 315280 99999 PAYKAN-IN-AMUR RS 50.183 130.15 148.0 19590106 19891106 315320 99999 CEKUNDA RS 50.867 132.25 272.0 19451231 20170923 315340 99999 SEKTAGLI RS 50.433 131.017 230.0 19471231 20170923 315380 99999 SUTUR RS 50.067 132.13299999999998 347.0 19531019 20170923 315410 99999 LEVAJA KOSMUN RS 50.783 133.3 627.0 19850201 20010924 315450 99999 IRUMKA-IN-KHABAROV RS 50.683 133.95 567.0 19590104 20020719 315480 99999 VERHOVJE URMI RS 50.016999999999996 133.583 533.0 19590130 20090729 315500 99999 AMURSK RS 50.266999999999996 136.917 24.0 19850201 20050823 315520 99999 VERKHOVYE GORINA RS 50.867 136.05 314.0 19590105 19890802 315610 99999 KOMSOMOLSK-NA-AMURE RS 50.533 137.033 22.0 19361231 20170923 315620 99999 NIZNETAMBOVSKOE RS 50.933 138.2 60.0 19590130 20051114 315660 99999 SEGZEMA RS 50.333 138.467 193.0 19590106 20071203 315730 99999 SIZEMAN RS 50.733000000000004 140.433 5.0 19550423 19940409 315770 99999 SIHOTE RS 50.183 139.017 697.0 19590105 19940325 315790 99999 CAPE SYURKUM RS 50.1 140.683 109.0 19471231 20011121 315830 99999 MALINOVKA RS 49.783 129.917 116.0 19531201 20170923 315860 99999 ASTASIHA RS 49.483000000000004 129.483 126.0 19590130 20041121 315870 99999 POJARKOVO RS 49.617 128.65 115.0 19460204 20170923 315880 99999 ASTASHIKNA RS 49.483000000000004 129.467 125.9 19460307 19581207 315930 99999 KHARA-IN-AMUR RS 49.783 130.75 230.0 19590311 20020521 315940 99999 ARHARA RS 49.417 130.083 135.0 19460104 20170923 316180 99999 BIRA RS 49.016999999999996 132.467 154.0 19530216 20011015 316240 99999 URMI RS 49.4 133.233 198.0 19480101 20170923 316320 99999 KUR RS 49.933 134.63299999999998 283.0 19531202 20170923 316360 99999 NERAN RS 49.55 134.733 222.0 19471231 20000224 316380 99999 IVANKOVTSI RS 49.1 134.483 55.0 19590127 19860723 316470 99999 LITOVKO RS 49.283 135.183 71.0 19590106 20011121 316510 99999 BOLON RS 49.967 136.067 28.0 19590106 19890904 316530 99999 VERKHNIY NERGEN NW RS 49.867 136.75 15.0 19590104 19611031 316550 99999 TROICKOE RS UHHO 49.45 136.567 29.0 19471231 20170923 316610 99999 VERHNI NERGEN RS 49.867 136.767 64.0 19590130 20080420 316770 99999 SOLEKUL RS 49.016999999999996 138.75 894.0 19590104 20090403 316830 99999 TUMNIN RS 49.65 140.083 58.0 19590101 20170923 316890 99999 ALEKSEYEVKA WEST RS 49.183 139.85 536.0 19590106 19631229 317020 99999 OBLUC'E RS 49.0 131.083 257.0 19530216 20170923 317030 99999 BIRAKAN RS 49.0 131.733 267.0 19530216 20031002 317040 99999 POMPEYEVKA RS 48.35 130.8 91.0 19530216 20020213 317050 99999 DICHUN RS 48.516999999999996 130.733 116.0 19690101 20041130 317070 99999 EKATERINO-NIKOL'SKOE RS 47.733000000000004 130.967 73.0 19471231 20170923 317100 99999 LENINSKOE RS 47.95 132.61700000000002 56.0 19541201 20080915 317130 99999 BIROBIDZHAN RS 48.733000000000004 132.95 80.0 19471231 20170923 317230 99999 NOVOKUROVKA RS 48.85 134.317 80.0 19590130 19741019 317250 99999 SMIDOVICH RS 48.617 133.833 52.0 19530216 20170923 317270 99999 NADEZHDINSKOYE RS 48.3 133.2 53.0 19530216 19890819 317330 99999 ELABUGA RS 48.817 135.88299999999998 58.0 19361231 20170923 317350 99999 NOVY RS UHHH 48.528 135.188 75.0 19311231 20170923 317360 99999 HABAROVSK RS 48.533 135.233 72.0 20020515 20020515 317490 99999 CHERINAY RS 48.016999999999996 136.85 288.0 19590130 19880426 317540 99999 TIVJAKU RS 48.6 137.05 403.0 19471231 20170923 317660 99999 IOLI RS 48.65 138.983 382.0 19570702 20070205 317670 99999 GROSSEVICHI WEST RS 48.15 138.183 501.0 19550501 19620910 317700 99999 SOVETSKAYA GAVAN RS 49.0 140.3 23.8 19590130 20170923 317760 99999 KOPPI SOUTH RS 48.45 140.183 0.0 19600707 19610730 317860 99999 VJAZEMSKAJA RS 47.55 134.817 89.0 19471231 19981219 317880 99999 LERMONTOVKA RS 47.15 134.333 76.0 19530216 20021005 317900 99999 VERINO RS 47.983000000000004 135.083 85.0 19881001 20010908 317910 99999 KHOR RS 47.883 135.067 67.0 19551003 19890808 317920 99999 BICEVAJA RS 47.766999999999996 135.63299999999998 105.0 19530216 19820303 317980 99999 MATAY-IN-KHABAROV RS 47.367 135.63299999999998 182.0 19590130 19890918 318010 99999 GVASJUGI RS 47.667 136.183 180.0 19480101 20170923 318020 99999 BOGUS SOVIET RS 19890302 20030104 318150 99999 SUKPAY RS 47.683 137.483 488.0 19590102 19950602 318230 99999 GROSSEVICHI RS 47.967 139.533 3.0 19480101 20010910 318250 99999 AGZU RS 47.6 138.4 165.0 19471231 20170923 318290 99999 ZOLOTOJ RS 47.317 138.983 26.0 19530216 20101005 318320 99999 BIKIN RS 46.8 134.267 68.0 19471231 20170923 318450 99999 KRASNYJ JAR RS 46.533 135.317 130.0 19530216 20170923 318480 99999 GLUBINNOYE NORTH RS 46.1 135.4 241.0 19560101 19630405 318510 99999 GAMCANZA RS 46.683 136.267 244.0 19550423 19960709 318560 99999 ULUNGA-IN-PRIMOR RS 46.516999999999996 136.95 389.0 19550424 20020123 318590 99999 UNNAMED MOUNTAIN RS 45.967 136.63299999999998 1570.0 19550424 20020728 318660 99999 SOSUNOVO RS 46.533 138.333 4.0 19530216 20170923 318680 99999 MASOVAYA RS 46.167 137.967 105.0 19570710 19611213 318690 99999 KHUCIN RS 46.033 137.88299999999998 10.0 19590201 20050522 318730 99999 DAL'NERECHENSK RS 45.867 133.733 101.0 19471231 20170923 318750 99999 LESOZAVODSK SOUTH RS 45.467 133.417 118.0 19550423 19610426 318780 99999 KIROVSKIJ RS 45.1 133.5 97.7 19530216 20170923 318830 99999 VOSTRETSOVO/KARTON RS 45.883 134.967 150.0 19530216 20020823 318840 99999 MALINOVO RS 45.417 134.267 139.0 19480101 20011002 318880 99999 19740926 19741021 318950 99999 UST-KOLUMBE RS 45.266999999999996 135.5 335.0 19550406 19970522 319020 99999 BELKIN-IN-PRIMOR RS 45.833 137.7 103.0 19590120 20021128 319060 99999 BELENDE RS 45.3 136.983 7.0 19550404 19630319 319090 99999 TERNEJ RS 45.0 136.6 68.0 19530216 20170923 319110 99999 ... RS 44.85 131.25 19620911 19630823 319130 99999 TURIJ ROG RS 45.217 131.983 88.0 19480101 20170919 319150 99999 POGRANICHNYJ RS 44.4 131.38299999999998 211.0 19471231 20170923 319160 99999 ZHARIKOVO NORTHWEST RS 44.583 131.717 134.0 19570701 19581225 319170 99999 POLTAVKA RS 44.033 131.317 109.0 19530216 20060426 319210 99999 ASTRAHANKA RS 44.717 132.067 78.0 19530216 20170923 319240 99999 HKOROL' RS 44.433 132.067 128.0 19530216 20030918 319260 99999 SPASSK-DALNII RS 44.6 132.817 96.0 19530216 20040817 319310 99999 SVIJAGINO RS 44.8 133.083 99.0 19530216 20030217 319350 99999 JAKOVLEVKA RS 44.417 133.483 154.0 19530305 20030810 319380 99999 NOVO SYSOVENVKA RS 44.233000000000004 133.36700000000002 19550404 19751207 319390 99999 CUGUEVKA RS 44.15 133.86700000000002 259.0 19480101 20170923 319420 99999 ZURAVLEVKA RS 44.75 134.467 170.0 19530216 19980823 319430 99999 ZAVETNOJE RS 44.7 134.7 299.0 19810101 20040507 319460 99999 PEREVALNAYA RS 44.333 135.067 595.0 19550425 19751126 319530 99999 PLASTUN WEST RS 44.75 136.15 352.0 19471231 19581210 319580 99999 BOGOPOL' RS 44.25 135.45 65.0 19530216 20170303 319590 99999 RUDNAJA PRISTAN' RS 44.367 135.85 34.0 19530216 20170923 319600 99999 VLADIVOSTOK RS 43.117 131.933 183.0 19311231 20170923 319610 99999 TIMIRYAZEVSKIJ RS 43.883 131.967 37.0 19590718 20170923 319630 99999 VOROSHILOV RS 43.8 131.967 18.9 19530216 19590131 319650 99999 GUSEVKA SOUTHEAST RS 43.35 131.63299999999998 270.0 19550402 19631110 319660 99999 TEREHOVKA RS 43.55 131.88299999999998 22.0 19530216 20020224 319670 99999 KRASKINO RS 42.717 130.783 34.0 19480101 19620629 319690 99999 POS'ET RS 42.65 130.8 35.0 19560101 20170923 319700 99999 NAHODKA RS 42.8 132.86700000000002 121.0 19590102 20090328 319710 99999 GLUKHOVKA RS 43.8 132.167 19550402 19751201 319720 99999 OSINOVKA EAST RS 43.967 132.317 299.0 19590120 19610731 319740 99999 ARTEM RS 43.367 132.167 46.0 19530216 20030815 319741 99999 KNEVICHI RS UHWW 43.398999999999994 132.148 14.0 20100720 20170923 319750 99999 NOVO KHATUNIEHI RS 43.567 132.5 88.1 19530216 19740920 319760 99999 NOVO-MOSKOVSKAYA NE RS 43.35 132.8 204.0 19550304 19610420 319770 99999 VLADIVOSTOK (SAD GOROD) RS 43.266999999999996 132.05 82.0 19601201 19960603 319780 99999 ASKOLID ISLAND SOUTH RS 42.733000000000004 132.35 60.0 19590123 19620629 319810 99999 ANUCINO RS 43.967 133.067 188.0 19530216 20170923 319811 99999 ALYKEL RS UOOO 69.311 87.33200000000001 175.0 20040706 20160905 319850 99999 MOLCHANOVKA RS 43.483000000000004 133.36700000000002 267.0 19740828 20020325 319870 99999 PARTIZANSK RS 43.15 133.017 208.0 19530216 20170923 319890 99999 PREOBRAZHENIE RS 42.9 133.9 43.0 19480101 20170923 319930 99999 FURMANOVO-IN-PRIMOR RS 43.983000000000004 134.683 234.0 19530216 20160106 319940 99999 BEREZNJAKI RS 43.583 134.167 509.0 19530216 20170114 319950 99999 SHCHERBAKOVKA RS 43.567 134.63299999999998 149.0 19880301 20170402 319960 99999 MARGARITOVO RS 43.433 134.767 25.0 19320101 20071111 319970 99999 BUKHTA VALENTINA RS 43.117 134.333 27.1 19530216 19540828 319990 99999 MORYAK-RYBOLOV NORTH RS 43.367 134.8 2.0 19480101 19551231 320040 99999 RYBNOVSK RS 53.25 141.917 4.0 19550305 20020716 320050 99999 BOGUS SOVIET RS 19850629 20010921 320100 99999 OHA RS 53.5 142.9 38.0 19361231 20170923 320110 99999 NYVROVO RS 54.333 142.6 19620903 19620903 320120 99999 CAPE YELIZAVETI RS 54.417 142.717 77.0 19560311 20050917 320130 99999 KAJGAN RS 53.567 142.75 4.0 19810101 20040903 320140 99999 MOSKALVO RS 53.65 142.61700000000002 4.0 19550305 20080504 320210 99999 PYRKI SAKHALIN RS 52.833 141.5 19550305 19570624 320270 99999 POGIBI RS 52.217 141.63299999999998 6.0 19530216 20170923 320360 99999 CAJVO RS 52.367 143.183 6.0 19550306 20040903 320430 99999 OLENEVOD NORTHEAST RS 51.833 142.333 147.0 19550305 19570629 320450 99999 VIAHTU RS 51.6 141.9 14.0 19471231 19580724 320530 99999 NOGLIKI RS 51.917 143.13299999999998 34.0 19471231 20170923 320570 99999 ADO-TYMOVO RS 51.133 142.667 66.0 19530216 20030213 320590 99999 KONGI RS 51.1 143.55 15.0 19590113 20040903 320610 99999 ALEKSANDROVSK-SAHALINSKIJ RS 50.9 142.167 31.0 19311231 20170923 320690 99999 PIL'VO RS 50.05 142.167 4.0 19530216 20170923 320710 99999 TYMOVSKOE RS 50.733000000000004 142.717 95.0 19530216 20040903 320760 99999 POGRANICHNOE RS 50.4 143.767 8.0 19471231 20170923 320770 99999 ONOR RS 50.233000000000004 142.583 181.0 19471231 20040903 320850 99999 LESOGORSK SOUTHEAST RS 49.433 142.13299999999998 131.0 19550305 19570629 320880 99999 UGLEGORSK RS 49.067 142.033 43.0 19480101 20040903 320910 99999 SMIRNYKH RS 49.75 142.833 81.0 19471231 19610224 320930 99999 PESKOYSKIY NORTHWEST RS 49.967 143.817 316.0 19530216 19591020 320960 99999 VLADI-MIROVO RS 49.283 143.967 5.0 19550305 20020327 320980 99999 PORONAJSK RS 49.217 143.1 8.0 19530216 20170923 320990 99999 MYS TERPENIYA RS 48.65 144.733 6.0 19480103 20170923 321050 99999 KRASHOGORSK RS 48.4 142.1 3.0 19530216 19631031 321160 99999 MAKAROV RS 48.65 142.85 38.0 19550305 19991204 321180 99999 VOSTOCHNY SAKH /MOTO DOMARI RS 48.283 142.63299999999998 6.1 19530216 19581103 321210 99999 ILYINSKIY RS 47.983000000000004 142.2 18.0 19530216 20170923 321240 99999 CHEKHOV WEST RS 47.45 141.817 0.0 19550305 19570629 321280 99999 HOLMSK RS 47.05 142.05 44.0 19530216 20170923 321310 99999 VEMORYE RS 47.85 142.533 0.0 19550305 19570629 321330 99999 DOLINSK RS 47.333 142.8 11.0 19480101 20040903 321360 99999 STARO-DUBSKOYE RS 47.417 142.817 70.0 19550305 19791023 321450 99999 NEVELSK RS 46.617 141.95 6.0 19480101 20040903 321480 99999 DALNYAYA RS 45.9 142.083 0.0 19550307 19570629 321490 99999 CAPE KRYLJON RS 45.9 142.083 45.0 19590102 20020910 321500 99999 KHOMUTOVO RS UHSS 46.888999999999996 142.718 18.0 19530216 20170923 321520 99999 SVOBODNAYA NORTHEAST RS 46.867 143.65 0.0 19550305 19570626 321530 99999 SVOBODNAYA NORTH RS 46.85 143.433 8.0 19550305 19610424 321560 99999 KORSAKOV RS 46.633 142.85 34.0 19550305 20040903 321580 99999 JUZNOJE (LGT-H) RS 46.217 143.45 21.0 19590819 20040903 321650 99999 JUZHNO-KURIL'SK RS 44.016999999999996 145.86700000000002 49.0 19530216 20170923 321660 99999 MALO-KURILSKOJE RS 43.75 146.667 65.0 19530216 19990518 321680 99999 SUISHO-TO RS 43.433 145.917 18.0 19550315 19631224 321740 99999 KURILSK RS 45.266999999999996 147.967 38.0 19480101 20040903 321760 99999 19740827 19751020 321860 99999 URUP RS 46.2 150.5 76.0 19530216 20020315 321950 99999 SIMUSIR RS 46.85 151.86700000000002 25.0 19480129 19981106 322050 99999 SEVERGINO SOUTHEAST RS 49.117 154.533 489.0 19480102 19530215 322070 99999 MATUA RS 48.067 153.217 58.0 19480103 19960710 322110 99999 ... RS 50.883 154.967 19620923 19631004 322120 99999 DEVYATKA WEST RS 50.833 155.483 11.0 19590607 19620831 322130 99999 MYS LOPATKA RS 50.867 156.683 47.0 19460101 20170923 322150 99999 SEVERO-KURIL'SK RS 50.683 156.13299999999998 23.0 19480102 20170923 322170 99999 CAPE VASILEVA RS 50.0 155.38299999999998 16.0 19530216 20050730 322210 99999 KINKIL RS 59.35 160.38299999999998 30.0 19550501 19700718 322220 99999 TEVI RS 59.6 160.733 18.5 20120530 20151020 322270 99999 PALANA RS 59.117 159.967 19.0 19550501 19940411 322460 99999 OSSORA RS 59.25 163.033 3.0 19550501 19860731 322520 99999 UST'-VOYAMPOLKA RS 58.5 159.167 7.0 19550501 20170923 322850 99999 PTICHIY ISLAND RS 57.167 156.6 15.0 19570802 19870524 322870 99999 UST'- HAJRJUZOVO RS 57.083 156.7 8.0 19550501 20170923 322930 99999 TIGIL RS 57.8 158.667 12.0 19550501 19860219 323310 99999 UKA-IN-KAMCHAT RS 57.833 162.1 3.0 19590101 19860618 323330 99999 OZERNOY (MYS) RS 57.65 163.233 9.1 19550501 20170923 323630 99999 ESSO RS 55.933 158.667 481.0 19550501 19860706 323790 99999 KOZYREVSK RS 55.983000000000004 159.983 45.0 19350302 19891122 323890 99999 KLJUCHI RS 56.317 160.833 29.0 19530216 20170923 324080 99999 UST'-KAMCHATSK RS 56.217 162.717 27.0 19480101 20170923 324090 99999 CAPE AFRIKA RS 56.167 163.317 14.0 19600104 20090109 324110 99999 ICA RS 55.583 155.583 6.0 19550503 20170923 324470 99999 DOLINOVKA RS 55.117 159.067 100.0 19550501 19960107 324770 99999 SOBOLEVO RS 54.3 155.933 14.0 19550501 20170923 324960 99999 MILKOVO RS 54.717 158.717 125.0 19550501 20170702 324970 99999 PUSHCHINO RS 54.167 158.0 318.0 19550501 20041222 325090 99999 SEMYACHIK RS 54.117 159.983 27.0 19460402 20170923 325110 99999 KRONOTSKY RS 54.717 160.35 366.0 19550501 19630919 325190 99999 KRONOKI RS 54.617 161.2 15.9 19550501 20150512 325240 99999 KIKHCHIK KAMCHATKA RS 53.467 156.033 7.9 19480101 19710630 325320 99999 GANALI-IN-KAMCHAT RS 53.7 157.63299999999998 292.0 19550501 19860710 325380 99999 ... RS 53.1 157.65 19610801 19621005 325390 99999 NACHIKI-IN-KAMCHAT RS 53.117 157.75 325.0 19550501 19860618 325400 99999 YELIZOVO RS UHPP 53.168 158.454 39.9 19320101 20170923 325470 99999 KORVAKI RS 53.283 158.2 84.0 19740601 19860618 325480 99999 JELIZOVO RS 53.0 158.333 22.0 19550501 19740924 325590 99999 CAPE SHIPUNSKIY RS 53.1 160.033 88.0 19550501 20150810 325620 99999 BOL'SHERETZK RS 52.833 156.3 30.0 19530216 20170923 325640 99999 OKTIABR'SKAYA RS 52.667 156.233 6.0 19480102 20040731 325690 99999 UST-BOLSHERETSK SE RS 52.283 157.0 34.0 19550501 19581012 325710 99999 APACA RS 52.833 157.167 110.0 19550501 19860813 325800 99999 PETROPAVLOVSK (CTBT) RS 53.067 158.783 65.0 20120506 20160809 325830 99999 PETROPAVLOVSK-KAMCHATSKIJ RS 52.867 158.65 24.0 19460403 20170923 325860 99999 CAPE POVOROTNIY RS 52.367 158.567 18.0 19590130 20030421 325890 99999 PETROPAVLOVSK SOUTH RS 52.333 158.583 3.0 19550509 19600525 325930 99999 GOLYGINO RS 51.867 156.7 13.0 19550501 19570624 325940 99999 OZERNAJA RS 51.483000000000004 156.483 28.0 19530216 20170923 325950 99999 19731120 19731120 325960 99999 HODUTKA RS 51.783 158.033 18.0 19570701 20050413 326110 99999 OSTROV KARAGINSKIY RS 50.0 163.917 6.1 19530401 19680630 326180 99999 OSTROV BERINGA RS 55.2 165.983 18.0 19320801 20170923 326230 99999 PRE-OBRAZHENSKOYE RS 54.783 167.6 4.0 19480101 19710630 330001 99999 LUHANSK INTL UP UKCW 48.417 39.374 193.9 20040510 20140608 330002 99999 DONETSK INTL UP UKCC 48.074 37.74 241.1 20040510 20140603 330003 99999 LOZUVATKA INTL UP UKDR 48.043 33.21 124.4 20040510 20170923 330004 99999 DNIPROPETROVSK INTL UP UKDD 48.357 35.101 146.6 20040510 20170923 330005 99999 IVANO FRANKIVSK UP 48.883 24.683000000000003 287.0 20040510 20170923 330010 99999 VYSOKOJE BO 52.367 23.433000000000003 163.0 19610207 20020725 330080 99999 BREST BO UMBB 52.108000000000004 23.898000000000003 142.6 19310110 20170923 330150 99999 TELEKHANI BO 52.516999999999996 25.85 155.0 19811101 20030124 330190 99999 PINSK BO 52.117 26.116999999999997 142.0 19290802 20170923 330270 99999 ZHITCKOVICHI BO 52.217 27.866999999999997 137.0 19460403 20170923 330360 99999 MOZYR BO 52.036 29.166999999999998 190.0 19590101 20170923 330380 99999 VASILEVICHI BO 52.25 29.833000000000002 142.0 19320101 20170923 330410 99999 GOMEL BO UMGG 52.527 31.017 143.9 19550101 20170923 330420 99999 ZLYNKA RS 52.483000000000004 31.666999999999998 138.0 19320101 20030305 330490 99999 SEMENOVKA UP 52.183 32.583 161.0 19590101 20170908 330580 99999 DRUZHBA UP 52.05 33.95 190.0 19690101 20160614 330670 99999 SVITYAZ UP 51.483000000000004 23.85 164.0 19590101 20160614 330750 99999 PNEVNO UP 51.667 25.267 152.0 19840106 20020331 330880 99999 SARNY UP 51.283 26.616999999999997 156.0 19480101 20170923 331050 99999 LELOIOV BO 51.783 28.333000000000002 141.0 19570701 20010908 331240 99999 BRAGIN BO 51.817 30.248 116.0 19610203 20170923 331350 99999 CHERNIHIV UP 51.467 31.25 141.0 19460102 20170923 331360 99999 VOLSKOVTSKY UP 51.567 31.967 143.0 19840115 20011222 331490 99999 BOGUS UKRAINIAN UP 19840606 19841206 331560 99999 GLUKHOV UP 51.683 33.917 180.0 19840602 19980420 331730 99999 KOVEL' UP 51.217 24.683000000000003 174.0 19590101 20160614 331770 99999 VOLODYMYR-VOLYNS'KYI UP 50.833 24.316999999999997 194.0 19590101 20170923 331820 99999 MANEVICHI UP 51.283 25.533 183.0 19790601 20011222 331870 99999 LUTS'K UP 50.7 25.5 232.0 19310105 20160614 332030 99999 OLEVSK UP 51.217 27.633000000000003 183.0 19550101 20160614 332130 99999 OVRUCH UP 51.317 28.783 170.0 19480101 20160614 332150 99999 KOROSTEN UP 50.95 28.65 189.0 19790701 20021222 332220 99999 VOLYA UP 51.233000000000004 29.383000000000003 137.0 19840602 19940512 332280 99999 TETERIV UP 50.7 29.583000000000002 132.0 19590101 20160614 332310 99999 CHORNOBYL' UP 51.283 30.233 127.0 19550101 20160614 332360 99999 OSTER UP 50.95 30.883000000000003 104.0 19840607 20160602 332460 99999 NIZHYN UP 51.05 31.9 126.0 19550101 20160614 332610 99999 KONOTOP UP 51.233000000000004 33.2 149.0 19361231 20170923 332680 99999 ROMNY UP 50.766999999999996 33.45 169.0 19590101 20160614 332710 99999 BELOPOL'E UP 51.15 34.333 156.0 19590101 19890717 332750 99999 SUMY UP 50.85 34.667 181.0 19460307 20170923 332870 99999 RAVA-RUS'KA UP 50.25 23.633000000000003 251.0 19590101 20160614 332880 99999 KAMENKA-BUGSKAYA UP 50.1 24.35 228.0 19590101 20010124 332960 99999 DUBNO UP 50.417 25.75 216.0 19890701 20160602 332970 99999 BRODY UP 50.1 25.15 228.0 19590101 20160614 332990 99999 KREMENETS UP 50.133 25.733 259.0 19630201 20160614 333010 99999 RIVNE INTL UP UKLR 50.607 26.142 230.1 19590101 20170923 333011 99999 UZHHOROD UP 48.633 22.267 120.0 20040713 20140220 333012 99999 MYKOLAIV UP 47.05 31.916999999999998 58.0 20040713 20170923 333120 99999 NOVOHRAD-VOLYNS'KYI UP 50.6 27.633000000000003 218.0 19590101 20160614 333170 99999 SHEPETIVKA UP 50.167 27.033 278.0 19361231 20170923 333250 99999 ZHYTOMYR UP 50.233000000000004 28.733 224.0 19480102 20170923 333390 99999 FASTOV UP 50.083 29.916999999999998 209.0 19800402 20011222 333450 99999 ZHULIANY INTL UP UKKK 50.402 30.451 178.6 19320101 20170923 333451 99999 ANTONOV INTL UP UKKM 50.603 30.191999999999997 157.6 20040713 20170923 333460 99999 KIEV/BORISPOL UP 50.35 30.916999999999998 125.0 19590101 19900424 333463 99999 KIEV/BORISPOL UP 50.35 30.916999999999998 125.0 19900424 19901218 333470 99999 BORYSPIL INTL UP UKBB 50.345 30.895 130.1 19610404 20170923 333530 99999 BOGUS SOVIET UP 19910403 20030511 333560 99999 YAHOTYN UP 50.217 31.8 128.0 19590101 20160614 333620 99999 PRILUKY UP 50.583 32.383 133.0 19550101 20160614 333680 99999 GREBENKA UP 50.133 32.45 114.0 19590101 19880502 333740 99999 LOHVICA UP 50.367 33.266999999999996 127.0 19840112 19890930 333760 99999 HADIACH UP 50.367 33.983000000000004 154.0 19590101 20160614 333770 99999 LUBNY UP 50.0 33.016999999999996 158.0 19460101 20170923 333820 99999 LEBEDIN UP 50.583 34.483000000000004 142.0 19890701 19990327 333910 99999 MOSTISKA UP 49.8 23.15 216.0 19590101 20020609 333920 99999 YAVOROV UP 49.933 23.383000000000003 229.0 19890701 19940420 333930 99999 LVIV INTL UP UKLL 49.813 23.956 326.4 19280102 20170923 333931 99999 CHERNIVTSI UP 48.25 25.983 258.0 20040713 20140224 333980 99999 DROHOBYCH UP 49.35 23.517 276.0 19590101 20160614 334090 99999 BEREZHANY UP 49.433 24.95 304.0 19590101 20160614 334150 99999 TERNOPIL' UP 49.533 25.666999999999998 329.0 19340329 20170923 334210 99999 YAMPOL' UP 49.967 26.25 282.0 19890701 19950725 334290 99999 KHMEL'NYTS'KYI UP 49.433 26.983 350.0 19550101 20170923 334390 99999 KHMELNYK UP 49.567 27.933000000000003 284.0 19810101 20160614 334460 99999 BILOPILLJA UP 49.833 28.883000000000003 258.0 19550101 20160614 334640 99999 BILA TSERKVA UP 49.75 30.116999999999997 180.0 19590101 20160614 334660 99999 MYRONIVKA UP 49.667 31.0 153.0 19480101 20170923 334840 99999 ZOLOTONOSHA UP 49.683 32.516999999999996 96.0 19590101 20160602 334870 99999 CHERKASY UP 49.417 32.05 107.0 19590101 20140224 334950 99999 VESELYI PODIL UP 49.617 33.266999999999996 96.0 19550103 20160614 335020 99999 BOGUS SOVIET UP 19910402 20030325 335060 99999 POLTAVA UP 49.6 34.55 160.0 19361231 20170923 335100 99999 BOGUS SOVIET UP 19910401 20030507 335110 99999 TURKA UP 49.15 23.033 594.0 19550101 20160614 335130 99999 STRYY UP 49.25 23.85 306.0 19890703 20160602 335140 99999 VELIKIY BEREZNY UP 48.9 22.467 195.0 19590101 20021126 335150 99999 SKOLE UP 49.033 23.517 549.0 19740419 20030513 335160 99999 SLAVSKE UP 48.85 23.45 592.0 19590101 20160614 335170 99999 PERECHIN UP 48.733000000000004 22.467 198.0 19590101 20021126 335240 99999 KALUSH UP 49.016999999999996 24.366999999999997 285.0 19890701 20030523 335260 99999 IVANO-FRANKIVS'K UP 48.967 24.4 280.0 19480101 20140221 335360 99999 CHORTKIV UP 49.016999999999996 25.8 318.0 19590101 20160614 335460 99999 BOGUS SOVIET UP 19910403 20010913 335480 99999 KAMIANETS'-PODIL' SKYI UP 48.65 26.666999999999998 222.0 19320101 20160614 335500 99999 BOGUS SOVIET UP 19910403 20010810 335570 99999 NOVA USHYTSIA UP 48.85 27.267 290.0 19590101 20160614 335620 99999 VINNYTSIA UP 49.233000000000004 28.6 298.0 19460403 20170923 335640 99999 ZHMERYNKA UP 49.016999999999996 28.133000000000003 313.0 19690101 20160614 335710 99999 LIPOVEC UP 49.25 29.233 299.0 19590101 20041204 335770 99999 HAISYN UP 48.8 29.4 211.0 19590101 20160614 335810 99999 ZHASHKIV UP 49.233000000000004 30.1 235.0 19790701 20160614 335830 99999 BOGUS SOVIET UP 19910408 20030131 335860 99999 ZVENIHORODKA UP 49.083 30.9 215.0 19590101 20160614 335870 99999 UMAN' UP 48.766999999999996 30.233 216.0 19320101 20170923 335930 99999 ROTMISTROVKA UP 49.133 31.7 168.0 19890701 20020809 335980 99999 NOVO-MYRHOROD UP 48.833 31.65 179.0 19590101 20160614 336050 99999 CHYHYRYN UP 49.083 32.667 124.0 19690101 20160614 336090 99999 ZNAMIANKA UP 48.717 32.667 181.0 19590101 20160614 336140 99999 SVITLOVODS'K UP 49.05 33.25 84.0 19950315 20170923 336150 99999 KREMENCUG UP 49.033 33.433 80.0 19590101 20021102 336210 99999 KOBELIAKY UP 49.15 34.2 118.0 19590101 20160614 336310 99999 UZHHOROD UP 48.633 22.267 124.0 19550101 20170923 336340 99999 BEREHOVE UP 48.2 22.65 113.0 19590101 20160614 336380 99999 KHUST UP 48.183 23.3 164.0 19590101 20160614 336450 99999 YASNYA UP 48.266999999999996 24.366999999999997 731.0 19590101 20011222 336460 99999 BOGUS SOVIET UP 48.067 24.183000000000003 19610805 19910926 336470 99999 RAKHIV UP 48.05 24.2 430.0 19590101 20160614 336510 99999 KOLOMYIA UP 48.533 25.033 298.0 19550103 20160614 336570 99999 SELIATYN UP 47.867 25.217 763.0 19590101 20160614 336580 99999 CHERNIVTSI UP 48.367 25.9 246.0 19360101 20170923 336630 99999 MOHYLIV-PODIL'S'KYI UP 48.45 27.783 78.0 19590101 20170923 336640 99999 BRICENI MD 48.35 27.083000000000002 261.0 19590101 20170923 336760 99999 GORYACHKOVKA UP 48.333 28.75 229.0 19790701 19890915 336780 99999 SOROCA MD 48.2 28.3 173.0 19550101 20170923 336790 99999 CAMENCA MD 48.033 28.7 154.0 19620209 20170923 336860 99999 HAIVORON UP 48.35 29.85 150.0 19590101 20160614 336990 99999 PERVOMAIS'K UP 48.05 30.85 103.0 19590101 20160602 337050 99999 POMICHNA UP 48.233000000000004 31.4 211.0 19790601 20160602 337110 99999 KIROVOHRAD UP 48.516999999999996 32.2 171.0 19361231 20170923 337170 99999 BOBRYNETS' UP 48.067 32.15 143.0 19590101 20160614 337175 99999 MARCULESTI INTL MD LUBM 47.867 28.217 95.1 20100214 20170923 337230 99999 KOMISARIVKA UP 48.433 33.9 118.0 19590101 20160614 337440 99999 FALESTI MD 47.583 27.7 162.0 20070809 20170923 337450 99999 BALTI MD 47.783 27.95 102.0 19480101 20170923 337480 99999 CORNESTI MD 47.333 28.083000000000002 232.0 19590101 20170923 337490 99999 BRAVICEA MD 47.367 28.433000000000003 78.0 20070809 20170923 337540 99999 RIBNITA MD 47.766999999999996 29.017 119.0 19590101 20170923 337590 99999 ZATIS'E UP 47.333 29.883000000000003 191.0 19590101 19891109 337610 99999 LIUBASHIVKA UP 47.85 30.267 183.0 19480401 20170923 337770 99999 VOZNESENS'K UP 47.567 31.333000000000002 34.0 19480102 20160614 337880 99999 BASTANKA UP 47.417 32.467 84.0 19590101 20020408 337910 99999 KRYVYI RIH UP 48.033 33.217 124.0 19480101 20170923 338050 99999 NIKOPOL' UP 47.583 34.45 55.0 19460701 20160602 338100 99999 CODRII MD 47.117 28.366999999999997 157.0 20060819 20060819 338150 99999 CHISINAU MD UKII 47.016999999999996 28.983 173.0 19360101 20170923 338151 99999 CHERKASY UP 49.417 31.983 117.0 20040713 20170728 338170 99999 KARPINENY MD 46.75 28.35 78.0 19590101 20010718 338210 99999 DUBASARI MD 47.283 29.133000000000003 40.0 20070809 20170923 338240 99999 BALTATA MD 47.05 29.033 79.0 20060819 20060819 338290 99999 TIRASPOL MD 46.9 29.6 40.0 20070809 20170923 338300 99999 BELGORDO-ONIESTROVSKIY UP 46.2 30.366999999999997 19590101 19631020 338330 99999 SERBKA UP 47.016999999999996 30.75 73.0 19590101 20160602 338340 99999 ROZDIL'NA UP 46.85 30.083000000000002 148.0 19460210 20160602 338370 99999 ODESA INTL UP UKOO 46.427 30.676 52.4 19320101 20170923 338380 99999 BOGUS UKRAINIAN UP 19761001 20020513 338387 99999 CHISINAU INTL MD LUKK 46.928000000000004 28.930999999999997 121.6 19990114 20170923 338388 99999 BALTI INTL MD LUBL 47.838 27.781 231.0 20050704 20161019 338390 99999 SVERDLOVO UP 46.667 30.883000000000003 21.0 19590101 19751128 338450 99999 TILIGULO-BEREZANKA UP 46.833 31.4 42.0 19590101 19891216 338460 99999 MIKOLAIV UP 47.033 31.95 50.0 19550101 20140224 338480 99999 OCHAKOV UP 46.633 31.55 41.0 19600128 20011222 338620 99999 VELYKA OLEKSANDRIVKA UP 47.317 33.283 56.0 19550101 20160614 338690 99999 NOVA KAKHOVKA UP 46.783 33.367 25.0 19590101 20160614 338770 99999 NIZHNI SIROHOZY UP 46.85 34.4 53.0 19590101 20160602 338810 99999 LEOVA MD 46.483000000000004 28.283 156.0 19590101 20170923 338830 99999 KOMRAT MD 46.3 28.633000000000003 133.0 19590101 20170923 338850 99999 CAHUL MD LUCH 45.883 28.233 113.0 19590101 20170923 338860 99999 CEADIR-LUNGA MD 46.1 28.9 180.0 20070809 20170923 338870 99999 BOLGRAD UP 45.667 28.616999999999997 81.0 19480101 20050407 338890 99999 IZMAIL UP 45.367 28.85 30.0 19590101 20160614 338920 99999 STEFAN-VODA MD 46.516999999999996 29.483 173.0 19840106 20170923 338930 99999 OLONESTY MD 46.5 29.866999999999997 111.0 19590101 19830517 338960 99999 SARATA UP 46.016999999999996 29.666999999999998 14.0 19590101 20160602 338980 99999 TATARBUNARY UP 45.817 29.583000000000002 40.0 19590101 19891109 339020 99999 KHERSON UP 46.633 32.567 54.0 19320101 20170923 339070 99999 BEKHTERY UP 46.25 32.3 7.0 19590101 20160602 339090 99999 SKADOVSK RS 46.1 32.917 4.0 19590101 19631125 339100 99999 HENICHES'K UP 46.167 34.817 15.0 19320106 20160614 339110 99999 BOGUS SOVIET UP 19870301 20020521 339150 99999 ASKANIIA-NOVA UP 46.45 33.883 30.0 19590101 20160614 339170 99999 PRIMORSKIY UP 46.05 33.45 12.0 19890701 20011104 339210 99999 STEREGUSCIJ UP 45.75 33.217 16.0 19590101 19891225 339220 99999 NOVO-SELOVSKOYE UP 45.45 33.6 15.0 19840501 20021110 339240 99999 CHORNOMORS'KE UP 45.516999999999996 32.7 10.0 19361231 20170923 339290 99999 YEVPATORIIA UP 45.183 33.367 6.0 19590101 20150327 339330 99999 CHOKRAK UP 45.9 34.867 6.0 19590101 20011222 339340 99999 DZANKOJ UP 45.717 34.4 8.0 19550101 20021223 339350 99999 VORONKI UP 45.6 33.55 88.0 19590101 19840314 339390 99999 KLEPYNINE UP 45.65 34.2 37.0 19890701 20150331 339450 99999 POSHTOVE UP 44.833 33.95 176.0 19831210 20150327 339460 99999 SIMFEROPOL' UP UKFF 44.683 34.133 181.0 19360101 20170923 339590 99999 ALUSHTA UP 44.683 34.433 7.0 19590101 20150327 339600 99999 SOVETSKIY UP 45.35 34.95 18.0 19600101 20040624 339610 99999 AZOVSKOYE UP 45.55 34.55 27.0 19480101 19940613 339620 99999 NYZHNIOHIRS'K UP 45.45 34.733000000000004 20.0 19590101 20150327 339660 99999 KRYMS'KA UP 45.05 34.6 205.0 19590101 20150327 339690 99999 SUDAK UP 44.85 34.967 59.1 19590101 19630821 339730 99999 VLADISLAVOVKA UP 45.167 35.383 37.0 19590101 20020725 339760 99999 FEODOSIIA UP 45.033 35.383 26.0 19320103 20150331 339810 99999 CAPE KAZANTIP (LH) UP 45.467 35.867 101.0 19610404 20011222 339830 99999 KERCH UP 45.4 36.417 49.0 19320101 20170923 339900 99999 YALTA UP 44.483000000000004 34.167 72.0 19480102 20150331 339920 99999 BAHCISARAJ UP 44.75 33.867 201.0 19590101 20011117 339940 99999 SEVASTOPOL/BELBEK UP 44.683 33.567 85.0 19320101 19980504 339950 99999 BOGUS SOVIET UP 19890701 19920703 339960 99999 GURZUF UP 44.55 34.283 61.0 19590101 20011104 339980 99999 AI-PETRI UP 44.433 34.083 1180.0 20150327 20170923 339990 99999 AY-PETRI MTN UP 44.467 34.067 1180.0 19320503 20011009 340030 99999 PONYRI RS 52.317 36.3 251.0 19590101 20170923 340090 99999 KURSK RS 51.766999999999996 36.167 247.0 19320101 20170923 340130 99999 LIVNY RS 52.433 37.6 179.0 19590101 20170923 340270 99999 NOVO-KASTORNOE RS 51.783 38.133 191.0 19590103 19940216 340360 99999 LENIN SOVKHOZ RS 52.25 40.667 160.0 19600103 19631216 340470 99999 ZERDEVKA RS 51.833 41.483000000000004 147.0 19320101 20170923 340490 99999 MUCHKAPSKIY SW RS 51.85 42.467 108.0 19590101 19631231 340560 99999 RTISCEVO RS 52.25 43.783 213.0 19590101 20170923 340630 99999 PETROVSK RS 52.283 45.4 199.0 19620603 19950405 340690 99999 ATKARSK RS 51.867 45.033 206.0 19590101 19800115 340720 99999 KARABULAK RS 52.333 46.367 302.0 19620601 20170920 340830 99999 HVALYNSK RS 52.5 48.083 88.0 19620813 20170923 340840 99999 VOLSK RS 52.067 47.35 199.9 19591101 19631218 340850 99999 BALAKOVO RS 52.033 47.75 30.0 19740904 20030112 340980 99999 PUGACEV RS 52.033 48.833 38.0 19480101 20170917 341090 99999 OBOJAN' RS 51.2 36.317 192.0 19910907 20170923 341100 99999 BOGORODITSKOE-FENINO RS 51.167 37.35 226.0 20090128 20170923 341160 99999 STARYJ OSKOL RS 51.3 37.883 218.0 19460309 20020807 341220 99999 CHERTOVITSKOYE RS UUOO 51.81399999999999 39.23 156.7 19320101 20170923 341230 99999 VORONEZ RS 51.7 39.217 149.0 19940802 20170923 341390 99999 KAMENNAJA STEP' RS 51.05 40.7 194.0 20120731 20170923 341460 99999 BORISOGLEBSK RS 51.367 42.083 106.0 19600129 20170923 341520 99999 BALASHOV RS 51.55 43.15 159.0 19320101 20170923 341630 99999 OKTJABR'SKIJ GORODOK RS 51.633 45.45 201.0 20070226 20170923 341640 99999 KALININSK RS 51.5 44.5 229.0 19740820 19800217 341680 99999 MEDVEDITSA RS 51.083 44.817 19620609 19630811 341710 99999 SARATOVA RS 51.55 46.033 156.0 20110331 20170923 341720 99999 TSENTRALNY RS UWSS 51.565 46.047 152.1 19320101 20170923 341760 99999 19870518 19870518 341860 99999 ERSHOV RS 51.367 48.3 111.0 19570701 20170923 341990 99999 OZINKI RS 51.2 49.733000000000004 104.0 19591006 20170923 342020 99999 GOTNJA RS 50.8 35.766999999999996 226.0 19590101 20170923 342130 99999 NOVYJ OSKOL RS 50.75 37.867 140.0 19590101 20030709 342140 99999 BELGOROD RS 50.633 36.583 224.0 19590103 20130430 342310 99999 LISKI RS 51.0 39.5 115.0 19590103 20170923 342330 99999 BUTURL INOVKA RS 50.817 40.633 132.0 19590101 19631211 342380 99999 ANNA RS 51.483000000000004 40.417 154.0 19590101 20170923 342400 99999 URJUPINSK RS 50.8 42.0 110.0 19530216 20170922 342470 99999 KALAC RS 50.417 41.05 92.0 19600101 20170923 342530 99999 ELAN' RS 50.95 43.733000000000004 132.0 20120731 20170918 342540 99999 NOVOANNENSKIJ RS 50.533 42.683 98.0 19610805 20170918 342620 99999 RUDNYA RS 50.833 44.567 114.0 19590103 20170918 342670 99999 DANILOVKA RS 50.367 44.117 102.0 19600401 20170918 342710 99999 ZOLOTOE RS 50.817 45.883 43.0 19611206 19800117 342730 99999 KRASNYJ KUT RS 50.95 46.967 50.0 19620803 20170923 342890 99999 NOVOUZENSK RS 50.483000000000004 48.133 32.0 19740821 19800113 343000 99999 OSNOVA INTL UP UKHH 49.925 36.29 154.8 19320101 20170923 343020 99999 BOHODUKHIV UP 50.2 35.533 203.0 19590101 20160614 343040 99999 KOLOMAK UP 49.85 35.233000000000004 180.0 19590101 20160614 343070 99999 ARTEMOVKA UP 49.766999999999996 35.067 152.0 19620204 20060611 343120 99999 VELYKYI BURLUK UP 50.067 37.383 175.0 19590101 20160614 343170 99999 BOGUS SOVIET UP 19840112 19920413 343190 99999 KUPIANS'K UP 49.633 37.7 83.0 19590101 20160614 343210 99999 VALUJKI RS 50.217 38.1 112.0 19480501 20170923 343310 99999 ROSSOSH RS 50.2 39.567 92.0 19570701 19631217 343360 99999 BOGUCAR RS 49.933 40.567 84.0 19361231 20170923 343440 99999 KAZANSKAJA RS 49.8 41.15 72.0 19610907 20170918 343480 99999 VESHENSKAYA RS 49.617 41.733000000000004 19610805 19630731 343510 99999 BOGUS SOVIET RS 19910401 20030223 343560 99999 FROLOVO RS 49.8 43.667 119.0 19610802 20170918 343570 99999 SERAFIMOVIC RS 49.567 42.75 200.0 19460403 20170918 343580 99999 BOGUS SOVIET RS 19910407 20021223 343630 99999 KAMYSIN RS 50.067 45.367 119.0 19320101 20170918 343680 99999 GORNIY BALIKLEY RS 49.55 45.083 43.0 19610805 19840507 343730 99999 PALLASOVKA RS 50.05 46.883 37.0 19610802 20170921 343850 99999 ASCE UZJAK KZ 49.766999999999996 47.75 18.0 19590101 19901129 343910 99999 ALEKSANDROV-GAJ RS 50.15 48.55 25.0 19320101 20170923 343940 99999 DZHAMBALA SOUTH KZ 49.783 48.533 13.0 19630301 19631227 343980 99999 ZHALPAKTAL KZ 49.667 49.483000000000004 10.0 19590101 20170923 344010 99999 KRASNOHRAD UP 49.383 35.45 159.0 19590101 20160614 344070 99999 HUBYNYKHA UP 48.8 35.25 127.0 19590101 20160614 344090 99999 LOZOVA UP 48.9 36.317 177.0 19590101 20160614 344110 99999 BALAKLEYA SOUTHWEST UP 49.45 36.85 78.0 19590101 19620114 344150 99999 IZIUM UP 49.183 37.3 78.0 19320101 20170923 344190 99999 KRASNY LIMAN UP 48.983000000000004 37.783 107.0 19590101 20021125 344210 99999 SVATOVE UP 49.417 38.167 89.0 19840520 20160602 344220 99999 STAROBEL'SK UP 49.283 38.917 64.0 19590101 19900710 344320 99999 CERTKOVO RS 49.383 40.167 145.0 19590101 19950621 344340 99999 BILOVODS'K UP 49.217 39.583 75.0 19590101 20160602 344380 99999 MILLEROVO RS 48.933 40.383 155.0 19480505 20170921 344450 99999 BOKOVSKAJA RS 49.217 41.833 91.0 19610805 20170922 344610 99999 ILOVLJA RS 49.3 44.0 44.4 19611101 20170918 344730 99999 OZHANYBEK KZ 49.433 46.85 19590110 19631230 344760 99999 EL'TON RS 49.133 46.85 6.0 19600101 20170919 344990 99999 NOVAJA KAZANKA KZ 48.967 49.617 -2.0 19590101 19890923 345000 99999 P0DGORODNOYE UP 48.55 35.05 61.0 19570926 19631230 345020 99999 PAVLOGRAD UP 48.533 35.833 91.0 19771001 20160602 345040 99999 DNIPROPETROVS'K UP 48.6 34.967 143.0 19320101 20170923 345050 99999 BOGUS SOVIET UP 19890703 19920915 345090 99999 CHAPLYNE UP 48.133 36.233000000000004 175.0 19480104 20160614 345100 99999 ARTEMIVS'K UP 48.6 37.983000000000004 124.0 19590101 20160614 345140 99999 ALEKSANDROPOL UP 48.6 36.55 125.0 19840112 20020605 345150 99999 KRASNOARMEJSK UP 48.183 37.2 175.0 19590101 20021225 345190 99999 DONETS'K UP 48.067 37.766999999999996 225.0 19460307 20140526 345230 99999 LUHANS'K UP 48.567 39.25 62.0 19320101 20140707 345240 99999 DEBAL'TSEVE UP 48.35 38.433 334.0 19600402 20150123 345350 99999 KAMENSK-SAHTINSKIJ RS 48.3 40.3 51.0 19590630 20170918 345370 99999 DAR'IVKA UP 48.083 39.5 302.0 19590101 20150113 345390 99999 BELAJA KALITVA RS 48.167 40.817 155.0 19730101 19840507 345450 99999 MOROZOVSK RS 48.35 41.867 90.0 19470502 20170919 345550 99999 NIZHNY-CHIR RS 48.333 43.117 68.0 19590101 20170922 345590 99999 GNILO-AKSAYSKAYA RS 48.033 43.867 156.0 19610805 19810223 345600 99999 GUMRAK RS URWW 48.783 44.346000000000004 146.9 19320101 20170923 345710 99999 KAPUSTIN JAR RS 48.6 45.75 7.0 19590101 19740309 345780 99999 CERNYJ JAR RS 48.067 46.117 5.0 19610901 20170918 345790 99999 VERHNIJ BASKUNCHAK RS 48.217 46.733000000000004 34.0 19361231 20170919 345810 99999 URDA KZ 48.766999999999996 47.433 4.0 19590101 19981009 345880 99999 TYULYUGEN KZ 48.15 47.667 9.0 19740721 19840530 346010 99999 ZAPORIZHZHIA INTL UP UKDE 47.867 35.316 113.7 19581230 20170923 346060 99999 GULYAYPOLE UP 47.667 36.25 135.0 19581230 20030112 346070 99999 PRYSHYB UP 47.266999999999996 35.333 88.0 19590101 20160614 346090 99999 KYRYLIVKA UP 47.333 36.333 221.0 19590101 20160614 346150 99999 VOLNOVAKHA UP 47.617 37.35 267.0 19590101 20160602 346220 99999 AMVROSIIVKA UP 47.8 38.516999999999996 164.0 19590101 20150327 346250 99999 MATVEEV KURGAN RS 47.567 38.883 43.0 19590101 19840627 346350 99999 SAHTY RS 47.7 40.266999999999996 118.0 19610907 19950601 346440 99999 KONSTANTINOVSK RS 47.583 41.1 66.0 19590101 20170920 346460 99999 CIMLJANSK RS 47.633 42.117 65.0 19590101 20170922 346550 99999 KOTEL'NIKOVO RS 47.633 43.15 49.0 19320102 20170918 346620 99999 MALYE DERBETY RS 47.933 44.7 9.0 19600101 20170918 346870 99999 KHARABALI RS 47.417 47.25 -16.0 19590101 20080210 346910 99999 NOVYJ USHTOGAN KZ 47.9 48.8 -10.0 19590101 20170923 346990 99999 BOGUS SOVIET RS 19810101 19820527 347040 99999 MELITOPOL' UP 46.833 35.367 34.0 19361231 20160602 347080 99999 BOTIEVE UP 46.683 35.85 19.0 19590101 20160602 347120 99999 MARIUPOL' UP UKCM 47.033 37.5 70.0 19361231 20170923 347170 99999 BERDYANSK UP 46.75 36.783 2.0 19320107 19891221 347190 99999 DOLZHANKA RS 46.617 37.8 2.0 19590516 19970608 347200 99999 TAGANROG RS 47.2 38.9 32.0 19590101 20170918 347230 99999 AZOV RS 47.117 39.417 4.0 19590107 20030105 347250 99999 MARGARITOVKA RS 46.933 38.867 11.0 19610907 19840203 347270 99999 EJSK RS 46.8 38.266999999999996 3.0 19320102 20170918 347300 99999 ROSTOV-NA-DONU RS URRR 47.266999999999996 39.817 75.0 20030330 20140917 347310 99999 ROSTOV-NA-DONU GG 47.25 39.817 78.0 19320101 20170923 347330 99999 VESELIY RS 47.083 40.75 9.0 19730101 19860101 347350 99999 ZERNOGRAD RS 46.8 40.317 85.0 19610907 20120713 347370 99999 KUSCEVSKAJA RS 46.533 39.617 22.0 19590101 20081121 347400 99999 GIGANT RS 46.516999999999996 41.35 79.0 20090325 20170918 347430 99999 ZIMOVNIKI RS 47.15 42.483000000000004 72.0 19590101 20170919 347470 99999 CELINA RS 46.55 41.05 112.0 19480102 19990205 347480 99999 PROLETARSKAYA RS 46.7 41.733000000000004 25.0 19590101 19980408 347530 99999 ZAVETNOE RS 47.117 43.933 81.0 19610905 20040226 347590 99999 REMONTNOE RS 46.567 43.667 106.0 19480101 20170920 347720 99999 YUSTA RS 47.133 46.317 2.6 19600104 20170918 347850 99999 DOSANG RS 46.917 47.933 -19.0 19590101 20170918 347980 99999 GANJUSHKINO KZ 46.6 49.266999999999996 -23.0 19590101 20170923 348130 99999 KAMYSEVATSKAJA RS 46.417 37.95 16.0 19590801 19630905 348240 99999 PRIMORSKO-AHTARSK RS 46.033 38.15 5.0 19480102 20170919 348250 99999 KANEVSKAJA RS 46.067 38.967 17.0 19610907 19950822 348380 99999 TIHORECK RS 45.85 40.083 78.0 19550101 20170918 348450 99999 GORODOVIKOVSK RS 46.067 41.967 86.0 19590101 20170920 348580 99999 DIVNOE GG 45.917 43.35 87.0 19351231 20170923 348610 99999 ELISTA RS URWI 46.367 44.333 152.7 19590101 20170923 348660 99999 YASHKUL' RS 46.183 45.35 -7.0 19361231 20170918 348680 99999 IKI-BURUL RS 45.8 44.633 113.0 20120926 20170918 348710 99999 UTTA RS 46.367 46.016999999999996 -7.1 19611103 20170923 348720 99999 UTTA EAST RS 46.367 46.033 0.0 19611103 19631108 348770 99999 ADYK RS 45.8 45.633 -11.0 19611005 19840413 348780 99999 ... RS 45.783 46.333 19620106 19760110 348800 99999 ASTRAHAN' RS 46.283 47.983000000000004 -21.6 19320101 20170918 348870 99999 LIMAN RS 45.8 47.217 -18.0 19610905 20170919 348940 99999 ZELENGA RS 46.183 48.6 19610901 19631229 348960 99999 UKATNIY ISLAND RS 45.917 49.55 -27.0 19590101 19631231 349150 99999 KUBANSKAYA (TEMRYUK) RS 45.317 37.383 2.0 19590903 20081121 349170 99999 TAMAN' (BAY) RS 45.233000000000004 36.75 5.0 19590719 19781106 349220 99999 TIMASEVSKAJA RS 45.633 38.933 22.0 19590101 19950511 349240 99999 SLAVJANSK-NA-KUBANI RS 45.283 38.117 9.0 19590101 20081121 349270 99999 KRASNODAR-KRUGLIK RS 45.05 39.033 29.0 20090325 20170628 349290 99999 PASHKOVSKIY RS URKK 45.035 39.171 36.0 19320101 20170923 349360 99999 KROPOTKIN RS 45.433 40.567 106.0 19590104 19950601 349370 99999 UST-LABINSK RS 45.217 39.683 90.0 19610905 19860708 349490 99999 SHPAKOVSKOYE RS URMT 45.108999999999995 42.113 452.9 19590101 20170923 349540 99999 SVETLOGRAD RS 45.35 42.85 140.0 19361231 20170918 349580 99999 BLAGODARNYJ RS 45.1 43.45 162.0 19610814 20170922 349640 99999 ARZGIR RS 45.4 44.2 76.0 19590101 19950601 349750 99999 KOMSOMOL'SKIJ RS 45.35 46.033 -1.7 19610912 20170923 349760 99999 NARYN-HUDUK RS 45.433 46.55 -18.0 19590101 19890513 349820 99999 VOSKRESENSK SOUTH RS 45.617 47.516999999999996 0.0 19590901 19631213 349840 99999 LAGAN' RS 45.4 47.35 -24.0 20120731 20170918 349890 99999 ISKUSSTVENNYJ OSTRO RS 45.383 47.783 -25.0 19600101 19631231 350010 99999 BOL'SAJA GLUSCICA RS 52.383 50.467 64.0 19611208 20170917 350070 99999 PERELJUB RS 51.867 50.333 71.0 19611001 20170917 350110 99999 SOROCHINSK RS 52.433 53.133 123.0 19591004 20170923 350150 99999 NOVOSERGIEVKA RS 52.083 53.633 139.0 19591004 20021107 350190 99999 SIRT RS 51.867 54.533 269.0 19591101 20030412 350210 99999 OKTYABRSKOYE RS 52.35 55.467 135.0 19590430 20020914 350260 99999 ZILAIR RS 52.217 57.452 521.0 19530216 20170923 350370 99999 AK'JAR RS 51.867 58.183 341.0 19590101 20170923 350390 99999 KRASNOJARSKI RS 51.967 59.95 322.0 19620731 19870624 350410 99999 BREDY RS 52.433 60.35 310.0 19600301 20030115 350420 99999 ZABELOVKA KZ 52.3 61.317 279.0 19600101 20000105 350450 99999 DZHETYGARA KZ 52.183 61.233000000000004 263.0 19480101 19601223 350530 99999 KUSMURUN KZ 52.467 64.667 110.0 19590101 20000807 350670 99999 ESIL' KZ 51.883 66.333 221.0 19530216 20170923 350675 99999 UST KAMENOGORSK KZ UASK 50.037 82.494 286.2 20070822 20170923 350780 99999 ATBASAR KZ 51.817 68.367 304.0 19480101 20170923 350830 99999 AKSU KZ 52.467 71.983 290.0 19590101 20020609 350850 99999 AKKOL' KZ 52.0 70.95 384.0 19590101 20170923 350920 99999 BESTOBE KZ 52.5 73.1 168.0 20131128 20170923 351020 99999 TEPLOVKA RS 51.533 51.533 70.0 19590102 20030213 351060 99999 SHARAKKOP KZ 51.4 51.95 38.0 19600129 19631221 351070 99999 KAMEMKA KZ 51.117 50.317 72.0 19590110 20021211 351080 99999 URALSK KZ UARR 51.151 51.543 38.1 19320102 20170923 351120 99999 ILEK RS 51.533 53.45 64.0 19611208 19800117 351170 99999 KAZAKHSTAN KZ 51.167 53.0 19590101 19631222 351180 99999 CINGIRLAU KZ 51.033 54.1 105.0 19590101 20020507 351210 99999 ORENBURG RS UWOO 51.79600000000001 55.457 118.0 19320101 20170923 351250 99999 BELJAEVKA RS 51.417 56.417 131.0 19611212 20170420 351260 99999 KUVANDYK RS 51.483000000000004 57.467 225.0 19611211 20020826 351270 99999 AK-BULAK RS 51.016999999999996 55.633 144.0 19611212 20170923 351320 99999 IRIKLINSKI RS 51.667 58.65 268.0 19740821 19800115 351330 99999 ADAMOVKA RS 51.533 59.983000000000004 285.0 19461003 20021205 351380 99999 ORSK RS 51.067 58.6 285.0 19611204 20170923 351480 99999 PSKOVSKIY KZ 50.933 61.667 248.0 19630605 20020116 351560 99999 NAURZUMSKIY KZ 51.4 64.633 130.0 19730104 19831109 351570 99999 ARALKOL' KZ 51.083 62.7 230.0 19630302 19981009 351630 99999 KIJMA KZ 51.6 67.567 272.0 19850702 19971128 351660 99999 KAZGORODOK KZ 51.266999999999996 67.233 252.0 19530219 19880925 351670 99999 DERZHAVINSK KZ 51.083 66.3 243.0 20131128 20170923 351730 99999 ZHALTYR KZ 51.617 69.8 305.0 19590101 20170923 351880 99999 ASTANA INTL KZ UACC 51.022 71.467 355.1 19320101 20170923 351910 99999 JERMENTAU KZ 51.633 73.167 397.0 19590116 19990203 351920 99999 BOSTAL KZ 51.533 73.817 19530216 19580520 352130 99999 BURANNOYE RS 50.967 54.467 97.0 19590101 20020807 352150 99999 LOKTEV KZ 50.617 50.85 19.0 19630601 19631129 352170 99999 DZHAMBEJTY KZ 50.25 52.567 32.0 19480101 20170923 352250 99999 MARTUK KZ 50.75 56.533 178.0 19530216 20020810 352290 99999 AKTYUBINSK KZ UATT 50.246 57.207 224.9 19320101 20170923 352330 99999 DOMBAROVSKI RS 50.783 59.567 287.0 19740820 19800831 352340 99999 KOS-ISTEK KZ 50.733000000000004 57.9 340.0 19590628 20090621 352350 99999 STEPNOE KZ 50.717 58.667 243.0 20131128 20170923 352570 99999 SHIYLI KZ 50.45 62.8 183.0 19820102 19820428 352590 99999 SHUMEKTY KZ 50.266999999999996 64.217 76.0 19600317 20020830 352740 99999 TALDY-KUL KZ 50.55 67.917 286.0 19590101 19631231 352830 99999 VISHNEVKA KZ 50.833 72.183 411.0 19810101 19860605 352840 99999 ARYKTY KZ 50.633 70.55 320.0 19810101 19860906 352860 99999 ANAR KZ 50.617 72.433 437.0 19530216 19800322 352870 99999 KURGALDZINSKI KZ 50.5 70.05 330.0 19600223 20020804 353020 99999 CHAPAEVO KZ 50.2 51.167 17.0 19590101 20170923 353120 99999 LUBENKA KZ 50.45 54.117 136.0 19590901 19601001 353150 99999 KARATYUBINSKIY KZ 49.516999999999996 53.516999999999996 80.0 19600415 19830817 353210 99999 NOVOALEKSJEVKA KZ 50.133 55.7 142.0 19590110 20000829 353250 99999 LLINKA KZ 49.933 56.4 188.0 19610321 19631224 353310 99999 NOVOROSSIYSKIY KZ 50.233000000000004 58.0 19590412 19751205 353340 99999 TOKMANSAY KZ 49.8 57.983000000000004 368.0 20131128 20170922 353350 99999 KOKLEKTY KZ 49.9 58.317 351.0 19610313 19620809 353440 99999 KARABUTAK KZ 49.95 60.133 229.0 19590110 20150322 353450 99999 TAMABULAK KZ 49.983000000000004 61.483000000000004 221.0 19600109 20030218 353540 99999 19740803 19740913 353570 99999 BARSHINO KZ 49.683 69.517 349.0 20081201 20170923 353580 99999 TORGAI KZ 49.633 63.5 -999.9 19320101 20170923 353610 99999 AMANGELDY KZ 50.133 65.233 142.0 19530216 20090612 353630 99999 ARKALYK KZ 50.217 66.833 343.0 19690102 20130908 353680 99999 SENBER KZ 49.75 66.15 229.0 19600401 20121119 353760 99999 BERLIK KZ 49.883 69.517 349.0 19530216 20080328 353860 99999 KAZGORODOK KZ 49.95 71.583 422.0 19630601 20030216 353940 99999 KARAGANDA KZ UAKK 49.67100000000001 73.334 538.0 19480101 20170923 353941 99999 KOSTANAY RS 53.2 63.55 186.0 20040510 20111115 353942 99999 ASTRAKHAN RS URWA 46.283 48.006 -20.1 20040510 20170923 353943 99999 OKHA RUSSIAN FEDERAT RS UHSH 53.62 142.95 37.0 20040831 20130719 353944 99999 NOVY URENGOY RS USMU 66.067 76.517 64.0 20040706 20170615 353946 99999 ZVARTNOTS AM UDYZ 40.147 44.396 865.0 20040706 20170923 353947 99999 CHOKURDAKH RUSSIAN RS UESO 70.63 147.92 26.0 20040706 20130719 353948 99999 SHIRAK GEORGIA GG UDSG 40.75 43.85 1524.0 20040803 20170923 354040 99999 DZHANGALA KZ 49.217 50.3 7.0 19881001 20040731 354060 99999 TAIPAK KZ 49.05 51.867 2.0 19361231 20170923 354160 99999 UIL KZ 49.067 54.683 128.0 19320401 20170923 354260 99999 TEMIR KZ 49.15 57.117 234.0 19480103 20170923 354300 99999 TALDYK KZ 49.25 59.55 260.0 19590101 19941202 354360 99999 DZHURUN KZ 49.233000000000004 57.667 234.0 19590101 19631231 354370 99999 EMBA KZ 48.817 58.217 230.0 19340114 20170207 354490 99999 NURA KZ 48.833 62.1 82.0 19590101 19820817 354590 99999 BISARY KZ 48.817 64.617 122.0 19630302 20050824 354670 99999 BRALI KZ 48.9 65.533 223.0 19630302 20040324 354750 99999 SHUBARKUL KZ 49.016999999999996 68.667 490.0 20131128 20170923 354780 99999 ALGABAS KZ 48.883 68.083 506.0 19810101 19970209 354970 99999 ZHARYK KZ 48.85 72.867 656.0 19530216 20170923 354980 99999 AKSU-AYULY KZ 48.783 73.667 724.0 20010927 20170726 355050 99999 TOLUBAI KZ 48.467 51.0 10.1 19590101 19631221 355140 99999 KARABAU KZ 48.45 52.917 0.0 19590101 20111017 355190 99999 SAGIZ KZ 48.2 54.933 73.0 19730101 19990318 355220 99999 KARAUL KEL'DY KZ 48.733000000000004 56.033 186.0 19530216 20050505 355290 99999 KOZASAJ KZ 48.217 57.117 151.0 19530217 19950712 355320 99999 MUGODZARSKAJA KZ 48.633 58.5 398.0 19570701 20170923 355350 99999 BERCOGUR KZ 48.467 58.583 404.0 19480101 19620129 355420 99999 IRGIZ KZ 48.617 61.266999999999996 114.0 19320401 20041003 355490 99999 TAUP KZ 48.25 62.0 74.0 19590101 19951113 355630 99999 ULYTAU KZ 48.583 67.083 632.0 19590201 20170803 355760 99999 KYZYLZHAR KZ 48.3 69.65 -999.9 19550301 20170923 355820 99999 ATASU KZ 48.7 71.633 488.0 19590102 20101130 356020 99999 TOPOLI KZ 47.967 51.65 -14.0 19590102 19781101 356050 99999 MAHAMBET KZ 47.667 51.583 -15.0 19751201 20020319 356150 99999 MAKAT KZ 47.633 53.317 -22.0 20131128 20170923 356330 99999 CELKAR KZ 47.85 59.617 176.0 19361231 20020319 356350 99999 TEREN'-KUDUK KZ 47.7 58.467 511.0 19590101 20021120 356560 99999 APPROXIMATE LOCALE KZ 47.633 64.583 0.0 19820102 20020319 356620 99999 KARSAKBAY KZ 47.833 66.733 488.0 20131128 20170923 356630 99999 KARSAKPAJ KZ 47.833 66.75 508.0 19351231 20020920 356710 99999 ZHEZKAZGAN KZ UAKD 47.8 67.717 346.0 19480102 20170923 356830 99999 KZYL-TAU KZ 47.85 72.083 810.0 19570710 20050704 356870 99999 KOKTAS KZ 47.516999999999996 70.9 471.0 19590101 20090220 356990 99999 BEKTAUATA KZ 47.45 74.817 620.0 19530217 20170923 357000 99999 ATYRAU KZ 47.117 51.917 -22.0 19320101 20170923 357010 99999 ISATAI KZ 47.217 50.983000000000004 -27.0 20131128 20170923 357040 99999 ZOBURUN'JE KZ 46.75 50.167 -24.0 19840401 20011023 357050 99999 APPROXIMATE LOCALE KZ 46.867 51.25 0.0 19591101 20130519 357060 99999 BOLSHOY PESHNO ISL KZ 46.766999999999996 51.783 -23.0 19810501 19810822 357070 99999 ZABURUNYE/ISATAY KZ 46.75 50.2 -23.0 19590101 19840829 357150 99999 KULSARY KZ 46.8 53.917 18.0 19340102 19991218 357210 99999 ZAMBIKE KZ 47.033 55.133 45.0 19590101 20030303 357290 99999 AK-TUMSUK KZ 46.633 57.333 44.0 19570701 19891001 357390 99999 AYAK-KUM KZ 46.717 59.167 114.0 19570710 20020319 357420 99999 SAKSAULSKI KZ 47.083 61.217 79.0 19590104 19910330 357460 99999 ARALSK KZ UATA 46.783 61.667 56.0 19480101 20170923 357490 99999 MONSYR KZ 46.717 62.5 80.0 19590101 20071001 357560 99999 KARA-KUM KZ 46.883 64.667 79.0 19570711 20020726 357770 99999 JETI-KONUR KZ 46.583 68.617 276.0 19570710 20020730 357780 99999 19870518 19870518 357910 99999 MOINTY KZ 47.2 73.35 581.0 19370119 20020915 357930 99999 MOIYNTY KZ 47.217 73.35 582.0 20131128 20170923 357960 99999 BALHASH KZ 46.8 75.083 350.0 19480101 20170923 358160 99999 OPORNY KZ 46.233000000000004 54.483000000000004 -16.0 19810101 19910302 358220 99999 DGUKARA KZ 46.567 55.867 28.0 19590102 19870619 358470 99999 IMENI SHAVCHEMKO KZ 45.983000000000004 61.067 60.0 19730701 19880818 358490 99999 KAZALY KZ 45.766999999999996 62.117 68.0 19340201 20170923 358660 99999 APPROXIMATE LOCALE KZ 46.133 67.083 0.0 19820119 19840421 358830 99999 SARYSHAGAN WEST KZ 46.333 72.033 538.0 19590102 19630204 358840 99999 BETPAK-DALA STEPPE KZ 46.0 70.0 325.0 19570706 20020607 358850 99999 BULAT-TAU KZ 46.067 71.6 583.0 19740909 19820301 358890 99999 KASHKANTENIZ WEST KZ 45.9 72.65 500.0 19620202 19631231 358950 99999 KOKTAS KZ 46.033 73.533 344.0 19730922 20100716 359070 99999 KULALY ISLAND KZ 45.016999999999996 50.033 -22.0 19590101 20020319 359250 99999 SAM KZ 45.4 56.117 88.0 19570701 20170923 359270 99999 BEJNEU KZ 45.25 55.083 74.0 19590102 20160411 359370 99999 CHIYLA BULAK WEST UZ 45.083 58.067 157.0 19600101 19631231 359410 99999 BARSAKELMES ISLAND KZ 45.683 59.917 80.0 19600101 19970318 359420 99999 UZUN-KAYIR KZ 45.733000000000004 60.933 54.0 19600101 20011121 359530 99999 ZHOSALY KZ 45.5 64.083 103.0 19480102 20170923 359690 99999 ZLIKHA KZ 45.25 67.067 138.0 19530216 20170923 359860 99999 TYUKEN KZ 45.533 72.4 420.0 19590101 19820413 359970 99999 CIGANAK KZ 45.1 73.967 349.0 19590101 20090810 359980 99999 BURIBAYTAL SOUTHEAST KZ 45.05 74.033 347.0 19480101 19551231 360010 99999 EKIBASTUZ KZ 51.7 75.367 234.0 19590102 20010928 360030 99999 PAVLODAR KZ UASP 52.195 77.074 125.0 19320102 20170923 360120 99999 SCERBAKTY KZ 52.35 78.333 149.0 19590102 19631230 360150 99999 LEBJAZJE KZ 51.483000000000004 77.767 144.0 19740319 20020319 360200 99999 RODINO RS 52.483000000000004 80.167 158.0 19480101 20170923 360210 99999 KLJUCI RS 52.25 79.183 142.0 19530216 20170923 360220 99999 VOLCIHA RS 52.016999999999996 80.367 208.0 19530216 20170923 360260 99999 NOVONIKALAEVKA KZ 51.067 79.417 258.0 20131128 20170923 360270 99999 NOVO-NIKOLAYEVKA KZ 51.016999999999996 79.283 249.0 19610420 20030219 360280 99999 UGLOVSKOYE RS 51.367 80.217 202.0 19530216 20020419 360320 99999 SIPUNOVO RS 52.217 82.25 196.0 19890201 20020821 360340 99999 RUBCOVSK RS 51.576 81.217 219.0 19480101 20170923 360360 99999 KRASNO-SCEKOVO RS 51.667 82.73299999999999 240.0 19530216 20010627 360380 99999 ZMEINOGORSK KZ 51.15 82.2 355.0 19530216 20170923 360450 99999 SOLONESNOJE RS 51.667 84.31700000000001 411.0 19600112 19970323 360460 99999 BELOKURIHA RS 51.967 84.95 260.0 19361231 19620811 360520 99999 MAJMA RS 52.016999999999996 85.9 331.0 19570913 20030214 360580 99999 CEMAL RS 51.433 86.0 420.0 19530216 20170923 360610 99999 TUROCAK RS 52.25 87.117 326.0 19480101 20170923 360640 99999 YAJLJU RS 51.766999999999996 87.6 480.0 19610215 20170923 360730 99999 KANTEGIR RS 52.266999999999996 90.8 716.2 20120330 20150224 360780 99999 TELI RS 51.016999999999996 90.21700000000001 983.1 19600213 20170923 360830 99999 UST'-USA RS 52.05 92.167 576.9 19530216 20170923 360870 99999 CADAN RS 51.283 91.667 836.0 19570722 20050117 360900 99999 HOVU-AKSY RS 51.133 93.68299999999999 1043.0 19820101 20170923 360910 99999 NIZHNE-USINSKOE RS 52.25 93.01700000000001 662.1 19590101 20170923 360920 99999 TURAN RS 52.15 93.917 852.4 19590101 20170923 360960 99999 KYZYL RS 51.717 94.5 628.0 19570731 20170923 360970 99999 HOVU-AKSY RS 51.016999999999996 93.71700000000001 1063.0 19590101 19840923 361030 99999 TOORA-HEM RS 52.467 96.1 920.0 19570722 20170923 361040 99999 SARYG-SEP RS 51.483000000000004 95.583 705.8 19570722 20170923 361260 99999 BAJANAUL KZ 50.8 75.7 504.0 19570710 20090612 361520 99999 SEMIJARKA KZ 50.867 78.35 149.0 19480101 20170923 361770 99999 SEMIPALATINSK KZ 50.417 80.3 196.0 19320101 20170923 361780 99999 BOGUS SOVIET RS 19850514 20030113 361860 99999 SEMONAIHA KZ 50.633 81.917 320.0 19530216 20051013 361870 99999 CHALOBAY KZ 50.217 81.333 365.0 19740822 20020920 361970 99999 TAVRIA KZ 50.167 82.03299999999999 270.0 20131128 20170923 362080 99999 LENINOGORSK KZ 50.333 83.55 811.0 19590102 20170923 362130 99999 UST-KAN RS 50.95 84.917 1037.0 19530316 19951120 362290 99999 UST'- KOKSA RS 50.283 85.617 978.0 19600112 20170923 362310 99999 ONGUDAJ RS 50.75 86.133 833.0 19570701 20050117 362370 99999 MUL'TA RS 52.167 85.95 945.0 19890101 20010807 362460 99999 UST-ULAGAN RS 50.633 87.93299999999999 1937.0 19611105 19891228 362490 99999 KOTASEVO RS 50.317 87.583 1309.0 19890101 19891111 362590 99999 KOSH-AGACH RS 50.016999999999996 88.68299999999999 1759.0 19570706 20170923 362780 99999 MUGUR-AKSY RS 50.383 90.43299999999999 1850.0 19631005 20170923 363070 99999 ERZIN RS 50.25 95.167 1100.0 19590101 20170923 363250 99999 KUNGUR-TUK RS 50.6 97.51700000000001 1315.0 19590101 19950418 363350 99999 KARKARALINSK KZ 49.383 75.517 812.0 19320106 19940725 363410 99999 EGINDYBULAK KZ 49.783 76.383 776.0 20131128 20170923 363580 99999 KAJNAR KZ 49.2 77.367 842.0 19570706 20130410 363920 99999 BORODINE KZ 49.967 81.467 371.0 19610326 20121211 363940 99999 CARSKAJA KZ 49.583 81.05 334.0 19530218 20090904 363970 99999 ZHANGIZTOBE KZ 49.217 81.217 455.0 19480101 20170923 363980 99999 GEORGIJEVKA KZ 49.317 81.583 418.0 19591023 20020913 364030 99999 UST-KAMENOGORSK KZ 49.967 82.633 292.0 19570710 20010504 364100 99999 BUKHTARMA SE KZ 49.6 83.55 387.0 19590102 19631225 364180 99999 SAMARSKOE KZ 49.033 83.383 524.0 19590115 20050716 364210 99999 ZYRJANOVSK KZ 49.75 84.28299999999999 492.0 19590102 19820514 364280 99999 ULKEN NARYN KZ 49.2 84.51700000000001 401.0 19530216 20170923 364390 99999 KATON-KARAGAJ KZ 49.183 85.617 1081.0 19570701 20110920 364420 99999 KATUN KZ 49.733000000000004 86.55 1800.0 19600427 19941231 364430 99999 AK-KEM RS 49.917 86.53299999999999 2056.0 19610105 20081009 364530 99999 BELESI RS 49.7 87.43299999999999 1524.0 19890101 19891111 364570 99999 ARGAMJI RS 49.283 87.917 2280.0 19600102 19831004 364670 99999 AKTOGAJ KZ 48.3 74.967 780.0 19590102 19980526 364870 99999 OGIZTAU KZ 48.266999999999996 77.317 699.0 19590101 19970622 364980 99999 BARSHATAS KZ 48.167 78.417 643.0 19590101 20090612 365010 99999 KARAUL KZ 49.0 79.333 618.0 19610313 20130617 365130 99999 KARA-JOL KZ 48.717 80.9 872.0 19590801 19750307 365350 99999 KOKPEKTY KZ 48.75 82.367 512.0 19480101 20170923 365460 99999 KURCUM KZ 48.55 83.68299999999999 427.0 19590121 19981009 365630 99999 TOPOLEVKA KZ 48.833 85.85 1667.0 19590104 19631228 365690 99999 BURAN KZ 48.067 85.25 412.0 19590202 19811227 366040 99999 19870518 19870518 366190 99999 ZUZ-AGAC KZ 47.083 79.717 422.0 19600529 20080713 366220 99999 AJAGUZ KZ 47.967 80.45 655.0 19570701 20020105 366390 99999 URZHAR KZ 47.117 81.617 491.0 19530216 20170923 366430 99999 AKSUAT KZ 47.8 82.833 548.0 19590110 19910331 366610 99999 PRIOZERNYY NE KZ 47.8 84.3 386.0 19600201 19631231 366650 99999 ZAJSAN KZ 47.467 84.917 603.0 19480101 20020319 366770 99999 TOMAR E KZ 46.383 75.167 340.0 19590415 19600827 366860 99999 ALGAZY OSTROV KZ 46.55 76.867 349.0 19630502 20160105 367140 99999 BURLYU-TYUBE /BURLIU-TOBE KZ 46.583 79.1 351.1 19361231 19540506 367230 99999 SAGAT KZ 46.717 80.75 427.0 19731213 19830929 367290 99999 UC-ARAL KZ 46.167 80.933 397.0 19530216 20090612 367360 99999 BAHTY KZ 46.65 82.75 441.0 19480101 20120915 367440 99999 AUL KZ 45.633 75.117 353.0 19570701 20020319 367610 99999 NAYMAN-SUYEK KZ 45.7 77.267 368.0 19590101 20091107 367700 99999 MULALY KZ 45.45 78.333 564.0 19890513 20020820 367730 99999 MATAJ KZ 45.85 78.717 412.0 19590102 19900715 367770 99999 KARATAL E KZ 45.333 78.017 443.0 19590101 19740927 367780 99999 TALDY-KURGAN KZ 45.0 78.383 602.0 19590101 20040731 367850 99999 ZHANSUGUROV KZ 45.383 79.5 628.0 20131128 20170923 367860 99999 SARKAND KZ 45.417 79.9 1113.0 19590101 19950314 367960 99999 LEPSINSK KZ 45.883 80.917 1189.0 19790401 20020319 368030 99999 UZYNBULAK KZ 45.85 82.18299999999999 362.0 19731109 20030213 368060 99999 DRUZBA KZ 45.3 82.48299999999999 394.0 19590102 20010921 368170 99999 ANARKHAY KZ 43.983000000000004 75.083 830.0 19590101 20050121 368190 99999 AYDARLI KZ 44.133 75.85 499.0 19590101 20030326 368210 99999 BAKANAS KZ 44.833 76.267 396.0 19590114 20170923 368215 99999 KOKSHETAU AIRPORT KZ UACK 53.32 69.6 263.0 20050724 20170923 368290 99999 KURTY RIVER KZ 44.317 76.7 432.0 19590102 20020519 368310 99999 ZHETY-ZHOL KZ 44.8 77.333 505.0 19590101 19831005 368370 99999 ILIYSK KZ 44.016999999999996 77.133 710.0 19810101 20030714 368390 99999 SARYOZEK KZ 44.367 77.9 948.0 19590107 20041014 368430 99999 KOK-SU KZ 44.633 78.75 1114.0 19610330 20021115 368460 99999 KUGALI KZ 44.467 78.667 1385.0 19590101 19860517 368560 99999 KONYROLEN KZ 44.266999999999996 79.317 1224.0 20131128 20170923 368590 99999 ZHARKENT KZ 44.167 80.067 645.0 19460114 20170923 368640 99999 OTAR KZ 43.533 75.25 743.0 19530216 20170923 368700 99999 ALMATY KZ 43.233000000000004 76.933 851.0 19320101 20170923 368710 99999 KARASAYSKY KZ 43.183 76.75 810.0 20131128 20170923 368720 99999 ALMATY KZ UAAA 43.352 77.041 680.9 20130205 20170923 368740 99999 UZUNAGAC KZ 43.6 76.317 685.0 19610301 20080326 368770 99999 PRUDKY KZ 43.167 76.05 992.0 19630302 20010629 368790 99999 BOGUS SOVIET RS 19850708 19850831 368800 99999 BOGUS SOVIET RS 19860108 20020924 368810 99999 KAPCAGAJ KZ 43.883 77.067 456.0 19590101 20021223 368830 99999 ILIYSKY KZ 43.483000000000004 76.983 614.0 20131128 20170923 368850 99999 ISSYK KZ 43.35 77.467 1098.0 19590101 20011029 368890 99999 TURGEN KZ 43.383 77.55 980.0 19590101 19860704 368910 99999 CILIK KZ 43.583 78.2 600.0 19810101 20060426 368940 99999 MALIBAY KZ 43.483000000000004 78.4 870.0 19590101 20131111 368970 99999 ASSI KZ 43.317 78.25 2216.0 19570706 20041107 369050 99999 PODGORNOJE KZ 43.317 79.483 1273.0 19590101 19900802 369110 99999 TOKMAK KG 42.833 75.283 817.0 19590630 20170923 369260 99999 CHON-SARY-OY KG 42.6 76.917 1596.0 19610203 19621005 369270 99999 RYBACJE KG 42.467 76.183 1660.0 19600101 20080925 369340 99999 COLPON-ATA UZ 42.65 77.1 1645.0 19730104 20080618 369380 99999 TAMGA-IN-KIRGIZ KG 42.167 77.533 1690.0 19591102 19891117 369440 99999 KYZYL-SUU KG 42.35 78.35 1769.0 20071001 20071001 369480 99999 BOLSAJA KZYL KG 42.2 78.2 1719.0 19591124 19970529 369530 99999 NARYNKOL KZ 42.733000000000004 80.133 1807.0 19570710 19860504 369630 99999 DOLON PASS KG 41.8 75.767 3040.0 19600208 19981008 369740 99999 NARYN KG 41.433 76.0 2041.0 19370102 20170923 369820 99999 TIAN-SHAN' KG 41.883 78.233 3639.0 19590101 20170923 369830 99999 DARHAN KG 42.317 77.9 1700.0 19600102 20000107 369850 99999 KARAKOLKA KG 41.483000000000004 77.4 3080.0 19600102 19981226 369940 99999 AK-SYJRAK KG 41.817 78.733 3540.0 19591101 19981008 370000 99999 NOVOROSSIJSK RS 44.717 37.766999999999996 30.0 19320101 19891110 370008 99999 DOMODEDOVO RS UUDD 55.409 37.906 179.2 19990114 20170923 370010 99999 VITYAZEVO RS URKA 45.001999999999995 37.347 53.0 19590101 20170923 370040 99999 GELENDZHIK RS 44.567 38.083 27.0 19590101 20160606 370060 99999 NOVOROSSIJSK RS 44.717 37.85 3.0 19871202 20160614 370090 99999 DZHUBGA RS 44.333 38.717 23.0 19590101 20040915 370130 99999 BELORECENSK RS 44.75 39.9 137.0 19590101 19630822 370140 99999 GORJACIJ KLJUC RS 44.633 39.1 62.0 19610908 20040602 370170 99999 GORNYIJ RS 44.283 39.266999999999996 323.0 19610907 20050915 370180 99999 TUAPSE RS 44.1 39.033 95.0 19360101 20170918 370210 99999 MAJKOP RS URKM 44.617 40.083 220.0 19611005 20170918 370260 99999 LABINSK RS 44.583 40.733000000000004 263.0 19730101 19841028 370310 99999 ARMAVIR RS 44.983000000000004 41.117 159.0 19320101 20170918 370360 99999 NEVINNOMYSSK RS 44.633 41.967 343.0 19480102 20170918 370440 99999 KIAN RS 44.567 42.217 440.0 19610912 19801124 370450 99999 KAZINKA RS 44.45 42.317 410.0 19610907 19631021 370470 99999 CHERKESSK RS 44.233000000000004 42.05 563.0 19590101 19950530 370500 99999 PJATIGORSK RS 44.05 43.033 538.0 19320101 20031223 370540 99999 MINERALNYYE VODY RS URMM 44.225 43.082 321.3 19550101 20170923 370580 99999 GEORGIEVSK RS 44.15 43.467 302.0 19590101 20170923 370610 99999 BUDENNOVSK RS 44.783 44.133 136.0 19480101 20170918 370660 99999 ACHIKULAK RS 44.55 44.833 69.0 19590101 19840820 370750 99999 BAZHIGAN RS 44.55 45.683 16.0 19590206 20150303 370790 99999 TEREKLI-MEKTEB RS 44.167 45.867 19.0 19590101 19950528 370820 99999 ARTEZIAN RS 44.917 46.65 -20.0 19611021 19800927 370850 99999 KOCUBEJ RS 44.4 46.55 -21.0 19590101 20170920 370890 99999 OSTROV TJULENIJ RS 44.467 47.483000000000004 -23.0 19791101 20070515 370990 99999 SOTCHI RS 43.583 39.766999999999996 34.0 19320101 19631230 371070 99999 KRASNAYA POLYANA RS 43.683 40.2 569.0 20090325 20170923 371160 99999 KARATCHAEVSK RS 43.783 41.9 862.0 19590101 19940831 371260 99999 SHADZHATMAZ RS 43.733000000000004 42.667 2056.0 20070227 20170922 371440 99999 PROHLADNAYA RS 43.75 44.05 199.9 20120926 20170922 371450 99999 MOZDOK RS 43.733000000000004 44.667 136.0 19480102 20010926 371630 99999 KIZLJAR RS 43.833 46.717 -5.0 19590101 20170923 371690 99999 BABAYURT RS 43.6 46.783 -3.0 19590101 19950809 371710 99999 SOCHI RS URSS 43.45 39.957 27.1 19590101 20170923 371750 99999 GAGRSKIY GG 43.417 40.25 1629.0 19590101 19950915 371770 99999 GAGBY GG 43.25 40.266999999999996 7.0 19590103 20001217 371775 99999 KOPITNARI GG UGKO 42.177 42.483000000000004 68.0 20050524 20170923 371780 99999 PICUNDA GG 43.2 40.35 4.0 19800304 20010220 371870 99999 GUDAUTA (BAY) GG 43.1 40.633 11.0 19610116 19940515 371890 99999 SUKHUMI (POINT) GG 43.0 41.033 37.0 19590101 20011102 371930 99999 TEBERDA RS 43.45 41.733000000000004 1325.0 19360101 20170922 371960 99999 ZEMO-AZHARA GG 43.117 41.733000000000004 952.0 19590101 19950531 372090 99999 VERKHNAYA BALKARIYA GG 43.05 42.717 1441.0 19590101 19940712 372120 99999 NALCHIK RS URMN 43.513000000000005 43.637 445.3 19480101 20170923 372180 99999 NAZRAN' RS 43.15 44.85 664.8 20120926 20170923 372280 99999 VLADIKAVKAZ RS URMO 43.033 44.683 703.0 19320101 20170923 372350 99999 GROZNYJ RS 43.25 45.717 163.0 19480101 20170918 372440 99999 GUDERMES RS 43.35 46.117 75.0 19610912 20170918 372480 99999 HASAVJURT RS 43.25 46.583 117.0 19590101 20130409 372600 99999 SUHUMI GG 42.867 41.133 13.0 19320101 19951012 372670 99999 OCEMCIRI GG 42.7 41.467 5.0 19590101 19980420 372720 99999 TKVARCHELI GG 42.85 41.683 266.0 19730101 19950911 372780 99999 GALI GG 42.633 41.7 63.0 19590101 19941116 372790 99999 ZUGDIDI GG 42.516999999999996 41.883 118.0 19590101 20170923 372860 99999 LEBARDE GG 42.733000000000004 42.483000000000004 1610.0 19590101 19930418 372950 99999 LENTEKHI GG 42.783 42.733000000000004 731.0 19841102 20141119 372980 99999 TSAGERI GG 42.633 42.7 474.0 19590101 20031231 373080 99999 AMBROLAURI GG 42.516999999999996 43.133 544.0 19690218 20170923 373090 99999 ONI GG 42.583 43.45 789.0 19590101 19931015 373160 99999 NIZHNIY-ZARAMAG RS 42.7 43.967 1730.0 19590101 19931022 373340 99999 KAZBEK MOUNTAIN GG 42.7 44.516999999999996 5033.0 19590101 20021208 373670 99999 BOTLIH RS 42.683 46.2 980.0 19591012 19820627 373710 99999 ANAKLIA GG 42.4 41.567 3.0 19590101 19601216 373720 99999 KOBI GG 42.317 41.883 29.0 19590101 19810731 373750 99999 KHOBI GG 42.317 41.883 19590102 19630728 373790 99999 POTI GG 42.133 41.7 1.0 19320102 20170923 373800 99999 SENAKI GG 42.266999999999996 42.067 34.0 19590101 20040329 373850 99999 SAMTREDIA GG 42.183 42.367 26.0 19590101 19981008 373860 99999 CULUKIDZE GG 42.3 42.417 114.0 19590101 19920628 373880 99999 LANCHKHUTI GG 42.083 42.0 20.0 19890702 20020919 373900 99999 ORPIRI GG 42.333 42.817 175.0 19590101 19951113 373910 99999 KVEDA-GORDI GG 42.433 42.533 540.0 19800302 20010815 373930 99999 TKIBULI GG 42.333 42.983000000000004 541.0 19590101 19961215 373950 99999 KUTAISI GG 42.266999999999996 42.633 114.0 19361231 20170923 374030 99999 SACHKHERE GG 42.35 43.417 455.0 19590101 20170923 374040 99999 ZESTAFONT GG 42.133 43.016999999999996 148.0 19590102 20070823 374090 99999 MTA-SABUETI GG 42.033 43.483000000000004 1245.0 19590101 20170923 374160 99999 CHINVALY GG 42.233000000000004 43.983000000000004 871.0 19590101 20020208 374170 99999 KHASHURI GG 42.0 43.617 690.0 19590101 19990218 374200 99999 BOGUS SOVIET GG 42.05 44.15 19590101 19911130 374290 99999 LENINGORI GG 42.117 44.483000000000004 760.0 19730102 20011003 374320 99999 PASANAURI GG 42.35 44.7 1070.0 19360101 20170109 374370 99999 DUSETI GG 42.083 44.7 902.0 19590101 20170815 374390 99999 TIANETI GG 42.117 44.967 1091.0 19590101 20141028 374480 99999 AKHMETA GG 42.033 45.217 546.0 19760601 19951117 374520 99999 TUSHETI GG 42.417 45.717 2064.0 19590815 19591031 374610 99999 SULAK MOUNTAIN RS 42.4 46.233000000000004 2923.0 19590101 19900428 374630 99999 GUNIB RS 42.4 46.967 1399.0 19590101 20170923 374700 99999 DERBENT RS 42.067 48.3 -18.0 19590101 20170922 374710 99999 BUJNAKSK RS 42.817 47.117 473.0 19600403 20030604 374720 99999 MAHACHKALA RS 43.0 47.5 -18.6 19320101 20170921 374730 99999 IZBERG RS 42.533 47.917 -21.0 19590101 20150204 374750 99999 SERGOKALA RS 42.45 47.667 519.0 19590101 20110801 374810 99999 KOBULETI GG 41.867 41.766999999999996 7.0 19600112 20170923 374830 99999 ANASEULI GG 41.917 41.983000000000004 174.0 19590101 20030124 374840 99999 BATUMI GG UGSB 41.61 41.6 32.0 19320101 20170923 374920 99999 BAKHMARO GG 41.85 42.317 1924.0 19590101 20101011 374960 99999 BOGUS SOVIET RS 41.65 41.633 -999.0 19550101 20170923 374970 99999 BOGUS SOVIET RS 19910501 19911228 374980 99999 KHULO GG 41.65 42.317 946.0 19590101 20040520 375020 99999 SAYIRME GG 41.917 42.75 910.0 19590101 19900107 375030 99999 ABASTUMANI GG 41.717 42.833 1265.0 19730101 19930701 375060 99999 AHALCIHE GG 41.633 42.983000000000004 982.0 19591106 19951213 375070 99999 ADIGENI GG 41.7 42.7 1185.0 19730101 20030505 375080 99999 VALE GG 41.617 42.867 1097.0 19900402 19920725 375130 99999 TSIPA GG 42.016999999999996 43.45 673.0 19590810 19931022 375140 99999 AKHALTSIKHE GG 41.65 43.0 989.0 19590915 20170923 375150 99999 BORZOMI GG 41.833 43.383 794.0 19370101 19961215 375240 99999 BAKURIANI GG 41.717 43.516999999999996 1665.0 19591011 19970429 375250 99999 TABATSKURI (LAKE) GG 41.65 43.617 1995.0 19730105 19920507 375310 99999 GORI GG 41.983000000000004 44.117 609.0 19590101 20170213 375330 99999 KASPI GG 41.933 44.417 616.0 19890604 19960823 375350 99999 MANGLISI GG 41.7 44.383 1195.0 19590101 19951025 375370 99999 TSALKA GG 41.6 44.083 1458.0 19590101 19940704 375390 99999 TETRI-TSKARO GG 41.55 44.467 1140.0 19590101 19940822 375410 99999 MUHRANI GG UGMM 41.933 44.583 551.0 19590101 19971221 375450 99999 TBILISI GG 41.667 44.95 495.0 19320101 20140918 375490 99999 TBILISI / LOCHINI AIRPORT GG UGGG 41.75 44.766999999999996 427.0 19590101 20170923 375491 99999 MESTIA GG UGMS 43.068999999999996 42.754 2700.0 20110207 20170923 375530 99999 TELAVI GG UG25 41.933 45.512 542.0 19590101 20161231 375560 99999 SAGAREDZO GG 41.733000000000004 45.333 806.0 19590101 20040331 375630 99999 KVARELI GG 41.967 45.833 449.0 19730101 20141029 375660 99999 GURDZHAANI GG 41.75 45.8 410.0 19590101 20040404 375690 99999 CNORI GG 41.583 45.983000000000004 294.0 19590101 20020912 375720 99999 LAGODEHI GG 41.817 46.3 435.0 19590101 20030704 375750 99999 ZAKATALA AJ UBBY 41.667 46.65 490.0 19480101 20170923 375770 99999 CNORIS GG 41.6 46.05 291.0 19760401 19940510 375780 99999 DANACHY AJ 41.55 46.417 213.0 19861015 19940907 375970 99999 KASUMKENT RS 41.667 48.05 477.0 19591003 19600112 376020 99999 AKHALQALAQI GG 41.417 43.483000000000004 1716.0 19590708 20141029 376030 99999 RADIONOVKA GG 41.483000000000004 43.867 2100.0 19590101 20031231 376090 99999 ASHOTSK AM 41.028999999999996 43.876000000000005 2015.0 20060128 20170923 376180 99999 TASHIR AM 41.117 44.283 1509.0 19590101 20020411 376210 99999 BOLNISI GG 41.45 44.55 534.0 19590101 20170923 376270 99999 ODZUN AM 41.05 44.633 1110.0 19610207 19790322 376320 99999 GARDABANI GG 41.45 45.1 303.0 19590101 20020810 376330 99999 UDABNO (MOUNT) GG 41.516999999999996 45.383 750.0 19590101 19941006 376360 99999 JEYRANCHEL AJ 41.3 45.467 421.0 20170118 20170118 376370 99999 ... AM 41.016999999999996 45.15 19610705 19610730 376390 99999 AGSTAPHA AIRPORT AJ 41.133 45.417 333.0 19550101 20150509 376510 99999 DEDOPLISTSKARO GG 41.467 46.083 801.0 19590101 20141029 376610 99999 SHAKI AJ 41.217 47.167 641.0 19590101 20170905 376630 99999 AHTY RS 41.467 47.75 1015.0 19590101 20170920 376680 99999 OGUZ AJ 41.067 47.467 598.0 20070226 20150630 376730 99999 KHACHMAZ AERODROME AJ 41.417 48.883 27.0 19590101 20150630 376750 99999 GUBA AJ 41.367 48.516999999999996 552.0 19590101 20170923 376760 99999 KHINALIG AJ 41.183 48.133 2305.0 20070219 20150815 376770 99999 KHALTAN AJ 41.0 48.7 1107.0 20070226 20070226 376820 99999 AMASIA AM 40.95 43.783 1866.0 19590101 20170923 376830 99999 DZADZUR AM 40.867 43.95 1798.0 19800517 20040603 376860 99999 GUMRI AM 40.783 43.833 1512.0 19480101 19900804 376930 99999 STEPANAVAN AM 41.0 44.367 1400.0 19730101 19980821 376950 99999 SPITAK AM 40.833 44.266999999999996 1555.0 19590101 19800307 376990 99999 APARAN AM 40.533 44.383 1892.0 19590101 20170923 377040 99999 VANADZOR AM 40.817 44.43600000000001 1376.0 19590828 20170923 377060 99999 DILIJAN AM 40.75 44.867 1255.0 19590119 19780601 377080 99999 SEMYONOVKA AM 40.65 44.9 2097.0 19590101 19951118 377090 99999 SEVAN AM 40.55 44.933 1937.0 19590128 20031011 377110 99999 IDJEVAN AM 40.867 45.15 733.0 19590114 20170923 377130 99999 BERD AM 40.917 45.467 697.0 19610219 19810404 377170 99999 SEVAN OZERO AM 40.567 45.0 1917.0 20010916 20170923 377190 99999 TCHAMBARAK AM 40.593 45.356 1852.8 19590101 19950427 377290 99999 GADABAY AJ 40.683 45.817 1476.0 19590101 20170905 377340 99999 SHAMKIR AJ 40.833 46.033 410.0 20070614 20141201 377350 99999 GANDJA AJ 40.717 46.417 311.0 19320101 20170923 377351 99999 MAYKOP RS 44.65 40.1 679.0 20050218 20130520 377352 99999 UYTASH RS URML 42.817 47.652 3.7 20040706 20170923 377400 99999 QABALA AJ 40.983000000000004 47.867 682.0 19590101 20170905 377440 99999 MINGACHEVIR AJ 40.766999999999996 47.05 94.0 19590101 20141201 377470 99999 EVLAKH AIRPORT AJ 40.617 47.15 15.0 19590101 20170923 377490 99999 GOYCHAY AJ 40.65 47.75 95.0 19590101 20170923 377500 99999 ISMAILLY AJ 40.783 48.133 550.0 20010801 20160409 377530 99999 ALTIAGACH AJ 40.867 48.933 1082.0 19590117 20160818 377560 99999 MARAZA AJ 40.533 48.933 755.0 19590101 20170923 377590 99999 SHAMAKHY AJ 40.633 48.633 892.0 19590101 20170706 377610 99999 KHIZY AJ 40.917 49.05 525.0 19590101 20160916 377690 99999 SUMGAIT AJ 40.6 49.633 -19.0 19590124 20141201 377740 99999 ARAGATS AM 40.317 43.667 1255.0 19590101 20020726 377810 99999 ARAGAC H/M AM 40.483000000000004 44.183 3223.0 19610331 19631106 377850 99999 ASHTARAK AM 40.283 44.35 1090.0 20060128 20170923 377870 99999 ARMAVIR AM 40.133 43.903 860.8 19590101 20170923 377880 99999 YEREVAN ZVARTNOTS AM 40.15 44.383 854.0 20010916 20170923 377890 99999 YEREVAN-ARABKIR GG UGEE 40.211999999999996 44.53 1013.4 19320101 20031122 377910 99999 FANTAN AM 40.4 44.683 1800.0 19730101 20070226 377920 99999 HRAZDAN AM 40.483000000000004 44.75 1761.0 19590101 20170923 378010 99999 GAVAR AM 40.35 45.133 1962.0 19590101 20170923 378080 99999 MARTUNI AM 40.133 45.283 1943.0 19590101 19951121 378150 99999 MASRIK AM 40.2 45.75 1940.0 19590101 19990611 378160 99999 DASHKASAN AJ 40.467 46.083 1658.0 20070516 20150630 378250 99999 GYOY-GYOL AJ 40.417 46.333 1602.0 20070422 20110622 378310 99999 TAR-TAR AJ 40.35 47.016999999999996 227.0 19590101 20140406 378320 99999 BARDA AJ 40.367 47.117 69.0 19880301 20170905 378350 99999 ZARDAB AJ 40.2 47.217 -5.0 20080105 20110419 378355 99999 GABALA AJ UBBQ 40.817 47.733000000000004 338.0 20120106 20170923 378430 99999 SABIRABAD AJ 40.016999999999996 48.467 -15.0 20071214 20100622 378440 99999 KURDAMIR AJ 40.333 48.167 4.0 19590101 20170314 378480 99999 KYURKENDI AJ 40.033 48.5 0.0 19590101 19631222 378490 99999 GAZIMAMMAD AERODROME AJ 40.016999999999996 48.917 -5.0 19590101 20150606 378500 99999 BAKU (OBSERVATORY) AJ 40.35 49.833 5.0 19320101 20150801 378510 99999 BAKU (KHURDALAN) AJ 40.417 49.783 85.0 20061230 20170905 378520 99999 SHUBANY AJ 40.367 49.766999999999996 224.0 19590101 20160614 378530 99999 BAKU/ZABRAT AIRPORT AJ 40.5 49.983000000000004 -5.0 19460101 20080414 378560 99999 PUTA AJ 40.3 49.7 -11.0 19590101 19631130 378600 99999 MASHTAGA AJ 40.533 50.0 28.0 19590101 20170125 378610 99999 NEFT DASHLARI AJ 40.233000000000004 50.817 -15.0 20040917 20110520 378630 99999 GYANDZHA AJ 40.733000000000004 46.4 330.0 20040803 20170923 378635 99999 NAKHCHIVAN AJ UB15 39.189 45.458 872.6 20060201 20170923 378640 99999 HEYDAR ALIYEV AJ UBBB 40.468 50.047 3.0 19590402 20170923 378650 99999 ORSK RS UWOR 51.073 58.596000000000004 277.1 20040803 20170923 378660 99999 PIRALLAHI AJ 40.467 50.317 -24.0 19590101 19991205 378710 99999 ARTASHAT AM 39.95 44.55 833.0 20060128 20170923 378720 99999 URCADZOR AM 39.917 44.817 1064.0 20070228 20070306 378740 99999 ARARAT AM 39.817 44.567 822.0 19590101 20020210 378760 99999 EHGNADZOR AM 39.766999999999996 45.333 1317.0 19590101 20070305 378780 99999 ANANUN IERNANTCK AM 40.95 45.068000000000005 2122.0 20070531 20080316 378820 99999 DJERMUK AM 39.833 45.683 2075.0 20110925 20110925 378930 99999 AGDAM AJ 39.983000000000004 46.75 252.0 19590101 19920105 378950 99999 KHANKANDY AJ 39.983000000000004 46.75 828.0 19590101 20140703 378970 99999 SISIAN AM 39.533 46.016999999999996 1581.0 19590101 20170923 378980 99999 LACHIN AJ 39.65 46.533 1099.0 20130604 20130723 378990 99999 SHUSHA AJ 39.766999999999996 46.75 1355.0 19590101 20070227 379050 99999 BEYLAGAN AERODROME AJ 39.766999999999996 47.75 71.0 19590101 20170905 379070 99999 FIZULY AJ 39.6 47.15 439.0 19370103 20080207 379130 99999 SALYAN AJ 39.583 48.967 -21.0 19590925 20160930 379140 99999 IMISHLY AJ 39.867 48.05 -1.0 20040710 20150829 379230 99999 ALAT AJ 39.967 49.4 -16.0 19590101 20170905 379250 99999 NEFTCHALA AJ 39.4 49.25 -24.0 19600720 20170905 379260 99999 BYANDOVAN AJ 39.733000000000004 49.6 0.0 19590101 19601230 379360 99999 NAXCIVAN AJ 39.2 45.417 885.0 19480101 20140805 379470 99999 JULFA AJ 38.95 45.633 717.0 19590101 19950603 379530 99999 GORIS AM 39.510999999999996 46.347 1550.1 19590101 20020504 379570 99999 ORDUBAD AJ 38.917 46.016999999999996 787.0 19590101 19950910 379580 99999 MEGRI AM 38.9 46.25 628.0 19590101 20030217 379590 99999 KAPAN AM 39.2 46.433 706.0 19590101 20170923 379720 99999 BILASUVAR AJ 39.467 48.55 3.0 19460406 20160924 379780 99999 GYOYTAPA AJ 39.7 48.6 4.0 19590101 20160217 379810 99999 YARDIMLI AJ 38.9 48.25 794.0 20080722 20080827 379840 99999 LERIK AJ 38.766999999999996 48.4 1113.0 19590101 20100628 379850 99999 LANKARAN AJ UBBL 38.733000000000004 48.833 -12.0 19320101 20170923 379880 99999 WEST ASTARA AJ 38.5 48.633 591.0 19600420 20091010 379890 99999 ASTARA AJ 38.45 48.883 -22.0 19361231 20170905 380010 99999 AKTAU KZ UATE 43.86 51.092 22.3 19320201 20170923 380020 99999 TUSCIKUDUK KZ 44.733000000000004 51.967 56.0 19590101 20110125 380080 99999 TUSHCHIBEK KZ 44.15 51.95 240.0 19590102 20060112 380190 99999 DUKEN KZ 44.317 54.6 143.0 19590101 20030612 380230 99999 KARAKAPALKIJA UZ 44.85 56.333 126.0 19590101 20050104 380370 99999 BELEULI UZ 44.533 56.766999999999996 122.0 19600101 20020224 380390 99999 KOYKE UZ 44.016999999999996 58.233000000000004 176.0 19731004 19840501 380440 99999 UJALY KZ 44.583 61.15 55.0 19600101 20060106 380490 99999 CIRIK-RABAT KZ 44.067 62.9 88.0 19480101 20060923 380510 99999 KARAK KZ 44.883 63.167 92.0 19590101 19860428 380540 99999 19740429 19740429 380610 99999 KZYL-ORCA KZ 44.85 65.5 131.1 19480101 19630304 380620 99999 KZYL-ORDA KZ UAOO 44.766999999999996 65.533 129.0 19320101 20170923 380690 99999 SHIELI KZ 44.167 66.75 153.0 19480101 20170923 380810 99999 TASTY KZ 44.8 69.117 190.0 19530216 20030121 380820 99999 KAMKALY KZ 44.75 70.0 207.0 19590102 19850114 380910 99999 ULANBEL' KZ 44.8 71.067 266.0 19590101 20040104 380920 99999 APPROXIMATE LOCALE KZ 44.833 72.0 0.0 19820102 19820629 380990 99999 FURMANOVO KZ 44.283 72.95 350.0 19600101 19910206 381080 99999 HANTAU KZ 44.217 73.8 504.0 20020519 20051013 381110 99999 SEVCENKO KZ 43.583 51.083 15.0 19601201 20161120 381170 99999 JERALIJEV KZ 43.2 51.717 -21.0 19530216 20040804 381240 99999 UZEN KZ 43.367 52.833 210.0 19810101 19860307 381410 99999 JASLYK UZ 43.883 57.883 127.0 19740421 20170923 381411 99999 ATYRAU KZ UATG 47.122 51.821000000000005 -21.9 20040706 20170923 381412 99999 TURKMENBASHI TX UTAK 40.063 53.007 85.0 20040706 20170923 381413 99999 KHUDZHAND TI UTDL 40.215 69.695 442.0 20040706 20170923 381414 99999 NAMANGAN UZBEKISTAN UZ UTKN 40.98 71.58 474.0 20040706 20051110 381415 99999 BUKHARA UZ UTSB 39.775 64.483 228.9 20040706 20170923 381416 99999 ZARAFSHAN UZ UTSN 41.62 64.23 425.0 20061110 20130625 381417 99999 KARSHI KHANABAD UZ UTSK 38.834 65.921 416.1 20060207 20170923 381418 99999 SHAHRISABZ UZ UTSH 39.033 66.783 599.0 20080722 20160419 381430 99999 CAPE TIGROVIY UZ 43.933 58.733000000000004 220.0 19600101 19810113 381460 99999 MUJNAK UZ 43.783 59.033 54.0 20021124 20021124 381490 99999 KUNGRAD UZ 43.083 58.933 64.0 19480101 20170923 381620 99999 CABANKAZGAN KZ 43.6 61.933 64.0 19600101 20021101 381780 99999 AK-BAJTAL UZ 43.15 64.333 234.0 19570201 20170923 381910 99999 AK-KUM KZ 43.717 67.417 174.0 19590606 20030209 381960 99999 ASHCHYSAI KZ 43.55 68.9 822.0 19611203 20170923 381980 99999 TURKESTAN KZ 43.266999999999996 68.217 207.0 19320104 20170923 382010 99999 CULAKKURGAN KZ 43.8 69.2 481.0 19600804 20150419 382020 99999 BAYKADAM KZ 43.75 69.917 19590113 19631230 382030 99999 UJUK RS 43.783 70.933 366.0 19590101 20090612 382070 99999 CAJAN KZ 43.033 69.367 365.0 19590101 20100213 382150 99999 UMBET KZ 43.65 72.383 512.0 19590101 19820203 382200 99999 MANAS KG 43.067 74.483 637.0 19950101 19980115 382220 99999 TOLE BI KZ 43.7 73.783 456.0 19590101 20170923 382230 99999 CHOKPAR KZ 43.833 74.4 768.0 19600101 20051013 382290 99999 KURDAJ KZ 43.3 74.983 1145.0 19590101 19891008 382310 99999 FETISOVO KZ 42.733000000000004 52.65 -24.0 19590101 19631231 382320 99999 AKKUDUK KZ 42.967 54.117 78.0 19570701 20170923 382610 99999 AK-DEPE TX 42.05 59.367 74.0 20130918 20130918 382620 99999 CHIMBAJ UZ 42.95 59.817 66.0 19320602 20170923 382640 99999 NUKUS UZ 42.45 59.617 77.0 19591101 20170923 382670 99999 KENEURGENCH TX 42.3 59.133 71.0 19591101 20161101 382840 99999 KUL-KUDUK UZ 42.533 63.283 333.0 19591120 19940430 383010 99999 KYZYLKUM KZ 42.8 67.417 185.0 19590101 19910729 383130 99999 BUGUN KZ 43.717 69.0 405.0 20131128 20170923 383160 99999 ARYS KZ 42.433 68.8 240.0 19590101 20050515 383170 99999 BAJRKUM KZ 42.067 68.117 238.0 19590101 19860918 383180 99999 BAYYRKUM KZ 42.1 68.117 184.0 20131128 20170923 383280 99999 SHYMKENT KZ UAII 42.364 69.479 422.1 19480101 20170923 383285 99999 TARAZ KZ UADD 42.854 71.304 665.7 20070822 20170923 383340 99999 AUL TURARA RYSKULOVA KZ 42.483000000000004 70.3 808.0 19590101 20170923 383380 99999 BLINKOVO KZ 42.233000000000004 70.117 1122.0 19630316 19890630 383390 99999 OLGAING UZ 42.167 70.883 2151.0 19630610 19981009 383410 99999 TARAZ KZ 42.85 71.3 652.0 19480101 20170923 383420 99999 KYZYLTU KZ 42.95 72.217 19630604 19631119 383430 99999 KULAN KZ 42.95 72.75 683.0 19590101 20170923 383450 99999 TALAS KG 42.516999999999996 72.217 1218.0 19480101 20170923 383520 99999 BELOVODSKOE KG 42.85 74.1 726.0 19590812 20020405 383530 99999 BISHKEK KG 42.85 74.533 760.0 19460103 20170923 383531 99999 MANAS KG UCFM 43.06100000000001 74.47800000000001 627.3 20040713 20170923 383580 99999 SUSAMYR KG 42.15 73.983 2092.0 19591102 20020826 383670 99999 KARABOGAZKEL TX 41.05 52.917 -22.0 19590101 20090414 383830 99999 SHASENEM TX 41.583 58.717 62.0 19600207 20160706 383880 99999 EKEZHE TX 41.033 57.766999999999996 62.0 19590101 20170923 383920 99999 DASHKHOVUZ TX 41.75 59.817 82.0 19480101 20170923 383960 99999 URGENCH UZ 41.567 60.633 101.0 19480101 20170923 384010 99999 IGARKA RS UOII 67.433 86.617 25.0 20040824 20130719 384020 99999 KHATANGA RS UOHH 71.97800000000001 102.491 29.0 20040824 20130719 384030 99999 BUZAUBAJ UZ 41.75 62.467 98.0 19600101 20170923 384031 99999 NUKUS / KARAKALPAKSTAN UZ UTNN 42.483000000000004 59.633 77.0 20040713 20170923 384032 99999 URGENCH UZ UTNU 41.583999999999996 60.641999999999996 97.5 20040713 20170923 384080 99999 LEBAP TX 41.067 61.9 137.0 19591101 19800407 384130 99999 TAMDY-BULAK UZ UTSM 41.733000000000004 64.617 238.0 19591110 20170923 384230 99999 TORUK KZ 41.8 66.717 202.0 19590101 20021212 384270 99999 MASHIKUDUK UZ 41.05 65.283 200.0 19590930 20050804 384390 99999 SHARDARA KZ 41.367 68.0 275.0 19730101 20170923 384440 99999 KOKSU KZ 41.467 68.033 306.0 19730102 19960313 384490 99999 ALGABAS KZ 41.217 68.8 315.0 19590624 19631112 384520 99999 KARATAS KZ 41.867 69.433 637.0 19611116 19631231 384540 99999 DARBAZA-IN-KAZAKH KZ 41.567 69.117 444.0 19800322 19810512 384570 99999 YUZHNY UZ UTTT 41.258 69.281 431.9 19320101 20170923 384572 99999 TASHKENT VOSTOCNY UZ UTTP 41.32 69.4 466.0 20050411 20110803 384573 99999 MARY TX UTAM 37.619 61.897 221.9 20050722 20170923 384574 99999 DASHOGUZ TX UTAT 41.761 59.827 82.9 20050724 20170923 384620 99999 PSKEM UZ 41.9 70.367 1258.0 19600208 20170923 384660 99999 TERS KG 41.667 70.717 1759.0 19591222 19960416 384680 99999 IRTASH UZ 41.117 70.333 1402.0 19600131 19740808 384710 99999 CATKAL RIVER KG 41.9 71.35 1937.0 19591101 20020411 384730 99999 TOKTOGUL KG 41.833 72.867 986.0 19591102 20020409 384740 99999 URTA-TOKAISKOE KG 41.367 71.45 1120.0 19600128 19631212 384750 99999 ANDIZHAN AIRPORT UZ UTFA 40.733000000000004 72.333 477.0 19591205 20170923 384970 99999 BOGUS SOVIET RS 19881002 20040305 385030 99999 YANGYSU TX 40.733000000000004 54.667 12.0 19610402 19620803 385070 99999 TURKMENBASHI TX 40.033 52.983000000000004 90.0 19320101 20170923 385110 99999 CHAGYL TX 40.783 55.333 115.0 19570710 20170923 385270 99999 DAVALY TX 40.067 57.383 47.0 19591101 20051015 385290 99999 DEVERZE TX 40.183 58.483000000000004 84.0 19550703 20151211 385420 99999 DZHIGERBENT TX 40.766999999999996 62.016999999999996 135.0 19610726 19620726 385450 99999 DARGANATA TX 40.467 62.283 142.0 19480101 20170923 385510 99999 DZANGELDY UZ 40.85 63.333 208.0 19590901 20070227 385530 99999 AYAKAGITMA UZ 40.683 64.483 219.0 19590801 20040215 385650 99999 NURATA UZ 40.55 65.683 485.0 19480106 20170923 385670 99999 NAVOI UZ UTSA 40.133 65.35 341.0 19600101 20170923 385780 99999 GALLYAARAL UZ 40.033 67.367 691.0 19600102 19631223 385790 99999 DZIZAK UZ UTED 40.117 67.833 345.0 19480101 20170923 385820 99999 ZAPADNY ARNASAY UZ 40.833 67.667 250.0 19590101 19631231 385830 99999 SYR-DAR'JA UZ 40.817 68.683 264.0 19600101 20170923 385890 99999 JANGIER UZ 40.283 68.833 316.0 19530216 20160410 385980 99999 KAJRAKKUMSKOE TI 40.266999999999996 69.817 347.0 20101001 20170923 385990 99999 KHUDJANT TI 40.217 69.733 427.0 19360101 20170923 386010 99999 ABLYK UZ 40.983000000000004 70.05 846.7 19591008 19620822 386020 99999 DZARBULAK TI 40.8 70.633 699.0 19600101 20161102 386060 99999 KOKAND UZ 40.55 70.95 499.0 19590913 20160121 386090 99999 ISFARA TI 40.133 70.6 873.0 19480101 19970510 386110 99999 NAMANGAN UZ UTFN 40.983000000000004 71.583 474.0 19480101 20170923 386130 99999 DZHALAL-ABAD KG 40.917 72.95 765.0 19570702 20170923 386150 99999 OSH KG 40.533 72.8 875.0 19591102 20031003 386155 99999 OSH KG UAFO 40.609 72.793 892.1 20070823 20170923 386160 99999 KARA-SUU KG 40.7 72.9 868.0 19980301 20170923 386180 99999 FERGANA AIRPORT UZ UTFF 40.367 71.75 603.5 19480101 20170923 386230 99999 ARPA KG 40.783 74.767 2865.0 19600101 19631223 386270 99999 GULCA KG 40.317 73.55 1555.0 19591102 20120201 386280 99999 KOKMAGDAY KG 40.25 74.0 19600214 19631216 386300 99999 NEBIT-DAG TX 39.483000000000004 54.367 16.0 19590101 20140729 386340 99999 NEBITDAG TX 39.5 54.333 -8.0 19591102 20061019 386360 99999 AYDIN TX 39.383 54.833 14.0 19600101 19600320 386370 99999 OGRYDA TX 39.1 53.1 -26.0 19590101 20070227 386410 99999 JASGA TX 39.683 55.567 -9.0 19591102 20021006 386470 99999 GAZANDZHYK TX 39.25 55.516999999999996 31.0 19591102 20170923 386530 99999 SERNYY ZAVOD TX 39.983000000000004 58.833 90.0 19530402 19621019 386550 99999 MODAR TX 39.533 57.766999999999996 73.0 19591102 19631217 386560 99999 ERBENT TX 39.317 58.6 87.0 19590109 20170923 386650 99999 AKMOLLA TX 39.583 59.95 108.0 19730102 20051114 386830 99999 BUHARA UZ 39.717 64.617 226.0 19361231 20170923 386840 99999 DJACHEV TX 39.317 63.2 182.0 20081101 20141016 386850 99999 KARAKUL UZ 39.5 63.85 196.0 19591101 20020814 386870 99999 CHARDZHEV TX 39.083 63.6 190.0 19480101 20170923 386880 99999 BOGUS SOVIET RS 19851103 20030215 386960 99999 SAMARKAND UZ UTSS 39.701 66.984 677.9 19480101 20170923 386990 99999 URUS-KISHLAK UZ 39.117 66.883 658.0 19591102 19630320 387050 99999 PENDZHIKENT TI 39.5 67.6 1015.0 19600117 20170923 387080 99999 FARAB TI 39.233000000000004 67.467 1981.0 19630615 20100729 387110 99999 BAHMAL UZ 39.717 68.017 1321.7 20150813 20150813 387130 99999 URA-TYUBE TI 39.9 68.983 1005.0 19600102 20170923 387150 99999 SHAHRISTANSKIJ PEREVAL TI 39.567 68.583 3143.0 19610107 20170923 387160 99999 SONGISTON (MTN STN) TI 39.383 68.617 1507.0 19610119 20050126 387180 99999 ISKANDERKUL TI 39.1 68.383 2204.0 19751101 20170923 387190 99999 ANZQBSKIJ PEREVAL TI 39.083 68.867 3373.0 19610201 20170923 387250 99999 MADRUSHKAT TI 39.433 69.667 2234.0 19591029 20170923 387340 99999 DEHAVZ TI 39.45 70.2 2561.0 19751101 20170923 387440 99999 LAHSH TI 39.283 71.867 1198.0 19730312 20170923 387450 99999 SARY-TAS KG 39.733000000000004 73.267 3155.0 19591101 20010303 387480 99999 BOGUS SOVIET RS 19860301 19860726 387500 99999 ESENGULY TX 37.467 53.967 -22.0 19320101 20170923 387550 99999 BYGDAILI TX 38.533 54.3 -1.0 19600216 20150526 387560 99999 BEKIBENT TX 38.617 55.183 206.0 19600111 20090520 387590 99999 GYZYLETREK TX 37.617 54.783 29.0 19591102 20170817 387630 99999 GYZYLARBAT TX 38.983000000000004 56.283 92.0 19320101 20170923 387670 99999 GARRYQALA TX 38.433 56.3 312.0 19591103 20120325 387730 99999 BOKYRDAK TX 38.75 58.467 84.0 19591101 20001027 387740 99999 BAKHERDEN TX 38.433 57.417 159.0 19590801 20170923 387910 99999 CHESHME TX 38.683 61.2 147.0 19570703 19980225 387990 99999 UCHADZHY TX 38.083 62.8 185.0 19530216 20170923 388040 99999 REPATEK TX 38.567 63.183 185.0 19320101 20140612 388060 99999 BYRDALYK TX 38.467 64.367 212.0 19591102 20170923 388120 99999 KARSHI UZ 38.8 65.717 376.0 19590804 20170923 388150 99999 GUZAR UZ 38.617 66.267 524.0 19480101 20090612 388160 99999 MINCHUKUR UZ 38.65 66.933 2121.0 19600101 20030429 388180 99999 AKRABAT UZ 38.25 66.833 1601.0 19600817 20040319 388270 99999 BAYSUN UZ 38.2 67.2 1244.6 19591102 19630331 388280 99999 PULE-KHAKIM UZ 38.167 67.367 977.0 19590915 20161224 388290 99999 DENAU UZ 38.266999999999996 67.9 520.0 19590811 20020829 388350 99999 SAHRINAU TI 38.567 68.333 821.0 19600410 20030605 388360 99999 DUSHANBE TI UTDD 38.543 68.825 784.9 19320101 20170923 388380 99999 ISAMBAJ TI 38.05 68.35 563.0 19600102 20170923 388400 99999 NUREK TI 38.417 69.35 549.0 19830701 20140108 388420 99999 BUSTONABAD-IN-TAJIK TI 38.683 69.567 1964.0 19601202 20161102 388440 99999 SANGLOK TI 38.25 69.233 2239.0 19730101 20170923 388460 99999 HOVALING TI 38.367 69.983 1468.0 20090801 20170923 388470 99999 DANGARA TI 38.1 69.317 660.0 19591102 20170923 388480 99999 KANGURT TI 38.25 69.517 908.0 20020716 20021005 388510 99999 RASHT TI 39.0 70.3 1316.0 19591124 20170923 388530 99999 KHABURABAD TI 38.65 70.717 3347.0 19730101 20050327 388560 99999 DARVAZ TI 38.467 70.883 1288.0 19590901 20170923 388620 99999 FEDCENKO GLACIER TI 38.917 72.167 4169.0 19370104 20050827 388670 99999 HUMRAGI TI 38.283 71.333 1737.0 19730101 20130112 388690 99999 IHRT TI 38.167 72.633 3276.0 19590101 20170923 388710 99999 KARAKUL LAKE TI 39.083 73.417 3930.0 19591102 20020618 388750 99999 KARAKUL TI 39.016999999999996 73.55 3940.0 19570722 20170923 388780 99999 MURGAB TI 38.167 73.967 3576.0 19591118 20170923 388790 99999 OKSU TI 38.067 74.467 3740.0 19770705 20020312 388800 99999 ASHGABAT TX UTAA 37.986999999999995 58.361000000000004 210.9 19320101 20170923 388810 99999 GAUDAN-IN-TURKMEN TX 37.65 58.4 1486.0 19591205 20111017 388850 99999 KAKA TX 37.35 59.633 308.0 19590810 20101008 388860 99999 TEDZHEN TX 37.383 60.516999999999996 186.0 19480101 20170923 388910 99999 CHASHKENT TX 37.8 61.55 200.0 19590909 20011030 388950 99999 BAJRAMALY TX 37.6 62.183 240.0 19370731 20170923 388990 99999 ELOTEN TX 37.3 62.417 259.0 19590818 20050127 389110 99999 KERKI TX 37.833 65.2 240.0 19320101 20170923 389150 99999 CARSANGA TX 37.516999999999996 66.017 265.0 19590801 20170923 389210 99999 SHIRABAD UZ 37.667 67.017 410.0 19590811 20050713 389270 99999 TERMEZ UZ UTST 37.287 67.31 313.0 19480101 20170923 389300 99999 AJVADZ TI 36.983000000000004 68.033 349.0 19610104 20161102 389320 99999 GANDZHINA TI 37.95 68.567 752.0 20101001 20170923 389330 99999 KURGAN-TYUBE TI 37.817 68.783 429.0 19600101 20170923 389370 99999 SHAARTUZ TI 37.317 68.133 380.0 19600602 20040611 389430 99999 KULYAB TI 37.917 69.783 659.0 19600101 19950405 389440 99999 PARKHAR TI 37.483000000000004 69.383 448.0 19591030 20170923 389450 99999 MITEN-TUGAY TI 37.667 69.617 480.0 19810112 20030120 389470 99999 PYANDJ TI 37.233000000000004 69.083 363.0 19480101 20170923 389510 99999 RUSHAN TI 37.95 71.55 1981.0 20130112 20170923 389540 99999 KHOROG TI 37.5 71.5 2077.0 19571011 20170923 389560 99999 BULUN-KUL TI 37.7 72.95 3744.0 19591111 20130112 389570 99999 ISHKASHIM TI 36.717 71.6 2523.0 19591108 20170923 389660 99999 SAJMAK TI 37.533 74.833 3840.0 19601201 20161102 389740 99999 SARAGT TX 36.533 61.217 275.0 19460403 20170923 389870 99999 GYSHGY TX 35.283 62.35 625.0 19320101 20170923 389890 99999 TAGTABAZAR TX 35.95 62.917 349.0 19570710 20090910 389980 99999 LEKKER TX 36.266999999999996 63.7 787.0 19600101 20011007 400010 99999 KAMISHLY SY OSKL 37.021 41.191 451.1 19501109 20170923 400050 99999 JARABLUS SY 36.817 38.0 351.0 19750505 20081120 400070 99999 ALEPPO INTL SY OSAP 36.181 37.224000000000004 388.9 19370105 20150902 400090 99999 TEL ABIADH SY 36.7 38.95 349.0 19630622 20120917 400160 99999 HASSAKAH SY 36.5 40.75 308.0 19370105 20170923 400170 99999 EDLEB SY 35.933 36.617 451.0 19920615 20080510 400220 99999 LATTAKIA SY 35.533 35.766999999999996 7.0 19370201 20170923 400250 99999 BASSEL AL ASSAD INTL SY OSLK 35.400999999999996 35.949 47.9 19500711 20170923 400270 99999 ETHERIA SY 35.4 37.85 460.0 19990528 20071212 400290 99999 SALAMYA SY 35.0 37.033 481.0 20031116 20120128 400300 99999 HAMA SY 35.117 36.75 303.0 19570630 20170923 400390 99999 RAQQA SY 35.933 39.016999999999996 246.0 19600101 20160430 400410 99999 AL-RASTAN SY 34.933 36.733000000000004 450.0 20010912 20071128 400450 99999 DEIR ZZOR SY OSDZ 35.285 40.176 213.4 19370101 20160418 400500 99999 TARTOUS SY 34.883 35.883 5.0 19930201 20161227 400550 99999 HOMS SY 34.75 36.717 485.0 19370715 20161222 400610 99999 PALMYRA SY OSPR 34.556999999999995 38.317 402.9 19370101 20160509 400660 99999 SAFITA SY 34.817 36.133 359.0 19630117 20170923 400670 99999 SWEIDA SY 32.7 35.6 997.0 20040409 20161222 400720 99999 ABUKMAL SY 34.417 40.917 182.0 19600102 20140625 400760 99999 AL QUNAYTIRAH SY 33.117 35.817 941.0 19600102 20080425 400790 99999 DAMASCUS /DIMASHO SY 33.483000000000004 36.233000000000004 729.1 19500215 19670630 400800 99999 DAMASCUS INTL SY OSDI 33.412 36.516 615.7 19370101 20170923 400830 99999 NABK SY 34.033 36.717 1333.0 19600102 20170625 400840 99999 AL THAURAH SY 34.367 40.15 119.0 19370216 20070811 400850 99999 SABE ABAR SY 33.783 37.7 825.0 20010714 20110301 400860 99999 TIYAS SY OS72 34.533 37.7 558.0 19370216 19390830 400870 99999 JABAL ETTANF SY 33.483000000000004 38.667 708.0 19600102 20120826 400910 99999 FIQ SY 32.766999999999996 35.7 339.0 19600102 19670622 400950 99999 DARA'A SY 32.6 36.1 543.0 19780914 20110424 401000 99999 RAFIC HARIRI INTL LE OLBA 33.821 35.488 26.5 19321019 20170923 401010 99999 HOUCHE-AL-OUMARA LE 33.817 35.85 920.0 19490130 20170619 401020 99999 RAYACK LE 33.867 36.0 920.0 19370101 20100115 401030 99999 TRIPOLI LE 34.45 35.8 5.0 19370104 20170923 401040 99999 MERDJAYOUN LE 33.367 35.583 773.0 19490130 20021219 401050 99999 AL-ARZ (LES CEDRES) LE 34.25 36.05 1916.0 19490301 20161210 401060 99999 KSARA LEBABON LE 33.833 35.883 918.1 19490309 19670112 401100 99999 DAHR BAIDAR LE 33.817 35.766999999999996 1524.0 19630117 20131016 401530 99999 HAR-KNAAN (ZEFAT) IS 32.967 35.5 934.0 19500301 20170923 401540 99999 HAIFA/U. MICHAELI IS LLHA 32.817 35.0 5.0 19510301 19810123 401550 99999 HAIFA IS LLHA 32.809 35.043 8.5 19490301 20170923 401650 99999 RAMAT-DAVID IS 32.667 35.183 49.0 19490301 20030624 401700 99999 BOGUS ISRAELI IS 52.667 7.832999999999999 7.0 19890313 20050808 401730 99999 NETANYA IS 32.333 34.85 0.0 19510620 19600731 401760 99999 SDE-DOV (TEL-AVIV) IS 32.1 34.783 4.0 19500301 20070916 401761 99999 MAHANAIM I BEN YAAKOV IS LLIB 32.981 35.571999999999996 281.0 20040510 20170923 401762 99999 SDE DOV IS 32.117 34.783 13.0 20040510 20170923 401770 99999 TEL AVIV /PORT IS 32.1 34.783 11.0 19500301 19670630 401790 99999 BET DAGAN IS 32.0 34.817 35.0 19791111 20170923 401800 99999 BEN GURION IS LLBG 32.010999999999996 34.887 41.1 19431101 20170923 401830 99999 JERUSALEM CENTER IS 31.767 35.217 815.0 20080116 20170923 401840 99999 JERUSALEM IS OJJR 31.865 35.219 757.4 19490301 20070916 401900 99999 BEER SHEVA CITY IS 31.25 34.8 280.0 20080116 20170923 401910 99999 TEYMAN IS LLBS 31.287 34.723 199.9 19510101 20050905 401980 99999 OVDA IS LLOV 29.94 34.936 454.8 19830201 20170917 401990 99999 EILAT IS LLET 29.561 34.96 12.8 19510101 20170923 402150 99999 TULKARM IS 32.317 35.016999999999996 -999.9 20060409 20060409 402300 99999 GAZA INTERNATIONAL AIRPORT IS 31.233 34.266999999999996 -999.9 19650815 20080309 402400 99999 HEBRON IS 31.533 35.1 -999.9 20091005 20151011 402500 99999 H4 JO OJHR 32.539 38.195 685.8 19630117 20170923 402530 99999 BAQURA JO 32.633 35.617 -170.0 20031225 20031225 402550 99999 IRBID (MET) JO OJBD 32.55 35.85 619.0 19780701 20170814 402560 99999 WADI RAYAN JO 32.4 35.583 -200.0 20050129 20161030 402570 99999 RAS MUNEEF JO 32.367 35.75 1150.0 20051225 20051225 402600 99999 PRINCE HASAN JO OJHF 32.161 37.149 676.7 19640113 20170923 402650 99999 KING HUSSEIN JO OJMF 32.356 36.259 682.8 19530301 20170923 402680 99999 SALT JO 32.033 35.733000000000004 915.0 20050101 20050101 402700 99999 MARKA INTL JO OJAM 31.973000000000003 35.992 778.8 19490301 20170923 402720 99999 QUEEN ALIA INTL JO OJAI 31.723000000000003 35.993 730.0 19830701 20170923 402750 99999 QATRANEH JO 31.25 36.117 768.0 20050905 20071010 402800 99999 JERICHO JO 31.866999999999997 35.5 -275.0 19610702 20030713 402850 99999 DEIR ALLA JO 32.217 35.617 -224.0 20031130 20150417 402900 99999 JERUSALEM AIRPORT JO LLJR 31.866999999999997 35.217 759.0 19550802 20061031 402920 99999 ER RABBAH JO 31.267 35.75 920.0 20040523 20040523 402960 99999 GHOR SAFI JO 31.033 35.467 -350.0 19830701 20170923 403100 99999 MA'AN JO OJMN 30.166999999999998 35.783 1069.0 19610701 20170923 403400 99999 AQABA KING HUSSEIN INTL JO OJAQ 29.612 35.018 53.3 19610701 20170923 403410 99999 AQABA PORT JO 29.483 34.983000000000004 3.0 19650806 20031017 403415 99999 AL KHARJ SA OEKJ 24.061 47.411 426.7 20050315 20140324 403560 99999 TURAIF SA OETR 31.693 38.731 854.4 19510406 20170923 403570 99999 ARAR SA OERR 30.906999999999996 41.138000000000005 552.6 19510407 20170923 403584 99999 ARAR & SA 30.967 40.983000000000004 542.0 19831222 19910806 403600 99999 GURIAT SA OEGT 31.412 37.279 509.6 19840415 20170923 403610 99999 AL JOUF SA OESK 29.785 40.1 689.2 19730101 20170923 403620 99999 RAFHA SA OERF 29.625999999999998 43.49100000000001 449.3 19510406 20170923 403630 99999 AL-ZABERAH SA 28.0 41.45 617.0 20170419 20170705 403640 99999 JUBBAH SA 28.033 40.95 945.0 20020518 20040816 403660 99999 LISS SA 31.233 38.2 843.0 19770926 20071130 403670 99999 QIBAH SA 27.4 44.317 476.0 20010709 20130216 403680 99999 TAWQAH SA 31.217 39.266999999999996 948.0 19780205 20030527 403690 99999 HAQL SA 29.5 35.0 2.0 20011030 20020929 403700 99999 MASHTHOBAH SA 27.35 45.016999999999996 244.0 20161105 20161105 403710 99999 TOBAGE SA 29.666999999999998 38.717 1016.0 20010716 20020204 403720 99999 MAARIK SA 30.533 38.9 813.0 19490101 19870116 403724 99999 KUWAIT MET/LOC UNKN KU OKAM 0.0 0.0 -999.0 19810220 19820302 403730 99999 QAISUMAH SA OEPA 28.335 46.125 357.8 19510406 20170923 403740 99999 AL-MUWAYLAH SA 27.7 35.483000000000004 26.0 19910606 20030621 403750 99999 TABUK SA OETB 28.365 36.619 777.5 19730101 20170923 403760 99999 TAYMA SA 27.6 38.567 860.0 19910408 20010109 403770 99999 KING KHALED MILITARY CITY SA OEKK 27.901 45.528 412.1 19780512 20170910 403780 99999 BUBIYAN KU 29.783 48.367 3.0 19770215 20030519 403790 99999 AL-SALMI KU 29.116999999999997 46.667 290.0 19761218 19821012 403800 99999 AL-KHAFJI SA 28.4 48.5 8.0 19771201 20111010 403810 99999 AL-HOAGE SA 28.883000000000003 38.9 884.0 20161015 20161015 403820 99999 AL-NWAISEEB KU 28.5 48.467 3.0 19770728 19780702 403900 99999 BAG'A SA 27.916999999999998 42.467 683.0 20040604 20051203 403940 99999 HAIL SA OEHL 27.438000000000002 41.68600000000001 1015.3 19730101 20170923 403950 99999 HAIL AIRPORT SA 27.433000000000003 41.683 1002.0 19510428 20050809 404000 99999 WEJH SA OEWJ 26.199 36.476 20.1 19730101 20170923 404010 99999 PRINCE ABDULMAJEED BIN ABDULAZIZ AIRPORT SA OEAO 26.294 38.064 623.0 20101110 20170923 404020 99999 TABAH SA 27.017 42.167 1000.0 20041119 20050803 404040 99999 GASSIM AIRPORT SA 26.3 43.766999999999996 648.0 20080427 20090717 404050 99999 GASSIM SA 26.3 43.766999999999996 648.0 19730101 20170923 404100 99999 KHAYBER SA 25.666999999999998 39.3 754.0 19930102 20110117 404140 99999 PRINCE SALMAN BIN ABDULAZIZ SA OEDM 24.45 44.121 922.3 20040810 20170923 404150 99999 DAMMAM (KING FAHD INT. AIRPORT) SA 26.433000000000003 49.8 12.0 20040105 20170923 404160 99999 KING ABDULAZIZ AB SA OEDR 26.265 50.152 25.6 19460214 20170923 404170 99999 K.F.I.A. (KING FAHAD INT. AIRPORT) DAMMA SA 26.45 49.817 12.0 19981231 20140326 404180 99999 AL-QATIF-GOSP-3 SA 26.833000000000002 49.967 1.0 20040517 20040517 404184 99999 AL-HASA SA OEHS 25.4 49.483000000000004 178.0 19831223 19850319 404190 99999 DAMMAM-A.W.S. SA 26.4 50.133 10.0 19910605 20030707 404194 99999 JUBAIL SA OEJB 27.039 49.405 7.9 20000906 20170729 404200 99999 AL AHSA SA OEAH 25.285 49.485 179.2 19810101 20170923 404210 99999 HAFOOF-A.W.S. SA 25.3 49.65 151.0 19911101 20120109 404220 99999 DAMMAM - MET. SA 26.4 50.183 4.0 20070628 20080217 404260 99999 DOHA PORT BA 25.3 51.55 3.0 19780907 19821231 404270 99999 BAHRAIN/MUHARRAQ BA OBBI 26.267 50.617 2.0 19490206 20030605 404280 99999 DOHA INTL AIRPORT QA OTBD 25.267 51.55 11.0 19730101 20030615 404290 99999 UMM SAID QA 24.9 51.55 4.0 19780903 19790525 404300 99999 PRINCE MOHAMMAD BIN ABDULAZIZ SA OEMA 24.553 39.705 655.6 19580302 20170923 404320 99999 UQLAT AL-SUQ0R SA 25.833000000000002 42.25 783.0 19910406 20040927 404340 99999 DHARIAH SA 25.366999999999997 42.733000000000004 920.0 20041108 20080525 404350 99999 AL-DAWADAMI SA OEDW 26.983 44.117 923.0 19811002 20170923 404370 99999 KING KHALED INTL SA OERK 24.958000000000002 46.699 624.5 19831222 20170923 404375 99999 KING KHALID MIL CTY SA 27.9 45.533 412.0 19891115 19930322 404380 99999 RIYADH AB SA OERY 24.71 46.725 634.6 19580305 20170830 404384 99999 AL AHSA SA 25.333000000000002 49.583 158.0 19810220 19810806 404390 99999 YENBO SA OEYN 24.144000000000002 38.063 7.9 19730101 20170923 404400 99999 YENBO A.W.S. SA 24.017 38.233000000000004 11.0 19911101 20040603 404450 99999 AL-KHARJ SA 24.15 47.317 439.0 19730101 20081106 404453 99999 ABU DHABI INTL AE 24.433000000000003 54.65 27.0 19820902 19830510 404460 99999 NAME/LOCATION UNKN AE 0.0 0.0 -999.0 19821101 19821231 404480 99999 DUBAI AE OMDB 25.25 55.333 8.0 19730620 19821231 404490 99999 ASH SHARIQAH SW AE 25.35 55.383 5.0 19490105 19821231 404500 99999 AL-KHUSARIAH SA 23.733 44.633 1080.0 19910805 20100122 404520 99999 RAS-AL-KHAIMA AE OMRK 25.8 55.933 27.0 19790501 20030528 404540 99999 OBAYLAH SA 22.0 49.917 150.0 19780102 20020310 404560 99999 SHAWALAH SA 22.333000000000002 54.0 50.0 19771201 19821231 404580 99999 KHASSAB YM OOKE 26.183000000000003 56.233000000000004 0.0 19790201 19821231 404600 99999 BURAIMI MU OOBR 24.25 55.833 295.0 19490104 20020921 404610 99999 SOHAR MU OOSH 24.35 56.733000000000004 0.0 19800208 20030219 404620 99999 MUSCAT/SEEB INTL MU OOMS 23.583000000000002 58.283 14.0 19740308 19821231 404630 99999 MINA QUABOOS MU 23.583000000000002 58.467 0.0 19821003 19821230 404650 99999 SAIG MU OOSQ 23.133000000000003 57.633 2132.0 19780104 19821231 404670 99999 IBRA MU OOIA 22.717 58.933 0.0 19800311 19810711 404680 99999 SUR MU OOSR 22.583000000000002 59.5 6.0 19781001 20030319 404690 99999 BURAIMI MU OOFD 24.25 55.833 295.0 19780601 20011121 404710 99999 SUR MU -22.583000000000002 59.5 6.0 19780228 19781108 404740 99999 THUMRAIT MU OOTH 17.733 53.933 0.0 19800301 20020309 404750 99999 RAYSUT MU 16.917 53.917 0.0 19820706 19821231 404760 99999 JEDDAH/ABUL AZIZ SA OEJN 21.666999999999998 39.15 8.0 19810601 19821231 404770 99999 JEDDAH INTL SA OEJD 21.5 39.2 17.0 19490419 19821231 404800 99999 TAIF/AT TAIF SA OETF 21.483 40.533 1471.0 19730101 20030421 404950 99999 SULAYEL/ASSULAYYIL SA OESL 20.467 45.667 615.0 19730102 19821231 404980 99999 BISHA SA OEBH 19.967 42.667 1167.0 19730101 20030104 405500 99999 ABDALY KU 30.066999999999997 47.683 25.2 20020605 20170923 405510 99999 MITRIBAH KU 29.816999999999997 47.35 119.5 20070228 20170923 405520 99999 JAL ALIYAH KU 29.616999999999997 47.583 120.5 20070128 20170923 405530 99999 SABRIYAH KU 29.75 47.85 5.0 20110607 20170923 405640 99999 UMM AL-AISH KU 29.8 47.766999999999996 34.0 19490130 19821231 405680 99999 BUBYAN ISLAND KU 29.767 48.367 5.9 19790101 20170923 405690 99999 BEACON N6 KU 29.566999999999997 48.2 5.6 19730101 20080517 405700 99999 SALMY KU 29.1 46.683 289.5 19740602 20170923 405710 99999 BEACON M28 KU 29.517 48.6 8.0 19780103 20080517 405720 99999 SOUTH DOLPHIN KU 29.416999999999998 48.0 6.9 19730101 20080517 405730 99999 ABRAQUE MAZRAA KU 29.366999999999997 46.967 232.4 20070228 20170923 405735 99999 AHMED AL JABER AB KU OKAJ 28.935 47.792 124.7 20141113 20141125 405736 99999 ALI AL SALEM AB KU OKAS 29.346999999999998 47.521 143.9 20110515 20110629 405750 99999 SALALAH MU OOSA 17.033 54.083 17.0 19490206 19821231 405760 99999 SANAA INTL/RAHABA YM OYSN 15.482999999999999 44.217 2206.0 19740925 19821231 405770 99999 MARIB YM OYMB 15.482999999999999 45.317 1143.0 19790301 19821221 405780 99999 AL HUDAYDAH/HODEIDA YM OYHD 14.75 42.983000000000004 11.0 19761105 19821231 405790 99999 MOKHA/AL MOCHA YM OYMK 13.333 43.266999999999996 3.0 19750703 19821217 405800 99999 RABYAH KU 29.3 47.933 21.3 19790101 20160104 405810 99999 KUWAIT CITY KU 29.383000000000003 48.0 7.5 20010705 20170923 405820 99999 KUWAIT INTL KU OKBK 29.226999999999997 47.968999999999994 62.8 19450802 20170923 405830 99999 AHMADI OIL PIER KU 29.066999999999997 48.167 19.7 19770829 20080517 405840 99999 FAHAAHEEL KU 29.066999999999997 48.15 16.0 20010709 20010709 405850 99999 SALMIYAH KU 29.35 48.1 7.9 19790401 20170923 405860 99999 JAHRA KU 29.316999999999997 47.667 55.5 19490206 20170923 405870 99999 SULAIBIYA KU 29.267 47.717 54.0 19541116 20170923 405880 99999 FAILAKAH ISLAND KU 29.45 48.333 7.1 19490130 20170923 405885 99999 DHALA/AD DALI YM 13.732999999999999 44.733000000000004 1448.0 19730708 19740218 405900 99999 MANAGISH KU 29.066999999999997 47.533 188.0 19550901 20170923 405920 99999 WAFRA KU 28.566999999999997 48.067 107.1 19550602 20170923 405930 99999 JULUIAH PORT KU 28.866999999999997 48.283 8.9 20070228 20170923 405940 99999 NUWASIB KU 28.55 48.383 20.6 20070128 20170923 405960 99999 MARADIM ISLAND KU 28.683000000000003 48.65 8.5 20020723 20170923 405970 99999 ADEN KHORMAKSAR YM ODAA 12.833 45.033 3.0 19490130 19821231 405990 99999 SOCOTRA/RAS KARMA YM ODAK 12.633 53.9 45.0 19760823 19790728 406010 99999 BOGUS IRAQI IZ 51.75 11.067 38.1 19890116 20030218 406020 99999 RABIAH IZ 36.8 42.1 382.0 19740101 20170923 406030 99999 TEL AFER IZ ORTF 36.367 42.483000000000004 373.0 19881120 20140616 406040 99999 SINJAR IZ 36.317 41.833 476.0 19730101 20140802 406050 99999 ZAKHO IZ 37.133 42.717 442.0 19761101 20170923 406060 99999 DUHOOK IZ 36.867 43.0 276.0 20100303 20170923 406070 99999 AQRAH IZ 36.75 43.89 716.0 20110830 20170923 406080 99999 MOSUL IZ ORBM 36.306 43.147 216.1 19370111 20170923 406090 99999 TEL ABTA IZ 35.917 42.717 200.0 20061026 20141126 406100 99999 BAAJ IZ 36.033 41.733000000000004 321.0 20090801 20140930 406110 99999 SALLAHDEEN IZ 36.383 44.2 1088.0 19730101 20170923 406120 99999 SORAN IZ 36.867 44.633 927.0 20120204 20140510 406150 99999 BOGUS IRAQI IZ 51.867 13.232999999999999 29.0 19890101 20010912 406160 99999 ERBEEL IZ 36.15 44.0 420.0 19881119 20140214 406180 99999 BOGUS IRAQI IZ 19890318 19890801 406190 99999 MAKHMOOR IZ 35.75 43.6 270.0 19881120 20170923 406200 99999 HALABCHA IZ 35.2 45.95 620.0 19881102 20170923 406210 99999 KIRKUK AB IZ ORKK 35.469 44.349 323.4 19370105 20170923 406220 99999 CHEM-CHAMAL IZ 35.516999999999996 44.833 701.0 19881120 20170923 406230 99999 SULYMANIYAH IZ 35.55 45.45 853.0 19730103 20170923 406270 99999 AL KAEM IZ 34.383 41.016999999999996 177.5 19881120 20160817 406290 99999 ANAH IZ 34.367 41.95 150.0 19730101 20150221 406310 99999 BAIJI IZ 34.9 43.533 150.0 19780601 20170923 406320 99999 TUZ IZ 34.883 44.65 220.0 20090808 20170923 406330 99999 TIKRIT IZ 34.567 43.7 107.0 19881120 20170923 406340 99999 HADITHAH IZ 34.133 42.35 140.0 19371002 20170923 406350 99999 SAMARAA IZ 34.183 43.883 75.0 19881120 20030604 406355 99999 ALI BASE IZ ORTL 30.936 46.09 6.1 20090209 20110815 406356 99999 ERBIL INTL IZ 36.233000000000004 43.967 408.7 20090326 20170923 406370 99999 KHANAQIN IZ 34.35 45.383 202.0 19370801 20170923 406380 99999 AL KHALIS IZ 33.833 44.533 44.0 20090726 20170923 406400 99999 KILO 160 IZ 33.217 41.783 400.0 19881120 20160524 406410 99999 TORAYBEEL IZ 32.717 38.733000000000004 800.0 19770110 20130627 406420 99999 RUTBAH IZ 33.033 40.283 615.0 19370107 20170923 406430 99999 AUKASHAT IZ 33.8 40.133 583.0 20090729 20150317 406440 99999 H1 IZ 33.783 41.633 409.0 19761211 19910801 406450 99999 RAMADI IZ 33.45 43.317 48.0 19881120 20170923 406460 99999 HEET IZ 33.633 43.75 58.0 20090720 20170923 406480 99999 HABANYAH IZ ORBH 33.383 43.567 43.6 19370105 20130424 406500 99999 BAGHDAD INTL AIRPORT IZ ORBI 33.266999999999996 44.233000000000004 34.7 19370104 20170923 406503 99999 BAGHDAD/SIRSENK/BAM IZ ORBB 33.233000000000004 44.233000000000004 34.0 19881223 20170501 406505 99999 RASHEED IZ OR1A 33.279 44.494 32.0 20090326 20100527 406506 99999 BALAD AB IZ ORBD 33.94 44.361999999999995 49.1 20160519 20170923 406507 99999 AL ASAD AB IZ ORAA 33.786 42.441 188.4 20110627 20110628 406508 99999 AL SAHRA AAF IZ ORSH 34.673 43.543 137.5 20110615 20110815 406511 99999 BASHUR IZ ORBR 36.534 44.34 633.7 20111109 20111109 406514 99999 AL TAJI AAF IZ ORTI 33.524 44.257 36.9 20100409 20110815 406550 99999 AINALTAMER IZ 32.55 44.717 28.0 20100302 20170923 406560 99999 KERBELA IZ 32.567 44.05 29.0 19761101 20170923 406570 99999 HELLA IZ 32.45 44.45 27.0 19881120 20170923 406580 99999 NUKHEB IZ 32.033 42.283 305.0 19490321 20170923 406600 99999 AZIZYAH IZ 32.917 45.067 25.0 20090806 20170923 406620 99999 BADRAH IZ 33.1 45.95 64.0 20090719 20170923 406640 99999 KUT IZ ORUB 32.5 45.817 19.0 19881120 20170923 406650 99999 KUT-AL-HAI IZ 32.133 46.033 15.0 19490101 20170923 406660 99999 ALI ALGHARBI IZ 32.467 46.717 14.0 20090716 20170923 406700 99999 NAJAF IZ ORNI 31.95 44.317 32.0 19630117 20170923 406720 99999 DIWANIYA IZ 31.95 44.95 20.0 19370105 20170923 406740 99999 SAMAWA IZ 31.267 45.266999999999996 6.0 19730702 20170923 406750 99999 RAFAEI IZ 31.717 46.1 6.0 20100408 20170923 406760 99999 NASIRIYA IZ 31.017 46.233000000000004 3.0 19490101 20170923 406780 99999 BOGUS IRAQI IZ 19881121 19890823 406800 99999 AMARAH IZ 31.85 47.167 9.0 19730101 20170923 406840 99999 AL-SALMAN IZ 30.5 44.533 202.0 19490206 20021102 406850 99999 BOGUS IRAQI IZ 50.9 14.817 83.8 19881121 19890831 406860 99999 BUSAYAH IZ 30.1 46.117 144.0 19490206 20011118 406880 99999 SHAIBAH/BASRAH IZ 30.416999999999998 47.65 19.0 19370106 19940805 406890 99999 BASRAH INTL IZ ORMM 30.549 47.662 3.4 19370718 20170923 406900 99999 BASRAH AIRPORT IZ 30.517 47.783 2.6 19890701 20170923 406910 99999 AL-FAO IZ 29.983 48.5 2.0 19790701 20170923 407000 99999 PARS ABAD MOGHAN IR 39.65 47.917 32.0 19890102 20170923 407010 99999 MAKKO IR 39.333 44.433 1411.0 19900112 20170923 407030 99999 KHOY IR OITK 38.427 44.974 1213.4 19730101 20170923 407036 99999 LAMERD IR OISR 27.373 53.18899999999999 410.0 20100707 20170923 407037 99999 KALALEH IR OINE 37.383 55.45 152.4 20120509 20170923 407040 99999 AHAR IR 38.433 47.067 1390.0 19910918 20170923 407060 99999 TABRIZ INTL IR OITT 38.134 46.235 1359.1 19570701 20170923 407080 99999 ARDEBIL IR 38.25 48.283 1332.0 19761001 20140403 407090 99999 TABRIZ IR 38.083 46.283 1390.2 19490106 19551231 407100 99999 SARAB IR 37.933 47.533 1682.0 19890901 20170923 407120 99999 UROMIYEH IR OITR 37.668 45.068999999999996 1324.1 19491101 20170923 407125 99999 JAM IR OIBJ 27.82 52.352 662.0 20090219 20170923 407126 99999 LAVAN ISLAND IR OIBV 26.81 53.356 22.3 20090313 20170923 407127 99999 DEZFUL IR OIAD 32.434 48.398 144.5 20090711 20170916 407130 99999 MARAGHEH IR OITM 37.35 46.167 1478.0 19910907 20170923 407160 99999 MEYANEH IR 37.45 47.7 1110.0 20050817 20170923 407180 99999 ANZALI IR 37.467 49.467 -26.0 19320102 20170923 407190 99999 RASHT IR OIGG 37.325 49.606 -12.2 19730101 20170923 407200 99999 BOGUS IRANIAN IR 49.317 10.667 141.7 19890208 20070904 407210 99999 MARAVEH-TAPPEH IR 37.9 55.95 460.0 20010824 20170923 407230 99999 BOJNORD IR OIMN 37.493 57.308 1079.9 19771201 20170923 407260 99999 MOHABAD IR 36.766999999999996 45.717 1385.0 19890101 20170923 407270 99999 SAGHEZ IR OITS 36.25 46.266999999999996 1493.0 19730101 20170923 407290 99999 ZANJAN IR OITZ 36.774 48.358999999999995 1640.4 19730101 20170923 407300 99999 IMAM KHOMEINI INTL IR OIIE 35.416 51.152 1007.4 20040824 20170923 407310 99999 GHAZVIN IR OIIK 36.24 50.047 1275.3 19730101 20170923 407315 99999 GHAZVIN AZADI IR OIIA 35.952 50.451 1158.2 20080925 20090207 407320 99999 RAMSAR IR OINR 36.91 50.68 -21.3 19730101 20170923 407330 99999 REGENSBERG OBERTRAUBLING GQ 48.983000000000004 12.2 100.6 20010830 20070913 407340 99999 NOSHAHR IR 36.65 51.5 -21.0 19890104 20140403 407350 99999 GONBAD GHABUS IR OINK 37.25 55.1 32.6 20040824 20170923 407355 99999 NAJA IR OIIM 35.775999999999996 50.881 1231.4 20061020 20080630 407360 99999 BABULSAR IR 36.717 52.65 -21.0 19491127 20170923 407370 99999 GHARAKHIL IR 36.45 52.817 14.0 19890101 20170923 407380 99999 GORGAN IR OING 36.909 54.401 -7.3 19730101 20170923 407390 99999 SHAHRUD IR 36.417 54.95 1345.0 19570701 20170923 407400 99999 GHUCHAN IR 37.067 58.5 1287.0 19490813 20170923 407410 99999 SARAKHS IR 36.533 61.167 235.0 19890102 20140403 407430 99999 SABZEVAR IR OIMS 36.168 57.595 908.3 19630118 20170923 407450 99999 MASHHAD INTL IR OIMM 36.235 59.641000000000005 994.6 19440103 20170923 407460 99999 KASHAFRUD IR 35.983000000000004 60.833 584.0 20020723 20160411 407470 99999 SANANDAJ IR OICS 35.247 47.00899999999999 1378.3 19730101 20170923 407540 99999 MEHRABAD INTL IR OIII 35.689 51.313 1207.6 19431101 20170923 407550 99999 VARAMIN IR 35.35 51.683 950.0 20020605 20110402 407560 99999 GARMSAR IR 35.25 52.167 900.0 20020306 20160308 407570 99999 SEMNAN IR OIIS 35.591 53.495 1117.1 19730101 20170923 407620 99999 TORBAT-HEYDARIEH IR OIMH 35.266999999999996 59.217 1451.0 19730101 20170923 407630 99999 KASHMAR IR 35.2 58.467 1109.0 19490702 20170923 407650 99999 GHASRE-SHIRIN IR OICG 34.516999999999996 45.583 378.0 19761101 20080927 407660 99999 SHAHID ASHRAFI ESFAHANI IR OICC 34.346 47.158 1305.8 19570701 20170923 407670 99999 NOWJEH IR 35.2 48.683 1679.0 19570701 20110802 407680 99999 HAMEDAN IR 34.85 48.533 1749.0 19961201 20140402 407690 99999 ARAK IR OIHR 34.138000000000005 49.847 1661.8 19431018 20170923 407700 99999 GHOM/QOM IR 34.65 50.9 928.0 20160307 20160418 407720 99999 KERMANSHAN IR 34.317 47.083 1295.4 19481101 19530731 407780 99999 KAUPBEUREN GQ 47.867 10.617 216.1 19500103 19530722 407800 99999 ILAM IR 33.633 46.433 1337.0 19890102 20140401 407801 99999 MAHSHAHR IR OIAM 30.555999999999997 49.152 2.4 20040511 20170923 407802 99999 KISH ISLAND IR 26.517 53.983000000000004 31.0 20040511 20170923 407803 99999 SIRRI ISLAND IR 25.9 54.533 13.0 20040511 20170923 407804 99999 ILAM IR 33.583 46.4 1368.0 20040511 20170923 407805 99999 KHORAM ABAD IR 33.433 48.283 1184.0 20040511 20170923 407806 99999 HAMADAN IR 34.867 48.55 1801.0 20040511 20170923 407807 99999 PAYAM IR OIIP 35.775999999999996 50.827 1271.0 20040511 20170923 407808 99999 DAYRESTAN IR OIKQ 26.750999999999998 55.898 12.5 20040511 20170923 407809 99999 SARAKHS IR 36.5 61.067 295.0 20040511 20170923 407810 99999 ASALOYEH IR OIBI 27.480999999999998 52.61600000000001 3.0 20040921 20110705 407820 99999 KHORRAM ABAD IR 33.433 48.283 1148.0 19730101 20140403 407821 99999 BABULSAR IR 36.717 52.65 -21.0 20040511 20140402 407822 99999 NOSHAHR IR 36.65 51.467 -19.0 20040511 20170923 407823 99999 LAR IR OISL 27.674 54.383 792.5 20040511 20170923 407824 99999 YASOUJ IR 30.683000000000003 51.55 1871.0 20040511 20170923 407825 99999 ARDABIL IR 38.317 48.417 1348.0 20040511 20170923 407826 99999 SARI DASHT E NAZ IR OINZ 36.635999999999996 53.193999999999996 10.7 20050724 20170923 407830 99999 ALI-GOODARZ IR 33.4 49.683 2034.0 19910919 20170923 407850 99999 KASHAN IR OIFK 33.895 51.577 1056.1 19730101 20170923 407890 99999 KHOR IR 33.783 55.083 845.0 19891203 20170923 407910 99999 TABAS IR OIMT 33.668 56.893 704.7 19651003 20170923 407920 99999 FERDOUS IR 34.016999999999996 58.167 1293.0 19910601 20170923 407940 99999 SAFI-ABAD DEZFUL IR 32.266999999999996 48.417 83.0 19961201 20170923 407950 99999 DEZFUL IR 32.4 48.383 152.0 19431120 20090426 407980 99999 SHAHRE KORD IR OIFS 32.297 50.842 2049.2 19730101 20170923 408000 99999 ESFAHAN SHAHID BEHESHTI INTL IR OIFM 32.751 51.861999999999995 1545.9 19480901 20170923 408020 99999 ESFAHAN/KHATAMI IR 32.667 51.867 1543.0 20041001 20160308 408080 99999 SAR-E-YEZD IR 31.583000000000002 54.7 1245.0 19520410 19530730 408090 99999 BIRJAND IR OIMB 32.898 59.266000000000005 1509.4 19630121 20170923 408110 99999 AHWAZ IR OIAW 31.337 48.762 20.1 19730101 20170923 408120 99999 SHAHID ASYAEE IR OIAI 32.001999999999995 49.271 361.8 19730101 20170923 408180 99999 ABADEH IR OISA 31.183000000000003 52.667 2004.0 19771201 20170923 408190 99999 KERMAN EAST IR 30.35 57.167 1991.0 19490501 19530720 408200 99999 BOGUS IRANIAN IR 19890212 20071104 408210 99999 YAZD SHAHID SADOOGHI IR OIYY 31.905 54.277 1235.7 19570701 20170923 408230 99999 ZAWIDAN IR 29.5 60.883 1438.4 19490301 19530731 408260 99999 BOGUS IRANIAN IR 19890103 20040323 408270 99999 NEHBANDAN IR 31.533 60.033 1211.0 19900102 20170923 408290 99999 ZABOL IR OIZB 31.098000000000003 61.544 496.2 19660101 20170923 408300 99999 OMIDIEH IR 30.75 49.7 19.0 19940303 20170708 408310 99999 ABADAN IR OIAA 30.371 48.228 3.0 19431130 20170923 408320 99999 ABAMUSA ISLAND IR 25.883000000000003 55.016999999999996 1.0 19730101 20160308 408330 99999 AGHAJARI IR OIAG 30.745 49.676 26.8 19730101 20170923 408350 99999 GACHSARAN IR OIAH 30.338 50.828 729.7 19730101 20170923 408351 99999 ABUMUSA ISLAND IR 25.866999999999997 55.033 7.0 20040901 20170923 408352 99999 MALAYER IR OIHM 34.28 48.82 1725.0 20050315 20170923 408353 99999 BOROUJERD IR OICJ 34.9 48.63 1600.0 20050315 20170923 408354 99999 MINAB IR OIKO 27.12 57.1 27.0 20050315 20170923 408355 99999 GONABAD IR OIMD 34.35 58.68 1056.0 20050315 20170923 408356 99999 MAKU IR OITU 39.33 44.43 1411.0 20050315 20170923 408357 99999 KERMANSHAH IR OIGK 34.28 47.12 1322.0 20050315 20170923 408358 99999 JIROFT IR OIKJ 28.726999999999997 57.67 805.6 20070822 20080625 408359 99999 RAFSANJAN IR OIKR 30.298000000000002 56.051 1614.8 20071122 20170510 408360 99999 YASOGE IR 30.666999999999998 51.583 1837.0 19900203 20140328 408361 99999 PERSIAN GULF AIRPORT IR OIBP 27.366999999999997 52.733000000000004 8.0 20090313 20170923 408410 99999 KERMAN IR OIKK 30.274 56.951 1748.3 19570701 20170923 408420 99999 SHIRAZ IR 29.616999999999997 52.55 1530.1 19490301 19530730 408450 99999 KHARG IR OIBQ 29.267 50.266999999999996 3.0 19730101 20170923 408460 99999 BUSHEHR IR 28.983 50.833 14.0 19570701 19741231 408480 99999 SHIRAZ SHAHID DASTGHAIB INTL IR OISS 29.539 52.589 1499.6 19570701 20170923 408510 99999 SIRJAN IR 29.467 55.717 1739.0 19890101 20170923 408530 99999 BAFT IR 29.233 56.567 2280.0 19490108 20170923 408540 99999 BAM IR OIKM 29.084 58.45 940.0 19660101 20170923 408560 99999 ZAHEDAN INTL IR OIZH 29.476 60.907 1377.7 19570701 20170923 408570 99999 BUSHEHR IR 28.95 50.85 8.0 19961201 20170923 408580 99999 BUSHEHR IR OIBB 28.945 50.835 20.7 19440101 20170923 408590 99999 FASA IR OISF 28.892 53.723 1298.8 19730101 20170923 408690 99999 FARSI ISLAND IR 27.983 50.183 4.0 19751101 20111222 408720 99999 BANDAR-E-DAYYER IR 27.833000000000002 51.933 4.0 20060913 20170923 408750 99999 BANDAR ABBASS INTL IR OIKB 27.218000000000004 56.378 6.7 19650106 20170923 408770 99999 KAHNUJ IR 27.967 57.7 470.0 19890127 20170923 408780 99999 SARAVAN IR 27.333000000000002 62.333 1195.0 19900323 20170923 408785 99999 KHASH IR OIZK 28.217 61.2 1394.0 20080116 20081120 408790 99999 IRAN SHAHR IR OIZI 27.236 60.72 620.9 19730101 20170923 408820 99999 KISH ISLAND IR 26.5 53.983000000000004 30.0 19940302 20140328 408830 99999 BANDAR LENGEH IR OIBL 26.531999999999996 54.825 20.4 19730101 20170923 408890 99999 SIRI ISLAND IR 25.866999999999997 54.483000000000004 4.0 19890101 20140327 408900 99999 ABU MUSA IR 25.833000000000002 54.833 6.0 19760309 20140327 408930 99999 JASK IR OIZJ 25.654 57.799 5.8 19440102 20170923 408970 99999 KONARAK IR 25.433000000000003 60.367 10.0 19940502 20140209 408980 99999 CHAHBAHAR IR 25.283 60.617 8.0 19660101 20170923 409000 99999 DARWAZ AF OADZ 38.433 70.8 1320.0 19730304 20070905 409010 99999 KHWAHAN AF OAHN 37.883 70.217 1040.0 19730629 20070608 409030 99999 KHWAJA-GHAR AF 37.083 69.433 480.0 20010925 20010925 409040 99999 FAIZABAD AF OAFZ 37.117 70.517 1200.0 19730304 20130703 409050 99999 SHIGHNAN AF 37.567 71.5 2265.0 19730701 20090511 409080 99999 SHEBIRGHAN AF OASG 36.667 65.717 360.0 19730101 20130313 409100 99999 SHOR-TIPA AF 37.333 66.85 260.0 19800316 20010828 409110 99999 MAZAR I SHARIF AF OAMS 36.707 67.21 391.4 19730101 20170923 409120 99999 AIBACK AF 36.3 68.0 900.0 19880803 20020730 409130 99999 KUNDUZ AF OAUZ 36.667 68.917 433.0 19730101 20170923 409133 99999 FOB KUNDUZ AF 36.667 68.9 448.1 20130101 20130731 409150 99999 TALOQAN AF 36.733000000000004 69.5 804.0 19860102 19860424 409160 99999 HAIRATAN AF 37.217 67.417 300.0 19840401 19990813 409180 99999 ISKACHEM / ESHKASHEM AF OAEM 36.7 71.567 2620.0 20021121 20170316 409200 99999 ZEBAK AF OAZB 36.5 71.25 2600.0 19580101 20021220 409210 99999 TURGHUNDI AF 35.233000000000004 62.283 680.0 19790201 20131127 409220 99999 MIMANA AF OAMN 35.933 64.767 815.0 19730101 20020614 409230 99999 BALA-MOORGHAB AF 35.583 63.317 470.0 19790201 19820413 409240 99999 KALDAR AF 37.2 67.733 304.0 19580101 19611231 409250 99999 QAISAR AF 35.667 64.267 1300.0 19580101 19611231 409275 99999 DARI-SUF AF OADF 35.917 67.283 1350.0 20100824 20100824 409280 99999 YANGI QALA AF OAYQ 37.467 69.667 810.0 19800306 20030105 409300 99999 NORTH-SALANG AF 35.317 69.017 3366.0 19581201 20170923 409310 99999 SOUTH-SALANG AF 35.3 69.067 3172.0 19730101 19970319 409320 99999 JABUL-SARAJ AF OAJS 35.133 69.25 1630.0 19730101 19940324 409330 99999 HAJIGAK AF OAHJ 34.583 68.1 3400.0 19790201 19800121 409350 99999 ISLAM-QALA AF 34.65 61.583 800.0 19790201 20011230 409370 99999 QALA-I-NOW AF OAQN 35.0 63.117 914.0 19730203 20130731 409380 99999 HERAT AF OAHR 34.21 62.228 977.2 19730101 20170923 409389 99999 FOB VICTORY/STONE AF 34.117 62.217 1112.5 20130101 20140905 409390 99999 QADES AF 34.783 63.417 1280.0 19760302 20021217 409400 99999 OBE AF 34.367 63.15 1298.0 19780101 19840708 409410 99999 GHELMEEN AF 34.883 65.3 2070.0 19580101 19890519 409420 99999 CHAKHCHARAN AF OACC 33.533 65.267 2183.0 19730203 20131027 409430 99999 SHAHRAK AF 34.1 64.3 2325.0 19730208 20020522 409440 99999 LAL AF 34.5 66.3 2800.0 19730208 19790429 409450 99999 BAMIYAN AF OABN 34.817 67.817 2550.0 19730108 20170923 409460 99999 PAN JAO AF OAPJ 34.383 67.033 2710.0 19751101 19791009 409470 99999 PAGHMAN AF OAPG 34.583 68.983 2114.0 19580101 19590930 409480 99999 KABUL INTL AF OAKB 34.566 69.212 1791.3 19570701 20170923 409490 99999 KARIZIMIR AF 34.633 69.05 1905.0 19580610 19611231 409500 99999 LOGAR AF 34.1 69.05 1935.0 19580101 20110102 409510 99999 SAROBI AF 34.583 69.75 1020.0 19600101 19610131 409511 99999 FOB KUTSCHBACH AF 34.867 69.633 1357.9 20130101 20130731 409520 99999 LAGHMAN AF OALN 34.65 70.217 770.0 19610310 19611231 409530 99999 GHAZIABAD AF OAGA 34.317 70.767 510.0 20020713 20020713 409540 99999 JALALABAD AF OAJL 34.4 70.499 566.9 19730101 20170923 409570 99999 SHINDAND AF OASD 33.391 62.261 1150.0 19850502 19990731 409584 99999 COP HONAKER-MIRACLE AF 71.083 34.917 891.8 20130101 20130408 409600 99999 SARDAY AG AF 33.32 68.5 2059.0 19580101 20120915 409660 99999 OKAK AF 33.883 67.95 3130.0 19761201 19790819 409670 99999 BEHSOOD AF OABD 34.3 67.85 2975.0 19791020 19800309 409680 99999 GHAZNI AF OAGN 33.533 68.417 2183.0 19600322 19890530 409700 99999 GARDIZ AF 33.617 69.233 2350.0 19730101 20130731 409701 99999 GARDEZ AF 33.567 69.25 2358.9 20130508 20131029 409705 99999 COP WILDERNESS AF 33.367 69.417 2019.9 20130101 20130731 409710 99999 KHOST AF OAKS 33.35 69.95 1146.0 19730620 20130731 409720 99999 ZABUL AG AF 32.409 66.73 2503.0 20110421 20111226 409730 99999 BACKWA AF 32.233000000000004 62.967 724.0 19870316 19870316 409740 99999 FARAH AF OAFR 32.367 62.183 700.0 19730101 20130819 409750 99999 GULISTAN AF OAGL 32.617 63.667 1375.0 19850409 19860214 409760 99999 KAJAKI AF 32.167 65.1 1000.0 19790201 19840715 409764 99999 FOB SABIT QADAM AF 32.083 64.833 880.9 20130101 20130731 409770 99999 TIRIN KOT AF OATT 32.617 65.867 1350.0 19730812 20130731 409780 99999 LASHKARGAH AF 31.5 64.333 787.0 19600401 19611231 409790 99999 KALAT AF OAKT 32.117 66.9 1565.0 19751001 19800606 409793 99999 FOB WOLVERINE AF 31.967 67.05 1902.0 20130101 20130630 409800 99999 MOKUR AF 32.833 67.783 2000.0 19751001 20101229 409803 99999 COP ARYAN AF 33.117 68.033 2126.0 20130101 20130720 409810 99999 WAZAKHAW AF OADW 32.2 68.35 2800.0 19570701 19800628 409840 99999 URGOON AF 32.917 69.133 2262.0 19730208 20170221 409845 99999 SHARANA AF 33.117 68.833 2260.7 20130101 20130731 409860 99999 ZARANJ AF OAZG 31.0 61.85 478.0 19440120 20090916 409880 99999 BUST AF 31.55 64.367 780.0 19730101 20170923 409900 99999 KANDAHAR AF OAKN 31.506 65.848 1007.1 19730101 20170923 409903 99999 FOB FRONTENAC AF 31.866999999999997 65.85 1136.6 20130101 20130731 409904 99999 FOB SPIN BULDAK AF 30.983 66.35 1191.2 20130101 20130731 409950 99999 CHAR-BURJACK AF 30.283 62.033 550.0 19790202 19790909 409960 99999 DESHOO AF 30.433000000000003 63.3 590.0 19730701 20140520 410001 99999 MUKAYRIS YM 13.95 45.667 2175.0 20070705 20140110 410060 99999 MUWAIH SA OEMH 22.433000000000003 41.75 971.0 19851001 20110614 410080 99999 ZULM SA 22.717 42.167 870.0 20041015 20041015 410100 99999 LAYLA SA 22.333000000000002 46.733000000000004 543.0 19910408 20030329 410140 99999 OBAYLAH (AUT) SA 22.217 50.883 588.0 19830201 20030315 410160 99999 SHAWALAH SA 22.517 54.05 468.0 19830402 20050526 410180 99999 MAHAZAT AL-SAID-1 SA 22.25 41.633 1394.0 20031231 20060117 410200 99999 JEDDAH I.E. SA 21.416999999999998 39.217 10.0 19910605 20050729 410240 99999 KING ABDULAZIZ INTL SA OEJN 21.68 39.157 14.6 19830101 20170923 410260 99999 JEDDAH SA OEJD 21.5 39.2 15.0 19560101 20061026 410300 99999 MAKKAH SA 21.433000000000003 39.766999999999996 240.0 19830701 20170923 410310 99999 MINA SA 21.416999999999998 39.867 394.0 20050112 20160916 410320 99999 ARAFAT SA 21.333000000000002 39.967 308.0 20041109 20170923 410350 99999 AL-HADA SA 21.333000000000002 40.266999999999996 2089.0 19910501 20031110 410360 99999 TAIF SA OETF 21.483 40.544000000000004 1477.7 19830101 20170923 410550 99999 AL BAHA SA OEBA 20.296 41.63399999999999 1672.1 19830201 20170923 410600 99999 WADI AL-DAWASSER SA 20.433 44.683 701.0 20160406 20160406 410610 99999 WADI AL DAWASIR SA OEWD 20.504 45.2 628.5 19900401 20170923 410620 99999 SULAYEL SA 20.467 45.667 614.0 19830101 19900614 410800 99999 AL-QUNFUDAH SA 19.117 41.083 0.0 19910605 20071118 410840 99999 BISHA SA OEBH 19.984 42.621 1184.8 19830101 20170923 411070 99999 19870518 19870518 411120 99999 ABHA SA OEAB 18.24 42.657 2090.3 19830101 20170923 411140 99999 KING KHALED AB SA OEKM 18.297 42.803999999999995 2065.9 19830101 20170923 411280 99999 NEJRAN SA OENG 17.611 44.419 1213.7 19830101 20170923 411360 99999 SHARURAH SA OESH 17.467 47.121 720.2 19830101 20170923 411363 99999 SHARURAH (CIV/MIL)& SA 17.45 47.15 720.0 19850405 19910707 411400 99999 KING ABDULLAH BIN ABDULAZIZ SA OEGN 16.901 42.586000000000006 6.1 19830101 20170923 411410 99999 GIZAN SA 16.9 42.533 5.0 19910601 20050726 411500 99999 BAHRAIN INTL BA OBBI 26.271 50.63399999999999 1.8 19440101 20170923 411510 99999 JARIM BA 26.483 50.583 3.0 20061106 20061106 411520 99999 HAWAR ISLAND BA 25.717 50.783 2.0 20140730 20140730 411540 99999 JABAL AL DUKHAN BA 26.033 50.533 135.0 20100727 20110301 411550 99999 F1 (FORMULA 1) BA 26.017 50.5 5.0 20051001 20051001 411560 99999 RAS AL BAR BA 25.85 50.55 2.0 20080925 20101231 411600 99999 AI RUWAIS QA 26.15 51.2 6.0 20111201 20170923 411610 99999 AL KHOR AIRPORT QA 25.616999999999997 51.516999999999996 11.0 20111201 20170923 411620 99999 AL SHEHAIMIYA QA 25.85 50.967 2.0 20111201 20150331 411640 99999 AL GUWAYRIYAH QA 25.833000000000002 51.266999999999996 19.0 20111201 20150401 411670 99999 DUKHAN QA 25.4 50.75 5.0 20111201 20170923 411680 99999 DOHA PORT QA 25.3 51.55 4.0 19830101 20050428 411700 99999 DOHA INTL QA OTBD 25.261 51.565 10.7 19830101 20170923 411703 99999 DOHA QA OTHH 25.267 51.6 4.0 20140513 20170923 411705 99999 AL UDEID AB QA OTBH 25.116999999999997 51.315 39.6 20110306 20170923 411710 99999 QATAR UNIVERSITY QA 25.383000000000003 51.483000000000004 12.0 20111201 20170425 411730 99999 AL WAKRAH QA 25.183000000000003 51.617 5.0 20111201 20150401 411750 99999 AL KARANA QA 25.0 51.033 49.0 20111201 20150401 411760 99999 UMM SAID QA 24.95 51.567 5.0 19840101 20150916 411770 99999 TURAYNA QA 24.717 51.217 41.0 20111201 20150401 411780 99999 ABU SAMRA QA 24.75 50.817 8.0 20111201 20170923 411840 99999 RAS AL KHAIMAH INTL AE OMRK 25.613000000000003 55.93899999999999 31.1 19830101 20170923 411940 99999 DUBAI INTL AE OMDB 25.255 55.364 10.4 19830101 20170923 411945 99999 AL MAKTOUM INTL AIRPORT AE 24.886 55.172 18.9 20100518 20170923 411946 99999 ZIRKU AE OMAZ 24.862 53.078 4.3 20100706 20140221 411960 99999 SHARJAH INTL AE OMSJ 25.329 55.516999999999996 33.8 19440320 20170923 411980 99999 FUJAIRAH INTL AE OMFJ 25.112 56.324 46.3 19881102 20170923 412160 99999 BATEEN AE OMAD 24.428 54.458 4.9 19830101 20170923 412161 99999 AL HAMRA AUX AE OMAH 24.074 52.464 15.2 20080721 20170922 412162 99999 AL DHAFRA AE OMAM 24.248 54.548 23.2 20080721 20170922 412163 99999 DELMA AE OMDL 24.467 52.317 25.0 20080721 20170919 412164 99999 DUBAI MINHAD AB AE OMDM 25.026999999999997 55.36600000000001 50.3 20080721 20170923 412165 99999 SIR ABU NAIR AE OMSN 25.217 54.233999999999995 7.0 20100131 20170911 412170 99999 ABU DHABI INTL AE OMAA 24.433000000000003 54.651 26.8 19830102 20170923 412180 99999 AL AIN INTL AE OMAL 24.261999999999997 55.608999999999995 264.9 19940308 20170923 412260 99999 MEDINA ZAYED AE 23.633000000000003 53.633 130.0 20011004 20030601 412265 99999 BUHASA AE OMAB 23.616999999999997 53.383 94.0 19950101 20111111 412400 99999 KHASAB PORT MU 26.217 56.25 4.0 19830101 20170923 412410 99999 KHASAB AIRPORT MU 26.166999999999998 56.233000000000004 29.0 20050303 20151218 412420 99999 DIBA MU 25.616999999999997 56.25 10.0 20010705 20170923 412440 99999 BURAIMI (AUT) MU OOBR 24.233 55.783 299.0 19830101 20170923 412460 99999 SOHAR MAJIS MU OOSH 24.467 56.633 4.0 19830101 20170923 412490 99999 QUMAIRA MU 23.933000000000003 56.2 633.0 20130101 20170923 412500 99999 SUNAYNAH MU 23.717 55.9 257.0 20130101 20170923 412520 99999 IBRI MU 23.233 56.433 327.0 20011108 20170923 412530 99999 RUSTAQ MU 23.416999999999998 57.433 322.0 20010712 20170923 412540 99999 SAIQ MU OOSQ 23.066999999999997 57.633 1755.0 19830101 20170923 412550 99999 NIZWA MU 22.866999999999997 57.55 462.0 20010916 20170923 412560 99999 SEEB INTL MU OOMS 23.593000000000004 58.284 14.6 19440101 20170923 412570 99999 SAMAIL MU 23.254 57.928000000000004 417.0 20010707 20170923 412580 99999 MINA SULTAN QABOOS MU 23.633000000000003 58.567 3.0 19830101 20170923 412590 99999 JABAL SHAMS MU 23.233 57.266999999999996 2764.0 20050303 20150710 412620 99999 FAHUD (AUT) MU OOFD 22.35 56.483000000000004 170.0 19870211 20170923 412630 99999 BAHLA MU 22.912 57.257 592.0 20010915 20170923 412640 99999 ADAM AIRPORT MU 22.5 57.367 328.0 20010705 20170923 412643 99999 NIZWA MU 22.916999999999998 57.516999999999996 1900.0 20130424 20130427 412645 99999 RAFO ADAM MU 22.5 57.383 327.4 20110613 20130427 412650 99999 IBRA MU 22.809 58.461000000000006 469.0 20010915 20170923 412660 99999 IBRA MU 22.633000000000003 58.667 1100.0 20010713 20170923 412670 99999 QALHAT MU 22.666999999999998 59.4 11.0 20010716 20170923 412680 99999 SUR MU OOSR 22.533 59.483000000000004 14.0 19830101 20170923 412700 99999 RAS AL HADD MU 22.3 59.817 43.0 20050315 20170923 412720 99999 SUWAIQ MU 23.816999999999997 57.283 39.0 20130101 20170923 412740 99999 GHABA CENTRAL/PRI MU 21.383000000000003 57.05 135.0 20140707 20170923 412750 99999 QARN ALAM MU 21.383000000000003 57.05 133.0 20010802 20170923 412760 99999 UMZAMAIM MU 20.8 57.117 126.0 20130101 20170923 412800 99999 AL AMERAT MU 23.5 58.483000000000004 105.0 20130101 20170923 412870 99999 JOBA MU 20.866999999999997 58.25 34.0 20050303 20170923 412880 99999 MASIRAH MU OOMA 20.675 58.89 19.5 19430510 20170923 412900 99999 DUQM MU 19.617 57.633 40.0 20050619 20170923 412910 99999 DUQM AIRPORT MU 19.517 57.65 102.0 20130613 20170923 412920 99999 AL MUDHAIBI MU 22.517 58.117 378.0 20140707 20170923 412930 99999 BIDIYA MU 22.467 58.85 316.0 20130101 20170923 412940 99999 HAIMA MU 19.967 56.266999999999996 122.0 19830801 20030408 412950 99999 YAALONI MU 19.95 57.1 156.0 20071024 20170923 412960 99999 DUQM & MU 19.75 57.633 0.0 19831106 19900316 413010 99999 HAIMA MU 20.05 56.383 146.0 20130101 20170923 413040 99999 MARMUL MU 18.133 55.183 273.0 19870406 20170923 413120 99999 MINA SALALAH MU 16.933 54.016999999999996 25.0 19830101 20170923 413130 99999 JABAL NOOS MU 17.25 55.233000000000004 706.0 20130101 20130319 413140 99999 THUMRAIT MU OOTH 17.666 54.025 478.5 19830101 20170923 413150 99999 QAIROON HAIRITI MU 17.25 54.083 881.0 20010814 20170923 413160 99999 SALALAH MU OOSA 17.039 54.091 22.3 19430413 20170923 413240 99999 SAADA & YM OYSH 16.967 43.717 1890.0 19831122 20030409 413243 99999 SA'ADA & YM OYSH 16.967 43.717 1890.0 19970123 19970509 413253 99999 BOGUS YEMEN YM OYJA 19880320 19900226 413260 99999 AL-HAZM YM OYZM 16.2 44.783 1900.0 19840402 20030202 413410 99999 ABBS YM OYAS 16.083 43.167 2000.0 20080722 20130930 413440 99999 SANA'A (CIV/MIL) YM 15.517000000000001 44.183 2190.0 19830101 20011103 413500 99999 MARIB YM 15.433 45.333 1000.0 19730101 20110311 413580 99999 JUMEISHA YM 14.717 43.067 38.0 20020605 20020605 413600 99999 HODEIDAH (CIV/MIL) YM 14.75 42.967 115.0 19830101 20141002 413720 99999 SAADA YM 17.033 43.766999999999996 1890.0 20030331 20140407 413780 99999 AL-BAYDA YM 13.967 45.583 1011.0 20021228 20150209 413783 99999 AL-BAYDA YM 13.967 45.583 1011.0 20090529 20090529 413820 99999 MOKHA YM 13.25 43.283 3.0 19830515 20150326 413900 99999 TAIZ (CIV/MIL) YM 13.683 44.15 1385.0 19830101 20170130 413905 99999 RIYAN YM 14.65 49.367 17.0 19980301 20100720 413910 99999 HAJJAH YM OYHJ 15.833 43.583 1760.0 19930104 20170208 413913 99999 BOGUS YEMEN YM OYSA 19880214 20050618 413940 99999 BOGUS YEMEN YM 19900220 20040129 413960 99999 SEIYOUN YM 15.982999999999999 48.95 700.0 19920501 20140422 413980 99999 AL-GHAIDAH YM 16.083 52.083 42.0 19920503 20140421 413990 99999 AMRAN YM 15.767000000000001 44.016999999999996 15.0 20111201 20170130 414040 99999 SANAA INTL YM OYSN 15.475999999999999 44.22 2205.8 19920501 20170208 414050 99999 SAADA/SADAH YM 16.967 43.733000000000004 1890.0 20041211 20161125 414070 99999 MARIB YM OYMB 15.433 45.333 1070.0 19920503 20161108 414140 99999 20010718 20030211 414160 99999 KAMARAN YM 15.367 42.583 15.0 19990103 20030215 414280 99999 AL-GHAIDAH YM 16.083 52.083 42.0 19861006 20050628 414300 99999 KAMARAN ISLAND YM 15.367 42.583 15.0 19830120 20030714 414310 99999 HODEIDAH YM OYHD 14.753 42.976000000000006 12.5 19920301 20170208 414340 99999 DHAMAR YM OYDM 14.583 44.417 2425.0 20030331 20170208 414360 99999 SEIYOUN & YM 15.982999999999999 48.95 580.0 19830108 20010713 414363 99999 SAYUN YM 15.967 48.783 656.0 19881223 20170208 414365 99999 AI-GHAIDAH YM 16.083 52.083 42.0 20050628 20140420 414370 99999 ATAQ YM OYAT 14.550999999999998 46.826 1097.3 19920301 20170208 414380 99999 AL SADDAH YM 14.133 44.367 2692.0 20111201 20161216 414430 99999 RIYAN YM OYRN 14.663 49.375 16.5 19920301 20150326 414440 99999 ATAQ & YM 14.517000000000001 46.85 1097.0 19881201 20020826 414480 99999 RIYAN YM 14.583 49.25 25.0 19830108 19940503 414520 99999 IBB YM OYIB 14.0 44.333 1920.0 20010916 20170208 414660 99999 GANED YM OYTZ 13.686 44.138999999999996 1402.1 19920301 20150326 414670 99999 ADEN KHORMAKSAR YM 12.833 45.033 3.0 19430413 19931025 414770 99999 MOKHA YM 13.25 43.283 3.0 19920301 20140407 414800 99999 ADEN YM OYAA 12.833 45.033 3.0 19920301 20170207 414820 99999 SAHAREEG YM 12.783 45.167 0.0 20111201 20140622 414940 99999 SOCOTRA YM OYSQ 12.630999999999998 53.906000000000006 45.7 19920303 20170208 414990 99999 SOCOTRA ISLAND YM 12.633 53.9 45.0 19900201 19920701 415040 99999 GUPIS PK 36.167 73.4 2156.0 20051001 20170328 415050 99999 HUNZA PK 36.317 74.65 2374.0 20081029 20170328 415060 99999 CHITRAL PK 35.85 71.833 1500.0 19730101 20140207 415070 99999 MET OBSERVATORY TIMERGARA / DIR LOWER PK 34.833 71.817 786.0 20081029 20170328 415080 99999 DIR PK 35.2 71.85 1370.0 19800309 20170923 415090 99999 MIR KHANI PK 35.5 71.7 1250.0 20061003 20170328 415100 99999 KALAM PK 35.833 72.983 2123.0 20050727 20170328 415150 99999 DROSH PK 35.567 71.783 1465.0 19440101 20170923 415160 99999 GILGIT PK OPGT 35.919000000000004 74.334 1457.2 19730401 20170706 415170 99999 SKARDU PK OPSD 35.336 75.536 2316.5 19440101 20170329 415180 99999 BUNJI PK 35.667 74.633 1470.0 20040806 20170328 415190 99999 CHILLAS PK 35.417 74.1 1251.0 20050728 20170328 415195 99999 TURBAT INTL PK 25.983 63.033 152.0 20050809 20170329 415200 99999 ASTORE PK 35.367 74.9 2168.0 20050727 20170328 415205 99999 CHITRAL PK 35.883 71.8 1494.0 20050727 20170923 415215 99999 DERA GHAZI KHAN PK 29.967 70.483 148.0 20050727 20170329 415225 99999 MUZAFFARABAD PK 34.333 73.517 831.0 20050727 20170329 415230 99999 SAIDU SHARIF PK 34.733000000000004 72.35 951.0 19740730 20140206 415235 99999 SAIDU SHARIF PK 34.817 72.35 970.0 20050809 20170923 415240 99999 PATTAN PK 35.1 73.0 752.0 20081029 20170328 415245 99999 RAIFIQUI (PAFB) PK 30.767 72.283 151.0 20050727 20051010 415250 99999 MALAM JABBA PK 34.75 72.9 2652.0 20070116 20170328 415260 99999 BABUSAR PK 35.217 74.1 2854.0 20151007 20151007 415280 99999 LANDIKOTAL PK 34.1 71.133 1067.0 19730101 19791113 415290 99999 PESHAWAR PK 34.033 71.933 329.0 20110104 20150312 415300 99999 PESHAWAR PK 34.016999999999996 71.583 360.0 19440101 20170923 415310 99999 BATTAL PK 34.583 73.15 1676.0 19730815 20030111 415320 99999 MUZAFFAR ABAD PK 34.367 73.483 2303.0 19730103 20131015 415330 99999 RISALPUR PK OPRS 34.080999999999996 71.973 320.0 19730101 20170328 415350 99999 KAKUL PK 34.183 73.25 1309.0 19730101 20170923 415360 99999 BALAKOT PK 34.383 73.35 981.0 19980301 20170923 415600 99999 PARACHINAR PK 33.867 70.083 1726.0 19440101 20170923 415620 99999 BANNU* PK 33.0 70.1 406.0 20050728 20131014 415640 99999 KOHAT PK 33.567 71.433 513.0 19730101 20170328 415650 99999 CHERAT PK 33.817 71.883 1372.0 19440101 20170328 415690 99999 CAMPBELLPUR PK 33.766999999999996 72.367 357.0 19730103 19730619 415710 99999 CHAKLALA PK OPRN 33.617 73.09899999999999 508.4 19440101 20170923 415720 99999 HARIPUR PK 33.983000000000004 72.917 535.0 19730107 19781008 415730 99999 MURREE PK 33.917 73.383 2127.0 19440101 20170923 415740 99999 RAWALAKOT* PK 33.85 73.8 1677.0 20060711 20131014 415760 99999 MANGLA* PK 33.067 73.633 283.0 20070720 20131014 415770 99999 ISLAMABAD CITY PK 33.717 73.1 525.0 20050727 20170328 415840 99999 MIRANSHAH AIRPORT PK 32.983000000000004 70.117 921.0 19440102 20031024 415900 99999 KHUSHAB PK 32.3 72.35 186.0 19540101 20020522 415920 99999 MIANWALI PK OPMI 32.563 71.571 210.3 19440101 20170405 415925 99999 SUKKUR PK OPSK 27.721999999999998 68.792 58.2 20081025 20170923 415930 99999 SARGODHA PK 32.05 72.667 187.0 20040812 20161227 415940 99999 SARGODHA PK OPSR 32.05 72.667 188.0 19730101 20170923 415970 99999 MANDI BAHAUDDIN PK 32.583 73.5 253.0 20050727 20170328 415980 99999 JHELUM PK 32.933 73.717 234.0 19730101 20170923 415990 99999 SIALKOT PK OPST 32.5 74.533 255.0 20130101 20170923 416000 99999 SIALKOT PK OPST 32.5 74.533 256.0 19440101 20170923 416200 99999 ZHOB PK OPZB 31.358 69.464 1417.3 19440101 20170923 416240 99999 D I KHAN PK OPDI 31.909000000000002 70.89699999999999 181.1 19440101 20170923 416300 99999 FAISALABAD PK 31.433000000000003 73.1 184.0 19440101 20140206 416360 99999 JHANG PK 31.267 72.317 153.0 20050803 20170415 416380 99999 TOBA TEK SINGH PK 30.983 72.467 156.0 20081029 20170328 416400 99999 LAHORE CITY PK OPLH 31.55 74.333 215.0 19440101 20170923 416410 99999 ALLAMA IQBAL INTL PK OPLA 31.522 74.404 217.0 19761201 20170923 416460 99999 OKARA PK 30.8 73.433 180.0 20081029 20131014 416520 99999 DERA GHAZI KHAN PK 30.05 70.633 125.0 19730101 20131014 416580 99999 19570201 19631029 416600 99999 QUETTA PK OPQT 30.250999999999998 66.938 1600.2 19440101 20170923 416610 99999 QUETTA (SHEIKH MANDA) PK 30.267 66.917 1621.0 19730101 20170910 416620 99999 QILA SAIFULLAH PK 30.75 67.867 1801.0 19570201 19631029 416630 99999 19440101 19471230 416711 99999 LAYYAH PK 31.017 70.967 151.0 20160513 20170328 416720 99999 RAFIQUI PK 30.783 72.2 150.0 19750905 20161015 416750 99999 MULTAN INTL PK OPMT 30.203000000000003 71.419 121.9 19440101 20170923 416780 99999 BAHAWALNAGAR PK 29.95 73.25 163.0 19730101 20170923 416800 99999 19440101 19481231 416850 99999 BAR KHAN PK 29.883000000000003 69.717 1098.0 19730620 20170923 416960 99999 KALAT PK 29.033 66.583 2017.0 19440101 20170923 416970 99999 SIBI PK OPSB 29.55 67.883 134.0 19570201 20170923 417000 99999 BAHAWALPUR PK OPBW 29.4 71.783 113.0 19440101 20170923 417010 99999 BAHAWALPUR PK 29.4 71.783 117.0 20090519 20170329 417100 99999 NOKKUNDI PK 28.816999999999997 62.75 683.0 19440102 20170923 417120 99999 DAL BANDIN PK 28.883000000000003 64.4 850.0 19440101 20170923 417150 99999 SHAHBAZ AB PK OPJA 28.284000000000002 68.45 56.4 19440101 20170923 417160 99999 SHEIKH ZAYED PK OPRK 28.384 70.28 82.6 20081029 20170329 417170 99999 19570803 19631029 417180 99999 KHANPUR PK 28.65 70.683 88.0 19440101 20170923 417250 99999 ROHRI PK 27.666999999999998 68.9 68.0 19570201 20170923 417380 99999 TURBAT PK 26.017 63.067 154.0 20050727 20131015 417390 99999 PANJGUR PK OPPG 26.955 64.133 1002.5 19440115 20170923 417420 99999 LASBELLA PK 26.23 66.17 87.0 19570201 20170328 417430 99999 DADU PK 26.717 67.767 40.0 19730111 19740118 417440 99999 KHUZDAR PK 27.833000000000002 66.633 1232.0 19730101 20170923 417460 99999 PADIDAN PK 26.85 68.133 47.0 19440101 20170923 417470 99999 MOENJODARO PK OPMJ 27.335 68.143 50.9 20100106 20170329 417480 99999 LARKANA PK 27.533 68.233 53.0 20050727 20130310 417490 99999 NAWABSHAH PK OPNH 26.219 68.39 28.3 19550101 20170923 417560 99999 JIWANI PK OPJI 25.068 61.805 58.0 19440101 20170923 417570 99999 GWADAR PK OPGD 25.233 62.32899999999999 29.3 20050728 20170329 417590 99999 PASNI PK OPPI 25.29 63.343999999999994 3.7 19440101 20170923 417600 99999 ORMARA PK OPOR 25.273000000000003 64.58800000000001 19.0 19440101 20170329 417640 99999 HYDERABAD AIRPORT PK OPKD 25.383000000000003 68.417 41.0 19450228 20170923 417650 99999 HYDERABAD PK 25.383000000000003 68.417 30.0 19570201 20071220 417680 99999 CHHOR PK 25.517 69.783 6.0 19540101 20170923 417690 99999 UNMARKOT PK 25.366999999999997 69.75 17.0 19570201 19631029 417800 99999 JINNAH INTL PK OPKC 24.906999999999996 67.161 30.5 19420506 20170923 417810 99999 MASROOR PK OPMR 24.894000000000002 66.939 10.7 19730101 20161017 417820 99999 KARACHI MANORA PK 24.8 66.983 4.0 19440101 20030328 417850 99999 BADIN PK 24.633000000000003 68.9 11.0 19440101 20170923 418500 99999 TETULIA PANCHAGOR BG 26.35 88.6 55.0 20160217 20170923 418520 99999 THAKURGAON BG 26.017 88.4 -999.9 19730107 20050221 418550 99999 ISHURDI BG 24.15 89.03299999999999 14.0 19730409 19811230 418560 99999 RAJSHAHI BG 24.383000000000003 88.6 23.0 19800410 20030210 418580 99999 SAIDPUR BG 25.75 88.917 39.0 19440101 20170923 418590 99999 RANGPUR BG 25.733 89.23299999999999 34.0 19811213 20170923 418600 99999 SIRAJGANJ BG 24.45 89.7 15.0 19780808 19790928 418620 99999 LALMONIRHAT BG VGLM 25.883000000000003 89.48299999999999 34.0 19430709 19460330 418621 99999 RAJARHAT KURIGRAM BG 25.8 89.55 31.0 20150218 20170923 418630 99999 DINAJPUR BG 25.65 88.68299999999999 37.0 19440101 20170923 418830 99999 BOGRA BG 24.85 89.367 20.0 19820101 20170923 418840 99999 JAMALPUR BG 24.933000000000003 89.95 20.0 19950502 20030227 418860 99999 MYMENSINGH BG 24.717 90.43299999999999 19.0 19440101 20170923 418900 99999 SYLHET A.P. BG 24.967 91.883 -999.9 20010714 20030710 418910 99999 OSMANY INTL BG VGSY 24.963 91.867 15.2 19440131 20170923 418950 99999 SHAH MOKHDUM BG VGRJ 24.436999999999998 88.617 19.5 19811230 20170923 418980 99999 SERAJGONJ BG 24.45 89.7 16.0 20020602 20140706 419000 99999 SYLHET BG 24.9 91.883 32.0 19530706 19811230 419070 99999 ISHURDI BG VGIS 24.153000000000002 89.04899999999999 13.7 19820101 20170923 419090 99999 TANGAIL BG 24.25 89.93299999999999 -999.9 19880305 20170923 419150 99999 SRIMANGAL BG 24.3 91.73299999999999 23.0 19440101 20170923 419160 99999 FARIDPUR BG 23.616999999999997 89.85 14.0 19770603 19811207 419170 99999 DACCA/TEZGAON BG VGDC 23.767 90.383 7.0 19540101 20020601 419210 99999 JOYDEVPUR BG 23.983 90.417 -999.9 20160204 20160204 419220 99999 HAZRAT SHAHJALAL INTL BG VGHS 23.843000000000004 90.398 9.1 19430715 20170923 419230 99999 TEJGAON BG VGTJ 23.779 90.383 7.3 19450228 20170923 419260 99999 CHUADANGA BG 23.65 88.81700000000001 12.0 20030820 20170923 419280 99999 MADARIPUR BG 23.166999999999998 90.18299999999999 13.0 19770708 19781224 419290 99999 FARIDPUR BG 23.6 89.85 9.0 19440101 20170923 419310 99999 KHULNA BG 22.85 89.56700000000001 5.0 19800301 19811129 419320 99999 BARISAL BG 22.717 90.367 4.0 19770915 19811205 419330 99999 COMILLA BG 23.433000000000003 91.18299999999999 9.0 19450802 20170923 419350 99999 FENI BG 23.0 91.4 8.0 19780803 19810126 419360 99999 JESSORE BG VGJR 23.184 89.161 6.1 19820101 20170923 419370 99999 BHOLA BG 22.683000000000003 90.65 5.0 19780102 19801108 419380 99999 BORHANUDDIN BG 22.483 90.71700000000001 8.0 19750112 19750329 419390 99999 MADARIPUR BG 23.166999999999998 90.18299999999999 13.0 19870303 20170923 419400 99999 CHITTAGONG BG 22.35 91.81700000000001 26.0 19440101 19810916 419410 99999 CHANDPUR BG 23.267 90.7 7.0 19610101 20170923 419430 99999 FENI BG 23.033 91.417 8.0 19800324 20170923 419440 99999 CHILLIMPUR BG 22.416999999999998 91.75 9.0 19450531 19450612 419450 99999 SANDVIP BG 22.483 91.417 6.0 19800310 19801012 419460 99999 SATKHIRA BG 22.717 89.083 6.0 19780804 20170923 419470 99999 KHULNA BG 22.783 89.53299999999999 4.0 19811214 20170923 419500 99999 BARISAL BG 22.75 90.367 4.0 19440101 20170923 419510 99999 BHOLA BG 22.683000000000003 90.65 5.0 19830419 20170923 419530 99999 MAIJDICOURT BG 22.866999999999997 91.1 6.0 20011014 20170923 419580 99999 MONGLA BG 22.6 89.5 -999.9 20031204 20170923 419600 99999 PATUAKHALI BG 22.333000000000002 90.333 3.0 20010805 20170923 419610 99999 KHEPUPARA BG 21.983 90.23299999999999 9.0 19800327 19800928 419630 99999 HATIA BG 22.433000000000003 91.1 4.0 19830413 20170923 419640 99999 SANDWIP BG 22.483 91.43299999999999 6.0 19830408 20170923 419650 99999 SITAKUNDU BG 22.583000000000002 91.7 10.0 19880609 20170923 419660 99999 RANGAMATI BG 22.533 92.2 63.0 19830406 20170923 419770 99999 CHITTAGONG (AMBAGAN) BG 22.35 91.81700000000001 34.0 19440503 20061020 419780 99999 SHAH AMANAT INTL BG VGEG 22.25 91.81299999999999 3.7 19820101 20170923 419800 99999 TEKNAF BG 20.417 92.3 6.0 19800415 19800806 419840 99999 KHEPUPARA BG 21.983 90.23299999999999 9.0 19830427 20170923 419890 99999 KUTUBDIA BG 21.816999999999997 91.85 7.0 20011014 20170923 419920 99999 COXS BAZAR BG VGCB 21.451999999999998 91.964 3.7 19460101 20170923 419930 99999 20020528 20020528 419980 99999 TEKNAF BG 20.866999999999997 92.3 6.0 19820729 20170923 420100 99999 BOGUS INDIAN IN 19870511 20030113 420260 99999 GULMARG IN 34.05 74.4 2655.0 19440601 20170923 420270 99999 SRINAGAR IN 34.083 74.833 1587.0 19730101 20170923 420280 99999 19870519 19870519 420290 99999 SONAMARG IN 34.317 75.317 2515.0 19740613 20160113 420300 99999 DRAS IN 34.433 75.767 3066.0 19440101 20070426 420340 99999 LEH & IN 34.15 77.567 3513.0 19440101 19481106 420420 99999 SRINAGAR IN 33.983000000000004 74.783 1664.0 19881026 20050619 420440 99999 QAZI GUND IN 33.583 75.083 1690.0 20030306 20170923 420450 99999 BANIHAL IN 33.5 75.167 1630.0 20021023 20170923 420550 99999 JAMMU (IN-AFB) IN 32.683 74.833 314.0 19730101 19910719 420560 99999 JAMMU IN 32.667 74.833 367.0 19830902 20170923 420570 99999 PATHANKOT (IN-AFB)& IN 32.233000000000004 75.633 312.0 19730102 19750831 420590 99999 DALHOUSIE IN 32.533 75.967 1959.0 19440601 20060101 420600 99999 KATHUA IN 32.333 75.5 380.0 20011121 20030202 420620 99999 DHARMSALA IN 32.266999999999996 76.383 1211.0 19730101 20170923 420650 99999 MANALI IN 32.266999999999996 77.167 2039.0 19990223 20170923 420710 99999 AMRITSAR IN VIAR 31.71 74.797 230.4 19730101 20170923 420740 99999 KAPURTHALA IN 31.333000000000002 75.333 229.0 20020214 20160509 420770 99999 UNA IN 31.467 76.267 369.0 20090205 20170923 420780 99999 MANDI IN 31.717 76.967 761.0 19590602 20170923 420790 99999 SUNDERNAGAR IN 31.533 76.9 874.0 20130529 20170923 420800 99999 BILASPUR IN 31.25 76.667 587.0 19590602 20151208 420801 99999 BHAVNAGAR IN VABV 21.752 72.185 13.4 20110129 20170923 420810 99999 BHUNTAR IN 31.833000000000002 77.167 1084.0 20020903 20170923 420830 99999 SHIMLA IN 31.1 77.167 2202.0 19440101 20170923 420960 99999 FEROZEPUR IN 30.916999999999998 74.667 200.0 19730101 20030730 420970 99999 BHATINDA IN 30.166999999999998 74.583 211.0 20030524 20030524 420980 99999 HALWARA IN 30.75 75.633 241.0 19440101 19481231 420990 99999 LUDHIANA IN 30.866999999999997 75.933 255.0 19730101 20170923 421010 99999 PATIALA IN 30.333000000000002 76.467 251.0 19730101 20170923 421030 99999 AMBALA IN 30.383000000000003 76.767 272.0 19440101 20170923 421040 99999 NAHAN IN 30.4 76.767 958.0 19881016 20170923 421050 99999 CHANDIGARH(IAFB) IN 30.733 76.883 347.0 19740101 20170923 421070 99999 DHARMPUR IN 30.9 77.017 1986.0 19990701 20021214 421080 99999 UTTARKASHI IN 30.733 78.45 1200.0 19990420 20030305 421110 99999 DEHRADUN IN 30.316999999999997 78.033 682.0 19440101 20170923 421120 99999 MUSSOORIE IN 30.45 78.083 2042.0 19540101 20040705 421140 99999 TEHRI IN 30.4 78.483 770.0 19981224 20170923 421160 99999 JOSHIMATH IN 30.55 79.567 1875.0 19730101 20030606 421170 99999 CHAMOLI IN 30.4 79.333 1160.0 19990211 20160514 421210 99999 MUNSYARI IN 30.116999999999997 80.25 3414.0 20011024 20110908 421220 99999 ANUPGARH IN 29.166999999999998 73.167 154.0 19440101 20030711 421230 99999 GANGANAGAR IN 29.916999999999998 73.917 177.0 19440101 20170923 421310 99999 HISSAR IN VIHR 29.179000000000002 75.755 213.4 19440101 20170923 421350 99999 SANGRUR IN 30.166999999999998 75.833 236.0 19831001 20160807 421370 99999 KARNAL IN 29.7 77.033 249.0 19730109 20170923 421390 99999 MEERUT IN 29.017 77.717 222.0 19440603 20170923 421400 99999 ROORKEE IN 29.85 77.883 274.0 19440101 20141111 421430 99999 NAJIBABAD IN 29.616999999999997 78.383 270.0 19730101 20170923 421460 99999 NAINITAL IN 29.4 79.467 1953.0 19730103 19790214 421470 99999 MUKTESHWAR KUMAON IN 29.467 79.65 2311.0 19440101 20170923 421480 99999 PANTNAGAR IN 29.033 79.467 233.0 20070520 20170923 421510 99999 DHARCHULA IN 29.85 80.533 817.0 19831002 20020313 421650 99999 BIKANER IN 28.0 73.3 224.0 19440101 20170923 421700 99999 CHURU IN 28.25 74.917 291.0 19730101 20170923 421740 99999 PILANI IN 28.333000000000002 75.583 301.0 20020630 20170923 421760 99999 ROHTAK IN 28.833000000000002 76.583 222.0 20010728 20170923 421770 99999 NARNAUL IN 28.0 76.083 308.0 20020219 20170923 421780 99999 GURGAON IN 28.416999999999998 77.0 224.0 20010718 20010807 421810 99999 INDIRA GANDHI INTL IN VIDP 28.566999999999997 77.10300000000001 236.8 19750307 20170923 421820 99999 SAFDARJUNG IN VIDD 28.585 77.206 214.9 19420702 20170923 421830 99999 BULANDSHAHR IN 28.4 77.867 218.0 20010823 20170223 421870 99999 MORADABAD IN 28.833000000000002 78.75 202.0 19830915 20170923 421880 99999 RAMPUR IN 28.75 79.0 191.0 19990709 20020927 421890 99999 BAREILLY IN VIBY 28.421999999999997 79.45100000000001 176.8 19440101 20170923 421900 99999 PILIBHIT IN 28.633000000000003 79.8 188.0 20020725 20020725 422060 99999 HALDIA IN 22.066999999999997 88.06700000000001 11.0 20170614 20170614 422120 99999 19440101 19481231 422200 99999 PASIGHAT IN 28.1 95.383 157.0 19740403 20170923 422370 99999 PHALODI IN 27.133000000000003 72.367 234.0 19440101 20170923 422420 99999 NAGAUR IN 27.166999999999998 73.667 298.0 20010723 20030215 422490 99999 SIKAR IN 27.616999999999997 75.133 433.0 19730101 20170923 422550 99999 ALWAR IN 27.5 76.583 271.0 19730101 20170923 422570 99999 MATHURA IN 27.5 77.683 174.0 20020418 20021216 422580 99999 BHARATPUR IN 27.217 77.5 176.0 20020214 20030118 422600 99999 AGRA IN VIAG 27.156 77.961 167.9 19420824 20170923 422610 99999 AGRA IN 27.166999999999998 78.033 169.0 19440101 20021224 422620 99999 ALIGARH IN 27.883000000000003 78.067 187.0 19730101 20170923 422650 99999 MAINPURI IN 27.233 79.05 157.0 19440101 20030120 422660 99999 SHAHJAHANPUR IN 27.883000000000003 79.9 155.0 20090205 20170923 422700 99999 KHERI IN 27.9 80.8 147.0 19730101 20170808 422710 99999 HARDOI IN 27.383000000000003 80.167 142.0 19730101 20170923 422730 99999 BAHRAICH IN 27.566999999999997 81.6 124.0 19440101 20170923 422740 99999 GONDA IN 27.133000000000003 81.96700000000001 110.0 19730101 20160613 422790 99999 BASTI IN 26.8 82.73299999999999 89.0 20160804 20170731 422820 99999 NAUTANWA IN 27.433000000000003 83.417 99.0 19730101 20030304 422890 99999 19570104 19621227 422950 99999 DARJEELING IN 27.05 88.26700000000001 2128.0 19440101 20170608 422960 99999 KALIMPONG IN 27.066999999999997 88.46700000000001 1209.0 20151207 20170923 422990 99999 GANGTOK IN 27.333000000000002 88.617 1756.0 19740902 20170923 423050 99999 BOMDILA IN 27.416999999999998 92.85 2484.0 20020727 20050401 423090 99999 LILABARI IN VELR 27.295 94.098 100.6 19431223 20170923 423110 99999 SIBSAGAR IN 26.983 94.633 97.0 19440101 20160117 423120 99999 ZIRO IN 27.916999999999998 94.8 1476.0 20010802 20021210 423140 99999 DIBRUGARH IN VEMN 27.484 95.01700000000001 110.3 19420714 20170923 423160 99999 DIGBOI IN 27.383000000000003 95.617 143.0 19440901 20160805 423280 99999 JAISALMER IN 26.9 70.917 231.0 19730101 20170923 423390 99999 JODHPUR IN VIJO 26.250999999999998 73.04899999999999 218.5 19430731 20170923 423430 99999 AJMER IN 26.45 74.617 486.0 19440101 20170923 423480 99999 JAIPUR IN VIJP 26.824 75.812 385.0 19440101 20170923 423490 99999 TONK IN 26.166999999999998 75.75 272.0 19990514 20160718 423540 99999 DHOLPUR IN 26.666999999999998 77.833 176.0 19730101 20090205 423580 99999 BHIND IN 26.566999999999997 78.8 168.0 20020328 20021208 423610 99999 GWALIOR IN VIGR 26.293000000000003 78.22800000000001 188.1 19440101 20170923 423630 99999 MISSISSIPPI CANYON OIL PLATFORM US LA 28.16 -89.22 37.0 20130206 20160618 423640 99999 ETAWAH IN 26.733 78.983 151.0 20010711 20170730 423660 99999 KANPUR IN 26.433000000000003 80.367 125.0 19450621 20030621 423670 99999 KANPUR CHAKERI IN VICX 26.404 80.41 123.4 19440101 20170923 423680 99999 LUCKNOW IN 26.866999999999997 80.933 111.0 19730101 20161218 423690 99999 LUCKNOW IN VILK 26.761 80.889 125.0 19440101 20170923 423720 99999 FURSATGANJ IN 26.25 81.367 116.0 20130529 20170923 423740 99999 FAIZABAD IN 26.75 82.083 102.0 20020203 20161209 423750 99999 SULTANPUR IN 26.25 82.0 97.0 19990614 20160416 423790 99999 GORAKHPUR IN VEGK 26.74 83.45 78.9 19440101 20170923 423810 99999 AZAMGARH IN 26.05 83.21700000000001 78.0 19730101 19800626 423820 99999 RAXAUL IN 26.983 84.85 79.0 19730101 20160914 423830 99999 MOTIHARI IN 26.666999999999998 84.917 66.0 19440101 20160930 423870 99999 MUZAFFARPUR IN 26.116999999999997 85.4 53.0 19740515 20170923 423900 99999 MUZAFFARPUR AERODROME IN 26.116999999999997 85.31700000000001 53.0 20011029 20170327 423910 99999 DARBHANGA IN 26.166999999999998 85.9 49.0 19440101 20170923 423930 99999 SUPAUL IN 26.133000000000003 86.583 50.0 20010905 20170923 423950 99999 FORBESGANJ IN 26.3 87.26700000000001 61.0 19730101 20170923 423970 99999 SILIGURI IN 26.666999999999998 88.367 123.0 19990213 20161220 423980 99999 BAGDOGRA IN VEBD 26.680999999999997 88.329 125.6 19570618 20170923 423990 99999 JALPAIGURI IN 26.533 88.71700000000001 83.0 19440101 20170923 424030 99999 COOCH BEHAR IN 26.333000000000002 89.46700000000001 43.0 19430220 20170923 424040 99999 DHUBRI IN 26.017 89.98299999999999 36.0 19440101 20170923 424060 99999 DHUBRI/RUPSI IN 26.15 89.917 45.0 19450630 19450930 424070 99999 GOALPARA IN 26.183000000000003 90.633 38.0 19730102 20170923 424080 99999 RANGIA IN 26.433000000000003 91.617 60.0 20151207 20170923 424090 99999 TANGLA IN 26.65 91.917 65.0 19740221 20170923 424100 99999 GUWAHATI INTL IN VEGT 26.105999999999998 91.586 49.4 19440102 20170923 424130 99999 MAJBAT IN 26.75 92.35 120.0 20011009 20170923 424140 99999 CHAPARMUKH IN 26.2 92.51700000000001 66.0 19730103 20170923 424150 99999 TEZPUR IN 26.616999999999997 92.78299999999999 79.0 19440101 20170923 424160 99999 TEZPUR/BINDUKURI IN 26.717 92.8 75.0 19430510 19801101 424190 99999 GOHPUR IN 26.833000000000002 93.583 82.0 19831028 20071017 424200 99999 GOLAGHAT IN 26.517 93.98299999999999 95.0 19740806 20170923 424230 99999 JORHAT IN 26.066999999999997 90.167 880.0 19430414 20170923 424231 99999 JORHAT IN VEJT 26.732 94.176 94.8 20160807 20170105 424350 99999 BARMER IN 25.75 71.383 194.0 19440101 20170923 424390 99999 JALORE IN 25.35 72.617 168.0 20151208 20170609 424410 99999 ERINPURA /JAWAI DAM SITE IN 25.083000000000002 73.083 295.0 19450801 20170923 424470 99999 BHILWARA IN 25.35 74.633 425.0 20020917 20170923 424500 99999 BUNDI IN 25.45 75.633 267.0 20030202 20170923 424510 99999 KOTA-IN-RAJASTHAN IN 25.183000000000003 75.85 256.0 19440101 19780502 424520 99999 KOTA IN VIKO 25.16 75.846 273.1 19730101 20170923 424530 99999 SAWAI MADHOPUR IN 25.983 76.367 264.0 20010822 20170923 424560 99999 SHEOPUR IN 25.666999999999998 76.683 235.0 19730101 20170923 424590 99999 SHIVPURI IN 25.333000000000002 77.65 464.0 20020528 20170923 424600 99999 DATIA IN 25.666999999999998 78.467 229.0 20020417 20170923 424630 99999 JHANSI IN VIJN 25.491 78.558 244.1 19440101 20170923 424670 99999 NOWGONG IN 25.066999999999997 79.45 229.0 19440101 20170923 424680 99999 ORAI IN 25.983 79.5 141.0 20030216 20170923 424690 99999 HAMIRPUR IN 25.95 80.15 109.0 20090205 20170923 424710 99999 FATEHPUR IN 25.933000000000003 80.833 114.0 19730101 20170523 424720 99999 PRATAPGARH IN 25.9 81.95 99.0 20161018 20161018 424730 99999 BANDA IN 25.467 80.367 121.0 20040902 20170923 424750 99999 ALLAHABAD IN VIAL 25.441 81.735 98.1 19420727 20170720 424770 99999 JAUNPUR IN 25.75 82.68299999999999 80.0 20170531 20170531 424790 99999 LAL BAHADUR SHASTRI IN VEBN 25.45 82.867 81.1 19730101 20170923 424820 99999 GHAZIPUR IN 25.4 83.55 67.0 20010718 20170922 424830 99999 VARANASI IN 25.3 83.01700000000001 90.0 19440101 20170923 424840 99999 BALLIA IN 25.75 84.167 64.0 20020217 20170729 424870 99999 ARRAH IN 25.566999999999997 84.667 58.0 20170508 20170508 424880 99999 CHAPRA IN 25.783 84.73299999999999 58.0 20051019 20170923 424920 99999 PATNA IN VEPT 25.590999999999998 85.088 51.8 19440101 20170923 424980 99999 BHAGALPUR IN 25.233 86.95 49.0 19570102 20170923 424990 99999 SABAUR IN 25.233 87.06700000000001 37.0 20020614 20170923 425000 99999 PURNEA IN 25.267 87.46700000000001 38.0 19440101 20170923 425030 99999 MALDA IN 25.033 88.133 31.0 19730101 20170923 425060 99999 BALURGHAT IN 25.217 88.78299999999999 26.0 20030414 20170923 425110 99999 TURA IN 25.517 90.23299999999999 370.0 19730101 20030226 425120 99999 SHILLONG ARPT/UMROI ARPT IN VEBI 25.7 91.98299999999999 891.2 20151208 20170923 425150 99999 CHERRAPUNJI IN 25.25 91.73299999999999 1313.0 19440101 20170923 425160 99999 SHILLONG IN 25.566999999999997 91.883 1598.0 19440101 20170923 425220 99999 HAFLONG IN 25.166999999999998 93.01700000000001 682.0 20151207 20170923 425230 99999 LUMDING IN 25.75 93.18299999999999 149.0 19730101 20170923 425270 99999 KOHIMA IN 25.633000000000003 94.167 1406.0 19770923 20170923 425390 99999 DEESA IN 24.2 72.2 136.0 19440101 20170923 425400 99999 MOUNT ABU IN 24.6 72.717 1195.0 19440101 20170923 425420 99999 UDAIPUR IN VAUD 24.618000000000002 73.896 513.3 19750811 20170923 425430 99999 UDAIPUR IN 24.583000000000002 73.7 582.0 19440601 20170701 425460 99999 CHITTORGARH IN 24.883000000000003 74.633 404.0 20090205 20170923 425470 99999 NIMACH IN 24.467 74.9 496.0 19440101 20030622 425520 99999 CHAMBAL/RAWAT BHATA IN 24.916999999999998 75.583 351.0 20040727 20090205 425550 99999 JHALAWAR IN 24.533 76.167 321.0 19440101 20170919 425570 99999 RAJGARH IN 24.0 76.717 382.0 20030117 20170923 425590 99999 GUNA IN 24.65 77.317 478.0 19440101 20170923 425620 99999 TIKAMGARH IN 24.767 78.833 345.0 20030101 20170923 425670 99999 KHAJURAHO IN 24.983 79.917 217.0 20020623 20170923 425700 99999 PANNA IN 24.717 80.167 354.0 20010726 20140828 425710 99999 SATNA IN VIST 24.566999999999997 80.833 317.0 19440101 20170923 425740 99999 REWA IN 24.533 81.3 299.0 20090205 20170923 425770 99999 SIDHI IN 24.416999999999998 81.867 272.0 19730101 20170923 425870 99999 DALTONGANJ IN 24.05 84.06700000000001 221.0 19440101 20170923 425880 99999 DEHRI IN 24.916999999999998 84.18299999999999 107.0 19730101 20170923 425910 99999 GAYA IN VEGY 24.744 84.95100000000001 115.8 19421122 20170923 425950 99999 JAMUI IN 24.933000000000003 86.3 82.0 20120710 20120710 425990 99999 DUMKA IN 24.267 87.25 149.0 19440102 20160420 426030 99999 BERHAMPORE IN 24.133000000000003 88.26700000000001 19.0 19440101 20170923 426180 99999 KAILASHAHAR IN 24.316999999999997 92.0 30.0 19450119 20170923 426190 99999 SILCHAR IN 24.75 92.8 29.0 19440101 20170923 426200 99999 SILCHAR/KUMBHIRGRAM IN 24.916999999999998 92.98299999999999 105.0 19860321 19910723 426230 99999 IMPHAL IN VEIM 24.76 93.897 774.2 19441202 20170923 426310 99999 NALIYA IN 23.25 68.85 21.0 19730101 20170923 426340 99999 BHUJ IN VABJ 23.288 69.67 81.7 19440101 20170923 426380 99999 KANDLA AERODROME IN 23.15 70.117 29.0 20041007 20170923 426390 99999 NEW KANDLA IN 23.0 70.217 14.0 20030727 20170923 426409 99999 MT HOREB IN C96 42.983000000000004 -89.75 370.0 19860331 19860331 426470 99999 AHMEDABAD IN VAAH 23.076999999999998 72.635 57.6 19440101 20170923 426510 99999 IDAR IN 23.833000000000002 73.033 219.0 20090205 20170923 426520 99999 DUNGARPUR IN 23.833000000000002 73.667 291.0 20011122 20021208 426540 99999 GANDHINAGAR IN 23.233 72.717 82.0 20151207 20170923 426550 99999 BANSWARA IN 23.55 74.45 220.0 20021116 20090205 426610 99999 RATLAM IN 23.316999999999997 75.05 486.0 19730101 20170923 426620 99999 UJJAIN IN 23.183000000000003 75.783 489.0 20020615 20170923 426650 99999 SHAJAPUR IN 23.433000000000003 76.317 446.0 20010806 20170923 426670 99999 BHOPAL IN VABP 23.287 77.337 524.0 19440101 20170923 426690 99999 VIDISHA IN 23.533 77.817 430.0 20010713 20010713 426710 99999 SAGAR IN 23.85 78.75 551.0 19440101 20170923 426720 99999 RAISEN IN 23.316999999999997 77.833 440.0 19840225 20170923 426740 99999 DAMOH IN 23.833000000000002 79.45 371.0 20040603 20170923 426750 99999 JABALPUR IN VAJB 23.178 80.05199999999999 495.0 19440101 20170923 426790 99999 UMARIA IN 23.533 80.883 459.0 19730101 20170923 426930 99999 AMBIKAPUR IN 23.166999999999998 83.25 611.0 19730101 20170923 426990 99999 HAZARIBAGH IN 23.983 85.367 611.0 19440101 20110524 427000 99999 RANCHI IN 23.433000000000003 85.4 647.0 19730101 20140203 427010 99999 BIRSA MUNDA IN VERC 23.314 85.322 654.7 19440101 20170923 427030 99999 DHANBAD IN 23.783 86.43299999999999 257.0 20010813 20170103 427040 99999 PANAGARH IN 23.467 87.43299999999999 74.0 19431130 20020805 427050 99999 PURULIA IN 23.333000000000002 86.417 255.0 19440325 20170923 427051 99999 KULLU MANALI IN VIBR 31.877 77.154 1089.1 20040707 20170922 427052 99999 CHANDIGARH IN VICG 30.673000000000002 76.789 308.5 20060812 20170923 427053 99999 LEH IN VILH 34.135999999999996 77.547 3255.9 20060905 20170923 427055 99999 CALICUT IN VOCL 11.137 75.955 104.2 20100125 20170923 427056 99999 BANGALURU INTL AIRPORT IN VOBL 13.2 77.7 915.0 20080721 20170923 427060 99999 BANKURA IN 23.383000000000003 87.083 100.0 20050225 20170923 427070 99999 20010726 20021102 427080 99999 SHANTI NIKETAN IN 23.65 87.7 59.0 20010913 20170923 427090 99999 BURDWAN IN 23.233 87.85 30.0 19440101 20170923 427110 99999 KRISHNANAGAR IN 23.4 88.51700000000001 15.0 19950425 20170923 427140 99999 BAGATI IN 22.983 88.367 12.0 19801206 20170921 427150 99999 MALANJKHAND IN 22.0 80.7 581.0 20011121 20170923 427240 99999 AGARTALA IN VEAT 23.886999999999997 91.24 14.0 19450110 20170923 427260 99999 LENGPUI IN VELP 23.840999999999998 92.62 426.1 20150409 20170923 427270 99999 AIJAL IN 23.733 92.71700000000001 1097.0 19540101 20170923 427275 99999 LENGPUI IN 23.840999999999998 92.62 426.1 20100719 20100719 427290 99999 MANDVI IN 22.816999999999997 69.267 9.0 20010921 20170415 427300 99999 OKHA IN 22.483 69.117 7.0 20011014 20170923 427310 99999 DWARKA IN 22.366999999999997 69.083 11.0 19440101 20170923 427340 99999 JAMNAGAR IN 22.45 70.083 14.0 19730101 19760102 427370 99999 RAJKOT IN VARK 22.309 70.78 134.4 19440101 20170923 427371 99999 RAIPUR IN VARP 21.18 81.73899999999999 317.3 20060416 20161102 427400 99999 SURENDRANAGAR IN 22.733 71.6 74.0 19730101 20170923 427440 99999 VALLABH VIDYANAGAR IN 22.566999999999997 72.933 44.0 19831001 20170923 427470 99999 BARODA IN 22.3 73.25 34.0 19440101 20160404 427480 99999 BARODA AERODROME IN 22.333000000000002 73.267 37.0 20030727 20170923 427500 99999 19870518 19870518 427510 99999 DOHAD IN 22.833000000000002 74.267 333.0 19440101 20170123 427520 99999 DHAR IN 22.6 75.3 583.0 19740724 20170923 427540 99999 DEVI AHILYABAI HOLKAR IN VAID 22.721999999999998 75.801 563.9 19440101 20170923 427630 99999 HOSHANGABAD IN 22.767 77.767 302.0 19440101 20170923 427670 99999 PACHMARHI IN 22.467 78.433 1075.0 19440101 20170923 427680 99999 CHHINDWARA IN 22.1 79.0 685.0 20020814 20170923 427700 99999 NARSINGHPUR IN 22.95 79.183 356.0 20010709 20170923 427710 99999 SEONI IN 22.083000000000002 79.55 619.0 19440101 20170923 427760 99999 MANDLA IN 22.583000000000002 80.367 443.0 20070520 20170923 427790 99999 PENDRA ROAD IN 22.767 81.9 625.0 19440101 20170923 427820 99999 BILASPUR IN VABI 21.988000000000003 82.111 274.0 20110724 20170923 427830 99999 CHAMPA IN 22.033 82.7 245.0 19730101 20090205 427900 99999 JASHPURNAGAR IN 22.883000000000003 84.133 771.0 20011004 20160628 427920 99999 SUNDARGARH IN 22.116999999999997 84.03299999999999 240.0 20020620 20170923 427930 99999 ROURKELA IN 22.217 84.883 196.0 20170815 20170815 427950 99999 CHAIBASA IN 22.55 85.81700000000001 226.0 19440101 20161004 427980 99999 JAMSHEDPUR IN VEJS 22.813000000000002 86.169 153.9 19730101 20170923 427990 99999 JAMSHEDPUR IN 22.816999999999997 86.18299999999999 129.0 19450801 20170304 428020 99999 KALAIKUNDA IN 22.333000000000002 87.21700000000001 62.0 19440115 19451210 428030 99999 MIDNAPORE IN 22.416999999999998 87.31700000000001 45.0 19730101 20170923 428050 99999 ULUBERIA IN 22.5 87.95 5.0 19810506 20170923 428070 99999 CALCUTTA/ALIPORE IN 22.533 88.333 6.0 19440331 20170923 428080 99999 19740821 19740910 428081 99999 CALCUTTA/BARRACKS IN 22.767 88.367 7.0 19440331 19460531 428090 99999 NETAJI SUBHASH CHANDRA BOSE INTL IN VECC 22.655 88.447 4.9 19430831 20170923 428100 99999 BASIRHAT IN 22.65 88.867 4.0 20151207 20170923 428110 99999 DIAMOND HARBOUR IN 22.183000000000003 88.2 7.0 20011015 20170923 428120 99999 CANNING IN 22.25 88.667 4.0 20090205 20170923 428300 99999 PORBANDAR IN 21.65 69.667 5.0 19730101 20170923 428320 99999 KESHOD IN 21.316999999999997 70.317 50.0 20010916 20010916 428340 99999 AMRELI IN 21.6 71.217 115.0 19740517 20170923 428370 99999 MAHUVA IN 21.083000000000002 71.783 9.0 20010711 20170923 428380 99999 BHAUNAGAR IN 21.75 72.2 5.0 19730102 20170923 428390 99999 19440101 19631231 428400 99999 SURAT IN 21.2 72.833 12.0 19440101 20170923 428410 99999 BROACH IN 21.733 73.0 17.0 20011001 20030616 428460 99999 NANDURBAR IN 21.333000000000002 74.25 206.0 20160321 20170803 428490 99999 KHARGONE IN 21.816999999999997 75.617 251.0 20090205 20170923 428510 99999 JALGAON IN 21.05 75.567 201.0 19440101 20170923 428550 99999 KHANDWA IN VAKD 21.833000000000002 76.367 318.0 19440101 20170923 428600 99999 BETUL IN 21.866999999999997 77.933 653.0 19730101 20170923 428660 99999 NAGPUR (MAYO HOSPITAL) IN 21.15 79.117 311.0 19860516 20020630 428670 99999 DR AMBEDKAR INTL IN VANP 21.092 79.047 314.9 19440101 20170923 428710 99999 GONDIA IN 21.467 80.2 313.0 19730101 20170923 428720 99999 MANA IN 21.233 81.65 313.0 20151207 20170923 428740 99999 PBO RAIPUR IN 21.233 81.65 298.0 19960701 20170923 428750 99999 SWAMI VIVEKANANDA IN VERP 21.183000000000003 81.733 317.6 19440101 20170923 428760 99999 DURG IN 21.183000000000003 81.283 293.0 20020315 20170923 428830 99999 SAMBALPUR IN 21.467 83.96700000000001 148.0 19440101 20170923 428840 99999 RAIGARH IN 21.883000000000003 83.383 220.0 19990612 20070520 428860 99999 JHARSUGUDA IN VEJH 21.914 84.05 228.9 19570102 20170923 428910 99999 KEONGJHARGARH IN 21.616999999999997 85.51700000000001 463.0 20010917 20170923 428940 99999 BARIPADA IN 21.933000000000003 86.76700000000001 54.0 20090205 20170923 428950 99999 BALASORE IN 21.517 86.93299999999999 20.0 19440101 20170923 429000 99999 CONTAI IN 21.783 87.75 11.0 20020314 20170923 429010 99999 DIGHA IN 21.616999999999997 87.5 6.0 20031125 20170923 429030 99999 SAGAR ISLAND IN 21.65 88.05 3.0 19440101 20020310 429090 99999 VERAVAL IN 20.9 70.367 8.0 19440101 20170923 429140 99999 DIU APRT IN VADU 20.715 70.922 9.1 20151207 20170923 429150 99999 BULSAR IN 20.616999999999997 72.933 15.0 20030501 20170923 429160 99999 DAMAN IN 20.417 72.85 12.0 19780110 20170419 429200 99999 NASIK OZAR IN 20.133 73.917 599.0 19890430 20170111 429210 99999 NASIK CITY IN 19.967 73.817 598.0 20060202 20170923 429250 99999 MALEGAON IN 20.55 74.533 437.0 19440101 20170923 429310 99999 BULDANA IN 20.533 76.233 650.0 19730101 20170923 429330 99999 AKOLA IN 20.7 77.033 282.0 19440101 20170923 429340 99999 AKOLA IN VAAK 20.699 77.059 304.5 19730101 20160517 429350 99999 WASHIM IN 20.117 77.117 565.0 20090205 20170923 429370 99999 AMRAOTI IN 20.933000000000003 77.783 370.0 19440101 20170923 429390 99999 WARDHA IN 20.666999999999998 78.583 283.0 20070520 20170923 429430 99999 YEOTMAL IN 20.4 78.15 451.0 19730101 20170923 429460 99999 BRAMHAPURI IN 20.6 79.85 229.0 19831018 20170923 429480 99999 RAJNANDGAON IN 21.1 81.033 329.0 20151208 20170923 429530 99999 KANKER IN 20.267 81.483 402.0 19440101 19790713 429610 99999 TITLAGARH IN 20.3 83.3 211.0 19730101 20170923 429630 99999 BOLANGIR IN 20.7 83.5 190.0 20020418 20170323 429660 99999 PHULBANI IN 20.483 84.26700000000001 489.0 20010707 20170923 429690 99999 ANGUL IN 20.833000000000002 85.1 139.0 19730101 20170923 429700 99999 CUTTACK IN 20.467 85.93299999999999 27.0 19440101 20170923 429710 99999 BHUBANESHWAR IN VEBS 20.244 85.818 42.1 19570102 20170923 429730 99999 CHANDBALI IN 20.783 86.73299999999999 6.0 19440101 20170923 429760 99999 PARADIP (C.W.R.) IN 20.3 86.68299999999999 8.0 20020521 20170923 429770 99999 SANDHEADS IN 20.85 88.25 10.0 19440101 20100827 429980 99999 BOGUS INDIAN IN 19840503 20070507 430010 99999 DAHANU IN 19.967 72.717 5.0 19440101 20170923 430020 99999 BOMBAY / JUHU IN 19.117 72.833 3.0 20161012 20161012 430030 99999 CHHATRAPATI SHIVAJI INTL IN VABB 19.089000000000002 72.868 11.3 19440101 20170923 430050 99999 T B I A IN 19.15 72.0 12.0 20170418 20170923 430090 99999 AHMADNAGAR IN 19.083 74.8 657.0 19440101 20170923 430110 99999 BIR IN 19.0 75.717 519.0 20020317 20170922 430120 99999 JALNA IN 19.833 75.8 538.0 20151208 20170923 430130 99999 AURANGABAD IN 19.883 75.333 579.0 19440101 20161029 430140 99999 AURANGABAD IN VAAU 19.863 75.398 582.5 19730101 20170923 430170 99999 PARBHANI IN 19.133 76.833 422.0 19440101 20170923 430190 99999 PUSAD IN 19.917 77.583 332.0 19831018 20160726 430210 99999 NANDED IN 19.083 77.333 358.0 20151207 20170923 430220 99999 PRIYADARSHINI IN 19.75 78.033 457.0 20081111 20081111 430250 99999 ADILABAD IN 19.65 78.533 269.0 19851202 20020815 430290 99999 CHANDRAPUR IN 19.967 79.3 193.0 19440101 20170923 430410 99999 JAGDALPUR IN 19.083 82.03299999999999 553.0 19440101 20170923 430420 99999 BHAWANIPATNA IN 19.917 83.18299999999999 261.0 19810103 20170923 430490 99999 GOPALPUR IN 19.267 84.883 17.0 19440101 20170923 430530 99999 PURI IN 19.8 85.81700000000001 6.0 19730101 20170923 430570 99999 BOMBAY / COLABA IN 18.9 72.817 11.0 20030727 20170923 430580 99999 ALIBAG IN 18.633 72.867 7.0 20020509 20170923 430600 99999 MATHERAN IN 18.983 73.283 695.0 20170604 20170923 430610 99999 KHANDALA IN 18.767 73.367 539.0 19440507 20070522 430620 99999 BHIRA IN 18.45 73.4 96.0 20070520 20170923 430630 99999 PUNE IN 18.533 73.85 558.0 19440101 20170923 430640 99999 PUNE / LOHOGAON AERODROME IN 18.583 73.917 589.0 19880501 20160618 430690 99999 BARAMATI IN 18.15 74.583 551.0 19840213 20020521 430710 99999 JEUR IN 18.2 75.2 521.0 20151208 20170923 430760 99999 UDGIR IN 18.067 77.117 639.0 20151208 20170923 430810 99999 NIZAMABAD IN 18.667 78.1 381.0 19440101 20170923 430830 99999 MEDAK IN 18.05 78.267 472.0 19870905 20170923 430860 99999 RAMGUNDAM IN 18.767 79.433 156.0 19730101 20170923 430870 99999 HANAMKONDA IN 18.017 79.567 269.0 19440101 20161108 430890 99999 SIRONCHA IN 18.85 79.967 123.0 20010812 20030711 430930 99999 BAILADILA IN 18.583 81.233 1144.0 19890521 20160522 430970 99999 KORAPUT IN 18.817 82.71700000000001 913.0 19730113 20170923 431050 99999 KALINGAPATAM IN 18.333 84.133 6.0 19440101 20170923 431090 99999 HARNAI IN 17.817 73.1 20.0 19440101 20170923 431100 99999 RATNAGIRI IN 16.983 73.333 67.0 19440101 20170923 431110 99999 MAHABALESHWAR IN 17.933 73.667 1382.0 19440101 20170923 431130 99999 SATARA IN 17.517 74.05 612.0 20020727 20170923 431170 99999 SHOLAPUR IN VASL 17.628 75.935 482.8 19440101 20170923 431210 99999 GULBARGA IN 17.35 76.85 458.0 19440101 20170923 431250 99999 BIDAR IN VOBR 17.917 77.533 663.0 19440701 20161022 431280 99999 BEGUMPET AIRPORT IN VOHY 17.452 78.461 531.0 19440101 20170923 431285 99999 HYDERABAD INTL AIRPORT IN VOHS 17.233 78.417 617.0 20080721 20170923 431290 99999 19440101 19631231 431300 99999 HAKIMPET IN 17.55 78.517 613.0 19890731 19890731 431330 99999 NALGONDA IN 17.0 79.25 227.0 19771019 20170923 431360 99999 BHADRACHALAM IN 17.667 80.883 54.0 19730104 20170923 431370 99999 KHAMMAM IN 17.25 80.15 112.0 19440101 20170923 431470 99999 TUNI IN 17.35 82.55 35.0 20090204 20170923 431490 99999 VISHAKHAPATNAM CTLZ IN VOVZ 17.717 83.21700000000001 4.6 19540101 20170923 431500 99999 CWC VISHAKHAPATNAM/WALTAIR IN 17.7 83.3 66.0 19440101 20170923 431530 99999 DEVGARH IN 16.383 73.35 36.0 19460801 19860725 431570 99999 KOLHAPUR IN VAKP 16.665 74.289 608.4 19730101 20170923 431580 99999 SANGLI IN 16.85 74.6 549.0 19750906 20170923 431590 99999 19730103 19740630 431600 99999 BAGALKOTE IN 16.7 75.75 524.0 19440101 20160401 431610 99999 BIJAPUR IN 16.817 75.717 594.0 19440101 20170923 431680 99999 MAHABUBNAGAR IN 16.75 78.0 505.0 20090205 20170923 431690 99999 RAICHUR IN 16.2 77.35 400.0 19440101 20170923 431770 99999 RENTACHINTALA IN 16.55 79.55 106.0 19440101 20170923 431800 99999 VIJAYAWADA IN 16.517 80.617 20.0 20010823 20021025 431810 99999 VIJAYAWADA IN VOBZ 16.53 80.797 25.0 19730103 20170923 431820 99999 NANDIGAMA IN 16.783 80.283 51.0 20090205 20170923 431840 99999 NIDADAVOLE IN 16.833 81.583 13.0 20011125 20160120 431850 99999 MACHILIPATNAM/FRANCHPET IN 16.2 81.15 3.0 19540101 20170923 431870 99999 NARSAPUR IN 16.433 81.7 4.0 20040528 20170923 431890 99999 KAKINADA IN 16.95 82.23299999999999 8.0 19440101 20170923 431920 99999 GOA/PANJIM IN 15.482999999999999 73.817 58.4 19730101 20170923 431930 99999 VENGURLA IN 15.867 73.633 16.0 19561031 20170923 431940 99999 GOA INTL IN VOGO 15.380999999999998 73.831 56.1 19730101 20170923 431960 99999 MORMUGAO IN 15.417 73.783 62.0 19440101 20170923 431970 99999 BELGAUM IN 15.85 74.533 753.0 19440101 20170626 431971 99999 BELGAUM AIRPORT IN VOBM 15.85 74.617 747.0 20151207 20170923 431980 99999 BELGAUM IN VABM 15.859000000000002 74.618 758.0 19730101 20170923 432000 99999 DHARWAD IN 15.482999999999999 74.983 678.0 20151208 20170923 432010 99999 GADAG IN 15.417 75.633 650.0 19440101 20170923 432011 99999 HUBLI IN VOHB 15.35 75.083 661.3 20151110 20170913 432050 99999 BELLARY IN 15.15 76.85 449.0 19440101 20170923 432070 99999 PARANGIPETTAI IN 11.5 79.767 3.0 20151207 20170923 432120 99999 NANDYAL IN 15.467 78.483 212.0 20010825 20170314 432130 99999 KURNOOL IN 15.8 78.067 281.0 19440101 20170923 432200 99999 BAPATLA IN 15.9 80.467 6.0 19790416 20170923 432210 99999 ONGOLE IN 15.5 80.083 12.0 19730101 20170923 432250 99999 KARWAR IN 14.783 74.133 4.0 19730101 20170923 432260 99999 HONAVAR IN 14.283 74.45 9.0 19440101 20170923 432270 99999 HAVERI IN 14.783 75.4 573.0 20151208 20170923 432280 99999 KOPPAL IN 15.35 76.15 532.0 20151208 20170923 432290 99999 SHIRALI IN 14.067 74.533 45.0 19771222 20170923 432300 99999 DAVANGERE IN 14.5 75.917 620.0 20151208 20170923 432330 99999 CHITRADURGA IN 14.232999999999999 76.433 733.0 19440101 20170923 432370 99999 PBO ANANTAPUR IN 14.583 77.633 364.0 19540101 20170923 432410 99999 CUDDAPAH IN 14.482999999999999 78.833 130.0 19440101 20130523 432430 99999 KAVALI IN 14.9 79.983 17.0 20040528 20170923 432450 99999 NELLORE IN 14.45 79.983 20.0 19440101 20170923 432570 99999 AGUMBE EMO IN 13.5 75.083 659.0 20010808 20170923 432580 99999 SHIMOGA IN 13.933 75.633 571.0 20010904 20170923 432590 99999 BALEHONUR IN 13.367 75.45 907.0 19851209 20161029 432600 99999 CHICKMAGALUR IN 13.25 75.75 1057.0 20090205 20170910 432630 99999 HASSAN IN 12.967 76.333 955.0 20020522 20170923 432640 99999 CHIKKANAHALLI IN 13.667 77.917 672.0 20151210 20170923 432660 99999 M.O. AGATHI AIRPORT IN 10.85 72.467 3.0 20090205 20170923 432710 99999 AROGYAVARAM IN 13.533 78.5 701.0 19730101 20170923 432720 99999 CHINTAMANI IN 13.2 78.067 857.0 20151208 20170923 432750 99999 TIRUPATHI IN 13.667 79.583 105.0 19860108 20170923 432770 99999 TIRUTTANI IN 13.15 79.533 87.0 19780210 20170923 432780 99999 NUMGAMBAKKAM IN 13.067 80.2 7.0 19870110 20170923 432790 99999 CHENNAI INTL IN VOMM 12.994000000000002 80.181 15.8 19440101 20170923 432830 99999 MANGALORE IN 12.867 74.85 22.0 19440101 19631231 432840 99999 MANGALORE IN VOML 12.960999999999999 74.89 102.7 19730101 20170923 432850 99999 MANGALORE/PANAMBUR IN 12.95 74.833 31.0 19740429 20170923 432870 99999 MADIKERI IN 12.417 75.733 1153.0 19440101 20170923 432890 99999 MANDYA IN 12.5 76.833 695.0 19811012 20170923 432910 99999 MYSORE IN 12.3 76.7 767.0 19440101 20170923 432950 99999 BANGALORE IN 12.967 77.583 921.0 19730101 20170923 432960 99999 BANGALORE/HINDUSTAN AIRPORT IN 12.95 77.633 888.0 19420901 20170923 432990 99999 KOLAR GOLD FIELDS IN 12.95 78.3 882.0 19990207 20170721 433010 99999 DHARMAPURI IN 12.133 78.033 396.0 19771125 20170923 433020 99999 TIRUPPATTUR IN 12.482999999999999 78.567 385.0 20151212 20170911 433025 99999 BANGALORE IN VOBG 12.95 77.668 887.6 20050507 20170923 433030 99999 VELLORE IN VOVR 12.917 79.15 214.0 19440101 20170923 433080 99999 MAHABALIPURAM IN 12.617 80.2 9.0 19760825 19760827 433090 99999 MAYA BANDAR IN 12.917 92.917 28.0 19730101 20170923 433100 99999 LONG ISLAND IN 12.417 92.93299999999999 25.0 20070520 20170923 433110 99999 M.O. AMINI IN 11.117 72.733 3.0 19730101 20170923 433120 99999 AGATTI IN 10.85 72.467 4.0 20020325 20090126 433140 99999 KOZHIKODE IN 11.25 75.783 5.0 19440101 20170923 433150 99999 CANNUR IN 11.833 75.333 18.0 19771015 20170923 433160 99999 NILAMBUR IN 11.283 76.233 31.0 19990225 20000301 433170 99999 UDHAGAMANDALAM IN 11.4 76.733 2249.0 19440101 20170923 433180 99999 COONOOR IN 11.35 76.8 1747.0 19860214 20170923 433190 99999 COIMBATORE IN 11.0 76.967 409.0 19440101 20030606 433200 99999 M.O. KARIPUR AIRPORT IN 11.133 75.95 100.0 20090205 20170923 433210 99999 COIMBATORE IN VOCB 11.030999999999999 77.044 403.6 19730101 20170923 433220 99999 CHAMARAJNAGAR IN 11.933 76.933 760.0 20151208 20170923 433240 99999 ARIYALUR IN 11.167 79.0 747.0 19771101 20021030 433250 99999 SALEM IN 11.65 78.167 278.0 19440101 20170923 433260 99999 KALLAKKURICHCHI IN 11.732999999999999 78.967 127.0 19730101 20170331 433270 99999 KARAIKUDI IN 10.067 78.8 92.0 19760323 20170518 433280 99999 PONDICHERRY IN 11.917 79.833 6.0 20020305 20030528 433290 99999 CUDDALORE IN 11.767000000000001 79.767 12.0 19440101 20170923 433300 99999 THANJAVUR IN 10.783 79.133 68.0 19761009 20170923 433310 99999 M.O. PONDICHERRY IN 11.967 79.817 38.0 20090204 20170923 433330 99999 PORT BLAIR IN VEPB 11.667 92.71700000000001 79.0 19451101 20170923 433340 99999 ANDROTH IN 10.8 73.983 5.0 20020807 20021002 433350 99999 PALAKKAD IN 10.767000000000001 76.65 97.0 19440101 20170923 433360 99999 COCHIN INT. AIRPORT NEDUMBASSERY IN 10.15 76.4 7.7 20061013 20170923 433370 99999 KAVARATTI ISL IN 10.533 72.617 3.0 20160101 20161013 433390 99999 KODAIKANAL IN 10.232999999999999 77.467 2343.0 19440101 20170923 433400 99999 YERCAUD IN 11.75 78.167 1463.0 20151207 20170923 433410 99999 VALPARAI IN 10.283 77.0 1041.0 20151207 20170923 433420 99999 K. PARAMATHY IN 10.95 78.083 181.0 19780731 20170923 433430 99999 TIRUCHIRAPALLI TOWN IN 10.767000000000001 78.717 88.0 20160205 20170818 433440 99999 TIRUCHIRAPPALLI IN VOTR 10.765 78.71 87.8 19440101 20170923 433450 99999 KUDIMIAMALAI IN 10.4 78.667 123.0 20151211 20160125 433460 99999 KARAIKAL IN 10.917 79.833 7.0 19990412 20170923 433470 99999 NAGAPPATTINAM IN 10.767000000000001 79.85 9.0 19440101 20170923 433480 99999 ATIRAMAPATTINAM IN 10.333 79.383 6.0 20030727 20170923 433490 99999 VEDARANNIYAM IN 10.367 79.85 4.0 19990908 20090205 433510 99999 FORT COCHIN IN 9.967 76.233 3.0 19540101 20011006 433520 99999 ALAPUZHA IN 9.55 76.417 4.0 19440701 20170923 433530 99999 COCHIN IN VOCC 9.946 76.27199999999999 2.4 19440101 20170923 433540 99999 PUNALUR IN 9.0 76.917 34.0 20020827 20170923 433550 99999 KOTTAYAM IN 9.533 76.6 78.0 20010707 20170923 433560 99999 PERIAKULAM IN 10.0 77.133 300.0 20151207 20170923 433570 99999 THRISSUR IN 10.517000000000001 76.217 39.0 20151207 20170923 433580 99999 KOVILANGULAM IN 9.55 78.083 103.0 20151208 20170923 433590 99999 MADURAI IN 9.917 78.117 133.0 19730101 20170923 433600 99999 MADURAI IN VOMD 9.835 78.093 139.9 19440101 20170923 433610 99999 TONDI IN 9.732999999999999 79.033 5.0 20030727 20170923 433630 99999 PAMBAN IN 9.283 79.217 11.0 19440101 20170923 433640 99999 HUT BAY IN 10.583 92.55 5.0 20020604 20170923 433670 99999 CAR NICOBAR IN 9.167 92.833 10.0 19730101 20170923 433680 99999 CAR NICOBAR(IN-AFB) IN VECX 9.15 92.81700000000001 14.0 19730101 20170812 433690 99999 MINICOY IN 8.3 73.15 2.0 19440101 20170923 433710 99999 THIRUVANANTHAPURAM IN 8.482999999999999 76.95 64.0 19440101 20170923 433720 99999 THIRUVANANTHAPURAM INTL IN VOTV 8.482000000000001 76.92 4.6 19960201 20170923 433730 99999 TRIVANDRUM MET.OBS./THUMBA IN 8.533 76.867 7.0 20030304 20030304 433740 99999 KOVALAM IN 8.083 77.25 35.0 20011027 20011027 433760 99999 PALAYANKOTTAI IN 8.732999999999999 77.75 51.0 19730101 20170923 433770 99999 KANNIYAKUMARI IN 8.083 77.5 37.0 19800710 20170923 433790 99999 TUTICORIN NEW PORT IN 8.75 78.183 2.0 20090205 20170923 433820 99999 NANCOWRY IN 7.983 93.53299999999999 26.0 19730101 20170923 433850 99999 KONDUL IN 7.2170000000000005 93.73299999999999 8.0 19730101 20030727 433950 99999 MALE ISLAND IN 4.167 73.5 6.0 19740730 19811214 433990 99999 PARO BT VQPR 27.403000000000002 89.425 2234.8 20101206 20170923 434000 99999 KANKASANTURAI CE 9.8 80.067 15.0 19560104 20100413 434040 99999 JAFFNA CE 9.65 80.017 3.0 20010820 20170923 434100 99999 MULLAITTIVU CE 9.267000000000001 80.817 2.0 19840105 20161214 434130 99999 MANNAR CE 8.982999999999999 79.917 3.0 19570701 20170923 434150 99999 VAVUNIYA CE 8.75 80.5 98.0 20020326 20170923 434180 99999 CHINA BAY CE VCCT 8.539 81.182 1.8 19450801 20170923 434210 99999 ANURADHAPURA CE VCCA 8.301 80.428 98.8 19620101 20170923 434220 99999 MAHA ILLUPPALLAMA CE 8.117 80.467 117.0 19990909 20170923 434240 99999 PUTTALAM CE 8.033 79.833 2.0 19590112 20170923 434360 99999 BATTICALOA CE VCCB 7.706 81.679 6.1 19570701 20170923 434410 99999 KURUNEGALA CE 7.4670000000000005 80.367 116.0 20030112 20170923 434440 99999 KANDY CE 7.332999999999999 80.633 477.0 20030111 20170923 434500 99999 BANDARANAIKE INTL COLOMBO CE VCBI 7.181 79.866 8.8 19620101 20170923 434660 99999 COLOMBO CE 6.9 79.867 7.0 19440101 20170923 434670 99999 COLOMBO RATMALANA CE VCCC 6.822 79.88600000000001 6.7 19440513 20170923 434730 99999 NUWARA ELIYA CE 6.9670000000000005 80.767 1880.0 19570701 20170923 434750 99999 POTTUVIL CE 6.882999999999999 81.833 8.0 20070619 20170923 434760 99999 DIYATALAWA CE 6.817 80.967 1250.0 20050714 20170923 434780 99999 BOGUS SRI LANKAN CE 19840612 20030701 434790 99999 BADULLA CE 6.983 81.05 667.0 20030112 20170923 434860 99999 RATNAPURA CE 6.683 80.4 88.0 20020116 20170923 434950 99999 GALLE CE 6.0329999999999995 80.217 13.0 20020116 20170923 434970 99999 HAMBANTOTA CE VCRI 6.117000000000001 81.133 20.0 19450801 20170923 435170 99999 19440101 19601108 435330 99999 HANIMAADHOO MV 6.733 73.167 2.0 19930501 20170923 435360 99999 19550506 19630930 435400 99999 BOGUS MALDIVIAN MV 19440101 19860729 435410 99999 SONAMARG & IN 34.317 75.317 2515.0 19440101 19631112 435420 99999 DRAS IN 34.433 75.767 3066.0 19550430 19631230 435440 99999 19440101 19630630 435550 99999 MALE INTL MV VRMM 4.192 73.529 1.8 19810101 20170923 435770 99999 KADHDHOO MV 1.883 73.5 2.0 19940301 20170923 435775 99999 GAN ISLAND MV VRMG -0.7 73.15 2.0 20060817 20090828 435880 99999 KAADEDHDHOO MV 0.483 72.983 2.0 20010916 20170923 435990 99999 GAN ISLAND MV VRMG -0.693 73.156 1.8 19811001 20170923 436040 99999 19550110 19631231 438150 99999 19440101 19481231 438470 99999 19870511 19870511 442030 99999 RINCHINLHUMBE MG 51.117 99.667 1583.0 19830421 20170923 442031 99999 TUERHTU EAST MG 51.516999999999996 100.68299999999999 1724.0 19740419 19821124 442070 99999 HATGAL MG 50.433 100.15 1668.0 19630301 20170923 442080 99999 BOGUS MONGOLIAN MG 19890602 20051115 442100 99999 NOGOONNUUR MG 49.6 90.35 1480.0 20070822 20170923 442120 99999 ULAANGOM MG 49.8 92.083 939.0 19570701 20170923 442130 99999 BARUUNTURUUN MG 49.65 94.4 1232.0 19830102 20170923 442131 99999 KHYARGAS SOUTHWEST MG 49.533 93.8 2050.0 19730103 19821227 442140 99999 ULGI MG 48.933 89.93299999999999 1715.0 19590101 20170923 442150 99999 OMNO-GOBI MG 49.016999999999996 91.71700000000001 1590.0 19730101 20170923 442160 99999 HUNHATAOORTOO MG 48.817 93.1 1051.0 19751001 20170923 442170 99999 TOLBO MG 48.417 90.3 2101.0 19730401 20170923 442180 99999 HOVD MG 48.016999999999996 91.56700000000001 1405.0 19561016 20170923 442190 99999 URGAMAL MG 48.516999999999996 94.3 1263.0 19750109 20170923 442210 99999 GANDAN HURYEE MG 49.65 95.78299999999999 1421.0 19730401 20170923 442240 99999 TSETSEN UUL MG 48.766999999999996 96.0 1928.0 19751003 20170923 442250 99999 TOSONTSENGEL MG ZMTL 48.733000000000004 98.2 1723.0 19690101 20170923 442251 99999 TOSONTSENGEL MG 48.739 98.29700000000001 1709.0 19730101 19800215 442290 99999 TARIAT MG 48.083 99.55 2041.0 19730101 20170923 442300 99999 TARIALAN MG 49.567 102.0 1235.0 19830112 20170923 442301 99999 TESHIG SOUTHWEST MG 49.95 102.6 1070.0 19730102 19821124 442310 99999 MUREN MG 49.633 100.167 1283.0 19560802 20170923 442320 99999 HUTAG MG 49.383 102.7 938.0 19630301 20170923 442360 99999 NAME AND LOC UNKN MG 48.85 103.51700000000001 -999.0 19731004 20170124 442370 99999 ERDENEMANDAL MG 48.533 101.383 1509.0 19830102 20170923 442371 99999 ONDOR-ULAAN NW MG 48.05 100.48299999999999 1989.0 19730103 19821230 442380 99999 BOGUS MONGOLIAN MG 19890510 20021122 442390 99999 BULGAN MG 48.8 103.55 1208.0 19560805 20170923 442400 99999 BATA SUMBER MG 48.417 106.71700000000001 630.0 19690101 20170124 442410 99999 BARUUNHARAA MG 48.917 106.06700000000001 807.0 19560802 20170923 442420 99999 HADATYN MG 49.45 107.2 762.0 19730102 20170923 442430 99999 ULYGAIIN DUGANG MG 49.833 107.73299999999999 883.0 19730101 20170923 442450 99999 DZUUNHARAA MG 48.867 106.46700000000001 895.0 19740419 20170124 442540 99999 TATAAL MG 48.85 111.45 994.0 19630301 20170923 442560 99999 DASHBALBAR MG 49.55 114.4 705.0 19831201 20170923 442570 99999 BINDER MG 48.617 110.6 747.0 19560803 20170923 442580 99999 KHOLONBUIR NE MG 48.033 113.25 824.0 19631002 19631227 442590 99999 CHOIBALSAN MG 48.083 114.55 747.0 19560802 20170923 442640 99999 BULGAN MG 46.083 91.53299999999999 1190.0 19750521 20170124 442650 99999 BAITAG MG 46.117 91.46700000000001 1186.0 19630301 20170923 442652 99999 19730101 19790805 442660 99999 TONHIL MG 46.317 93.9 2095.0 19731004 20170923 442720 99999 ULIASTAI MG 47.75 96.85 1759.0 19560901 20170923 442730 99999 BULENII HURYEE WEST MG 47.667 99.0 2523.0 19740425 19740817 442750 99999 BAYANBULAG MG 46.833 98.083 2255.0 19831011 20170923 442752 99999 19741127 19800830 442770 99999 ALTAI MG 46.4 96.25 2181.0 19560802 20170923 442780 99999 DELGER MG 46.367 97.367 1793.0 19731004 20020930 442820 99999 TSETSERLEG MG 47.45 101.46700000000001 1691.0 19560803 20170923 442840 99999 GALUUT MG 46.7 100.133 2126.0 19570725 20170923 442850 99999 HUJIRT MG 46.9 102.76700000000001 1662.0 19580410 20170923 442860 99999 BAT OLDZIY BUND MG 46.967 103.8 1358.0 19730103 20170923 442870 99999 BAYANHONGOR MG 46.133 100.68299999999999 1859.0 19630301 20170923 442880 99999 ARVAIHEER MG 46.266999999999996 102.78299999999999 1813.0 19560802 20170923 442900 99999 LUNG MG 47.867 105.25 1530.0 19560802 20170124 442910 99999 SONGIIN MG 47.85 106.75 1272.0 20070822 20170923 442920 99999 CHINGGIS KHAAN INTL MG ZMUB 47.843 106.76700000000001 1330.1 19560802 20170923 442930 99999 HERELENGIIN DEN NE MG 47.833 108.5 1319.0 19560803 19581231 442940 99999 MAANTI MG 47.3 107.48299999999999 1430.0 19560821 20170923 442970 99999 DELGERTSGOT MG 46.117 106.383 1405.0 19740421 20170124 442980 99999 CHOIR MG 46.45 108.21700000000001 1286.0 19560802 20170923 443010 99999 BOGUS MONGOLIAN MG 19890201 20020518 443020 99999 BAYAN-OVOO MG 47.783 112.117 926.0 19690101 20170923 443021 99999 19730101 19810526 443040 99999 UNDERKHAAN MG 47.317 110.633 1033.0 19560802 20170923 443050 99999 BARUUN-URT MG 46.683 113.28299999999999 981.0 19600101 20170923 443130 99999 KHALKH-GOL MG 47.617 118.617 688.0 19831011 20170923 443132 99999 HUSHUU SUME SOUTH MG 47.333 119.03299999999999 1067.0 19730401 19810806 443140 99999 MATAD MG 47.167 115.633 907.0 19750808 20170923 443150 99999 19730108 19751223 443170 99999 ERDENETSAGAAN MG 45.9 115.367 1076.0 19730101 20170923 443190 99999 19870519 19870519 443250 99999 ERDENI MG 45.15 97.76700000000001 2417.0 19630301 20170923 443290 99999 AMARBUYANTAYN MG 44.617 98.7 2103.0 19731004 20170923 443360 99999 SAIKHAN-OVOO MG 45.45 103.9 1316.0 19831011 20170923 443362 99999 19730101 19781108 443380 99999 BOGD MG 44.65 102.167 1646.0 19750809 20170923 443410 99999 MANDALGOBI MG 45.766999999999996 106.28299999999999 1393.0 19560802 20170923 443470 99999 TSOGT-OVOO MG 44.417 105.31700000000001 1298.0 19690101 20170923 443480 99999 BAYAN DOBO SUMA MG 44.567 107.18299999999999 1093.0 19731129 20170923 443520 99999 BAYANDELGER MG 45.733000000000004 112.367 1101.0 19561031 20170923 443540 99999 SAINSHAND MG 44.9 110.117 938.0 19560802 20170923 443580 99999 ZAMYN-UUD MG 43.733000000000004 111.9 964.0 19560803 20170923 443730 99999 DALANZADGAD MG 43.583 104.417 1465.0 19560802 20170923 443740 99999 SHINE USA MG 42.9 100.21700000000001 1494.0 19730102 20170923 443830 99999 HOVSOGOL MG 43.6 109.65 992.0 19731118 20020613 443850 99999 HANBOGD MG 43.2 107.167 914.0 19751201 20170923 443860 99999 UNKNOWN MONGOLIA MG 43.183 109.21700000000001 213.0 19730102 20170923 443920 99999 BOGUS MONGOLIAN MG 19890703 20020705 444040 99999 DADELDHURA NP 29.3 80.583 1848.0 19780301 20170923 444060 99999 DIPAYAL NP 29.25 80.95 617.0 20051012 20170923 444090 99999 DHANGADHI (ATARIYA) NP 28.8 80.55 187.0 20051012 20170923 444160 99999 SURKHET NP VNSK 28.6 81.617 720.0 19761101 20170923 444180 99999 NEPALGUNJ AIRPORT NP 28.1 81.667 165.0 20051012 20170923 444240 99999 JUMLA NP VNJL 29.283 82.167 2300.0 19750913 20170923 444290 99999 DANG NP 28.05 82.5 634.0 20051012 20170923 444340 99999 POKHARA NP VNPK 28.201 83.98100000000001 826.6 19770207 20170923 444380 99999 BHAIRAHAWA NP VNBW 27.506 83.416 109.1 19770302 20170923 444490 99999 SIMARA NP VNSI 27.159000000000002 84.98 137.2 19740110 20170923 444540 99999 TRIBHUVAN INTL NP VNKT 27.697 85.359 1338.1 19730521 20170923 444600 99999 JIRI NP VNJI 27.633000000000003 86.23299999999999 2003.0 19780722 19780722 444610 99999 SYANGBOCHE NP 27.816999999999997 86.71700000000001 3700.0 19761101 19800210 444620 99999 OKHALDHUNGA NP 27.3 86.5 1720.0 19761101 20170923 444740 99999 TAPLEJUNG NP VNTJ 27.35 87.667 1732.0 19780701 20170923 444770 99999 DHANKUTA NP 26.983 87.35 1210.0 19761101 20170923 444780 99999 BIRATNAGAR NP VNVT 26.480999999999998 87.264 71.9 19770208 20170923 445460 99999 DRIFTER 44546 20130401 20161002 446100 99999 DRIFTER 44610 20131210 20150101 446160 99999 DRIFTER 44616 20130310 20131201 448490 99999 DRIFTER 44849 / ARGOS 83397 20140125 20160113 450010 99999 CHEUNG CHAU CH VHCH 22.2 114.01700000000001 79.0 19730101 20020513 450020 99999 19530101 19560331 450030 99999 TAI-O CH 22.25 113.85 76.0 19770514 20020820 450040 99999 KOWLOON CH 22.311999999999998 114.17299999999999 66.4 19791102 20010714 450050 99999 HONG KONG OBSERVATORY CH 22.3 114.167 62.0 19460901 20000223 450060 99999 GREEN ISLAND CH 22.283 114.117 76.0 20010707 20010707 450070 99999 HONG KONG INTL HK VHHH 22.309 113.915 8.5 19481231 20170923 450080 99999 19730101 19740430 450090 99999 TAI MO SHAN CH 22.416999999999998 114.117 947.0 19471231 19560331 450100 99999 TATE'S CAIRN CH 22.366999999999997 114.21700000000001 576.0 20011226 20011226 450110 99999 MACAU INTL MC VMMC 22.15 113.59200000000001 6.1 19510320 20170923 450200 99999 MACAO/FORTALEZA DO MONTE MC 22.183000000000003 113.53299999999999 59.0 20120823 20120823 450320 99999 TA KWU LING CH 22.533 114.15 13.0 19921204 20170923 450330 99999 KAT O CH 22.533 114.3 10.0 19921204 19990604 450340 99999 TAI MEI TUK CH 22.483 114.23299999999999 53.0 19921204 19960405 450350 99999 LAU FAU SHAN CH 22.467 113.98299999999999 35.0 20040713 20170923 450390 99999 SHA TIN CH 22.4 114.2 8.0 20040713 20170923 450410 99999 TSEUNG KAWN O CH 22.316999999999997 114.25 32.0 20040604 20040604 450440 99999 CHEUNG CHAU CH 22.2 114.01700000000001 79.0 20020313 20170923 450450 99999 WAGLAN ISLAND CH 22.183000000000003 114.3 60.0 20040122 20170923 459090 99999 19870518 19870518 465390 99999 DRIFTER 46539 / ARGOS 63828 20130308 20151124 465660 99999 DRIFTER 46566 / ARGOS 63832 20130307 20170923 465890 99999 HSIA-TA-CHEN SHAN CHINA SEA CH 28.416999999999998 121.917 35.7 19540516 19550131 466860 99999 CHIANG KAI SHEK INTL TW RCTP 25.078000000000003 121.23299999999999 32.6 19790301 20170923 466880 99999 MATSU TW 26.233 120.0 8.0 19730101 19730901 466888 99999 BEIGAN TW RCMT 26.224 120.00299999999999 12.5 19990114 20001231 466890 99999 NANGAN TW RCFG 26.16 119.958 68.0 19540517 19991017 466900 99999 TANSHUI TW 25.166999999999998 121.43299999999999 19.0 19730101 19780629 466920 99999 TAIBEI TW 25.033 121.51700000000001 9.0 19730101 20110213 466940 99999 CHILUNG TW 25.15 121.8 3.0 19730101 19981231 466950 99999 PENGJIA YU(=589740) TW 25.633000000000003 122.06700000000001 102.0 19730101 19981231 466960 99999 SUNGSHAN TW RCSS 25.069000000000003 121.552 5.5 19461231 20170923 466970 99999 TAOYUAN TW RCGM 25.055999999999997 121.243 46.0 19491231 20001231 466990 99999 HUA-LIEN CITY TW 23.983 121.6 19.0 19730101 19981231 467060 99999 SUAO MET STATION TW 24.6 121.85 3.0 19820101 19981231 467080 99999 ILAN CITY TW 24.75 121.78299999999999 7.0 19730101 20020822 467300 99999 DONGSHI TW RCNO 23.267 119.667 45.0 19730101 20010626 467340 99999 MAGONG TW RCQC 23.569000000000003 119.62799999999999 31.4 19490531 20140228 467350 99999 PENGHU ISLANDS TW 23.5 119.5 21.0 19730101 20091105 467360 99999 SHANG YI TW RCBS 24.428 118.359 28.3 19540516 20020318 467373 99999 BAKUAI/PA KUEI TW 24.933000000000003 121.3 141.0 19880105 19900703 467380 99999 PA KUEI/BAKUAI TW RCUK 24.933000000000003 121.3 141.0 19811101 20010102 467400 99999 KAOHSIUNG INTL TW RCKH 22.576999999999998 120.35 7.9 19730101 20170923 467403 99999 FENGNIN TW RCFN 22.755 121.102 43.6 19820603 20170923 467410 99999 TAINAN (=593580) TW 23.0 120.21700000000001 14.0 19730101 20040607 467425 99999 BOGUS TAIWANESE TW RCLT 19860111 20010101 467430 99999 TAINAN TW RCNN 22.95 120.206 19.2 19471231 20170923 467440 99999 KAOHSIUNG TW 22.633000000000003 120.28299999999999 29.0 19500131 19981231 467450 99999 GANGSHAN TW RCAY 22.783 120.262 10.4 19540516 20091105 467460 99999 CHIAYI TW RCKU 23.462 120.39299999999999 25.9 19490301 20140311 467470 99999 DONGGANG (=595530) TW RCMJ 22.467 120.43299999999999 8.0 19730101 19741030 467480 99999 CHIAYI TW 23.5 120.45 28.0 19540516 20000413 467490 99999 TAICHUNG (=591580) TW 24.15 120.68299999999999 78.0 19730101 19990904 467500 99999 PINGTUNG SOUTH TW RCDC 22.671999999999997 120.462 23.8 19540516 20091106 467510 99999 TAICHUNG TW RCLG 24.186 120.654 115.0 19461231 20001231 467520 99999 HENGCHUN TW RCKW 22.041 120.73 14.0 19490731 20030316 467530 99999 MOUNT ALISAN TW 23.517 120.8 2406.0 19730101 20000219 467540 99999 DAWU TW 22.35 120.9 8.0 19730101 19981231 467550 99999 MOUNT MORRISON TW 23.483 120.95 3850.0 19730101 19981231 467560 99999 HSINCHU TW RCPO 24.818 120.939 7.9 19540516 20100606 467570 99999 HSINCHU CITY TW 24.833000000000002 120.0 27.0 19730101 19981231 467580 99999 PINGTUNG NORTH TW RCSQ 22.7 120.48200000000001 29.6 19730101 20010209 467590 99999 HENGCHUN (=595590) TW 22.0 120.75 24.0 19730101 19981231 467600 99999 JHIHHANG TW RCQS 22.793000000000003 121.182 36.9 19490531 20010703 467610 99999 CHENG-KUNG TW 23.1 121.367 37.0 19730101 19990220 467615 99999 BOGUS TAIWANESE TW RCTM 19860125 19880702 467620 99999 LANYU TW RCLY 22.029 121.53399999999999 13.1 19730102 20030906 467630 99999 HUALIEN TW RCYU 24.023000000000003 121.618 15.8 19461231 20140228 467640 99999 ILAN TW RCMS 24.75 121.76700000000001 9.0 19490930 20020805 467650 99999 JOYUTANG TW 23.883000000000003 120.85 1015.0 19730101 19990221 467660 99999 TAIDONG (=595620) TW 22.75 121.15 10.0 19730101 20010304 467690 99999 LUNG TAN(TAFB) TW 24.866999999999997 121.23299999999999 241.0 19520519 19651231 467700 99999 CHING CHUAN KANG AB TW RCMQ 24.265 120.62100000000001 202.1 19520331 20170923 467710 99999 SHIH-KANG SOUTHEAST TW 24.25 120.8 430.0 19540516 19551231 467720 99999 CHIA TUNG TW RCFS 22.416999999999998 120.55 20.0 19540516 20010101 467770 99999 WU-CHI OBSERVATORY TW 24.25 120.51700000000001 5.0 19780801 19981231 467800 99999 LU-TAO TW 22.683000000000003 121.5 280.0 19860101 20030318 468100 99999 DONGSHA TW RCLM 20.666999999999998 116.71700000000001 6.0 19490111 20000830 468110 99999 PRATAS ISLAND TW 20.717 116.71700000000001 3.0 19730101 19990628 469010 99999 WOODY ISLAND PARACEL IS TW 16.85 112.333 2.4 19490201 19500430 469020 99999 NENSHA ISL(=599970) TW 10.383 114.367 5.0 19490111 19981231 469999 99999 BOGUS TAIWANESE TW RCKK 0.0 0.0 -999.0 19850611 19910323 470030 99999 SENBONG KN 42.317 130.4 3.0 19570202 20170923 470050 99999 SAMJIYON KN 41.817 128.3 1381.0 19760401 20170923 470080 99999 CHONGJIN KN 41.783 129.817 43.0 19570202 20170923 470140 99999 CHUNGGANG KN 41.783 126.883 331.0 19570202 20170923 470160 99999 HYESAN KN 41.4 128.167 714.0 19570202 20170923 470200 99999 KANGGYE KN 40.967 126.6 306.0 19570202 20170923 470220 99999 PUNGSAN KN 40.817 128.15 1200.0 19760401 20170923 470250 99999 KIMCHAEK/SONGJIN KN ZKKC 40.667 129.2 23.0 19570202 20170923 470280 99999 SUPUNG KN 40.45 124.93299999999999 76.0 19760401 20170923 470310 99999 CHANGJIN KN 40.367 127.25 1080.0 19760401 20170923 470311 99999 MEILAN CH ZJHK 19.935 110.459 22.9 20040706 20170923 470312 99999 ZHENGDING CH ZBSJ 38.281 114.697 71.0 20040706 20170923 470350 99999 SINUIJU KN 40.1 124.383 7.0 19570202 20170923 470370 99999 KUSONG KN 39.983000000000004 125.25 99.0 19760401 20170923 470380 99999 BOGUS KOREAN KN 19880403 20020721 470390 99999 HUICHON KN 40.167 126.25 155.0 19760401 20170923 470410 99999 HAMHEUNG KN 39.933 127.55 22.0 19570202 20170923 470420 99999 BOGUS KOREAN KN 19880209 20030109 470460 99999 SINPO KN 40.033 128.183 19.0 19760401 20170923 470500 99999 ANJU KN 39.617 125.65 27.0 19760401 20170923 470520 99999 YANGDOK KN 39.217 126.65 279.0 19760401 20170923 470550 99999 WONSAN KN 39.183 127.43299999999999 36.0 19570202 20170923 470580 99999 PYONGYANG INTL KN ZKPY 39.224000000000004 125.67 35.7 19501024 20170923 470600 99999 NAMPO KN 38.717 125.383 47.0 19760401 20170923 470610 99999 CHANGJON KN 38.733000000000004 128.183 34.0 19760401 20170923 470650 99999 SARIWON KN 38.516999999999996 125.76700000000001 52.0 19570202 20170923 470660 99999 HYUN NI (KOR-ARMY) KS 37.95 128.317 274.0 19510909 19830116 470670 99999 SINGYE KN 38.5 126.53299999999999 97.0 19760401 20170923 470680 99999 RYONGYON KN 38.15 124.883 6.0 19760401 20170923 470690 99999 HAEJU KN 38.033 125.7 81.0 19570202 20170923 470699 99999 CHAJANG NI (K-ARMY) KS 37.867 127.18299999999999 100.0 19790907 19791117 470700 99999 KAESONG KS 37.967 126.56700000000001 70.0 19570202 20170923 470750 99999 PYONGGANG KN 38.417 127.28299999999999 352.0 19760401 20170923 470800 99999 GEOJIN KN 38.45 128.45 107.0 19530502 20020607 470900 99999 SOKCHO KN 38.251 128.565 22.9 19730101 20170923 470910 99999 SOKCHO AIRPORT KN 38.133 128.6 13.0 19730101 19811030 470920 99999 YANGYANG INTL KS RKNY 38.061 128.66899999999998 73.5 20040405 20170923 470950 99999 CHEORWON KN 38.15 127.3 155.0 19880331 20170923 470970 99999 ICHEON KS 37.266999999999996 127.48299999999999 90.0 20090108 20170923 470980 99999 DONGDUCHEON KS 37.9 127.06700000000001 112.0 20010705 20170923 470990 99999 PAJU KS 37.883 126.766 30.0 20030330 20170923 471000 99999 DAEGWALLYEONG KS 37.683 128.717 844.0 19791126 20170923 471010 99999 CHUNCHEON KS 37.9 127.73299999999999 78.0 19510622 20170923 471020 99999 BAENGNYEONGDO KS 37.966 124.63 145.5 19800310 20170923 471025 99999 TAESONG-SAN KS RKSJ 38.2 127.55 1182.0 19541107 20090808 471030 99999 BAENGNYEONGDO AB KS RKSP 37.933 124.667 171.0 19510916 20151106 471033 99999 BOGUS KOREAN KS RKTX 19861002 20050901 471034 99999 YEONPYEUNGDO KS RKSQ 37.7 125.7 91.0 19930702 20090804 471040 99999 A 306 KS RKNC 37.884 127.71799999999999 77.0 19600918 20170923 471050 99999 GANGNEUNG KS 37.771 128.868 26.1 19730101 20170923 471060 99999 CAMP REDCLOUD/UIJD KS RKSB 37.75 127.03299999999999 64.0 19510701 20170923 471064 99999 H 207 HELIPORT KS RKSX 37.719 127.09899999999999 71.3 19790710 20161022 471065 99999 YEONGDONGRI KS 37.783 126.85 24.0 19530501 19840225 471066 99999 CAMP CASEY/TONGDUCH KS RKST 37.917 127.05 60.0 19531023 20060222 471069 99999 PYORIP-SAN KS RKSV 37.783 126.367 248.0 19790907 19890806 471070 99999 GANGNEUNG KS RKNN 37.754 128.944 10.7 19511231 20090811 471074 99999 KEO JIN KS RKNO 38.467 128.467 107.0 19930802 20090709 471080 99999 SEOUL CITY KS RKSL 37.567 126.96700000000001 87.0 19501204 20170923 471084 99999 PYORIPSAN KS RKSV 37.783 126.367 250.0 19930829 20090810 471085 99999 PAEKADO KS RKTB 37.016999999999996 126.05 46.0 19930702 20090806 471086 99999 WOONG CHEON KS RKTW 36.2 126.55 13.0 19930910 20090605 471087 99999 SEOSAN AB KS 36.7 126.48299999999999 12.0 19950911 20070409 471094 99999 WHANG RYEONG KS RKNF 37.75 128.667 1407.0 19930802 20090723 471100 99999 GIMPO KS RKSS 37.558 126.791 17.7 19450930 20170923 471105 99999 H 264 HELIPORT KS RKSY 37.522 126.979 12.2 19730101 20040305 471110 99999 SEOUL AB KS RKSM 37.446 127.11399999999999 28.0 19740101 20170923 471115 99999 KOON-NI RANGE KS 37.033 126.75 15.0 19730101 19731231 471116 99999 SUSAEK AERO KS RKSK 37.6 126.867 52.0 19841106 19900628 471120 99999 INCHEON KS 37.467 126.633 70.0 19730101 20170923 471125 99999 COMMAND POST TANGO KS RKSH 37.516999999999996 126.98299999999999 73.0 19960820 20000817 471130 99999 INCHEON INT'L AIRPORT KS 37.467 126.43299999999999 7.0 19640630 20050322 471131 99999 INCHEON INTL KS RKSI 37.469 126.45100000000001 7.0 20040706 20170923 471140 99999 WONJU KS RKNW 37.438 127.96 100.3 19540424 20170923 471150 99999 ULLEUNGDO KS 37.483000000000004 130.9 220.0 19730101 20170923 471160 99999 GWANAKSAN KS 37.433 126.96700000000001 637.0 19990130 20020116 471165 99999 KOREAN AF HQ KS RKSF 37.5 126.917 49.0 20080912 20090806 471170 99999 SINYONGSAN KS 37.533 126.96700000000001 29.0 19740101 20051101 471180 99999 WONJU AB KS RKNH 38.233000000000004 127.96700000000001 105.5 19510411 20020905 471190 99999 SUWON KS 37.266999999999996 126.98299999999999 35.0 19730101 20170923 471200 99999 SUWON KS RKSW 37.239000000000004 127.007 26.8 19510205 20090811 471204 99999 SV RI SAN KS 37.35 126.917 406.0 19630301 20090607 471205 99999 MAESANRI KS RKSD 37.35 127.26700000000001 144.0 19930910 20090723 471206 99999 19730102 19761221 471207 99999 SEOUL EAST(KOR-AFB) KS 37.433 127.117 20.0 19730101 19731231 471210 99999 YEONGWOL KS 37.183 128.467 237.0 19810604 20170923 471220 99999 OSAN AB KS RKSO 37.091 127.03 11.6 19530109 20170923 471223 99999 KOTAR RANGE KS RKNR 37.1 128.9 792.0 19820624 20090722 471240 99999 SEONGMU KS RKTE 36.568000000000005 127.5 78.6 19910611 20090807 471243 99999 BAEGADO KS 37.083 125.96700000000001 -999.0 19880310 19900504 471250 99999 JUNGWON AB KS RKTI 37.03 127.885 85.6 19920415 20090811 471260 99999 MANGILSAN KS RKTM 36.933 126.45 84.0 19740101 20090806 471263 99999 BOGUS KOREAN KS 19890908 19910319 471270 43216 A511/PYEONGTAEK KS RKSG 36.967 127.03299999999999 16.0 19510313 20170923 471270 99999 A 511/PYEONGTAEK KS RKSG 36.967 127.03299999999999 15.5 20000101 20071231 471275 99999 MANGILSAN (KOR-AFB) KS 36.933 126.45 302.0 19690331 19731231 471280 99999 CHEONGJU INTL KS RKTU 36.717 127.499 58.2 19790315 20170923 471285 99999 CHOCH' IWON KS RKTL 36.567 127.28299999999999 25.0 20010705 20051105 471290 99999 SEOSAN KS 36.766999999999996 126.5 27.0 19730101 20170923 471299 99999 TAESONG-SAN KN 38.2 127.55 1175.0 19790907 19841102 471300 99999 ULJIN KS 37.0 129.417 51.2 19780310 20170923 471310 99999 CHEONGJU KS 36.633 127.45 59.0 19510228 20170923 471315 99999 YEOJU RANGE KS RKSU 37.433 127.633 43.0 19730114 20090510 471320 99999 ANMYEONDO KS RKTD 36.516999999999996 126.31700000000001 43.0 19510131 20070227 471330 99999 TAEJON KS RKTF 36.3 127.4 78.0 19730101 20170923 471340 99999 YECHEON KS RKTY 36.632 128.355 107.9 19770208 20090811 471349 99999 KOJIN NI KS 0.0 0.0 -999.0 19770208 19841120 471350 99999 CHUPUNGNYEONG KS 36.217 127.98299999999999 245.0 19550912 20170923 471360 99999 ANDONG KS RKTA 36.567 128.7 141.6 19830201 20170923 471370 99999 SANGJU KS RKTS 36.417 128.15 97.6 19890501 20170923 471380 99999 POHANG KS 36.033 129.38299999999998 3.6 19730101 20170923 471385 99999 SANGJU KS 36.417 128.167 150.0 19660531 20090604 471390 99999 POHANG KS RKTH 35.988 129.42 21.3 19730101 20161206 471395 99999 MOKPO KS RKJM 34.759 126.38 7.0 20041005 20140104 471400 99999 GUNSAN KS 36.001999999999995 126.76299999999999 26.9 19730101 20170923 471405 99999 JEON JU KS RKJU 35.878 127.12 29.3 19730101 19730626 471410 43219 KUNSAN AB KS RKJK 35.917 126.617 10.0 19510409 20170923 471410 99999 KUNSAN AB KS RKJK 35.904 126.616 8.8 20000101 20071231 471420 99999 DAEGU AB KS RKTN 35.894 128.659 35.4 19501101 20170923 471425 99999 CAMP WALKER (H-805) KS RKTG 35.85 128.583 75.0 19730101 20050216 471430 99999 TAEGU ACC (KOR-AFB) KS RKTT 35.883 128.61700000000002 61.0 19730101 20170923 471440 99999 OSUNGSAN KS 36.0 126.78299999999999 227.0 19990623 20010807 471450 99999 CHEONAN KS 36.763000000000005 127.29299999999999 81.5 20090108 20170923 471460 99999 JEONJU KS 35.833 127.117 62.6 19730101 20170923 471470 99999 GYERYONGDAE KS 36.3 127.21700000000001 145.0 19801225 19810402 471475 99999 BOGUS KOREAN KS RKTV 19841012 19910807 471476 99999 BOGUS KOREAN KS RKTW 19870403 19910807 471480 99999 MYONBONGSAN KS 36.183 129.0 1133.0 20070226 20070227 471500 99999 BORYEONG KS 36.333 126.55 18.0 20090108 20170923 471510 99999 ULSAN AIRPORT KS 35.583 129.35 13.0 19500716 20070227 471511 99999 ULSAN ARPT KS RKPU 35.583 129.35 10.0 19810811 19831206 471520 99999 ULSAN KS RKPU 35.593 129.352 13.7 19730101 20170923 471530 99999 GIMHAE INTL KS RKPK 35.18 128.938 1.8 19540719 20170923 471540 43213 GUMI KS 36.117 128.317 47.0 19730101 19870621 471540 99999 GUMI KS 36.117 128.317 47.0 20090108 20170923 471550 99999 CHANGWON KS 35.17 128.57299999999998 36.8 19860601 20170923 471560 99999 GWANGJU KS 35.167 126.9 74.0 19730101 20170923 471570 99999 GEOCHANG KS 35.667 127.917 226.0 20090108 20170923 471571 99999 CHINHAE (KOR-ARMY) KS RKPE 35.133 128.7 4.0 19670731 19840621 471580 99999 GWANGJU KS RKJJ 35.126 126.809 11.9 19531201 20161206 471590 99999 BUSAN KS RKPP 35.1 129.033 71.0 19730101 20170923 471600 99999 GUDEOKSAN KS 35.117 129.0 532.0 20041104 20041104 471610 43240 SACHEON AB KS RKPS 35.083 128.083 8.0 19730101 20161206 471610 99999 SACHEON AB KS RKPS 35.089 128.07 7.6 20000101 20071231 471620 99999 TONGYEONG KS 34.85 128.433 33.3 19730101 20170923 471630 99999 MUAN INTL AIRPORT KS RKJB 34.983000000000004 126.383 16.0 20080331 20170923 471650 99999 MOKPO KS 34.817 126.383 39.0 19730101 20170923 471660 99999 MOKPO AIRPORT KS 34.766999999999996 126.383 5.0 19740210 19740210 471670 99999 YEOSU KS RKJY 34.842 127.617 16.2 19741117 20161206 471680 99999 YEOSU KS 34.733000000000004 127.75 67.0 19730101 20170923 471690 99999 HEUKSANDO KS 34.687 125.45100000000001 68.5 20010705 20170923 471700 99999 WANDO KS 34.4 126.7 35.0 19830201 20170923 471710 99999 JEONGEUP KS 35.55 126.867 39.0 20090108 20170923 471720 99999 GOCHANG KS 35.349000000000004 126.59899999999999 55.0 20090108 20170923 471730 99999 NAMWON KS 35.417 127.4 132.5 20090108 20170923 471740 99999 SUNCHEON KS 35.016999999999996 127.367 166.9 19890601 20170923 471750 99999 JINDO RADAR KS 34.467 126.333 478.0 20030330 20170923 471790 99999 ULNEUNGDO KS 37.5 130.86700000000002 968.0 19890503 20040202 471820 99999 JEJU INTL KS RKPC 33.510999999999996 126.493 36.0 19730101 20170923 471840 99999 JEJU KS 33.516999999999996 126.53299999999999 23.0 19510131 20170923 471850 43263 GOSAN KS 33.294000000000004 126.163 71.0 19880312 20170923 471850 99999 GOSAN KS 33.294000000000004 126.163 70.9 20000101 20071231 471870 99999 MOSULPO (KOR-AFB) KS RKPM 33.2 126.26700000000001 27.0 19540729 20090724 471880 99999 SEONGSAN KS 33.383 126.867 18.0 20101208 20170923 471890 99999 SEOGWIPO KS 33.25 126.56700000000001 51.0 19730101 20170923 471910 99999 IRI KS 35.917 126.95 8.0 20011002 20030923 471920 99999 JINJU KS 35.167 128.033 29.9 19730101 20170923 471933 99999 SONGMU (KOR-AFB) & KS 36.567 127.5 79.0 19870629 19910611 471963 99999 YEONPYEONGDO KS 34.667 125.68299999999999 -999.0 19880301 19900516 471990 99999 YONG JUNG-RI KS 35.433 126.43299999999999 37.0 19800216 20020810 471999 99999 YONG JUNG-RI KS RKJO 35.433 126.43299999999999 37.0 19730101 19800105 472020 99999 NAYORO-ON-HOKKAIDO JA 44.367 142.467 89.0 19730101 19780804 472025 99999 RISHIRI JA RJER 45.242 141.186 34.1 19750521 20060816 472050 99999 ISHIKARINUMATA JA 43.8 141.95 63.0 19730101 20020602 472070 99999 TAKIKAWA JA 43.567 141.95 48.0 19730102 20011001 472130 99999 FURANO-ON-HOKKAIDO JA 43.333 142.4 174.0 19730101 19780422 472140 99999 YUBARI-ON-HOKKAIDO JA 43.033 141.967 293.0 19730101 19780511 472150 99999 KITAMI-ON-HOKKAIDO JA 43.817 143.917 84.0 19730101 20020207 472160 99999 NUKABIRA JA 43.367 143.2 540.0 19730101 19760901 472180 99999 19730101 19750331 472185 99999 OKUSHIRI JA RJEO 42.073 139.43 54.9 19750521 19990228 472260 99999 19730101 19750401 472310 99999 HIROSAKI-IN-TOHOKU JA 40.617 140.467 30.0 19740503 20020426 472330 99999 TAKANOSU-IN-TOHOKU JA 40.233000000000004 140.38299999999998 29.0 19740503 19770502 472390 99999 YOKOTE JA 39.317 140.55 59.0 19740503 19780219 472410 99999 19740503 19750331 472560 99999 OBANAZAWA JA 38.6 140.417 98.0 19740503 20030129 472590 99999 ICHINOSEKI JA 38.917 141.13299999999998 68.0 19740503 20020601 472630 99999 TADAMI-IN-TOHOKU JA 37.333 139.317 377.0 19731129 20030218 472660 99999 YONEZAWA-IN-TOHOKU JA 37.917 140.11700000000002 239.0 19740503 19770430 472680 99999 KORIYAMA-IN-TOHOKU JA 37.383 140.36700000000002 255.0 19740503 20021220 472720 99999 NAGAOKA-IN-CHUBU JA 37.45 138.85 21.0 19730101 20010708 472760 99999 TONAMI-IN-CHUBU JA 36.633 136.933 50.0 19730101 19740331 472850 99999 19740720 19740831 472900 99999 IKARI JA 36.9 139.7 512.0 20020124 20020124 472940 99999 19740720 19750906 472970 99999 OTAWARA JA 36.867 140.033 213.0 19740720 20020417 473020 99999 ONO-IN-CHUBU JA 35.983000000000004 136.483 175.0 19730101 19780815 473040 99999 SHIROTORI-IN-CHUBU JA 35.867 136.86700000000002 372.0 20010726 20020523 473070 99999 MITAKE JA 35.85 137.63299999999998 870.0 19730101 19760331 473080 99999 HAGIWARA-IN-CHUBU JA 35.867 137.217 431.0 20020104 20040608 473120 99999 ENA-IN-CHUBU JA 35.45 137.4 315.0 20011109 20020909 473150 99999 19730101 19730331 473160 99999 19730101 19750315 473250 99999 MIYAGAWA-IN-KANSAI JA 34.283 136.217 202.0 20011127 20011127 473460 99999 SHOBARA-IN-CHUGOKU JA 34.867 133.033 300.0 20050517 20050517 473530 99999 IKOMAYANA JA 34.667 135.667 633.0 19800706 19840410 473620 99999 OZU-ON-SHIKOKU JA 33.5 132.55 68.0 20011105 20011105 474010 99999 WAKKANAI JA 45.417 141.683 11.7 19521231 20170923 474020 99999 KITAMIESASHI JA 44.933 142.583 8.4 19521231 20170923 474030 99999 YAGISHIRITO (LGT-H) JA 44.433 141.433 40.0 19730101 20040508 474040 99999 HABORO JA 44.367 141.7 9.6 19521231 20170923 474050 99999 OMU JA 44.583 142.967 15.9 19521231 20170923 474060 99999 RUMOI JA 43.95 141.63299999999998 24.3 19521231 20170923 474070 99999 ASAHIKAWA JA 43.75 142.36700000000002 140.0 19521231 20170923 474090 99999 ABASHIRI JA 44.016999999999996 144.283 43.5 19521231 20170923 474110 99999 OTARU JA 43.183 141.017 26.3 19521231 20170923 474120 99999 SAPPORO JA 43.067 141.333 26.2 19521231 20170923 474130 99999 IWAMIZAWA JA 43.217 141.783 51.5 19521231 20170923 474150 99999 SAPPORO/KENASHIYAMA JA 43.133 141.017 700.0 19990109 20010725 474170 99999 OBIHIRO JA 42.917 143.217 43.7 19521231 20170923 474180 99999 KUSHIRO/KENEBETSU JA RJCS 42.983000000000004 144.4 37.0 19521231 20170923 474200 99999 NEMURO JA 43.333 145.583 27.2 19521231 20170923 474210 99999 SUTTSU JA 42.8 140.217 35.1 19521231 20170923 474230 99999 MURORAN/YAKUMO JA RJCY 42.317 140.983 49.0 19521231 20170923 474240 99999 TOMAKOMAI JA 42.617 141.55 7.9 19521231 20170923 474250 99999 NEW CHITOSE JA RJCC 42.775 141.692 25.0 19451031 20170923 474260 99999 URAKAWA JA 42.167 142.783 38.5 19521231 20170923 474270 99999 ERIMO (CAPE/LGT-H) JA 41.917 143.25 63.0 19730101 20020520 474280 99999 ESASHI JA 41.867 140.11700000000002 12.1 19521231 20170923 474290 99999 MORI JA 42.1 140.567 27.0 19521231 19641231 474300 99999 HAKODATE JA 41.817 140.75 43.9 19521231 20170923 474310 99999 ESAN (CAPE/LGT-H) JA 41.817 141.183 36.0 19730101 20020109 474320 99999 HAKODATE/YOKOTSUDAKE JA 41.933 140.783 1111.0 19990127 19991124 474330 99999 KUTCHAN JA 42.9 140.75 188.1 19730101 20170923 474340 99999 CHITOSE JA RJCJ 42.794 141.666 26.5 19880901 20170923 474350 99999 MOMBETSU JA 44.35 143.35 17.7 19730101 20170923 474400 99999 HIROO JA 42.3 143.317 34.2 19730101 20170923 474410 99999 WAKKANAI JA RJCW 45.403999999999996 141.80100000000002 9.1 19730101 20170923 474415 99999 REBUN ISLAND JA RJCR 45.45 141.033 27.0 19790911 20001002 474510 99999 AONAE (LGT-H) JA 42.05 139.45 16.0 19730101 19900328 474520 99999 SHAKOTAN (CAPE/LH) JA 43.367 140.467 117.0 19730101 20020512 474720 99999 RISHIRI AIRPORT JA 45.233000000000004 141.2 33.0 19990128 20020421 474740 99999 MONBETSU JA RJEB 44.303999999999995 143.404 24.4 19730401 20170923 474760 99999 ASAHIKAWA JA RJEC 43.67100000000001 142.44799999999998 219.8 19730101 20170923 474770 99999 ASAHIKAWA JA RJCA 43.795 142.363 114.9 19730103 20170923 474780 99999 BOGUS JAPANESE JA 19870306 20020610 474790 99999 SAPPORO JA RJCO 43.11600000000001 141.38 7.6 19730101 20170923 474800 99999 MEMAMBETSU JA 43.917 144.183 40.0 19981224 20011010 474810 99999 MEMANBETSU JA RJCM 43.881 144.164 41.1 19730101 20170923 474830 99999 NAKASHIBETSU JA RJCN 43.578 144.96 71.3 19730410 20170923 474870 99999 NEW CHITOSE AIRPORT JA 42.783 141.7 21.3 20070226 20070228 474880 99999 HAKODATE JA RJCH 41.77 140.822 46.0 19730101 20170923 474890 99999 KUSHIRO JA RJCK 43.041000000000004 144.19299999999998 99.7 19730101 20170923 474900 99999 OBIHIRO JA RJCB 42.733000000000004 143.217 153.9 19730101 20170923 474905 99999 TOKACHI JA RJCT 42.891000000000005 143.158 85.6 19810506 20170923 475000 99999 WAJIMA JA 37.383 136.9 14.0 19990429 20021008 475030 99999 DRIFTER 47503 20140925 20160617 475120 99999 OFUNATO JA 39.067 141.717 38.4 19730101 20170923 475125 99999 OJIKA JA 19860125 19890531 475150 99999 HACHINOHE JA RJSH 40.556 141.466 46.3 19730101 20170923 475160 99999 OMINATO (JASDF) JA RJSO 41.233000000000004 141.13299999999998 10.0 19730101 20140701 475170 99999 OMINATO JA 41.233000000000004 141.15 10.0 19750407 20020618 475200 99999 SHINJO JA 38.75 140.317 102.0 19730101 20170923 475420 99999 AOMORI JA RJSA 40.735 140.691 202.4 19730101 20170923 475450 99999 AKITA JA RJSK 39.616 140.219 95.4 19730101 20170923 475490 99999 HANAMAKI JA RJSI 39.429 141.135 90.5 19730101 20170923 475530 99999 YAMAGATA JA RJSC 38.412 140.371 107.6 19730101 20170923 475570 99999 FUKUSHIMA JA RJSF 37.227 140.431 372.2 19950826 20170923 475670 99999 KASUMINOME (JASDF) JA RJSU 38.233000000000004 140.917 10.0 19730103 20140701 475690 99999 SENDAI JA RJSS 38.14 140.917 4.6 19730101 20170923 475700 99999 WAKAMATSU JA 37.483000000000004 139.917 213.6 19730101 20170923 475720 99999 NIIGATA/YAHIKOYAMA JA 37.717 138.817 634.0 19740802 20011224 475730 43318 NIIGATA AIRPORT JA RJSN 37.95 139.11700000000002 4.0 19730101 20170923 475730 99999 NIIGATA JA RJSN 37.955999999999996 139.121 8.8 20000101 20071231 475740 99999 FUKAURA JA 40.65 139.933 68.0 19730101 20170923 475750 99999 AOMORI JA 40.817 140.767 4.1 19730101 20170923 475760 99999 MUTSU JA 41.283 141.217 4.8 19730101 20170923 475770 99999 SHIRIYA POINT JA 41.433 141.467 16.0 19730101 20011002 475800 44402 MISAWA NAVAL AIR STATION JA RJSM 40.7 141.36700000000002 35.1 20080101 20170923 475800 99999 MISAWA AB JA RJSM 40.705 141.372 39.0 19480408 20111231 475805 99999 MISAWA (USAF) JA KQSM 40.683 141.4 36.0 19800227 20101012 475810 99999 HACHINOHE JA 40.533 141.517 28.5 19730101 20170923 475820 99999 AKITA JA 39.717 140.1 21.8 19521231 20170923 475830 99999 ODATE NOSHIRO JA RJSR 40.192 140.371 89.0 19800302 20170923 475840 99999 MORIOKA JA 39.7 141.167 155.4 19521231 20170923 475850 99999 MIYAKO JA 39.65 141.967 47.0 19521231 20170923 475860 99999 TODOGA (LGT-H) JA 39.55 142.083 28.0 19730101 19740531 475870 99999 SAKATA JA 38.917 139.85 4.8 19521231 20170923 475874 99999 SHONAI JA RJSY 38.812 139.787 26.2 19920508 20170923 475880 99999 YAMAGATA JA 38.25 140.35 153.7 19521231 20170923 475900 99999 SENDAI JA 38.266999999999996 140.9 43.8 19541214 20170923 475910 99999 MATSUSHIMA JA RJST 38.405 141.22 2.1 19480229 20170923 475920 99999 ISHINOMAKI JA 38.433 141.3 42.9 19730101 20170923 475930 99999 KINKASAN (LGT-H) JA 38.266999999999996 141.583 47.0 19730101 19941029 475950 99999 FUKUSHIMA JA 37.766999999999996 140.467 69.3 19730101 20170923 475954 99999 FUKUSHIMA ARPT JA 37.233000000000004 140.433 375.0 19930408 19950907 475970 99999 SHIRAKAWA JA 37.133 140.217 356.7 19730101 20170923 475980 99999 ONAHAMA JA 36.95 140.9 5.1 19730101 20170923 475990 99999 SHIOY (LGT-H) JA 37.0 140.983 52.0 19730101 19741029 476000 99999 WAJIMA JA 37.383 136.9 6.7 19730101 20170923 476010 99999 HEGURASHIMA (LGT-H) JA 37.85 136.917 14.0 19730101 20020925 476020 99999 AIKAWA JA 38.033 138.233 7.2 19730101 20170923 476030 99999 HAJIKI (LGT-H) JA 38.333 138.517 57.0 19730101 19820328 476040 99999 NIIGATA JA 37.9 139.017 5.7 19730101 20170923 476050 99999 KANAZAWA JA 36.583 136.63299999999998 33.7 19730101 20170923 476060 99999 FUSHIKI JA 36.8 137.05 13.1 19730101 20170923 476070 99999 TOYAMA JA 36.717 137.2 17.3 19730101 20170923 476100 99999 NAGANO JA 36.667 138.2 419.9 19730101 20170923 476110 99999 NAGANO/KURUMAYAMA JA 36.1 138.2 1925.0 19870102 19890811 476120 99999 TAKADA JA 37.1 138.25 14.6 19730101 20170923 476150 99999 UTSUNOMIYA JA 36.55 139.86700000000002 140.3 19730101 20170923 476160 99999 FUKUI JA 36.05 136.217 17.4 19730101 20170923 476170 99999 TAKAYAMA JA 36.15 137.25 561.9 19730101 20170923 476180 99999 MATSUMOTO JA 36.25 137.967 611.6 19730101 20170923 476200 99999 SUWA JA 36.05 138.11700000000002 762.6 19730101 20170923 476220 99999 KARUIZAWA JA 36.35 138.55 1004.8 19730101 20170923 476240 99999 MAEBASHI JA 36.4 139.067 114.4 19521231 20170923 476260 99999 KUMAGAYA JA 36.15 139.38299999999998 31.8 19521231 20170923 476270 99999 TSUKSBASAN (MOUNT) JA 36.217 140.1 870.0 19521231 20091014 476280 99999 KAKIOKA JA 36.233000000000004 140.183 34.0 19800402 20021221 476290 99999 MITO JA 36.383 140.467 30.7 19521231 20170923 476310 99999 TSURUGA JA 35.65 136.067 12.4 19521231 20170923 476320 99999 GIFU JA 35.4 136.767 17.0 19521231 20170923 476340 99999 GIFU JA RJNG 35.394 136.87 39.0 19730101 20170923 476345 99999 CHUBU CENTRAIR INTL JA RJGG 34.858000000000004 136.805 4.6 20050217 20170923 476350 99999 NAGOYA JA RJNA 35.255 136.924 15.8 19461031 20170923 476360 99999 NAGOYA JA 35.167 136.967 56.3 19521231 20170923 476370 99999 IIDA JA 35.516999999999996 137.817 528.9 19521231 20170923 476380 99999 KOFU JA 35.667 138.55 281.5 19521231 20170923 476390 99999 FUJISAN JA 35.367 138.733 3777.5 19521231 20170923 476400 99999 KAWAGUCHIKO JA 35.5 138.767 861.3 19521231 20170923 476410 99999 CHICHIBU JA 35.983000000000004 139.067 233.7 19521231 20170923 476420 43313 YOKOTA AB JA RJTY 35.75 139.35 142.0 19990101 20170923 476420 99999 YOKOTA AB JA RJTY 35.748000000000005 139.34799999999998 141.1 19471101 20071231 476430 99999 IRUMA JA RJTJ 35.842 139.411 89.9 19460930 20170923 476435 99999 SOMAGAHARA (JGSDF) HELIPAD JA RJTS 36.433 138.95 395.0 20090201 20170922 476440 99999 KIYOSE JA 35.783 139.533 -999.9 20031127 20040921 476460 99999 TATENO JA 36.05 140.13299999999998 31.0 19791102 20020601 476480 99999 CHOSHI JA 35.733000000000004 140.85 28.1 19521231 20170923 476490 99999 UENO JA 34.766999999999996 136.15 161.0 19521231 20170923 476500 99999 SEKI JA 34.85 136.467 71.0 19521231 19641231 476510 99999 TSU JA 34.733000000000004 136.517 18.4 19521231 20170923 476530 99999 IRAKO JA 34.633 137.1 7.7 19521231 20170923 476540 99999 HAMAMATSU JA 34.75 137.717 47.7 19521231 20170923 476550 99999 OMAEZAKI JA 34.6 138.217 46.8 19521231 20170923 476560 99999 SHIZUOKA JA 34.983000000000004 138.4 15.9 19521231 20170923 476570 99999 MISHIMA JA 35.117 138.933 21.9 19521231 20170923 476580 99999 SHIZUHAMA JA RJNY 34.813 138.298 7.0 19730101 20170923 476600 99999 TACHIKAWA (JASDF) JA RJTC 35.7 139.4 98.0 19451115 20140701 476610 43321 KISARAZU AB JA RJTK 35.4 139.917 6.0 19730103 20170923 476610 99999 KISARAZU JA RJTK 35.398 139.91 3.0 20000101 20071228 476620 99999 TOKYO JA RJTD 35.683 139.767 36.0 19521231 20170923 476630 99999 OWASE JA 34.067 136.2 17.1 19521231 20170923 476650 99999 DAI (LGT-H) JA 34.266999999999996 136.9 27.0 19730101 20050116 476660 99999 IROZAKI JA 34.6 138.85 53.2 19521231 20170923 476680 99999 AJIRO JA 35.05 139.1 67.9 19521231 20170923 476700 99999 YOKOHAMA JA 35.433 139.65 42.7 19730101 20170923 476710 99999 TOKYO INTL JA RJTT 35.552 139.78 10.7 19460911 20170923 476713 99999 ICHIGAYA JA RJAI 35.68 139.72 31.0 19900725 20170922 476720 99999 TATEYAMA JA 34.983000000000004 139.86700000000002 7.1 19730101 20170923 476730 99999 TOKISAKI JA 34.917 139.833 13.7 19521231 19641231 476740 99999 KATSUURA JA 35.15 140.317 13.5 19521231 20170923 476741 99999 AMAKUSA JA RJDA 32.483000000000004 130.159 103.6 20040706 20170923 476742 99999 NOTO JA RJNW 37.293 136.96200000000002 218.8 20040706 20170923 476750 99999 OSHIMA JA 34.75 139.36700000000002 75.5 19521231 20170923 476760 99999 NIIJIMA ISLAND JA 34.367 139.25 10.0 19521231 20020426 476770 99999 MIYAKEJIMA JA 34.117 139.517 39.6 19521231 20170923 476780 99999 HACHIJOJIMA JA 33.117 139.783 152.6 19521231 20170923 476790 43319 ATSUGI US NAVAL AIR STATION JA RJTA 35.45 139.45 50.9 20060101 20170923 476790 99999 ATSUGI NAS JA RJTA 35.45 139.45 65.0 19450902 20071231 476794 99999 ATSUGI (NWSED) JA 35.45 139.467 61.0 19791209 19800212 476800 99999 KASTNER AAF JA RJTR 35.514 139.394 111.9 19541214 20170922 476810 99999 HAMAMATSU JA RJNH 34.75 137.703 45.7 19730101 20170923 476820 99999 CHIBA JA 35.6 140.1 6.1 19730101 20170923 476830 99999 CHOFU AIRPORT JA RJTF 35.667 139.533 44.0 19541214 20170923 476840 99999 YOKKAICHI JA 34.933 136.583 57.1 19730101 20170923 476850 99999 MATSUSHIRO JA 36.55 138.217 440.0 19740902 20020518 476860 99999 NARITA INTL JA RJAA 35.765 140.386 43.0 19780519 20170923 476870 99999 TOKYO HELIPORT JA RJTI 35.633 139.85 8.0 19730101 20170923 476880 99999 TATEYAMA JA RJTE 34.986999999999995 139.829 3.0 19730101 20170923 476900 99999 NIKKO JA 36.733000000000004 139.5 1294.0 19521231 20170923 476920 99999 UTSUNOMIYA JA RJTU 36.515 139.871 101.8 19730101 20170922 476950 99999 TOKYO/KASHIWA JA 35.867 139.967 19.0 19890525 20020814 476960 43323 YOKOSUKA NAVAL STATION JA RJTX 35.283 139.667 49.1 19730101 20090602 476965 99999 YOKOSUKA REG MET HQ JA 35.3 139.667 10.0 19730105 19750515 477000 99999 SADO JA 38.05 138.417 26.0 19730101 20020824 477040 99999 KOMATSU JA RJNK 36.395 136.407 11.0 19730101 20170923 477050 99999 FUKUI/TOJIMBO JA 36.233000000000004 136.15 80.0 19990426 20020902 477060 99999 FUKUI JA RJNF 36.143 136.224 5.8 19730101 20070228 477070 99999 TOYAMA JA RJNT 36.648 137.188 29.0 19730101 20170923 477090 99999 MATSUMOTO JA RJAF 36.167 137.923 665.1 19730101 20170923 477150 99999 HYAKURI JA RJAH 36.181 140.415 32.0 19730101 20170923 477160 99999 KASUMIGAURA (JASDF) JA RJAK 36.033 140.2 29.0 19730103 20140701 477210 99999 FUJI (JASDF) JA RJAT 35.317 138.86700000000002 683.0 19730103 20140701 477270 99999 SHIMOFUSA JA RJTL 35.799 140.011 29.9 19730101 20170923 477300 99999 AKENO (JASDF) JA RJOE 34.533 136.683 9.0 19730103 20140701 477350 99999 OSHIMA JA RJTO 34.782 139.36 39.6 19730101 20170923 477370 99999 MIYAKEJIMA JA RJTQ 34.074 139.56 20.4 19730101 20070305 477380 99999 HACHIJOJIMA JA RJTH 33.115 139.786 92.4 19730101 20130331 477390 99999 SHIZUOKA AIRPORT JA RJNS 34.8 138.183 135.0 19730101 20170923 477400 99999 SAIGO JA 36.2 133.333 28.1 19521231 20170923 477410 99999 MATSUE JA 35.45 133.067 22.4 19521231 20170923 477420 99999 SAKAI JA 35.55 133.233 3.8 19521231 20170923 477430 99999 MIHO JA RJOH 35.492 133.236 6.1 19480831 20170923 477440 99999 YONAGO JA 35.433 133.333 8.5 19521231 20170923 477460 99999 TOTTORI JA 35.483000000000004 134.233 15.9 19521231 20170923 477470 99999 TOYOOKA JA 35.533 134.817 5.8 19521231 20170923 477473 99999 TAJIMA JA RJBT 35.513000000000005 134.787 178.0 19961020 20170923 477480 99999 KYOGA (LGT-H) JA 35.766999999999996 135.233 139.0 19740517 19900701 477490 99999 MAIZURU AB JA 35.483000000000004 135.38299999999998 9.0 20081207 20130429 477500 99999 MAIZURU JA 35.45 135.317 4.2 19521231 20170923 477505 99999 MAIZURU REG MET HQ JA 35.45 135.333 30.0 19730105 19750515 477510 99999 IBUKIYAMA MTN (AUT) JA 35.417 136.417 1377.0 19521231 20020220 477530 99999 MISHIMA (LGT-H) JA 34.75 131.15 72.0 19800902 19801216 477540 99999 HAGI JA 34.417 131.4 3.7 19521231 20170923 477550 99999 HAMADA JA 34.9 132.067 20.9 19521231 20170923 477560 99999 TSUYAMA JA 35.067 134.017 147.8 19521231 20170923 477590 99999 KYOTO JA 35.016999999999996 135.733 46.5 19451031 20170923 477610 99999 HIKONE JA 35.283 136.25 92.8 19521231 20170923 477620 99999 SHIMONOSEKI JA 33.95 130.933 19.5 19521231 20170923 477630 99999 WOFU JA 34.05 131.533 4.0 19521231 19641231 477640 43324 IWAKUNI JA RJOI 34.15 132.233 3.0 19730101 20050303 477641 43324 AIRFIELD & HARBOR OPERATIONS JA RJOI 34.15 132.233 2.1 20040401 20170923 477641 99999 IWAKUNI MCAS JA RJOI 34.15 132.233 2.0 20040713 20071229 477650 99999 HIROSHIMA JA 34.4 132.467 54.0 19521231 20170923 477660 99999 KURE JA 34.233000000000004 132.55 5.0 19521231 20170923 477665 99999 KURE REG MET HQ JA 34.233000000000004 132.567 4.0 19730105 19750515 477670 99999 FUKUYAMA JA 34.45 133.25 3.6 19521231 20170923 477680 99999 OKAYAMA JA 34.683 133.917 7.0 19521231 20170923 477690 99999 HIMEJI JA 34.833 134.667 39.7 19521231 20170923 477700 99999 KOBE JA 34.7 135.217 30.6 19521231 20170923 477710 99999 OSAKA INTL JA RJOO 34.786 135.438 15.2 19451101 20170923 477720 99999 OSAKA JA 34.683 135.517 83.0 19521231 20170923 477725 99999 KANSAI INTL JA 34.417 135.25 8.0 19950101 19950907 477730 99999 OSAKA/TAKAYASUYAMA JA 34.617 135.65 474.0 19991011 20010220 477740 99999 KANSAI INTL JA RJBB 34.433 135.233 7.9 19950827 20170923 477760 99999 SUMOTO JA 34.333 134.9 112.4 19521231 20170923 477770 99999 WAKAYAMA JA 34.233000000000004 135.167 18.0 19521231 20170923 477780 99999 SHIONOMISAKI JA 33.45 135.75 69.2 19521231 20170923 477790 99999 YAO JA RJOY 34.596 135.60299999999998 11.9 19730101 20170923 477800 99999 NARA JA 34.7 135.833 109.0 19530430 20170923 477820 99999 NANKI SHIRAHAMA JA RJBD 33.662 135.364 90.8 19730101 20170923 477830 99999 IWAMI JA RJOW 34.676 131.79 56.1 19940719 20170923 477840 99999 YAMAGUCHI JA 34.167 131.467 19.7 19730101 20170923 477860 99999 YAMAGUCHI UBE JA RJDC 33.93 131.279 7.0 19730101 20170923 477870 99999 OZUKI JA RJOZ 34.045 131.05200000000002 4.0 19730101 20170923 477880 99999 HOFU JA RJOF 34.035 131.549 2.1 19481025 20170923 477890 99999 HIROSHIMA JA RJOA 34.436 132.91899999999998 331.6 19730101 20170923 477895 99999 HIROSHIMANISHI JA RJBH 34.367 132.414 4.6 19940819 20110921 477900 99999 IZUMO JA RJOC 35.414 132.89 4.6 19730101 20170923 477910 99999 MATSUE/MISAKAYAMA JA 35.55 133.1 535.0 19990109 20020831 477920 99999 HIROSHIMA/HAIGAMINE JA 34.266999999999996 132.6 734.0 19780920 19990130 477930 99999 OKAYAMA JA RJOB 34.757 133.855 245.7 19730101 20170923 477940 99999 TOTTORI JA RJOR 35.53 134.167 19.8 19730101 20170923 477990 99999 TSUSHIMA JA RJDT 34.285 129.33100000000002 64.9 19800301 20170923 477991 99999 TSUSHIMA JA 34.3 129.3 3.0 19760422 19800227 478000 99999 IZUHARA JA 34.198 129.292 3.7 19521231 20170923 478010 99999 BOGUS JAPANESE JA 19870102 20050512 478030 99999 ASHIYA JA RJFA 33.883 130.653 29.9 19451231 20170923 478050 99999 HIRADO JA 33.367 129.55 58.7 19521231 20170923 478060 99999 FUKUOKA/SEFURISAN JA 33.433 130.35 960.0 19791103 20051020 478070 99999 FUKUOKA JA 33.583 130.38299999999998 15.0 19521231 20170923 478080 99999 FUKUOKA JA RJFF 33.586 130.451 9.8 19460906 20170923 478090 99999 IIZUKA JA 33.65 130.7 37.9 19521231 20170923 478100 99999 SAGA JA RJFS 33.15 130.30200000000002 1.8 19990115 20170923 478110 43285 NAVSTA JA RJFW 33.167 129.717 3.3 19870326 20070509 478110 99999 SASEBO JA RJFW 33.167 129.733 22.0 20000102 20070509 478120 99999 SASEBO JA 33.167 129.733 5.6 19521231 20170923 478123 99999 KAMIGOTO JA RJDK 33.016999999999996 129.183 20.0 19820625 19990129 478124 99999 OJIKA ISLAND JA RJDO 33.217 129.05 20.0 19890715 19990129 478125 99999 SASEBO REG MET HQ JA 33.167 129.717 17.0 19730105 19750515 478130 99999 SAGA JA 33.266999999999996 130.3 33.0 19521231 20170923 478140 99999 HITA JA 33.317 130.933 84.4 19521231 20170923 478150 99999 OITA JA 33.233000000000004 131.61700000000002 13.5 19521231 20170923 478160 99999 IKITSUKIJIMA JA 33.433 129.433 85.0 19521231 19620430 478170 99999 NAGASAKI JA 32.733000000000004 129.86700000000002 35.9 19521231 20170923 478180 99999 UNZENDAKE JA 32.733000000000004 130.267 679.8 19521231 20170923 478190 99999 KUMAMOTO JA 32.817 130.7 39.4 19521231 20170923 478210 99999 ASOSAN JA 32.883 131.067 1144.4 19521231 20170923 478220 99999 NOBEOKA JA 32.583 131.65 21.0 19610731 20170923 478230 99999 AKUNE JA 32.033 130.2 42.2 19521231 20170923 478240 99999 HITOYOSHI JA 32.217 130.75 147.7 19521231 20170923 478250 99999 HOSOSHIMA (LGT-H) JA 32.417 131.683 96.0 19730101 19810519 478260 99999 TSURIKAKE (LGT-H) JA 31.616999999999997 129.7 147.0 19730101 19840527 478270 99999 KAGOSHIMA JA 31.55 130.55 31.7 19521231 20170923 478290 99999 MIYAKONOJO JA 31.733 131.083 155.7 19521231 20170923 478300 99999 MIYAZAKI JA 31.933000000000003 131.417 15.0 19521231 20170923 478310 99999 MAKURAZAKI JA 31.267 130.3 31.4 19521231 20170923 478320 99999 SATA (LGT-H) JA 30.983 130.667 56.0 19730101 19860405 478330 99999 KANOYA JA 31.416999999999998 130.88299999999998 105.0 20010710 20020602 478340 99999 TOI (LGT-H) JA 31.366999999999997 131.35 234.0 19730101 19740531 478350 99999 ABURATSU JA 31.583000000000002 131.4 14.6 19521231 20170923 478360 99999 YAKUSHIMA JA RJFC 30.386 130.659 37.8 19521231 20170923 478370 99999 TANEGASHIMA JA 30.717 130.983 37.6 19521231 20170923 478380 99999 USHIBUKA JA 32.2 130.033 15.0 19521231 20170923 478400 99999 TSUIKI JA RJFZ 33.685 131.04 16.8 19730101 20170923 478420 99999 MESHIMA JA 31.983 128.35 110.0 19730101 20060930 478430 99999 FUKUE JA 32.7 128.833 26.9 19620430 20170923 478440 99999 FUKUE JA RJFE 32.666 128.833 83.2 19730101 20170923 478450 99999 KUSAGKISHIMA(LGT-H) JA 30.85 129.467 130.0 19730101 20020209 478460 99999 GAJASHIMA (LGT-H) JA 29.916999999999998 129.533 196.0 19730101 20020422 478490 99999 UCHINOURA JA 31.25 131.083 277.0 19920901 19980624 478500 99999 KANOYA JA RJFY 31.368000000000002 130.845 65.2 19450918 20170923 478510 99999 KAGOSHIMA JA RJFK 31.803 130.719 276.1 19730101 20170923 478520 99999 OITA JA RJFO 33.479 131.737 5.8 19730101 20170923 478530 99999 KITAKYUSHU JA RJFR 33.836 130.947 5.5 19730101 20170923 478540 99999 NYUTABARU JA RJFN 32.084 131.451 78.9 19580430 20170923 478550 99999 NAGASAKI JA RJFU 32.917 129.914 4.6 19730101 20170923 478560 99999 KUMAMOTO JA RJFT 32.836999999999996 130.855 195.7 19730101 20170923 478570 99999 MIYAZAKI JA RJFM 31.877 131.44899999999998 6.1 19730101 20170923 478580 99999 IKI JA RJDB 33.749 129.785 15.8 19730101 20060331 478590 99999 OMURA AB JA 32.933 129.933 8.8 20130301 20130430 478600 99999 METABARU (JASDF) JA RJDM 33.317 130.417 19.0 19730103 20140701 478690 99999 TANEGASHIMA/NAKATANE JA 30.633000000000003 130.983 281.0 19990325 20020923 478700 99999 TANEGASHIMA JA RJFG 30.546999999999997 130.95 97.2 19730101 20170923 478710 99999 19730101 19760305 478720 99999 AMAMI JA RJKA 28.430999999999997 129.713 8.2 19730101 20170923 478724 99999 KIKAI JA RJKI 28.320999999999998 129.928 6.4 19801129 20070227 478800 99999 TAKAMATSU JA RJOT 34.214 134.016 185.0 19730101 20170923 478810 99999 TOKUSHIMA JA RJOS 34.133 134.607 7.9 19730101 20170923 478820 99999 MATSUYAMA JA RJOM 33.827 132.7 7.6 19730101 20170923 478830 99999 KOCHI JA RJOK 33.546 133.66899999999998 12.8 19730101 20170923 478840 99999 KOMATSUJIMA (JASDF) JA RJOP 34.0 134.63299999999998 6.0 19730101 20140701 478850 99999 SHIMIZU JA 32.783 132.967 4.0 19881027 19900624 478860 99999 SADA (LGT-H) JA 33.333 132.017 32.0 19740517 19851231 478870 99999 MATSUYAMA JA 33.85 132.783 34.3 19521231 20170923 478880 99999 BOGUS JAPANESE JA 19890502 20020205 478900 99999 TADOTSU JA 34.283 133.75 4.8 19521231 20170923 478910 99999 TAKAMATSU JA 34.317 134.05 14.0 19521231 20170923 478920 99999 UWAJIMA JA 33.233000000000004 132.55 14.8 19521231 20170923 478930 99999 KOCHI JA 33.567 133.55 4.9 19521231 20170923 478940 99999 TSURUGISAN JA 33.85 134.1 1946.0 19521231 20040408 478950 99999 TOKUSHIMA JA 34.067 134.567 6.4 19521231 20170923 478960 99999 TOSAOKINOSHIMA (LH) JA 32.7 132.55 162.0 19740517 19851231 478970 99999 SUKUMO JA 32.917 132.7 10.9 19521231 20170923 478980 99999 SHIMIZU JA 32.717 133.017 33.8 19521231 20170923 478990 99999 MUROTOMISAKI JA 33.25 134.183 186.9 19521231 20170923 479070 99999 TOKUNOSHIMA AIRPORT JA 27.833000000000002 128.88299999999998 5.0 20010831 20030212 479090 99999 NAZE/FUNCHATOGE JA 28.394000000000002 129.553 294.1 19521231 20170923 479100 99999 TOKUNOSHIMA JA RJKN 27.836 128.881 5.2 19760601 20030228 479110 99999 YONAGUNI JA ROYN 24.467 122.978 21.3 19870214 20170923 479120 99999 YONAGUNIJIMA JA 24.467 123.01700000000001 36.5 19730101 20170923 479170 99999 IRIOMOTEJIMA JA 24.433000000000003 123.76700000000001 11.2 19751201 20170923 479180 99999 ISHIGAKI JA ROIG 24.345 124.18700000000001 28.3 19730101 20170923 479185 99999 YONAGUNI-JIMA JA 24.467 122.98299999999999 21.0 19780330 19900709 479186 99999 HATERUMA JA RORH 24.066999999999997 123.8 13.0 19790911 19990129 479190 99999 NEW ISHIGAKI AIRPORT JA 24.4 124.25 31.1 19991120 20020821 479210 99999 BOGUS JAPANESE JA 19870216 20011207 479260 99999 MIYAKO AIRPORT JA 24.783 125.3 42.7 19890220 20030928 479270 99999 MIYAKO JA ROMY 24.783 125.295 45.7 19730101 20170923 479275 99999 TARAMA JA RORT 24.654 124.675 11.0 19790911 19990814 479276 99999 SHIMOJISHIMA JA RORS 24.826999999999998 125.145 16.5 19790911 20170923 479280 99999 KUMEJIMA AIRPORT JA 26.366999999999997 126.71700000000001 10.0 19881204 20020423 479290 99999 KUMEJIMA JA ROKJ 26.364 126.714 7.0 19740517 20170923 479300 99999 NAHA JA ROAH 26.195999999999998 127.646 3.7 19451111 20170923 479310 42204 KADENA AB JA RODN 26.35 127.76700000000001 48.0 19990101 20170923 479310 99999 KADENA AB JA RODN 26.355999999999998 127.76799999999999 43.6 19460101 20071231 479330 42215 OKINAWA MARINE CORPS AIR STATION JA ROTM 26.267 127.75 75.3 19730101 20170923 479350 99999 HAMBY AAF/BUCKNER JA ROHF 26.3 127.76700000000001 6.0 19630825 20050313 479360 99999 NAHA JA 26.2 127.68299999999999 50.1 19730101 20170923 479365 99999 KERAMA JA ROKR 26.166999999999998 127.3 48.0 19990114 19990129 479370 99999 NAHA/ITOKAZU JA 26.15 127.76700000000001 180.0 19791102 20020525 479380 99999 IE SHIMA AUX AB JA RODE 26.729 127.762 56.1 19450515 19991126 479385 99999 IE JIMA JA RORE 26.721999999999998 127.785 75.0 19750808 19760214 479386 99999 AGUNI ISLAND JA RORA 26.6 127.23299999999999 29.0 19840605 19990129 479400 99999 NAGO JA 26.6 127.96700000000001 7.1 19751201 20170923 479405 99999 19741219 19750206 479420 99999 OKIERABU JA RJKB 27.426 128.701 30.8 19730101 20170923 479425 99999 YORON JA RORY 27.044 128.40200000000002 15.8 19790911 20170923 479430 99999 OKINO-DAITO-SHIMA JA 24.467 131.233 0.0 19800306 19840612 479440 99999 MINAMIDAITO JA 25.85 131.233 4.0 20040831 20040908 479450 99999 MINAMI DAITO JA ROMD 25.846999999999998 131.263 50.9 19730101 20170923 479455 99999 KITADAITO JA RORK 25.945 131.327 24.4 19800402 19990129 479710 42402 CHICHIJIMA JA RJAO 27.092 142.191 8.0 19730101 20170923 479710 99999 CHICHIJIMA ISLAND JA RJAO 27.083000000000002 142.183 8.0 20000101 20071231 479810 99999 IWOTO JA RJAW 24.784000000000002 141.32299999999998 115.2 19450301 20170923 479910 99999 MINAMI TORISHIMA JA RJAM 24.29 153.97899999999998 6.7 19730101 20170923 479995 99999 ICHIKAWA & JA 35.683 139.733 31.0 19761222 19900709 480010 99999 PUTAO BM VBPT 27.333000000000002 97.417 409.0 19430301 20170923 480040 99999 HKAMTI BM 26.0 95.7 146.0 19820306 20170923 480080 99999 MYITKYINA BM VBMK 25.366999999999997 97.4 147.0 19440713 20170923 480100 99999 HOMALIN BM VBHL 24.866999999999997 94.917 131.0 19730101 20170923 480170 99999 PINLEBU BM 24.083000000000002 95.367 259.0 20020408 20030612 480180 99999 KATHA BM 24.166999999999998 96.333 95.0 19550701 20170923 480190 99999 BHAMO BM VBBM 24.267 97.2 113.0 19450208 20170923 480200 99999 MAWLAIK BM 23.633000000000003 94.417 116.0 19830508 20170923 480240 99999 KALEMYO BM 23.2 94.06700000000001 152.0 19450205 20070710 480250 99999 KALEWA BM 23.2 94.3 109.0 19730101 20170923 480300 99999 HAKHA BM 22.65 93.633 1866.0 20120403 20170923 480310 99999 FALAM BM 22.916999999999998 93.68299999999999 1372.0 19730101 20170923 480330 99999 SHWEBO BM 22.583000000000002 95.71700000000001 110.0 19450131 20170923 480340 99999 BOGUS BURMESE BM 19830701 19881208 480350 99999 LASHIO BM VBLS 22.933000000000003 97.75 749.0 19450318 20170923 480360 99999 GANGAW BM 22.166999999999998 94.133 214.0 20011003 20020907 480370 99999 MONYWA BM 22.1 95.133 82.0 19450221 20170923 480400 99999 HSIPAW BM 22.6 97.3 436.0 19730816 20150429 480420 99999 MANDALAY BM VBRM 21.983 96.1 76.0 19470405 20170923 480450 99999 MINDAT BM 21.383000000000003 93.95 1395.0 19730101 20170923 480460 99999 PAKOKKU (DEAD) BM 21.333000000000002 95.083 57.0 19730101 19790818 480470 99999 MYINGYAN BM 21.467 95.383 60.0 19450331 20150609 480480 99999 NYAUNG-U BM 21.2 94.917 55.0 20010705 20170923 480510 99999 KYAUKTAW BM 20.85 92.633 3.0 20120410 20170923 480520 99999 CHAUK (DEAD) BM 20.9 94.833 82.0 19870518 19870518 480530 99999 MEIKTILA BM VBML 20.833000000000002 95.833 220.0 19450315 20170923 480570 99999 TAUNGGYI BM 20.783 97.05 1436.0 19500821 20170923 480580 99999 LOILEM BM 20.916999999999998 97.55 1355.0 19730809 20031230 480600 99999 KENGTUNG BM VBKG 21.3 99.617 828.0 19581122 20170923 480620 99999 SITTWE BM VYSW 20.133 92.87299999999999 8.2 19450302 20170923 480640 99999 MINBU BM 20.167 94.883 51.0 19581122 20170923 480670 99999 YAMETHIN BM 20.417 96.15 199.0 19520812 20150609 480680 99999 PINLAUNG BM 20.133 96.76700000000001 1463.0 20010906 20040420 480700 99999 MONGHSAT BM 20.55 99.26700000000001 572.0 19740730 20080308 480710 99999 KYAUKPYU BM VBKP 19.417 93.55 5.0 19490101 20170923 480720 99999 MANAUNG BM 18.85 93.73299999999999 9.1 20120410 20170923 480740 99999 PYINMANA BM 19.717 96.21700000000001 104.0 19540515 20170923 480750 99999 LOIKAW BM 19.683 97.21700000000001 895.0 19581122 20170923 480770 99999 PROME BM VBPR 18.8 95.21700000000001 60.0 19500622 20170923 480780 99999 TOUNGOO BM 18.917 96.46700000000001 49.0 19500408 20170923 480800 99999 SANDOWAY BM VBSY 18.467 94.35 11.0 19490101 20170923 480850 99999 GWA BM 17.583 94.583 3.0 20120403 20170923 480870 99999 HINTHADA BM 17.667 95.417 26.0 19740805 20170923 480880 99999 THARRAWADDY BM 17.633 95.8 15.0 19510303 20040508 480890 99999 SHWEGYIN BM 17.917 96.867 14.0 20011028 20030327 480920 99999 BOGUS BURMESE BM 19830701 20020529 480930 99999 BAGO BM 17.333 96.5 15.0 19540520 20170923 480940 99999 PATHEIN BM VBBS 16.767 94.76700000000001 10.0 19490101 20170923 480950 99999 MAUBIN BM 16.733 95.65 5.0 19540501 20170923 480960 99999 MINGALADON BM 16.9 96.18299999999999 29.0 19450901 20151230 480970 99999 YANGON INTL BM VYYY 16.907 96.133 33.2 19490417 20170923 480980 99999 THATON BM 16.917 97.367 17.0 20010706 20050530 480990 99999 HPAAN BM VBPA 16.75 97.667 10.0 19730101 20170923 481000 99999 BILIN (DEAD) BM 17.217 97.23299999999999 61.0 19800303 19840213 481010 99999 PHYAPON BM 16.267 95.667 2.1 19510921 20170923 481030 99999 MAWLAMYINE BM VBMM 16.5 97.617 22.0 19490929 20170923 481050 99999 19740429 19740429 481070 99999 YE BM 15.25 97.867 7.0 19730101 20170923 481080 99999 DAWEI BM VBTV 14.1 98.21700000000001 17.0 19490101 20170923 481090 99999 COCO ISLAND BM VBCI 14.117 93.367 3.0 19550114 20170923 481100 99999 MERGUI BM VBRN 12.433 98.6 37.0 19490101 20170923 481120 99999 VICTORIA POINT BM 9.967 98.583 47.0 19460101 20170923 483000 99999 MAE HONG SON TH VTCH 19.301 97.976 283.2 19540512 20170923 483006 99999 NAN/CHIANG KLANG TH VTCD 19.3 100.867 243.0 19730101 19740101 483007 99999 CHIANG KHAM (ARMY) TH VTCB 19.5 100.28299999999999 389.0 19731115 19740108 483009 99999 CHIANG KLANG TH VTND 19.3 100.867 243.0 19750821 19751121 483020 99999 DOI ANG KHANG TH 19.917 99.03299999999999 1530.0 20060429 20170923 483030 99999 CHIANG RAI TH VTCR 19.885 99.82700000000001 399.9 19560103 20170923 483031 99999 CHIANG RAI INTL TH VTCT 19.952 99.883 390.1 20050405 20170923 483032 99999 PHITSANULOK TH 16.8 100.76700000000001 44.0 20050405 20110726 483033 99999 NAKHON PHANOM TH VTUW 17.384 104.64299999999999 178.9 20050406 20170923 483034 99999 ROI ET TH VTUV 16.117 103.774 137.5 20050405 20170923 483035 99999 CHIANG RAI TH VTNR 19.883 99.833 416.0 19750501 19760518 483040 99999 CHAING RAI ARGOMET TH 19.867 99.76700000000001 401.0 20090801 20170923 483070 99999 TUNG CHANG TH 19.417 100.883 335.0 20050108 20170923 483100 99999 PHAYAO TH 19.192999999999998 99.9 398.9 19850413 20170923 483150 99999 THA WANG PHA TH 19.117 100.8 237.0 19740315 20170923 483240 99999 THOEN TH 17.633 99.25 192.0 20050108 20170923 483250 99999 MAE SARIANG TH VTCS 18.167 97.93299999999999 213.0 19540501 20170923 483260 99999 MAE JO AGROMET TH 18.917 99.0 318.0 20070705 20080101 483270 99999 CHIANG MAI INTL TH VTCC 18.767 98.963 315.8 19421231 20170923 483275 99999 CHIANG MAI INTL TH VTNC 18.767 98.96700000000001 316.0 19750501 19760518 483280 99999 LAMPANG TH VTCL 18.271 99.50399999999999 247.2 19500222 20170923 483290 99999 LAMPHUN TH 18.567 99.03299999999999 298.0 19850410 20170923 483300 99999 PHRAE TH VTCP 18.132 100.165 164.0 19520214 20170923 483310 99999 NAN TH VTCN 18.808 100.78299999999999 208.8 19490113 20170923 483315 99999 NAN TH VTNN 18.767 100.76700000000001 200.0 19750501 19760517 483330 99999 NAN AGROMET TH 18.867 100.75 264.0 20070705 20170923 483340 99999 LAMPANG AGROMET TH 18.317 99.28299999999999 319.0 20070705 20170923 483500 99999 LOEI AGROMET TH 17.4 101.73299999999999 264.0 20070707 20170923 483510 99999 UTTARADIT TH VTPU 17.617 100.1 64.0 19490103 20170923 483520 99999 NONG KHAI TH VTUM 17.867 102.75 175.7 19730101 20170923 483530 99999 LOEI TH VTUL 17.439 101.72200000000001 262.1 19540523 20170923 483540 99999 UDON THANI TH VTUD 17.386 102.788 176.5 19421231 20170923 483545 99999 UDORN AB (USAF) TH 17.367 102.8 178.0 19730402 19760518 483550 99999 SAKON NAKHON AGROMET TH 17.117 104.05 192.0 20070705 20170923 483560 99999 SAKON NAKHON TH VTUS 17.15 104.133 172.0 19490106 20170923 483565 99999 SAKON NAKHON TH VTUI 17.195 104.119 161.2 19750717 20170923 483570 99999 NAKHON PHANOM TH VTUP 17.417 104.78299999999999 148.0 19520707 20170923 483575 99999 19730101 19750504 483576 99999 NAKHON PHANOM WEST TH VTUW 17.383 104.65 176.0 19750501 20050405 483580 99999 NAKHON PHANOM AGROMET TH 17.433 104.78299999999999 153.0 20070705 20170923 483600 99999 NONGBUALAMPHU TH 17.217 102.417 228.0 20081231 20170923 483720 99999 SUKHOTHAI TH 17.1 99.8 50.0 20040608 20170923 483730 99999 SI SAMRONG AGROMET TH 17.167 99.867 54.0 20070705 20170923 483740 99999 LOMSAK TH 16.767 101.25 145.0 19850414 20170923 483750 99999 MAE SOT TH VTPM 16.7 98.545 210.3 19490103 20170923 483760 99999 TAK TH VTPT 16.896 99.25299999999999 145.7 19540526 20170923 483770 99999 BHUMIBOL DAM TH 17.233 99.05 144.0 19730101 20170923 483780 99999 PHITSANULOK TH VTPP 16.783 100.279 44.2 19490103 20170923 483785 99999 PHITSANULOK/SARIT TH VTPP 16.817 100.26700000000001 44.0 19750501 19760517 483790 99999 PHETCHABUN TH VTPB 16.676 101.195 137.2 19500501 20170923 483795 99999 SAK LONG TH VTPL 16.824 101.251 152.4 19750702 19750702 483800 99999 KAMPHAENG PHET TH 16.483 99.53299999999999 82.0 19760402 20170923 483810 99999 KHON KAEN TH VTUK 16.467 102.78399999999999 204.2 19490106 20170923 483815 99999 NAM PHUNG DAM SOUTH TH VTUF 16.95 103.98299999999999 274.0 19730219 19730418 483816 99999 MOUNG KHOM TH 14.8 100.617 76.0 19730103 19730921 483817 99999 KHON KAEN/NAM PHUNG TH VTUZ 16.65 102.96700000000001 240.0 19730117 19750131 483818 99999 NAM PHUNG DAM NORTH TH VTUE 16.967 103.98299999999999 320.0 19740809 19740818 483820 99999 KOSUMPHISAI TH 16.25 103.06700000000001 154.0 19861127 20170923 483830 99999 MUKDAHAN TH VTUB 16.533 104.71700000000001 140.0 19490113 20170923 483840 99999 THA PHRA AGROMET TH 16.333 102.81700000000001 166.0 20070705 20170923 483850 99999 UMPHANG TH 16.017 98.867 460.0 19850503 20170923 483860 99999 PICHIT AGROMET TH 16.333 100.367 39.4 20070705 20170923 483870 99999 DOI MU SOE AGROMET TH 16.75 98.93299999999999 368.0 19890613 20170923 483880 99999 19740429 19870519 483900 99999 KAMALASAI TH 16.333 103.583 140.9 20010705 20170923 484000 99999 NAKHON SAWAN TH VTPN 15.673 100.137 34.4 19490106 20170923 484005 99999 TA KHLI THAILAND AB TH VTPI 15.232999999999999 100.28299999999999 37.0 19651130 19750430 484006 99999 TAKHLI TH VTPI 15.277000000000001 100.296 32.6 19580930 19760518 484010 99999 TAKFA AGROMET TH 15.35 100.5 87.0 20070705 20170923 484020 99999 CHAINAT AGROMET TH 15.15 100.18299999999999 17.0 19871202 20170923 484030 99999 CHAIYAPHUM TH VTUC 15.8 102.03299999999999 184.0 19560801 20170923 484040 99999 ROI ET AGROMET TH 16.067 103.617 156.0 20070705 20170923 484050 99999 ROB MUANG TH VTUR 16.07 103.646 139.9 19490106 20170923 484070 99999 UBON RATCHATHANI TH VTUU 15.251 104.87 123.7 19490106 20170923 484075 99999 BURI RAM TH VTUO 15.23 103.25299999999999 179.8 19730402 20170923 484076 99999 SUKHOTHAI TH VTPO 17.238 99.818 54.6 19750501 20170923 484080 99999 UBON RATCHATHANI AGROMET TH 15.232999999999999 105.03299999999999 129.9 19730202 20170923 484085 99999 SARABURI TH VTBE 14.517000000000001 100.917 91.0 19730830 19731222 484090 99999 SI SAKET AGROMET TH 15.085 104.331 129.2 20070705 20170923 484130 99999 WICHIAN BURI TH 15.657 101.105 69.7 19740315 20170923 484150 99999 AYUTTHAYA TH 14.517000000000001 100.71700000000001 10.0 20070705 20170923 484160 99999 THA TUM TH 15.317 103.68299999999999 130.0 19740315 20170923 484180 99999 BUA CHUM TH 15.267000000000001 101.2 51.0 19740315 20170923 484190 99999 PATHUMTHANI TH 14.1 100.617 7.0 20070705 20170923 484200 99999 SAMUTPRAKAN AGROMET TH 13.517000000000001 100.75 3.0 20081001 20170923 484210 99999 THONG PHAPHUM TH 14.75 98.633 99.0 19740315 20170923 484250 99999 SUPHAN BURI TH 14.467 100.133 9.0 19490109 20170923 484260 99999 LOP BURI TH 14.8 100.617 11.0 19490103 20170923 484262 99999 LOP BURI/KOKE KATHI TH VTBL 14.883 100.667 30.0 19730101 19751029 484265 99999 MOUNG KHOM/CHANDY R TH 15.05 100.917 61.0 19730921 19750514 484266 99999 LOP BURI/KOKE KATHI TH 14.883 100.667 30.0 19750501 19760518 484267 99999 MOUNG KHOM/CHANDY R TH 15.05 100.917 61.0 19750501 19760518 484270 99999 U THONG AGROMET TH 14.3 99.867 7.0 20070705 20170923 484290 99999 SUVARNABHUMI INTER AIRPORT TH 13.683 100.76700000000001 6.0 20070801 20170923 484300 99999 KHAO E TO TH VTBI 14.078 101.38 24.4 19490103 20170923 484305 99999 KHAO KHEO TH 14.417 101.53299999999999 610.0 19730101 19750430 484306 99999 KHAO KHEO/GREEN HIL TH 14.417 101.53299999999999 610.0 19750501 19760518 484310 99999 KHORAT TH VTUN 14.935 102.079 222.2 19490102 20170923 484315 99999 NAKHON RATCHASIMA TH VTUQ 14.949000000000002 102.31299999999999 233.2 19730101 20170922 484316 99999 KORAT AB (USAF) TH 14.933 102.083 225.0 19730402 19760517 484320 99999 SURIN TH 14.883 103.5 147.0 19490103 20170923 484330 99999 SURIN AGROMET TH 14.883 103.45 145.0 20070705 20170923 484340 99999 CHOK CHAI TH 14.717 102.167 193.0 19850413 20170923 484350 99999 PAKCHONG AGROMET TH 14.633 101.31700000000001 388.0 20070705 20170923 484360 99999 NANGRONG TH 14.630999999999998 102.721 181.7 19850414 20170923 484370 99999 BURERAM TH 15.232999999999999 103.25 184.0 20040405 20170923 484390 99999 KABINBURI TH 13.982999999999999 101.7 12.0 19850409 20170923 484400 99999 SRAKAEW TH 13.783 102.03299999999999 43.0 20050207 20170923 484500 99999 KANCHANA BURI TH VTBG 14.017000000000001 99.53299999999999 29.0 19490109 20170923 484505 99999 19730101 19750928 484506 99999 KAMPHAENG SAEN TH VTMK 14.1 99.917 9.0 19750515 19760518 484510 99999 NAKHONPATHOM TH 14.017000000000001 99.96700000000001 10.0 20070705 20170923 484530 99999 BANG NA AGROMET TH 13.667 100.617 6.0 20070705 20170923 484540 99999 BANGKOK PORT TH 13.7 100.56700000000001 6.0 19950401 20170923 484550 99999 BANGKOK METROPOLIS TH 13.732999999999999 100.56700000000001 4.0 19490102 20170923 484560 99999 BANGKOK INTL TH VTBD 13.913 100.60700000000001 2.7 19421231 20170923 484565 99999 BANGKOK/DON MUANG TH VTMD 13.917 100.617 4.0 19750501 19760517 484570 99999 BANGKOK PILOT TH 13.383 100.6 15.0 19560104 20170923 484580 99999 CHACHOENGSAO AGROMET TH 13.567 101.454 70.2 20070705 20170923 484590 99999 CHON BURI/SATTAHIP TH VTBS 13.367 100.98299999999999 2.0 19490113 20170923 484600 99999 KO SICHANG TH 13.167 100.8 27.0 19620106 20170923 484610 99999 PHATTHAYA TH 12.917 100.867 61.0 19811101 20170923 484620 99999 ARANYAPRATHET TH 13.7 102.50399999999999 49.0 19490106 20170923 484630 99999 LAEM CHABANG TH 13.083 100.883 82.0 19950401 20170923 484640 99999 RATCHA BURI TH 13.482999999999999 99.78299999999999 5.0 20070705 20170923 484650 99999 PHETCHABURI TH VTBJ 12.999 100.06700000000001 3.8 19780101 20170923 484740 99999 NONG PHLUB AGROMET TH 12.583 99.73299999999999 108.0 20070705 20170923 484750 99999 HUA HIN TH VTPH 12.636 99.95200000000001 18.9 19490102 20170923 484770 99999 SATTAHIP TH VTBU 12.683 100.98299999999999 18.0 19490508 20170923 484775 99999 U-TAPHAO INTL(NAVY) TH 12.683 101.0 18.0 19660701 19910707 484776 99999 U-TAPAO AB (USAF) TH 12.683 101.01700000000001 18.0 19750122 19760522 484777 99999 BAN NONG PRU NE TH 13.133 101.03299999999999 18.0 19750501 19750520 484778 99999 SATTAHIP TH 12.65 100.95 7.0 19750501 19760518 484780 99999 RAYONG TH 12.633 101.35 5.0 19811101 20170923 484790 99999 HUAI PONG AGROMET TH 12.732999999999999 101.133 45.0 20070705 20170923 484800 99999 CHANTHABURI TH VTBC 12.6 102.117 4.0 19490116 20170923 484810 99999 PHLIU AGROMET TH 12.5 102.167 24.0 20070705 20170923 485000 99999 PRACHUAP TH VTBP 11.788 99.805 3.0 19490102 20170923 485005 99999 PRAN BURI TH VTBN 12.417 99.867 15.0 19730101 19730809 485006 99999 PRACHUAP KHIRI KHAN TH 11.8 99.8 3.0 19750501 19760518 485010 99999 KHLONG YAI TH 11.767000000000001 102.883 4.0 19490911 20170923 485170 99999 CHUMPHON TH VTSE 10.710999999999999 99.36200000000001 5.5 19490102 20170923 485200 99999 SAWI AGROMET TH 10.333 99.1 13.0 19780201 20170923 485320 99999 RANONG TH VTSR 9.777999999999999 98.585 17.4 19540517 20170923 485500 99999 KO SAMUI TH 9.467 100.05 5.0 19730101 20170923 485510 99999 SURAT THANI TH VTSB 9.133 99.13600000000001 6.1 19490109 20170923 485515 99999 SURAT THANI TH 9.133 99.367 5.0 19750501 19760517 485520 99999 CHA IAN TH VTSN 8.471 99.956 13.4 19490113 20170923 485530 99999 KHANOM TH 9.25 99.867 5.0 19950401 20030326 485540 99999 NAKHONSI THAMMARAT AGROMET TH 8.359 100.059 3.0 20070705 20170923 485550 99999 SURAT THANI AGROMET TH 9.1 99.633 37.0 20070705 20170923 485560 99999 PHRASANG TH 8.567 99.25 14.0 20041125 20170923 485570 99999 CHAWANG TH 8.433 99.51700000000001 30.0 20040811 20170923 485575 99999 NAKHON SI THAMMARAT TH VTSF 8.54 99.945 4.0 20050322 20170923 485576 99999 KRABI TH VTSG 8.099 98.986 25.0 20050329 20170923 485577 99999 SAMUI TH VTSM 9.548 100.06200000000001 19.5 20050322 20170923 485578 99999 TRAT TH VTBO 12.275 102.32 32.0 20050323 20170923 485600 99999 PHATTHALUNG AGROMET TH 7.582999999999999 100.167 4.0 20070705 20170923 485610 99999 TAKUA PA TH 8.683 98.25 4.0 19761101 20170923 485630 99999 KRABI TH 8.1 98.98299999999999 45.0 19950401 20170923 485640 99999 PHUKET TH 7.882999999999999 98.4 4.0 19490113 20170923 485650 99999 PHUKET INTL TH VTSP 8.113 98.31700000000001 25.0 19560126 20170923 485660 99999 KO LANTA TH 7.5329999999999995 99.05 3.0 19490122 20170923 485670 99999 TRANG TH VTST 7.5089999999999995 99.617 20.4 19620124 20170923 485680 99999 SONGKHLA TH VTSH 7.187 100.60799999999999 3.7 19421231 20170923 485685 99999 SONGKHLA TH 7.183 100.617 4.0 19750501 19760518 485690 99999 HAT YAI INTL TH VTSS 6.933 100.39299999999999 27.4 19730101 20170923 485700 99999 KHOUN KHAN TH VTSA 6.6610000000000005 100.08 5.5 19780101 20170923 485710 99999 KHO HONG AGROMET TH 7.0 100.5 10.0 20070705 20170923 485740 99999 SA-DAO TH 6.8 100.383 25.0 20040930 20170923 485800 99999 PATTANI TH VTSK 6.785 101.154 2.4 19730101 20170923 485806 99999 HAT YAI INTL (AFB)& TH 6.933 100.417 27.0 19730101 19730311 485810 99999 YALA AGROMET TH 6.517 101.28299999999999 36.0 20070705 20170923 485830 99999 NARATHIWAT TH VTSC 6.52 101.743 4.9 19490201 20170923 486000 99999 LANGKAWI INTL MY WMKL 6.33 99.729 8.8 19901210 20170923 486001 99999 MANDALAY INTL BM VYMD 21.701999999999998 95.978 91.4 20040707 20170923 486010 99999 PENANG INTL MY WMKP 5.297000000000001 100.277 3.4 19490101 20170923 486011 99999 SIMPANG MY WMKF 3.112 101.70299999999999 33.8 20070226 20070227 486020 99999 BUTTERWORTH MY WMKB 5.466 100.391 3.4 19490101 20170923 486021 99999 MERSING MY WMAU 2.45 103.833 45.0 20040706 20170923 486022 99999 SULTAN ABDUL HALIM MY WMKA 6.194 100.40299999999999 4.6 20040706 20170923 486023 99999 SULTAN AZLAN SHAH MY WMKI 4.5680000000000005 101.09200000000001 39.6 20040706 20170923 486024 99999 SULTAN MAHMUD MY 5.382999999999999 103.1 7.0 20040706 20050612 486030 99999 ALOR STAR MY 6.2 100.4 5.0 19490101 20170923 486040 99999 CHUPING MY 6.483 100.26700000000001 22.0 20040513 20040513 486150 99999 SULTAN ISMAIL PETRA MY WMKC 6.167000000000001 102.29299999999999 4.9 19490105 20170923 486160 99999 KUALA KRAI MY 5.5329999999999995 102.2 65.0 19860821 19861229 486180 99999 SULTAN MAHMUD MY WMKN 5.382999999999999 103.103 6.4 20011012 20170923 486190 99999 KUALA TRENGGANU/CLIM MY 5.332999999999999 103.133 36.0 19490104 19651231 486200 99999 SITIAWAN MY WMBA 4.217 100.7 8.0 19490101 20170923 486250 99999 IPOH MY 4.567 101.1 40.0 19490101 20170923 486310 99999 CAMERON HIGHLANDS MY 4.467 101.383 1470.0 19640401 19641231 486320 99999 CAMERON HIGHLANDS MY 4.467 101.367 1545.0 20010730 20170923 486340 99999 KUALA LIPIS MY 4.183 102.05 169.0 19490101 19531030 486470 99999 SULTAN ABDUL AZIZ SHAH INTL MY WMSA 3.1310000000000002 101.54899999999999 27.4 19490101 20170923 486475 99999 SULTAN ABDUL AZIZ S MY 3.133 101.55 28.0 19990321 20051231 486480 99999 PETALING JAYA MY 3.1 101.65 47.0 19881101 20020715 486490 99999 MUADZAM SHAH MY 3.05 103.083 34.0 20070226 20070226 486500 99999 KUALA LUMPUR INTL MY WMKK 2.7460000000000004 101.71 21.0 20000918 20170923 486530 99999 TEMERLOH MY 3.467 102.383 40.0 19490101 20070227 486570 99999 KUANTAN MY WMKD 3.775 103.209 17.7 19490103 20170923 486580 99999 BOGUS MALAYSIAN MY 19890204 20021127 486600 99999 PORT SWEETENHAM MY 3.0 101.417 3.0 19490101 19531031 486650 99999 MALACCA MY WMKM 2.263 102.25200000000001 10.7 19490101 20170923 486720 99999 KLUANG MY 2.017 103.31700000000001 86.0 19750407 19750413 486726 99999 KERTEH MY WMKE 4.537 103.427 5.5 20120904 20170923 486740 99999 MERSING MY 2.45 103.833 45.0 19490102 20170923 486790 99999 SULTAN ISMAIL MY WMKJ 1.641 103.67 41.1 19990101 20170923 486870 99999 SINGAPORE/TENGAH SN 1.383 103.71700000000001 12.0 19490104 19651231 486920 99999 SINGAPORE/SELETAR SN 1.4169999999999998 103.883 14.0 19620501 20040605 486940 99999 PAYA LEBAR SN WSAP 1.36 103.91 19.8 19490101 20170923 486980 99999 SINGAPORE CHANGI INTL SN WSSS 1.35 103.994 6.7 19560103 20170923 486990 99999 SELETAR SN WSSL 1.4169999999999998 103.868 11.0 20040831 20170923 487470 99999 SAVANNAKHET LA 16.55 104.75 155.0 20020713 20030101 488020 99999 SA PA VM 22.35 103.81700000000001 1581.0 19590502 20170923 488030 99999 LAO CAI VM 22.5 103.96700000000001 97.0 19490502 20170923 488060 99999 SON LA VM 21.333000000000002 103.9 676.0 19970301 20170923 488080 99999 CAO BANG VM 22.666999999999998 106.25 243.0 19490502 20170923 488100 99999 BAC CAN VM 22.15 105.833 176.0 19590501 20170923 488190 99999 HANOI (CITY) VM VVVV 21.033 105.833 10.0 19490401 19840815 488193 99999 HANOI/GIALAM VM VVGL 21.033 105.85 12.0 19840909 19890705 488200 99999 NOIBAI INTL VM VVNB 21.221 105.807 11.9 19581201 20170923 488230 99999 NAM DINH VM 20.433 106.15 3.0 19740924 20170923 488250 99999 HA DONG VM 20.967 105.76700000000001 7.9 19800808 20170923 488251 99999 CAT BI INTL ARPT/HAI PHONG VM VVCI 20.819000000000003 106.725 1.8 20170531 20170923 488260 99999 PHU LIEN VM 20.8 106.633 116.0 19740924 20170923 488300 99999 LANG SON VM 21.833000000000002 106.76700000000001 263.0 19740924 20170923 488310 99999 THAI NGUYEN VM 21.6 105.833 32.0 19740924 20170923 488380 99999 MONG CAI VM 21.517 107.96700000000001 7.0 19740924 20170923 488390 99999 BACH LONG VI VM 20.133 107.71700000000001 56.0 19740925 20170923 488400 99999 THANH HOA VM 19.75 105.78299999999999 5.0 19740924 20170923 488430 99999 MUONG SEN VM 19.4 104.15 220.0 19800710 19820302 488450 99999 VINH VM VVVH 18.737000000000002 105.671 5.2 19740924 20170923 488460 99999 HA TINH VM 18.35 105.9 3.0 19740924 20170921 488480 99999 DONG HOI VM 17.483 106.6 8.0 19740924 20170923 488490 99999 DONG HA VM 16.817 107.1 25.0 19660101 19850722 488500 99999 KHE SANH VM 16.633 106.71700000000001 420.0 19800702 19820420 488505 99999 KHE SANH VM 16.633 106.71700000000001 420.0 19670731 19710328 488510 99999 QUANG TRI VM 16.733 107.18299999999999 6.0 19580813 19900617 488515 99999 CAMP EVANS VM 16.55 107.383 30.0 19680201 19711218 488520 99999 PHUBAI VM VVPB 16.402 107.70299999999999 14.6 19570101 20170923 488525 99999 L.Z. SALLY VM 16.517 107.46700000000001 -999.0 19680402 19700310 488526 99999 CAMP EAGLE VM 16.4 107.633 38.0 19680331 19720110 488550 99999 DANANG INTL VM VVDN 16.044 108.199 10.1 19561231 20170923 488556 99999 AN HOA VM 15.783 108.083 23.0 19670731 19700909 488561 41024 MARBLE MOUNTAIN VM 16.033 108.25 9.1 19680101 19900124 488580 99999 PLEIKU AB/CU-HANH VM VVPK 14.0 108.01700000000001 742.0 19730101 19801218 488600 99999 HOANG SA (PATTLE) VM 16.55 111.617 6.0 19561231 19740811 488630 99999 QUANG NGAI VM 15.133 108.78299999999999 9.0 19571231 20170923 488635 99999 DUC PHO VM 14.817 108.96700000000001 11.0 19671130 19710617 488640 99999 CHU LAI VM 15.417 108.7 8.0 19650531 19711127 488660 99999 PLEIKU VM VVPK 14.005 108.01700000000001 741.9 19580908 20170923 488665 99999 CAMP ENARI VM 13.85 108.05 835.0 19660930 19700228 488671 99999 AN KHE VM 13.967 108.667 421.0 19651130 19701212 488675 99999 CAMP RADCLIFF/ANKHE VM 13.982999999999999 108.65 771.0 19700312 19701116 488676 99999 PHU CAT VM 13.95 109.05 34.0 19661231 19750331 488685 99999 L.Z. ENGLISH VM 14.467 109.03299999999999 30.0 19680303 19710812 488690 99999 19870519 19870519 488695 99999 KONTUM VM 14.35 108.01700000000001 595.0 19680402 19700331 488700 99999 QUY NHON VM VVQN 13.767000000000001 109.21700000000001 6.0 19570104 20170923 488730 99999 TUY-HOA VM 13.083 109.28299999999999 11.0 19561231 20131115 488750 99999 BANMETHUOT VM 12.683 108.083 537.0 19561231 20170923 488770 99999 NHA TRANG VM VVNT 12.25 109.2 10.0 19561231 20170923 488810 99999 BECAME STN 488811 VM 11.75 108.383 962.0 19490304 19750331 488811 99999 DA LAT/LIEN KHUONG VM VVDL 11.753 108.36200000000001 962.0 20100319 20100319 488815 99999 DALAT/CAM LY VM 11.95 108.417 1517.0 19661003 19710315 488830 99999 DI LINH VM 11.567 108.06700000000001 972.0 19491213 19610521 488840 99999 BAO-LOC (BLAO) VM 11.467 107.8 850.0 19610526 19790809 488870 99999 PHAN THIET VM 10.933 108.1 5.0 19561008 20170923 488880 99999 PHUOC LONG/SONG BE VM 11.817 106.96700000000001 243.0 19800702 19900726 488885 99999 PHUOC LONG/SONG BE VM 11.817 106.96700000000001 243.0 19680115 19710214 488890 99999 PHAN RANG VM 11.633 108.95 31.0 20080530 20130409 488896 99999 PHAN RANG VM 11.633 108.95 31.0 19660103 19750402 488910 99999 DAU TIENG VM 11.267000000000001 106.31700000000001 16.0 19660731 19700320 488915 99999 TAY NINH WEST VM 11.317 106.06700000000001 8.0 19661130 19700807 488920 99999 SONG TU TAY (SOUTH WEST CAY) VM 11.417 114.333 5.0 19921201 20170923 488925 99999 PHU LOI VM 11.0 106.7 34.0 19660419 19711231 488926 99999 PHUOC-VINH VM 11.3 106.8 58.0 19660731 19731216 488935 99999 CU CHI VM 10.982999999999999 106.51700000000001 12.0 19660331 19701124 488940 99999 NHA BE VM 10.65 106.71700000000001 3.6 20130702 20170923 488960 99999 BIEN-HOA AB VM 10.967 106.81700000000001 13.4 19581231 19650627 488962 99999 SAIGON/BIEN/HOA VM 10.967 106.81700000000001 11.0 19581231 19750428 488966 99999 GIA RAY VM 10.967 107.4 142.0 19701001 19710314 488970 99999 CAM RANH BAY VM 12.0 109.21700000000001 14.0 19651103 19711231 489000 99999 TANSONNHAT INTL VM VVTS 10.819 106.652 10.1 19490102 20170923 489003 99999 HO CHI MINH/TANSONN VM 10.817 106.667 9.0 19780527 19830209 489005 99999 DIAN VM 10.9 106.75 32.0 19661007 19710306 489006 99999 QUAN LOI VM 11.667 106.667 167.0 19680131 19700909 489015 99999 LONG THANH (NORTH) VM 10.833 106.96700000000001 41.0 19660731 19711231 489020 99999 BARIA (PHUOC LE) VM 10.5 107.167 15.0 19550814 19561031 489030 99999 VUNGTAU/PHARE VM 10.333 107.083 175.0 19490502 19790217 489040 99999 VUNG TAU VM 10.367 107.06700000000001 4.0 19630301 20100520 489041 99999 VUNGTAU VM VVVT 10.367 107.1 4.0 19621129 19700811 489070 99999 RACH GIA VM 10.0 105.083 3.0 19560117 20170923 489100 99999 VINH LONG VM 10.25 105.95 3.0 19630515 20120930 489105 99999 TAN AN VM 10.55 106.4 3.0 19670630 19700907 489110 99999 CAN THO VM 10.05 105.76700000000001 19630503 19641230 489111 99999 PHONG DINH/CAN THO VM 10.05 105.76700000000001 2.0 19630504 19750428 489125 99999 CAN THO VM VVCT 10.083 105.71700000000001 3.1 19651213 20170923 489130 99999 BA-XUYEN/SOC TRANG VM 9.6 105.96700000000001 5.0 19490502 20131105 489140 99999 CA MAU VM 9.183 105.15 2.0 19570831 20170923 489160 99999 THO CHU VM 9.283 103.46700000000001 24.0 19970201 20170923 489170 99999 PHU QUOC VM 10.217 103.96700000000001 4.0 19570403 20170923 489180 99999 CON SON VM 8.683 106.6 9.0 19490103 20170923 489190 99999 HUYEN TRAN VM 8.017000000000001 110.617 19.0 19970201 20170923 489200 99999 TRUONG SA VM 8.65 111.917 3.0 19811101 20170923 489210 99999 BOUNNEUA LA 21.633000000000003 101.883 923.0 20030330 20170923 489220 99999 19870519 19870519 489235 99999 BAN HOUAY-XAY LA VLHS 20.25 100.43299999999999 421.0 19680930 19740814 489236 99999 NAM LIEU LA 20.566999999999997 100.583 579.0 19730101 19730201 489240 99999 LUANG NAMTHA (M.SING) LA VLLN 21.05 101.46700000000001 644.0 20030330 20170923 489245 99999 XIENG LOM LA VLXL 19.65 100.81700000000001 579.0 19730101 19730831 489250 99999 OUDOMXAY LA 20.683000000000003 102.0 550.0 19840701 20170923 489260 99999 HOUEI-SAI * LA 20.25 100.43299999999999 -999.9 19740610 20170923 489270 99999 VIENGSAY LA 20.417 104.23299999999999 913.0 19790701 20170923 489280 99999 SAM-NEUA LA 20.417 104.06700000000001 1000.0 19590829 20170923 489286 99999 NAM TAN DAM LA 19.017 101.5 366.0 19730101 19730801 489288 99999 19730101 19730619 489300 99999 LUANG PHABANG INTL LA VLLB 19.897000000000002 102.161 291.1 19510601 20170923 489305 99999 VANG VIENG(CIV/MIL) LA VLVV 18.917 102.45 296.0 19730101 19730822 489306 99999 PHU CUM LA 19.9 103.117 1158.0 19670824 19681230 489325 99999 BOUAM LONG LA 19.75 103.333 1463.0 19730114 19730624 489326 99999 BAN HONG SA LA 19.683 101.333 610.0 19730101 19730110 489350 99999 PLAINE DES JARRES (XIENGKHOUANG) LA 19.467 103.133 1050.0 19511011 20170923 489360 99999 PAKLAY LA 18.2 101.2 220.0 19730814 20020813 489365 99999 SKYLINE/BAN SAN TON LA 19.167 102.9 1585.0 19680106 19700228 489366 99999 LONG TIENG LA 19.117 102.917 951.0 19730101 19730821 489370 99999 NAM THANE LA 19.117 101.55 370.0 19731113 19801226 489380 99999 SAYABOURY LA VLSB 19.233 101.73299999999999 326.0 19730101 20170923 489390 99999 VANGVIENG LA 18.917 102.45 298.0 19801005 19840724 489400 99999 WATTAY INTL LA VLVT 17.988 102.56299999999999 171.9 19490101 20170923 489410 99999 PHONHONG LA 18.467 102.4 179.0 20020530 20170923 489420 99999 HAT DOKEO LA 17.85 102.6 165.0 20090916 20120111 489425 99999 PHU MIENG MANE LA 17.667 101.083 620.0 19730101 19730706 489436 99999 PAKKENYANE LA 16.867 105.333 213.0 19730101 19730111 489438 99999 PAK SANE LA 18.383 103.667 157.0 19730620 19730920 489440 99999 THANGONE LA 18.283 102.633 185.0 20020608 20170814 489445 99999 GROVE JONES-2 LA 18.05 104.31700000000001 159.0 19730101 19730430 489450 99999 PAKSANE LA 18.4 103.667 157.0 20090801 20170923 489460 99999 THAKHEK LA VLTK 17.383 104.65 52.0 19810101 20170923 489470 99999 SAVANNAKHET LA VLSK 16.557000000000002 104.76 155.1 19680131 20170923 489475 99999 THAKHEK WEST LA 17.4 104.81700000000001 150.0 19730101 19730803 489480 99999 SENO LA 16.667 105.0 185.0 19490101 20170923 489485 99999 BANG DONG HENE LA 16.7 105.3 143.0 19730101 19730803 489486 99999 MOUNG PHA LANE LA 16.683 105.55 159.0 19660503 19730803 489488 99999 KENG KOK LA 16.45 105.18299999999999 171.0 19730101 19730430 489489 99999 XE BANG FAI LA 17.083 104.98299999999999 146.0 19730101 19730803 489500 99999 19870519 19870519 489506 99999 XE BANG HAING LA 16.083 105.367 145.0 19730101 19730803 489520 99999 SARAVANE LA VLSV 15.683 106.417 168.0 19800701 20170923 489525 99999 KHONG XEDONE LA 15.6 105.8 137.0 19730101 19730803 489526 99999 SARAVANE LA 15.717 106.417 175.0 19660313 19680218 489530 99999 SEKONG LA 15.333 106.68299999999999 143.0 20090801 20170923 489550 99999 PAKSE LA VLIP 15.117 105.76700000000001 102.0 19490807 20170923 489555 99999 PAKSE (BACK-UP) LA 15.133 105.78299999999999 102.0 19730101 19730514 489558 99999 BAN KHENG NHAO LA 15.317 105.98299999999999 186.0 19730101 19730803 489559 99999 BAN DON TALAT LA 14.783 105.78299999999999 84.0 19730101 19730803 489560 99999 PAKSONG LA 15.183 106.2 1200.0 20081228 20161105 489565 99999 NEW PAKSONG LA 15.183 106.23299999999999 1219.0 19730608 19730803 489570 99999 ATTOPEU LA VLAP 14.8 106.833 105.0 19660511 20170923 489595 99999 KHONG ISLAND LA VLKG 14.117 105.833 76.0 19730101 19730803 489620 99999 BATTAMBANG CB 13.1 103.2 13.0 19510911 20170923 489660 99999 SIEM REAP CB VDSR 13.411 103.81299999999999 18.3 19490103 20170923 489680 99999 PURSAT CB 12.55 103.85 18.0 19490901 20150603 489690 99999 BANTEAY MEANCHEY CB 13.617 102.96700000000001 31.0 19750109 19751127 489720 99999 STUNG TRENG CB 13.517000000000001 105.96700000000001 56.0 19490102 20170923 489800 99999 19870519 19870519 489820 99999 KOS KONG CB 11.617 103.0 4.0 19730102 19740425 489830 99999 SIHANOUK VILLE CB 10.633 103.48299999999999 15.0 19560528 20170923 489840 99999 19750109 19750327 489850 99999 KAMPOT CB 10.6 104.18299999999999 4.0 19490102 20170923 489910 99999 PHNOM PENH INTL CB VDPP 11.547 104.844 12.2 19490102 20170923 489920 99999 KOMPONG SPEU CB 11.467 104.56700000000001 27.0 19741127 19750703 489950 99999 KOMPONG-CHAM CB VDKC 12.0 105.45 16.0 19490102 20170923 489970 99999 CPREY VENG CB 11.467 105.31700000000001 2.0 20111201 20140116 489980 99999 SVAY RIENG CB 11.083 105.8 6.0 19490501 20170923 501360 99999 MOHE CH 52.967 122.53299999999999 438.0 19730101 20170923 502460 99999 TA-HE CH 52.333 124.8 465.0 19730101 20070727 503490 99999 JIU-HAI-LAI CH 51.133 124.05 610.0 19730105 20020513 503530 99999 HUMA CH 51.733000000000004 126.633 175.6 19560820 20170923 504250 99999 SAN-HE CH 50.5 120.06700000000001 671.0 19570601 20040809 504340 99999 TULIHE CH 50.45 121.7 733.0 19570531 20170923 504420 99999 XIAO-YANG-QI CH 50.8 124.28299999999999 549.0 19730313 20020513 504680 99999 AIHUI CH 50.25 127.45 166.0 19610801 20170923 505140 99999 MAN-ZHOU-LI CH 49.55 117.46700000000001 710.0 19581002 20050805 505270 99999 HAILAR CH 49.25 119.7 650.0 19560820 20170923 505280 99999 HAI-LAR/TUNGSHAN CH ZYLA 49.217 119.8 488.0 19790701 20020731 505480 99999 XIAO'ERGOU CH 49.2 123.71700000000001 288.0 19570531 20170923 505570 99999 NENJIANG CH 49.167 125.23299999999999 243.0 19560820 20170923 505640 99999 SUNWU CH 49.433 127.35 235.0 19560820 20170923 506030 99999 XIN BARAG YOUQI CH 48.683 116.81700000000001 556.7 19600101 20170923 506320 99999 BUGT CH 48.766999999999996 121.917 739.0 19560820 20170923 506390 99999 ZALANTUN CH 48.0 122.73299999999999 310.0 19560820 19611031 506460 99999 BORDO CH 48.483000000000004 124.85 199.0 19570601 19590831 506560 99999 LONG-ZHEN CH 48.65 126.667 305.0 19610801 20130120 506580 99999 KESHAN CH 48.05 125.883 237.0 19570601 20170923 507030 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801004 20030619 507270 99999 ARXAN CH 47.167 119.93299999999999 997.0 19560820 20170923 507410 99999 NORTHEAST CH 47.9 133.5 50.0 19570601 19590831 507420 99999 SAN-CHEN-FANG CH 47.783 124.167 146.0 19570601 20070727 507450 99999 SANJIAZI CH ZYQQ 47.24 123.91799999999999 145.4 19560820 20170923 507560 99999 HAILUN CH 47.45 126.867 248.0 19560820 20170923 507580 99999 MING-SHUI CH 47.25 125.883 259.0 19570601 20020613 507740 99999 YICHUN CH 47.7 128.833 259.1 19570601 20170923 507750 99999 HE-GANG CH 47.35 130.2 198.0 19570602 20030124 507870 99999 BOGUS CHINESE CH 19880208 20020101 507880 99999 FUJIN CH 47.233000000000004 131.983 65.0 19560820 20170923 508340 99999 TE-PO-SU-K/-MIAO CH 46.5 121.367 427.0 19610801 20090904 508380 99999 QARSAN SOUTHEAST CH 46.217 122.05 273.0 19560820 19611031 508440 99999 TAILAI CH 46.4 123.45 150.0 19610801 20170923 508450 99999 NAME/LOCATION UNKN CH 0.0 0.0 -999.0 19801002 20020906 508530 99999 WANG-KUI CH 46.833 126.48299999999999 158.0 19570601 20020513 508540 99999 ANDA CH 46.383 125.31700000000001 150.0 19560820 20170923 508620 99999 TIE-LI CH 47.067 128.033 264.0 19571215 20070727 508730 99999 CHIA-MU-SSU /CHIAMUEZE CH 46.817 130.333 80.2 19560820 19611031 508770 99999 YI-LAN CH 46.3 129.55 99.0 19610801 20020513 508880 99999 BAOQING CH 46.317 132.183 83.0 19570602 20170923 509150 99999 ULIASTAI CH 45.516999999999996 116.96700000000001 840.0 19560820 20170923 509360 99999 BAICHENG NORTHEAST CH 45.633 122.85 151.0 19560820 19611031 509450 99999 TA-AN CH 0.0 0.0 -999.0 19801003 20070727 509490 99999 QIAN GORLOS CH 45.083 124.867 136.0 19560820 20170923 509530 99999 HARBIN CH 45.933 126.56700000000001 117.7 19560820 20170923 509540 99999 CHAO-YUAN CH 0.0 0.0 -999.0 19801001 20031227 509630 99999 TONGHE CH 45.967 128.733 110.0 19560820 20170923 509680 99999 SHANGZHI CH 45.217 127.96700000000001 191.0 19560820 20170923 509780 99999 JIXI CH 45.3 130.917 273.5 19560820 20170923 509830 99999 HULIN CH 45.766999999999996 132.967 103.0 19730101 20170923 509880 99999 BOGUS CHINESE CH 19890406 20020509 510530 99999 KABA HE CH 48.05 86.35 534.0 19600101 20170923 510560 99999 APPROXIMATE LOCALE CH 47.933 86.167 0.0 19890508 20020918 510680 99999 FUHAI/BURULTOKAY CH 47.1 87.383 472.0 19620306 20020513 510760 99999 ALTAY CH 47.733000000000004 88.083 737.0 19560820 20170923 510770 99999 BOGUS CHINESE CH 47.167 88.367 -999.0 19570613 20020824 510860 99999 BOGUS CHINESE CH 19840502 20020924 510870 99999 FUYUN CH 46.983000000000004 89.51700000000001 827.0 19560820 20170923 511160 99999 BOGUS CHINESE CH 19870103 20020803 511330 99999 TACHENG CH 46.733000000000004 83.0 535.0 19610901 20170923 511560 99999 HOBOKSAR CH 46.817 85.75 1323.2 19560820 20170923 511860 99999 QINGHE/QINGGLI CH 46.717 90.4 1463.0 19620302 20020820 512320 99999 PA-ERH-LU-K'O MTN CH 45.95 82.56700000000001 1067.0 19591209 20020513 512410 99999 TO-LI CH 45.95 83.617 2072.0 19570629 20050515 512430 99999 KARAMAY CH 45.6 84.85 428.0 19610402 20170923 512880 99999 BAYTIK SHAN CH 45.367 90.53299999999999 1651.0 19591209 20170923 512940 99999 BOGUS CHINESE CH 19860504 20011008 513300 99999 BOLE/BORTALA CH 44.917 82.06700000000001 1366.0 19620302 20020513 513340 99999 JINGHE CH 44.567 82.81700000000001 330.2 19560820 20170923 513460 99999 KUYTUN CH 44.433 84.96700000000001 442.0 19560820 19991014 513520 99999 PAO-TAI EAST CH 44.817 85.6 335.0 19560820 19570630 513560 99999 SHIHEZI CH 44.3 86.03299999999999 457.0 19560820 20020221 513650 99999 FUKANG CH 44.15 87.98299999999999 549.0 19620302 20020513 513790 99999 QITAI CH 44.016999999999996 89.56700000000001 794.0 19560820 20170923 514300 99999 INING CH 43.917 81.283 670.0 19560820 19580812 514310 99999 YINING CH ZWYN 43.95 81.333 663.0 19580809 20170923 514370 99999 ZHAOSU/MONGGOLKURE CH 43.167 81.117 1830.0 19620302 20050918 514630 99999 WU LU MU QI CH 43.783 87.617 919.0 19560820 20170923 514635 99999 DIWOPU CH ZWWW 43.907 87.47399999999999 647.7 19850209 20170923 514670 99999 BALGUNTAY CH 42.667 86.333 1753.0 19600101 20170923 514770 99999 PAU-YANG-HU CH 43.2 88.46700000000001 1037.0 19620302 20020513 514950 99999 SHISANJIANFANG CH 43.217 91.73299999999999 732.0 19560820 20170923 514960 99999 YIWANQUAN CH 43.383 92.1 1890.0 19890901 19990715 515260 99999 CHUGIRTY CH 42.8 80.85 2042.0 19620302 20020513 515420 99999 BAYANBULAK CH 43.033 84.15 2459.0 19600101 20170923 515570 99999 BOGUS CHINESE CH 19881001 20070429 515670 99999 YANQI CH 42.05 86.56700000000001 1097.0 19560820 19991105 515730 99999 TURPAN CH 42.95 89.23299999999999 39.3 19560820 20170923 515810 99999 SHANSHAN/PIQAN CH 42.917 90.25 410.0 19890901 19970504 516280 99999 WEN-SU CH 41.266999999999996 80.233 1286.0 19560820 19991014 516330 99999 BAICHENG/BAY CH 41.766999999999996 81.867 1280.0 19621101 20020513 516380 99999 KUQA SOUTHWEST CH 41.3 81.683 985.0 19620302 19620731 516420 99999 LUNTAI/BUGUR CH 41.783 84.167 883.0 19620302 20020513 516440 99999 KUQA CH 41.717 82.95 1100.0 19560820 20170923 516560 99999 KORLA CH 41.733000000000004 85.81700000000001 903.0 19610901 20170923 517010 99999 SAI-K'O-LO-T'E-MA CH 40.45 75.383 3651.0 19620302 20020805 517050 99999 AR-TUX CH 39.667 76.167 1494.0 19560820 20020513 517060 99999 TEJAN CH 39.7 76.35 19560820 19570930 517080 99999 AK-TO CH 0.0 0.0 -999.0 19790705 19820402 517090 99999 KASHI CH ZWSH 39.543 76.02 1380.4 19571004 20170923 517110 99999 AKQI CH 40.933 78.45 1986.0 19570701 20170923 517160 99999 BACHU CH 39.8 78.567 1117.0 19560820 20170923 517200 99999 CH'I-LAN-TAI CH 40.533 79.533 1158.0 19620202 20030516 517300 99999 ALAR CH 40.5 81.05 1013.0 19620302 20170923 517470 99999 TAZHONG CH 39.0 83.667 1099.0 20010915 20170923 517650 99999 TIKANLIK CH 40.633 87.7 847.0 19570630 20170923 517770 99999 RUOQIANG CH 39.033 88.167 889.0 19560820 20170923 517780 99999 BOGUS CHINESE CH 19801004 20020611 517860 99999 BOGUS CHINESE CH 19801004 20011214 518040 99999 P U-LI CH 37.783 75.233 3159.0 19570201 19600328 518110 99999 SHACHE CH 38.433 77.267 1232.0 19560820 20170923 518180 99999 PISHAN CH 37.617 78.283 1376.0 19610301 20170923 518280 99999 HOTAN CH ZWTN 37.133 79.933 1375.0 19560820 20170923 518390 99999 MINFENG CH 37.067 82.71700000000001 1409.0 19600101 20020513 518480 99999 ANDIR CH 37.933 83.65 1264.0 19620302 19990104 518550 99999 QIEMO/QARQAN CH 38.15 85.55 1248.0 19560820 20020513 518860 99999 MANGNAI CH 38.25 90.85 2945.0 19610801 20170923 518950 99999 ZILIUJING WEST CH 37.85 91.48299999999999 3061.0 19560820 19610705 519150 99999 SOGAT SOUTHWEST CH 36.333 78.0 3700.0 19570629 19600131 519310 99999 YUTIAN/KERIYA CH 36.867 81.7 1554.0 19560820 20030629 521010 99999 BARKOL CH 43.583 92.85 1584.0 19610901 20020530 521120 99999 NAOMAOHU CH 43.6 95.133 469.0 20030330 20170923 521180 99999 YIWU CH 43.266999999999996 94.7 1729.0 19610901 20021231 522030 99999 HAMI CH ZWHM 42.817 93.51700000000001 739.0 19560820 20170923 522230 99999 19740613 19741018 522610 99999 19870507 19870507 522670 99999 EJIN QI CH 41.95 101.06700000000001 941.0 19600301 20170923 522680 99999 APPROXIMATE LOCALE CH 42.083 101.667 0.0 19740425 20020522 523030 99999 YA-MAN-SU CH 0.0 0.0 -999.0 19731008 20011209 523130 99999 XING-XING-XIA CH 41.783 95.133 1935.0 19560820 20011109 523180 99999 HONGLIUYUAN CH 41.067 95.417 1524.0 19740612 19750417 523230 99999 MAZONG SHAN CH 41.8 97.03299999999999 1770.0 19591209 20170923 523330 99999 YEH-MA-CHING CH 41.7 98.25 1463.0 19740430 19820421 523430 99999 SHU-LUN-CHING CH 41.95 100.0 958.0 19610701 19611031 523530 99999 DALAIN HOB EAST CH 41.967 100.883 946.0 19570601 19580531 523670 99999 BOGUS CHINESE CH 19801001 19850320 523770 99999 BOGUS CHINESE CH 19801002 19840506 523780 99999 GUAIZIHU CH 41.367 102.367 960.0 19600501 20170923 523910 99999 PANG-TING-TO-TO-KAI CH 41.75 103.96700000000001 1463.0 19600101 20020416 524180 99999 DUNHUANG CH 40.15 94.68299999999999 1140.0 19560820 20170923 524240 99999 AN-XI CH 40.5 96.0 1177.0 19570629 20020615 524310 99999 BOGUS CHINESE CH 19840102 19860927 524320 99999 19870518 19870518 524340 99999 YUMENZHEN NORTHEAST CH 40.467 97.18299999999999 1360.0 19621102 19621230 524360 99999 YUMENZHEN CH 40.266999999999996 97.03299999999999 1527.0 19560820 20170923 524410 99999 BEISHAN (MTNS) CH 40.717 98.617 1554.0 19730101 19900418 524460 99999 SHUANGCHENGTZU CH 40.4 99.8 1158.0 19560820 20020513 524470 99999 JINTA CH 39.817 98.9 1372.0 19890101 20020513 524950 99999 BAYAN MOD CH 40.75 104.5 1329.0 19610902 20170923 525230 99999 APPROXIMATE LOCALE CH 39.833 96.75 0.0 19801001 19840611 525330 99999 JIUQUAN/SUZHOU CH ZLJQ 39.766999999999996 98.48299999999999 1478.0 19460331 20170923 525331 99999 ZHONGCHUAN CH ZLLL 36.515 103.62 1947.1 20040713 20170923 525360 99999 JIAYUGUAN SOUTHWEST CH 39.617 98.05 2154.0 19610903 19610930 525430 99999 BOGUS CHINESE CH 19801002 20020501 525460 99999 GAOTAI WEST CH 39.383 99.71700000000001 1354.0 19560820 19611031 525760 99999 LAI-YEN-CH'IH CH 39.383 102.833 1383.0 19570601 20020513 526020 99999 LENGHU CH 38.833 93.383 2771.0 19570701 20170923 526180 99999 DANGCHENGWAN SOUTH CH 39.167 94.833 3746.0 19620302 19620430 526330 99999 TUO-LE CH 38.8 98.417 609.0 19610902 20020513 526450 99999 YEH-NIU-KOU CH 38.467 99.55 2169.0 19600301 20020513 526510 99999 ZHANG-YE/SOUTH CH 38.817 100.4 1493.0 19560820 20011205 526520 99999 ZHANGYE CH 39.083 100.28299999999999 1462.0 19600101 20170923 526530 99999 ZHANG-YE/SOUTHEAST CH 38.8 100.667 1463.0 19731109 20011012 526570 99999 BABAO CH 38.233000000000004 100.25 2700.0 19600101 20020513 526610 99999 SHAN-DAN CH 38.8 101.083 1760.0 19560820 20020513 526710 99999 SALT LAKE CH 0.0 0.0 -999.0 19740422 20020609 526740 99999 JIN-CHANG CH 38.467 102.18299999999999 1676.0 19640101 20020513 526790 99999 CAIQI SOUTHEAST CH 38.083 102.917 1525.0 19560820 19611031 526810 99999 MINQIN CH 38.633 103.083 1367.0 19570502 20170923 526820 99999 BOGUS CHINESE CH 19890404 20020106 526850 99999 19870511 19870511 526980 99999 GOLMUD NW CH 0.0 0.0 -999.0 19800703 20010829 527020 99999 SHA-LIANG-ZI CH 37.917 93.35 0.0 19801005 20010903 527070 99999 T'A-ERH-TING CH 37.067 92.867 2712.0 19570701 20020513 527130 99999 DA-QAIDAM CH 37.85 95.367 3174.0 19570630 20170923 527180 99999 19731023 19750420 527230 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740612 20020926 527360 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731004 20020818 527370 99999 DELINGHA CH 37.367 97.367 2982.0 19560820 20170923 527380 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731129 20011104 527400 99999 HSIN-YUAN CH 37.3 99.01700000000001 3627.0 19890928 19970514 527440 99999 KARMAR NORTHWEST CH 37.5 98.8 3978.0 19610316 19620621 527530 99999 BOGUS CHINESE CH 37.683 100.7 3353.0 19740612 19850306 527540 99999 GANGCA CH 37.333 100.133 3302.0 19610316 20170923 527650 99999 HAO-MEN CH 37.367 101.617 2682.0 19610901 20020513 527660 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731110 20011214 527760 99999 GU-LANG (?) CH 0.0 0.0 -999.0 19740617 19811221 527770 99999 XOLUNGLANG SE CH 37.15 102.21700000000001 2934.0 19740425 19741203 527790 99999 TIANZHU NORTHEAST CH 37.266999999999996 102.883 2728.0 19740423 19760112 527820 99999 NAME/LOCATION UNKN CH 19801004 20011110 527870 99999 WUSHAOLING CH 37.2 102.867 3044.0 19560820 20170923 527880 99999 BOGUS CHINESE CH 37.233000000000004 103.4 2415.0 19731101 20020922 527970 99999 CHING-T'AI CH 37.133 104.21700000000001 1402.0 19620302 20020513 527980 99999 BOGUS CHINESE CH 37.067 104.46700000000001 1829.0 19740427 20160421 528130 99999 GOL-MUD (?) CH 36.817 95.35 2731.0 19731109 20011126 528180 99999 GOLMUD CH ZLGM 36.417 94.9 2809.0 19560820 20170923 528250 99999 NUO-MU-HONG CH 36.45 96.46700000000001 2804.0 19570601 20021025 528260 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 19850320 528330 99999 SERH CH 36.95 98.35 2987.0 19890901 20020513 528360 99999 DOULAN CH 36.3 98.1 3190.0 19560820 20170923 528380 99999 HSIANG-JIH-TE NE CH 36.067 97.75 2976.0 19731108 19750414 528420 99999 CHA-KA CH 36.783 99.083 2925.0 19610901 20001028 528460 99999 BOGUS CHINESE CH 19801003 19840515 528540 99999 JIANG-XI-GOU (?) CH 0.0 0.0 -999.0 19570701 20020910 528560 99999 GONGHE CH 36.35 100.78299999999999 2743.0 19560820 20020513 528570 99999 BOGUS CHINESE CH 19801004 19850328 528640 99999 HUANG-YUAN (?) CH 0.0 0.0 -999.0 19841101 20020712 528660 99999 XINING CH ZLXN 36.617 101.76700000000001 2262.0 19560820 20170923 528680 99999 HEY-IN CH 36.033 101.43299999999999 2072.0 19620302 20051212 528760 99999 MINHE CH 36.333 102.833 1905.0 19620302 20090928 528860 99999 APPROXIMATE LOCALE CH 36.567 103.7 1951.0 19731108 20020803 528880 99999 LAN-ZHOU/CITY CH ZLAN 36.117 103.617 1600.0 19740613 20020301 528890 99999 LANZHOU CH 36.05 103.883 1518.0 19560820 20170220 528950 99999 JINGYUAN CH 36.583 104.68299999999999 1505.0 19560820 20030118 529070 99999 BOGUS CHINESE CH 35.167 92.833 4877.0 19740601 20020310 529080 99999 WUDAOLIANG CH 35.217 93.083 4613.0 19570701 20170923 529400 99999 APPROXIMATE LOCALE CH 35.5 99.333 0.0 19841101 19851116 529410 99999 NAME UNKNOWN CH 35.717 98.917 3962.0 19900101 20101225 529420 99999 ZIKETAN WEST CH 35.766999999999996 99.167 4723.0 19600101 19600430 529430 99999 XINGHAI CH 35.75 99.98299999999999 3200.0 19600601 20020923 529470 99999 APPROXIMATE LOCALE CH 35.167 98.75 0.0 19831203 19850625 529550 99999 GUINAN CH 35.583 100.75 3123.0 20010802 20170923 529570 99999 TONGDE CH 35.266999999999996 100.65 3290.0 19560820 19990422 529580 99999 APPROXIMATE LOCALE CH 35.266999999999996 100.65 0.0 19731129 19890816 529680 99999 SON-AG CH 35.033 101.46700000000001 3565.0 19620302 20020208 529740 99999 BOGUS CHINESE CH 19910201 20020417 529780 99999 XIAHE NORTH CH 35.233000000000004 102.5 3050.0 19560820 19580408 529830 99999 YU ZHONG CH 35.867 104.15 1875.0 20040510 20170923 529840 99999 LINXIA CH 35.467 102.98299999999999 1920.0 19620302 20020513 529860 99999 LINTAO CH 35.333 104.0 1905.0 19570705 20020513 529960 99999 HUAJIALING CH 35.383 105.0 2450.0 19560820 20170923 530630 99999 19740421 19740716 530670 99999 ENGER HULASA MG 44.167 111.167 1086.0 19740429 19850402 530680 99999 ERENHOT CH 43.65 112.0 966.0 19560820 20170923 530730 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740429 20020410 530780 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740420 20020610 530830 99999 NARAN BULAG CH 44.617 114.15 1183.0 19580101 20170923 531490 99999 MANDAL CH 42.533 110.133 1223.0 19580101 20170923 531920 99999 ABAG QI CH 44.016999999999996 115.0 1147.7 19560820 20170923 531950 99999 ENGER SHOOTO CH 43.383 114.45 1128.0 19570601 20090904 532310 99999 HAILS CH 41.45 106.383 1510.0 19600102 20170923 532760 99999 JURH CH 42.4 112.9 1152.0 19560820 20170923 532780 99999 BOIN SUM CH 42.2 112.51700000000001 1280.0 19890901 19910607 532860 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731009 20011205 533230 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740617 19841006 533310 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20011010 533360 99999 HALIUT CH 41.567 108.51700000000001 1290.0 19560820 20170923 533520 99999 BAILING-MIAO CH 41.7 110.43299999999999 1377.0 19560820 20170923 533620 99999 SHARA MORON SUME CH 42.033 111.53299999999999 1372.0 19610801 20020404 533630 99999 APPROXIMATE LOCALE CH 41.667 111.78299999999999 1524.0 19740616 20020203 533760 99999 BA-DAO-GOU (?) CH 0.0 0.0 -999.0 19740421 20020605 533910 99999 HUADE CH 41.9 114.0 1484.0 19560820 20170923 533980 99999 19740425 19740803 534200 99999 HANG-CHIN-HOU-CHI NW CH 40.967 107.167 1035.0 19560820 19611031 534360 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20030723 534460 99999 BAOTOU CH ZBOW 40.567 109.98299999999999 940.0 19560820 19840813 534463 99999 BAOTOU CH ZBOW 40.633 110.0 940.0 20060727 20160116 534620 99999 PI KO CHAI(AFLD) CH 40.75 111.26700000000001 1036.0 19731020 20030923 534630 99999 BAITA CH ZBHH 40.851 111.824 1083.9 19560820 20170923 534730 99999 CHI PI PU LANG CH 0.0 0.0 -999.0 19800708 20020509 534770 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740425 20020524 534780 99999 YOU-YU CH 40.167 112.333 1212.0 19570601 20070727 534800 99999 JINING CH 41.033 113.06700000000001 1416.0 19560820 20170923 534870 99999 DATONG CH 40.083 113.417 1054.0 19570601 20170923 534880 99999 CHU LE P'U CH 0.0 0.0 -999.0 19731111 20020621 535020 99999 JARTAI CH 39.783 105.75 1143.0 19560820 20170923 535130 99999 LINHE CH 40.766999999999996 107.4 1041.0 19560820 20170923 535190 99999 SHIZUISHAN/DAWUKOU CH 39.05 106.4 975.0 19620302 20020513 535230 99999 A-LU-CH'IH-LAO-KA CH 39.883 108.0 1372.0 19740613 20020910 535290 99999 OTOG QI CH 39.1 107.98299999999999 1381.0 19560820 20170923 535330 99999 HANG-GIN-QI CH 39.85 108.73299999999999 1450.0 19731004 20130527 535390 99999 PA LA MU TU SHIH LI CH 39.15 108.9 1140.0 19731004 19850401 535430 99999 DONGSHENG CH 39.833 109.98299999999999 1459.0 19730101 20170923 535460 99999 XINJIE NW CH 39.283 109.75 1310.0 19560820 19631231 535630 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19800401 20011128 535640 99999 HEQU CH 39.367 111.21700000000001 1037.0 19560820 20170923 535730 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20020625 535770 99999 BOGUS CHINESE CH 39.133 112.3 1219.0 19740612 20070602 535780 99999 BOGUS CHINESE CH 39.3 112.417 900.0 19731108 20070727 535870 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801003 20021010 535880 99999 WUTAI SHAN CH 38.95 113.51700000000001 2210.0 19560820 20170923 535930 99999 YU XIAN CH 39.833 114.56700000000001 910.0 19560820 20170923 536020 99999 ALXA ZUOQI/BAYAN HO CH 38.833 105.53299999999999 1500.0 19600101 20090904 536140 99999 YINCHUAN CH ZLIC 38.483000000000004 106.21700000000001 1112.0 19560820 20170923 536150 99999 YINCHUAN (CITY) CH 38.467 106.31700000000001 1005.0 19620302 20040206 536170 99999 19740423 19740502 536240 99999 BOGUS CHINESE CH 19801002 20011024 536360 99999 UXIN-QI CH 38.6 108.85 1341.0 19840503 19860712 536460 99999 YULIN CH 38.266999999999996 109.78299999999999 1158.0 19560820 20170923 536520 99999 BOGUS CHINESE CH 38.983000000000004 110.6 1219.0 19740503 20020604 536620 99999 MA-CHIA-HO EAST CH 38.8 111.45 1671.0 19740422 19740816 536630 99999 WU-ZHAI CH 38.917 111.833 1463.0 19570616 20070727 536640 99999 XINXIAN CH 38.4 112.71700000000001 900.0 19570601 20070727 536660 99999 HSIA-TAO-HUNG SOUTH CH 38.4 111.833 1370.0 19570601 19620421 536730 99999 YUANPING CH 38.75 112.7 838.0 19560820 20170923 536810 99999 BOGUS CHINESE CH 38.717 113.0 792.0 19740124 20020417 536980 99999 SHIJIAZHUANG CH 38.067 114.35 104.8 19560820 20170923 537050 99999 ZHONGNING CH 37.483000000000004 105.68299999999999 1193.0 19560820 20170923 537130 99999 BOGUS CHINESE CH 19801001 20020520 537140 99999 BOGUS CHINESE CH 19801002 20050130 537150 99999 HUI-AN-BU CH 37.45 106.667 1463.0 19731110 20010712 537230 99999 YANCHI CH 37.8 107.383 1356.0 19560820 20170923 537380 99999 PIN-KOU-MEN CH 37.15 108.383 1438.0 19600102 20020513 537400 99999 ZI-CHANG CH 37.133 109.65 1189.0 19570601 20051004 537430 99999 MI-ZHI AIRFIELD (?) CH 37.867 110.06700000000001 975.0 19740423 19820424 537450 99999 APPROXIMATE LOCALE CH 37.467 109.583 0.0 19731004 20020923 537530 99999 BOGUS CHINESE CH 37.833 110.833 914.0 19740613 19840904 537540 99999 SUIDE CH 37.467 110.25 900.0 19620302 20020802 537570 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740430 19840218 537630 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731004 20030924 537640 99999 LISHI CH 37.5 111.1 951.0 19570601 20170923 537720 99999 WUSU CH ZBYN 37.747 112.62799999999999 784.9 19560820 20170923 537760 99999 YU-CI (?) CH 37.7 112.71700000000001 823.0 19740422 20011111 537820 99999 YANGQUAN CH 37.817 113.56700000000001 908.0 19570601 20020930 537870 99999 YUSHE CH 37.067 112.98299999999999 1042.0 19570601 20170923 537880 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740423 20020422 537970 99999 BOGUS CHINESE CH 19801002 20011222 537980 99999 XINGTAI CH 37.183 114.367 184.0 19570601 20170923 537981 99999 HANDAN/HEIBEI CH ZBHD 36.533 114.43299999999999 69.8 20120116 20140715 538050 99999 HAI-YUAN CH 36.567 105.65 1850.0 19740613 20020224 538100 99999 QI-YING CH 36.55 106.15 1615.0 19610103 20020513 538170 99999 GUYUAN CH 36.016999999999996 106.28299999999999 1676.0 19600101 20050920 538180 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740421 19850411 538210 99999 HUNG-TE CH 36.766999999999996 107.2 1322.0 19610103 20020513 538230 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731008 20020614 538450 99999 YAN AN CH ZLYA 36.6 109.5 959.0 19560820 20170923 538530 99999 XI-XIAN CH 36.7 110.93299999999999 1006.0 19610801 20070727 538630 99999 JIEXIU CH 37.033 111.917 745.0 19560820 20170923 538650 99999 BOGUS CHINESE CH 19840204 19860124 538660 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731115 20041021 538680 99999 CANYU NORTHEAST CH 36.15 111.45 462.0 19560820 19611031 538870 99999 CHANG-ZHI CH 36.2 113.117 975.0 19560820 20041117 538920 99999 YONGNIAN NORTHWEST CH 36.8 114.45 60.0 19560820 19570731 538980 99999 ANYANG CH 36.05 114.133 195.7 19570601 20170923 539030 99999 XI-JI CH 35.967 105.71700000000001 1935.0 19620302 20020513 539070 99999 19740423 19740916 539130 99999 BOGUS CHINESE CH 19890611 20020929 539150 99999 PINGLIANG CH 35.55 106.667 1348.0 19560820 20170923 539230 99999 XIFENGZHEN CH 35.733000000000004 107.633 1423.0 19560820 20170923 539270 99999 19740617 19740729 539290 99999 CHANG-WU CH 35.217 107.8 1219.0 19801001 20020930 539380 99999 CHIU-PO-TOU NW CH 35.283 108.3 1219.0 19740601 19741025 539420 99999 LUO-CHUAN CH 35.75 109.417 1000.0 19570601 20020513 539450 99999 HUANG-LONG CH 0.0 0.0 -999.0 19740519 20020613 539470 99999 TONGCHUAN CH 35.167 109.05 914.0 19560820 20000108 539480 99999 BOGUS CHINESE CH 19801002 19850311 539590 99999 YUNCHENG CH 35.117 111.06700000000001 376.5 19560820 20170923 539750 99999 YANGCHENG CH 35.483000000000004 112.4 659.0 19610801 20170923 539850 99999 SHEN-CHUANG CH 0.0 0.0 -999.0 19731110 20020603 539860 99999 GUGUZHAI NW CH 35.25 113.95 72.0 19560820 19611031 539950 99999 HUAXIANCHENG NE CH 35.583 114.55 62.0 19731111 19760103 540010 99999 TAI-LE-MIN-SU-MU CH 44.9 115.417 1143.0 19900401 19950919 540120 99999 XI UJIMQIN QI CH 44.583 117.6 997.0 19560820 20170923 540160 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801002 20020521 540170 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20030311 540260 99999 JARUD QI CH 44.567 120.9 266.0 19560820 20170923 540270 99999 LINDONG CH 43.983000000000004 119.4 485.0 19560820 20170923 540280 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740101 20020413 540410 99999 KAITONG/TONGYU CH 44.8 123.083 152.0 19570601 20070727 540490 99999 CHANGLING CH 44.25 123.96700000000001 190.0 19560820 20170923 540630 99999 WU-CHAI-CHAN CH 44.967 125.68299999999999 240.0 19570601 20070727 540680 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731108 20020313 540740 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 19821126 540800 99999 SHAHEZI SE CH 44.483000000000004 127.6 249.0 19571201 19590831 540940 99999 MUDANJIANG CH 44.5 129.667 306.5 19560820 20170923 540960 99999 SUIFENHE CH 44.383 131.15 498.0 19560820 20170923 540970 99999 MUDANJIANG NORTH CH 44.133 129.217 282.0 19570601 19590831 541020 99999 XILIN HOT CH 43.95 116.117 1004.0 19560820 20170923 541150 99999 LINXI CH 43.633 118.03299999999999 825.4 19560820 20170923 541250 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801007 20020609 541340 99999 KAILU CH 43.617 121.31700000000001 274.0 19570601 20020930 541350 99999 TONGLIAO CH 43.6 122.26700000000001 180.0 19560820 20170923 541420 99999 WO-HU-TUN CH 43.7 123.6 183.0 19570601 20070727 541450 99999 CHENG-CHIZ-T'UN CH 43.5 123.5 183.0 19800402 20011114 541570 99999 SIPING CH 43.183 124.333 167.0 19560820 20170923 541580 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801003 20020411 541610 99999 LONGJIA CH ZYCC 43.996 125.681 215.2 19560820 20170923 541611 99999 TAIPING CH ZYHB 45.623000000000005 126.25 139.3 20040713 20170923 541720 99999 JILIN CH 43.85 126.55 188.0 19570601 20020809 541810 99999 JIAOHE SOUTH CH 43.717 127.15 275.0 19560820 19611031 541860 99999 DUNHUA CH 43.367 128.2 525.0 19570601 20170923 541920 99999 LUO-ZI-GOU CH 43.717 130.317 500.0 19571201 20011225 541950 99999 WANG-CH'ING CH 43.317 129.75 244.0 19890101 20070727 542070 99999 NAN-JUAN-ZI CH 42.3 115.68299999999999 1524.0 19740426 20030130 542080 99999 DUOLUN CH 42.183 116.46700000000001 1247.0 19560820 20170923 542130 99999 WUDAN/ONGNIUD QI CH 42.967 119.03299999999999 634.0 19570601 20040920 542180 99999 CHIFENG CH 42.3 118.833 567.0 19560820 20170923 542260 99999 BUGT CH 42.333 120.7 401.0 19570601 20170923 542350 99999 HA-ERH-T'AO CH 42.5 122.133 183.0 19731006 20021121 542360 99999 ZHANGWU CH 42.417 122.53299999999999 84.0 19560820 20170923 542370 99999 FUXIN CH 42.0 121.633 182.0 19570601 20020930 542590 99999 QINGYUAN CH 42.067 124.867 230.0 19570601 20170923 542660 99999 MEIHEKOU WEST CH 42.516999999999996 125.633 326.0 19560820 19611031 542730 99999 HUADIAN CH 42.983000000000004 126.75 264.0 19570601 20170923 542740 99999 HUI-NAN-ZHEN CH 0.0 0.0 -999.0 19800418 20020429 542760 99999 JING-YU CH 0.0 0.0 -999.0 19570601 20070727 542840 99999 FUSONG CH 42.333 127.28299999999999 610.0 19610801 20070727 542850 99999 LUSHUIHE CH 42.516999999999996 127.8 853.0 19580101 20070727 542870 99999 SONGJIANGHE CH 42.167 127.5 975.0 19610801 20030125 542920 99999 YANJI CH 42.883 129.5 178.0 19560820 20170923 543080 99999 FENGNING CH 41.2 116.633 661.0 19570601 20170923 543110 99999 WEICHANG CH 41.933 117.75 844.0 19560820 20170923 543240 99999 CHAOYANG CH 41.55 120.45 176.0 19570302 20170923 543260 99999 CHAOYANG AIRFIELD CH 41.583 120.43299999999999 152.0 19570601 20020603 543350 99999 GOUBANGZI CH 41.383 121.8 25.0 19570601 20020930 543360 99999 TAI-AN/SOUTHEAST CH 0.0 0.0 -999.0 19740304 20020414 543370 99999 JINZHOU CH 41.133 121.117 70.0 19560820 20170923 543380 99999 PAN-SHAN CH 0.0 0.0 -999.0 19740910 20151103 543390 99999 ANSHAN CH 41.133 122.98299999999999 17.0 19570601 20040118 543420 99999 SHENYANG CH ZYYY 41.733000000000004 123.51700000000001 43.0 19560820 20170923 543424 99999 TAOXIAN CH ZYTX 41.64 123.48299999999999 60.4 19920701 20170923 543430 99999 FU-SHUN CH 0.0 0.0 -999.0 19740617 20030318 543460 99999 BENXI CH 41.317 123.78299999999999 185.0 19570601 20170923 543510 99999 DA-HUO-FANG CH 41.883 124.083 273.0 19610801 20040624 543630 99999 TONGHUA CH 41.717 125.917 312.0 19570601 20020930 543650 99999 HUANREN CH 41.266999999999996 125.367 204.0 19570601 20020930 543740 99999 LINJIANG CH 41.8 126.917 381.0 19570401 20170923 543770 99999 JI'AN CH 41.15 126.21700000000001 225.0 19560820 20170923 543780 99999 CHING-ZHI (?) CH 0.0 0.0 -999.0 19800702 20020604 543860 99999 CHANGBAI CH 41.417 128.183 775.0 19570601 20170923 544010 99999 ZHANGJIAKOU CH 40.783 114.883 726.0 19560820 20170923 544050 99999 HUAILAI CH 40.417 115.5 538.0 19560820 20170923 544060 99999 YEN-CHING /YEN-KING CH 40.467 115.93299999999999 19610110 19610228 544230 99999 CHENGDE CH 40.967 117.917 423.0 19560820 20170923 544290 99999 ZUNHUA CH 40.2 117.96700000000001 152.0 19570601 20020930 544360 99999 QINGLONG CH 40.4 118.95 228.0 19570602 20170923 544490 99999 SHAN-HAI-GUAN CH 40.0 119.75 27.0 19560820 19811228 544540 99999 SUIZHONG CH 40.35 120.35 18.0 19730101 20020930 544550 99999 SHAHOUSUO CH 40.484 120.56700000000001 10.0 19570601 19631231 544710 99999 YINGKOU CH 40.667 122.2 4.0 19560820 20170923 544740 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801002 20020119 544760 99999 BAIYANGGOU NW CH 40.35 122.75 280.0 19570601 19590831 544770 99999 XIONG-YUE-CHENG CH 40.167 122.133 1.0 19740503 20020717 544830 99999 CAOHEKOU CH 40.883 123.9 235.0 19560820 19900414 544860 99999 SITAIZI CH 40.467 123.96700000000001 126.0 19570601 19590831 544930 99999 KUANDIAN CH 40.717 124.78299999999999 261.0 19560820 20170923 544970 99999 DANDONG CH 40.05 124.333 14.0 19560820 20170923 544980 99999 APPROXIMATE LOCALE CH 40.117 124.333 0.0 19731115 20020605 545010 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801005 20021201 545110 99999 BEIJING - CAPITAL INTERNATIONAL AIRPORT CH ZBAA 40.08 116.585 35.4 19451031 20170923 545120 99999 BEI-JING/NAN-YUAN CH 39.783 116.383 40.0 19800701 20020209 545130 99999 BEI-JING/TONG-XIAN CH 39.817 116.7 21.0 19800703 20010725 545170 99999 TS AN KANG CH 0.0 0.0 -999.0 19800707 20020619 545180 99999 BAXIAN CH 39.05 116.4 8.0 19570601 20040124 545230 99999 YU-TIAN CH 0.0 0.0 -999.0 19740424 20011011 545270 99999 TIANJIN CH 39.1 117.167 5.0 19560820 20170923 545273 99999 BINHAI CH ZBTJ 39.124 117.346 3.0 19811125 20170923 545280 99999 TIAN-JIN/ZHANG-GUI CH 39.133 117.35 3.0 19800702 20020911 545290 99999 CHAI-SHANG CH 0.0 0.0 -999.0 19731130 20020521 545340 99999 TANGSHAN CH 39.65 118.1 29.0 19560820 20170923 545390 99999 LETING CH 39.433 118.9 12.0 19570601 20170923 545430 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740425 20020313 545630 99999 FUXIAN/WAFANGDIAN CH 39.633 121.98299999999999 17.0 19570601 20020930 545640 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740421 20020207 545750 99999 CHENGZITAN CH 39.5 122.5 17.0 19570601 19590831 545770 99999 LU-DA/ZHENG-SHA-HE CH 39.266999999999996 122.083 31.0 19800403 20020113 545840 99999 SHISHAN NORTHEAST CH 39.717 123.06700000000001 17.0 19560820 19611031 545870 99999 HAIYANG DAO CH 39.05 123.21700000000001 -999.9 19570801 20050516 546020 99999 BAODING CH 38.733000000000004 115.48299999999999 17.0 19560820 20170923 546060 99999 SUNING CH 38.433 115.833 15.0 19570601 19590831 546140 99999 HE-JIAN CH 0.0 0.0 -999.0 19800403 20011222 546160 99999 CANGZHOU CH 38.333 116.833 11.0 19560820 20011024 546180 99999 POTOU CH 38.083 116.55 13.0 19971201 20170923 546230 99999 TANGGU CH 39.016999999999996 117.6 4.0 19570601 20020930 546240 99999 HUANGHUA CH 38.383 117.35 4.0 19620402 20020930 546250 99999 QI-KOU CH 0.0 0.0 -999.0 19570601 20020510 546260 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801002 19850106 546350 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20011013 546430 99999 MOORED VESSEL CH 38.967 119.95 6.0 19860501 19931229 546460 99999 MOORED VESSEL CH 38.35 119.68299999999999 6.0 19881001 20000405 546530 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20020105 546560 99999 TUOJI ISLAND CH 38.167 120.78299999999999 59.0 19570601 20020811 546620 99999 ZHOUSHUIZI CH ZYTL 38.966 121.539 32.6 19560820 20170923 546630 99999 DA-SAN-SHAN ISLAND CH 38.883 121.81700000000001 161.0 19800714 20020212 546800 99999 BOGUS CHINESE CH 19801001 19851228 547020 99999 WANG CHIA CHING CH 0.0 0.0 -999.0 19800703 20030403 547050 99999 NANGONG CH 37.367 115.383 42.0 19610801 20051021 547070 99999 GUANG-ZUNG (?) CH 0.0 0.0 -999.0 19740504 19820419 547130 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801005 20060916 547140 99999 DEZHOU CH 37.433 116.31700000000001 22.0 19560820 20020212 547150 99999 LINGXIAN CH 37.333 116.56700000000001 19.0 19800701 20170923 547160 99999 LING HSIEN CH 0.0 0.0 -999.0 19740422 20020909 547230 99999 ZHAN-CHENG CH 0.0 0.0 -999.0 19731101 20020420 547250 99999 HUIMIN CH 37.5 117.53299999999999 12.0 19560820 20170923 547260 99999 BIN-XIAN CH 0.0 0.0 -999.0 19731004 20020829 547360 99999 YONGAN CH 37.55 118.73299999999999 6.0 19570601 20020930 547430 99999 NAME UNKNOWN CH 0.0 0.0 -999.0 19731005 20020801 547450 99999 CANG-SHANG CH 37.367 119.9 1.0 19740426 19840408 547510 99999 CHANG DAO CH 37.933 120.71700000000001 40.0 19860501 20170923 547530 99999 LONGKOU CH 37.617 120.31700000000001 5.0 19570601 20170923 547560 99999 DA-XIN-DIAN CH 37.617 120.9 100.0 19740426 20140503 547570 99999 APPROXIMATE LOCATIO CH 37.167 120.167 0.0 19770801 20090621 547580 99999 LAI-YANG AFLD (?) CH 36.967 120.583 72.0 19740504 20020709 547630 99999 YANTAI CH 37.55 121.4 25.0 19731108 20020520 547640 99999 FU-SHAN (?) CH 0.0 0.0 -999.0 19731109 20020605 547650 99999 YANTAI NORTHEAST CH 37.55 121.367 12.0 19560820 19611031 547720 99999 BOGUS CHINESE CH 19801004 20040628 547730 99999 BOGUS CHINESE CH 19801005 20020317 547740 99999 WEIHAI CH 37.45 122.03299999999999 61.0 19570601 20020930 547760 99999 CHENGSHANTOU CH 37.4 122.68299999999999 47.0 19570601 20170923 547900 99999 BOGUS CHINESE CH 19891001 19920529 548080 99999 XINXIAN CH 36.233000000000004 115.667 38.0 19570601 20170923 548230 99999 JINAN/TSINAN CH ZSTN 36.683 116.98299999999999 58.0 19560820 20170923 548260 99999 TAI SHAN CH 36.25 117.1 1536.0 19560820 20170923 548270 99999 TAI-AN CH 36.183 117.133 155.0 19570601 20020413 548300 99999 LIN-ZI CH 36.867 118.333 55.0 19570602 20020106 548360 99999 YIYUAN CH 36.183 118.15 302.0 19610701 20170923 548430 99999 WEIFANG CH 36.766999999999996 119.18299999999999 22.0 19560820 20170923 548460 99999 GAO-MI (?) CH 36.383 119.73299999999999 38.0 19800704 20011027 548520 99999 LAIYANG CH 36.983000000000004 120.65 72.0 19570601 20020930 548525 99999 NANTONG CH ZSNT 32.02 120.85 6.0 20050703 20160519 548530 99999 NANWU CH 0.0 0.0 -999.0 19731004 20020628 548570 99999 LIUTING CH ZSQD 36.266 120.374 10.1 19560820 20170923 548580 99999 CANG-KOU CH 36.167 120.367 10.0 19731110 20040126 548630 99999 HAIYANG CH 36.766999999999996 121.167 64.0 19570601 20170923 548680 99999 QIAN-LI ISLAND CH 36.266999999999996 121.383 18.0 19610801 20030211 548710 99999 SHIDAO CH 36.883 122.417 79.0 19560820 19611031 548970 99999 BOGUS CHINESE CH 19860604 20020808 549060 99999 HEZE/CAOZHOU CH 35.25 115.43299999999999 51.0 19560820 20020205 549070 99999 DING-TAO CH 35.067 115.56700000000001 0.0 19800401 19820428 549090 99999 DINGTAO CH 35.083 115.51700000000001 51.0 19950401 20170923 549150 99999 JI-NING CH 0.0 0.0 -999.0 19790702 20020713 549160 99999 YANZHOU CH 35.567 116.85 53.0 19560820 20170923 549230 99999 MENG YIN CH 0.0 0.0 -999.0 19800706 20020617 549290 99999 FEZXZAN CH 35.25 117.95 120.0 19980301 20170923 549360 99999 JUXIAN CH 35.55 118.75 109.0 19570601 20020930 549380 99999 LINYI CH 35.05 118.35 86.0 19570601 20010914 549450 99999 RIZHAO CH 35.433 119.53299999999999 37.0 19570601 20170923 549460 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19800704 19831124 549480 99999 BOGUS CHINESE CH 19801003 20020615 549520 99999 FLASHING LIGHT CH 35.967 120.48299999999999 25.0 19570601 20020609 551700 99999 20020603 20020603 552280 99999 SHIQUANHE CH 32.5 80.083 4280.0 19610701 20170923 552480 99999 LUMARINGBO CH 32.3 84.05 4420.0 19730313 20111117 552700 99999 20020117 20020117 552790 99999 BAINGOIN CH 31.366999999999997 90.01700000000001 4701.0 19570701 20170923 552940 99999 P'A-NA CH 32.266999999999996 91.667 4724.0 19801001 20020207 552990 99999 NAGQU CH 31.483 92.06700000000001 4508.0 19560820 20170923 553850 99999 BOGUS CHINESE CH 31.48 92.06 -999.0 20010717 20011008 554370 99999 T'U-KO-ERH-HO-KUNG CH 30.55 81.433 4736.0 19730313 20111117 554720 99999 XAINZA CH 30.95 88.633 4670.0 19600307 20170923 554880 99999 DEQEN SOUTH CH 30.333000000000002 90.083 5304.0 19591210 19620630 554930 99999 ZHA-TE-KE-TANG CH 30.733 92.45 4724.0 19630101 20020429 555690 99999 LHAZE CH 29.066999999999997 87.68299999999999 4237.0 19801001 20020207 555780 99999 XIGAZE CH 29.25 88.883 3837.0 19570701 20170923 555850 99999 BOGUS CHINESE CH 29.5 90.25 -999.0 19801027 20070914 555910 99999 LHASA CH ZULS 29.666999999999998 91.133 3650.0 19560820 20170923 555980 99999 NEDONG CH 29.233 91.76700000000001 3657.0 19591209 20020207 556560 99999 YALEP CH 28.383000000000003 86.15 5181.0 19800902 20020607 556640 99999 TINGRI CH 28.633000000000003 87.083 4300.0 19591210 20170923 556800 99999 GYANGZE CH 29.0 89.633 3657.0 19591209 20020207 556900 99999 CHE-KU CH 28.7 91.633 4336.0 19870311 20080712 556960 99999 LHUNZE CH 28.416999999999998 92.46700000000001 3861.0 19591209 20170923 557730 99999 PAGRI CH 27.733 89.083 4300.0 19560820 20170923 558210 99999 BOGUS CHINESE CH 19850301 19860921 559850 99999 20010802 20020824 559910 99999 19870511 19870511 560040 99999 TUOTUOHE CH 34.217 92.43299999999999 4535.0 19570701 20170923 560070 99999 AMDO NORTHEAST CH 33.417 92.833 4648.0 19591209 19620331 560160 99999 BIE-LI-XI-DU CH 34.1 95.03299999999999 4785.0 19730101 20030305 560180 99999 ZADOI CH 32.9 95.3 4068.0 19570701 20170923 560190 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20050522 560210 99999 QUMARLEB CH 34.133 95.78299999999999 4176.0 19570701 20170923 560230 99999 NAME/LOCATION UNKN CH 0.0 0.0 -999.0 19801001 19820330 560260 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801005 20020308 560280 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801009 20061017 560290 99999 YUSHU CH 33.016999999999996 96.95 3682.0 19560820 20170923 560295 99999 YUSHU BATANG AIRPORT CH ZLYS 32.817 97.133 3890.0 20100415 20150310 560310 99999 APPROXIMATE LOCALE CH 34.833 97.46700000000001 0.0 19740809 20011017 560330 99999 MADOI CH 34.917 98.21700000000001 4273.0 19560820 20170923 560340 99999 QINGSHUI-HE CH 33.8 97.133 4419.0 19570701 20020207 560360 99999 CANG-DUO (?) CH 0.0 0.0 -999.0 19731005 20020311 560380 99999 SHIQU CH 32.983000000000004 98.1 4114.0 19601001 20100424 560410 99999 UNKNOWN CH 34.5 98.883 4175.0 19600102 20120527 560420 99999 BOGUS CHINESE CH 19830705 19860420 560430 99999 BOGUS CHINESE CH 19910101 20020207 560440 99999 BOGUS CHINESE CH 19830728 20010921 560460 99999 DARLAG CH 33.75 99.65 3968.0 19560820 20170923 560570 99999 BOGUS CHINESE CH 19831201 19851123 560650 99999 HENAN CH 34.733000000000004 101.6 3501.0 19610901 20170923 560670 99999 JIGZHI CH 33.467 101.48299999999999 3350.0 19600706 20020207 560690 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20020814 560700 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740504 20050429 560740 99999 GA-HAI CH 34.2 102.3 3109.0 19890101 20031121 560750 99999 LANG-MU-SI CH 34.1 102.617 3565.0 19570630 20020704 560760 99999 XAGDOMBA EAST CH 34.1 102.9 3330.0 19740518 19741025 560790 99999 RUO'ERGAI CH 33.583 102.96700000000001 3441.0 19591209 20170923 560800 99999 HEZUO CH 35.0 102.9 2910.0 19580506 20170923 560850 99999 DENGKAGOIN CH 34.04 103.333 3166.0 19731005 19740924 560860 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801006 19850321 560890 99999 BAI-GU-SI CH 0.0 0.0 -999.0 19730102 20020713 560900 99999 BOGUS CHINESE CH 19801001 19850322 560930 99999 WU-SHAN CH 34.717 104.883 1371.0 19560820 20020523 560960 99999 WUDU CH 33.4 104.917 1079.0 19560820 20170923 560970 99999 YUNG-FENG-HSIANG N CH 33.033 104.117 2712.0 19591209 19610327 561060 99999 SOG XIAN CH 31.883000000000003 93.78299999999999 4024.0 19570701 20170923 561070 99999 TANGGO WEST CH 31.55 92.867 4185.0 19731108 19740920 561160 99999 DENGQEN CH 31.416999999999998 95.6 3874.0 19560820 20170923 561250 99999 NANGQEN CH 32.25 96.21700000000001 4145.0 19591203 20090225 561260 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801002 19841215 561270 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20011203 561320 99999 GAO-RIK CH 32.5 97.93299999999999 3657.0 19591209 20170412 561370 99999 QAMDO CH 31.15 97.167 3307.0 19560820 20170923 561380 99999 QING-NI-DONG (?) CH 0.0 0.0 -999.0 19731005 20020529 561430 99999 DARCANG WEST CH 32.783 99.917 4147.0 19600201 19610227 561440 99999 DEGE CH 31.733 98.56700000000001 3201.0 19570701 20170923 561460 99999 GARZE CH 31.616999999999997 100.0 3394.0 19560820 20170923 561470 99999 CHUN-LUO-SI CH 0.0 0.0 -999.0 19740422 20020127 561510 99999 LUO-XUE CH 32.567 100.583 3505.0 19730101 20020927 561520 99999 SERTAR CH 32.283 100.333 3896.0 19610105 20170923 561560 99999 BOGUS CHINESE CH 19801001 20020815 561570 99999 BOGUS CHINESE CH 19801005 20020521 561670 99999 DAWU CH 30.983 101.117 2959.0 19790701 20170923 561710 99999 A-BA CH 32.917 101.7 3170.0 19570701 20020717 561720 99999 BARKAM CH 31.9 102.23299999999999 2666.0 19560820 20170923 561730 99999 MA-TANG CH 31.85 102.7 3422.0 19730101 20100424 561780 99999 XIAO-JIN CH 31.017 102.367 2426.0 19560820 20100424 561820 99999 SONGPAN CH 32.667 103.6 2882.5 19560820 20170923 561830 99999 ZHENJIANGGUAN CH 32.333 103.73299999999999 2697.0 19560820 19750514 561870 99999 WENJIANG CH 30.75 103.867 541.0 20050101 20170923 561880 99999 WENCHUAN CH 31.483 103.583 2042.0 19591209 20100424 561920 99999 BOGUS CHINESE CH 19801003 20020310 561930 99999 PINGWU CH 32.417 104.51700000000001 894.0 19570701 20061231 561940 99999 BOGUS CHINESE CH 19801002 20020615 561960 99999 MIANYANG CH 31.45 104.73299999999999 522.0 19591209 20170923 562020 99999 JIA-LI CH 30.783 93.4 4876.0 19591209 20120429 562270 99999 CHING-TO EAST CH 30.1 95.78299999999999 5108.0 19560820 19570531 562370 99999 BANG-DA CH 0.0 0.0 -999.0 19800701 19850907 562470 99999 BATANG CH 30.0 99.1 2589.0 19560820 20170923 562510 99999 XINLONG/NYAGRONG CH 30.967 100.2 3500.0 19591209 20100424 562570 99999 LITANG CH 30.0 100.26700000000001 3950.0 19560820 20170923 562650 99999 QIAN-NING CH 30.5 101.48299999999999 3452.0 19570701 19840611 562870 99999 YA'AN CH 29.983 103.0 629.0 19560820 20170923 562940 99999 SHUANGLIU CH ZUUU 30.579 103.947 495.3 19560820 20170923 562950 99999 CHIEN YANG CH 0.0 0.0 -999.0 19800701 20100531 562970 99999 REN-SHOU CH 30.0 104.133 610.0 19740806 20011204 562980 99999 ZIYANG SOUTHWEST CH 30.116999999999997 104.617 383.0 19591201 19610227 563120 99999 NYINGCHI CH 29.566999999999997 94.46700000000001 3001.0 19560820 20170923 563150 99999 DABBA SOUTHWEST CH 29.033 100.167 4553.0 19570701 19631231 563470 99999 ZEN-YAN (?) CH 0.0 0.0 -999.0 19731112 19860127 563570 99999 DAOCHENG CH 29.05 100.3 3729.0 19640101 20170923 563740 99999 KANGDING CH 30.05 101.96700000000001 2617.0 19570701 20170923 563750 99999 HAN-YUAN-JIE CH 0.0 0.0 -999.0 19731004 20011029 563760 99999 HAN-YUAN-CHIEH EAST CH 29.583000000000002 102.71700000000001 2209.0 19601001 19610227 563840 99999 E-BIAN CH 0.0 0.0 -999.0 19731004 20011104 563850 99999 EMEI SHAN CH 29.517 103.333 3049.0 19560820 20170923 563860 99999 LESHAN CH 29.566999999999997 103.76700000000001 440.0 19591209 20100424 564410 99999 BAME NORTHWEST CH 28.883000000000003 98.583 4413.0 19600101 19641231 564440 99999 DEQEN CH 28.45 98.883 3320.0 19560820 20170923 564590 99999 TU-ZHA CH 28.15 100.93299999999999 2743.0 19591209 20100424 564620 99999 JIULONG CH 29.0 101.5 2994.0 19560820 20170923 564625 99999 DAYONG CH ZGDY 29.133000000000003 100.48299999999999 900.0 20071010 20160607 564720 99999 GAN-LUO CH 0.0 0.0 -999.0 19790705 20020613 564740 99999 MIAN-NING CH 0.0 0.0 -999.0 19800701 20040630 564750 99999 YUEXE CH 28.616999999999997 102.6 1736.0 19570701 20100424 564790 99999 JIAGU NORTH CH 28.217 103.0 1892.0 19591209 19610227 564850 99999 HU-JIA-PU-ZIIA CH 28.517 103.617 1485.0 19570701 20100424 564920 99999 YIBIN CH 28.8 104.6 342.0 19440229 20170923 564940 99999 PING-SHAN (?) CH 0.0 0.0 -999.0 19800701 20020418 565330 99999 LA-WAN CH 27.683000000000003 98.35 3352.0 19591209 20100424 565430 99999 ZHONGDIAN CH 27.7 99.7 3001.0 19591209 20100424 565480 99999 WEIXI CH 27.217 99.31700000000001 2743.0 19570701 20100424 565610 99999 DA-CUN CH 0.0 0.0 -999.0 19740425 19840728 565620 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731004 19840628 565650 99999 YANYUAN CH 27.433000000000003 101.53299999999999 2591.0 19591209 20100424 565710 99999 XICHANG CH 27.9 102.26700000000001 1599.0 19440325 20170923 565760 99999 ZHAO-ZI-BA CH 27.6 102.85 2347.0 19730101 20020316 565770 99999 BOGUS CHINESE CH 19890501 20020801 565810 99999 TIAN-DI-BA CH 0.0 0.0 -999.0 19790701 20020518 565860 99999 ZHAOTONG CH 27.333000000000002 103.75 1950.0 19450107 20170923 566470 99999 19731119 19740225 566510 99999 LIJING CH 26.833000000000002 100.21700000000001 2382.0 19440131 20170923 566520 99999 BOGUS CHINESE CH 19890108 20011224 566640 99999 LA-SHI CH 26.366999999999997 101.21700000000001 1210.0 19591209 20100424 566710 99999 HUILI CH 26.65 102.25 1788.0 19560820 20170923 566740 99999 OGUS CHINESE CH 0.0 0.0 -999.0 19731022 20011113 566810 99999 APPROXIMATE LOCALE CH 26.833000000000002 103.167 0.0 19801001 20020524 566840 99999 HUIZE CH 26.4 103.25 2189.3 19570701 20170923 566910 99999 WEINING CH 26.866999999999997 104.28299999999999 2236.0 19570701 20170923 567380 99999 MENG-KA CH 25.217 97.867 2134.0 19740112 19890830 567390 99999 TENGCHONG CH 24.983 98.5 1696.9 19570701 20170923 567410 99999 LIU-KU CH 25.783 98.85 2377.0 19591209 20020207 567450 99999 SHAN-YAN-ZHEN CH 0.0 0.0 -999.0 19800302 19841103 567480 99999 BAOSHAN CH 25.116999999999997 99.18299999999999 1649.0 19440326 20170923 567510 99999 DALI CH 25.7 100.18299999999999 1992.0 19431130 20170923 567630 99999 YUANMOU CH 25.733 101.867 1120.0 19560820 20170923 567680 99999 CHUXIONG CH 25.017 101.51700000000001 1820.0 19440131 20170923 567760 99999 APPROXIMATE LOCALE CH 25.633000000000003 102.96700000000001 0.0 19731113 20011229 567770 99999 JINSHAN NORTH CH 25.15 102.083 1580.0 19740421 19741202 567780 99999 WUJIABA CH ZPPP 24.991999999999997 102.744 1894.9 19420713 20170923 567860 99999 ZHANYI CH 25.583000000000002 103.833 1900.0 19440109 20170923 567930 99999 PU-AN CH 25.783 104.95 2133.0 19591209 20100424 568380 99999 RUILI CH 24.0 97.85 776.0 19591209 20170923 568390 99999 LU-XI CH 24.283 98.46700000000001 1524.0 19740730 20020222 568560 99999 JING-DONG CH 24.433000000000003 100.85 1676.0 19591209 20100424 568750 99999 YUXI CH 24.45 102.56700000000001 1677.0 19591209 20100424 568850 99999 MI-LE (?) CH 24.4 103.43299999999999 1402.0 19730102 20020124 568860 99999 LUXI CH 24.533 103.76700000000001 1708.0 19591209 20170923 569150 99999 NAME/LOCATION UNKN CH 0.0 0.0 -999.0 19801005 20010820 569160 99999 NAME/LOCATION UNKN CH 0.0 0.0 -999.0 19801001 20020303 569420 99999 MENG-SA CH 23.717 99.633 1524.0 19800313 20020327 569450 99999 MENGDING CH 23.566999999999997 99.083 512.0 19591209 19900405 569460 99999 GENGMA CH 23.55 99.4 1104.0 19900101 20170923 569510 99999 LINCANG CH 23.95 100.21700000000001 1503.0 19560820 20170923 569540 99999 LANCANG CH 22.566999999999997 99.93299999999999 1054.0 19570701 20170923 569590 99999 JINGHONG CH 22.0 100.78299999999999 579.0 19570701 20170923 569640 99999 SIMAO CH 22.767 100.98299999999999 1303.0 19440516 20170923 569650 99999 MENG-WANG CH 22.483 101.3 975.0 19740302 20020323 569660 99999 YUANJIANG CH 23.6 101.98299999999999 398.0 19560820 20170923 569690 99999 MENGLA CH 21.5 101.583 633.0 19730101 20170923 569750 99999 YI-SHA CH 23.316999999999997 102.367 1215.0 19731006 20020912 569770 99999 JIANGCHENG CH 22.616999999999997 101.81700000000001 1121.0 19730101 20170923 569790 99999 JIE-JIE CH 0.0 0.0 -999.0 19731004 19831223 569820 99999 KAI-YUAN CH 0.0 0.0 -999.0 19800402 20021030 569830 99999 BING-YUAN-JIE CH 23.7 103.833 1524.0 19800701 20020529 569850 99999 MENGZI CH 23.45 103.333 1313.6 19450228 20170923 569860 99999 DEHOUJIE CH 23.583000000000002 103.867 1423.0 19800701 20100424 569870 99999 BOGUS CHINESE CH 19801001 19841230 569880 99999 BOGUS CHINESE CH 19801002 19840614 569890 99999 HE-KOU CH 22.5 103.95 1363.0 19560820 20020927 569940 99999 WENSHAN CH 23.366999999999997 104.383 1278.0 19591204 20020106 569950 99999 BANG-O-JIE CH 0.0 0.0 -999.0 19731008 20011201 569990 99999 MALIPO SOUTHEAST CH 23.133000000000003 104.7 1057.0 19731111 19750421 570050 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20050813 570060 99999 TIANSHUI CH 34.583 105.75 1143.0 19560820 20031231 570070 99999 HSI-LI SOUTH CH 34.1 105.03299999999999 1505.0 19731108 19741003 570140 99999 BEIDAO CH 34.57 105.87 1086.0 20050101 20170923 570160 99999 BAOJI CH 34.35 107.133 610.0 19560820 20041231 570230 99999 CUI-MU CH 34.8 107.867 914.0 19610901 20050423 570250 99999 FENGXIANG CH 34.516999999999996 107.383 781.0 20050502 20170923 570260 99999 APPROXIMATE LOCALE CH 34.483000000000004 107.95 0.0 19740422 20020322 570270 99999 BOGUS CHINESE CH 19850503 20040704 570340 99999 QIAN-XIAN CH 34.533 108.23299999999999 335.0 19620302 20020712 570360 99999 XIANYANG CH ZLXY 34.446999999999996 108.75200000000001 479.1 19560820 20170923 570460 99999 HUA SHAN CH 34.483000000000004 110.083 2063.0 19560820 20170923 570510 99999 BUCHANG SOUTHEAST CH 34.833 110.167 332.0 19570616 19590831 570630 99999 MIAN-CHI CH 0.0 0.0 -999.0 19800402 20040104 570670 99999 LUSHI CH 34.083 111.06700000000001 659.5 19560820 20170923 570680 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740421 20020722 570710 99999 MENGJIN CH 34.817 112.43299999999999 333.0 19830701 20170923 570720 99999 JIUMENGJIN CH 34.817 112.633 119.0 19570601 19580831 570730 99999 LUO-YANG CH 34.667 112.417 155.0 19560820 20040728 570770 99999 TIEN-HU CH 34.15 112.1 753.0 19610801 20020930 570780 99999 LYANG CH 34.15 112.46700000000001 400.0 19740423 20020617 570830 99999 XINZHENG CH ZHCC 34.52 113.84100000000001 150.9 19570601 20170923 570890 99999 XUCHANG CH 34.0 113.96700000000001 72.0 19570401 20020207 570910 99999 KAIFENG CH 34.75 114.417 67.0 19570602 20020930 570930 99999 NAO-KAO CH 0.0 0.0 -999.0 19790702 20020324 571020 99999 MING-YANG-CHEN CH 33.817 105.617 1524.0 19731111 20040426 571060 99999 CHENG-XIAN CH 33.75 105.75 1128.0 19560820 20020207 571270 99999 HANZHONG CH 33.067 107.03299999999999 509.0 19560820 20170923 571280 99999 YANG-XIAN CH 0.0 0.0 -999.0 19731005 20021013 571300 99999 NINGSHAN NORTHEAST CH 33.333 108.333 875.0 19600612 19610228 571310 99999 JINGHE CH 34.433 108.96700000000001 411.0 20061010 20170923 571340 99999 WEN-HUANG-PING CH 33.45 108.25 548.0 19570601 20020207 571370 99999 SHI-QUAN CH 0.0 0.0 -999.0 19740613 20040430 571430 99999 SHANGXIAN CH 33.917 109.95 748.0 19620302 20030724 571440 99999 CHEN-AN CH 33.417 109.15 610.0 19591209 20020207 571500 99999 APPROXIMATE LOCALE CH 33.483000000000004 110.43299999999999 0.0 19740421 20020515 571560 99999 SHANG-NAN CH 33.533 110.883 914.0 19570601 20020207 571730 99999 LUSHAN EAST CH 33.733000000000004 112.917 125.0 19731108 19740923 571780 99999 NANYANG CH 33.1 112.48299999999999 181.6 19560820 20170923 571810 99999 JIAXIAN CH 33.967 113.21700000000001 76.0 19570601 20020930 571880 99999 APPROXIMATE LOCALE CH 33.233000000000004 113.46700000000001 0.0 19731111 20020719 571890 99999 YUSHAN SOUTH CH 33.15 113.81700000000001 58.0 19560820 19581031 571930 99999 XIHUA CH 33.783 114.51700000000001 53.0 19560820 20170923 571970 99999 SHANG-CAI CH 0.0 0.0 -999.0 19800701 20050929 572030 99999 WU-TONG-YUAN CH 32.817 105.7 700.0 19740421 20020503 572060 99999 GUANG-YUAN CH 32.433 105.8 487.0 19560820 19841226 572070 99999 YAN-MEN-BA (?) CH 0.0 0.0 -999.0 19740425 20060301 572080 99999 ZHAO-HUA CH 32.333 105.68299999999999 675.0 19731018 20040924 572210 99999 YU-SHU-MTHO (?) CH 0.0 0.0 -999.0 19740422 20020918 572320 99999 HAN-YIN CH 32.9 108.51700000000001 457.0 19620302 20020207 572370 99999 WANYUAN CH 32.067 108.03299999999999 674.0 19560820 20170923 572380 99999 JAN-CHIA-PA CH 32.1 108.48299999999999 1372.0 19730101 20020817 572450 99999 ANKANG CH 32.717 109.03299999999999 291.0 19560820 20170923 572510 99999 BAIHE CH 32.766999999999996 110.117 610.0 19740423 20070727 572530 99999 YUN-XIAN CH 32.8 110.8 100.0 19570601 19891014 572550 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801002 20050313 572590 99999 FANGXIAN CH 32.033 110.76700000000001 435.0 19591101 20170923 572650 99999 LAOHEKOU CH 32.433 111.73299999999999 128.8 19560820 20170923 572780 99999 APPROXIMATE LOCALE CH 32.317 112.633 0.0 19731007 20070727 572790 99999 ZAOYANG CH 32.15 112.667 127.0 19570602 20170923 572900 99999 ZHUMADIAN CH 32.933 113.917 107.2 19581105 20170923 572970 99999 XINYANG CH 32.133 114.05 115.0 19560820 20170923 572980 99999 LUO-SHAN CH 32.217 114.53299999999999 75.0 19730519 20020822 572990 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740421 20050805 573060 99999 LANGZHONG CH 31.583000000000002 105.96700000000001 385.0 19591208 20170923 573070 99999 SANTAI CH 31.083000000000002 105.083 385.0 19740112 19741128 573130 99999 BAZHONG CH 31.9 106.7 360.0 19570701 20100424 573210 99999 APPROXIMATE LOCALE CH 31.883000000000003 107.083 0.0 19740425 20020605 573270 99999 YONG-XING CH 0.0 0.0 -999.0 19740425 20170529 573280 99999 DA XIAN CH 31.2 107.5 344.0 19560820 20170923 573450 99999 WU-XI (?) CH 0.0 0.0 -999.0 19740421 20011120 573470 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731008 20020107 573480 99999 FENGJIE CH 31.017 109.53299999999999 303.0 19560820 20170923 573550 99999 SHIH-PU-SA NORTH CH 31.666999999999998 110.367 2182.0 19591103 19591229 573650 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740611 20020101 573670 99999 APPROXIMATE LOCALE CH 31.166999999999998 111.167 0.0 19740514 20020322 573770 99999 WU-JIA-CHI(CHI-AFB) CH 31.116999999999997 112.4 198.0 19740421 20020528 573780 99999 ZHONGXIANG CH 31.166999999999998 112.633 108.9 19560820 20170923 573790 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740621 20020705 573850 99999 SUIZHOU CH 31.717 113.367 61.0 19610901 20020207 573940 99999 YINGSHAN NORTH CH 31.616999999999997 113.81700000000001 106.0 19570602 19610831 573980 99999 HONG-AN CH 0.0 0.0 -999.0 19740421 19840527 573990 99999 MACHENG CH 31.133000000000003 114.95 75.2 19570601 20170923 574050 99999 SUINING CH 30.5 105.583 300.0 19591202 20100424 574060 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731108 19840921 574070 99999 19740616 19740922 574110 99999 GAOPING CH 30.75 106.133 347.0 19560820 20170923 574240 99999 BOGUS CHINESE CH 19840101 20020529 574260 99999 LIANGPING CH 30.683000000000003 107.8 455.0 19560820 20170923 574280 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740429 20020227 574310 99999 20011118 20020530 574320 99999 WANXIAN CH 30.8 108.35 299.0 19591209 20100424 574370 99999 ZHONG-XIAN (?) CH 0.0 0.0 -999.0 19740601 20010712 574450 99999 APPROXIMATE LOCALE CH 30.6 109.53299999999999 0.0 19731108 20070727 574470 99999 ENSHI CH 30.283 109.46700000000001 458.0 19450331 20170923 574480 99999 EN-SHI (CHI-AFB) CH 30.3 109.48299999999999 457.0 19740421 20020615 574500 99999 ZIGUI CH 31.017 110.7 442.0 19900401 20000216 574510 99999 LU-CONG-PO CH 30.783 110.26700000000001 1188.0 19570601 20010615 574570 99999 GUAN-DIAN-GOU (?) CH 0.0 0.0 -999.0 19740421 20020930 574580 99999 WU-FENG CH 30.2 110.667 915.0 19570601 20100424 574610 99999 YICHANG CH 30.733 111.367 257.7 19560820 20170923 574620 99999 YI-CHANG (CHI-AFB) CH 30.683000000000003 111.45 107.0 19730101 20020703 574660 99999 JIANG-KOU (?) CH 0.0 0.0 -999.0 19740425 20020425 574720 99999 SHA-YANG (?) CH 0.0 0.0 -999.0 19740425 20020825 574760 99999 JIANGLING CH 30.333000000000002 112.18299999999999 33.0 19570601 20170923 574770 99999 SHA-SHI (?) CH 0.0 0.0 -999.0 19731004 20020819 574780 99999 YANG-JIA-CHANG CH 0.0 0.0 -999.0 19740615 20020523 574830 99999 FENSUIZUI NORTH CH 30.65 113.65 30.0 19570601 19610324 574910 99999 19731005 19740808 574940 99999 TIANHE CH ZHHH 30.784000000000002 114.208 34.4 19560820 20170923 574941 99999 SANYA PHOENIX INTL CH ZJSY 18.303 109.412 28.0 20040713 20170923 575030 99999 NEIJIANG CH 29.616999999999997 105.117 349.0 20030330 20170923 575040 99999 NEIJIANG CH 29.583000000000002 105.05 357.0 19560820 20020815 575060 99999 DA-ZU CH 29.633000000000003 105.76700000000001 305.0 19740423 20020415 575150 99999 CHONG-QING CH 29.517 106.48299999999999 351.0 19560820 19870114 575160 99999 JIANGBEI CH ZUCK 29.719 106.64200000000001 416.1 19441111 20170923 575220 99999 FOU-LING CH 29.717 107.4 275.0 19591209 20020207 575250 99999 XIANG-GOU CH 0.0 0.0 -999.0 19740613 19840131 575270 99999 NAN-CHUAN (?) CH 0.0 0.0 -999.0 19740422 20020529 575320 99999 WEN-TOU CH 29.866999999999997 108.56700000000001 610.0 19800803 20050722 575370 99999 PENG-SHUI CH 29.25 108.167 314.9 19570701 19740831 575450 99999 LAIFENG CH 29.533 109.383 561.0 19450430 20100424 575540 99999 SANGZHI CH 29.4 110.167 322.0 19591101 20170923 575570 99999 SHA-DI-QI CH 29.05 110.133 455.0 19800311 20021225 575620 99999 SHI-MEN CH 29.583000000000002 111.3 91.0 19591102 20100424 575640 99999 CI-LI CH 0.0 0.0 -999.0 19740518 19830528 575690 99999 CHANG-DE (?) CH 0.0 0.0 -999.0 19740601 20020307 575720 99999 ZHI-ZHOU CH 29.733 112.3 76.0 19790903 20020605 575730 99999 JIAN-LI CH 29.816999999999997 112.883 27.0 19740805 20011003 575740 99999 ANXIANG CH 29.433000000000003 112.18299999999999 28.0 19591101 20100424 575760 99999 NAN XIAN SOUTH CH 29.333000000000002 112.417 31.0 19570601 19580731 575830 99999 PUQI CH 29.717 113.883 61.0 19570603 20100424 575840 99999 YUEYANG CH 29.383000000000003 113.083 52.0 19560820 20170923 575940 99999 CHONG-YANG (?) CH 0.0 0.0 -999.0 19800705 20020822 575970 99999 MA-AO (?) CH 0.0 0.0 -999.0 19740426 20020621 575980 99999 XIUSHUI CH 29.033 114.583 147.0 19560820 20170923 575990 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19731202 19850302 576020 99999 LUZHOU CH 28.883000000000003 105.43299999999999 336.0 19450630 20021231 576040 99999 NAXI CH 28.783 105.383 364.0 20030330 20170923 576060 99999 CH'IH-SHUI HO CH 28.483 105.93299999999999 977.0 19570701 20100424 576070 99999 DA-BA CH 0.0 0.0 -999.0 19740613 20020911 576080 99999 XUYONG/YONGNING CH 28.217 105.43299999999999 366.0 19591209 20100424 576140 99999 CHIU-HSI-SHUI SOUTH CH 28.566999999999997 106.083 289.0 19600201 19610222 576220 99999 JINFO SHAN (MOUNT) CH 28.95 107.15 1907.0 19560820 20020613 576230 99999 CHEN-NAN CH 0.0 0.0 -999.0 19740425 20020410 576320 99999 CHANG-PU-QI CH 0.0 0.0 -999.0 19740421 20020622 576330 99999 YOUYANG CH 28.833000000000002 108.76700000000001 665.0 19560820 20170923 576450 99999 HUA-YUAN CH 0.0 0.0 -999.0 19740425 20020406 576460 99999 APPROXIMATE LOCALE CH 28.5 109.833 0.0 19740423 20020927 576490 99999 QIAN-ZHOU-ZHEN CH 28.267 109.68299999999999 560.0 19600101 20100424 576530 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740421 19840602 576550 99999 YUANLING CH 28.467 110.4 143.0 19560820 20170923 576590 99999 APPROXIMATE LOCALE CH 28.166999999999998 110.96700000000001 0.0 19740421 20020809 576620 99999 CHANGDE CH 29.05 111.68299999999999 35.0 19560820 20170923 576630 99999 HAN-SHOU (?) CH 0.0 0.0 -999.0 19800706 20020608 576650 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740601 20041112 576660 99999 MA-JI-TANG (?) CH 0.0 0.0 -999.0 19731108 20120913 576670 99999 DARONGTANG SOUTHEAST CH 28.316999999999997 111.133 397.0 19740421 19740919 576690 99999 MEI-CHENG-ZHEN CH 28.15 111.633 201.0 19570602 20100424 576710 99999 YUANJIANG CH 28.85 112.383 27.0 19570602 20100424 576720 99999 YUAN-JIANG CH 0.0 0.0 -999.0 19731101 20020528 576760 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740427 20020310 576770 99999 BOGUS CHINESE CH 19890101 20020921 576790 99999 CHANGSHA/DATUOPU CH ZGCS 28.2 113.083 46.0 19560820 19880714 576820 99999 PINGJIANG CH 28.75 113.617 88.0 19591101 20100424 576870 99999 CHANGSHA CH 28.116999999999997 112.78299999999999 120.0 19440214 20170923 576930 99999 SHI-MEN-LOU CH 28.983 114.85 152.0 19740427 20020709 576990 99999 SHANG-GAO CH 0.0 0.0 -999.0 19740425 20010819 577060 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19801001 20010715 577070 99999 BIJIE CH 27.3 105.23299999999999 1511.0 19560820 20170923 577080 99999 DA-FANG CH 27.15 105.6 1520.0 19731016 20020530 577120 99999 HUICHUAN CH 27.733 106.95 984.0 19800701 20170923 577130 99999 ZUNYI CH 27.7 106.883 845.0 19560820 20110108 577150 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740423 20020503 577160 99999 APPROXIMATE LOCALE CH 27.5 106.833 914.0 19740425 20020627 577220 99999 MEITAN SOUTHWEST CH 27.75 107.43299999999999 786.0 19591209 19610228 577230 99999 LONG-ZHUAN CH 0.0 0.0 -999.0 19800710 20011201 577250 99999 20011011 20020519 577260 99999 BOGUS CHINESE CH 0.0 0.0 -999.0 19740610 20020123 577310 99999 SINAN CH 27.95 108.25 418.0 19570701 20170923 577320 99999 DE-WANG CH 0.0 0.0 -999.0 19731004 20020615 577380 99999 CHEN-YUAN CH 27.05 108.4 464.0 19560820 19580203 577410 99999 TONGREN NORTHWEST CH 27.733 109.167 335.0 19591209 19610228 577450 99999 ZHIJIANG CH 27.45 109.68299999999999 273.0 19430930 20170923 577490 99999 HUAIHUA CH 27.566999999999997 110.0 261.0 19800307 20021205 577530 99999 XU-BU CH 27.916999999999998 110.583 152.0 19730906 20021007 577540 99999 QIAN-YANG (?) CH 0.0 0.0 -999.0 19740427 20020306 577590 99999 LONG-HUI-ANG CH 27.35 110.95 644.0 19800410 20020331 577650 99999 APPROXIMATE LOCALE CH 27.5 111.5 0.0 19801001 20050518 577660 99999 SHAOYANG CH 27.183000000000003 111.45 310.4 19570602 20170923 577720 99999 XIANG-XIANG CH 27.733 112.53299999999999 76.0 19740802 20020316 577730 99999 XIANG-TAN CH 27.883000000000003 112.917 75.0 19740802 20020827 577740 99999 SHUANG-FENG CH 27.45 112.2 916.0 19570602 20100424 577760 99999 NANYUE CH 27.3 112.7 1268.0 19560820 20170923 577830 99999 TONG-MU CH 0.0 0.0 -999.0 19731004 19840529 577920 99999 YI-CHUN CH 0.0 0.0 -999.0 19740111 20011111 577930 99999 YICHUN CH 27.8 114.383 129.0 19560820 20170923 577990 99999 JI'AN CH 27.116999999999997 114.96700000000001 78.0 19560820 20170923 578020 99999 APPROXIMATE LOCATIO CH 26.833000000000002 105.5 0.0 19801001 20041009 578030 99999 ZHI-JIN CH 26.7 105.76700000000001 1676.0 19600301 20100424 578060 99999 ANSHUN CH 26.267 105.96700000000001 1402.0 19591202 20100424 578070 99999 LANG-TAI CH 26.05 105.21700000000001 899.0 19731004 20041122 578130 99999 YANG-CHANG (?) CH 0.0 0.0 -999.0 19730813 20020803 578160 99999 LONGDONGBAO CH ZUGY 26.539 106.801 1138.7 19450204 20170923 578220 99999 FUQUAN CH 26.7 107.5 896.0 19731004 19740914 578230 99999 DAO-PING (?) CH 0.0 0.0 -999.0 19800707 20040522 578250 99999 MA-JIANG CH 26.5 107.583 726.0 19450310 20100424 578310 99999 TAI-JIANG CH 26.666999999999998 108.333 607.0 19730816 20010725 578320 99999 SANSUI CH 26.967 108.667 631.0 19591209 20170923 578340 99999 LEISHAN NORTHEAST CH 26.433000000000003 108.133 926.0 19740421 19740819 578430 99999 HUI-TONG CH 26.866999999999997 109.71700000000001 305.0 19800304 20011124 578450 99999 TONGDAO CH 26.166999999999998 109.78299999999999 397.0 19591101 20170923 578470 99999 20010909 20020526 578530 99999 WUGANG CH 26.733 110.633 340.0 19570601 20170923 578660 99999 LINGLING CH 26.233 111.617 174.0 19430531 20170923 578720 99999 HENGYANG CH 26.933000000000003 112.583 98.0 19430831 20100424 578820 99999 CHA-LING CH 0.0 0.0 -999.0 19730103 19840930 578830 99999 CHALING CH 26.8 113.53299999999999 176.0 19570601 20020922 578910 99999 HECHUAN CH 26.95 114.23299999999999 122.0 19610901 19630131 578930 99999 TAI-HO CH 26.783 114.9 50.0 19730103 20020723 578960 99999 HUANGDIAN CH 26.25 114.333 282.0 19570601 19610314 578961 99999 SUI-CHUAN CH 26.333000000000002 114.5 152.0 19430930 19460228 579010 99999 HUA-GONG CH 0.0 0.0 -999.0 19800706 20040214 579020 99999 XINGREN CH 25.433000000000003 105.18299999999999 1379.0 19560820 20170923 579060 99999 ZHEN-FENG CH 25.383000000000003 105.65 571.0 19600701 20100424 579090 99999 WANGMO NORTHWEST CH 25.25 105.867 359.0 19600201 19600229 579110 99999 GUDONG WEST CH 25.95 107.133 977.0 19740421 19740819 579130 99999 APPROXIMATE LOCATIO CH 25.833000000000002 106.833 0.0 19801004 19850710 579160 99999 LUODIAN CH 25.433000000000003 106.76700000000001 441.0 19560820 20170923 579220 99999 DUSHAN CH 25.833000000000002 107.55 971.0 19450430 20170923 579230 99999 JIANGZHAI CH 25.883000000000003 107.75 536.0 19731119 19740912 579250 99999 LIU-CHAI CH 25.3 107.4 854.0 19570602 19830914 579270 99999 APPROXIMATE LOCALE CH 25.283 107.3 0.0 19740425 20020611 579310 99999 APPROXIMATE LOCALE CH 25.85 108.083 0.0 19740601 20011025 579320 99999 RONGJIANG CH 25.967 108.53299999999999 287.0 19560820 20170923 579440 99999 GONGDONG SOUTHEAST CH 25.533 109.2 423.0 19740421 19741202 579470 99999 RONG-SHUI CH 25.066999999999997 109.25 183.0 19570603 20100424 579570 99999 LIANGJIANG CH ZGKL 25.218000000000004 110.039 173.7 19430606 20170923 579580 99999 NAME UNKNOWN CH 0.0 0.0 -999.0 19731004 20020507 579600 99999 DAO XIAN NORTH CH 25.55 111.583 179.0 19610107 19610314 579620 99999 NAME UNKNOWN (ONC) CH 0.0 0.0 -999.0 19740513 20021205 579650 99999 DAOXIAN CH 25.616999999999997 111.6 152.0 19730101 20100424 579660 99999 NING-YUAN (?) CH 0.0 0.0 -999.0 19800405 20020106 579680 99999 TUO-JIANG (?) CH 25.183000000000003 111.583 122.0 19570601 19850331 579720 99999 CHENZHOU CH 25.733 112.96700000000001 368.8 19560820 20170923 579730 99999 GUI-YANG (?) CH 0.0 0.0 -999.0 19731004 20020326 579820 99999 APPROXIMATE LOCALE CH 25.833000000000002 113.5 0.0 19740729 20020909 579830 99999 NAME UNKNOWN CH 0.0 0.0 -999.0 19740806 20040118 579920 99999 SHANG-YU CH 25.8 114.53299999999999 202.0 19730103 20020516 579930 99999 GANZHOU CH ZSGZ 25.85 114.95 125.0 19441130 20170923 579931 99999 YAOQIANG CH ZSJN 36.857 117.21600000000001 23.2 20050617 20170923 579950 99999 19740611 19740915 579960 99999 XIN-FENG CH 25.4 114.93299999999999 195.0 19591101 20100424 580050 99999 SHANGQIU CH 34.4 115.633 50.0 19610801 20040515 580150 99999 TANG-SHAN CH 34.417 116.333 44.0 19570531 20100424 580270 99999 XUZHOU CH 34.283 117.15 42.0 19560820 20170923 580280 99999 SHUANG-GOU CH 0.0 0.0 -999.0 19731104 20031001 580400 99999 GANYU CH 34.85 119.133 10.0 19580104 20170923 580440 99999 NANCHENG NORTHEAST CH 34.583 119.25 4.0 19560821 19571231 580570 99999 LIUDUO SOUTHWEST CH 34.067 120.21700000000001 3.0 19570602 19591231 580830 99999 BOGUS CHINESE CH 19801003 20020923 581020 99999 BOXIAN CH 33.783 115.73299999999999 40.3 19560821 20170923 581220 99999 SUINING CH 33.9 117.95 26.0 19570601 20100424 581340 99999 SI-HONG CH 33.467 118.21700000000001 15.0 19740401 20020717 581370 99999 SHUANG-GOU CH 33.217 118.18299999999999 14.0 19800707 20030213 581380 99999 HONGZE HU (LAKE) CH 33.333 118.667 2.0 19570602 20100424 581400 99999 CHIANELO CH 26.767 117.367 183.0 19790710 19810529 581410 99999 HUAIYIN CH 33.633 118.93299999999999 13.7 20040713 20170923 581440 99999 QINGJIANG CH 33.6 119.03299999999999 19.0 19560820 20040206 581500 99999 SHEYANG CH 33.75 120.3 3.0 19600101 20170918 581930 99999 NAME/LOCATION UNKN CH 0.0 0.0 -999.0 19801005 20020111 582020 99999 TSAOCHUANG CH 0.0 0.0 -999.0 19740426 20020319 582030 99999 FUYANG CH 32.867 115.73299999999999 33.0 19570601 20170923 582070 99999 HUANG-CHUAN (?) CH 0.0 0.0 -999.0 19740425 20020511 582080 99999 GUSHI CH 32.167 115.617 44.0 19560820 20170923 582110 99999 YING-SHANG CH 0.0 0.0 -999.0 19801001 20020615 582150 99999 SHOUXIAN/SHOUYANG CH 32.583 116.78299999999999 23.0 19570601 20100424 582210 99999 BENGBU CH 32.85 117.3 28.0 19560820 20170918 582310 99999 JIA-SHAN CH 0.0 0.0 -999.0 19731004 20020809 582340 99999 CHU-XIAN CH 0.0 0.0 -999.0 19740425 20030413 582360 99999 CHUZHOU EAST CH 32.317 118.333 26.0 19570601 19610322 582370 99999 JIANG-PU (?) CH 0.0 0.0 -999.0 19800703 20020731 582380 99999 LUKOU CH ZSNJ 31.741999999999997 118.86200000000001 14.9 19560820 20170923 582390 99999 LISHE CH ZSNB 29.825 121.465 4.0 20040825 20170923 582410 99999 GAOYOU CH 32.783 119.45 3.0 19591101 20100424 582440 99999 DAYIJI NORTH CH 32.55 119.23299999999999 30.0 19740112 20120523 582450 99999 YANG-ZHOU (?) CH 0.0 0.0 -999.0 19740423 20040128 582500 99999 HAIAN NORTHEAST CH 32.567 120.46700000000001 12.0 19731004 19741204 582510 99999 DONGTAI CH 32.85 120.28299999999999 4.0 19560820 20170923 582520 99999 AN-FENG CH 0.0 0.0 -999.0 19801001 20030227 582580 99999 MO-TOU AIR BASE CH 32.266999999999996 120.5 6.0 19740611 19840120 582590 99999 NANTONG/JINSHA CH 32.1 120.867 1.0 19570601 20100424 582650 99999 LUSI CH 32.067 121.6 10.0 19570602 20170923 582660 99999 BOGUS CHINESE CH 19830701 19890503 582670 99999 RU-DONG CH 0.0 0.0 -999.0 19731109 20050405 583140 99999 HUOSHAN CH 31.4 116.333 68.0 19560820 20170923 583210 99999 LUOGANG CH ZSOF 31.78 117.29799999999999 32.9 19560820 20170923 583211 99999 PUDONG CH ZSPD 31.143 121.805 4.0 20040713 20170923 583212 99999 JINJIANG AIRPORT CH ZSQZ 24.796 118.59 51.0 20100727 20150322 583213 99999 ZHOUSHAN AIRPORT CH ZSZS 29.934 122.36200000000001 9.0 20110116 20140826 583230 99999 SHIH-TANG-JIAO BASE CH 0.0 0.0 -999.0 19801012 20020301 583240 99999 SHAN-HE CH 0.0 0.0 -999.0 19731005 20031011 583250 99999 SHENG-JIA-QIAO CH 0.0 0.0 -999.0 19801005 20030306 583260 99999 CHAOHU WEST CH 31.6 117.833 21.0 19570601 19610314 583270 99999 KONG-CHENG CH 0.0 0.0 -999.0 19801005 20010713 583280 99999 HUANG GU-JIA CH 0.0 0.0 -999.0 19801002 20050524 583340 99999 WU-HU CH 31.333000000000002 118.35 20.0 19570601 19860114 583380 99999 WUHUXIAN CH 31.15 118.583 16.0 19860101 20170923 583430 99999 CHANGZHOU CH 31.767 119.95 15.0 19560820 20100424 583450 99999 LIYANG CH 31.433000000000003 119.48299999999999 8.0 19570601 20170923 583570 99999 WA LI CH 0.0 0.0 -999.0 19730103 20020523 583580 99999 SUZHOU CH 31.267 120.617 19.0 19570602 20100424 583620 99999 SHANGHAI CH 31.4 121.46700000000001 4.0 19910615 20170923 583670 99999 HONGQIAO INTL CH ZSSS 31.198 121.336 3.0 19560820 20170923 583680 99999 BOGUS CHINESE CH 19801004 20031129 583780 99999 HUINAN EAST CH 31.183000000000003 122.367 0.0 19731004 19740919 584020 99999 YINGSHAN CH 30.75 115.667 116.0 19591101 20100424 584030 99999 LEI-CHIA-TIEN WEST CH 30.883000000000003 115.71700000000001 260.0 19731004 19740817 584070 99999 QIZHOU CH 30.066999999999997 115.333 29.0 19570601 20100424 584080 99999 MEI-CHUAN CH 30.133000000000003 115.6 73.0 19731004 20040703 584140 99999 TAI-HU CH 0.0 0.0 -999.0 19800706 20020303 584240 99999 ANQING CH 30.616999999999997 116.96700000000001 63.2 19560820 20170923 584360 99999 HELIXI CH 30.633000000000003 118.96700000000001 53.0 19570601 19740813 584370 99999 HUANG SHAN CH 30.133000000000003 118.15 1836.0 19560820 20170923 584380 99999 JING-DE CH 0.0 0.0 -999.0 19730403 20040928 584450 99999 TIANMU SHAN (MTNS) CH 30.35 119.417 1494.0 19570603 20020209 584470 99999 HE-QIAO CH 0.0 0.0 -999.0 19731004 20020730 584510 99999 WU-XING CH 0.0 0.0 -999.0 19800809 20020709 584560 99999 HUANG WAN CH 0.0 0.0 -999.0 19731004 20020118 584570 99999 XIAOSHAN CH ZSHC 30.228 120.432 7.0 19560820 20170923 584580 99999 SHAO-XING (?) CH 0.0 0.0 -999.0 19731004 20020708 584610 99999 JIN-SHAN CH 0.0 0.0 -999.0 19740421 20040716 584620 99999 MIN-HANG CH 0.0 0.0 -999.0 19730702 20020612 584640 99999 ZHA-PU CH 30.616999999999997 121.083 7.0 19570601 20100424 584670 99999 YU-YAO CH 0.0 0.0 -999.0 19570602 20070727 584720 99999 SHENGSI CH 30.733 122.45 81.0 19581001 20170923 584730 99999 SHENG SHANG CH 30.717 122.81700000000001 197.0 19800401 20020502 584740 99999 DACHU SHAN CH 30.45 122.3 152.0 19891201 20050728 584760 99999 LANG-GANG ISLAND CH 30.433000000000003 122.917 95.0 19800401 20020519 584770 99999 DINGHAI CH 30.033 122.117 37.0 19560820 20170923 584780 99999 ZHI-ZHI ISLAND CH 0.0 0.0 -999.0 19740426 20030310 585020 99999 FENLU SOUTHEAST CH 29.75 115.917 31.0 19560820 19631231 585060 99999 LU SHAN CH 29.583000000000002 115.98299999999999 1165.0 19560820 20170923 585170 99999 BOGUS CHINESE CH 19801003 20020629 585190 99999 GU-XIAN-DU CH 29.083000000000002 116.883 31.0 19570602 20100424 585210 99999 APPROXIMATE LOCATIO CH 29.833000000000002 117.167 0.0 19801010 20060214 585270 99999 JINGDEZHEN CH 29.3 117.2 60.0 19560820 20170923 585280 99999 KOMATSUSHIMA AB CH 29.166999999999998 117.5 0.0 19801002 20020702 585290 99999 APPROXIMATE LOCATIO CH 29.166999999999998 117.833 0.0 19801002 19840529 585310 99999 TUNXI CH 29.717 118.26700000000001 145.0 19570601 20130218 585320 99999 SHE-XIAN CH 0.0 0.0 -999.0 19740802 20011203 585370 99999 HUA-BU CH 0.0 0.0 -999.0 19740423 20020214 585430 99999 CHUN AN CH 29.616999999999997 119.01700000000001 172.0 20070727 20170923 585490 99999 JINHUA CH 29.15 119.633 35.0 19570602 20100424 585540 99999 YI-WU/AIRFIELD CH 29.35 120.01700000000001 91.0 19740421 20030330 585560 99999 SHENGXIAN CH 29.6 120.81700000000001 108.0 19570601 20170923 585590 99999 TIAN-TAI CH 29.15 121.01700000000001 67.0 19740422 20020524 585620 99999 NINGBO CH 29.916999999999998 121.46700000000001 6.0 19570601 20100424 585690 99999 SHIPU CH 29.2 121.95 127.0 19570601 20170923 586060 99999 CHANGBEI INTL CH ZSCN 28.865 115.9 43.6 19560820 20170923 586070 99999 HUI-HE CH 0.0 0.0 -999.0 19740422 19840609 586080 99999 QINGJIANG/ZHANGSHUZ CH 28.05 115.53299999999999 40.0 19570601 20021209 586180 99999 POTOU CH 38.083 116.55 13.0 19970611 20041004 586210 99999 LE-PING (?) CH 28.983 117.117 49.0 19740424 19810525 586250 99999 YI-YANG CH 0.0 0.0 -999.0 19740112 19841121 586260 99999 SHANGRAO CH 28.483 117.98299999999999 90.0 19570301 20100424 586270 99999 XIONGSHI NORTHEAST CH 28.3 117.21700000000001 39.0 19740423 19740919 586310 99999 YU-SHAN CH 28.666999999999998 118.25 94.0 19740421 19840505 586320 99999 CHANG-SHAN CH 28.933000000000003 118.5 137.0 19740425 20030101 586330 99999 QU XIAN CH 28.967 118.867 71.0 19560820 20170923 586340 99999 YUSHAN CH 28.683000000000003 118.25 94.0 19570601 20100424 586440 99999 19740503 19740810 586450 99999 19740523 19740723 586460 99999 LISHUI CH 28.45 119.917 60.0 19560820 20170923 586470 99999 LONGQUAN CH 28.1 119.083 180.0 19570301 20041123 586480 99999 AN-REN CH 28.05 119.333 274.0 19740421 19840513 586530 99999 KUOCANG SHAN CH 28.816999999999997 120.917 1375.0 19570601 20011017 586540 99999 JIN-YUN CH 0.0 0.0 -999.0 19740425 19840517 586550 99999 YONG-LIN CH 0.0 0.0 -999.0 19731004 20020429 586580 99999 KENG-KOU CH 0.0 0.0 -999.0 19740616 20020116 586590 99999 WENZHOU CH ZSWZ 28.017 120.667 7.0 19560820 20150322 586600 99999 LINHAI CH 28.85 121.133 9.0 19940801 20111121 586620 99999 HAI-MEN CH 28.683000000000003 122.133 3.0 19731004 20020617 586650 99999 HONGJIA CH 28.616999999999997 121.417 2.0 19560820 20100424 586660 99999 DACHEN DAO CH 28.45 121.883 84.0 19591101 20170923 586670 99999 YU-HUAN CH 28.133000000000003 121.21700000000001 100.0 19570601 20100424 586690 99999 SONGMEN SOUTHEAST CH 28.283 121.73299999999999 2.0 19731026 19740801 587130 99999 HUANG-SHI-DU CH 0.0 0.0 -999.0 19740601 20020803 587150 99999 NANCHENG CH 27.583000000000002 116.65 82.0 19560820 20170923 587210 99999 NAME UNKNOWN (ONC) CH 27.717 117.05 305.0 19740425 19851024 587230 99999 19740601 19740919 587250 99999 SHAOWU CH 27.333000000000002 117.46700000000001 219.0 19570602 20170923 587260 99999 QIXIAN SHAN CH 27.95 117.833 1415.0 19560820 19940718 587300 99999 WUYISHAN CH 27.767 118.03299999999999 221.0 19920301 20170923 587310 99999 PUCHENG CH 27.916999999999998 118.53299999999999 275.0 19560820 20170923 587320 99999 APPROXIMATE LOCATIO CH 27.833000000000002 118.5 0.0 19801001 20011230 587340 99999 JIAN-YANG CH 0.0 0.0 -999.0 19570601 20020620 587350 99999 APPROXIMATE LOCATIO CH 27.5 118.5 0.0 19801001 20020518 587360 99999 XIONG MOUNTAIN CH 0.0 0.0 -999.0 19600309 19840815 587370 99999 JIAN'OU CH 27.05 118.31700000000001 112.0 19570601 20100424 587450 99999 SHOU-NING CH 27.467 119.48299999999999 732.0 19570609 20020730 587470 99999 LI-MEN CH 0.0 0.0 -999.0 19740425 20030610 587490 99999 FU AN CH 0.0 0.0 -999.0 19740601 19850920 587520 99999 RUIAN CH 27.783 120.65 38.0 20040713 20170923 587530 99999 RUI-AN CH 0.0 0.0 -999.0 19731006 20021127 587540 99999 FUDING CH 27.333000000000002 120.2 38.0 19560820 20170923 587600 99999 20020207 20070727 587640 99999 DONG-GUA ISLAND CH 27.633000000000003 121.05 18.0 19591101 20010912 587650 99999 NANJI SHAN CH 27.467 121.05 2.0 19731004 20020120 588110 99999 LO-KOU CH 26.85 116.06700000000001 243.0 19731113 19741008 588130 99999 GUANGCHANG CH 26.85 116.333 142.0 19570610 20170923 588150 99999 NING-HUA CH 26.267 116.65 303.0 19730102 20020624 588200 99999 SANMING CH 26.183000000000003 117.617 198.0 19570601 20100424 588210 99999 TAI-NING CH 26.9 117.167 305.0 19730810 20051025 588250 99999 JIANG-LE CH 26.767 117.367 183.0 19730102 20020517 588260 99999 SHA-XIAN CH 26.4 117.78299999999999 183.0 19730102 20050506 588310 99999 XIA-YANG CH 26.783 118.0 146.0 19570601 20020511 588340 99999 NANPING CH 26.633000000000003 118.15 153.0 19560820 20170923 588370 99999 YOU-XI CH 26.166999999999998 118.18299999999999 165.0 19730103 20020610 588380 99999 SHUANG-KENG CH 0.0 0.0 -999.0 19731004 19840507 588460 99999 LUOYUAN CH 26.517 119.53299999999999 85.0 19570602 20100424 588470 99999 CHANGLE CH ZSFZ 25.935 119.663 14.0 19560820 20170923 588480 99999 SANYA CH 0.0 0.0 -999.0 19731008 20020220 588490 99999 MAZU CH 26.166999999999998 119.93299999999999 91.0 19560821 20050830 588500 99999 SONGCHENG NORTHEAST CH 26.933000000000003 120.06700000000001 258.0 19600506 19631031 588520 99999 TA-YU MOUNTAIN CH 26.916999999999998 120.383 305.0 19570601 20020919 588530 99999 TAISHAN CH 27.0 120.7 107.0 19631101 20020104 588540 99999 XI-YANG ISLAND CH 0.0 0.0 -999.0 19730101 20020816 588640 99999 TUNG-YIN ISLAND CH 0.0 0.0 -999.0 19730303 19831002 588930 99999 BOGUS CHINESE CH 19860604 19860626 589110 99999 CHANGTING CH 25.85 116.367 311.0 19570301 20170923 589180 99999 SHANGHANG CH 25.066999999999997 116.35 207.0 19570602 20100424 589210 99999 YONG'AN CH 25.967 117.35 204.0 19560820 20170923 589260 99999 ZHANG PING CH 25.3 117.4 203.0 19940901 20170923 589270 99999 LONGYAN CH 25.1 117.01700000000001 341.0 19560820 20030102 589280 99999 ZHANG-PING CH 25.3 117.4 0.0 19740421 19851011 589310 99999 JIUXIAN SHAN CH 25.717 118.1 1651.0 19560820 20170923 589320 99999 NAME UNKNOWN (ONC) CH 0.0 0.0 -999.0 19740425 20020615 589330 99999 ZHANGCHENG SOUTHWEST CH 25.866999999999997 118.917 152.0 19600101 19610314 589340 99999 YONG-CHUN CH 0.0 0.0 -999.0 19740613 19850922 589380 99999 HUNG-LAI CH 25.083000000000002 118.51700000000001 61.0 19880201 20030809 589410 99999 HESHANG SOUTHEAST CH 25.933000000000003 119.56700000000001 8.0 19570603 19610314 589440 99999 PINGTAN CH 25.517 119.78299999999999 31.0 19560820 20170923 589450 99999 BOGUS CHINESE CH 19831201 20020823 589470 99999 DAI-TOU CH 25.267 119.2 37.0 19740817 20020408 589650 99999 TAOYUAN CH 25.05 121.21700000000001 48.0 19560820 20030222 589680 99999 TAIBEI CH 25.033 121.51700000000001 9.0 19570601 20170923 589690 99999 589690 CH 25.066999999999997 121.53299999999999 7.0 19730101 19900623 589740 99999 PENGJIA YU CH 25.633000000000003 122.06700000000001 102.0 19730102 20170923 589840 99999 BOGUS CHINESE CH 19801001 20011007 590070 99999 GUANGNAN CH 24.066999999999997 105.06700000000001 1251.0 19560820 20170923 590080 99999 BOGUS CHINESE CH 19801001 20040118 590130 99999 BOGUS CHINESE CH 19801001 20041008 590210 99999 TIAN'E/LIUPAI CH 25.083000000000002 107.2 305.0 19730101 20040827 590230 99999 HECHI CH 24.7 108.05 214.0 19560820 20170923 590370 99999 DU AN CH 24.017 108.083 162.0 19570601 19610314 590460 99999 LIUZHOU CH 24.35 109.4 97.0 19430919 20170923 590580 99999 MENGSHAN CH 24.2 110.51700000000001 145.0 19570601 20170923 590620 99999 BOGUS CHINESE CH 19801001 19840222 590650 99999 HEXIAN/BABU CH 24.467 111.56700000000001 91.0 19570601 20021209 590720 99999 LIANZHOU CH 24.8 112.367 98.0 19560820 20170923 590750 99999 YANGSHAN CH 24.483 112.633 64.0 19731004 19741013 590760 99999 NAME UNKNOWN (ONC) CH 0.0 0.0 -999.0 19731108 19820219 590770 99999 XIA-SHUI-XU CH 0.0 0.0 -999.0 19740504 19840914 590820 99999 SHAOGUAN CH 24.666999999999998 113.6 68.0 19560820 20170923 590830 99999 BOGUS CHINESE CH 19890608 20020912 590850 99999 WU-SHI (?) CH 0.0 0.0 -999.0 19740424 19811212 590860 99999 XIN-JIANG CH 0.0 0.0 -999.0 19740615 20020615 590870 99999 FOGANG CH 23.883000000000003 113.51700000000001 68.0 19570602 20170923 590920 99999 CHENG-LONG CH 0.0 0.0 -999.0 19730104 19840601 590960 99999 LIANPING CH 24.366999999999997 114.48299999999999 214.0 19570602 20170923 590970 99999 XINFENG CH 0.0 0.0 -999.0 19730105 20011210 591020 99999 XUNWU CH 24.95 115.65 299.0 19560820 20170923 591090 99999 XING-NING CH 0.0 0.0 -999.0 19800803 19840504 591170 99999 MEI XIAN CH ZGMX 24.283 116.06700000000001 116.9 19560820 20170923 591240 99999 NAN-JING CH 0.0 0.0 -999.0 19800702 20020126 591260 99999 ZHANGZHOU CH 24.633000000000003 117.65 24.0 19570603 20021209 591270 99999 DA-XI CH 0.0 0.0 -999.0 19740423 20011114 591330 99999 JIN-JIANG CH 24.8 118.583 22.0 19570601 20021209 591340 99999 GAOQI CH ZSAM 24.544 118.12799999999999 18.0 19560820 20170923 591350 99999 CHIN-MEN TW 24.433000000000003 118.43299999999999 12.0 19560820 19850722 591520 99999 XINZHU CH 24.8 120.96700000000001 34.0 20020103 20070226 591530 99999 XIN-ZHU TW 24.816999999999997 120.95 8.0 19560820 19841229 591550 99999 19730104 19730109 591580 99999 TAIZHONG CH 24.15 120.68299999999999 78.0 19560820 20170923 591590 99999 TAICHUNG TW 24.183000000000003 120.65 112.0 19730101 19840713 591625 99999 YANCHENG CH ZSYN 33.417 120.2 3.0 20131001 20160520 591630 99999 I-LAN FORMOSA/NILAN CH 24.767 121.75 7.0 19560820 19591031 592020 99999 XI-YANG (?) CH 0.0 0.0 -999.0 19740425 20011003 592030 99999 ZHE-SHANG CH 0.0 0.0 -999.0 19740514 20010831 592090 99999 NAPO CH 23.3 105.95 794.0 19730101 20170923 592110 99999 BAISE CH 23.9 106.6 177.0 19560820 20170923 592160 99999 HUO-JIAO CH 23.633000000000003 106.71700000000001 329.0 19730323 20011006 592170 99999 RONG-LAO-XIANG CH 0.0 0.0 -999.0 19731004 20020821 592180 99999 XINJING CH 23.133000000000003 106.417 740.0 19570601 20021209 592240 99999 PINGMA CH 23.6 107.117 112.0 19570601 19890913 592280 99999 LONG'AN CH 23.133000000000003 107.65 457.0 19880201 20021209 592340 99999 QIAO-LI CH 0.0 0.0 -999.0 19731004 20020815 592420 99999 DA-WAN CH 23.85 109.417 76.0 19570602 20021209 592430 99999 XIANGZHOU CH 23.95 109.68299999999999 122.0 19740307 19741025 592450 99999 WU-XUAN CH 0.0 0.0 -999.0 19730701 20020421 592540 99999 GUIPING CH 23.4 110.083 44.0 19560820 20170923 592580 99999 LIU-CHEN CH 0.0 0.0 -999.0 19740610 20020416 592590 99999 JINJI CH 23.217 110.81700000000001 77.0 19740111 19750404 592620 99999 GU-NA CH 23.833000000000002 111.56700000000001 137.0 19740302 20020530 592650 99999 WUZHOU CH 23.483 111.3 120.0 19560820 20170923 592710 99999 HUAIJI CH 23.95 112.2 57.0 19570601 20021209 592730 99999 QINGCHENG CH 23.666999999999998 112.867 20.0 19740112 19741024 592770 99999 LU-BU CH 0.0 0.0 -999.0 19740424 20020615 592780 99999 GAOYAO CH 23.05 112.46700000000001 12.0 19570601 20170923 592800 99999 QING YUAN CH 23.7 113.083 19.0 19990207 19991203 592830 99999 LIANG-KOU (?) CH 0.0 0.0 -999.0 19731101 20011206 592870 99999 BAIYUN INTL CH ZGGG 23.392 113.29899999999999 15.2 19451130 20170923 592871 99999 HUANGHUA CH ZGHA 28.189 113.22 66.1 20040713 20170923 592880 99999 GUANG-ZHOU/EAST CH 0.0 0.0 -999.0 19731008 20020926 592930 99999 HEYUAN CH 23.8 114.73299999999999 41.0 19560820 20170923 592970 99999 BO-LUO CH 0.0 0.0 -999.0 19731005 20020522 592980 99999 HUI-YANG CH 23.083000000000002 114.417 16.0 19570603 20021209 593030 99999 SONG-LIN-BA CH 23.967 115.96700000000001 152.0 19570601 20021209 593090 99999 DAPING CH 23.183000000000003 115.85 97.0 19740421 19751221 593110 99999 APPROXIMATE LOCALE CH 23.767 116.01700000000001 0.0 19740421 20020110 593160 99999 SHANTOU CH ZGOW 23.4 116.68299999999999 3.0 19560820 20170923 593170 99999 HUILAI CH 23.083000000000002 116.3 30.0 19570602 20021209 593210 99999 GULEITOU CH 23.8 117.55 6.0 19560820 19611031 593240 99999 LUNG-AO /NAN-AO TAO CH 23.433000000000003 117.01700000000001 19570601 19610314 593260 99999 XIONG-DI ISLAND CH 0.0 0.0 -999.0 19731108 19851025 593270 99999 APPROXIMATE LOCALE CH 23.166999999999998 117.167 0.0 19830201 20011025 593450 99999 MAGONG CH 23.517 119.56700000000001 22.0 19560820 19910321 593460 99999 P ENG-HU CH 23.533 119.56700000000001 21.0 19730103 19820511 593530 99999 ALI SHAN CH 23.517 120.8 2408.0 19490930 20011212 593540 99999 CHIA-YI TW 23.467 120.383 25.0 19560820 20020131 593580 99999 TAINAN CH 23.0 120.21700000000001 14.0 19560820 20170923 593590 99999 19730103 19730114 593610 99999 HUA-LIAN CITY TW 23.983 121.6 19.0 19730101 19850709 593620 99999 HUALIAN CH 24.017 121.617 14.0 19560820 19900623 594170 99999 LONGZHOU CH 22.366999999999997 106.75 129.0 19560820 20170923 594270 99999 NING-MING CH 22.116999999999997 107.133 168.0 19801001 19840518 594310 99999 WUXU CH ZGNN 22.608 108.17200000000001 128.3 19440114 20170923 594320 99999 BOGUS CHINESE CH 19801001 20020823 594460 99999 BOBAI CH 22.25 109.96700000000001 121.0 19570601 20021209 594530 99999 CEN-XI CH 22.933000000000003 110.98299999999999 243.0 19570701 20021209 594560 99999 XINYI CH 22.35 110.93299999999999 84.0 19560820 20170923 594620 99999 LUODING CH 22.717 111.55 134.0 19591101 20021209 594680 99999 SANJIA CH 23.133000000000003 111.46700000000001 80.0 19740422 19741130 594720 99999 MING-CHENG CH 0.0 0.0 -999.0 19731103 20020618 594730 99999 HE-QING CH 0.0 0.0 -999.0 19740427 20020606 594770 99999 EN-PING CH 0.0 0.0 -999.0 19740112 20011201 594780 99999 TAI-SHAN CH 22.267 112.78299999999999 46.0 19560820 20021209 594880 99999 ZHUHAI SANZAO CH 22.017 113.383 3.0 19740611 19741125 594930 99999 BAOAN INTL CH ZGSZ 22.639 113.811 4.0 19570601 20170923 595010 99999 SHANWEI CH 22.783 115.367 5.0 19560820 20170923 595050 99999 APPROXIMATE LOCALE CH 22.5 115.5 0.0 19830201 20011016 595500 99999 TAINAN CH 22.95 120.18299999999999 17.0 19730101 19801007 595520 99999 LU-CHU TW 22.833000000000002 120.3 15.0 19560820 19591031 595530 99999 DONGGANG CH 22.467 120.43299999999999 8.0 19730102 20031205 595540 99999 GAOXIONG CH 22.616999999999997 120.26700000000001 33.0 20020617 20020617 595580 99999 HENG CHUN ARPT TW 22.033 120.73299999999999 13.0 19730101 20011205 595590 99999 HENGCHUN CH 22.0 120.75 24.0 19560820 20170923 595600 99999 CHIN HONG CH 22.8 121.167 37.0 19730101 19800710 595620 99999 TAIDONG CH 22.75 121.15 10.0 19560820 20170923 595670 99999 LAN YU CH 22.033 121.55 325.0 19730101 20170923 595680 99999 ORCHID ISL. TW 22.033 121.55 10.0 19731115 20020526 596220 99999 DONG-JIAO (?) CH 0.0 0.0 -999.0 19740426 19820428 596260 99999 DONG-XING CH 21.55 107.96700000000001 13.0 19591101 20021209 596320 99999 QINZHOU CH 21.95 108.617 6.0 19560820 20170923 596330 99999 BAI-MU CH 0.0 0.0 -999.0 19731004 20020515 596340 99999 WANWEI CH 21.55 108.167 21.0 19570602 19580731 596440 99999 BEIHAI CH 21.483 109.1 16.0 19450811 20170923 596441 99999 BEIHAI AIRPORT CH ZGBH 21.539 109.294 16.0 20100602 20140908 596460 99999 SHAN-KOU (?) CH 0.0 0.0 -999.0 19740422 19820422 596470 99999 WEI-ZHOU ISLAND CH 21.033 109.117 41.0 19570602 20021209 596480 99999 FOU-TOU CH 0.0 0.0 -999.0 19731010 19840503 596570 99999 ZHAN-JIANG CH 0.0 0.0 -999.0 19800401 20020613 596580 99999 ZHANJIANG CH ZGZJ 21.217 110.4 28.0 19560820 20170923 596630 99999 YANGJIANG CH 21.866999999999997 111.96700000000001 22.0 19560820 20170923 596640 99999 TIAN-CHENG CH 21.517 111.3 8.0 19570602 20021209 596730 99999 SHANGCHUAN DAO CH 21.733 112.76700000000001 18.0 19591101 20170923 596830 99999 BEI-JIAN ISLAND CH 0.0 0.0 -999.0 19731101 20020426 597380 99999 DAO-BACH-LONG ISLAN CH 20.133 107.73299999999999 58.0 19731108 20020731 597450 99999 XI-CUN CH 0.0 0.0 -999.0 19731004 20020725 597480 99999 LIN-GAO (CAPE) CH 0.0 0.0 -999.0 19731004 19820826 597520 99999 BOGUS CHINESE CH 19831201 20070526 597540 99999 XUWEN CH 20.367 110.167 109.0 19570602 20021209 597550 99999 CHIN HO (CHIN NANG) CH 0.0 0.0 -999.0 19731108 20020524 597580 99999 HAIKOU CH ZGHK 20.0 110.25 24.0 19560820 20170918 597920 99999 DONGSHA DAO CH 20.666999999999998 116.71700000000001 6.0 19560820 20170923 598380 99999 DONGFANG CH 19.1 108.617 8.0 19560820 20170923 598450 99999 DANXIAN CH 19.517 109.583 169.0 19570602 20170923 598480 99999 BAI-SHA CH 0.0 0.0 -999.0 19731114 19851031 598490 99999 XIN-SHI CH 19.067 109.883 243.0 19570601 20021209 598530 99999 APPROXIMATE LOCALE CH 19.833 110.833 0.0 19830201 20040908 598550 99999 QIONGHAI CH 19.233 110.46700000000001 25.0 19560820 20170923 598580 99999 BOGUS CHINESE CH 19.25 110.48299999999999 -999.0 19740422 20011214 599380 99999 HUANG-LIU CH 0.0 0.0 -999.0 19730105 19851006 599450 99999 BAO-TING CH 0.0 0.0 -999.0 19731008 19840302 599480 99999 SANYA CH 18.217 109.583 7.0 19560820 20170923 599540 99999 LING-SHUI CH 18.5 110.0 50.0 19570601 20021209 599550 99999 DA-ZHOU ISLAND CH 18.667 110.46700000000001 246.0 19731111 19840203 599580 99999 19740101 19750122 599810 99999 XISHA DAO CH 16.833 112.333 5.0 19570701 20170923 599850 99999 SANHU DAO CH 16.533 111.617 5.0 19750426 20170923 599910 99999 19741103 19741128 599950 99999 YONGSHUJIAO CH 9.533 112.883 6.0 19881001 20111022 599970 99999 NANSHA DAO CH 10.383 114.367 5.0 19730101 20170923 600010 99999 HIERRO SP GCHI 27.815 -17.887 31.4 19730313 20170923 600050 99999 LA PALMA SP GCLA 28.625999999999998 -17.756 32.6 19600101 20170923 600070 99999 LA GOMERA/AEROPUERTO SP 28.033 -17.217 219.0 20040529 20170923 600100 99999 IZANA SP 28.316999999999997 -16.5 2368.0 19470101 20170923 600150 99999 TENERIFE NORTE SP GCXO 28.483 -16.342 631.9 19470101 20170923 600180 99999 TENERIFE-GUIMAR SP 28.316999999999997 -16.383 111.0 20081007 20170923 600200 99999 STA. CRUZ DE TENERIFE SP 28.45 -16.25 36.0 19310103 20170923 600214 99999 TENEIFE SUR CP 28.416999999999998 -16.75 50.0 19781205 19840215 600250 99999 TENERIFE SUR SP GCTS 28.044 -16.572 63.7 19800701 20170923 600280 99999 ARTENARA SP 28.017 -15.617 1681.0 20040522 20060205 600300 99999 GRAN CANARIA SP GCLP 27.932 -15.387 23.8 19500316 20170923 600310 99999 BOGUS CANARY ISLAND SP 0.0 0.0 -999.0 19870301 20041205 600330 99999 HASSAN I WI GMML 27.151999999999997 -13.219000000000001 63.1 19610601 20170923 600340 99999 DAKHLA WI GMMH 23.718000000000004 -15.932 6.1 20040811 20170923 600350 99999 FUERTEVENTURA SP GCFV 28.453000000000003 -13.864 25.3 19500327 20170923 600400 99999 LANZAROTE SP GCRR 28.945 -13.605 14.3 19500310 20170923 600600 99999 SIDI IFNI MO GMMF 29.369 -10.18 59.0 19500310 20170923 600650 99999 19870511 19870511 600690 99999 CABO JUBY SPANISH SAHARA 27.933000000000003 -13.0 4.9 19310103 19580416 600960 99999 VILLA CISNEROS(MIL) WI GSVO 23.7 -15.867 10.0 19310103 20170923 601000 99999 TANGER-PORT MO 35.783 -5.8 11.0 19490102 20120622 601010 99999 IBN BATOUTA MO GMTT 35.727 -5.917000000000001 18.9 19570101 20170923 601050 99999 LARACHE MO 35.15 -6.1 49.0 19620506 20170923 601060 99999 CHEFCHAOUEN MO 35.167 -5.3 305.0 19940901 20170923 601070 99999 CHERIF EL IDRISSI MO GMTA 35.177 -3.84 27.1 19650307 20170923 601150 99999 ANGADS MO GMFO 34.787 -1.9240000000000002 467.9 19490110 20170923 601154 99999 SIDI SLIMANE & MO GMSL 34.233000000000004 -6.05 52.0 19811017 19820531 601190 99999 KENITRA (RMAF) MO 34.3 -6.6 6.0 19730101 20050811 601191 99999 KENITRA (RMAF) MO 34.3 -6.617000000000001 6.0 20050405 20050623 601200 99999 KENITRA (RMAFB) MO GMMP 34.3 -6.6 6.0 19490122 20160522 601250 99999 TOUAHAR MO 34.2 -3.833 569.1 19490105 19521231 601270 99999 TAZA MO GMFZ 34.217 -4.0 510.0 19591017 20170923 601300 99999 RABAT MO 34.0 -6.832999999999999 68.0 19490113 19521231 601350 99999 SALE MO GMME 34.051 -6.752000000000001 84.1 19430113 20170923 601360 99999 SIDI SLIMANE MO GMSL 34.233000000000004 -6.05 50.0 19510901 20101108 601400 99999 FES MO 34.033 -4.9830000000000005 414.0 19490103 19610328 601410 99999 SAISS MO GMFF 33.927 -4.978 579.1 19441101 20170923 601460 99999 MOHAMMEDIA MO 33.717 -7.4 5.0 20040621 20051125 601465 99999 TEL MELLIL AIRPORT MO GMMT 33.6 -7.4670000000000005 98.2 20111112 20170714 601500 99999 BASSATINE MO GMFM 33.879 -5.515 576.1 19490116 20170923 601550 99999 ANFA MO GMMC 33.556999999999995 -7.66 61.9 19490101 20170923 601560 99999 MOHAMMED V MO GMMN 33.367 -7.59 199.9 19421121 20170923 601600 99999 IFRANE MO GMFI 33.505 -5.153 1663.9 19490209 20160522 601650 99999 EL JADIDA MO 33.233000000000004 -8.517000000000001 27.0 19840414 20050817 601700 99999 LAJAQMA MO 33.283 -7.4 160.0 19490124 19520529 601780 99999 KHOURIBGA MO 32.867 -6.9670000000000005 781.0 19500621 20050720 601850 99999 SAFI MO GMMS 32.283 -9.232999999999999 45.0 19490404 20170923 601900 99999 KASBA-TADLA MO 32.533 -6.2829999999999995 518.0 19490124 20160609 601910 99999 BENI-MELLAL MO 32.367 -6.4 472.0 19730101 20170923 601920 99999 19870511 19870511 601950 99999 MIDELT MO 32.683 -4.7330000000000005 1515.0 19490130 20170923 601954 99999 ERRACHIDIA MO 31.967 -4.417 1034.0 19810506 19810518 602000 99999 BOUARFA MO GMFB 32.567 -1.95 1143.0 19840410 20130414 602001 99999 ARWI MO 34.983000000000004 -3.017 179.0 20040510 20140407 602051 99999 BEN GUERIR AIR BASE MO 32.117 -7.882999999999999 422.0 19511122 19630501 602100 99999 MOULAY ALI CHERIF MO GMFK 31.948 -4.398 1044.9 19730101 20170923 602200 99999 ESSAOUIRA MO 31.517 -9.783 8.0 19490124 20170923 602230 99999 TAKERKOUSTE MO 31.033 -8.482999999999999 667.0 20130410 20140128 602300 99999 MENARA MO GMMX 31.607 -8.036 467.9 19430118 20170923 602500 99999 INEZGANE MO GMAA 30.381 -9.546 27.1 19450615 20090824 602520 99999 AL MASSIRA MO GMAD 30.325 -9.413 76.2 19920301 20170923 602530 99999 TAROUDANT MO 30.5 -8.817 266.0 20031230 20060123 602650 99999 OUARZAZATE MO GMMZ 30.939 -6.909 1153.1 19490401 20170923 602700 99999 TIZNIT MO 29.683000000000003 -9.732999999999999 261.0 19881225 20060123 602750 99999 ZAGORA MO GMAZ 30.316999999999997 -5.867000000000001 729.0 20020328 20030713 602800 99999 GUELMIN MO GMAG 29.017 -10.067 341.0 19910918 20170923 602850 99999 PLAGE BLANCHE MO GMAT 28.448 -11.161 199.0 19490108 20170923 602890 99999 TARFAYA MO 27.933000000000003 -13.0 10.0 19450828 20051226 602900 99999 MAURITANIA NORTH MR 25.683000000000003 -9.3 500.0 19500211 19521217 602950 99999 FORT TRINQUET APT MB 25.233 -10.417 360.0 19490101 19521231 603080 99999 OULAD EL RHOUMARI MO 35.033 -6.167000000000001 30.0 19500310 19590224 603180 99999 SANIAT RMEL MO GMTN 35.594 -5.32 3.0 19500310 20170923 603200 99999 CEUTA SP 35.917 -5.35 88.0 19650101 20170923 603350 99999 SMARA MO GMMA 26.733 -11.683 110.0 19760302 20160522 603380 99999 MELILLA SP GEML 35.28 -2.9560000000000004 47.5 19641001 20170923 603400 99999 NADOR-AROUI MO GMFN 34.983000000000004 -3.017 177.0 19500201 20170923 603500 99999 BOGUS ALGERIAN AG 37.083 6.45 -999.0 19490112 20051222 603510 99999 FERHAT ABBAS AIRPORT AG DAAV 36.795 5.874 11.0 19811101 20170923 603530 99999 JIJEL-PORT AG 36.817 5.882999999999999 6.0 19951101 20170923 603550 99999 SKIKDA AG DABP 36.933 6.95 7.0 19570206 20170923 603570 99999 ANNABA NORTH AG 36.967 7.8 156.0 19510102 20100123 603600 99999 ANNABA AG DABB 36.821999999999996 7.809 4.9 19450609 20170923 603670 99999 EL-KALA AG 36.9 8.45 13.0 19840101 20140813 603690 99999 ALGER-PORT AG 36.766999999999996 3.1 12.0 19430325 20170923 603710 99999 OUED KORICHE AG 36.783 3.033 171.9 20120101 20140211 603720 99999 BOUZAREAH AG 36.783 3.0 54.6 20120101 20140211 603730 99999 MEHELMA AG 36.7 2.883 70.1 20120101 20140211 603740 99999 AIN BENAIN AG 36.783 2.883 33.0 20030123 20140211 603760 99999 BORDJ-EL-BAHRI AG 36.783 3.25 58.0 20010712 20151228 603790 99999 REGHAIA AG 36.766999999999996 3.333 162.2 20120101 20140211 603800 99999 TESSALA EL MERDJA AG 36.617 2.917 17.1 20120101 20150915 603810 99999 EL HARRACH AG 36.717 3.15 51.0 20120101 20140211 603840 99999 CAP CORBELIN AG 36.9 4.417 45.0 20010923 20050605 603870 99999 DELLYS AG 36.917 3.95 8.0 19951101 20170516 603880 99999 CHERCHELL AG 36.6 2.1830000000000003 33.0 20010713 20041007 603900 99999 HOUARI BOUMEDIENE AG DAAG 36.691 3.215 25.0 19430401 20170923 603930 99999 DAR EL BEIDA VILLE AG 36.7 3.2 148.1 20120101 20140211 603940 99999 BARAKI AG 36.683 3.1 124.4 20120101 20140211 603950 99999 TIZI-OUZOU AG 36.7 4.133 153.0 19951004 20170923 604000 99999 CAP CARBON AG 36.75 5.1 13.0 19490402 20051221 604010 99999 BEJAIA-PORT AG 36.75 5.1 4.0 20010916 20140901 604020 99999 SOUMMAM AG DAAE 36.711999999999996 5.07 6.1 19730101 20170923 604030 99999 GUELMA AG 36.467 7.4670000000000005 228.0 19951004 20170923 604050 99999 BOUCHEGOUF AG 36.5 7.7170000000000005 111.0 20020314 20170627 604100 99999 TENES AG 36.5 1.3330000000000002 18.0 19490102 20170713 604130 99999 BOUFARIK AG 36.55 2.883 85.0 19490116 19620523 604150 99999 AIN-BESSAM AG 36.283 3.667 752.0 20030330 20170611 604170 99999 BOUIRA AG 36.383 3.883 560.0 19951008 20170708 604190 99999 MOHAMED BOUDIAF INTL AG DABC 36.275999999999996 6.62 690.4 19430301 20170923 604200 99999 LE KHROUB AG 36.266999999999996 6.683 583.0 19490108 20140501 604210 99999 OUM EL BOUAGHI AG 35.867 7.117000000000001 891.0 19850203 20170923 604230 99999 SOUK AHRAS AG 36.25 7.95 831.0 19880813 20170923 604250 99999 ECH CHELIFF AG DAOI 36.213 1.3319999999999999 141.1 19430107 20170923 604300 99999 MILIANA AG 36.3 2.233 721.0 19490112 20170923 604350 99999 BLIDA AG 36.483000000000004 2.8169999999999997 170.0 19490108 20140217 604370 99999 MEDEA AG 36.283 2.733 1036.0 19951008 20170923 604440 99999 BORDJ-BOU-ARRERIDJ AG 36.067 4.667 957.0 19790916 20170923 604450 99999 SETIF AIN ARNAT AG DAAS 36.178000000000004 5.324 1050.0 19490115 20170923 604520 99999 ARZEW AG 35.817 -0.267 4.0 19840801 20170923 604570 99999 MOSTAGANEM AG 35.883 0.11699999999999999 138.0 19760401 20170923 604590 99999 SIDI AISSA AG 35.883 3.767 658.0 20010806 20010806 604591 99999 HASSI R MEL AG 32.917 3.3 794.0 20040510 20170923 604592 99999 TAFARAOUI AG 35.533 -0.5329999999999999 115.0 20040525 20170923 604593 99999 MASCARA AG DAOM 35.383 0.133 492.0 20040525 20080418 604610 99999 ORAN-PORT AG 35.7 -0.65 22.0 19510118 20170813 604650 99999 BOGHAR NORTH AG 35.933 2.75 635.0 19490108 20110622 604653 99999 AIN OUSSERA AG DAAQ 35.525 2.8789999999999996 649.8 20160209 20160209 604670 99999 M'SILA AG 35.667 4.5 442.0 19810101 20170921 604680 99999 BATNA AG DABT 35.751999999999995 6.309 822.0 19730101 20170923 604710 99999 BARIKA AG 35.333 5.332999999999999 461.0 20031118 20120814 604750 99999 CHEIKH LARBI TEBESSI AG DABS 35.431999999999995 8.121 811.1 19510102 20170923 604760 99999 KHENCHELLA AG 35.467 7.082999999999999 987.0 19960201 20170709 604780 99999 ARIS AG 35.25 6.35 1240.0 20040621 20041207 604810 99999 ORAN-TAFARAOUI AG 35.483000000000004 -0.517 111.0 19811101 20110706 604820 99999 CAP AIGUILLE AG 35.867 -0.483 62.0 20021010 20050806 604850 99999 CAP FALCON AG 35.766999999999996 -0.8 104.0 19650307 20050815 604900 99999 ES SENIA AG DAOO 35.624 -0.621 89.9 19490102 20170923 604920 99999 RELIZANE AG DAAZ 35.75 0.617 94.0 19421114 20170923 604925 99999 SIDI BEL ABBES AG DAOS 35.172 -0.593 491.9 20070421 20100504 604981 99999 DJELFA/TLETSI AG 34.667 3.35 1178.0 19750804 19840212 605050 99999 ORAN/TAFAROUI AG 35.717 -0.7170000000000001 111.0 20031214 20050317 605054 99999 ORAN/TAFAROUI AG DAOL 35.483000000000004 -0.5329999999999999 0.0 19421114 19851124 605060 99999 MASCARA-MATEMORE AG 35.6 0.3 476.0 19810101 20080430 605070 99999 GHRISS AG DAOV 35.208 0.147 513.9 19430521 20170923 605110 99999 BOU CHEKIF AG DAOB 35.341 1.463 989.1 19830404 20170923 605140 99999 KSAR CHELLALA AG 35.167 2.3169999999999997 801.0 19951101 20170923 605150 99999 BOU SAADA AG DAAD 35.333 4.206 459.0 19840301 20170923 605170 99999 GHAZAOUET AG 35.1 -1.867 5.0 19951101 20170923 605180 99999 BENI-SAF AG 35.3 -1.35 70.0 19760307 20170918 605200 99999 SIDI-BEL-ABBES AG 35.2 -0.617 476.0 19850203 20170923 605220 99999 MAGHNIA AG DAOH 34.82 -1.77 426.0 19761001 20170923 605250 99999 BISKRA AG DAUB 34.793 5.7379999999999995 88.1 19430201 20170923 605300 99999 TLEMCEN/ZENATA AG 35.016999999999996 -1.3330000000000002 587.0 19730102 20050729 605310 99999 ZENATA AG DAON 35.016999999999996 -1.45 248.1 19810101 20170923 605350 99999 DJELFA/TLETSI AG DAFI 34.683 3.25 1144.0 19490108 20170923 605360 99999 SAIDA AG 34.867 0.15 752.0 19810101 20170923 605400 99999 EL-KHEITER AG 34.15 0.067 1001.0 19490116 20170921 605450 99999 LAGHOUAT AG DAUL 33.764 2.927 765.0 19490108 20170923 605490 99999 MECHERIA AG DAAY 33.536 -0.242 1175.0 19800208 20170923 605500 99999 EL-BAYADH AG DAOY 33.717 1.083 1347.0 19490116 20170923 605550 99999 SIDI MAHDI AG DAUK 33.068000000000005 6.0889999999999995 85.0 19490112 20170923 605570 99999 NAAMA AG 33.266999999999996 -0.3 1166.0 19951004 20170923 605590 99999 GUEMAR AG DAUO 33.510999999999996 6.777 61.9 19650101 20170923 605600 99999 AIN-SEFRA AG 32.766999999999996 -0.6 1059.0 19490112 20170923 605630 99999 HASSIR'MEL AG 32.933 3.283 764.0 20010916 20140217 605650 99999 BENI ISUGEN AG 32.467 3.667 533.0 19490108 19521231 605660 99999 NOUMERAT AG DAUG 32.384 3.7939999999999996 460.9 19590416 20170923 605700 99999 COLUMB-BECHAR AG 31.616999999999997 -1.7830000000000001 780.9 19490102 19750725 605710 99999 BECHAR AG DAOR 31.646 -2.27 811.1 19570101 20170923 605800 99999 OUARGLA AG DAUU 31.916999999999998 5.412999999999999 150.0 19490130 20170923 605810 99999 OUED IRARA AG DAUH 31.673000000000002 6.14 141.1 19650307 20170923 605900 99999 EL GOLEA AG DAUE 30.570999999999998 2.86 398.1 19490130 20170923 605930 99999 HASSI KHEBI AG 29.166999999999998 -5.233 565.0 20120308 20140205 606000 99999 BENI-ABBES AG 30.133000000000003 -1.8330000000000002 498.0 19490116 19621013 606010 99999 HAMRA AG DAMH 29.233 6.483 259.0 20110101 20150215 606020 99999 BENI-ABBES AG 30.133000000000003 -2.167 505.0 19730101 20170923 606030 99999 RHOURD NOUSS AG DAEN 29.717 6.7 252.0 20051023 20170923 606050 99999 TABELBALA AG 29.416999999999998 -3.25 550.0 19500211 20140211 606060 99999 TATA MG 29.767 -8.0 899.8 19490130 19660127 606070 99999 TIMIMOUN AG DAUT 29.237 0.276 313.0 19660722 20170923 606080 99999 BORDJ OMAR DRISS AG 28.133000000000003 6.832999999999999 387.0 19500201 20051019 606100 99999 MAISON ROUGE LY 27.816999999999997 9.967 466.0 19590104 20130629 606110 99999 IN AMENAS AG DAUZ 28.052 9.642999999999999 563.0 19641001 20170923 606120 99999 TIRIRINE AG 22.05 8.583 770.0 20120601 20170825 606130 99999 OUHANET AG 28.7 8.933 610.0 20120101 20140211 606170 99999 TAMESGUIDA AG 27.316999999999997 3.717 354.0 20120601 20130131 606190 99999 TAGUENTOUR AG 28.467 2.517 636.0 20080401 20170923 606200 99999 TOUAT CHEIKH SIDI MOHAMED BELKEBIR AG DAUA 27.838 -0.18600000000000003 280.1 19490130 20170923 606201 99999 BORDJ MOKHTAR AG 21.333000000000002 0.95 398.0 20040713 20170923 606210 99999 IN GUEZZAM AG 19.567 5.75 399.9 20040929 20120818 606250 99999 AOULEF AG DAAF 26.967 1.083 309.0 19490210 20050529 606300 99999 IN-SALAH AG 27.233 2.5 269.0 19490102 20140218 606305 99999 IN SALAH AG 27.25 2.5 280.0 19790801 20170923 606330 99999 IN ZIZA AG 23.217 2.583 443.0 20090201 20150611 606380 99999 TIN FOUYE AG DAEF 28.433000000000003 7.55 472.0 20110101 20170105 606390 99999 TINFOUYE AG DATF 28.433000000000003 7.55 471.0 20120101 20140211 606400 99999 ILLIZI TAKHAMALT AG DAAP 26.724 8.623 541.9 19500201 20170923 606450 99999 REGGANE AG DAAN 26.717 0.28300000000000003 291.1 19500215 20170923 606460 99999 REGGANE AG 26.7 0.28300000000000003 285.0 19590325 19670515 606500 99999 AMGUID AG 26.416999999999998 5.367000000000001 614.0 20080721 20130417 606560 99999 TINDOUF AG DAOF 27.7 -8.167 442.9 19430319 20170923 606600 99999 ARAK AG 25.267 3.733 556.0 20080721 20170923 606610 99999 ABDENNIZI AG 25.217 5.117 800.0 19500201 20140410 606620 99999 FADNOUNE AG 25.816999999999997 8.183 1291.0 20120601 20170923 606630 99999 MOULAY LACHEN AG 24.717 4.65 1054.0 20080721 20160720 606650 99999 GHAT SOUTH LY 24.916999999999998 10.2 710.0 19500201 20140122 606670 99999 TINALKOUM AG 24.6 10.217 719.0 20120601 20161110 606700 99999 TISKA AG DAAJ 24.293000000000003 9.452 968.0 19490214 20170923 606720 99999 MERTOUEK AG 24.217 5.5329999999999995 1343.0 20080721 20170923 606750 99999 OUALLEN AG 23.4 1.0 358.0 19490130 20140720 606760 99999 IN-EZZANE AG 23.483 11.232999999999999 912.0 20080721 20121213 606770 99999 AFARA AG 25.333000000000002 7.8 1240.0 20090201 20170627 606780 99999 IN AMGUEL AG 23.816999999999997 5.15 1006.0 19641001 19670223 606790 99999 ASSEKREM AG 23.267 5.632999999999999 2710.0 20080721 20170923 606800 99999 TAMANRASSET AG 22.8 5.433 1364.0 19490214 20140218 606805 99999 TAMANRASSET AG 22.8 5.45 1412.0 19801107 20170923 606810 99999 OUED TAHAGGARET AG 21.683000000000003 7.132999999999999 573.0 20120101 20140327 606820 99999 TINTARABINE AG 23.183000000000003 6.767 1105.0 20120218 20170328 606850 99999 BIDON 5 AG 22.316999999999997 1.117 392.0 20120101 20140211 606860 99999 BORDJ-BADJ-MOKHTAR AG 21.333000000000002 0.95 399.0 19951102 20140210 606890 99999 TIMIAOUINE AG 20.417 1.8 608.7 20120101 20140211 606900 99999 IN-GUEZZAM AG 19.567 5.767 400.0 19880326 20151028 606910 99999 ANESBARAKA AG 19.433 4.65 477.0 20120601 20170923 606920 99999 IN GUEZZAM AG DATG 19.57 5.75 400.0 20120601 20170923 606930 99999 IN ATEI AG 20.566999999999997 6.117000000000001 471.0 20120101 20140205 606940 99999 IN AZAOUA AG 20.967 7.45 517.0 20120101 20140206 606950 99999 TIN ZAOUATENE AG 19.967 2.983 734.9 20120101 20140211 607050 99999 BIZERTE TS 37.233000000000004 9.817 6.1 19490108 19521231 607100 99999 TABARKA 7 NOVEMBRE TS DTKA 36.98 8.877 70.1 19741001 20170923 607140 99999 SIDI AHMED AIR BASE TS DTTB 37.245 9.791 6.1 19430805 20170923 607150 99999 CARTHAGE TS DTTA 36.851 10.227 6.7 19430608 20170923 607200 99999 KELIBIA TS DTTL 36.85 11.083 30.0 19430524 20170923 607230 99999 BEJA TS 36.733000000000004 9.183 159.0 19880503 20170923 607250 99999 JENDOUBA TS DTTN 36.483000000000004 8.8 144.0 19430630 20170923 607255 99999 ZINE EL ABIDINE BEN ALI INTL AIRPORT TS 36.083 10.433 21.0 20091201 20111205 607280 99999 NABEUL TS 36.467 10.7 78.0 19820901 20170923 607290 99999 ZAGHONAN MAGRANE TS 36.433 10.083 156.0 20010917 20170908 607310 99999 ENFIDHA TS DTNH 36.083 10.433 6.0 20110201 20170923 607320 99999 LE KEF TS 36.133 8.7 518.0 19891001 20170923 607340 99999 SILIANA TS 36.067 9.367 445.0 19801201 20170923 607350 99999 KAIROUAN TS DTTK 35.667 10.1 68.0 19490108 20170923 607380 99999 THALA TS 35.55 8.683 1092.0 19770102 20170923 607390 99999 KASSERINE TS 35.167 8.833 707.0 20010917 20170923 607400 99999 MONASTIR-SKANES TS DTTM 35.667 10.75 2.0 19430602 20170923 607401 99999 HABIB BOURGUIBA TS 35.766999999999996 10.75 2.0 19851215 19890820 607403 99999 HABIB BOURGUIBA INTL TS DTMB 35.758 10.755 2.7 19890908 20170923 607420 99999 MAHDIA TS 35.5 11.067 12.0 20030330 20170923 607450 99999 GAFSA TS DTTF 34.422 8.823 323.1 19490107 20170923 607470 99999 KASSERINE NORTH TS 35.183 8.8 689.0 19490108 19520529 607480 99999 SIDI BOUZID TS 35.0 9.482999999999999 355.0 19770830 20170923 607500 99999 THYNA TS DTTX 34.718 10.690999999999999 25.9 19490108 20170923 607560 99999 BOGUS TUNISIAN TS 19860604 20030728 607600 99999 NEFTA TS DTTZ 33.94 8.111 87.5 19730101 20170923 607640 99999 KEBILI TS 33.7 8.967 46.0 19880401 20170923 607650 99999 GABES TS DTTG 33.876999999999995 10.103 7.9 19490101 20170923 607670 99999 GABES TS 33.733000000000004 9.917 112.2 20120101 20170923 607690 99999 ZARZIS TS DTTJ 33.875 10.775 5.8 19660722 20170923 607700 99999 MEDENINE TS 33.35 10.482999999999999 117.0 19770305 20170923 607720 99999 TATAOUINE TS 32.917 10.45 215.0 19890701 20170923 607750 99999 REMADA TS DTTD 32.306 10.382 306.0 19490108 20170923 607800 99999 EL BORMA TS DTTR 31.704 9.255 252.1 19490209 20170923 607850 99999 SABHAM LY 27.017 14.433 444.1 19490108 19521230 607880 99999 BIRAK LY 27.5 14.25 265.0 19500210 19521022 607930 99999 UBARI LY 26.583000000000002 12.767000000000001 425.0 19500210 19521217 607950 99999 MARZUQ LY 25.9 13.85 139.0 19500201 19521217 607980 99999 AL QATRUN LY 24.9 14.667 484.0 19500210 19521217 610170 99999 BILMA NG DRRI 18.683 12.917 357.0 19490401 20170923 610240 99999 AGADEZ NG DRZA 16.967 7.9670000000000005 505.1 19490401 20170923 610330 99999 TESKER NG 15.133 10.717 -999.9 20170417 20170417 610360 99999 TILLABERY NG DRRL 14.2 1.45 210.0 19490401 20170923 610400 99999 20020402 20040110 610430 99999 TAHOUA NG DRRT 14.876 5.265 385.9 19490402 20170923 610450 99999 GOURE NG DRZG 13.982999999999999 10.3 460.0 19830502 20170923 610490 99999 N'GUIGMI NG 14.25 13.117 286.0 19500204 20170923 610520 99999 DIORI HAMANI NG DRRN 13.482000000000001 2.184 223.1 19490401 20170923 610530 99999 DOSSO NG DRRD 13.033 3.3 225.0 20100113 20170923 610750 99999 BIRNI-N'KONNI NG DRRB 13.8 5.25 273.0 19490403 20170923 610800 99999 MARADI NG DRRM 13.503 7.127000000000001 378.0 19490401 20170923 610850 99999 DIFFA NG DRZF 13.373 12.627 303.0 19850401 20170923 610900 99999 ZINDER NG DRZR 13.779000000000002 8.984 462.1 19490401 20170923 610910 99999 MAGARIA NG 12.982999999999999 8.933 403.0 19801001 20170923 610960 99999 MAINE-SOROA NG DRZM 13.232999999999999 11.982999999999999 338.0 19490401 20170923 610990 99999 GAYA NG DRRG 11.883 3.45 202.0 19730101 20170923 611090 99999 BOGUS NIGER NG 19861127 19861127 612020 99999 TESSALIT ML GATS 20.243 0.977 494.1 19500608 20170321 612030 99999 YELIMANE ML GAYE 15.13 -10.57 325.0 20040803 20161124 612140 99999 KIDAL ML GAKL 18.433 1.35 459.0 19570305 20170823 612190 99999 NEMA MT 16.6 -6.733 271.9 19500111 19621231 612230 99999 TOMBOUCTOU ML GATB 16.73 -3.008 263.0 19490411 20170823 612260 99999 GAO ML GAGO 16.248 -0.005 265.2 19490401 20170621 612300 99999 NIORO DU SAHEL ML GANR 15.232999999999999 -9.35 237.0 19490406 20170923 612330 99999 NARA/KEIBANE ML GANK 15.167 -7.2829999999999995 265.0 19780201 20170923 612350 99999 YELIMANE ML 15.117 -10.567 100.0 19901001 20170923 612400 99999 HOMBORI ML GAHB 15.333 -1.683 288.0 19490403 20120218 612500 99999 MENAKA ML GAMK 15.867 2.217 278.0 19490403 20170210 612570 99999 KAYES/DAG-DAG ML GAKD 14.482000000000001 -11.44 51.5 19490403 20170923 612650 99999 AMBODEDJO ML GAMB 14.513 -4.08 276.1 19490403 20170923 612690 99999 TOUKOTO ML 13.467 -9.883 177.0 19490403 19521231 612700 99999 KITA ML GAKT 13.067 -9.467 334.0 19570105 20170923 612720 99999 SEGOU ML GASG 13.4 -6.15 289.0 19490406 20170923 612770 99999 SAN ML GASN 13.333 -4.833 284.0 19500103 20170923 612850 99999 KENIEBA ML GAKA 12.85 -11.232999999999999 132.0 19490416 20170923 612880 99999 DIOILA ML 12.482999999999999 -6.8 331.0 20050803 20050803 612900 99999 BAMAKO MT 12.633 -7.9670000000000005 331.9 19490401 19750109 612910 99999 SENOU ML GABS 12.534 -7.95 380.1 19750101 20170923 612930 99999 KOUTIALA ML GAKO 12.383 -5.4670000000000005 367.0 19500403 20170923 612960 99999 BOUGOUNI ML GABG 11.417 -7.5 351.0 19490511 20170923 612970 99999 SIKASSO ML GASK 11.35 -5.683 375.0 19490403 20170923 614010 99999 BIR MOGHREIN MR GQPT 25.237 -11.589 363.9 19570114 20170918 614020 99999 AIN BEN TILI MR 26.0 -9.533 406.0 20010809 20040808 614030 99999 F DERIK MR 22.683000000000003 -12.7 298.0 19490508 20070430 614040 99999 ZOUERATE MR 22.75 -12.482999999999999 343.0 19830701 20170923 614150 99999 NOUADHIBOU MR GQPP 20.933000000000003 -17.03 4.9 19490401 20170923 614210 99999 ATAR MR GQPA 20.506999999999998 -13.043 231.0 19430401 20170923 614370 99999 AKJOUJT MR GQNJ 19.75 -14.367 120.0 19490502 20170923 614420 99999 NOUAKCHOTT MR GQNN 18.098 -15.948 2.1 19490406 20170923 614500 99999 TIDJIKJA MR GQND 18.57 -11.424000000000001 401.1 19490607 20170923 614610 99999 BOUTILIMIT MR GQNB 17.533 -14.683 75.0 19490406 20170923 614890 99999 ROSSO MR GQNR 16.5 -15.817 6.0 19570102 20170923 614920 99999 KAEDI MR GQNK 16.16 -13.508 22.9 19820101 20170923 614970 99999 NEMA MR GQNI 16.622 -7.317 231.0 19650307 20170827 614980 99999 KIFFA MR GQNF 16.59 -11.405999999999999 128.9 19570108 20170923 614990 99999 AIOUN EL ATROUSS MR GQNA 16.711 -9.638 289.9 19570112 20170923 615100 99999 SELIBABY MR 15.232999999999999 -12.167 60.0 20041119 20150804 615200 99999 BASSIKOUNOU MR 15.867 -5.933 261.0 20021102 20050311 615680 99999 19870519 19870519 616000 99999 SAINT LOUIS SG GOSS 16.051 -16.463 2.7 19490401 20170923 616120 99999 PODOR SG GOSP 16.65 -14.967 7.0 19730101 20170923 616160 99999 20011001 20040807 616270 99999 LINGUERE SG GOOG 15.383 -15.117 21.0 19500304 20170923 616300 99999 MATAM/OURO SOGUI SG GOSM 15.65 -13.25 17.0 19490423 20170923 616410 99999 LEOPOLD SEDAR SENGHOR INTL SG GOOY 14.74 -17.49 25.9 19430401 20170923 616540 99999 THIES SG 14.8 -16.95 76.0 19500205 19521231 616660 99999 DIOURBEL SG GOOD 14.65 -16.233 9.0 19500206 20170923 616790 99999 KAOLACK SG GOOK 14.147 -16.051 7.9 19500205 20170923 616870 99999 TAMBACOUNDA SG GOTT 13.737 -13.652999999999999 49.1 19490501 20170923 616890 99999 SIMENTI SG 13.05 -13.3 52.0 19771102 20051021 616950 99999 ZIGUINCHOR SG GOGG 12.556 -16.282 22.9 19490402 20170923 616970 99999 CAP SKIRING SG GOGS 12.41 -16.746 15.8 19771101 20170923 616980 99999 KOLDA SG GOGK 12.883 -14.967 10.0 19730101 20170923 616990 99999 KEDOUGOU SG GOTK 12.572000000000001 -12.22 178.0 19730102 20170923 617010 99999 BANJUL INTL GA GBYD 13.338 -16.652 29.0 19490113 20170923 617050 99999 SIBANOR GA 13.217 -16.2 21.0 19950702 20170426 617070 99999 JENOI GA 13.482999999999999 -15.567 11.0 19880807 20170427 617110 99999 BANJUL/HALF-DIE GA 13.45 -16.45 2.0 19490113 20170605 617120 99999 KEREWAN GA 13.482999999999999 -16.183 15.0 19810506 20170427 617170 99999 KAUR GA 13.717 -15.25 6.0 19860525 20170427 617200 99999 KUNTAUR GA 13.667 -14.883 -999.9 19950504 20111104 617210 99999 GEORGETOWN GA 13.533 -14.767000000000001 1.0 19490327 20170427 617220 99999 SAPU GA 13.567 -15.933 2.0 19821009 20170501 617310 99999 BASSE GA 13.317 -14.217 4.0 19791002 20170429 617330 99999 FATOTO GA 13.667 -14.467 17.5 19950411 20170501 617410 99999 JENOI GA 13.482999999999999 -15.567 11.0 19790901 19860415 617660 99999 BISSAU OSWALDO VIEIRA INTL PU GGOV 11.895 -15.654000000000002 39.3 19490106 20170923 617690 99999 BOLAMA PU 11.583 -15.482999999999999 20.0 19490106 20170923 617810 99999 BAFATA PU GGBF 12.183 -14.667 43.0 19730105 20170923 618020 99999 KOUNDARA GV 12.567 -13.517000000000001 90.0 19891001 20170915 618090 99999 LABE GV GULB 11.325999999999999 -12.287 1035.1 19490405 20170908 618110 99999 SIGUIRI GV GUSI 11.433 -9.167 366.0 19740715 20160227 618160 99999 BOKE/BARALANDE GV GUOK 10.933 -14.317 69.0 19490403 20151119 618180 99999 KINDIA GV GUID 10.05 -12.867 459.0 19730507 20170915 618200 99999 MAMOU GV 10.367 -12.083 784.0 19500206 20150718 618290 99999 KANKAN GV GUXD 10.383 -9.3 384.0 19490401 20170509 618310 99999 CONAKRY GV 9.567 -13.617 49.0 20020113 20120211 618320 99999 CONAKRY GV GUCY 9.577 -13.612 21.9 19490401 20170916 618330 99999 FARANAH GV GUFH 10.035 -10.77 449.9 19740823 20161222 618340 99999 KISSIDOUGOU GV 9.217 -10.217 412.0 19741208 20120323 618470 99999 MACENTA GV GUMA 8.533 -9.467 544.0 19490402 20110510 618490 99999 N'ZEREKORE/KONIA GV GUNZ 7.733 -8.833 470.0 19741108 20170915 618560 99999 FREETOWN LUNGI SL GFLL 8.616 -13.195 25.6 19490124 20170915 618660 99999 BONTHE SL GFBN 7.5329999999999995 -12.5 8.0 19490124 19840908 618730 99999 MAKENI SL 8.55 -12.05 84.0 19830302 19950808 618760 99999 MAKENI SL 8.883 -11.95 87.5 19490118 19521231 618770 99999 YELE SL 8.417 -11.833 68.0 19840502 20030220 618780 99999 NJALA SL 8.1 -12.1 56.0 19771013 20051015 618810 99999 BO SL GFBO 7.95 -11.767000000000001 93.0 19490129 20071010 618860 99999 KABALA SL 9.583 -11.55 464.0 19730102 20070523 618910 99999 DARU SL 7.983 -10.85 186.0 19490118 20080816 618920 99999 SEFADU SL 8.65 -10.967 390.0 19840204 19990322 619000 99999 ASCENSION ISLAND SH -7.933 -14.417 20.0 19800511 20051015 619010 99999 ST. HELENA IS. SH -15.933 -5.667000000000001 436.0 19430518 20170923 619020 99999 ASCENSION AUX AF SH FHAW -7.97 -14.394 84.7 19420901 20170923 619030 99999 UNKN AY -71.05 -10.9 37.0 19500307 19520115 619100 99999 19870519 19870519 619140 99999 19870503 19870503 619310 99999 SAO TOME INTL TP FPST 0.37799999999999995 6.712000000000001 10.1 19730101 20170923 619340 99999 PRINCIPE TP FPPR 1.663 7.412000000000001 180.1 19730504 20170131 619670 70701 DIEGO GARCIA NAVAL AIR STATION IO FJDG -7.3 72.4 4.3 19490201 20170923 619680 99999 ILES GLORIEUSES FS -11.583 47.283 4.0 19730102 20170923 619700 99999 ILE JUAN DE NOVA JU -17.05 42.717 10.0 19730102 20170923 619710 99999 ALDABRA RE -9.35 46.533 4.0 19730102 19770701 619720 99999 ILE EUROPA EU -22.333000000000002 40.333 6.0 19730101 20170923 619740 99999 AGALEGA MP -10.433 56.6 4.0 19490201 20170923 619760 99999 SERGE-FROLOW (ILE TROMELIN) US -15.883 54.516999999999996 13.0 19730101 20170923 619790 99999 LE COLORADO RADAR FR -20.916999999999998 55.417 743.0 20040611 20040611 619800 99999 ST DENIS GILLOT RE FMEE -20.886999999999997 55.51 20.1 19730101 20170923 619810 99999 LE PORT RE -20.933000000000003 55.283 11.0 19830701 20121228 619840 99999 ST PIERRE PIERREFONDS RE FMEP -21.320999999999998 55.425 18.0 19730102 20170923 619860 99999 ST. BRANDON (ST. RAPHAEL) MP -16.45 59.617 4.0 19490201 20170923 619880 99999 PLAINE CORAIL MP FIMR -19.758 63.361000000000004 29.0 19490201 20170923 619890 99999 PLAINE CORAIL MP -19.75 63.37 30.0 20060101 20170923 619900 99999 SIR SEEWOOSAGUR RAMGOOLAM INTL MP FIMP -20.43 57.684 56.7 19490201 20170923 619950 99999 VACOAS (MAURITIUS) MP -20.3 57.467 425.0 19770701 20170923 619960 99999 MARTIN DE VIVIES (ILE AMSTERDAM) FS -37.8 77.533 29.0 19730101 20170923 619970 99999 ALFRED FAURE (ILES CROZET) FS -46.433 51.85 142.0 19740903 20170923 619980 99999 PORT-AUX-FRANCAIS (ILES KERGUELEN) FS -49.35 70.25 30.0 19730101 20170923 620020 99999 NALUT LY 31.514 10.597999999999999 621.0 19490130 20170920 620070 99999 ZUARA LY 32.555 12.056 4.0 19490129 20170920 620080 99999 YEFREN LY 32.04 12.312999999999999 691.0 19830701 20170920 620100 99999 TRIPOLI INTL LY HLLT 32.664 13.159 80.2 19430630 20170603 620110 99999 GARINA LY 32.15 13.0 728.0 20161109 20170920 620111 99999 WHEELUS FLD LY 32.9 13.283 4.0 19450415 19700528 620115 99999 TRIPOLI LY HLLL 0.0 0.0 -999.0 20051014 20051014 620120 99999 EL KHOMS LY 32.400999999999996 14.142999999999999 25.0 19900601 20170919 620140 99999 BENWLID LY 31.741 13.957 271.0 20050315 20170919 620160 99999 MISURATA LY 32.243 15.020999999999999 33.0 19490129 20170920 620165 99999 MISURATA AIRPORT LY HLMS 32.333 15.067 18.3 20111117 20140917 620180 99999 ABU NJAYM LY 30.355 15.254000000000001 90.0 20041121 20160815 620190 99999 SIRTE LY 31.2 16.583 14.0 19490130 20150907 620525 99999 MITIGA LY HLLM 32.894 13.276 11.0 20050507 20170923 620530 99999 BENINA AIRPORT LY HLLB 32.097 20.269000000000002 132.0 19431031 20140622 620540 99999 AL-MARJ LY 32.516999999999996 20.883000000000003 335.0 20050317 20170919 620550 99999 AGEDABIA LY 30.717 20.167 7.0 19490130 20130805 620560 99999 SHAHAT LY 32.8 21.883000000000003 648.0 19490129 20110217 620590 99999 DERNA LY 32.783 22.583000000000002 26.0 19490129 20140216 620620 99999 TOBRUK LY 32.1 23.933000000000003 51.0 19441027 20170915 620630 99999 TOBRUK LY HLGN 31.866999999999997 23.9 158.0 19490129 20020308 621010 99999 MOORED BUOY US 50.6 -2.9330000000000003 -999.0 20080721 20080721 621030 99999 GHADAMES EAST LY HLTD 30.151999999999997 9.715 342.0 19570101 20170919 621110 99999 MOORED BUOY US 58.9 -0.2 -999.0 20041118 20091201 621130 99999 MOORED BUOY US 58.4 0.3 -999.0 20040726 20040726 621140 99999 MOORED BUOY US 58.7 1.1 -999.0 20050702 20100103 621160 99999 MOORED BUOY US 58.1 1.8 -999.0 20040829 20050929 621170 99999 MOORED BUOY US 57.9 0.1 -999.0 20040726 20110809 621180 99999 MOORED BUOY US 57.7 0.9 -999.0 20050701 20091119 621200 99999 GARIAT EL-SHARGHIA LY 30.383000000000003 13.583 497.0 19730101 20170919 621210 99999 EL HAMADA LY 29.517 12.933 623.0 20040517 20150905 621220 99999 MOORED BUOY US 56.5 2.017 -999.0 20040801 20090209 621240 99999 SEBHA LY HLLS 26.987 14.472999999999999 434.9 19611204 20140111 621250 99999 MOORED BUOY US 53.8 -3.8 -999.0 20050703 20110425 621260 99999 MOORED BUOY US 53.8 -3.6 -999.0 20041030 20050628 621300 99999 MOORED BUOY US 53.0 1.7 -999.0 20041110 20050907 621310 99999 HON LY 29.116999999999997 15.95 267.0 19490130 20170920 621370 99999 PLATFORM NO. 62137 US 57.35 1.4669999999999999 0.0 20040726 20170430 621410 99999 MOORED BUOY US 60.8 1.6 -999.0 20050321 20110718 621430 99999 MOORED BUOY US 58.3 0.4 -999.0 20040726 20040726 621450 99999 MARADA LY 29.467 19.333 37.0 20080901 20140304 621500 99999 MOORED BUOY US 58.0 0.6 -999.0 20041202 20050823 621610 99999 JALO LY 29.033 21.566999999999997 60.0 19490129 20170920 621760 99999 GIGHBUB LY 29.75 24.533 -1.0 19490131 20170919 622000 99999 OBARI LY HLUB 26.6 12.783 463.0 19880502 20140915 622120 99999 GHAT LY HLGT 25.146 10.142999999999999 699.8 19811201 20170510 622250 99999 TRAGEN LY 25.933000000000003 14.45 421.0 20080901 20160904 622590 99999 TAZERBO LY 25.673000000000002 21.090999999999998 261.2 19620403 20170918 622710 99999 KUFRA LY HLKF 24.179000000000002 23.314 416.7 19490129 20170919 623000 99999 SALLOUM EG 31.533 25.183000000000003 6.0 19370103 20051110 623010 99999 SIDI BARRANI EG 31.616999999999997 25.9 23.0 19990128 20050928 623030 99999 SIDI BARRANI EG 31.633000000000003 25.967 23.0 19570101 20170705 623050 99999 SALLUM PLATEAU EG 31.566999999999997 25.133000000000003 6.0 19951214 20170923 623060 99999 MERSA MATRUH EG HEMM 31.325 27.221999999999998 28.7 19370103 20170923 623080 99999 RAS EL HIKMA EG 31.116999999999997 27.866999999999997 40.0 20010805 20161009 623090 99999 DABAA EG 31.017 28.433000000000003 18.0 19570102 20170923 623150 99999 PORT ALEXANDRIA EG 31.183000000000003 29.866999999999997 14.0 20010711 20150407 623180 99999 ALEXANDRIA INTL EG HEAX 31.184 29.949 -1.8 19370103 20170923 623190 99999 20010729 20051227 623240 99999 ROSETTA EG 31.45 30.366999999999997 1.0 20020312 20150803 623250 99999 BALTIM EG 31.55 31.1 2.0 19940801 20170904 623290 99999 PORT DAMIETTA EG 31.467 31.767 4.0 19370103 20160210 623300 99999 DAMIETTA EG 31.416999999999998 31.816999999999997 1.0 20010823 20141105 623320 99999 PORT SAID/EL GAMIL EG 31.283 32.233000000000004 6.0 19870901 20140311 623330 99999 PORT SAID EG 31.267 32.3 6.0 19490301 20170923 623350 99999 RAFH-AGRIMET EG 31.2 34.2 73.0 20031230 20170504 623360 99999 EL ARISH-AGRIMET EG 31.083000000000002 33.817 27.0 19381103 20170802 623370 99999 EL ARISH INTL EG HEAR 31.073 33.836 36.9 19850601 20170923 623380 99999 GHAZZA EG 31.5 34.45 16.0 19600102 20150511 623390 99999 DAMANHOUR EG 31.033 30.467 2.0 19890329 20161101 623430 99999 AD DANABIQ EG 31.05 31.467 7.0 19600101 20110914 623450 99999 TAHRIR EG 30.65 30.7 15.0 19880604 20170313 623480 99999 TANTA EG 30.783 31.0 12.0 19600101 20160212 623570 99999 WADI EL NATROON EG 30.4 30.35 1.0 19960407 20170923 623600 99999 SHEBIN EL KOM EG 30.6 31.017 11.0 20011029 20170131 623601 99999 BORG EL ARAB INTL EG HEBA 30.918000000000003 29.695999999999998 53.9 20040510 20170923 623630 99999 BANHA EG 30.467 31.183000000000003 14.0 20010729 20170812 623660 99999 CAIRO INTL EG HECA 30.122 31.406 116.4 19431031 20170923 623661 99999 MARSA ALAM INTL EG HEMA 25.557 34.582 76.5 20040510 20170923 623662 99999 ISMALIA EG 30.583000000000002 32.25 3.0 20050419 20121229 623663 99999 MINYA EG HEAM 28.0 30.75 1.0 20070819 20091027 623664 99999 ST CATHERINE INTL EG 28.683000000000003 34.067 1331.0 20070822 20170923 623665 99999 EDFU EG 24.983 32.867 85.0 20090801 20170721 623670 99999 CAIRO ALMAZA EG 30.083000000000002 31.366999999999997 51.0 19370103 20100820 623680 99999 CAIRO WEST EG 30.116999999999997 30.916999999999998 151.0 19730101 20170703 623690 99999 BAHTIM EG 30.133000000000003 31.25 16.0 20010924 20020601 623710 99999 CAIRO H.Q. EG 30.083000000000002 31.283 26.0 19990409 20030529 623720 99999 CAIRO /ALMAZA EG 30.1 31.366999999999997 74.1 19490322 19521231 623730 99999 EMBABA EG 30.066999999999997 31.183000000000003 19.0 19740423 20110629 623750 99999 GIZA-AGRIMET EG 30.05 31.217 18.0 20011016 20170609 623780 99999 HELWAN EG HE15 29.866999999999997 31.333000000000002 141.0 19381002 20160824 623810 99999 FAYOUM EG 29.3 30.85 23.0 19600101 20160422 623860 99999 MINYA EG 28.083000000000002 30.733 40.0 19881006 20040921 623870 99999 MINYA EG HE25 28.083000000000002 30.733 37.2 19381002 20170923 623890 99999 MALAWY-AGRIMET EG 27.7 30.75 44.0 20031230 20131021 623920 99999 ASYUT-AGRIMET EG 27.2 31.166999999999998 52.0 19380208 20051107 623930 99999 ASYUT INTL EG HEAT 27.046999999999997 31.011999999999997 235.3 19490323 20170923 623970 99999 SOHAG AIRPORT EG HEMK 26.333000000000002 31.75 92.7 19990101 20160325 623980 99999 SOHAG INTL AIRPORT EG HESG 26.333000000000002 31.733 92.7 20130514 20170923 624020 99999 QENA EG 26.183000000000003 32.733000000000004 74.0 19381001 20130701 624030 99999 SOUTH OF VALLEY UNIVERSITY EG 26.2 32.75 96.0 20040510 20170816 624050 99999 LUXOR INTL EG HELX 25.671 32.707 89.6 19431130 20170923 624080 99999 EDFOU EG 24.983 32.817 89.0 20080523 20120805 624110 99999 DARAW EG HE23 24.416 32.955999999999996 99.1 19850508 20050103 624140 99999 ASWAN INTL EG HESN 23.964000000000002 32.82 201.8 19370103 20170923 624160 99999 SIWA EG 29.25 25.517 3.0 20010707 20161017 624170 99999 SIWA EG 29.2 25.483 -15.0 19370103 20170923 624190 99999 ABU SIMBEL EG HEBL 22.375999999999998 31.612 187.8 19730723 20170923 624200 99999 BAHARIA EG 28.333000000000002 28.866999999999997 130.0 19490905 20170923 624210 99999 19870519 19870519 624230 99999 FARAFRA EG 27.05 27.983 78.0 19500313 20170923 624250 99999 SHARK EL OWEINAT INTL EG HEOW 22.586 28.717 261.8 20010713 20170822 624320 99999 DAKHLA EG 25.5 28.967 117.0 19380310 20170923 624350 99999 KHARGA EG 25.45 30.533 73.0 19570101 20170923 624380 99999 ABU SUWAYR EG 30.566999999999997 32.1 16.0 19581102 20110802 624400 99999 ISMAILIA EG HEIS 30.6 32.25 12.5 19431031 20170923 624410 99999 ISMAILIA & EG 30.6 32.283 3.0 19370103 19881010 624440 99999 FAID EG 30.316999999999997 32.283 11.0 19490304 19521231 624470 99999 MADIYAH EG 30.05 32.533 14.0 19490304 19520105 624490 99999 PORT TAWFIK EG 29.933000000000003 32.567 4.0 19791017 20041115 624500 99999 EL-SUEZ EG 29.866999999999997 32.467 3.6 19600101 20170503 624520 99999 NEKHEL EG 29.916999999999998 33.733000000000004 403.0 20010916 20170923 624530 99999 ELHASANA EG 30.45 33.766999999999996 255.0 20040115 20170815 624540 99999 BEAR EL ABD EG 30.967 32.766999999999996 24.0 20040617 20160913 624550 99999 RAS SEDR EG 29.583000000000002 32.717 16.0 19960201 20170923 624560 99999 TABA AIRPORT (RAS ELNAKB) EG 29.6 34.783 749.0 20040518 20120730 624570 99999 SANT KATREIN AIRPORT EG 28.683000000000003 34.05 1331.0 20110114 20121116 624580 99999 ABURDEES EG 28.9 33.183 8.0 20010903 20170923 624590 99999 EL TOR EG HETR 28.209 33.646 35.1 19381101 20170923 624600 99999 SHARM EL SHEIKH EG 27.967 34.383 51.0 20050418 20121121 624620 99999 JIYANKLIS NEW EG HEGS 30.82 30.191 14.9 19490301 20110501 624630 99999 HURGHADA INTL EG HEGN 27.178 33.799 15.8 19900215 20170923 624639 99999 SHARM EL SHEIKH INT EG 27.967 34.383 45.0 19970901 20170923 624640 99999 HURGUADA EG 27.283 33.733000000000004 7.0 20100626 20140907 624650 99999 KOSSEIR EG 26.133000000000003 34.25 11.0 19381002 20170923 624655 99999 TABA INTL EG 29.6 34.766999999999996 768.0 19990710 20170817 624670 99999 DAHAB EG 28.483 34.5 19.0 20040222 20170206 624760 99999 SHALATIN EG 23.133000000000003 35.583 21.0 20030330 20170920 625600 99999 MOORED BUOY US 30.1 -19.4 -999.0 20040304 20050925 625620 99999 MOORED BUOY US 28.1 -15.0 -999.0 20051222 20051222 625630 99999 MOORED BUOY US 31.2 -13.5 -999.0 20040419 20040611 625650 99999 MOORED BUOY US 28.1 -15.1 -999.0 20040128 20050325 625660 99999 MOORED BUOY US 29.5 -14.4 -999.0 20041021 20041021 625680 99999 MOORED BUOY US 30.3 -28.2 -999.0 20050608 20050608 625700 99999 MOORED BUOY 0.0 0.0 -999.0 20061208 20061208 625750 99999 MOORED BUOY US 27.6 -16.1 -999.0 20031204 20041004 625760 99999 MOORED BUOY US 27.3 -18.1 -999.0 20040706 20080606 626000 99999 HALFA (WADI) SU HSSW 21.816999999999997 31.483 183.0 19490130 20170604 626150 99999 HALIB SU 22.217 36.65 2.0 19741008 20021211 626200 99999 STATION NO 6 * SU 20.75 32.55 468.0 19490130 20050528 626350 99999 ARBAT SU 19.833 36.967 120.0 20010717 20080525 626400 99999 ABU HAMED SU 19.533 33.317 312.0 19490209 20170604 626410 99999 PORT SUDAN SU HSSP 19.583 37.217 3.0 19490205 20170604 626414 99999 PORT SUDAN SU HSPN 19.434 37.234 41.1 20030218 20170923 626500 99999 DONGOLA SU HSDN 19.154 30.43 235.6 19490301 20170604 626520 99999 SUAKIN SU 19.1 37.333 3.0 20010809 20140117 626600 99999 KARIMA SU 18.55 31.85 249.0 19490130 20170110 626610 99999 GEBEIT SU 18.95 36.833 796.0 19490209 20090401 626700 99999 HAIYA SU 18.333 36.367 639.0 19490130 19740806 626710 99999 TOKAR SU 18.433 37.733000000000004 19.0 19490811 20140706 626750 99999 AGIG SU 18.233 38.183 2.0 19741008 20030422 626800 99999 ATBARA SU HSAT 17.7 33.967 345.0 19490130 20170604 626810 99999 DERUDEB SU 17.55 36.1 508.0 20010712 20041025 626820 99999 HUDEIBA SU 17.567 33.933 350.0 20040227 20161018 627000 99999 SHENDI SU 16.7 33.433 360.0 19490303 20140318 627210 99999 KHARTOUM SU HSSS 15.589 32.553000000000004 385.6 19421031 20170923 627220 99999 AROMA SU 15.833 36.15 431.0 19490302 20150717 627230 99999 SHAMBAT OBSERVATORY SU 15.667 32.533 380.0 19510713 20151103 627300 99999 KASSALA SU HSKA 15.387 36.329 509.3 19490130 20170604 627330 99999 HALFA EL GAIDIDA SU 15.317 35.6 451.0 19740221 20170110 627350 99999 SHOWAK SU 14.217 35.85 511.0 20010712 20050808 627500 99999 ED DUEIM SU 14.0 32.333 378.0 19490301 20170110 627510 99999 WAD MEDANI SU 14.4 33.483000000000004 408.0 19490130 20170604 627520 99999 GEDAREF/AZAZA SU HSGF 14.033 35.4 599.0 19490305 20170110 627560 99999 SAVDIRI SU 14.417 29.083000000000002 536.0 20010731 20101001 627600 99999 EL FASHIR SU HSFS 13.615 25.325 729.4 19430401 20161121 627610 99999 HAG ABDULLA SU 13.95 33.583 417.0 20010705 20120226 627620 99999 SENNAR SU HSNR 13.55 33.617 418.0 19790102 20170604 627700 99999 GENEINA SU HSGN 13.482999999999999 22.45 805.0 19430401 20170830 627710 99999 EL OBEID SU HSOB 13.152999999999999 30.233 587.3 19490130 20170923 627720 99999 KOSTI/RABAK SU HSKI 13.167 32.667 381.0 19490130 20170110 627730 99999 SINGA SU 13.15 33.95 429.0 19490130 19521225 627740 99999 UMM BENIN SU 13.067 33.95 435.0 20071113 20150623 627800 99999 ZALINGEI SU 12.9 23.483 900.0 19490301 20131106 627810 99999 EN NAHUD SU 12.7 28.433000000000003 564.0 19490205 20170110 627900 99999 NYALA SU HSNN 12.05 24.883000000000003 643.0 19790101 20170923 627950 99999 ABU NA'AMA SU 12.732999999999999 34.133 445.0 19590101 20170604 628010 99999 RENK SU HSRN 11.75 32.783 282.0 19791101 20151012 628020 99999 ER ROSEIRES SU 11.85 34.383 463.9 19510110 19521231 628030 99999 RASHAD SU 11.867 31.05 885.0 19810908 20150128 628050 99999 DAMAZIN SU HSDZ 11.786 34.336999999999996 482.2 19730101 20170110 628080 99999 GAZALA GAWZAT SU 11.467 26.45 480.0 19741219 20050902 628090 99999 BABANUSA SU 11.333 27.816999999999997 453.0 19860301 20161121 628100 99999 KADUGLI SU HSLI 11.138 29.701 563.3 19740601 20170110 628400 99999 MALAKAL OD HSSM 9.559 31.651999999999997 393.5 19490301 20110713 628500 99999 AWEIL / UWAYL OD HSAW 8.767000000000001 27.4 414.0 20040610 20160111 628550 99999 BENTIU OD 9.232999999999999 29.833000000000002 389.0 19740625 20051207 628600 99999 NASIR SU 8.617 33.067 399.0 20040710 20101031 628700 99999 GAMBELLA ET HAGM 8.129 34.563 491.9 20010710 20041024 628710 99999 RAGA OD HSRJ 8.467 25.683000000000003 545.0 19880216 20150827 628800 99999 WAU OD HSWW 7.7 28.017 438.0 19490301 20150825 628810 99999 AKOBO OD HSAK 7.7829999999999995 33.016999999999996 402.0 20040228 20121218 628900 99999 TONJ OD 7.2829999999999995 28.75 429.0 20010813 20120606 629050 99999 PIBOR POST SU 6.8 33.133 510.0 20020325 20020430 629260 99999 DRIFTER 62926 / ARGOS 83427 20130308 20131224 629310 99999 MARIDI OD HSMD 4.917 29.467 749.0 19740626 19740626 629400 99999 YAMBIO OD HSYA 4.567 28.4 649.0 20011122 20100928 629407 99999 TUMBURA OD HSTU 5.6 27.467 609.0 20130529 20130529 629410 99999 JUBA OD HSSJ 4.872 31.601 468.8 19490301 20170922 629510 99999 NAGICHOT OD 4.2669999999999995 33.567 1980.0 20050127 20050127 629550 99999 YEI OD HSYE 4.083 30.666999999999998 830.0 20030124 20030124 630060 99999 NACFA ER 16.667 38.333 1676.0 19490130 20010921 630100 99999 TESSENEI /FLT D-4 ER 15.133 36.7 615.1 19580215 19731001 630130 99999 AGORDAT ET HAAG 15.55 37.883 626.0 19490206 19780503 630140 99999 KEREN ER 15.75 38.45 1402.1 19490404 19631230 630210 99999 ASMARA INTL ER HHAS 15.292 38.911 2335.1 19431219 20170905 630220 99999 GINDA ER 15.433 39.083 960.1 19490130 19750707 630230 99999 MASSAWA ER HAMS 15.617 39.45 10.0 19490206 20030623 630290 99999 ADI UGRI ER 14.883 58.817 1972.1 19490209 19750908 630300 99999 ADI KAIE /CAIEH ER 14.833 39.333 2642.0 19490209 19631231 630420 99999 BOGUS ETHIOPIAN ET 19880408 20010921 630430 99999 ASSAB ER 13.067 42.717 14.0 19490130 19951223 631080 99999 MOORED BUOY US 60.133 1.7 -999.0 20040131 20040131 631100 99999 MOORED BUOY US 59.5 1.517 -999.0 20041227 20050820 631150 99999 TADJOURA DJ 11.783 42.883 10.0 19520101 19581130 631170 99999 BOGUS DJIBOUTI DJ 19860811 20021001 631250 99999 DJIBOUTI DJ HFFF 11.55 43.15 19.0 19520101 20140127 631252 99999 DJIBOUTI/AMBOULI DJ HFFF 11.55 43.133 13.0 19961201 20170923 631260 99999 DJIBOUTI SO REP/PLATEAU DU S BP 11.6 43.15 7.3 19490210 19640131 631370 99999 MOORED BUOY US 57.8 1.8 -999.0 20050501 20050501 631410 99999 DIKHIL DJ 11.1 42.367 490.0 19520101 20130725 631450 99999 OBOLEH DJ 11.167 42.717 777.0 20120816 20120816 631500 99999 BORAMA SO 9.95 43.183 1454.0 19900807 20130922 631600 99999 BERBERA SO HCMI 10.389000000000001 44.941 9.1 19730101 20141216 631700 99999 EGAL INTL SO HCMH 9.517999999999999 44.089 1348.1 19520101 20170923 631750 99999 BURAO SO HCMV 9.517000000000001 45.567 1032.0 19730101 20070201 631800 99999 ERIGAVO SO 10.633 47.367 1743.0 19921215 20050725 631900 99999 LAS-ANOD SO 8.5 47.367 700.0 20050830 20051017 632000 99999 ALULA SO 11.95 50.733000000000004 2.0 19570113 20050512 632100 99999 BOSASO SO HCMF 11.283 49.183 2.0 19570104 20170923 632200 99999 SCUSCIUBAN SO 10.3 50.233000000000004 344.0 19570101 20050903 632250 99999 GARDO SO 9.517000000000001 49.083 812.0 19570103 20120730 632270 99999 GAROE SO 7.95 48.5 -999.9 19810204 19900909 632280 99999 EIL SO 7.95 49.783 -999.9 20080927 20080927 632300 99999 GALCAYO SO 6.85 47.266999999999996 302.0 19540104 20161007 632350 99999 OBBIA SO 5.332999999999999 48.567 10.0 19730801 19830208 632370 99999 EL BUR SO 4.7 46.617 175.0 19570101 20020803 632400 99999 BELET UEN SO 4.7 45.217 173.0 19570101 20030512 632450 99999 HUDDUR SO 4.183 43.867 -999.9 19930201 20030614 632470 99999 ISCIA BAIDOA SO 3.133 43.667 487.0 19570103 20051019 632480 99999 LUG-GANANE SO 3.583 42.45 -999.9 20051019 20051019 632500 99999 BARDERA SO 2.35 42.3 116.0 19570114 20140812 632580 99999 AFGOI SO 2.15 45.133 83.0 20030620 20030620 632600 99999 MOGADISHU SO HCMM 2.033 45.35 9.0 19490121 20170923 632610 99999 GENALE SO 1.8330000000000002 44.75 69.0 20031018 20031018 632620 99999 EL MUGNE SO 1.7169999999999999 44.766999999999996 12.0 20020608 20050311 632650 99999 AFMADU SO 0.517 42.067 29.0 20050624 20050624 632660 99999 ALESSANDRA SO 0.5 42.766999999999996 24.0 20020805 20051014 632700 99999 CHISIMAIO SO -0.36700000000000005 42.433 10.0 19570123 20050406 632710 99999 JONTE SO -0.33299999999999996 42.567 8.0 20100622 20100622 633299 99999 AXUM ET HAAX 14.147 38.773 2121.1 19890421 19891126 633300 99999 MEKELE ET HAMK 13.467 39.533 2254.3 19571209 20170923 633310 99999 GONDER ET HAGN 12.52 37.434 1965.7 19570101 20170923 633320 99999 BAHIR DAR ET HABD 11.607999999999999 37.321999999999996 1822.1 19731003 20170923 633330 99999 COMBOLCHA/DESSIE ET HADC 11.083 39.717 1864.0 19570104 20170923 633340 99999 DEBRE MARCOS ET HADM 10.35 37.717 2476.0 19570101 20170923 633400 99999 LEKEMTE ET 9.083 36.45 2080.0 19730909 20170923 634020 99999 JIMMA ET HAJM 7.666 36.817 1676.4 19570101 20170923 634030 99999 GORE ET HAGR 8.167 35.55 1974.0 19570101 20170923 634043 99999 ASOSA ET HASO 10.019 34.586 1554.5 20010128 20010128 634500 99999 BOLE INTL ET HAAB 8.978 38.799 2325.6 19570101 20170923 634510 99999 HARAR MEDA (MIL) ET HAHM 8.732999999999999 39.0 1876.0 19570109 20170923 634520 99999 AFDAM ET 9.417 41.0 1153.0 19570109 20140827 634530 99999 METEHARA ET 8.867 39.9 930.0 19570101 20170923 634531 99999 AWASH ET HAAW 8.933 40.083 1052.0 19730101 19841226 634590 99999 BOGUS ETHIOPIAN ET 19850701 20040313 634600 99999 AWASSA (LAKE) ET HALA 7.067 38.05 1652.0 19730620 20170923 634710 99999 DIRE DAWA INTL ET HADR 9.625 41.854 1158.8 19570101 20170923 634723 99999 MASSLO/MESLO ET HAML 6.367000000000001 39.833 2274.0 20021218 20021218 634730 99999 JIGGIGA ET HAJJ 9.333 42.717 1644.0 19570101 20020525 634740 99999 ROBE/BALE ET 7.132999999999999 40.0 2480.0 19630118 20170923 634750 99999 KABRE DARE /ETH-AFB ET 6.75 44.266999999999996 450.0 19571017 19771015 634760 99999 GHINNIR ET 7.15 40.7 1844.0 19801116 20050901 634770 99999 ... ET 0.0 0.0 19570119 19631207 634780 99999 GODE ET HAGO 5.935 43.57899999999999 254.2 19730104 20170923 635000 99999 ARBA MINCH ET HAAM 6.039 37.59 1189.0 19870301 20170923 635320 99999 KIBRE MENGIST SW ET 5.867000000000001 38.95 1770.0 19570101 19631219 635330 99999 NEGHELLI (MIL) ET HANG 5.2829999999999995 39.75 1455.0 19570101 20170923 636020 99999 ARUA UG HUAR 3.05 30.916999999999998 1211.0 19570101 20170921 636120 99999 LODWAR KE HKLO 3.122 35.609 522.7 19570101 20170923 636190 99999 MOYALE LOWER (ODA) KE HKMY 3.533 39.05 1097.0 19570101 20170523 636240 99999 MANDERA KE HKMA 3.9330000000000003 41.867 231.0 19570101 20170426 636280 99999 PARAA UG 2.3 31.583000000000002 693.0 19730719 20030909 636300 99999 GULU UG HUGU 2.806 32.272 1069.8 19570101 20170923 636304 99999 LIRA UG HULI 2.25 32.9 1091.0 19850408 20160222 636310 99999 LIRA KE 2.283 32.933 1189.0 20090801 20170618 636350 99999 MOROTO UG 2.517 34.583 1280.0 19570101 19741002 636353 99999 MOROTO UG 2.533 34.65 1280.0 19990118 20030623 636410 99999 MARSABIT KE HKMB 2.3 37.9 1345.0 19751201 20170225 636540 99999 MASINDI UG HUMI 1.683 31.717 1147.0 19630316 20170923 636580 99999 SOROTI UG HUSO 1.7280000000000002 33.623000000000005 1126.8 19730101 20170923 636610 99999 KITALE KE HKKT 0.972 34.959 1850.1 19491101 20170923 636630 99999 19570101 19611231 636710 99999 WAJIR KE HKWJ 1.733 40.092 234.7 19570101 20170923 636735 99999 MARA SERENA KE HKMS -1.405 35.008 1585.0 20111212 20170204 636740 99999 KASESE UG HUKS 0.183 30.1 961.0 19730101 20170912 636760 99999 19570101 19661231 636763 99999 FORT PORTAL UG HUFP 0.667 30.283 1533.0 20030617 20030617 636800 99999 KAMPALA UG 0.317 32.617 1140.0 19730102 20170923 636820 99999 JINJA UG HUJI 0.45 33.183 1173.0 19570101 20170923 636840 99999 TORORO UG HUTO 0.6829999999999999 34.167 1171.0 19570101 20170923 636860 99999 ELDORET KE 0.483 35.3 2120.0 19570101 20170923 636870 99999 KAKAMEGA KE HKKG 0.271 34.787 1530.1 19841101 20170203 636880 99999 EL DORET INTL KE HKED 0.40399999999999997 35.239000000000004 2150.1 20030330 20170923 636940 99999 NANYUKI KE 0.017 37.067 1946.5 19570101 19750808 636943 99999 NANYUKI KE HKNY -0.067 37.033 1905.0 20001208 20170203 636944 99999 MULIKA KE HKMK 0.233 38.183 679.7 20111201 20130622 636950 99999 MERU KE HKME 0.083 37.65 1554.0 19570101 20170923 636953 99999 ISIOLO KE HKIS 0.35 37.583 1067.0 20030521 20030521 637020 99999 MBARARA UG HUMA -0.617 30.65 1413.0 19570101 20170923 637050 99999 ENTEBBE INTL UG HUEN 0.042 32.444 1152.8 19490121 20170923 637080 99999 KISUMU KE HKKI -0.086 34.729 1208.5 19490909 20170923 637085 99999 ISII KE -0.6829999999999999 34.7 0.0 19840207 19841127 637090 99999 KISII KE HKKS -0.667 34.783 1493.0 19841110 20170512 637100 99999 KERICHO KE HKKR -0.36700000000000005 35.35 2184.0 19730719 20170907 637110 99999 SUBA KE -0.4 34.133 1143.0 20120309 20160716 637120 99999 EQUATOR SW KE -0.017 35.55 2762.0 19570101 19601231 637140 99999 NAKURU KE HKNK -0.267 36.1 1901.0 19570101 20170923 637170 99999 NYERI KE HKNI -0.5 36.967 1759.0 19790901 20170923 637200 99999 EMBU KE HKEM -0.5 37.45 1493.0 19790901 20170923 637230 99999 GARISSA KE HKGA -0.46399999999999997 39.648 148.0 19570101 20170923 637260 99999 KABALE UG HUKB -1.25 29.983 1869.0 19570101 20170923 637290 99999 BUKOBA TZ HTBU -1.3330000000000002 31.816999999999997 1137.0 19570101 20170923 637330 99999 MUSOMA TZ HTMU -1.5 33.8 1147.0 19570101 20170923 637335 99999 MAKAU TZ HTMH -3.367 34.833 1563.9 20110708 20170827 637370 99999 NAROK KE HKNO -1.133 35.833 1890.0 19570101 20170527 637380 99999 MAGADI KE -1.883 36.283 622.0 19570101 20050521 637390 99999 NAIROBI EASTLEIGH KE HKRE -1.2770000000000001 36.861999999999995 1639.8 20010729 20170727 637400 99999 NAIROBI JKIA KE HKJK -1.319 36.928000000000004 1623.7 19490121 20170923 637403 99999 NAIROBI/DAGORETTI KE -1.3 36.75 1798.0 19850130 19910806 637410 99999 NAIROBI/DAGORETTI KE HKNC -1.3 36.75 1798.0 19570101 20170723 637420 99999 NAIROBI WILSON KE HKNW -1.3219999999999998 36.815 1687.4 19630316 20170923 637560 99999 MWANZA TZ HTMW -2.444 32.933 1147.0 19500108 20170923 637660 99999 MAKINDU KE HKMU -2.283 37.833 1000.0 19570101 20170204 637720 99999 LAMU MANDA KE HKLU -2.252 40.913000000000004 6.1 19570101 20170923 637840 99999 SHINYANGA TZ -3.65 33.35 1000.0 19870601 20170319 637880 99999 19570101 19600331 637890 99999 ARUSHA TZ HTAR -3.3680000000000003 36.633 1386.8 19600111 20170923 637900 99999 MOSHI TZ HTMS -3.35 37.333 831.0 19490909 20170810 637910 99999 KILIMANJARO INTL TZ HTKJ -3.429 37.074 893.7 19730101 20170923 637930 99999 VOI KE HKVO -3.4 38.567 579.0 19570101 20170923 637990 99999 MALINDI KE HKML -3.2289999999999996 40.102 25.0 19630316 20170923 638010 99999 KIGOMA TZ HTKA -4.883 29.633000000000003 885.0 19570101 20170923 638100 99999 SINGIDA TZ -4.8 34.717 1307.0 20060511 20070718 638160 99999 SAME TZ HTSE -4.083 37.717 872.0 19570101 20170810 638180 99999 MOMBO TZ HTMO -4.883 38.283 511.0 19580206 20030306 638200 99999 MOMBASA MOI INTL KE HKMO -4.035 39.594 61.0 19490121 20170923 638320 99999 TABORA AIRPORT TZ HTTB -5.083 32.833 1190.0 19490121 20170923 638400 99999 HANDENI TZ -5.433 38.033 756.0 20050804 20140526 638430 99999 AMANI TZ -5.1 38.633 911.0 19570101 19611231 638440 99999 TANGA TZ HTTG -5.092 39.071 39.3 19570101 20170827 638450 99999 PEMBA TZ HTPE -5.257000000000001 39.811 24.4 19570101 20170918 638620 99999 DODOMA TZ HTDO -6.17 35.753 1119.5 19500207 20170923 638630 99999 KONGWA TZ -6.2 36.433 1113.0 19570101 20170713 638660 99999 MOROGORO (MET) TZ HTMG -6.832999999999999 37.65 526.0 19570101 20170923 638700 99999 ZANZIBAR TZ HTZA -6.222 39.225 16.5 19570101 20170923 638810 99999 SUMBAWANGA TZ HTSU -7.9670000000000005 31.63 1923.0 19890902 20170923 638870 99999 IRINGA TZ HTIR -7.669 35.751999999999995 1425.9 19570101 20170923 638940 99999 MWALIMU JULIUS K NYERERE INTL TZ HTDA -6.877999999999999 39.203 55.5 19500201 20170923 638950 99999 MAFIA/KILINDONI TZ -7.917000000000001 39.667 21.0 19570101 20141221 639003 99999 SHINYANGA TZ HTSY -3.5 33.0 1100.0 19880324 20170827 639193 99999 KILWA MASOKO TZ HTKI -8.933 39.516999999999996 18.0 20010617 20170810 639320 99999 MBEYA TZ HTMB -8.933 33.467 1707.0 19491101 20170912 639350 99999 NJOBE SW TZ -9.367 34.75 1950.0 19570101 19611231 639360 99999 MAHENGE TZ -8.667 36.717 1200.0 20060620 20070718 639620 99999 SONGEA TZ HTSO -10.683 35.583 1067.0 19490121 20170923 639690 99999 NACHINGWEA TZ HTNA -10.35 38.75 465.0 19570101 20030609 639700 99999 LINDI TZ -10.0 39.7 41.0 19490121 20150924 639710 99999 MTWARA TZ HTMT -10.339 40.181999999999995 113.1 19570101 20170923 639800 99999 SEYCHELLES INTL SE FSIA -4.6739999999999995 55.522 3.0 19490121 20170923 639810 99999 PRASLIN SE FSPP -4.319 55.691 3.0 20010703 20170923 639850 99999 SEYCHELLES INTL SE FSSS -4.683 55.533 4.0 19770702 20051004 639950 99999 ALDABRA SE -9.35 46.533 4.0 19770701 20041211 639960 99999 FARQUHAR SE -10.1 51.167 3.0 20010919 20030507 639970 99999 USWAA NE TZ -3.233 37.233000000000004 1281.0 19570101 19611031 640050 99999 MBANDAKA CG FZEA 0.023 18.289 317.0 19490704 20170603 640060 99999 GEMENA CG FZFK 3.235 19.771 420.0 19730102 20170923 640080 99999 BASANKUSU CG 1.217 19.8 360.0 19730203 20011010 640085 99999 BANGOKA INTL CG FZIC 0.48200000000000004 25.338 431.9 20110602 20170923 640100 99999 BOGUS ZAIRE CG 19910904 19921130 640140 99999 LISALA CG 2.3169999999999997 21.566999999999997 463.0 19730102 20020410 640150 99999 LIBENGE CG 3.633 18.633 359.0 19490704 20030223 640160 99999 BUMBA CG 2.1830000000000003 22.55 361.0 19730101 19810828 640180 99999 BASOKO CG 1.25 23.6 410.0 19740720 20110312 640210 99999 BONDO CG 3.8 23.816999999999997 474.0 19740818 19901027 640340 99999 BUTA CG 2.783 24.783 410.0 19490704 20020413 640400 99999 KISANGANI SIMISINI CG FZIA 0.518 25.155 392.9 19490704 20170523 640460 99999 BANALIA CG 1.55 25.333000000000002 450.0 19870109 20161028 640560 99999 BAFWASENDE CG 1.083 27.133000000000003 524.0 19800609 20050501 640620 99999 ISIRO CG 2.767 27.65 806.0 19730129 20130211 640710 99999 MAMBASA CG 1.367 29.066999999999997 900.0 19800704 19931207 640720 99999 BUTEMBO CG FZMB 0.133 29.267 1840.0 19730620 20131214 640750 99999 IRUMU CG 1.45 29.866999999999997 920.0 19490704 19531231 640760 99999 BUNIA CG 1.5 30.217 1239.0 19730201 20160128 640770 99999 BUNIA-RUAMPARA CG 1.567 30.217 1285.0 20010828 20040312 641010 99999 LUKOLELA CG -1.05 17.2 318.0 20011116 20101101 641080 99999 BANDUNDU CG FZBO -3.3110000000000004 17.382 324.0 19740713 20131215 641150 99999 INONGO CG FZBA -1.9669999999999999 18.267 300.0 19730101 20151126 641260 99999 BOENDE CG FZGN -0.217 20.85 351.0 19730206 20050905 641460 99999 LODJA CG -3.483 23.467 479.0 19800802 19960910 641520 99999 OPALA CG -0.583 24.35 405.0 19740809 20020511 641550 99999 KINDU CG FZOA -2.9189999999999996 25.915 496.8 19490704 20170922 641556 99999 MBUJI MAYI CG FZWA -6.121 23.569000000000003 677.0 20081217 20170922 641560 99999 KALIMA CG -2.6 26.55 569.0 19740501 20031120 641570 99999 RUTSHURU CG -1.183 29.45 1275.0 19800813 19960423 641620 99999 LUBUTU CG -0.75 26.566999999999997 762.0 19861101 19960414 641700 99999 WALIKALE CG -1.4169999999999998 27.0 800.0 20011107 20030607 641750 99999 KAMEMBE RW -1.5330000000000001 28.9 1574.0 19490704 19531231 641800 99999 BUKAVU CG -2.517 28.85 1612.0 19730102 20170922 641840 99999 GOMA CG FZNA -1.683 29.233 1552.0 19730101 20170923 642010 99999 MUANDA CG FZAG -5.931 12.352 27.1 19730101 20170514 642030 99999 KITONA CG -5.917000000000001 12.45 122.0 19730129 20011221 642040 99999 BOMA CG -5.85 13.1 22.0 19730612 20130210 642050 99999 19870518 19870518 642060 99999 INGA CG -5.517 13.583 277.0 19730202 20170511 642070 99999 MATADI/TSHIMPI CG FZAM -5.8 13.433 340.0 19730101 20130128 642090 99999 LUOZI CG -4.95 14.133 236.0 19730618 19781006 642100 99999 NDJILI INTL CG FZAA -4.386 15.445 313.0 19490704 20170923 642110 99999 KINSHASA/N'DOLO CG FZAB -4.317 15.317 282.0 19730203 20170923 642170 99999 KENGE CG FZCS -4.917 17.067 563.0 19830702 20090420 642200 99999 KINSHASA/BINZA CG -4.367 15.25 445.0 19430301 20170823 642220 99999 KIKWIT CG FZCA -5.0360000000000005 18.785999999999998 479.1 19771201 20170921 642230 99999 KAHEMBA CG -7.2829999999999995 19.0 1060.0 20020604 20020604 642240 99999 ILEBO CG -4.333 20.583000000000002 465.0 19740514 20170922 642280 99999 TSHIKAPA CG FZUK -6.417000000000001 20.85 481.0 19740505 20121216 642350 99999 KANANGA CG FZUA -5.9 22.469 652.0 19490704 20170904 642460 99999 LUSAMBO CG FZVI -4.967 23.433000000000003 424.0 19800604 20030118 642470 99999 MBUJI-MAYI CG -6.167000000000001 23.616999999999997 633.0 19740831 20170922 642480 99999 LUPUTA CG -7.132999999999999 23.733 880.0 19800401 20121208 642640 99999 KASONGO CG -4.5169999999999995 26.583000000000002 544.0 20080804 20080804 642760 99999 KONGOLO CG FZRQ -5.35 27.0 561.0 19731207 20100816 642820 99999 MANONO CG FZRA -7.2829999999999995 27.433000000000003 633.0 19730501 20141215 642850 99999 KALEMIE CG -5.882999999999999 29.183000000000003 790.0 19490704 20170923 642910 99999 MOBA CG -7.067 29.783 1132.0 20020604 20020805 642940 99999 BOGUS ZAIRE CG 19861001 20020206 643020 99999 KAPANGA CG -8.35 22.583000000000002 882.0 19740819 19740819 643150 99999 KAMINA BASE CG FZSA -8.642000000000001 25.253 1079.9 19730513 20140604 643280 99999 KOLWEZI CG FZQM -10.765999999999998 25.506 1526.1 19730725 20170508 643480 99999 MITWABA CG -8.6 27.333000000000002 1579.0 19800701 19821220 643600 99999 LUBUMBASHI INTL CG FZQA -11.591 27.531 1309.1 19490704 20170923 643700 99999 LUBUMBASHI-KARAVIA CG -11.65 27.467 1260.0 19430406 19430522 643800 99999 KAMEMBE RW HRZA -2.467 28.916999999999998 1587.4 19730101 20170923 643810 99999 GISENYI RW HRYG -1.6769999999999998 29.259 1549.0 19850506 20170923 643830 99999 RUHENGERI RW HRYU -1.5 29.633000000000003 1855.7 19780404 20170922 643840 99999 BUTARE RW -2.6 29.733 1764.0 19730924 20170718 643870 99999 KIGALI INTL RW HRYR -1.969 30.139 1481.0 19730102 20170923 643900 99999 BUJUMBURA INTL BY HBBA -3.324 29.319000000000003 787.0 19730101 20170923 643970 99999 MUYINGA BY -2.833 30.333000000000002 1755.0 19730701 19990304 644000 99999 POINTE NOIRE CF FCPP -4.816 11.887 16.8 19421220 20170923 644007 99999 YOKANGASSI AIRPORT CF FCBY -4.217 13.283 164.9 20100209 20160118 644010 99999 DOLISIE CF FCPD -4.2 12.7 331.0 19491202 20170923 644020 99999 MOUYONDZI CF FCBM -3.983 13.917 512.0 19500212 20170920 644030 99999 MAKABANA CF FCPA -3.483 12.617 161.0 19730103 20170923 644050 99999 SIBITI CF FCBS -3.6830000000000003 13.35 531.0 19491202 20170923 644500 99999 MAYA MAYA CF FCBB -4.252 15.253 319.4 19490307 20170923 644510 99999 BOULANKIO CF -3.8169999999999997 15.25 750.0 20040304 20140430 644520 99999 M'POUYA CF FCBO -2.617 16.217 312.0 19500315 20170519 644530 99999 DJAMBALA CF FCBD -2.533 14.767000000000001 790.0 19500203 20170923 644540 99999 GAMBOMA CF FCOG -1.867 15.867 377.0 19491202 20170923 644550 99999 MOSSAKA CF -1.217 16.8 296.0 19730629 20140430 644560 99999 MAKOUA CF FCOM -0.017 15.65 380.0 19730102 20170923 644580 99999 OUESSO CF FCOU 1.6159999999999999 16.038 353.0 19491202 20170923 644590 99999 IMPFONDO CF FCOI 1.617 18.067 326.0 19491205 20170923 644600 99999 SOUANKE CF FCOS 2.0669999999999997 14.133 550.0 19500801 20170923 644620 99999 KELLE CF FCOK 0.1 13.55 408.0 20040619 20170923 644625 99999 BONGOR CD FTTB 10.28 15.38 328.0 20050423 20160413 644630 99999 EWO CF FCOE -5.582999999999999 14.817 438.0 20080914 20170923 645000 99999 LEON M BA GB FOOL 0.45899999999999996 9.412 11.9 19490401 20170923 645010 99999 PORT GENTIL GB FOOG -0.7120000000000001 8.754 4.0 19490307 20170923 645030 99999 MAYUMBA GB FOOY -3.417 10.65 34.0 19491206 20090720 645040 99999 COCOBEACH GB FOOC 1.0 9.6 13.0 19491205 20061009 645070 99999 TCHIBANGA GB FOOT -2.85 11.017000000000001 79.0 19730101 20170923 645100 99999 BITAM GB FOOB 2.076 11.493 600.2 19730101 20170923 645120 99999 OYEM GB FOGO 1.5430000000000001 11.581 657.8 20100901 20170923 645450 99999 MEKAMBO GB FOOE 1.0170000000000001 13.933 501.0 19730103 20061220 645500 99999 MOUILLA VILLE GB FOGM -1.845 11.057 89.9 19491202 20170923 645510 99999 LAMBARENE GB FOGR -0.7040000000000001 10.245999999999999 25.0 19491206 20170923 645520 99999 MITZIC GB FOOM 0.7829999999999999 11.533 583.0 19491202 20160531 645525 99999 OYEM GB 1.55 11.567 658.0 20060313 20101101 645530 99999 FRANCEVILLE GB FOOF -1.633 13.6 426.0 19490307 20040919 645533 99999 FRANCEVILLE MVENGUE GB -1.65 13.433 453.0 19920704 20100406 645560 99999 MAKOKOU GB FOOK 0.579 12.890999999999998 526.1 19730101 20170923 645600 99999 LASTOURSVILLE GB FOOR -0.833 12.717 485.0 19730101 20170923 645650 99999 MOANDA GB FOOD -1.5330000000000001 13.267000000000001 573.0 19730101 20080427 645700 99999 FRANCEVILLE MVENGUE GB FOON -1.6669999999999998 13.4 444.0 19810101 20170923 646000 99999 BERBERATI CT FEFT 4.2219999999999995 15.786 588.0 19490401 20170923 646010 99999 BOUAR CT FEFO 5.9670000000000005 15.633 1020.0 19500918 20170923 646030 99999 BOUCA U O C A R CT 6.5 18.267 458.1 19500201 19521217 646050 99999 BOSSEMBELE CT FEFL 5.267 17.633 674.0 19730101 20130322 646100 99999 BOSSANGOA CT FEFS 6.483 17.433 465.0 19730101 20130321 646500 99999 BANGUI M POKO CT FEFF 4.398 18.519000000000002 368.2 19490401 20170923 646503 99999 BANGUI/MPOKO CT FEFF 4.4 18.517 367.0 19860101 19910613 646540 99999 N'DELE CT FEFN 8.4 20.65 511.0 19500201 20130313 646550 99999 BRIA CT FEFR 6.5329999999999995 21.983 584.0 19730101 20121218 646560 99999 BANGASSOU CT FEFG 4.7330000000000005 22.833000000000002 500.0 19491202 20161202 646580 99999 BIRAO CT FEFI 10.283 22.783 464.0 19730101 20170723 646590 99999 OBO CT FEFB 5.4 26.5 651.0 19730101 20121204 646600 99999 BAMBARI CT FEFM 5.85 20.65 475.0 19730101 20140116 646610 99999 YALINGA CT FEFY 6.5 23.267 602.0 19730101 20170601 646620 99999 ALINDAO CT FEFA 5.05 21.2 449.0 19730101 20141110 646650 99999 MOBAYE CT 4.317 21.183000000000003 405.0 19920202 20130206 647000 99999 NDJAMENA HASSAN DJAMOUS CD FTTJ 12.134 15.034 295.0 19490401 20170923 647010 99999 MAO CD FTTU 14.117 15.317 355.0 19730108 20170920 647020 99999 BOL-BERIM CD FTTL 13.433 14.732999999999999 292.0 19730101 20170923 647040 99999 ZOUAR CD 20.45 16.567 809.0 20040307 20040307 647050 99999 BOUSSO CD FTTS 10.482999999999999 16.717 336.0 19730101 20170917 647060 99999 MOUNDOU CD FTTD 8.624 16.070999999999998 428.9 19730101 20170923 647070 99999 MOUSSORO CD 13.65 16.5 301.0 19730208 20050902 647080 99999 BOKORO CD FTTK 12.383 17.05 301.0 19730102 20170923 647085 99999 BILTINE CD FTTE 14.517000000000001 20.9 512.0 20080827 20151226 647086 99999 LAI CD FTTH 9.4 16.3 357.0 20090223 20091209 647090 99999 PALA CD FTTP 9.367 14.917 455.0 19730101 20170923 647200 99999 BARDAI-ZOUGRA CD FTTZ 21.45 17.05 1074.0 20021211 20050927 647500 99999 SARH (CIV/MIL) CD FTTA 9.15 18.383 365.0 19490408 20170923 647510 99999 ATI CD 13.217 18.317 334.0 19730101 20170923 647530 99999 FAYA LARGEAU CD FTTY 17.917 19.111 235.0 19730101 20170819 647540 99999 AM-TIMAN CD FTTN 11.033 20.283 436.0 19730101 20170923 647550 99999 GOZ-BEIDA CD 12.232999999999999 21.416999999999998 557.0 19730319 20050630 647560 99999 ABECHE CD FTTC 13.847000000000001 20.844 545.0 19500306 20170923 647570 99999 FADA CD 17.167 21.55 540.0 19730802 20170819 647580 99999 MONGO CD 12.183 18.683 430.0 19500316 20170923 648100 99999 MALABO EK FGSL 3.755 8.709 23.2 19740618 20170923 648200 99999 BATA (RIO MUNI) EK FGBT 1.9 9.8 8.0 20071005 20170923 648510 99999 SALAK CM FKKL 10.450999999999999 14.257 424.0 19500201 20170923 648514 99999 YAGOUA CITY CM FKKJ 10.367 15.232999999999999 326.0 19810220 19830615 648530 99999 KAELE CM 10.1 14.45 389.0 20050105 20050904 648600 99999 GAROUA CM FKKR 9.336 13.37 242.0 19500201 20170923 648700 99999 NGAOUNDERE CM FKKN 7.357 13.559000000000001 1114.0 19500201 20170923 648800 99999 BANYO CM FKAB 6.7829999999999995 11.817 1110.0 19730101 20051128 648820 99999 MEIGANGA CM FKAM 6.5329999999999995 14.367 1027.0 19730101 20040913 648821 99999 MAROUA-SALAK CM FKKA 10.433 14.25 422.0 20050630 20100916 648900 99999 MAMFE CM FKKF 5.7170000000000005 9.283 126.0 19500201 20080518 648920 99999 BAMENDA CM FKKV 6.039 10.123 1239.0 19790501 20100419 648930 99999 FOUMBAN NKOUNJA CM FKKM 5.6370000000000005 10.751 1207.9 19500814 20071022 649000 99999 YOKO CM FKAY 5.55 12.367 1031.0 19500211 20080606 649010 99999 BETARE-OYA CM FKAO 5.6 14.067 804.0 19500203 20060218 649100 99999 DOUALA CM FKKD 4.006 9.719 10.1 19491202 20170923 649110 99999 NKONGSAMBA CM FKAN 4.95 9.933 821.0 19491205 20100119 649120 99999 TIKO CM FKKC 4.0889999999999995 9.361 46.0 19730101 20110113 649200 99999 BAFIA CM FKAF 4.7330000000000005 11.25 500.0 19730103 20060413 649220 99999 NANGAWEBOKO CM 4.65 12.4 623.0 19500201 19511205 649300 99999 BERTOUA CM FKKO 4.6 13.732999999999999 668.0 19500201 20151228 649310 99999 BATOURI CM FKKI 4.467 14.367 656.0 19500201 20011027 649420 99999 ESEKA CM FKKE 3.65 10.767000000000001 227.0 19500201 20160301 649500 99999 YAOUNDE NSIMALEN CM FKYS 3.7230000000000003 11.552999999999999 694.3 19490914 20170923 649504 99999 YAOUNDE VILLE CM FKKY 3.8360000000000003 11.523 751.0 19930408 20170723 649600 99999 ABONG-MBANG CM FKAG 3.967 13.2 693.0 19730101 20080118 649610 99999 LOMIE CM FKAL 3.15 13.617 624.0 19730101 19980923 649620 99999 YOKADOOMA CM 3.517 15.1 534.0 19500211 19511202 649700 99999 CAMPO CM 2.367 9.8 25.0 19500301 20121122 649710 99999 KRIBI CM FKKB 2.95 9.9 16.0 19500201 20120519 649730 99999 AMBAM CM 2.383 11.283 602.0 19500318 19511225 650010 99999 YELWA NI 10.883 4.75 244.0 19490321 20170919 650020 99999 ENUGU NI 6.4670000000000005 7.567 142.0 20040811 20170916 650030 99999 BIRNIN KEBBI NI 12.467 4.217 220.0 20040902 20160909 650035 99999 AKURE NI 7.247000000000001 5.301 335.3 20110328 20110328 650100 99999 SADIQ ABUBAKAR III INTL NI DNSO 12.915999999999999 5.207000000000001 307.8 19490321 20170825 650150 99999 GUSAU NI DNGU 12.172 6.696000000000001 463.3 19730102 20170912 650190 99999 KADUNA NI DNKA 10.696 7.32 631.9 19490321 20170807 650280 99999 KATSINA NI DNKT 13.017000000000001 7.683 517.0 19490321 20170909 650300 99999 ZARIA NI DNZA 11.13 7.686 661.4 19730812 20170923 650460 99999 MALLAM AMINU INTL NI DNKN 12.048 8.525 476.1 19430501 20170923 650550 99999 BAUCHI NI 10.283 9.817 609.0 19490421 20170702 650640 99999 NGURU NI 12.883 10.467 344.0 19490411 20170828 650730 99999 POTISKUM NI 11.7 11.033 414.0 19490321 20160427 650750 99999 GOMBE NI DNGO 10.283 11.15 505.0 20120613 20170919 650820 99999 MAIDUGURI NI 11.85 13.083 354.0 19430501 20170821 651000 99999 IBADAN NI DNIB 7.362 3.978 221.0 20040815 20170916 651010 99999 ILORIN NI DNIL 8.44 4.494 343.2 19500203 20170923 651080 99999 SHAKI NI 8.667 3.383 456.0 19870518 20170903 651120 99999 BIDA NI DNBI 9.1 6.017 143.0 19500101 20170923 651125 99999 NNAMDI AZIKIWE INTL NI DNAA 9.007 7.263 342.3 20110907 20170922 651230 99999 MINNA NI 9.617 6.5329999999999995 260.0 19490516 20170923 651240 99999 LAFIA NI 8.55 8.533 181.0 20110601 20170827 651250 99999 ABUJA NI 9.25 7.0 344.0 19880101 20170922 651340 99999 YAKUBU GOWON NI DNJO 9.64 8.869 1289.9 19490305 20170916 651450 99999 IBI NI 8.183 9.75 111.0 19500306 20140130 651640 99999 19870518 19870518 651670 99999 YOLA NI DNYO 9.258 12.43 182.6 19500211 20170909 652000 99999 ISEYEN NI 7.9670000000000005 3.6 330.0 20090303 20170917 652010 99999 MURTALA MUHAMMED NI DNMM 6.577000000000001 3.321 41.1 19490225 20170923 652015 99999 MAIDUGURI NI 11.85 13.083 344.0 20040804 20111215 652016 99999 OWERRI LMO NI DNIM 5.417000000000001 7.2 114.0 20110529 20170912 652020 99999 OSHODI NI 6.5 3.383 19.0 19430609 20170917 652030 99999 LAGOS ROOF NI 6.45 3.4 19.0 20111019 20130828 652050 99999 BOGUS NIGERIAN NI 19880106 20051118 652080 99999 IBADAN NI 7.433 3.9 228.0 19490225 20170919 652100 99999 IJEBU ODE NI 6.832999999999999 3.9330000000000003 77.0 20090303 20170923 652130 99999 ABEOKUTA NI 7.167000000000001 3.333 104.0 19830701 20170922 652150 99999 OSHOGBO NI DNOS 7.7829999999999995 4.4830000000000005 304.0 19730101 20170922 652220 99999 ONDO NI 7.1 4.833 287.0 19490325 20170430 652240 99999 ADO EKITI NI 7.65 5.2 453.0 20120120 20120120 652290 99999 BENIN CITY NI DNBE 6.317 5.1 79.0 19490225 20170923 652320 99999 AKURE NI DNAK 7.25 5.3 335.3 20110601 20150820 652360 99999 WARRI NI 5.517 5.733 4.0 19490225 20170426 652430 99999 LOKOJA NI 7.8 6.733 44.0 19490325 20170904 652450 99999 ONITSHA NI 6.15 6.7829999999999995 86.0 19871202 20151106 652460 99999 AWKA NI 6.2 7.05 325.0 20120613 20170909 652500 99999 PORT HARCOURT INTL NI DNPO 5.015 6.95 26.5 19490225 20170923 652510 99999 19870518 19870518 652520 99999 OWERRI NI 5.483 7.0 91.0 19880101 20170923 652570 99999 ENUGU NI 6.4670000000000005 7.55 137.0 19490325 20140514 652600 99999 UYO NI DNAI 5.05 7.917000000000001 38.0 19830705 20170831 652640 99999 CALABAR NI DNCA 4.976 8.347000000000001 64.0 19490225 20170923 652710 99999 MAKURDI NI DNMK 7.704 8.613999999999999 113.1 19730101 20170923 652720 99999 OGOJA NI 6.667000000000001 8.8 117.0 20050614 20090313 652730 99999 IKOM NI 5.9670000000000005 8.717 93.0 19791103 20110826 652740 99999 OBUDU NI 6.6 9.317 284.0 20111204 20120730 652750 99999 OGOJA NI 6.667000000000001 8.8 117.0 19830701 20170820 652850 99999 TIKO CM 4.1 9.35 51.8 19490511 19521029 652920 99999 MAMFE CM 5.7170000000000005 9.283 152.0 19490323 19520901 653060 99999 KANDI BN DBBK 11.133 2.9330000000000003 292.0 19490401 20170923 653190 99999 NATITINGOU BN DBBN 10.317 1.383 461.0 19490407 20170923 653300 99999 PARAKOU BN DBBP 9.35 2.617 393.0 19730101 20170923 653330 99999 TCHAOUROU BN 8.867 2.6 327.0 19490401 20160906 653350 99999 SAVE BN DBBS 8.033 2.467 200.0 19490401 20170923 653380 99999 BOHICON BN DBBC 7.167000000000001 2.0669999999999997 167.0 19490402 20170923 653440 99999 CADJEHOUN BN DBBB 6.357 2.384 5.8 19490401 20170923 653510 99999 DAPAON TO 10.867 0.25 330.0 19780311 20121227 653520 99999 MANGO/SANSANNE TO DXMG 10.367 0.467 146.0 19490125 20170923 653550 99999 NIAMTOUGOU INTERNATIONAL TO DXNG 9.767000000000001 1.091 461.8 19851201 20170923 653570 99999 KARA TO 9.55 1.167 341.0 19771103 20170923 653610 99999 SOKODE TO DXSK 8.982999999999999 1.15 387.0 19490119 20170923 653760 99999 ATAKPAME/AKPAKA TO DXAK 7.582999999999999 1.117 402.0 19490114 20170923 653765 99999 DAPANGO TO DXDP 10.8 0.25 919.0 20060730 20170923 653780 99999 KOUMA-KONDA TO 6.95 0.583 641.0 20051226 20051226 653800 99999 TABLIGBO TO DXTA 6.582999999999999 1.5 44.0 19730101 20170923 653870 99999 GNASSINGBE EYADEMA INTL TO DXXX 6.166 1.255 21.9 19490114 20170923 654010 99999 NAVRONGO GH DGLN 10.9 -1.1 203.0 19490112 20170923 654040 99999 WA GH DGLW 10.083 -2.508 323.1 19730101 20170923 654080 99999 TAKORACI GHANA GH 4.883 -0.233 8.8 19490116 19521122 654160 99999 BOLE GH DGLB 9.033 -2.483 301.0 19730101 20170923 654180 99999 TAMALE GH DGLE 9.557 -0.863 168.6 19730101 20170923 654200 99999 YENDI GH DGLY 9.45 -0.017 197.0 19730111 20170923 654220 99999 KUMASI GHANA GH 6.7170000000000005 -0.4 292.9 19490112 19521230 654290 99999 NAVRONGO GHANA GH 10.883 -0.917 202.1 19500218 19521218 654320 99999 WENCHI GH DGSW 7.75 -2.1 340.0 19730201 20170923 654360 99999 SALTPOND GHANA GH 5.2 -0.9329999999999999 5.8 19490112 19521231 654370 99999 KETE-KRACHI GH 7.817 -0.033 122.0 19730111 20170923 654390 99999 SUNYANI GH DGSN 7.362 -2.329 309.1 19741102 20170922 654420 99999 KUMASI GH DGSI 6.715 -1.591 287.1 19730101 20170923 654430 99999 TAMALE GHANA GH 9.417 0.883 188.1 19490116 19521230 654450 99999 SEFWI BEKWAI GH DGSB 6.2 -2.333 172.0 19740711 20170923 654490 99999 ACCRA GHANA GH 5.6 0.16699999999999998 65.2 19501201 19521231 654500 99999 ABETIFI GH 6.667000000000001 -0.75 594.0 20050405 20170923 654530 99999 HO GH DGAH 6.6 0.467 158.0 19730101 20170923 654570 99999 AKIM ODA GH DGKA 5.933 -0.983 140.0 19490112 20170923 654590 99999 KOFORIDUA GH DGKK 6.082999999999999 -0.25 167.0 19730313 20170923 654600 99999 AKUSE GH DGAK 6.1 0.11699999999999999 19.0 19730102 20170923 654620 99999 AKATSI GH 6.117000000000001 0.8 178.0 19780805 20170922 654640 99999 YENDI GHANA GH 9.45 0.017 196.6 19510620 19521125 654650 99999 AXIM GH DGTX 4.867 -2.233 40.0 19730103 20170923 654670 99999 TAKORADI GH DGTK 4.896 -1.775 6.4 19730101 20170923 654690 99999 SALTPOND GH DGAS 5.2 -1.067 47.0 19730101 20170923 654710 99999 AKUSE GHANA GH 6.082999999999999 0.11699999999999999 18.6 19490112 19521230 654720 99999 KOTOKA INTL GH DGAA 5.605 -0.16699999999999998 62.5 19420701 20170923 654730 99999 TEMA GH DGAT 5.617000000000001 0.0 18.0 19790108 20170923 654750 99999 ADA GH DGAD 5.7829999999999995 0.633 7.0 19730108 20170923 654780 99999 ATSIATI NORTHWEST GH 6.667000000000001 0.5 237.0 19490202 19521231 654810 99999 ADA GHANA GH 5.767 0.633 9.1 19500809 19521231 654850 99999 KETA GH 5.917000000000001 0.983 0.0 19490112 19500731 655000 99999 MARKOYE UV 14.633 -0.067 295.0 20040524 20160127 655010 99999 DORI UV DFEE 14.033 -0.033 277.0 19490520 20170923 655020 99999 OUAHIGOUYA UV DFCC 13.567 -2.417 336.0 19730101 20170923 655030 99999 OUAGADOUGOU UV DFFD 12.353 -1.5119999999999998 316.1 19490401 20170923 655050 99999 DEDOUGOU UV DFOD 12.467 -3.483 300.0 19830701 20170923 655070 99999 FADA N'GOURMA UV DFEF 12.033 0.36700000000000005 309.0 19491202 20170923 655100 99999 BOBO DIOULASSO UV DFOO 11.16 -4.331 460.6 19490402 20170923 655160 99999 BOROMO UV DFCO 11.75 -2.9330000000000003 271.0 19500201 20170923 655180 99999 PO UV DFCP 11.15 -1.15 322.0 19830701 20170923 655220 99999 GAOUA UV DFOG 10.333 -3.1830000000000003 335.0 19490410 20170923 655280 99999 ODIENNE IV DIOD 9.5 -7.567 421.0 19490402 20170923 655360 99999 KORHOGO IV DIKO 9.387 -5.557 370.0 19730101 20170923 655390 99999 FERKESSEDOUGOU IV 9.6 -5.2 323.0 19490407 19521231 655450 99999 BONDOUKOU/SOKO IV DIBU 8.05 -2.783 370.0 19730102 20170923 655480 99999 MAN IV DIMN 7.272 -7.587000000000001 331.9 19490402 20170923 655550 99999 BOUAKE IV DIBK 7.739 -5.074 374.9 19490401 20170923 655570 99999 GAGNOA IV DIGA 6.132999999999999 -5.95 210.0 19500217 20170923 655600 99999 DALOA IV DIDL 6.792999999999999 -6.473 250.9 19780701 20170923 655620 99999 DIMBOKRO CITY IV DIDK 6.65 -4.7 92.0 19500213 20170923 655630 99999 YAMOUSSOUKRO IV DIYO 6.903 -5.3660000000000005 213.1 19780612 20170923 655780 99999 ABIDJAN FELIX HOUPHOUET BOIGNY INTL IV DIAP 5.261 -3.926 6.4 19490401 20170923 655850 99999 ADIAKE IV DIAD 5.3 -3.3 39.0 19500215 20170923 655920 99999 TABOU IV DITB 4.417 -7.367000000000001 21.0 19430601 20170923 655940 99999 SAN PEDRO IV DISP 4.747 -6.6610000000000005 7.9 19780701 20170923 655990 99999 SASSANDRA/DREWIN IV DISS 4.95 -6.082999999999999 66.0 19490402 20170923 656020 99999 MONROVIA SPRIGGS PAYNE LI GLMR 6.289 -10.759 7.6 19740924 20030523 656550 99999 BOGUS LIBERIAN LI 19841101 20030520 656570 99999 20011008 20050106 656600 99999 MONROVIA ROBERTS INTL LI GLRB 6.234 -10.362 9.4 19420701 20170916 656620 99999 BOGUS LIBERIAN LI 19841101 20040927 656630 99999 BOGUS LIBERIAN LI 19841102 20030203 656780 99999 BOGUS LIBERIAN LI 19841101 19841101 656850 99999 20031010 20031010 656920 99999 BOGUS LIBERIAN LI 19841101 19841101 656940 99999 BOGUS LIBERIAN LI 19841224 19841224 656990 99999 BOGUS LIBERIAN LI 19841102 20040525 659020 99999 19870511 19870511 661040 99999 CABINDA AO FNCA -5.597 12.187999999999999 20.1 19490104 20170923 661160 99999 NOQUI AO -5.867000000000001 13.433 -999.9 19920902 20131025 661180 99999 MBANZA CONGO AO FNBC -6.27 14.247 566.9 19811011 20170923 661200 99999 SOYO A AO -6.117000000000001 12.35 -1.0 20080501 20160517 661210 99999 MAQUELA DO ZOMBO AO -6.0329999999999995 15.117 920.0 19671105 20070111 661300 99999 N'ZETO (AMBRIZETE) AO -7.233 12.867 17.0 19630101 20170317 661360 99999 TOTO AO -7.167000000000001 14.267000000000001 540.0 19671105 19750222 661361 99999 NAMIBE AO -15.267000000000001 12.15 66.0 20050327 20170923 661362 99999 DUNDO AO -7.4 20.816999999999997 747.0 20050327 20170923 661363 99999 SUMBE AO -11.167 13.85 11.0 20050414 20170923 661365 99999 SOYO AO -6.132999999999999 12.367 5.0 20070629 20170923 661400 99999 CARMONA AO -7.582999999999999 15.0 829.0 19560504 20160425 661420 99999 NEGAGE AO -7.683 15.367 1249.0 19671105 19751231 661520 99999 DUNDO AO -7.4 20.816999999999997 776.0 19510613 20090206 661600 99999 LUANDA 4 DE FEVEREIRO AO FNLU -8.857999999999999 13.231 74.1 19490103 20170923 661720 99999 N'DALATANDO AO -9.283 14.917 795.0 19740429 20160318 661870 99999 CAMAXILO AO -8.367 18.933 1180.0 19730104 20081023 662100 99999 SUMBE AO -11.2 13.85 10.0 20050704 20151202 662150 99999 MALANJE AO FNMA -9.525 16.312 1179.0 19490930 20170920 662230 99999 MBANZA CONGO AO FNBC -6.267 14.25 567.0 20070629 20160511 662260 99999 SAURIMO AO FNSA -9.689 20.432000000000002 1092.4 19520616 20170923 662400 99999 PORTO AMBOIM AO -10.7 13.75 5.0 19521013 20090826 662600 99999 SUMBE AO -11.2 13.85 -999.9 19850701 20160516 662700 99999 WAKU KUNGU (CELA) AO -11.417 15.117 1304.0 19610101 20021104 662850 99999 LUENA AO FNUE -11.767999999999999 19.898 1328.9 19490103 20170923 662960 99999 CAZOMBO AO -11.867 22.9 1126.0 19680805 20031101 663050 99999 LOBITO AO -12.367 13.533 3.0 19490103 19751014 663100 99999 BENGUELA AO FNBG -12.609000000000002 13.404000000000002 36.0 19730101 20170923 663180 99999 HUAMBO AO FNHU -12.809000000000001 15.761 1702.9 19490103 20170923 663250 99999 KUITO AO FNKU -12.405 16.947 1712.4 19520805 20170923 663900 99999 LUBANGO AO FNUB -14.925 13.575 1761.1 19490103 20170923 664100 99999 MENONGUE (SERPA PINTO) AO -14.65 17.683 1343.0 19530616 20070606 664220 99999 MOCAMEDES AO -15.2 12.15 43.0 19490103 20160516 664470 99999 MAVINGA AO -15.833 20.35 1088.0 19530616 19751004 664500 99999 BAIA DOS TIGRES AO -16.6 11.717 1.0 19730101 20150805 664600 99999 NGIVA AO FNGI -17.043 15.684000000000001 1086.9 19740419 20170923 664850 99999 ROCADAS AO -16.717 15.0 1099.0 19610401 19750906 670010 99999 MORONI AIRPORT (GRANDE-COMORE) CN -11.7 43.233000000000004 6.0 19730101 20020509 670020 99999 PRINCE SAID IBRAHIM CN FMCH -11.534 43.272 28.3 19811101 20170923 670030 99999 BOGUS COMOROS CN 19880601 20051123 670040 99999 OUANI CN FMCV -12.132 44.43 18.9 19730101 20170923 670050 99999 DZAOUDZI PAMANDZI MF FMCZ -12.805 45.281000000000006 7.0 19490101 20170923 670090 99999 ARRACHART MA FMNA -12.349 49.292 114.0 19490101 20170923 670120 99999 FASCENE MA FMNN -13.312000000000001 48.315 11.0 19730101 20170923 670170 99999 VOHIMARINA MA FMNV -13.376 50.003 5.8 19730102 20130825 670190 99999 ANALALAVA MA FMNL -14.63 47.763999999999996 105.2 19730102 20120113 670200 99999 ANTSOHIHY MA -14.883 47.983000000000004 23.0 19730102 20170923 670220 99999 ANDAPA MA FMND -14.652000000000001 49.621 473.0 19730102 20170514 670230 99999 SAMBAVA MA FMNS -14.279000000000002 50.175 6.1 19730102 20170923 670250 99999 ANTSIRABATO MA FMNH -14.999 50.32 6.1 19730101 20170923 670270 99999 PHILIBERT TSIRANANA MA FMNM -15.667 46.352 26.5 19490101 20170923 670290 99999 BOGUS MADAGASCAR MA 19890103 20050929 670350 99999 19730102 19730330 670370 99999 BESALAMPY MA FMNQ -16.742 44.481 38.1 19730101 20170923 670450 99999 MAEVATANANA MA -16.95 46.833 79.0 19730101 20131017 670490 99999 BOGUS MADAGASCAR MA 19890101 20040830 670560 99999 AMBATOMAINTY MA -17.683 45.167 430.0 20041228 20041228 670650 99999 19730102 19730328 670670 99999 AMBOHITSILAOZANA MA -17.633 48.5 780.0 19890101 20170923 670720 99999 SAINTE MARIE MA FMMS -17.094 49.816 2.1 19730101 20170923 670730 99999 MAINTIRANO MA FMMO -18.05 44.033 23.0 19730101 20170923 670735 99999 TAMBOHORANO AIRPORT MA FMMU -17.483 43.967 7.0 20120509 20170809 670736 99999 SOALALA AIRPORT MA FMNO -16.083 45.367 43.0 20121223 20151104 670830 99999 IVATO MA FMMI -18.797 47.479 1279.6 19730101 20170923 670850 99999 ANTANANARIVO / VILLE MA FMMD -18.867 47.5 1310.0 19520801 20170923 670950 99999 TOAMASINA MA FMMT -18.11 49.393 6.7 19490101 20170923 671070 99999 ANTSIRABE MA FMME -19.817 47.067 1532.0 19730315 20170923 671090 99999 ARIVONIMAMO MA FMMA -19.033 47.167 1450.0 19730101 19840615 671091 99999 ANTANANARIVO ARIVONIMAMO MA FMMA -19.029 47.172 1449.9 20070226 20161021 671130 99999 MAHANORO MA FMMH -19.833 48.8 5.0 19730101 20170923 671131 99999 MIANDRIVAZO MA FMMN -19.563 45.451 61.9 20050515 20160804 671170 99999 MORONDAVA MA FMMV -20.285 44.318000000000005 9.1 19730101 20170923 671280 99999 ST DENIS REUNION/GILLOT RE -19.467 55.483000000000004 11.0 19521106 19531231 671290 99999 ST DENIS LA REUNION I RE -26.467 59.45 11.9 19490101 19521112 671300 99999 ST DENIS LA REUNION I RE -19.133 55.433 398.1 19490930 19511202 671310 99999 MOROMBE MA FMSR -21.754 43.376000000000005 4.9 19730101 20170923 671350 99999 BEROROHA MA -21.666999999999998 45.167 530.0 20070127 20100302 671370 99999 FIANARANTSOA MA FMSF -21.441999999999997 47.111999999999995 1115.0 19730101 20170923 671430 99999 MANANJARY MA FMSM -21.201999999999998 48.358000000000004 6.1 19730101 20170923 671500 99999 EUROPA IS MP -21.666999999999998 40.35 7.0 19500128 19531231 671520 99999 RANOHIRA MA FMSO -22.55 45.4 824.0 19730101 20170923 671570 99999 FARAFANGANA MA FMSG -22.805 47.821000000000005 7.9 19730101 20170923 671610 99999 TOLIARA MA FMST -23.383000000000003 43.728 8.8 19730101 20170923 671940 99999 FAUX-CAP MA -25.55 45.533 22.0 19730101 20170908 671970 99999 TOLAGNARO MA FMSD -25.038 46.956 8.8 19490101 20170923 671980 99999 ILE AMSTERDAM FS -37.833 77.567 28.0 19500201 19531231 671990 99999 KERGUELEN IS FR -48.667 70.167 11.9 19510109 19531231 672050 99999 MOCIMBOA DA PRAIA MZ FQMP -11.362 40.355 27.1 19730101 20170923 672150 99999 PEMBA MZ FQPB -12.987 40.522 100.9 19730101 20170923 672170 99999 LICHINGA MZ FQLC -13.274000000000001 35.266 1373.1 19730101 20170923 672210 99999 MARRUPA MZ FQMR -13.225 37.552 755.9 19730103 20170922 672230 99999 MONTEPUEZ MZ -13.133 39.033 535.0 19730101 20170923 672250 99999 FURANCUNGO MZ -14.917 33.617 1262.0 19730101 20170918 672290 99999 ULONGWE MZ FQUG -14.705 34.352 1300.0 19800303 20170104 672310 99999 CUAMBA MZ FQCB -14.817 36.533 607.0 19730103 20170923 672370 99999 NAMPULA MZ FQNP -15.106 39.282 440.1 19730101 20170923 672410 99999 LUMBO MZ FQLU -15.033 40.672 10.1 19490103 20170923 672430 99999 ZUMBO MZ -15.617 30.433000000000003 340.0 19730215 20170923 672500 99999 SONGO MZ FQSG -15.6 34.433 966.0 19760819 20170922 672600 99999 MILANGE MZ -16.1 35.766999999999996 6.7 20161229 20170923 672610 99999 TETE MZ FQTE -16.183 33.583 150.0 19730101 20170923 672614 99999 TETE CHINGODZI MZ FQTT -16.105 33.64 160.0 19990703 20170923 672651 99999 MOCUBA MZ -16.833 36.983000000000004 134.0 20170906 20170923 672730 99999 ANGOCHE MZ -16.217 39.9 62.0 19730101 20170922 672790 99999 MUTARARA MZ -17.367 35.033 89.0 19730108 20020713 672800 99999 CAIA MZ -17.833 35.333 45.0 19830701 20170923 672830 99999 QUELIMANE MZ FQQL -17.855999999999998 36.869 11.0 19490103 20170923 672850 99999 PEBANE MZ -17.267 38.15 26.0 19730101 20170922 672871 99999 CATANDICA MZ -18.067 33.167 611.0 20170906 20170922 672950 99999 CHIMOIO MZ FQCH -19.151 33.429 697.1 19730101 20170923 672970 99999 BEIRA MZ FQBR -19.796 34.908 10.1 19490103 20170923 672991 99999 ESPUNGABERA MZ -20.467 32.766999999999996 824.0 20170913 20170922 673050 99999 MASSANGENA MZ -21.55 32.967 136.0 19730101 19790401 673080 99999 CHICUALACUALA MZ -22.083000000000002 31.683000000000003 453.0 19730101 20151129 673090 99999 DINDIZA-GAZA MZ -22.083000000000002 33.367 102.0 20071124 20170923 673150 99999 VILANKULO MZ FQVL -22.018 35.313 14.0 19730101 20170923 673230 99999 INHAMBANE MZ -23.866999999999997 35.383 15.0 19490103 20170923 673270 99999 PANDA MZ -24.05 34.717 150.0 20071016 20170923 673310 99999 MAPULANGUENE-MAPUTO MZ -24.483 32.083 151.0 20071123 20170707 673350 99999 XAI XAI MZ FQXA -25.05 33.633 5.0 19730101 20170923 673390 99999 MAPUTO MZ -25.967 32.6 59.0 19490101 20170531 673410 99999 MAPUTO MZ FQMA -25.921 32.573 44.2 19730101 20170923 673460 99999 CHANGALANE MZ -26.283 32.183 104.0 19800301 20170921 674030 99999 KAWAMBWA ZA FLKB -9.8 29.083000000000002 1324.0 19730115 20170919 674035 99999 LWELA ZA FLLL -11.717 29.116999999999997 1085.0 20100607 20100705 674130 99999 MBALA ZA FLBA -8.85 31.333000000000002 1673.0 19730101 20170908 674210 99999 CHITIPA MI FWCT -9.7 33.266999999999996 1278.0 19730102 20170921 674230 99999 KARONGA MI FWKA -9.954 33.893 538.0 19730102 20170921 674240 99999 BOLERO MI -10.967 33.733000000000004 1100.0 19850506 20170910 674410 99999 MWINILUNGA ZA FLMW -11.75 24.433000000000003 1363.0 19730101 20161223 674420 99999 MFUWE ZA -13.267000000000001 31.933000000000003 573.0 20040817 20170919 674610 99999 MANSA ZA FLMA -11.1 28.85 1384.0 19730101 20170920 674690 99999 SAMYA ZA -11.367 29.9 1171.0 19730102 20120614 674750 99999 KASAMA ZA FLKS -10.217 31.133000000000003 1384.0 19490101 20170922 674760 99999 MISAMFU ZA -10.1 31.25 1536.0 19900903 20170919 674770 99999 MPIKA ZA FLMP -11.9 31.433000000000003 1402.0 19730101 20170921 674810 99999 ISOKA ZA FLIK -10.117 32.633 1360.0 19850102 20170921 674850 99999 MZIMBA MI FWMZ -11.883 33.617 1351.0 19730103 20170921 674890 99999 MZUZU MI FWUU -11.445 34.012 1254.3 19730101 20170921 674930 99999 NKHATA BAY MI -11.6 34.3 500.0 19730621 20170920 675310 99999 ZAMBEZI ZA FLZB -13.533 23.116999999999997 1078.0 19730101 20170921 675410 99999 KASEMPA ZA FLPA -13.533 25.85 1234.0 19730101 20170921 675430 99999 KABOMPO ZA -13.6 24.2 1075.0 19761201 20050427 675510 99999 SOLWEZI ZA FLSW -12.167 26.366999999999997 1386.0 19730105 20170921 675610 99999 NDOLA SIMON MWANSA KAWEPEWE INTL ZA FLSK -12.982999999999999 28.65 1270.1 19490101 20170920 675630 99999 KAFIRONDA ZA -12.6 28.116999999999997 1243.0 19730104 20170921 675705 99999 KAKUMBI ZA -13.067 31.763 539.5 20130101 20160225 675710 99999 SERENJE ZA FLSE -13.232999999999999 30.217 1384.0 19730101 20170921 675750 99999 MKUSHI ZA -13.633 29.433000000000003 1237.0 19940603 20170908 675800 99999 MSEKERA ZA -13.65 32.567 1025.0 20011028 20170921 675810 99999 CHIPATA ZA FLCP -13.55 32.583 1032.0 19490101 20170922 675820 99999 BOGUS ZAMBIA ZA 19900103 20030212 675830 99999 LUNDAZI ZA FLLD -12.283 33.2 1143.0 19730401 20170919 675840 99999 KASUNGU MI -13.017000000000001 33.467 1015.0 19840503 20170921 675850 99999 CHITEDZE MI -13.982999999999999 33.633 1149.0 19821101 20170915 675860 99999 LILONGWE INTL MI FWLI -13.789000000000001 33.781 1261.0 19820501 20170923 675870 99999 LILONGWE/AIRPORT MI -13.982999999999999 33.783 1067.0 19730101 20100407 675880 99999 N.R.C. MI -14.167 33.667 1100.0 19880203 20100314 675890 99999 DWANGWA MI -12.482999999999999 34.083 489.0 19730106 20160125 675910 99999 NKHOTA KOTA MI FWKK -12.917 34.266999999999996 500.0 19730620 20170919 675970 99999 SALIMA MI FWSM -13.75 34.583 513.0 19730102 20170922 675990 99999 MFUWE ZA -13.267000000000001 31.933000000000003 570.0 19881103 20140122 676250 99999 KALABO ZA -14.85 22.7 -999.9 20080208 20170922 676330 99999 MONGU ZA FLMG -15.255 23.162 1063.1 19490102 20170921 676410 99999 KAOMA ZA FLKO -14.8 24.8 1213.0 19730101 20170920 676550 99999 MUMBWA ZA -15.067 27.183000000000003 1216.0 19810603 20160707 676590 99999 KAFUE POLDER ZA -15.767000000000001 27.916999999999998 978.0 19730103 20170921 676610 99999 LUSAKA CITY ZA -15.417 28.333000000000002 1280.0 19490101 20031110 676620 99999 KABWE AGRIC ZA -14.4 28.5 1165.0 19900901 20170918 676630 99999 KABWE/MILLIKEN ZA FLKW -14.45 28.467 1207.0 19730101 20170921 676650 99999 LUSAKA INTL ZA FLKK -15.333 28.45 1151.8 19730101 20170923 676660 99999 LUSAKA CITY ZA FLLC -15.414000000000001 28.331 1280.2 19880303 20170920 676670 99999 MOUNT MAKULU ZA -15.55 28.25 1213.0 19730102 20170921 676730 99999 PETAUKE ZA FLPE -14.25 31.283 1036.0 19730103 20170921 676870 99999 CHICHIRI MI -15.783 35.033 1141.0 19730201 20170922 676890 99999 DEDZA MI FWDZ -14.317 34.266999999999996 1632.0 19730720 20170921 676900 99999 MONKEY BAY MI FWMY -14.083 34.917 474.0 19821001 20170921 676920 99999 MAKOKA MI -15.517000000000001 35.217 1028.0 19730302 20170727 676930 99999 CHILEKA INTL MI FWCL -15.679 34.974000000000004 778.8 19490101 20170923 676950 99999 MANGOCHI MI FWMG -14.433 35.25 485.0 19730102 20170919 676960 99999 CHIKWEO MI -14.75 35.667 717.0 19890901 20010607 676990 99999 MIMOSA MI -16.083 35.583 653.0 19730201 20170905 677310 99999 SENANGA ZA FLSN -16.1 23.267 1027.0 19851201 20170920 677410 99999 SESHEKE ZA FLSS -17.467 24.3 951.0 19730101 20170921 677430 99999 HARRY MWAANGA NKUMBULA INTL ZA FLHN -17.8 25.816999999999997 992.1 19490101 20170921 677510 99999 MAGOYE ZA -16.0 27.6 1018.0 19900211 20170921 677530 99999 CHOMA ZA FLCH -16.833 27.066999999999997 1278.0 19730101 20170919 677550 99999 BINGA ZI FVBI -17.617 27.333000000000002 617.0 19620701 20170923 677610 99999 KARIBA INTL ZI FVKB -16.52 28.885 520.0 19620701 20170923 677650 99999 KAROI ZI FVKA -16.833 29.616999999999997 1344.0 19620701 20170923 677670 99999 KANYEMBA ZI -15.633 30.416999999999998 329.0 19881101 20170923 677710 99999 CHINHOYI ZI -17.367 30.2 1140.0 19620701 20170923 677730 99999 GURUVE ZI -16.65 30.7 1180.0 19750816 20170923 677740 99999 HARARE (BELVEDERE) ZI -17.833 31.017 1472.0 19831008 20170122 677750 99999 HARARE INTL ZI FVHA -17.932000000000002 31.093000000000004 1489.6 19490101 20170923 677790 99999 MOUNT DARWIN ZI -16.783 31.583000000000002 966.0 19620701 20170923 677810 99999 MUTOKO ZI FVMT -17.432000000000002 32.185 1204.0 19620701 20170923 677850 99999 HERNDERSON ZI -17.583 30.967 1290.0 19870312 20170923 677890 99999 MVURWI ZI -17.033 30.983 1480.0 19620701 20170923 677910 99999 BVUMBWE MI -15.917 35.067 1146.0 19730302 20170921 677930 99999 THYOLO MI -16.15 35.217 820.0 19730201 20030508 677960 99999 NGABU MI -16.5 34.95 102.0 19730102 20170908 677970 99999 MAKANGA MI -16.517 35.15 58.0 19730115 20070612 678430 99999 VICTORIA FALLS INTL ZI FVFA -18.096 25.839000000000002 1063.8 19730101 20170923 678530 99999 HWANGE NATIONAL PARK ZI FVWN -18.63 27.021 1079.9 19620701 20170923 678550 99999 LUPANE ZI -18.95 27.8 1000.0 19620701 20170923 678570 99999 ZIKAMANUS ZI -18.2 27.967 1010.0 19620701 20170923 678610 99999 GOKWE ZI FVGO -18.217 28.933000000000003 1282.0 19620701 20170923 678630 99999 NKAYI ZI -19.0 28.9 1131.0 19620701 20170923 678650 99999 KWEKWE ZI -18.933 29.833000000000002 1213.0 19620701 20170923 678670 99999 GWERU THORNHILL ZI FVTL -19.436 29.862 1426.5 19620701 20170923 678690 99999 KADOMA ZI -18.317 29.883000000000003 1157.0 19620701 20170923 678710 99999 CHIVHU ZI -19.033 30.883000000000003 1459.0 19620701 20170923 678730 99999 19870519 19870519 678750 99999 BUHERA ZI -19.317 31.433000000000003 1190.0 19870312 20170923 678770 99999 GRASSLANDS ZI -18.183 31.467 1632.0 19620701 20170923 678810 99999 RUSAPE ZI FVRU -18.533 32.133 1430.0 19620701 20170923 678813 99999 MARONDERA ZI FVMA -18.183 31.467 1637.0 19881223 19890911 678850 99999 MUTARE/GRAND REEF ZI -18.983 32.45 1019.0 19620701 20050803 678890 99999 WYANGA ZI -18.283 32.75 1880.0 19620701 20170923 678910 99999 MHONDORO ZI -19.317 30.6 1260.0 19870314 20170923 678950 99999 MUKANDI ZI -18.717 32.85 1270.0 19841001 20170923 678970 99999 CHISENGU ZI -19.883 32.883 1480.0 19730315 20170923 678990 99999 WEDZA ZI -18.617 31.566999999999997 1380.0 19730102 20170923 679510 99999 PLUMTREE ZI -20.483 27.8 1390.0 19620701 20170923 679610 99999 KEZI ZI -20.916999999999998 28.45 1020.0 19730102 20170923 679630 99999 MATOPOS ZI -20.383 28.5 1350.0 19870401 20170923 679640 99999 BULAWAYO (GOETZ OBSY.) ZI -20.15 28.616999999999997 1344.0 19620701 20170923 679650 99999 J M NKOMO INTL ZI FVBU -20.017 28.618000000000002 1328.6 19490101 20170923 679670 99999 TULI ZI -21.383000000000003 28.983 770.0 19870314 20170504 679690 99999 WEST NICHOLSON ZI -21.05 29.366999999999997 861.0 19620701 20170923 679710 99999 ZVISHAVANE ZI -20.317 30.066999999999997 980.0 19620701 20170923 679740 99999 MAKOHOLI ZI -19.833 30.783 -999.9 19910719 20050831 679750 99999 MASVINGO INTL ZI FVMV -20.055 30.859 1095.8 19620701 20170923 679760 99999 RUPIKE ZI -20.55 31.083000000000002 700.0 20010916 20170923 679770 99999 BUFFALO RANGE ZI FVCZ -21.008000000000003 31.579 433.1 19651201 20170923 679790 99999 ZAKA ZI -20.333 31.467 770.0 19870307 20170923 679830 99999 CHIPINGE ZI FVCH -20.2 32.617 1132.0 19490103 20170923 679890 99999 RUPISI ZI -20.417 32.317 442.0 19620701 19680630 679900 99999 BOGUS ZIMBABWEAN ZI 19851116 20050825 679910 99999 BEITBRIDGE ZI FVBB -22.217 30.0 457.0 19620701 20170923 679950 99999 BOGUS ZIMBABWEAN ZI 19870314 20050807 680010 99999 MPACHA AIRPORT WA -17.633 24.183000000000003 985.0 20071229 20120402 680015 99999 MPACHA (CIV/MIL) WA FAMP -17.633 24.183000000000003 985.0 19880106 19900515 680020 99999 EROS WA FYWE -22.612 17.08 1699.3 19730620 20170923 680021 99999 OPUWA WA FYOP -18.067 13.85 1149.0 20120302 20150808 680022 99999 HENTIES BAY WA FYHN -22.116999999999997 14.283 3.0 20090311 20150808 680023 99999 KHORIXAS WA FYKX -20.367 14.967 1026.0 20090311 20150808 680025 99999 KATIMA MULILO WA -17.633 24.166999999999998 958.0 20090213 20170923 680026 99999 ORANJEMUND WA FYOG -28.585 16.447 4.3 20091104 20151129 680027 99999 AUS WA FYAS -26.666999999999998 16.292 459.9 20091104 20150808 680029 99999 TSUMKWE WA FYTK -19.583 20.533 351.1 20091104 20151214 680031 99999 TERRACE BAY WA FYTE -19.983 13.0 5.0 20091104 20120718 680032 99999 OTJINENE WA FYTN -21.133000000000003 18.767 442.9 20091104 20150808 680035 99999 ARANOS WA FYAN -24.166999999999998 19.167 1189.0 20080721 20150808 680040 99999 OTJIWARONGO WA FYOW -20.43 16.67 1475.0 19730102 20170919 680045 99999 EENHANA WA FYEN -17.483 16.322 1115.6 20080722 20150808 680055 99999 TSUMEB WA -19.267 17.733 1327.0 20080721 20151210 680060 99999 ONDANGWA WA -17.933 15.982999999999999 1100.0 19730118 20140210 680065 99999 OOTMOED WA FYOT -24.017 19.733 1200.0 20090701 20150808 680066 99999 NOORDOEWER WA FYND -28.75 17.617 150.0 20100706 20150808 680067 99999 MALTAHOHE WA FYMH -24.767 16.983 1365.5 20120302 20150808 680068 99999 OSHAKATI WA FYOS -17.8 15.7 1097.3 20120302 20150808 680069 99999 BAGANI WA FYBG -18.117 21.616999999999997 1011.0 20120302 20150808 680071 99999 OKAHAO WA FYOH -17.884 15.067 1097.3 20120302 20150808 680072 99999 AROAB WA FYAB -26.783 19.633 987.0 20120302 20150808 680075 99999 OKAKARARA WA FYOK -20.603 17.468 1350.0 20100422 20120718 680100 99999 OKAUKUEJO WA FYOO -19.183 15.917 1100.0 19740603 20170923 680120 99999 TSUMEB / PRIVATE WA -19.267 17.733 1327.0 19490105 20120718 680130 99999 ONDANGWA WA -17.883 15.95 1096.0 20040831 20170923 680140 99999 GROOTFONTEIN WA FYGF -19.602 18.123 1413.1 19730101 20170923 680150 99999 OTJIWARONGO WA -20.433 16.667 1475.0 20040921 20111210 680151 99999 KARASBURG WA FYKB -28.0 18.75 1017.0 20080811 20150808 680152 99999 OKONGO WA FYKG -17.567 17.217 1152.0 20080811 20150808 680153 99999 SESFONTEIN WA FYSF -19.133 13.6 564.0 20101115 20150808 680160 99999 MOWE BAY WA -19.333 12.717 0.0 19730101 20090807 680180 99999 RUNDU WA FYRU -17.956 19.719 1105.5 19730102 20170923 680235 99999 BOGUS BOTSWANA BC FBMP 19880111 19910305 680240 99999 GHANZI BC FBGZ -21.7 21.65 1100.0 19590101 20170922 680250 99999 PANDAMATENGA BC FBPA -18.27 25.633000000000003 1064.0 20040831 20101103 680260 99999 SHAKAWE BC FBSW -18.367 21.85 1000.0 19600101 20170923 680281 99999 SAVUTI BC FBSV 0.0 0.0 -999.0 20060304 20060304 680290 99999 KASANE BC FBKE -17.833 25.162 1002.5 19820801 20170923 680300 99999 PANDAMATENGA BC -18.533 25.633000000000003 1071.0 19980301 20170923 680310 99999 MOREMI BC -19.333 23.416999999999998 964.0 19981224 20151019 680320 99999 MAUN BC FBMN -19.973 23.430999999999997 942.7 19490102 20170923 680340 99999 GWETA BC -20.25 25.083000000000002 927.0 20020603 20040910 680380 99999 SUA PAN BC FBSN -20.553 26.116 909.8 19910801 20170923 680400 99999 LETLHAKANE BC FBLT -21.416999999999998 25.6 985.0 19921101 20170923 680540 99999 FRANCISTOWN BC FBFT -21.16 27.475 1000.7 19590101 20170923 680560 99999 SELIBE-PHIKWE BC -22.05 27.816999999999997 939.0 20010811 20060605 680700 99999 SELEBI-PHIKWE BC -22.05 27.816999999999997 892.0 20010916 20170923 680980 99999 WALVIS BAY AIRPORT WA FYWB -22.983 14.65 88.0 19900214 20170923 681000 99999 SWAKOPMUND WA FYSM -22.658 14.567 15.9 19490101 20120711 681020 99999 OUTJO WA -20.114 16.154 1250.0 19600101 20160804 681040 99999 WALVIS BAY WA FYWB -22.98 14.645 91.1 19650502 20160225 681041 99999 MARIENTAL WA FYML -24.605 17.925 1112.5 20050217 20170923 681045 99999 ROOIKOP (SAAF/CIV) WA FYRK -22.983 14.65 88.0 19870720 20120328 681060 99999 GOBABEB WA FYGO -23.57 15.05 400.0 19730101 20140423 681080 99999 UIS WA -21.233 14.85 800.0 19730101 20160804 681090 99999 BITTERWASSER WA -23.866999999999997 18.0 1274.0 20080423 20170504 681100 99999 WINDHOEK/EROS(SAAF) WA FYWW -22.566999999999997 17.1 1725.0 19570701 20170923 681105 99999 WINDHOEK (MET) WA FAWW -23.5 17.0 1700.0 19880105 19910627 681110 99999 OUTJO WA FYOJ -20.07 16.13 1324.0 20041123 20150808 681115 99999 REHOBETH WA FYRH -23.25 17.067 1385.0 20090819 20150808 681120 99999 HOSEA KUTAKO INTL WA FYWH -22.48 17.471 1719.1 19730101 20170923 681140 99999 OMARURU WA FYOM -21.416999999999998 15.933 1217.0 20010916 20160804 681160 99999 GOBABIS WA FYGB -22.5 18.967 1387.0 19600101 20170923 681480 99999 MAHALAPYE BC -23.083000000000002 26.8 1006.0 19750515 20170923 681500 99999 DIBETE BC 0.0 0.0 -999.0 20010707 20051008 681510 99999 LEPHEPE BC -23.366999999999997 25.85 1020.0 20120215 20170923 681550 99999 ELLISRAS SF FAER -23.683000000000003 27.7 839.0 19970603 20170923 681560 99999 ELLISRAS SF -23.733 27.683000000000003 851.0 19880106 20051008 681590 99999 CUMBERLAND SF -23.967 26.916999999999998 857.0 19980301 20041214 681620 99999 MARNITZ SF -23.15 28.217 947.0 19560201 20050807 681630 99999 MARKEN SF -23.6 28.383000000000003 996.0 20041113 20170923 681710 99999 ALLDAYS SF -22.683000000000003 29.1 839.0 19980301 20050516 681715 99999 KING SHAKA INTL AIRPORT SF -29.63 31.13 127.0 20100430 20100825 681740 99999 POLOKWANE SF FAPB -23.866999999999997 29.45 1224.0 19490101 20140121 681760 99999 MARA SF -23.15 29.566999999999997 897.0 19590101 20170923 681780 99999 LOUIS TRICHARDT SF -23.15 29.7 945.0 19970605 20051022 681800 99999 MESSINA-MACUVILLE SF -22.267 29.9 525.0 19651101 20091128 681810 99999 TSHIPISE SF -22.616999999999997 30.166999999999998 527.0 19980301 20160123 681820 99999 LEVUBU SF -23.083000000000002 30.283 706.0 19730101 20170923 681830 99999 THOHOYANDOU SF FATH -23.066999999999997 30.383000000000003 618.0 19970601 20170923 681840 99999 LYDENBURG SF -25.1 30.467 1425.0 19620801 20170923 681844 99999 MAIEPSKOP(SAAFB) SF FAMR -24.55 30.866999999999997 0.0 19880106 19880913 681850 99999 LYDENBURG SF -25.1 30.467 1434.0 19980301 20150426 681860 99999 TZANEEN SF -23.833000000000002 30.15 716.0 20020617 20170923 681863 99999 TZANEEN SF FATZ -23.824 30.329 583.4 20020423 20150511 681880 99999 TZANEEN-GRENSHOEK SF -23.767 30.066999999999997 896.0 19980301 20170923 681900 99999 PHALABORWA SF FAPH -23.936999999999998 31.155 436.5 19580101 20140526 681903 99999 GRAVELOTTE SF FAGV -23.9 30.683000000000003 0.0 19881208 19900729 681910 99999 PHALABORWA SF -23.933000000000003 31.15 407.0 19970603 20140526 681920 99999 THOHOYANDOU SF -22.967 30.5 600.0 19941004 20050916 681940 99999 PAFURI SF -22.45 31.316999999999997 202.0 19980301 20011109 681960 99999 PUNDA MARIA SF -22.683000000000003 31.017 457.0 20080624 20170923 682120 99999 MARIENTAL WA -24.5 17.867 1100.0 19600101 20170923 682200 99999 KHUTSE BC -23.666999999999998 24.166999999999998 1100.0 20040601 20050908 682260 99999 TSHANE BC FBTE -24.017 21.883000000000003 1100.0 19590101 20170923 682300 99999 MABUASEHUBE BC -25.033 22.133000000000003 -999.0 20010918 20051029 682320 99999 KHUTSE BC -23.8 24.433000000000003 -999.0 20020113 20040609 682340 99999 JWANENG BC FBJW -24.601999999999997 24.691 1188.7 19880801 20170923 682390 99999 POMFRET SF -25.833000000000002 23.533 1181.0 19980301 20050131 682400 99999 SIR SERETSE KHAMA INTL BC FBSK -24.555 25.918000000000003 1005.5 19850102 20170923 682410 99999 MADIKWE GAME RESERVE SF -24.683000000000003 26.2 1027.0 20081025 20170923 682413 99999 LOKALENG SF -25.8 25.55 1277.0 19870720 19910627 682420 99999 MAFIKENG SF FAMM -25.798000000000002 25.548000000000002 1274.4 19580601 20170923 682425 99999 MAFIKENG SF FAMK -25.883000000000003 25.65 1400.0 19880106 19901024 682430 99999 DOORNLAAGTE SF -24.6 26.517 946.0 19980301 20050226 682440 99999 GABORONE BC -24.666999999999998 25.916999999999998 1000.0 19580101 20160904 682443 99999 BOGUS BOTSWANA BC FBVZ 19890223 19900830 682500 99999 PILANSBERG SF -25.333000000000002 27.166999999999998 1043.0 19881001 20040721 682513 99999 BREDASDORP SF -34.533 20.033 19880202 19891002 682520 99999 RUSTENBURG SF -25.717 27.3 1157.0 19580101 20050501 682530 99999 THABAZIMBI SF FATI -24.583000000000002 27.416999999999998 977.0 19980301 20170923 682550 99999 RUSTENBURG SF -25.65 27.233 1151.0 19980301 20170923 682570 99999 PILANESBERG SF -25.25 27.217 1086.0 20040612 20170923 682580 99999 GOEDEHOOP SF -24.233 28.033 1200.0 19730101 20170923 682610 99999 BOLEPI HOUSE SF -25.816999999999997 28.25 1517.0 20131210 20170923 682620 99999 PRETORIA(MET) SF FAPR -25.733 28.183000000000003 1322.0 19490101 20170923 682623 99999 WATERKLOOF (SAAF) SF -25.833000000000002 28.217 1506.0 19870720 19901128 682630 99999 PRETORIA/IRENE SF FAIR -25.916999999999998 28.217 1500.0 19910108 20170923 682635 99999 LANSERIA SF FALA -25.939 27.926 1376.8 19900323 20170923 682640 99999 WATERKLOOF AFB SF FAWK -25.83 28.223000000000003 1505.7 19910108 20170923 682643 99999 WONDERBOOM SF FAWB -25.654 28.224 1248.2 20060220 20170923 682645 99999 MAKHADO AFB SF FALM -23.16 29.697 935.4 20080610 20170921 682650 99999 GRAND CENTRAL SF -25.983 28.133000000000003 1621.0 20131210 20150612 682670 99999 ERMELO SF -26.5 29.983 1766.0 19980301 20170923 682671 99999 GRAND CENTRAL SF FAGC -25.986 28.14 1623.1 20040518 20170301 682672 99999 JOHANNESBURG B/G SF FAJB -26.15 28.0 1626.0 20040510 20170923 682673 99999 RUSTENBURG SF FARG -25.644000000000002 27.271 1127.8 20040510 20130712 682674 99999 SPRINGS SF FASI -26.248 28.398000000000003 1627.6 20040510 20170923 682675 99999 MAHALAPYE BC FBMP -23.083000000000002 26.8 991.0 20040518 20080307 682676 99999 SELEBI PHIKWE BC FBSP -22.058000000000003 27.829 891.5 20040518 20170923 682677 99999 PIETERSBURG SF FAPB -23.866999999999997 29.433000000000003 1222.0 20050217 20170923 682678 99999 GREYTOWN SF FAGY -29.122 30.587 1076.2 20150511 20150511 682680 99999 WARMBAD TOWOOMBA SF -24.9 28.333000000000002 1132.0 19630601 20170923 682690 99999 PRETORIA-UNISA SF -25.767 28.2 1439.0 20030317 20170923 682710 99999 KOPANE SF -24.2 29.0 1097.0 19970603 20170923 682720 99999 OUDESTAD SF -25.183000000000003 29.333000000000002 949.0 19881130 20170923 682730 99999 WITBANK SF -25.833000000000002 29.183000000000003 1550.0 19980301 20170923 682760 99999 POTGIETERSRUS SF -24.183000000000003 29.017 1118.0 19730101 20050820 682770 99999 MIDDELBURG DAM SF -25.767 29.55 1527.0 19980301 20051009 682850 99999 BELFAST SF -25.691999999999997 30.034000000000002 1879.0 20131210 20170923 682860 99999 GRASKOP-SKOOL SF -24.933000000000003 30.833000000000002 1441.0 20020521 20020521 682870 99999 GRASKOP SF -24.933000000000003 30.85 1436.0 19980301 20170923 682880 99999 NELSPRUIT SF -25.433000000000003 30.983 674.0 19730101 20060219 682883 99999 NELSPRUIT & SF FANS -25.45 30.967 660.0 19871204 19880218 682884 99999 HOEDSPRUIT (SAAF) SF -24.366999999999997 31.066999999999997 533.0 19870720 19910627 682890 99999 NELSPRUIT SF FANS -25.433000000000003 30.983 883.0 19980301 20170923 682900 99999 HOEDSPRUIT AFB SF FAHS -24.369 31.049 531.3 19920220 20170923 682903 99999 GARIEP DAM SF FAHV -30.561999999999998 25.528000000000002 1272.8 20150511 20150511 682904 99999 KRUGER MPUMALANGA INTL SF FAKN -25.383000000000003 31.105999999999998 862.3 20060716 20170923 682905 99999 PILANESBERG INTL SF FAPN -25.334 27.173000000000002 1040.0 20050413 20170923 682910 99999 HOEDSPRUIT SF -24.35 31.05 510.0 19980301 20170923 682920 99999 FLEUR DE LYS SF -24.533 31.033 620.0 19741008 20040517 682950 99999 SKUKUZA AWS SF -24.983 31.583000000000002 150.0 20160422 20160422 682960 99999 SKUKUZA SF -24.983 31.6 271.0 19591101 20170923 682965 99999 BARBERTON SF FABN -25.733 31.0 0.0 19881225 19910117 682970 99999 KOMATIDRAAI SF -25.517 31.9 183.0 19980301 20170923 682974 99999 WITBANK SF FAWI -25.831999999999997 29.191999999999997 1547.8 19990116 20150511 682980 99999 LOMAHASHA WZ FDLM -25.983 31.983 570.0 20081002 20150723 682990 99999 PIGGS PEAK WZ FDPP -25.967 31.25 1099.0 20070228 20170923 683000 99999 LUDERITZ (DIAZ POINT) WA -26.683000000000003 15.25 139.0 19490103 20170923 683005 99999 LUDERITZ WA FYLZ -26.686999999999998 15.243 139.3 20000412 20170923 683007 99999 VEREENIGING SF FAVV -26.566 27.961 1477.1 19990114 20170923 683120 99999 KEETMANSHOOP WA FYKT -26.54 18.111 1068.6 19490104 20170923 683200 99999 WERDA BC FBWD -25.267 23.25 1046.0 20030330 20170923 683210 99999 SWARTKOPS AFB SF FASK -25.816999999999997 29.166999999999998 1457.0 20040611 20170117 683220 99999 TWEE RIVIEREN SF -26.467 20.616999999999997 879.0 19730101 20170923 683250 99999 GOOD HOPE BC -25.45 25.416999999999998 1275.0 20040512 20170923 683280 99999 TSABONG BC FBTS -26.05 22.45 1000.0 19580101 20170923 683290 99999 VAN ZYLSRUS SF -26.883000000000003 22.05 928.0 19980301 20170923 683300 99999 VANZYLSRUS SF -26.883000000000003 22.05 932.0 19870510 20040813 683304 99999 LOUIS TRICHARDT AFB SF -23.15 29.683000000000003 959.0 19900328 20081024 683310 99999 KATHU SF -27.666999999999998 23.0 1186.0 19980301 20170923 683320 99999 KURUMAN SF -27.467 23.433000000000003 1318.0 19570801 20041206 683330 99999 KURUMAN SF -27.433000000000003 23.45 1315.0 20060609 20170923 683350 99999 TAUNG SF -27.55 24.767 1100.0 19980301 20170923 683354 99999 SISHEN SF FASS -27.65 23.0 1172.9 19990115 20150511 683380 99999 VRYBURG SF FAVB -26.982 24.729 1194.8 19560101 20170923 683410 99999 LICHTENBURG SF FALI -26.176 26.185 1485.9 19980301 20170923 683420 99999 OTTOSDAL SF -26.816999999999997 26.017 1500.0 19730102 20170923 683430 99999 BLOEMHOF SF -27.65 25.616999999999997 1128.0 19980301 20170923 683440 99999 PLESSISDRAAI SF -27.983 26.133000000000003 1254.0 19570801 20020828 683450 99999 WELKOM SF -28.0 26.666999999999998 1342.0 19980301 20170923 683460 99999 WELKOM SF FAWM -27.998 26.67 1340.8 19730101 20030730 683463 99999 RAND SF FAGM -26.243000000000002 28.151 1671.2 19870721 20170923 683465 99999 ERMELO SF FAEO -26.496 29.98 1737.4 19881223 20170923 683470 99999 P C PELSER SF FAKD -26.871 26.718000000000004 1354.5 19980408 20170923 683490 99999 VENTERSDORP SF FAVE -26.32 26.82 1496.0 19980303 20170923 683500 99999 POTCHEFSTROOM SF -26.733 27.066999999999997 1351.0 19561001 20170923 683510 99999 POTCHEFSTROOM SF FAPS -26.671 27.081999999999997 1377.7 19800301 20150511 683520 99999 KROONSTAD SF FAKS -27.660999999999998 27.316 1432.6 19601201 20120127 683530 99999 VEREENIGING SF -26.566999999999997 27.95 1481.0 19980301 20170923 683550 99999 KROONSTAD SF -27.666 27.314 1434.0 19980301 20170923 683610 99999 JOHANNESBURG BOT. GARDENS SF -26.15 28.0 1626.0 20040910 20170923 683620 99999 FRANKFORT SF FAFF -27.267 28.5 1503.0 19490101 20170923 683630 99999 SPRINGS SF -26.2 28.45 1588.0 20041118 20170923 683670 99999 HENDRINA/PRIVATE SF -26.017 29.6 1576.0 20040610 20041209 683680 99999 JOHANNESBURG INTL SF FAJS -26.139 28.246 1694.1 19560101 20170923 683685 99999 MARGATE SF -30.85 30.333000000000002 155.0 19970701 20030730 683690 99999 GERMISTON SF -26.25 28.15 1668.0 20050925 20050925 683700 99999 BETHAL SF -26.467 29.45 838.0 19730101 20160229 683710 99999 HEIDELBERG SF -26.517 28.366999999999997 1560.0 20040311 20050824 683720 99999 STANDERTON SF -26.933000000000003 29.233 1564.0 19591001 20081217 683750 99999 VREDE SF -27.433000000000003 29.166999999999998 1671.0 20040727 20170923 683770 99999 NEWCASTLE SF -27.767 29.983 1238.0 19980301 20170329 683780 99999 NEWCASTLE SF -27.733 29.916999999999998 1235.0 19560301 20050505 683783 99999 NEWCASTLE SF FANC -27.771 29.976999999999997 1241.8 19871218 20071127 683784 99999 VRYHEID SF FAVY -27.783 30.8 1158.0 19970902 20030718 683800 99999 CAROLINA SF FACL -26.066999999999997 30.116999999999997 1700.0 19580501 20170923 683801 99999 COOKHOUSE SF FACH -32.766999999999996 25.75 900.0 20050507 20170609 683820 99999 JERICHO WZ FDJR -27.162 31.439 701.0 20110701 20170817 683830 99999 NDZEVANE WZ FDND -26.956999999999997 31.955 207.0 20120101 20170923 683850 99999 PIET RETIEF SF -27.017 30.8 1235.0 19980301 20061219 683860 99999 NYONYANE WZ FDNY -26.115 31.45 320.0 20120101 20170923 683870 99999 VRYHEID SF -27.783 30.8 1163.0 19980301 20170923 683880 99999 PIET RETIEF SF -27.033 30.8 1238.0 19560701 20060317 683900 99999 MAYIWANNE WZ FDMY -25.883000000000003 31.5 480.0 20070301 20170923 683910 99999 MBABANE WZ -26.333000000000002 31.133000000000003 1193.0 20070228 20160429 683920 99999 NHLANGANO WZ -27.05 31.1 1102.0 20070330 20170923 683921 99999 NDZEVANE WZ -26.956999999999997 31.955 207.0 20110901 20120324 683922 99999 NYONYANE WZ -26.115 31.45 320.0 20110901 20120324 683923 99999 MOTI WZ FDOT -26.704 31.426 341.0 20110901 20150529 683924 99999 MUSI WZ FDUS -26.721999999999998 30.912 956.0 20110901 20170923 683925 99999 VUVULANE WZ FDVV -26.081999999999997 31.886 276.0 20110901 20130307 683930 99999 LAVUMISA WZ FDLV -27.267 31.816999999999997 315.0 20070228 20160528 683935 99999 NSOKO AIRFIELD WZ FDNS -27.017 31.933000000000003 671.0 20100420 20100420 683950 99999 HLATHIKHULU WZ FDHL -26.967 31.316999999999997 1190.0 20070228 20170704 683960 99999 MATSAPHA WZ FDMS -26.529 31.308000000000003 632.5 19730101 20170923 683970 99999 MBAZWANA AIRFIELD SF -27.467 32.583 61.0 20091027 20170923 683980 99999 SITEKI WZ FDST -26.433000000000003 31.95 667.0 20030214 20170923 683990 99999 BIG BEND WZ FDBB -26.85 31.916999999999998 94.0 20070228 20170923 684000 99999 MAKATINI SF -27.383000000000003 32.183 63.0 19941005 20170923 684030 99999 ALEXANDER BAY SF FAAB -28.575 16.533 29.9 19970701 20170923 684060 99999 ALEXANDER BAY SF -28.566999999999997 16.533 21.0 19560101 20050727 684080 99999 PORT NOLLOTH SF -29.233 16.867 10.0 19490101 20170923 684110 99999 VIOOLSDRIF SF -28.769000000000002 17.623 174.0 19980301 20170923 684150 99999 DURNACOL SF -28.116999999999997 29.967 1500.0 20041112 20041118 684160 99999 POFADDER SF -29.133000000000003 19.383 990.0 19550103 20170923 684164 99999 LIME ACRES FINSCH MINE SF FALC -28.36 23.439 1493.5 20161213 20161213 684240 99999 UPINGTON SF FAUP -28.399 21.26 850.7 19560101 20170923 684250 99999 AUGRABIES FALLS SF -28.6 20.35 635.0 20131210 20170920 684290 99999 POSTMASBURG SF -28.333000000000002 23.066999999999997 1321.0 19980301 20170923 684300 99999 POSTMASBURG SF -28.316999999999997 23.066999999999997 1323.0 20040523 20050903 684380 99999 KIMBERLEY SF FAKM -28.803 24.765 1204.0 19490101 20170923 684381 99999 KOMATIPOORT SF FAKP -25.433000000000003 31.933000000000003 152.0 20081021 20081021 684420 99999 BLOEMFONTEIN INTL SF FABL -29.093000000000004 26.302 1358.8 19490101 20170923 684430 99999 BLOEMFONTEIN CITY SF -29.116999999999997 26.183000000000003 1406.0 20060608 20170923 684470 99999 GLEN COLLEGE AWS SF -28.95 26.333000000000002 1303.0 20131210 20170923 684490 99999 FICKSBURG SF -28.816999999999997 27.9 1614.0 19980301 20170923 684520 99999 MOKHOTLONG LT -29.267 29.133000000000003 2200.0 19840501 20051019 684533 99999 MOSHOESHOE I INTL LT FXMM -29.462 27.553 1630.1 19870720 20170921 684540 99999 MEJAMETALANA LT FXMU -29.304000000000002 27.503 1556.0 19740731 20170921 684560 99999 QACHA'S NEK LT -30.066999999999997 28.7 1970.0 19840601 20071127 684610 99999 BETHLEHEM SF FABM -28.248 28.336 1695.0 19800301 20170923 684620 99999 BETHLEHEM SF -28.166999999999998 28.767 1600.0 19570801 20050213 684710 99999 VAN REENEN SF -28.366999999999997 29.383000000000003 1680.0 19980301 20170923 684740 99999 ROYAL NATAL NAT. PARK SF -28.683000000000003 28.95 1392.0 19980301 20170923 684750 99999 ESHOWE SF FAES -28.883000000000003 31.45 487.0 20040426 20051227 684760 99999 LADYSMITH SF FALY -28.581999999999997 29.75 1081.4 19840103 20150511 684780 99999 ESTCOURT SF -29.0 29.883000000000003 1144.0 19570101 20170923 684790 99999 LADYSMITH SF -28.566999999999997 29.767 1069.0 19970715 20170923 684810 99999 PONGOLA SF -27.416999999999998 31.6 312.0 19970701 20170923 684850 99999 MOOI RIVER SF -29.217 30.0 1393.0 20131210 20170923 684870 99999 GREYTOWN SF -29.083000000000002 30.6 1029.0 19970715 20170923 684880 99999 BABANANGO SF -28.366999999999997 31.217 768.0 19950110 20170923 684910 99999 CHARTERS CREEK SF -28.2 32.417 9.0 19980301 20170923 684930 99999 PRINCE MANGOSUTHU BUTHELEZI SF FAUL -28.320999999999998 31.416999999999998 524.3 19970715 20170923 684940 99999 MANDINI SF -29.15 31.4 112.0 19980301 20170923 684950 99999 RICHARDS BAY AIRPORT SF FARB -28.733 32.083 35.0 19970704 20170915 684960 99999 CAPE ST. LUCIA SF -28.5 32.4 107.0 19490101 20150611 684963 99999 PIETERMARITZBURG SF FAPM -29.649 30.399 738.5 19970701 20150511 684970 99999 MTUNZINI SF -28.95 31.7 38.0 19980301 20170923 684980 99999 RICHARD'S BAY SF -28.8 32.1 0.0 19941004 20051027 685120 99999 SPRINGBOK SF FASB -29.689 17.94 819.9 19550914 20170923 685121 99999 STANDERTON SF FASR -26.93 29.22 1581.0 20040608 20080822 685130 99999 KOINGNAAS SF -30.2 17.283 99.0 19980301 20170923 685140 99999 HENKRIES SF -28.967 18.1 415.0 20010916 20130702 685230 99999 BRANDVLEI SF -30.467 20.483 923.0 19970701 20170923 685240 99999 VANWYKSVLEI SF -30.35 21.816999999999997 962.0 19551001 20170923 685270 99999 PRIESKA SF -29.666999999999998 22.733 947.0 19980301 20170923 685280 99999 PRIESKA SF -29.666999999999998 22.75 946.0 19570401 20050821 685300 99999 DOUGLAS SF -29.066999999999997 23.75 995.0 19740429 20050801 685360 99999 DE AAR SF FADA -30.65 24.017 1247.0 19570601 20050829 685380 99999 DEAAR(UA) SF FADY -30.666999999999998 24.017 1287.0 19930701 20170923 685410 99999 FAURESMITH SF -29.754 25.323 1387.0 20131210 20170923 685420 99999 FAURESMITH SF -29.767 25.316999999999997 1372.0 19560901 19990903 685430 99999 GARIEP DAM SF -30.533 25.533 1272.0 20131210 20170923 685450 99999 VENTERSTAD SF -30.783 25.8 1283.0 19980301 20030611 685460 99999 ALIWAL NORTH SF FAAN -30.717 26.717 1351.0 19550101 20170923 685490 99999 WEPENER SF -29.9 26.866999999999997 1420.0 20131210 20170923 685500 99999 WEPENER SF -29.733 27.033 1438.0 19550601 20051016 685580 99999 BARKLY EAST SF -30.933000000000003 27.6 1819.0 19980301 20170923 685630 99999 BURGERSDORP SF -30.967 26.316999999999997 1437.0 20050414 20050414 685640 99999 SHEEPRUN SF -30.983 28.383000000000003 1328.0 19621015 20050529 685700 99999 MATATIELE SF -30.35 28.8 1490.0 19950101 20120206 685720 99999 SHALEBURN SF -29.8 29.35 1614.0 19621004 20170923 685740 99999 KOKSTAD SF -30.533 29.483 1300.0 19730101 20050920 685750 99999 IXOPO SF -30.15 30.066999999999997 937.0 19980302 20170923 685770 99999 KOKSTAD SF -30.5 29.4 1443.0 20131210 20170923 685790 99999 PADDOCK SF -30.75 30.267 515.0 20040613 20170923 685800 99999 CEDARA SF -29.533 30.283 1071.0 19590801 20170923 685810 99999 PIETERMARITZBURG SF -29.633000000000003 30.4 673.0 19970715 20170923 685820 99999 ORIBI AIRPORT SF -29.65 30.4 739.0 20131210 20170923 685830 99999 MOUNT EDGECOMBE SF -29.7 31.05 94.0 19980301 20170923 685840 99999 PORT SHEPSTONE SF -30.733 30.45 17.0 19730101 20051218 685845 99999 DURBAN/VIRGINIA SF -29.767 31.066999999999997 6.0 19881209 19900914 685850 99999 PENNINGTON SOUTH SF -30.4 30.666999999999998 98.0 20040323 20170923 685870 99999 PORT EDWARD SF -31.066999999999997 30.233 12.0 19980301 20170923 685880 99999 DURBAN INTL SF FADN -29.97 30.951 10.1 19560201 20170923 685890 99999 GIANTS CASTLE SF -29.267 29.517 1763.0 19970715 20170923 685900 99999 ADDINGTON SF -29.85 31.05 13.0 19490101 19531231 685910 99999 MARGATE SF FAMG -30.85 30.333000000000002 154.0 19970701 20170923 685920 99999 KING SHAKA INTL AIRPORT SF FALE -29.616999999999997 31.133000000000003 127.0 20100601 20170923 685930 99999 VIRGINIA SF FAVG -29.771 31.058000000000003 6.1 19980408 20170923 686130 99999 LAMBERTS BAY SF -32.033 18.333 94.0 19980301 20170923 686140 99999 VREDENDAL SF FAVR -31.641 18.545 100.6 19570901 20170923 686160 99999 VANRHYSDORP SF -31.6 18.75 147.0 19861001 20050729 686180 99999 CALVINIA SF FACV -31.5 19.726 990.6 19560101 20170923 686190 99999 NIEUWOUDTVILLE SF -31.35 19.083 731.0 20131210 20170923 686240 99999 FRASERBURG SF FAFR -31.916999999999998 21.517 1268.0 19730101 20170923 686300 99999 VICTORIA / WEST SF -31.4 23.116999999999997 1256.0 20040326 20060126 686330 99999 NOUPOORT SF -31.183000000000003 24.95 1496.0 19980301 20170923 686380 99999 MIDDELBURG SF FAMB -25.685 29.44 1489.3 19570101 20030407 686460 99999 WILLOW PARK SF -31.5 26.95 1485.0 19730219 19730219 686470 99999 QUEENSTOWN SF -31.916999999999998 26.883000000000003 1104.0 19970701 20170923 686480 99999 QUEENSTOWN SF FAQT -31.92 26.881999999999998 1108.6 19570701 20050821 686490 99999 JAMESTOWN SF -31.116999999999997 26.8 1603.0 19970701 20170923 686510 99999 ELLIOT SF -31.333000000000002 27.85 1463.0 19970701 20170923 686680 99999 MTHATHA SF FAUT -31.548000000000002 28.674 731.5 19730101 20170923 686740 99999 PORT ST JOHNS SF FAPJ -31.605999999999998 29.52 374.0 19490101 20170916 686770 99999 COFFEE BAY SF -31.95 29.133000000000003 161.0 20131210 20170923 687120 99999 CAPE COLUMBINE SF -32.833 17.85 67.0 19490102 20170923 687130 99999 PAARL SF -33.717 18.967 104.0 20040608 20170923 687140 99999 LANGEBAANWEG SF FALW -32.969 18.16 32.9 19730801 20170923 687150 99999 MALMESBURY SF -33.467 18.717 102.0 19970701 20170923 687170 99999 PORTERVILLE SF -33.013000000000005 18.977 122.0 19980301 20170923 687180 99999 ROBERTSON SF -33.8 19.9 204.0 19730101 20170923 687190 99999 EXCELSIOR SF -32.95 19.433 945.0 20040423 20170923 687220 99999 SUTHERLAND SF -32.383 20.666999999999998 1459.0 19590917 20170923 687230 99999 LAINGSBURG SF -33.2 20.866999999999997 656.0 19980301 20170923 687270 99999 BEAUFORT WEST SF -32.35 22.55 899.0 19980301 20170923 687280 99999 BEAUFORT WEST(MET) SF FABY -32.35 22.583000000000002 842.0 19490101 20150511 687285 99999 BEAUFORT WEST (MET) SF FABY -32.35 22.583000000000002 857.0 19880106 19910627 687360 99999 GRAAFF REINET SF FAGR -32.194 24.541 793.7 19730102 20031201 687370 99999 GRAAFF-REINET SF -32.2 24.55 790.0 19980301 20170923 687380 99999 JANSENVILLE SF -32.933 24.666999999999998 424.0 19730102 20051231 687420 99999 SOMERSET EAST SF -32.733000000000004 25.583000000000002 720.0 19601113 20051023 687440 99999 CRADOCK SF -32.167 25.616999999999997 926.0 19941004 20170923 687470 99999 FORT BEAUFORT SF -32.783 26.633000000000003 455.0 19970701 20170923 687520 99999 BHISHO SF FABE -32.897 27.279 594.4 19870514 20170923 687523 99999 BISHO SF -32.9 27.283 594.0 19911002 19960122 687540 99999 DOHNE SF -32.516999999999996 27.467 900.0 19730101 20170923 687680 99999 MBASHE SF -32.233000000000004 28.916999999999998 37.0 19730101 19750203 688110 99999 GEELBEK SF -33.2 18.117 7.0 20040501 20170923 688130 99999 ROBBEN ISLAND SF -33.8 18.367 3.0 20041005 20170923 688140 99999 DASSEN ISLAND SF -33.433 18.083 8.0 19980301 20120919 688150 99999 LANGEBAAN SF -33.083 18.017 6.0 19970701 20170923 688160 99999 CAPE TOWN INTL SF FACT -33.965 18.602 46.0 19490101 20170923 688170 99999 CAPE TOWN - PORTNET SF -33.9 18.433 2.0 19980301 20170923 688180 99999 TOUWS RIVER SF -33.35 20.05 782.0 19490101 20060104 688183 99999 PRINCE ALBERT ROAD SF FAPC -33.217 22.033 0.0 19890212 19890222 688190 99999 MOLTENO RESERVIOR SF -33.933 18.417 97.0 20131210 20170923 688210 99999 WORCESTER SF -33.617 19.467 270.0 19980301 20170923 688230 99999 PRINS ALBERT SF -33.183 22.017 544.0 19970703 20170923 688250 99999 LADISMITH SF -33.5 21.283 538.0 20131210 20170923 688260 99999 OUDTSHOORN SF FAOH -33.607 22.189 324.0 19730101 20050929 688270 99999 YSTERPLANT(SAAFB) SF -33.9 18.5 16.0 20040224 20170923 688280 99999 GEORGE SF FAGG -34.006 22.379 197.5 19490101 20170923 688320 99999 WILLOWMORE SF -33.283 23.5 842.0 19590912 20170923 688330 99999 JOUBERTINA SF -33.833 23.866999999999997 546.0 20040430 20170923 688350 99999 PATENSIE SF -33.766999999999996 24.816999999999997 85.0 19980301 20170923 688370 99999 NGQURA (COEGA) SF -33.8 25.666999999999998 46.0 20131210 20170923 688390 99999 UITENHAGE SF -33.7 25.433000000000003 157.0 19970701 20170923 688400 99999 SOMERSET SF -33.05 25.717 506.0 20131210 20170923 688410 99999 ADDO ELEPHANT PARK SF -33.45 25.75 506.0 20131210 20170923 688420 99999 PORT ELIZABETH INTL SF FAPE -33.985 25.616999999999997 68.9 19490101 20170923 688430 99999 PORT ALFRED AIRPORT SF -33.567 26.883000000000003 84.0 20070228 20170923 688450 99999 BIRD ISLAND SF -33.833 26.283 3.0 20131211 20170923 688470 99999 PORT ALFRED SF -33.6 26.883000000000003 37.0 19970701 20051225 688490 99999 GRAHAMSTOWN SF -33.283 26.5 642.0 19980301 20170923 688580 99999 EAST LONDON SF FAEL -33.036 27.826 132.6 19490101 20170923 689020 99999 TRISTAN DA CUNHA SH FATC -37.05 -12.317 23.0 19490101 20170923 689060 99999 GOUGH ISLAND SH FAGE -40.35 -9.883 54.0 19551120 20170923 689110 99999 STRAND SF -34.15 18.85 10.0 20040525 20170923 689120 99999 SLANGKOP SF -34.15 18.317 8.0 19980301 20170923 689140 99999 SIMONSTOWN SF -34.2 18.433 293.0 19490101 19500625 689150 99999 CAPE POINT (AUTO) SF -34.35 18.5 225.0 20041102 20060608 689160 99999 CAPE POINT SF -34.35 18.5 238.0 19730101 20170923 689180 99999 HERMANUS SF -34.433 19.217 14.0 19980301 20170923 689200 99999 CAPE AGULHAS SF -34.833 20.017 14.0 19490101 20170923 689203 99999 BREDASDORP SF FABR -34.533 20.033 50.0 19891024 20090521 689210 99999 STRUISBAAI SF -34.8 20.067 4.0 19980301 20170923 689230 99999 TIGERHOEK SF -34.15 19.9 151.0 20040726 20170923 689250 99999 ELGIN EXP FARM SF -34.139 19.023 311.0 19980301 20170923 689260 99999 RIVERSDALE SF -34.083 21.25 116.0 19730101 20170923 689263 99999 OVERBERG SF FAOB -34.555 20.250999999999998 15.8 19901019 20170923 689270 99999 STILBAAI SF -34.367 21.383000000000003 103.0 20040303 20170923 689280 99999 MOSSEL BAY (LGT-H) SF FAMO -34.183 22.15 59.0 19490101 20170923 689290 99999 HUMANSDORP SF -34.016999999999996 24.783 40.0 20040611 20060609 689310 99999 PLETTENBERG BAY SF FAPG -34.09 23.328000000000003 141.7 19980408 20170923 689330 99999 TSITSIKAMMA SF -34.033 23.9 5.0 20040727 20170923 689350 99999 KNYSNA SF -34.05 23.083000000000002 54.0 19980301 20170923 689380 99999 CAPE ST. FRANCIS SF -34.2 24.833000000000002 7.0 19730101 20060809 689390 99999 CAPE ST FRANCIS SF -34.217 24.85 7.0 20040625 20170923 689550 99999 19870519 19870519 689920 99999 BOUVET ISLAND BV -54.433 3.283 42.0 19790107 20070311 689940 99999 MARION ISLAND SF FAME -46.883 37.867 22.0 19490101 20170923 689945 99999 BISHO & SF FABE -32.9 27.283 594.0 19880201 19910627 689990 99999 CT-AWS SF -33.967 18.6 46.0 20041102 20170923 689993 99999 BOGUS SOUTH AFRICAN SF FAVF 19890116 19900518 690014 99999 C STN WHITE SANDS US NM 32.35 -106.367 1224.0 19870101 19910611 690020 93218 JOLON HUNTER LIGGETT MIL RES US CA KHGT 36.0 -121.23299999999999 317.0 19640715 19970401 690020 99999 JOLON HUNTER LIGGETT MIL RES US CA KHGT 36.0 -121.23299999999999 317.0 20030702 20030801 690056 99999 FOB SHINDAND AF 33.383 62.266999999999996 1143.0 20091001 20141103 690070 93217 FRITZSCHE AAF US CA KOAR 36.683 -121.76700000000001 43.0 19600404 19930831 690080 99999 TARIN KOWT AF CA KQA7 32.6 65.87 1380.0 20030616 20121231 690086 99999 AFWA ASSIGNED 0.0 0.0 0.0 20060101 20120101 690090 99999 HURLBURT FLD/EXERCIS US FL 30.433000000000003 -86.71700000000001 3.0 20050516 20100326 690100 99999 KOON-IN RANGE KS RKSN 37.033 126.75 15.0 19891127 20020320 690110 99999 SELFRIDGE ANGB/TRAIN US MI 42.608000000000004 -82.835 177.0 19430614 19920507 690136 99999 20030518 20030521 690138 99999 STANLY CO AIRPORT - TEAM A US NC 35.417 -80.15 185.6 20100912 20101205 690140 93101 EL TORO MCAS US CA KNZJ 33.667 -117.73299999999999 116.7 19890101 19990630 690150 93121 TWENTY NINE PALMS US CA KNXP 34.3 -116.167 625.1 19900102 20170924 690150 99999 TWENTYNINE PALMS US CA KNXP 34.3 -116.167 626.0 19891115 19891229 690160 93114 FOB DWYER AF CA KNTK 33.7 -117.833 16.5 19891115 20001101 690160 99999 FOB DWYER AF CA 31.1 64.083 725.0 20011124 20011124 690170 99999 IND SPRNG RANGE 63 US NV KL63 36.533 -115.56700000000001 972.0 19800514 20110125 690174 99999 INDIAN SPRINGS RANGE US NV L63 36.533 -115.56700000000001 972.0 19780823 19800430 690176 99999 AFWA ASSIGNED 0.0 0.0 0.0 20071228 20131019 690186 99999 SAN JOSE DEL GUAVIA CO KQB7 2.5669999999999997 -72.633 184.0 20050516 20080623 690190 13910 ABILENE DYESS AFB US TX KDYS 32.433 -99.85 545.3 19431201 20170924 690190 99999 DYESS AFB/ABILENE US TX 32.417 -99.85 545.0 20000103 20071231 690200 99999 GOVERNOR HYDE US NC 35.25 -76.167 2.0 19800418 19810304 690206 99999 TRES ESQUINAS CO KQB9 0.75 -75.233 178.0 20050523 20070810 690210 99999 ALLIGATOR BRIDGE US NC 35.9 -76.0 2.0 19800418 19840929 690220 99999 ALBEMARLE BRIDGE US NC 35.983000000000004 -76.5 2.0 19800418 19840929 690230 24255 WHIDBEY ISLAND NAS US WA KNUW 48.35 -122.667 14.3 19891201 20090602 690236 99999 20030618 20030812 690240 99999 PACIFIC BEACH US WA KNIX 47.217 -124.2 18.0 19800603 19851031 690246 99999 AFWA ASSIGNED 0.0 0.0 0.0 20071206 20130616 690250 99999 KITTY HAWK SCHOOL US NC 36.1 -75.75 3.0 19800922 19810223 690260 99999 CHEBOYGAN US MI 45.65 -84.46700000000001 176.0 19800611 20011023 690266 99999 20030518 20030810 690276 99999 20030523 20030628 690280 99999 PORT ISABEL (CGS) US TX 26.066999999999997 -97.167 5.0 19820627 19831116 690290 99999 PORT ARANSAS US TX 27.833000000000002 -97.06700000000001 2.0 19820625 20041129 690300 99999 AFWA ASSIGNED 0.0 0.0 0.0 19820625 20011003 690310 3125 YUMA PROVING GROUND US AZ 32.833 -114.4 98.8 19870701 19900420 690320 99999 BLAINE HARBOR MUNI US WA WA09 48.983000000000004 -122.73299999999999 21.0 19920416 19940303 690330 99999 HOOD CANAL BRIDGE US OR K4S2 45.667 -121.53299999999999 192.0 19910307 20080106 690336 99999 SUROBI AF KQD2 34.617 69.717 986.0 20090501 20120713 690406 99999 AFWA ASSIGNED 0.0 0.0 0.0 20050518 20131011 690500 99999 FORT CHAFFEE US AR KQCU 35.167 -94.2 143.0 19830119 20070504 690514 99999 BAYJI IZ KQBJ 34.983000000000004 43.483000000000004 138.0 19910622 20110331 690524 99999 2 CWSS TMQ-53 US FL 30.416999999999998 -86.667 9.0 19910315 20150303 690534 99999 19960321 20010701 690544 99999 19910315 20010329 690554 99999 19910315 20010506 690564 99999 AFWA ASSIGNED 0.0 0.0 106.0 19910315 19910403 690574 99999 19910215 19910412 690584 99999 LZ BULL / EXERCISE US CA 33.067 -115.06700000000001 230.1 19990602 20100513 690604 99999 19970813 19970813 690614 99999 19991201 20010615 690654 99999 AFWA ASSIGNED 0.0 0.0 0.0 20060101 20140710 690674 99999 19910504 20010724 690684 99999 AFWA ASSIGNED 0.0 0.0 0.0 20090301 20140617 690704 99999 19930105 20071231 690714 99999 19911222 19960211 690724 99999 19920527 19970907 690764 99999 AFWA ASSIGNED 0.0 0.0 0.0 20010217 20121124 690794 99999 19990531 20010707 690804 99999 19950810 20001025 690814 99999 FOB GAMBERI AF 34.53 70.35 657.2 20010923 20150303 690824 99999 19941214 20011022 690826 99999 20030518 20030628 690834 99999 AFWA ASSIGNED 0.0 0.0 0.0 20120907 20141121 690844 99999 19910710 20071220 690854 99999 20011104 20011105 690864 99999 AFWA ASSIGNED 0.0 0.0 0.0 19940307 20100630 690874 99999 19990312 20020331 690884 99999 19961021 19971216 690904 99999 19930121 20050531 690914 99999 19990825 20050531 690924 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910209 20090321 690934 99999 19910217 19930206 690944 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910316 20140612 690954 99999 19910312 20030615 690964 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910217 20140122 690974 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910312 20140416 690976 99999 20030518 20030628 690984 99999 19910316 20050531 690994 99999 19910316 20010903 691000 99999 MAIMANEH AIRFLD/PRT AF KQMH 35.93 64.76 831.0 20050516 20120731 691004 99999 19910209 19990621 691006 99999 20030524 20030627 691014 99999 19910209 19990615 691024 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910209 20130620 691034 99999 19910209 20000210 691044 99999 AFWA ASSIGNED 0.0 0.0 57.0 19840130 20030609 691054 99999 19930913 19991229 691064 99999 BASTION AF KQBH 31.85 64.2 899.0 19840716 19971103 691084 99999 OUAGADOUGOU UV 12.35 -1.5 306.3 19821204 20150303 691094 99999 19840329 20020502 691104 99999 19770325 20050531 691106 99999 20030518 20030814 691114 99999 19750415 20050517 691124 99999 19750529 20050531 691134 99999 COS ECHO IZ KQAD 31.983 44.933 14.0 19771024 20110831 691144 99999 AFWA ASSIGNED 0.0 0.0 0.0 19750528 20111120 691154 99999 19770325 20001120 691164 99999 REDSTONE ARSENAL US AL 34.683 -86.68299999999999 209.0 19771026 20010323 691166 99999 JALALABAD AF 34.4 70.49 566.9 20050516 20150303 691174 99999 ABERDEEN PVNG GRND US MD 39.467 -76.167 18.0 19361001 20030816 691184 99999 19750524 20000829 691194 99999 AHMED AL JABER KU 28.933000000000003 47.783 124.7 19771022 20150303 691204 99999 19770511 20020517 691214 99999 AFWA ASSIGNED CA KQAL 19781020 20021218 691224 99999 AFWA ASSIGNED US CA KQAM 19781028 20070206 691226 99999 AFWA ASSIGNED 0.0 0.0 0.0 20090301 20140413 691234 99999 19781028 20050527 691244 99999 19811208 20010626 691254 99999 AFWA ASSIGNED NE KQBO 19910514 20050728 691264 99999 19750120 20030815 691274 99999 19920324 20010509 691284 99999 BAGRAM AIRFIELD AF 34.933 69.25 1492.0 19870405 20140811 691294 99999 BERBERA SO 10.482999999999999 44.933 43.9 19750501 20141221 691304 99999 AFWA ASSIGNED 0.0 0.0 0.0 19750501 20150225 691314 99999 19770413 20071231 691324 99999 FORT BRAGG / TEST US NC 35.15 -78.9 80.8 19951030 20130927 691334 99999 HILL/WENDOVER R GWC US UT KQSL 41.05 -113.06700000000001 1299.0 19910521 20030816 691344 99999 BASRAH IZ 30.566999999999997 47.766999999999996 2.1 19780408 20140331 691354 99999 19780919 19951219 691364 99999 AFWA ASSIGNED 0.0 0.0 0.0 19780323 20130316 691374 99999 19780926 20030816 691384 99999 19780923 20030816 691394 99999 19790112 19991101 691404 99999 DAEGU - EXERCISE KS 35.9 128.667 35.4 19850424 20100506 691414 99999 SPEED BAG AIRFIELD US CA 33.266999999999996 -115.417 93.0 19850424 20121016 691424 99999 19860420 20030522 691434 99999 DIKHIL DJ 11.117 42.367 490.9 19860420 20121217 691444 99999 19910131 20000227 691454 99999 19921207 19990806 691464 99999 DRAUGHON RANGE JA 40.869 141.378 5.2 19550310 20150225 691474 99999 AFWA ASSIGNED 0.0 0.0 128.0 19911204 20061020 691484 99999 FAIRCHILD AFB / EXERCISE US WA 47.617 -117.667 750.4 19840709 20120619 691490 99999 19970402 20010207 691494 99999 19840317 19970413 691504 99999 19840709 19971010 691514 99999 19840915 19970613 691524 99999 19820705 19970626 691534 99999 KIGALI RW -1.933 30.083000000000002 1467.0 19810610 20140628 691540 99999 19970402 19980408 691544 99999 19840318 19970407 691554 99999 19871204 19910413 691564 99999 19840918 19970614 691574 99999 19850120 20020218 691584 99999 19841105 20001218 691594 99999 AFWA ASSIGNED 0.0 0.0 0.0 19850306 20091003 691596 99999 GHAZI PK KQP8 33.983000000000004 72.617 341.0 20100805 20101026 691604 99999 19840624 19990324 691614 99999 19850118 20050531 691624 99999 MAZAR-E SHARIF AF KQKP 36.71 67.21 378.0 19840917 20100625 691634 99999 19840118 20020130 691644 99999 19850307 20050524 691654 99999 19860122 19970519 691664 99999 19840324 19970813 691674 99999 19850307 20050531 691684 99999 DIRKOU (8347) NG 18.967 12.967 389.8 19850303 20140825 691694 99999 19850121 20071227 691704 99999 19821014 20001226 691710 99999 19990119 20050518 691714 99999 19790306 19950930 691724 99999 19790508 20050524 691734 99999 BAGHDAD IZ 33.25 44.233000000000004 34.0 19780421 20150303 691740 99999 19960321 20001122 691744 99999 19850731 19960316 691750 99999 19990315 20030816 691754 99999 19860313 19880913 691764 99999 CLARK INTL RP 15.183 120.56700000000001 148.0 19850311 20100702 691774 99999 LADD AAF US AK 64.833 -147.6 137.5 19870923 20121231 691784 99999 FOB LEATHERNECK AF KQLE 31.9 64.183 890.0 19910802 20100923 691794 99999 19940916 19990302 691804 99999 CAMP BLANDING US FL KQLG 29.967 -81.98299999999999 59.0 19860119 20100430 691810 99999 TUZLA BK KQLH 44.533 18.717 19960221 20030610 691814 99999 19850727 19960317 691824 99999 19840915 20001107 691834 99999 19850729 19981219 691844 99999 19860417 19990911 691854 99999 VILLAMOR RP 14.517000000000001 121.01700000000001 23.0 19830314 20001020 691864 99999 19860120 19951207 691874 99999 19910208 20030816 691884 99999 19911122 20020713 691894 99999 LAIKIPIA AIR BASE KE -0.067 36.867 1905.0 19910509 20150302 691904 99999 AFWA ASSIGNED 0.0 0.0 0.0 19840917 20140924 691914 99999 19871107 19981118 691924 99999 19840917 19990424 691934 99999 AFWA ASSIGNED 0.0 0.0 0.0 19861102 20140723 691944 99999 19860119 20020110 691954 99999 19850307 19950630 691964 99999 19840917 19900531 691970 99999 TACLOBAN RP 11.232999999999999 125.03299999999999 3.1 20100129 20111006 691974 99999 19861102 19961024 691984 99999 AFWA ASSIGNED 0.0 0.0 0.0 19840917 20130929 691994 99999 19870916 19960828 692004 99999 EDWIN ANDREWS AB RP 6.933 122.06700000000001 10.1 19770313 20150227 692014 99999 EMBAKASI KE -1.3 36.917 1632.0 19780301 20150210 692024 99999 19770224 20000714 692034 99999 19760205 19930818 692044 99999 19780302 20030816 692054 99999 FOB NAWBAHAR AF KQEF 32.8 67.633 1989.0 19770910 20091208 692064 99999 19770118 20071210 692074 99999 JINBURYONG (TMQ-53P) KS 38.2 128.533 97.8 19770912 20091105 692084 99999 INJE/SINNAM (TMQ-53P) KS 37.967 128.083 196.0 19790910 20150303 692094 99999 BANGSAN (TMQ-53P) KS 38.117 128.033 221.0 19800715 20150303 692104 99999 19770501 20020324 692114 99999 GAPYONG (TMQ-53P) KS 37.867 127.51700000000001 56.1 19770910 20150303 692124 99999 19770901 20030623 692134 99999 DAEGWALLYEONG (TMQ-53P) KS 37.683 128.767 841.9 19770215 20150303 692144 99999 19770912 20071205 692154 99999 GWANGJUUP (TMQ-53P) KS 37.383 127.3 74.1 19790130 20150303 692164 99999 MUNSAN (TMQ-53P) KS 37.883 126.76700000000001 34.8 19780915 20150303 692174 99999 GIMHWA (TMQ-53P) KS 38.25 127.417 203.9 19780304 20150303 692184 99999 DAESAN (TMQ-53P) KS 36.983000000000004 126.46700000000001 39.9 19761207 20150303 692194 99999 YEONGJU (TMQ-53P) KS 36.867 128.55 215.8 19770910 20140313 692204 99999 19770314 20011020 692214 99999 GONGJU (TMQ-53P) KS 36.5 127.2 32.9 19800304 20150303 692224 99999 SANGJU (TMQ-53P) KS 36.417 128.15 91.7 19800305 20150303 692234 99999 GUMI (TMQ-53P) KS 36.117 128.36700000000002 43.0 19790915 20150303 692244 99999 GEUMSAN (TMQ-53P) KS 36.117 127.48299999999999 101.8 19800206 20150303 692246 99999 CAMP BLESSING-NANGA AF KQW3 34.983000000000004 70.9 1020.0 20071203 20110209 692254 99999 EVENES / EXERCISE NO 68.483 16.683 25.0 19770506 20130922 692264 99999 19750916 19990301 692274 99999 19790912 19991219 692284 99999 BAKWA AF KQBK 32.25 62.95 2720.0 19910125 20121127 692294 99999 AFWA ASSIGNED 0.0 0.0 0.0 19771025 20060411 692304 99999 AFWA ASSIGNED 0.0 0.0 0.0 19791021 20120310 692314 99999 AL UDEID AB / TEST QA 25.15 51.333 35.7 19781022 20111215 692324 99999 AFWA ASSIGNED 0.0 0.0 0.0 19781022 20140907 692334 99999 ESKAN VILLAGE SA 24.566999999999997 46.85 634.9 19781022 20131218 692344 99999 19780412 20000301 692354 99999 19901015 20010214 692364 99999 FALLON NAS US NV KQAV 39.417 -118.7 1199.0 19781027 20020501 692374 99999 AFWA ASSIGNED 0.0 0.0 0.0 19830809 20130617 692384 99999 19781025 20050531 692394 99999 CAMP ARIFJAN KU 28.9 48.18 45.7 19801122 20150303 692404 99999 AGADEZ (8350) NG 16.983 7.983 492.0 19781022 20150303 692414 99999 AFWA ASSIGNED 0.0 0.0 0.0 19831112 20141017 692434 99999 19831017 20050524 692444 99999 19891102 19940117 692454 99999 19890514 20020525 692464 99999 AFWA ASSIGNED 0.0 0.0 0.0 19840403 20140305 692474 99999 19901120 19940425 692484 99999 AFWA ASSIGNED 0.0 0.0 0.0 19901129 20130507 692494 99999 SUPERIOR VALLEY G R US CA KQCK 35.333 -117.1 961.0 19950401 19991210 692504 99999 AFWA ASSIGNED 0.0 0.0 0.0 19780105 20130909 692514 99999 AFWA ASSIGNED 0.0 0.0 0.0 19870426 20130926 692524 99999 FOB CHAPMAN AF 33.339 69.955 1150.6 19890916 20150303 692534 99999 FORT CAMPBELL / TEST US KY 36.667 87.5 114.0 19870427 20060305 692536 99999 AFWA ASSIGNED 0.0 0.0 0.0 20140407 20140618 692544 99999 AFWA ASSIGNED 0.0 0.0 0.0 19851206 20130529 692554 99999 Q WEST IRAQ IZ KQCO 35.766999999999996 43.117 229.0 19840326 20100701 692556 99999 FOB DELARAM AF KQZ4 32.1 63.4 840.0 20110906 20120705 692564 99999 19840327 19930207 692574 99999 FOB DELTA IZ KQCQ 32.482 45.766999999999996 30.0 19870224 20110731 692584 99999 CREECH AFB TMOS-P US NV KQCR 36.583 -115.667 955.0 19831201 20100923 692594 99999 19831202 20030626 692604 99999 19831203 20070718 692614 99999 19910209 19991207 692624 99999 SPRIGGS PAYNE AIRPORT / MONROVIA LI 6.2829999999999995 -10.767000000000001 7.6 19910217 20150206 692634 99999 MUSTANG RAMP AF 31.517 65.85 1018.0 19930619 20140110 692644 99999 MUSCATATUCK TRNG CTR US IN KQMT 39.05 -85.617 247.0 19970724 20121231 692654 99999 19910312 19991208 692664 99999 19990519 19991206 692674 99999 19910316 19991228 692684 99999 19910209 19991212 692694 99999 FOB MIAMI NTC/EXERCI US CA KQMY 35.283 -116.35 570.0 19910209 20110826 692704 99999 MPRC-FT STEWART US GA KQRC 32.033 -81.667 18.0 19850125 20091215 692714 99999 19840823 20001015 692724 99999 19850202 19970211 692734 99999 19861104 19941108 692744 99999 19850519 20050525 692754 99999 2 CWSS TMQ-53 US FL 30.416999999999998 -86.667 11.0 19840922 20140602 692764 99999 2 CWSS TMQ-53 US FL 30.416999999999998 -86.667 10.0 19840925 20140809 692774 99999 AFWA ASSIGNED 0.0 0.0 0.0 19841105 20140817 692784 99999 KING SALMON US AK KQRV 58.667 -156.65 14.0 19841127 20001205 692794 99999 19841211 19910205 692804 99999 AFWA ASSIGNED 0.0 0.0 0.0 19850131 20140827 692814 99999 SHANK APRT AF OASH 33.917 69.067 2016.0 19850121 20150303 692824 99999 19851205 19950218 692834 99999 CAMP SPANN AF TX KQSP 36.65 66.983 408.0 19851214 20111030 692844 99999 AFWA ASSIGNED 0.0 0.0 0.0 19870125 20140504 692854 99999 AFWA ASSIGNED 0.0 0.0 0.0 19890201 20130912 692864 99999 20001017 20020427 692874 99999 SIALKOT PK KQST 32.5 74.533 255.0 19890201 20100808 692884 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910209 19991124 692894 99999 AVIANO AFB / TEST IT 46.03 12.36 127.4 19991203 20130426 692904 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910209 20060721 692914 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910209 20120425 692924 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910312 20140501 692934 99999 19910312 20000415 692944 99999 19910209 20001207 692964 99999 19910217 19910217 692974 99999 19910215 19910316 692984 99999 POSTOJNA AIRFIELD SI 45.75 14.2 533.1 19910217 19910217 692994 99999 19910209 19910316 693004 99999 19950814 19981207 693014 99999 19921224 20020328 693024 99999 GAO / WXPOD 7020 ML 16.25 0.017 256.0 20141007 20150303 693044 99999 AL FALLUJAH IZ KQMA 33.317 43.883 47.0 19940629 20081204 693054 99999 19941102 20010919 693064 99999 AFWA ASSIGNED IT KQGB 19890203 20040106 693074 99999 19830819 19900301 693084 99999 19830815 19970805 693094 99999 19830901 19910522 693104 99999 19910227 19910927 693114 99999 19910115 19960114 693120 99999 19970916 19991224 693124 99999 19831029 19951229 693134 99999 19840905 19960517 693144 99999 KANDAHAR RUNWAY AF 31.5 65.85 1008.0 19890405 20150303 693154 99999 19840525 19930210 693164 99999 19850804 19910812 693174 99999 19870205 19990427 693184 99999 19870205 20000106 693194 99999 19870205 19990427 693204 99999 AFWA ASSIGNED 0.0 0.0 0.0 19870204 20140709 693214 99999 19890312 19980527 693224 99999 19870812 20020521 693234 99999 AFWA ASSIGNED 0.0 0.0 0.0 19840715 20140413 693244 99999 19901015 19980703 693254 99999 2 CWSS FMQ-22 US FL 30.416999999999998 -86.667 8.0 19830811 20150303 693264 99999 19850730 19930722 693274 99999 19841202 19990711 693284 99999 19840910 19940519 693294 99999 19841205 20071231 693304 99999 19841202 19990406 693314 99999 19840910 19941010 693324 99999 19840524 19910228 693334 99999 19840908 20000903 693344 99999 19910420 19920228 693354 99999 19840905 20000914 693364 99999 19890908 20020411 693374 99999 19901001 20020130 693384 99999 BALAD IZ KQTO 33.95 44.367 49.0 19901020 20110831 693394 99999 20000105 20001107 693404 99999 CAMP STANLEY TMQ-53P KS 37.717 127.1 64.9 19820331 20150303 693414 99999 MIRYANG (TMQ-53P) KS 35.65 128.75 47.9 19820604 20150303 693424 99999 19801110 20071207 693434 99999 19820604 19830919 693454 99999 19980526 20001028 693464 99999 19911013 20001021 693474 99999 19910314 20001028 693494 99999 20001207 20001207 693504 99999 19941221 19941221 693514 99999 19820201 20071231 693524 99999 AFWA ASSIGNED KS KQFM 19820506 20041109 693534 99999 USAG YONGSAN TMQ-53P KS 37.516999999999996 126.98299999999999 12.2 19820517 20140811 693544 99999 19810915 20020328 693554 99999 19810921 19920722 693564 99999 CAMP RED CLOUD KS 37.751999999999995 127.02600000000001 64.6 19830113 20150303 693574 99999 19810311 19980530 693584 99999 USAG WALKER TMQ-53P KS 35.833 128.583 75.0 19820916 20150303 693594 99999 YANGSU-RI KS 37.6 127.35 29.9 19810225 20150303 693604 99999 GWANGJEOK KS 37.817 126.98299999999999 77.1 19820909 20150303 693614 99999 SACHANG-RI KS 38.067 127.51700000000001 159.1 19890308 20150303 693624 99999 HONGCHON KS 37.683 127.883 246.9 19890314 20141004 693634 99999 BURON KS 37.2 127.75 95.1 19860318 20150303 693644 99999 19810311 19860724 693654 99999 NTC MOBILE US CA 0.0 0.0 0.0 19810221 20140810 693664 99999 COTTBUS DREWITZ GM EDCD 51.888999999999996 14.532 83.5 19810115 19901214 693674 99999 19920811 19920811 693684 99999 AR RAMADI IZ KQPV 33.433 43.25 43.0 20091126 20110731 693714 99999 20020212 20020212 693724 99999 19991214 20010925 693734 99999 19960901 20020108 693754 99999 19930213 20010710 693764 99999 20010620 20010620 693774 99999 APIAY (TMQ 53) CO 4.07 -73.55 378.0 20050516 20150303 693784 99999 19940413 20000622 693794 99999 19960830 20071210 693804 99999 ROBERTS INTL AIRPORT / MONROVIA LI 6.233 -10.367 9.4 20020413 20150303 693814 99999 19980528 19980528 693824 99999 20020307 20020509 693840 99999 BOW DRILL CA 44.0 -59.333 0.0 19840619 19850723 693850 99999 GLOMAR HIGH ISLAND CA 47.167 -62.833 0.0 19850210 19850502 693860 99999 DRURY CREEK CA 62.2 -134.38299999999998 609.0 19790907 19801224 693870 99999 CARMACKS CA YK CEX4 62.117 -136.183 539.0 19791030 20020417 693880 99999 KLONDIKE CA 64.45 -138.217 991.0 19790914 19881130 693900 99999 SHELDON LAKE CA 62.617 -131.267 902.0 19790914 19790914 693910 99999 TUCHITUA CA 60.917 -129.25 759.0 19791109 19801203 693920 99999 WHITEFISH CA 77.2 -106.7 0.0 19791017 19891111 693940 99999 DUNDAS PENINSULA CA 74.5 -113.383 0.0 19790720 19850411 693960 99999 CAPE HERSHEL CA 78.667 -74.5 0.0 19790721 19790814 693980 99999 BATHURST ISLAND & CA 75.717 -98.417 0.0 19790721 19790829 694010 99999 ROSS RIVER CA 61.933 -132.5 733.0 19781019 19800905 694020 99999 20020311 20020311 694030 99999 DRAKE POINT CA 76.467 -108.76700000000001 12.0 19781013 19790518 694070 99999 ATLIN CA 59.583 -133.667 716.0 19781026 19801202 694080 99999 CASSIAR CA 59.266999999999996 -129.8 1097.0 19781017 19800422 694150 99999 RICHARDSON POINT CA 75.55 -105.43299999999999 0.0 19790630 19790630 694160 99999 20020428 20020428 694170 99999 STOKES RANGE CA 76.333 -113.21700000000001 411.0 19781013 19781115 694180 99999 CAPE ALLISON CA 77.833 -100.26700000000001 0.0 19790501 19790601 694190 99999 20020504 20020504 694220 99999 20020515 20020515 694230 99999 JOHNSONS CROSSING CA 19781013 19860406 694240 99999 20011025 20011025 694270 99999 20020408 20020408 694280 99999 ROWAN GORILLA 1 CA 44.3 -58.0 41.0 19870512 19910626 694300 99999 EAGLE RANGE & US UT 41.05 -113.06700000000001 1292.0 19800423 19910626 694504 99999 19791221 19961029 694514 99999 19791220 19980326 694524 99999 19791226 19930622 694534 99999 19791221 19961029 694544 99999 19791221 19930522 694554 99999 19791221 19961029 694564 99999 19791221 20030628 694574 99999 19791221 19980318 694584 99999 19821027 19860907 694594 99999 COP CURRY AF KQYJ 32.516999999999996 68.867 1863.0 19821019 19950911 694604 99999 YUKON TEST AREA US AK 64.721 -146.529 534.9 19831011 20121115 694614 99999 19821123 19871228 694615 99999 FOB ROBINSON AF KQYM 32.016999999999996 64.833 913.0 19841012 20100207 694616 99999 19841015 19910619 694624 99999 FOB BAYLOUGH AF KQYL 32.65 66.8 2222.0 20091012 20111130 694634 99999 19910827 19930527 695013 99999 19970208 19970208 695023 99999 HORN ISLAND (HID) AS KQXC -10.583 142.3 19420804 20030816 695033 99999 20010217 20030609 695314 99999 ATSUGI (NPMOD) JA 35.45 139.45 63.0 20000315 20040606 695334 99999 N'DJAMENA CD 12.123 15.039000000000001 304.8 20000517 20150215 695354 99999 AFWA ASSIGNED US MS KQNF 20020212 20050117 695364 99999 AFWA ASSIGNED US VA KQNG 20010627 20081015 695374 99999 19991213 20020709 695384 99999 19981215 20020307 695414 99999 RED PASS LAKE / NTC US CA 35.266999999999996 -116.367 683.1 20010319 20140710 695424 99999 AFWA ASSIGNED US CA KQNM 20011101 20020820 695444 99999 19961018 20000328 695454 99999 19961109 20000208 695464 99999 20000514 20001025 695474 99999 AFWA ASSIGNED 0.0 0.0 0.0 19980917 20130501 695484 99999 19980729 19991020 695494 99999 19980716 20011119 695504 99999 19980528 20020523 695514 99999 CAMP RAMADI IZ KQNY 33.433 43.25 43.0 20061204 20100111 695524 99999 19970325 19991209 696014 99999 19870327 19980326 696024 99999 19860325 19920330 696034 99999 19850820 19980331 696044 99999 SENDAI JA KQJD 38.133 140.917 5.0 19850319 19900909 696054 99999 YAMAGATA JA KQJE 38.417 140.36700000000002 108.0 19880711 19930525 696064 99999 HANAMAKI JA KQJF 39.433 141.13299999999998 91.0 19840522 19980425 696074 99999 19850320 19910626 696084 99999 19910521 19970225 696094 99999 19880325 19880406 696104 99999 19850319 20050525 696114 99999 19870401 19980604 696124 99999 19971019 20030522 696134 99999 AFWA ASSIGNED 0.0 0.0 0.0 19901201 20060427 696144 99999 19970915 19971124 696154 99999 19870507 19901020 696164 99999 19900807 19900807 696174 99999 20011212 20030816 696204 99999 19850325 19950913 696224 99999 19970530 19970530 696264 99999 19960927 19980305 696274 99999 19870413 19990606 696284 99999 19870410 19941116 696294 99999 19901110 19981016 696304 99999 19870503 19931118 696314 99999 19910302 20010606 696324 99999 19860317 19990627 696334 99999 ORO GRANDE - EXERCISE US NM 32.417 -105.993 1237.8 19910304 19990625 696344 99999 19900515 19970829 696354 99999 19901018 19940802 696364 99999 19901014 19940215 696374 99999 FOB NORMANDY IZ KQOK 34.05 45.0 80.0 19870515 20100520 696384 99999 FOB WAR HORSE IZ KQOL 33.75 44.6 46.0 19910101 20110630 696394 99999 19880416 19980911 696404 99999 FOB MCHENRY IZ KQON 35.3 43.833 191.0 19900819 20110228 696414 99999 19900816 20030816 696424 99999 19870430 20001018 696434 99999 19901001 19940618 696444 99999 19900915 19970813 696454 99999 AUX 2 / EXERCISE US AZ 32.533 -114.51700000000001 82.0 19840426 20120808 696464 99999 TACTS AIRFIELD / EXERCISE US AZ 32.5 -114.15 248.1 19900809 20131026 696474 99999 19940803 20000217 696484 99999 19891205 20011013 696494 99999 FOB SHINWAR AF KQOW 34.183 70.817 653.0 19910217 20120728 696504 99999 GARDEZ AF 33.567 69.25 2358.9 20050516 20131118 696514 99999 19850607 20050524 696524 99999 19891101 20011004 696534 99999 19910101 19921008 696544 99999 19901206 19980928 696554 99999 19840904 20030608 696564 99999 19840904 19910314 696574 99999 19890720 19910314 696584 99999 19901215 19980907 696594 99999 19910114 19980909 696604 99999 19901215 20000111 696614 99999 19910124 19910313 696624 99999 19901217 19910310 696634 99999 19901225 20050531 696644 99999 19890929 20050531 696654 99999 19910126 20030816 696664 99999 AFWA ASSIGNED 0.0 0.0 0.0 19841120 20130924 696674 99999 19910102 20001013 696684 99999 19970909 19990717 696694 99999 MORON AB SP KQQQ 37.167 -5.617000000000001 19840828 20010222 696704 99999 AFWA ASSIGNED 0.0 0.0 0.0 19891128 20121013 696714 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910304 20140823 696724 99999 19900808 20020315 696744 99999 AFWA ASSIGNED KQRG 20020115 20020219 696754 99999 CAMP LEMONNIER DJ 11.547 43.159 11.0 19960807 20150303 696764 99999 AFWA ASSIGNED KQRI 20020108 20020225 696774 99999 AFWA ASSIGNED KQRJ 20011219 20020225 696784 99999 19980329 19980329 696790 99999 19970313 20010502 696794 99999 19910102 19970322 696804 99999 19971010 20050531 696814 99999 19970330 20030626 696824 99999 KISENYI UG 0.067 32.45 1152.8 20000217 20150209 696834 99999 19970311 20011019 696854 99999 AFWA ASSIGNED 0.0 0.0 0.0 19980923 20000512 696864 99999 19990412 20020525 696874 99999 19900605 20020415 696884 99999 19980220 19980220 696890 99999 20020501 20050531 696894 99999 19971208 20020430 696904 99999 19850909 20011128 696914 99999 19850924 20020508 696924 99999 AFWA ASSIGNED 0.0 0.0 0.0 19891221 19981011 696934 99999 19850320 20011216 696944 99999 19900112 20010509 696954 99999 19940727 20000304 696964 99999 19891127 19940802 696974 99999 19990328 19990328 696984 99999 19860816 19951214 696994 99999 19850927 19970214 697004 99999 19930611 19960920 697014 99999 19940923 19990717 697024 99999 19931014 20010830 697034 99999 19940623 20010807 697040 99999 19970406 20030602 697044 99999 19861003 19970422 697054 99999 TACLOBAN RP 11.232999999999999 125.03299999999999 3.0 19840823 20131118 697064 99999 19840823 19991129 697074 99999 19850327 20010119 697084 99999 19850327 20000118 697094 99999 FOB BOSTIC AF KQVE 35.217 71.517 1042.0 19850423 20120630 697104 99999 MANDA BAY KE -2.15 40.9 15.2 19850423 20150303 697114 99999 19901220 19991117 697124 99999 19910530 19940210 697134 99999 ILOILO RP 10.717 122.53299999999999 8.0 19840322 20020525 697144 99999 19900622 19951101 697174 99999 MACTAN CEBU INTL RP 10.317 123.95 9.0 19920727 19920727 697184 99999 19920727 19931108 697194 99999 ORMOC RP 11.067 124.56700000000001 25.0 19870517 20080609 697204 99999 VARPALOTA TRAINING AREA / EXERCISE HU 47.133 17.9 228.6 19910624 20130315 697214 99999 19920726 19920726 697224 99999 AFWA ASSIGNED 0.0 0.0 0.0 19910122 20140327 697234 99999 AFWA ASSIGNED 0.0 0.0 0.0 19870320 20140327 697244 99999 19930610 19930610 697254 99999 20010926 20010926 697264 99999 20010926 20030619 697284 99999 BAGRAM AF 34.944 69.259 1492.0 20010615 20150303 697294 99999 AFWA ASSIGNED 0.0 0.0 0.0 19991009 20140603 697304 99999 FOB LASHKAR GAH AF KQSC 31.6 64.367 786.0 20011205 20050531 697314 99999 19890911 20030521 697324 99999 19840210 20010322 697330 99999 19960801 19990212 697334 99999 19860427 19920122 697344 99999 19891017 20001022 697354 99999 19950705 19951102 697364 99999 19860304 19981108 697374 99999 19970207 20010403 697384 99999 19890915 20030816 697394 99999 20010202 20030816 697404 99999 19961213 19961220 697444 99999 19850131 19980901 697454 99999 19860501 19910314 697464 99999 AFWA ASSIGNED 0.0 0.0 0.0 19850319 20030816 697474 99999 19900223 19910313 697484 99999 AL UDEID QA 25.116999999999997 51.317 39.6 19850205 20150303 697494 99999 19850918 19900611 697504 99999 19850330 19950119 697514 99999 AFWA ASSIGNED 0.0 0.0 0.0 19850320 20130602 697524 99999 19901224 20020426 697534 99999 FORT IRWIN US CA KQIW 35.283 -116.617 322.0 19850218 20080201 697544 99999 19840812 20020524 697554 99999 19850409 19920627 697560 99999 19970402 20030816 697564 99999 STOVAL AIRFIELD / EXERCISE US AZ 32.733000000000004 -113.633 117.0 19830901 20140122 697574 99999 AFWA ASSIGNED 0.0 0.0 0.0 20010125 20121231 697584 99999 SHEBERGHAN AFLD/PRT AF KQSE 36.75 65.917 320.0 20050516 20121231 697594 99999 KABUL SOCCER FIELD AF 34.53 69.19 1805.3 19950515 20150303 697614 99999 20020707 20050524 697634 99999 AFWA ASSIGNED 0.0 0.0 0.0 20131214 20140511 697644 99999 20030518 20030628 697654 99999 COB SPEICHER IZ KQSL 34.667 43.516999999999996 139.0 20020509 20110731 697674 99999 FOB SHUKVANI AF 32.1 64.8 993.7 19991013 20131207 697704 99999 19950130 19990407 697714 99999 ABECHE CD 13.85 20.85 555.4 19910501 20150303 697724 99999 FOB TODD AF KQTD 35.6 63.3 472.0 19941214 20120630 697734 99999 19960606 20010709 697744 99999 TIFNIT MO 30.316999999999997 -9.417 76.2 19970304 20150303 697754 99999 19931031 19931031 697764 99999 THUMRAIT MU 17.67 54.02 467.0 20120801 20150303 697774 99999 TAJI IZ 33.516999999999996 44.266999999999996 36.9 19960530 20150303 697814 99999 TESSALIT / WXPOD 8304 ML 20.25 0.983 495.6 20140929 20150303 697834 99999 19941215 19950505 697864 99999 AFWA ASSIGNED 0.0 0.0 0.0 20110818 20121130 697874 99999 19960426 19960426 697884 99999 FOB DIAMONDBACK IZ KQTU 36.3 43.15 216.0 19910614 20110831 697894 99999 19930711 20010223 697904 99999 20030608 20030613 697924 99999 KIRKUK IZ KQTX 35.467 44.35 323.0 20030518 20110831 697944 99999 19920717 19920717 697954 99999 19961203 20010619 697984 99999 19990909 19991109 698004 99999 19840623 20001119 698014 99999 19870330 19910317 698024 99999 19840830 19911111 698034 99999 19831103 19981107 698044 99999 19881214 19951021 698054 99999 19831103 19910314 698064 99999 19880420 20020502 698074 99999 GUIUAN RP 11.033 125.75 6.4 19840907 20131123 698084 99999 ALI AL SALEM KU 29.33 47.516999999999996 144.0 19850804 20150303 698094 99999 AFWA ASSIGNED KQGW 19860302 19991117 698104 99999 AL DHAFRA AE 24.25 54.55 23.0 19840417 20150303 698114 99999 METMFR 29 PALMS US CA KQGY 34.3 -116.15 626.0 19840216 20100128 698124 99999 19840216 19990422 698134 99999 19990911 19991221 698144 99999 20030526 20030526 698234 99999 WAJIR KE 1.733 40.1 245.4 20141015 20141024 698254 99999 AFWA ASSIGNED 0.0 0.0 0.0 20100930 20140714 698264 99999 CAMP UDAIRI KU 29.7 47.433 131.1 20030518 20150303 698314 99999 AFWA ASSIGNED 0.0 0.0 0.0 20130101 20140114 698324 99999 BOGUE FIELD MCALF US NC KQWT 34.683 -77.033 19960409 19960901 698354 99999 19961006 19961006 698374 99999 20001206 20010719 698384 99999 19941220 20010914 698394 99999 20010320 20010410 698404 99999 FOB COBRA IZ KQXF 34.233000000000004 45.15 125.0 20090804 20110630 698414 99999 319 MISSILE SQ US CO KQXG 40.5 -103.833 1880.0 20010320 20010411 698444 99999 AFWA ASSIGNED 0.0 0.0 0.0 20030518 20111217 698464 99999 19911205 19911205 698524 99999 AFWA ASSIGNED 0.0 0.0 0.0 20090301 20140919 698534 99999 AFWA ASSIGNED 0.0 0.0 0.0 20140812 20140919 698544 99999 FOB DWYER AF 31.1 64.083 724.8 20090626 20150303 698584 99999 19911005 20071213 698594 99999 20030518 20030816 698654 99999 FOB QALA I NAW AF KQYS 34.983000000000004 63.117 884.0 20071206 20100105 698674 99999 FOB VICTORY/STONE AF 34.117 62.217 1112.5 20050516 20131201 698684 99999 FOB JUSTICE IZ KQYV 33.633 44.583 64.0 20050516 20080217 698704 99999 AFWA ASSIGNED CO KQYX 4.217 -74.633 895.0 20060103 20080716 698714 99999 19941031 19941031 698724 99999 19910725 19961229 698725 99999 AFWA ASSIGNED 0.0 0.0 0.0 20100304 20100316 698726 99999 AFWA ASSIGNED 0.0 0.0 0.0 20100304 20100316 699404 99999 FT SHERMAN (ROCOB) PM 9.333 -79.983 19800423 19810612 699604 3145 YUMA MCAS US AZ KNYL 32.65 -114.617 64.9 19870701 20170924 700001 26492 PORTAGE GLACIER US AK PATO 60.785 -148.839 31.4 20060101 20170924 700001 99999 PORTAGE GLACIER US AK PATO 60.783 -148.833 29.0 20040510 20071231 700197 26558 SELAWIK US AK PASK 66.6 -159.986 7.6 20060101 20170924 700197 99999 SELAWIK US AK PASK 66.617 -160.0 8.0 19940818 20071231 700260 27502 W POST-WILL ROGERS MEMORIAL AIRPORT US AK PABR 71.283 -156.782 9.5 19450101 20170924 700264 99999 SSDC US AK 71.317 -155.217 0.0 19920807 19920807 700265 99999 BARROW W POST-W ROGERS ARPT US AK 71.333 -156.63299999999998 4.0 19750228 19780130 700271 27506 BARROW POINT BARROW US AK KPBA 71.333 -156.65 6.1 19740318 19750302 700300 27503 WAINWRIGHT AIRPORT US AK PAWI 70.639 -159.995 9.1 19991102 20170924 700300 27508 WAINWRIGHT (DEW) US AK PAWI 70.617 -159.85 27.0 19730101 19991231 700300 99999 WAINWRIGHT (DEW) US AK PAWI 70.617 -159.85 27.0 20000101 20071231 700365 99999 SAGWON US AK SAG 69.367 -148.7 198.0 20130106 20130106 700450 27512 LONELY US AK LNI 70.917 -153.25 9.1 19730101 19890925 700450 99999 LONELY (DEW) US AK 70.917 -153.233 12.0 20020505 20060125 700630 27403 OLIKTOK POW 2 US AK POLI 70.5 -149.88299999999998 4.9 19730101 19990929 700630 99999 OLIKTOK LRRS US AK POLI 70.5 -149.88 5.0 20030811 20030811 700631 25715 ATKA AIRPORT US AK PAAK 52.22 -174.206 17.1 20060101 20170924 700631 99999 ATKA US AK PAKA 57.067 -135.36700000000002 15.0 20040713 20071102 700632 26645 BUCKLAND AIRPORT US AK PABL 65.983 -161.13299999999998 9.1 20060101 20170924 700632 99999 BUCKLAND US AK PABL 65.983 -161.15 9.0 20040713 20071231 700633 99999 BEAUFORT SEA US AK 0.0 0.0 -999.0 20130103 20130425 700634 27408 UGNU-KUPRAUK AIRPORT US AK PAKU 70.331 -149.59799999999998 20.4 20060101 20170924 700634 99999 UGNU-KUPARUK AIRPORT US AK PAKU 70.317 -149.583 20.0 19810220 20071231 700635 26465 GALBRAITH LAKE AIRPORT US AK PAGB 68.479 -149.49 812.6 20060105 20170922 700635 99999 GALBRAITH LAKE US AK PAGB 68.483 -149.483 814.0 19750108 20071227 700636 27405 PRUDHOE BAY US AK PAUD 70.25 -148.333 14.0 19730101 19990614 700637 27406 DEADHORSE AIRPORT US AK PASC 70.192 -148.477 18.6 19730101 20170924 700638 99999 FALSE PASS US AK PAKF 54.85 -163.417 6.0 19730101 20170923 700639 99999 HAPPY VALLEY US AK 69.167 -148.817 297.0 19740616 19780111 700860 27401 BARTER ISLAND AIRPORT US AK PABA 70.134 -143.577 0.6 19471001 20170924 700860 99999 BARTER ISLAND US AK PABA 70.133 -143.63299999999998 15.0 20000102 20071231 700863 99999 BARTER ISLAND LRRS US AK PBTI 70.134 -143.577 1.5 19901104 19910621 700865 99999 BARTER ISLAND(AWOS) US AK 70.133 -143.583 2.0 19731207 19961009 700866 99999 CHALLENGE ISLAND US AK 70.233 -146.5 -999.0 19750109 19810328 700867 99999 FRANKLIN BLUFFS US AK 69.717 -148.683 108.0 19750108 19770816 700868 99999 ATIGUN US AK 68.183 -149.417 1032.0 19750112 19750401 700869 99999 CHANDALAR SHELF US AK 5CD 68.067 -149.583 982.0 19750109 19780923 701040 26631 CAPE LISBURNE LRRS AIRPORT US AK PALU 68.867 -166.13299999999998 4.9 20060101 20170924 701040 99999 CAPE LISBURNE AFS US AK PALU 68.883 -166.13299999999998 3.0 19520829 20071231 701043 26623 POINT HOPE AIRPORT US AK PAPO 68.35 -166.8 4.0 20060101 20170924 701043 99999 POINT HOPE AIRPORT US AK PAPO 68.35 -166.8 4.0 19431001 20071231 701045 26649 RED DOG AIRPORT US AK PADG 68.031 -162.903 296.9 20060103 20170923 701045 99999 RED DOG US AK PADG 68.067 -162.833 297.0 19980226 20071206 701046 26418 CENTRAL AIRPORT US AK PACE 65.567 -144.765 280.4 20020902 20130210 701160 26618 WALES US AK 65.617 -168.05 5.0 19430701 19771221 701160 99999 WALES US 65.617 -168.05 5.0 20040701 20040701 701170 26634 TIN CITY LRRS AIRPORT US AK PATC 65.563 -167.921 82.6 20060101 20170923 701170 99999 TIN CITY AFS US AK PATC 65.567 -167.917 83.0 19530504 20071231 701175 99999 US AK 19740604 19740628 701190 99999 PORT CLARENCE CGS US AK PAPC 65.25399999999999 -166.859 3.0 19730101 20170919 701195 26625 SHISHMAREF/NEW AIRPORT US AK PASH 66.25 -166.08900000000003 2.1 20060101 20170924 701195 99999 SHISHMAREF US AK PASH 66.25 -166.083 4.0 19831104 20071231 701196 102 BOB BARKER MEMORIAL AIRPORT US AK PAIK 66.983 -160.433 51.2 20080822 20170924 701196 99999 BOB BAKER MEM US AK PAIK 66.976 -160.437 50.6 19831222 20111231 701210 26624 POINT LAY LRRS AIRPORT US AK PPIZ 69.733 -163.005 7.6 20060101 20170923 701210 26638 POINT LAY US AK PPIZ 69.817 -162.917 6.0 19730101 19991231 701210 99999 POINT LAY US AK PPIZ 69.817 -162.917 6.0 20000101 20071231 701213 26638 POINT LAY LIZ 2 US AK PIZ 69.733 -163.017 6.1 19920318 19960630 701213 99999 POINT LAY(DEW/AWOS) US AK 69.733 -163.017 6.0 19901121 19910803 701330 26616 RALPH WIEN MEMORIAL AIRPORT US AK PAOT 66.867 -162.63299999999998 9.1 19730101 20170924 701331 99999 DEERING US AK 66.067 -162.75 5.0 19840402 19850612 701333 26643 DEERING AIRPORT US AK PADE 66.069 -162.764 6.4 19990102 20170924 701333 99999 DEERING US AK PADE 66.083 -162.75 6.0 19980111 19981229 701334 99999 KOTZEBUE US AK 66.883 -162.6 3.0 19960801 19961009 701335 26648 NOATAK AIRPORT US AK PAWN 67.566 -162.975 26.8 20060101 20170506 701335 99999 NOATAK US AK PAWN 67.55 -162.967 27.0 19950708 20071231 701336 99999 TELLER AIRPORT US AK 65.233 -166.35 90.0 20100527 20100527 701337 103 WALES AIRPORT US AK PAIW 65.617 -168.1 7.0 20130101 20161023 701337 99999 WALES AIRPORT US AK PAIW 65.617 -168.1 6.7 20090122 20170923 701338 99999 CHEVAK AIRPORT US AK PAVA 61.533 -165.583 22.9 20090210 20170923 701486 26642 KIVALINA AIRPORT US AK PAVL 67.732 -164.548 3.1 20060101 20170924 701486 99999 KIVALINA US AK PAVL 67.733 -164.55 4.0 19990114 20071231 701620 26508 UMIAT US AK PAUM 69.367 -152.13299999999998 85.0 19460101 20130411 701620 99999 UMIAT US PAUM 69.367 -152.13299999999998 85.0 20000101 20050704 701625 26542 ANAKTUVUK PASS AIRPORT US AK PAKP 68.167 -151.767 640.1 20060101 20170924 701625 99999 ANAKTUVUK PASS US AK PAKP 68.133 -151.733 641.0 19800911 20071231 701718 26551 AMBLER AIRPORT US AK PAFM 67.1 -157.85 88.1 20060101 20170924 701718 99999 AMBLER US AK PAFM 67.1 -157.85 102.0 19880105 20071231 701719 490 SHUNGNAK AIRPORT US AK PAGH 66.888 -157.162 62.8 20091210 20170924 701719 99999 SHUNGNAK US AK PAGH 66.888 -157.162 60.0 19850208 20111231 701730 26535 INDIAN MOUNTAIN LRRS ARPT US AK PAIM 66.0 -153.7 388.9 20060101 20170924 701730 99999 INDIAN MOUNTAIN AFS US AK PAIM 66.0 -153.7 389.0 19510801 20071231 701740 26533 BETTLES AIRPORT US AK PABT 66.917 -151.515 196.0 19450101 20170924 701745 26480 CHANDALAR LAKE AIRPORT US AK PALR 67.51100000000001 -148.493 577.6 20060101 20141009 701745 99999 CHANDALAR LAKE US AK PALR 67.5 -148.483 585.0 19730624 20071231 701746 99999 DIETRICK (PRIVATE) US AK 67.683 -149.733 447.0 19730825 19750729 701747 26467 MERRILL PASS WEST US AK PAER 61.25 -153.82 358.0 19730825 19750729 701748 99999 PROSPECT CREEK AIRPORT US AK PAPR 66.817 -150.65 335.0 19730825 20170921 701749 99999 WISEMAN ARPT US AK 67.4 -150.11700000000002 360.0 19940819 20020803 701780 26529 RALPH M CALHOUN MEML ARPT US AK PATA 65.175 -152.107 67.7 19430601 20170924 701790 99999 FIVE MILE CAMP US AK 65.933 -149.833 155.0 19771103 19850531 701791 99999 MANLEY HOT SPRINGS US AK 65.0 -150.65 85.0 19431204 19891013 701793 26524 MANLEY HOT SPRINGS US AK PAML 64.999 -150.638 82.9 20060101 20140501 701793 99999 MANLEY HOT SPRINGS US AK PAML 65.0 -150.65 81.0 19900724 20071231 701795 99999 FIVE MILE CAMP US AK 65.933 -149.833 155.0 19730825 19960625 701940 26413 FORT YUKON AIRPORT US AK PFYU 66.567 -145.267 135.6 19730101 20170924 701940 99999 FORT YUKON US AK PFYU 66.567 -145.267 135.0 20000102 20031231 701945 46405 ARCTIC VILLAGE AIRPORT US AK PARC 68.115 -145.579 637.6 20060101 20170924 701945 99999 ARCTIC VILLAGE US AK PARC 68.117 -145.567 638.0 19950708 20071231 701970 99999 CENTRAL US AK 65.483 -144.667 252.0 20021018 20021018 701975 26422 EAGLE AIRPORT US AK PAEG 64.777 -141.148 276.8 20060101 20170924 701975 99999 EAGLE AIRPORT US AK PAEG 64.783 -141.15 268.0 19980408 20071231 701995 26628 CAPE DARBY REMOT COM OUTLT US AK PAGL 64.55 -163.007 7.6 20060101 20170920 701995 99999 GOLOVIN AIRPORT US AK PAGL 64.54 -163.04 8.0 19990114 20071231 702000 26617 NOME AIRPORT US AK PAOM 64.51100000000001 -165.44 4.0 19400101 20170924 702004 99999 WHITE MOUNTAIN US AK PAWM 64.689 -163.41299999999998 81.4 20111201 20170923 702005 26647 ST MARY'S AIRPORT US AK PASM 62.062 -163.3 95.1 20060101 20170924 702005 99999 ST MARYS US AK PASM 62.05 -163.3 95.0 19790408 20071231 702006 26502 KALTAG AIRPORT US AK PAKV 64.327 -158.74200000000002 55.2 20060101 20170924 702006 99999 KALTAG AIRPORT US AK PAKV 64.316 -158.73 54.0 19990114 20071231 702031 26620 MOSES POINT US AK 64.7 -162.05 6.1 19430608 19790128 702035 26704 SAVOONGA AIRPORT US AK PASA 63.687 -170.493 16.8 20060108 20170924 702035 99999 SAVOONGA US AK PASA 63.683 -170.483 16.0 19870629 20071231 702040 26703 GAMBELL AIRPORT US AK PAGM 63.766999999999996 -171.733 8.5 19870603 20170924 702040 99999 GAMBELL (AWOS) US AK PAGM 63.766999999999996 -171.733 8.0 20000101 20031231 702060 26632 NORTHEAST CAPE US AK KOHC 63.317 -168.967 9.1 19520729 19690819 702070 26627 UNALAKLEET AIRPORT US AK PAUN 63.883 -160.8 5.5 19430601 20170924 702070 99999 UNALAKLEET US AK PAUN 63.883 -160.8 6.0 20000101 20031231 702075 26644 ANVIK AIRPORT US AK PANV 62.65 -160.183 26.8 20060101 20170924 702075 99999 ANVIK US AK PANV 62.65 -160.183 94.0 19950210 20071231 702084 26650 EMMONAK US AK PAEM 62.785 -164.49099999999999 4.3 20060101 20170924 702084 99999 EMMONAK US AK PAEM 62.783 -164.483 4.0 19440412 20071231 702091 99999 MOUNTAIN VILLAGE US AK 62.083 -163.717 50.0 19441018 19450927 702093 99999 ANDREAFSKY/ST MARYS CA SMA 62.067 -163.3 95.0 19850208 19891011 702120 26633 CAPE ROMANZOFF AFS US AK PACZ 61.783 -166.033 146.0 19530401 19991231 702120 26646 CAPE ROMANZOF LRRS ARPT US AK PACZ 61.783 -166.033 146.0 20060101 20170924 702120 99999 CAPE ROMANZOFF AFS US AK PACZ 61.783 -166.033 146.0 20000101 20071231 702180 99999 NUNIVAK US 60.0 -166.0 -999.9 19440101 19730227 702185 26622 MEKORYUK AIRPORT US AK PAMY 60.383 -166.2 13.7 20060105 20170924 702185 99999 MEKORYUK US AK PAMY 60.367 -166.267 15.0 19831104 20071231 702186 26651 HOOPER BAY AIRPORT US AK PAHP 61.523999999999994 -166.14700000000002 5.5 20060101 20170924 702186 99999 HOOPER BAY US AK PAHP 61.516999999999996 -166.13299999999998 5.0 19841105 20071231 702190 26615 BETHEL AIRPORT US AK PABE 60.785 -161.829 31.1 19450101 20170924 702195 99999 NAPAKIAK US AK PANA 60.683 -161.983 5.2 19940830 20170923 702220 26501 GALENA AIRPORT US AK PAGA 64.737 -156.934 46.6 20060101 20170924 702220 99999 GALENA A. US AK PAGA 64.733 -156.933 49.0 19420917 20071231 702223 26602 KOYUK AIRPORT US AK PAKK 64.935 -161.155 33.5 20060101 20170924 702223 99999 KOYUK AIRPORT US AK PAKK 64.933 -161.167 37.0 19760503 20071231 702224 99999 EAGLE AIRPORT US AK 64.783 -141.15 268.0 19810619 19950512 702225 99999 HUSLIA US AK PAHS 65.7 -156.38299999999998 55.0 19940103 20050817 702310 26510 MC GRATH AIRPORT US AK PAMC 62.957 -155.61 101.5 19730101 20170924 702312 26519 FAREWELL LAKE US AK PAFK 62.54 -153.61700000000002 321.0 19970402 19991231 702312 26555 FAREWELL LAKE SEAPLANE BASE US AK PAFK 62.543 -153.623 3207.7 20060101 20140419 702312 99999 FAREWELL LAKE US AK PAFK 62.54 -153.61700000000002 321.0 20000101 20071203 702315 26536 TATALINA LRRS AIRPORT US AK PATL 62.894 -155.976 293.8 20060101 20170924 702315 99999 TATALINA LRRS US AK PATL 62.883 -155.967 294.0 19520401 20071231 702320 26516 ANIAK AIRPORT US AK PANI 61.582 -159.543 25.9 19730101 20170924 702320 99999 ANIAK US AK PANI 61.583 -159.533 26.0 20000101 20031231 702325 26443 WASILLA AIRPORT US AK PAWS 61.571999999999996 -149.541 107.9 20040702 20170924 702325 99999 WASILLA US AK PAWS 61.571999999999996 -149.54 108.0 19980226 20071231 702350 26534 SPARREVOHN LRRS AIRPORT US AK PASV 61.1 -155.583 484.0 20060101 20170924 702350 99999 SPARREVOHN AFS US AK PASV 61.1 -155.567 484.0 19510711 20071231 702460 26512 MINCHUMINA US AK PAMH 63.886 -152.30200000000002 206.7 19730101 20170924 702460 99999 MINCHUMINA US AK PAMH 63.9 -152.267 214.0 20000101 20071231 702480 99999 FAREWELL/INTERMEDIATE FIELD US 62.516999999999996 -153.88299999999998 458.0 19730101 19840605 702483 99999 FAREWELL LAKE US AK PAFW 62.533 -153.61700000000002 323.0 19850130 19960425 702490 26526 PUNTILLA LAKE US AK PAPT 62.091 -152.735 566.3 20060101 20170917 702490 99999 PUNTILLA US AK PAPT 62.1 -152.75 560.0 19730101 20071231 702495 26547 HAYES RIVER AIRPORT US AK PAHZ 61.983000000000004 -152.083 305.1 20060101 20110127 702495 99999 HAYES RIVER AIRPORT US AK PAHZ 61.98 -152.08 305.0 19730101 20071231 702510 26528 TALKEETNA AIRPORT US AK PATK 62.32 -150.095 106.7 19730101 20170924 702520 99999 TALKEETNA AK US AK 62.3 -150.417 151.0 20050213 20050213 702550 26514 SKWENTNA AIRPORT US AK PASW 61.977 -151.217 45.7 19730101 20161001 702550 99999 SKWENTNA US AK PASW 61.967 -151.183 45.0 20000101 20071231 702590 26523 KENAI MUNICIPAL AIRPORT US AK PAEN 60.58 -151.239 27.7 19730101 20170924 702595 26559 SOLDOTNA AIRPORT US AK PASX 60.476000000000006 -151.034 34.4 20060101 20170924 702595 99999 SOLDOTNA US AK PASX 60.467 -151.033 34.0 19830502 20071231 702600 26435 NENANA MUNICIPAL AIRPORT US AK PANN 64.55 -149.072 109.7 19430706 20170924 702600 99999 NENANA/MUN. US AK PANN 64.55 -149.083 110.0 20000101 20031231 702605 99999 CLEAR US AK PACL 64.301 -149.12 168.2 19471010 19471130 702606 96401 CHULITNA US AK PAEC 62.826 -149.907 426.7 20060101 20170924 702606 99999 CHULITNA AIRPORT US AK PAEC 62.883 -149.833 381.0 19781130 20071231 702607 25378 HOONAH SEAPLANE BASE US AK PAOH 58.096000000000004 -135.409 0.0 20060101 20170924 702607 99999 HOONAH SEAPLANE BASE US AK PAOH 58.12 -135.417 6.0 19781124 20071231 702610 26411 FAIRBANKS INTERNATIONAL US AK PAFA 64.804 -147.876 131.7 19460101 20170924 702615 26498 WAINWRIGHT AAF AIRPORT US AK PAFB 64.83800000000001 -147.614 138.4 20060103 20170924 702615 99999 WAINWRIGHT AAF US AK PAFB 64.833 -147.61700000000002 140.0 19410206 20071229 702616 99999 OLD MAN US AK 66.45 -150.583 389.0 19750108 19761123 702625 104 NIKOLAI AIRPORT US AK PAFS 63.016999999999996 -154.36700000000002 126.2 20150224 20170924 702625 99999 NIKOLAI US AK PAFS 63.02 -154.36 126.0 20061024 20170803 702626 99999 PILOT POINT US AK PAPN 57.58 -157.58 17.0 20061024 20170923 702627 26561 RUBY AIRPORT US AK PARY 64.727 -155.47 199.0 20061001 20170924 702628 105 MARSHALL DON HUNTER SR AIRPORT US AK PADM 61.867 -162.033 31.1 20150224 20170924 702628 99999 MARSHALL DON HUNTER SR US AK PADM 61.864 -162.026 31.4 20061024 20170912 702629 99999 CAPE DECISION CG HELIPORT US AK 56.0 -134.13299999999998 10.0 20080915 20110608 702640 26414 SUMMIT US AK PAST 63.331 -149.127 734.3 19730101 19840107 702645 46403 MCKINLEY NATIONAL PARK AIRPORT US AK PAIN 63.733000000000004 -148.917 524.3 20060101 20170924 702645 99999 MCKINLEY NATIONAL PK US AK PAIN 63.733000000000004 -148.917 524.0 19751202 20071231 702646 99999 MT MCKINLEY NATL PK US AK 63.65 -148.8 625.0 19760116 19760427 702647 26499 HEALY RIVER AIRPORT US AK PAHV 63.86600000000001 -148.969 3945.3 20060101 20120608 702647 99999 HEALY RIVER AIRPORT US AK PAHV 63.87 -148.97 394.0 19761221 20071231 702648 46406 CANTWELL AIRPORT US AK PATW 63.391000000000005 -148.95600000000002 667.5 20060102 20110827 702648 99999 CANTWELL CANTWELL US AK PATW 63.4 -148.95 668.0 19831103 20071231 702650 26407 EIELSON AFB AIRPORT US AK PAEI 64.683 -147.083 166.7 20060102 20170924 702650 99999 FAIRBANKS/EIELSON A US AK PAEI 64.65 -147.067 167.0 19441111 20071231 702653 99999 EIELSON AFB & US AK 64.65 -147.067 167.0 19750814 19750814 702660 99999 FORT GREELY AK US AK 63.967 -145.7 398.0 19440626 19900628 702670 26415 ALLEN ARMY AIRFIELD US AK PABI 63.994 -145.721 389.2 19451015 20170924 702673 99999 BIG DELTA ARCTIC WX US AK 64.0 -145.717 389.0 19800303 19841204 702674 99999 CIRCLE CITY AIRPORT US AK 65.833 -144.067 182.0 19790507 20091019 702675 26484 PAXSON AIRPORT US AK PAXK 63.032 -145.498 823.0 20060101 20101003 702675 99999 PAXSON US AK PAXK 63.033 -145.5 809.0 19740419 20071231 702677 99999 ISABELL PASS CAMP US AK Z32 63.083 -145.5 978.0 19750929 19761202 702680 99999 GLENNALLEN AK US AK 62.1 -145.967 573.0 19750401 19900504 702685 27518 ATQASUK EDWARD BURNELL SR. MEMORIAL AIRPORT US AK PATQ 70.467 -157.436 29.3 20060501 20170924 702686 106 KIPNUK AIRPORT US AK PAKI 59.931999999999995 -164.028 5.9 20161020 20170224 702686 99999 AKIAK US AK PAKI 60.903 -161.231 9.1 20060501 20161023 702695 96402 JONESVILLE MINE AIRPORT US AK PAJV 61.714 -148.909 167.6 20060101 20111102 702695 99999 SUTTON US AK PAJV 61.717 -148.88299999999998 265.0 19920416 20071231 702696 99999 LAZY MTN/WOLVERINE US AK 61.633 -149.033 236.0 19780315 20040214 702697 107 NEW STUYAHOK AIRPORT US AK PANW 59.45 -157.333 92.1 20150531 20170913 702697 99999 NEW STUYAHOK US AK PANW 59.45 -157.33 92.0 20061010 20170923 702700 489 BRYANT ARMY AIRFIELD HELIPORT US AK PAFR 61.266000000000005 -149.653 118.3 20140114 20170522 702700 99999 FT. RICHARDSON/BRYANT AHP AK US PAFR 61.266999999999996 -149.65 115.0 19731201 20170923 702710 26425 GULKANA AIRPORT US AK PAGK 62.159 -145.459 476.1 19450101 20170924 702711 26439 SHEEP MOUNTAIN AIRPORT US AK PASP 61.812 -147.507 853.4 20060101 20111101 702711 99999 SHEEP MOUNTAIN US AK PASP 61.817 -147.55 799.0 19970203 20071231 702715 46407 SKELTON AIRPORT US AK PAZK 61.949 -147.16899999999998 1002.5 20060101 20170924 702715 99999 EUREKA SKELTON AIR US AK PAZK 61.933 -147.167 1002.0 19950708 20071231 702716 99999 TAHNETA PASS US AK 5GN 61.817 -147.55 900.0 19730102 19960104 702717 99999 SELAWIK US AK PALK 66.6 -159.986 7.6 19730101 20160930 702719 99999 SNOWSHOE LAKE US AK 62.033 -142.667 735.0 19750917 19761207 702720 26401 ELMENDORF AFB AIRPORT US AK PAED 61.253 -149.79399999999998 64.6 20060101 20170924 702720 99999 ANCHORAGE/ELMENDORF US AK PAED 61.25 -149.8 59.0 19410310 20071231 702725 26491 LAKE HOOD SEAPLANE BASE US AK PALH 61.178000000000004 -149.966 27.4 20020101 20170924 702725 99999 ANCHORAGE LAKE HOOD US AK PALH 61.183 -149.967 22.0 19730104 20011231 702730 26451 TED STEVENS ANCHORAGE INTL US AK PANC 61.169 -150.028 36.6 19730101 20170924 702735 26409 MERRILL FIELD AIRPORT US AK PAMR 61.217 -149.855 42.1 19450101 20170924 702735 99999 MERRILL FLD US AK PAMR 61.2 -149.833 42.0 20000101 20031231 702736 99999 FT RICHARDSON/BRYN& US AK 61.266999999999996 -149.65 115.0 19760625 19830721 702740 25331 PALMER MUNICIPAL AIRPORT US AK PAAQ 61.596000000000004 -149.092 70.1 19990101 20170924 702740 99999 PALMER US AK PAAQ 61.595 -149.089 74.0 19730101 19981231 702745 26560 WILLOW AIRPORT US AK PAUO 61.748000000000005 -150.054 62.5 20060101 20111101 702745 99999 WILLOW AIRPORT US AK PAUO 61.754 -150.05200000000002 67.0 19910207 20071229 702746 26497 BIRCHWOOD AIRPORT US AK PABV 61.416000000000004 -149.507 29.3 20060101 20170924 702746 99999 BIRCHWOOD US AK PABV 61.417 -149.5 29.0 19940103 20071231 702750 26442 NATIONAL WEATHER SERVICE OFFICE US AK PAVW 61.13 -146.352 29.0 19730101 20140401 702754 99999 VALDEZ US AK 61.133 -146.25 37.0 19960815 19961009 702755 46404 MCCARTHY AIRPORT US AK PAMX 61.437 -142.904 466.7 20060101 20140901 702755 99999 MCCARTHY US AK PAMX 61.433 -142.933 455.0 19740421 20071231 702756 26479 VALDEZ PIONEER FIELD AIRPORT US AK PAVD 61.132 -146.244 18.3 20060101 20170924 702756 99999 VALDEZ PIONEER FIEL US AK PAVD 61.133 -146.25 36.0 19750501 20071231 702757 26444 WHITTIER AIRPORT US AK PAWR 60.783 -148.733 11.9 20060101 20120520 702757 99999 WHITTIER US AK PAWR 60.766999999999996 -148.683 9.0 19750501 20071231 702758 27517 ALPINE AIRSTRIP US AK PALP 70.344 -150.945 5.5 20060101 20170924 702758 99999 DEADHORSE ALPINE AIR US AK PALP 70.333 -150.933 5.0 20040608 20071231 702759 99999 KOROR PS PTKR 7.332999999999999 134.483 30.0 20040608 20110317 702770 26438 SEWARD AIRPORT US AK PAWD 60.128 -149.417 6.7 20060101 20170924 702770 99999 SEWARD US AK PAWD 60.117 -149.45 18.0 19450101 20071231 702790 26417 CAPE HINCHINBROOK US AK 60.233000000000004 -146.65 56.0 19740101 19800622 702795 99999 HINCHINBROOK US AK 60.4 -146.083 110.0 19730101 19740529 702910 26412 NORTHWAY AIRPORT US AK PAOR 62.961999999999996 -141.938 522.1 19450101 20170924 702913 46402 DEVILS MOUNTAIN LODGE AIRPORT US AK PABN 62.402 -142.995 877.8 20060101 20141001 702913 99999 NABESNA/DEVIL MTN US AK PABN 62.4 -143.0 878.0 19920416 20071231 702915 26486 DUFFY'S TAVERN AIRPORT US AK PADT 62.708999999999996 -143.981 668.1 20060101 20110701 702915 99999 SLANA AIRPORT US AK PADT 62.7 -143.983 730.0 19740904 20071219 702923 26440 TANACROSS US AK TSG 63.383 -143.333 472.0 19440522 19500901 702924 99999 TOK US AK PATJ 63.317 -142.717 509.0 19771006 19850729 702960 26410 M.K.(MUDHOLE) SMITH ARPT US AK PACV 60.489 -145.451 9.5 19420611 20170924 702965 99999 JOHNSTONE POINT US AK 60.483000000000004 -146.6 14.0 19750401 19820729 702980 26445 YAKATAGA US AK PACY 60.083 -142.5 11.0 19730315 19990706 702980 99999 YAKATAGA US PACY 60.083 -142.5 11.0 20010706 20020605 702986 26557 BIG RIVER LAKE US AK PALV 60.81399999999999 -152.297 18.3 20060101 20120806 702986 99999 BIG RIVER LAKE US AK PALV 60.817 -152.3 12.0 19780823 20071231 702987 99999 NIGHTMUTE US AK 60.467 -164.7 4.0 19840911 19850509 703050 25623 CAPE HEWENHAM LRRS AIRPORT US AK PAEH 58.65 -162.067 164.9 20060101 20170924 703050 99999 CAPE NEWENHAM AFS US AK PAEH 58.65 -162.067 161.0 19530726 20071231 703051 26521 HOLY CROSS AIRPORT US AK PAHC 62.183 -159.767 6.1 20060101 20170924 703051 99999 HOLY CROSS US AK PAHC 62.183 -159.783 21.0 20050929 20071231 703052 26652 KALSKAG AIRPORT US AK PALG 61.536 -160.341 16.8 20060117 20170924 703052 99999 KALSKAG US AK PALG 61.533 -160.333 17.0 20050929 20071231 703053 26654 RUSSIAN MISSION AIRPORT US AK PARS 61.775 -161.319 15.5 20060101 20170924 703053 99999 RUSSIAN MISSION US AK PARS 61.766999999999996 -161.317 15.0 19760512 20071231 703054 108 SCAMMON BAY AIRPORT US AK PACM 61.85 -165.567 4.3 20150224 20170923 703054 99999 SCAMMON BAY US AK PACM 61.845 -165.571 4.3 20050929 20170923 703055 109 MANOKOTAK AIRPORT US AK PAMB 58.983000000000004 -159.05 15.9 20150224 20170917 703055 99999 MANOKOTAK US AK PAMB 58.99 -159.05 16.0 20050929 20150602 703056 26635 MOUNTAIN VILLAGE AIRPORT US AK PAMO 62.095 -163.68200000000002 102.7 20060101 20170614 703056 99999 MOUNTAIN VILLAGE US AK PAMO 62.1 -163.683 15.0 20050929 20071231 703057 26653 TOKSOOK BAY AIRPORT US AK PAOO 60.541000000000004 -165.08700000000002 18.0 20060101 20170924 703057 99999 TOOKSOK BAY US AK PAOO 60.533 -165.083 21.0 20050929 20071231 703058 110 NELSON LAGOON AIRPORT US AK PAOU 56.016999999999996 -161.167 4.3 20150224 20170924 703058 99999 NELSON LAGOON US AK PAOU 56.01 -161.16 4.0 20050930 20170922 703059 99999 KING COVE US AK PAVC 55.17 -162.27 47.0 20050930 20170923 703061 25521 IGIUGIG AIRPORT US AK PAIG 59.324 -155.90200000000002 27.4 20060101 20170924 703061 99999 IGIUGIG US AK PAIG 59.3 -155.9 27.0 20050929 20071231 703080 25713 ST PAUL ISLAND AIRPORT US AK PASN 57.155 -170.222 10.7 19431105 20170924 703160 25624 COLD BAY AIRPORT US AK PACD 55.221000000000004 -162.733 23.8 19420304 20170924 703165 25617 SAND POINT AIRPORT US AK PASD 55.318999999999996 -160.52100000000002 6.4 20060101 20170924 703165 99999 SAND POINT US AK 55.333 -160.5 6.0 19730107 20071231 703210 25513 DILLINGHAM AIRPORT US AK PADL 59.05 -158.517 26.2 20060101 20170924 703210 99999 DILLINGHAM MUNI US AK PADL 59.05 -158.517 29.0 19730101 20071231 703260 25503 KING SALMON AIRPORT US AK PAKN 58.683 -156.656 20.4 19420110 20170924 703263 99999 KING SALMON US AK 58.683 -156.683 17.0 19801002 19960630 703330 25508 PORT HEIDEN AIRPORT US AK PAPH 56.958999999999996 -158.632 26.8 20060101 20170924 703330 99999 PORT HEIDEN US AK PAPH 56.95 -158.61700000000002 29.0 19420803 20071215 703333 25518 CHIGNIK AIRPORT US AK PAJC 56.31100000000001 -158.373 5.5 20060101 20170924 703333 99999 CHIGNIK AIRPORT US AK PAJC 56.31 -158.36700000000002 6.0 19980226 20071231 703334 25519 EGEGIK AIRPORT US AK PAII 58.185 -157.386 28.0 20060101 20170924 703334 99999 EGEGIK(AWOS) US AK PAII 58.417 -157.36700000000002 28.0 19930520 20071231 703335 99999 SOUTH NAKNEK ARPT US AK PFWS 58.7 -157.0 49.4 19940818 20170923 703400 25506 ILIAMNA AIRPORT US AK PAIL 59.748999999999995 -154.909 43.6 19730101 20170924 703406 26546 PORT ALSWORTH AIRPORT US AK PALJ 60.20399999999999 -154.316 79.3 20060101 20170924 703406 99999 PORT ALSWORTH AIR US AK PALJ 60.2 -154.317 85.0 19730101 20071231 703407 26553 SLEETMUTE AIRPORT US AK PASL 61.717 -157.15 54.3 20060101 20170924 703407 99999 SLEETMUTE US AK PASL 61.717 -157.15 54.0 19940314 20071231 703410 25507 HOMER AIRPORT US AK PAHO 59.641999999999996 -151.491 19.5 19730101 20170924 703430 25402 MIDDLETON ISLAND METEOROLOGY RADAR SITE US AK PAMD 59.433 -146.333 30.5 19450101 20170924 703430 25403 MIDDLETON ISLAND US AK PAMD 59.433 -146.333 14.0 19771101 19991231 703430 99999 MIDDLETON ISLAND US AK PAMD 59.433 -146.333 14.0 20000101 20071231 703431 25402 MIDDLETON ISLAND AUT US AK PAMD 59.433 -146.333 14.0 19730105 19771121 703500 25501 KODIAK AIRPORT US AK PADQ 57.751000000000005 -152.486 24.4 19450101 20170924 703570 99999 SITKINAK(USCG) US AK 56.55 -154.13299999999998 17.0 19730104 19790105 703600 99999 CAPE SAINT ELIAS US AK 59.8 -144.6 18.0 19730101 19810424 703604 99999 HOMER US AK 59.633 -151.467 26.0 19790316 20120719 703605 25604 PLATINUM AIRPORT US AK PAPM 59.011 -161.82 4.6 20060323 20170924 703605 99999 PLATINUM US AK PAPM 59.0 -161.817 5.0 19421001 20071231 703606 25629 TOGIAK AIRPORT US AK PATG 59.067 -160.36700000000002 6.1 20060101 20170924 703606 99999 TOGIAK US AK PATG 59.05 -160.38299999999998 6.0 19891201 20071231 703610 25339 YAKUTAT AIRPORT US AK PAYA 59.512 -139.671 10.1 19410501 20170924 703615 99999 OCEAN CAPE (CGS) US AK 59.516999999999996 -139.767 3.0 19770610 19770610 703620 25335 SKAGWAY AIRPORT US AK PAGY 59.456 -135.32399999999998 6.1 19431001 20170924 703621 25516 SELDOVIA AIRPORT US AK PASO 59.443000000000005 -151.702 8.8 20060101 20170924 703621 99999 SELDOVIA ARPT US AK PASO 59.45 -151.7 9.0 19980316 20071231 703625 99999 HAINES BOAT HARBOR US AK 59.233000000000004 -135.433 10.0 19730719 19960429 703626 25323 HAINES US AK PAHN 59.243 -135.509 4.6 19960613 20170924 703627 99999 PEDRO BAY US AK 59.783 -154.13299999999998 14.0 20040702 20040928 703640 99999 ELDRED ROCK US AK 58.967 -135.217 10.0 19730101 20010718 703644 27515 NUIQSUT AIRPORT US AK PAQT 70.212 -151.002 17.4 20060101 20170924 703644 99999 NUIQSUT US AK PAQT 70.2 -151.0 12.0 19990114 20071231 703650 25316 CAPE SPENCER US AK KCSP 58.2 -136.63299999999998 27.1 19730101 19891011 703655 26552 HUSLIA AIRPORT US AK PAHL 65.69800000000001 -156.351 54.9 20060101 20170924 703655 99999 HUSLIA US AK PAHL 65.7 -156.63299999999998 65.0 20041228 20071231 703656 99999 QUINHAGAK AIRPORT US AK PAQH 59.75 -161.833 13.0 20140211 20170923 703670 25322 GUSTAVUS US AK PAGS 58.411 -135.709 12.2 19760801 20170924 703670 99999 GUSTAVUS US AK PAGS 58.425 -135.707 10.0 20000101 20071231 703675 99999 SISTERS ISLAND US AK SSR 58.167 -135.25 11.0 19730101 19840701 703710 25333 SITKA ROCKY GUTIERREZ ARPT US AK PASI 57.048 -135.365 14.0 19730101 20170924 703715 99999 BIORKA ISLAND SAWRS US AK 56.85 -135.533 15.0 19730101 19780829 703724 99999 WILLOW WEST US AK 61.75 -150.05 63.4 19771203 19910124 703810 25309 JUNEAU INTERNATIONAL US AK PAJN 58.357 -134.564 4.9 19730101 20170924 703815 99999 PT. RETREAT (AMOS) US AK 58.4 -134.95 15.0 19730101 19891011 703816 99999 FUNTER BAY SEAPLANE US AK 58.25 -134.9 0.0 19740428 19960630 703817 25357 ELFIN COVE SEAPLANE BASE US AK PAEL 58.192 -136.344 6.1 20060101 20170915 703817 99999 ELFIN COVE SEAPLANE US AK PAEL 58.2 -136.35 0.0 19741219 20071231 703830 25310 ANGOON SEAPLANE BASE US AK PAGN 57.498999999999995 -134.586 8.5 19730101 20170924 703835 25628 ST. GEORGE AIRPORT US AK PAPB 56.6 -169.565 38.1 20060101 20170924 703835 99999 ST GEORGE US AK PAPB 56.567 -169.65 38.0 19980226 20071231 703850 99999 FIVE FINGER LIGHT US 57.266999999999996 -133.61700000000002 11.0 19730101 20020524 703855 25369 KAKE AIRPORT US AK PAFE 56.967 -133.9 52.4 20060101 20170924 703855 99999 KAKE US AK PAFE 56.95 -133.9 52.0 19730101 20071231 703860 25329 JAMES A JOHNSON AIRPORT US AK PAPG 56.806000000000004 -132.937 32.6 19730101 20170924 703860 99999 PETERSBURG US AK PAPG 56.817 -132.967 0.0 20000101 20071231 703863 99999 FREDERICKS POINT US AK 56.8 -132.817 3.0 19850618 19850618 703865 99999 LEVEL ISLAND US AK 56.467 -133.1 30.0 19730901 19780329 703870 25338 WRANGELL AIRPORT US AK PAWG 56.473 -132.387 17.1 20060101 20170924 703870 99999 WRANGELL US AK PAWG 56.483999999999995 -132.37 13.0 19730101 20071231 703880 25315 CAPE DECISION US AK KCDE 56.0 -134.13299999999998 14.9 19730101 19891011 703880 99999 CAPE DECISION(AMOS) US AK CDE 56.0 -134.13299999999998 14.9 20001201 20060223 703884 25376 HYDABURG SEAPLANE BASE US AK PAHY 55.206 -132.828 0.0 20060101 20170924 703884 99999 HYDABURG SEAPLANE BA US AK PAHY 55.2 -132.833 0.0 19781205 20071231 703885 99999 CAPE POLE SEAPLANE US AK Z27 55.967 -133.8 1.0 19740318 19780801 703886 25348 PORT ALEXANDER SPB US AK PAAP 56.247 -134.645 3.7 20060101 20151117 703886 99999 PORT ALEXANDER US AK PAAP 56.247 -134.65 0.0 19790507 20071231 703887 99999 ST MICHAEL US AK 63.48 -162.1 28.0 20100527 20100527 703888 111 SHAKTOOLIK AIRPORT US AK PFSH 64.37 -161.224 7.0 20170912 20170924 703888 99999 SHAKTOOLIK AIRPORT US AK PFSH 64.37100000000001 -161.224 7.0 20101101 20170922 703891 99999 ELIM AIRPORT US AK PFEL 64.617 -162.267 49.0 20130731 20170923 703894 25367 KLAWOCK AIRPORT US AK PAKW 55.58 -133.075 3.7 20000101 20170924 703894 99999 KLAWOCK US AK PAKW 55.567 -133.067 24.0 19801015 19991231 703920 25317 CRAIG SEAPLANE US AK CGA 55.483000000000004 -133.15 0.0 19730102 19740129 703920 99999 CRAIG SEAPLANE US AK 55.483000000000004 -133.15 0.0 20020425 20020425 703921 99999 US AK 19740301 19740331 703925 112 KOLIGANEK AIRPORT US AK PAJZ 59.733000000000004 -157.267 82.3 20130102 20170924 703925 99999 KOLIGANEK US AK PAJZ 59.73 -157.26 82.0 20070521 20170803 703926 99999 AKHIOK US AK PAKH 56.933 -154.183 13.0 20070521 20170525 703930 99999 20010921 20040521 703950 25325 KETCHIKAN INTL AIRPORT US AK PAKT 55.357 -131.71200000000002 23.2 19730101 20170924 703980 25308 ANNETTE ISLAND AIRPORT US AK PANT 55.038999999999994 -131.579 33.2 19410714 20170924 703985 25377 METLAKATLA SEAPLANE BASE US AK PAMM 55.131 -131.578 0.0 20060101 20170924 703985 99999 METLAKATLA SEAPLANE US AK PAMM 55.133 -131.583 0.0 19980226 20071231 704090 45709 ATTU US AK 52.833 173.183 21.0 19430607 19871020 704140 45715 EARECKSON AIR STATION AIRPORT US AK PASY 52.717 174.1 37.2 20060103 20170924 704140 99999 EARECKSON AS US AK PASY 52.717 174.1 31.0 19430621 20071231 704540 25704 ADAK NAS US AK PADK 51.883 -176.65 5.2 19421030 20170924 704540 99999 ADAK (NAS) US AK PADK 51.883 -176.65 5.0 20000101 20031231 704545 99999 AMCHITKA ISLAND US AK 51.383 179.267 69.0 19430131 19931001 704820 25626 NIKOLSKI US AK 52.95 -168.85 21.0 19420910 19940514 704851 99999 UMNAK (FORT GLEN) US AK 53.367 -167.9 39.0 19420226 19501123 704890 25616 DUTCH HARBOR AIRPORT US AK PADU 53.895 -166.543 3.1 20081124 20170924 704890 99999 DUTCH HARBOR US AK PADU 53.9 -166.55 4.0 19460101 20081123 704891 99999 NORTH ROCK HARBOR US AK 53.883 -166.533 4.0 19760801 19761018 704895 99999 CAPE SARICHEF ARPT US AK 54.6 -164.933 9.0 19730104 19800802 704896 25625 PORT MOLLER US AK KPML 56.0 -160.517 321.0 19590626 19740306 704897 25515 DRIFTWOOD BAY US AK KDFB 53.967 -166.85 395.9 19730207 19731224 704898 113 ROBERT (BOB) CURTIS MEMORIAL AIRPORT US AK PFNO 66.818 -161.02200000000002 17.1 20130101 20170923 704898 99999 REBERT (BOB) CURTIS MEMORIAL ARPT US AK PFNO 66.818 -161.02200000000002 16.8 19730103 20121231 710010 99999 BURWASH CA CYDB 61.371 -139.041 806.8 20070228 20170923 710020 99999 CHURCHILL FALLS CA CZUM 53.567 -64.1 439.5 20080408 20170923 710030 99999 LA GRANDE 4 CA 53.75 -73.683 306.3 20070306 20170314 710040 99999 CYPRESS BOWL FREESTYLE CA CVOZ 49.4 -123.2 969.0 20070301 20100623 710050 99999 ALBERT HALL AGCM CA 53.1 -111.167 658.0 20071124 20170923 710060 99999 ALLIANCE AGCM CA 52.3 -111.76700000000001 737.0 20071124 20170923 710070 99999 BARONS AGCM CA 50.016999999999996 -113.21700000000001 967.0 20071124 20170923 710080 99999 BASSANO AGCM CA 50.883 -112.45 807.0 20071124 20170923 710090 99999 BEISEKER AGCM CA 51.367 -113.35 896.0 20071124 20170923 710100 99999 BELLSHILL AGCM CA CPBL 52.583 -111.46700000000001 721.0 20071016 20170923 710110 99999 BIG VALLEY AGCM CA 51.983000000000004 -112.8 870.0 20071124 20170923 710120 99999 CADOGAN AGCM CA 52.333 -110.5 690.0 20071124 20170923 710130 99999 CRAIGMYLE AGCM CA 51.766999999999996 -112.25 845.0 20071124 20170923 710140 99999 DELBURNE AGCM CA 52.183 -113.18299999999999 889.0 20080401 20170923 710150 99999 MILK RIVER RIDGE RESEVOIR CA CPRR 49.283 -112.53299999999999 1305.0 20090801 20170923 710160 99999 BULLHORN HEADWATERS CA CPBH 49.15 -113.55 1326.0 20071124 20170923 710170 99999 STEFANSSON ISLAND NU CA CXSE 73.75 -105.28299999999999 11.0 20040831 20170923 710180 99999 RESOLUTE CS CA CXRB 74.717 -94.98299999999999 30.0 20040803 20170923 710190 99999 ST LEONARD CS NB CA CWIY 47.15 -67.817 245.0 20030617 20170205 710200 99999 YOHIN NWT CA CXYH 61.233000000000004 -123.73299999999999 204.0 20030330 20170923 710205 99999 WEKWEETI CA CYWE 64.183 -114.083 368.0 20121115 20170923 710210 99999 DEADMEN VALLEY NWT CA CXDK 61.25 -124.46700000000001 283.0 20040713 20170923 710220 99999 PRINCE RUPERT CA 54.283 -130.433 35.0 20040831 20170923 710230 99999 JIMMY LAKE CA CWHN 54.92 -109.95 658.0 20030330 20170923 710240 99999 FORT VERMILION CA CXFV 58.383 -116.03299999999999 289.0 20030617 20170923 710260 99999 MEDICINE HAT RCS CA CXMW 50.033 -110.71700000000001 715.0 20030330 20170923 710267 99999 MAPLE PLAINS CA 46.3 -63.583 46.0 20050217 20170923 710268 99999 HOWICK CA 45.167 -73.867 42.0 20040921 20070614 710269 99999 ILE CHARRON QUE. CA CWVZ 45.58 -73.5 12.0 20050217 20071127 710270 99999 INGONISH BEACH CS CA CXIB 46.667 -60.4 8.0 20030617 20170923 710280 99999 TATLAYOKO LAKE RCS BC CA CXTL 51.667 -124.4 875.0 20030617 20170923 710290 99999 HOLMAN CS CA CXHI 70.75 -117.8 30.0 20030617 20170923 710300 99999 GRAND MANAN SAR CS CA 44.7 -66.8 78.0 20030617 20170923 710310 99999 DISCOVERY ISLAND CA CWDR 48.42 -123.23 15.0 19921008 20170923 710320 99999 PRINCETON CS BC CA CWPR 49.467 -120.5 700.0 19921216 20170923 710323 99999 NANAKWA SHOALS CA 53.817 -128.833 0.0 19860916 19880702 710324 99999 WHISTLER CA CWAE 50.117 -122.95 658.0 19990114 20050612 710325 99999 NOOTKA LIGHTSTATION CA CWCV 49.6 -126.62 16.0 19990114 20011214 710326 99999 ADDENBROKE ISLAND CA CWCZ 51.6 -127.87 21.0 19990114 20011213 710327 99999 EGG ISLAND CA CWEM 51.25 -127.83 14.0 19990114 20011214 710328 99999 CAPE SCOTT CA CWES 50.78 -128.43 72.0 19990114 20011214 710329 99999 IVORY ISLAND CA CWJG 52.27 -128.4 10.0 19990114 20011213 710330 99999 KEY LAKE SK CA 57.25 -105.6 513.9 20110622 20170923 710333 99999 TORONTO WEATHER CEN CA 43.783 -79.467 187.0 19860916 19880131 710334 99999 SIKANNI CHIEF B. C. CA CWKS 57.25 -122.72 937.0 19990114 20030515 710335 99999 GREEN ISLAND LIGHT STATION - HEL CA CWNJ 54.57 -130.7 12.0 19990114 20011213 710336 99999 TETSA RIVER CA CWTH 58.65 -124.23 804.0 19990114 20030515 710337 99999 TRIPLE IL LH CA 54.3 -130.88299999999998 21.0 19990115 20011213 710338 99999 BONILLA ISLAND CA CWVB 53.5 -130.63 16.0 19990115 20011213 710339 99999 MUNCHO LAKE CA CWWQ 58.92 -125.77 835.0 19990114 20030515 710340 99999 TRIAL ISLAND CA 48.4 -123.3 23.0 20040709 20050901 710344 99999 HOLBERG B. C. CA CWXH 50.63 -128.12 568.0 19990122 20011120 710345 99999 BOAT BLUFF CA CWZM 52.65 -128.52 11.0 19990114 20011213 710347 99999 CALGARY SPRINGBANK CA CYBW 51.1 -114.367 1200.0 19990114 20031021 710348 99999 CHETWYND CA CYCQ 55.687 -121.62700000000001 609.6 19990114 20170923 710349 99999 MAKKOVIK CA CYFT 55.083 -59.183 71.0 19990114 20170923 710350 99999 LINDEN AGCM CA 51.617 -113.65 914.0 20080109 20170923 710351 99999 MONT TREMBLANT INTL INC CA CYFJ 46.409 -74.78 252.1 19420904 20041124 710352 99999 ST-GEDEON CA CWIU 48.48 -71.78 103.0 20050315 20061222 710354 99999 GOLDEN CA CYGE 51.299 -116.98200000000001 784.9 19990114 20170923 710355 99999 FORT LIARD CA CYJF 60.233000000000004 -123.48299999999999 215.0 19990114 20170922 710356 99999 EKATI CA CYOA 64.7 -110.617 469.0 19990114 20170923 710358 99999 DELINE CA CYWJ 65.211 -123.436 218.0 19990114 20170923 710359 99999 LAC MEMPHREMAGOG CA CWTT 45.27 -72.17 209.0 20040921 20170923 710360 99999 DAUPHIN BARKER CA CYDN 51.101000000000006 -100.053 304.2 20030617 20170923 710361 99999 RUISSEAU CRANBERRY CA 45.117 -73.667 59.0 20040921 20070614 710362 99999 ROUGEMONT CA 45.4 -73.05 54.0 20050428 20060601 710363 99999 PIEDMONT CA 45.867 -74.083 175.0 20040921 20060718 710364 99999 L'ARTIFICE CA 45.067 -73.817 61.0 20040923 20070614 710365 99999 BEAUHARNOIS CA 45.317 -73.9 22.0 20040921 20060718 710366 99999 COVEY HILL CA 45.0 -73.883 262.0 20040921 20070614 710367 99999 GRANBY CA CMGB 45.367 -72.767 86.0 20040921 20170923 710369 99999 KELP REEFS CA CWZO 48.55 -123.23299999999999 0.0 20130501 20140922 710370 99999 POINT ATKINSON CA CWSB 49.33 -123.265 35.0 20030617 20170923 710371 99999 RUSSELTOWN CA 46.2 -72.45 55.0 20040921 20070614 710372 99999 SAINT-CELESTIN CA 46.2 -72.45 55.0 20040921 20070614 710373 99999 SAINT-CHRYSOSME CA 45.117 -73.767 55.0 20040921 20060702 710374 99999 SAINT-CONSTANT CA 45.317 -73.567 39.0 20040921 20060727 710375 99999 SAINT-MICHEL-DE-NAPIERVILLE CA CMSX 45.18 -73.62 59.0 20040921 20060812 710376 99999 FLIN FLON CA CYFO 54.678000000000004 -101.682 303.9 20050215 20170923 710377 99999 GILLAM CA CWGX 56.37 -94.7 145.0 20050215 20170923 710378 99999 SAINT-SABINE CA 45.217 -73.017 49.0 20041005 20061218 710380 99999 DOAKTOWN AUTO RCS CA 46.6 -66.017 44.5 20040914 20170923 710390 99999 CARMACKS CS CA CXCK 62.117 -136.2 543.0 20030617 20170923 710400 99999 LATERRIERE QUE CA CXLT 48.3 -71.117 163.0 19930408 20170923 710410 99999 PORT HAWKESBURY CA CYPD 45.657 -61.368 114.9 20100604 20170923 710415 99999 LUNENBURG CA CXLB 44.37 -64.3 4.0 20050217 20170923 710416 99999 ST-HENRI CA CWIA 48.65 -71.85 103.0 20041019 20091021 710420 99999 DELTA BURNS BOG CA CVBB 49.133 -123.0 3.0 20010916 20170923 710430 99999 NORMAN WELLS CA CYVQ 65.282 -126.79799999999999 72.5 19450101 20170923 710435 99999 FORT GOOD HOPE CA CYGH 66.241 -128.651 81.7 19340101 20170923 710440 99999 OLD CROW YT CA CZOC 67.567 -139.833 251.0 19960501 20170923 710445 99999 THUNDER BAY CA ON CZTB 48.367 -89.333 198.0 20040831 20050912 710450 99999 TESLIN (AUT) YT CA CWZW 60.167 -132.733 705.0 19430901 20170923 710455 99999 TESLIN CA CYZW 60.173 -132.743 705.0 19770701 20170923 710460 99999 KOMAKUK BEACH CA CWKM 69.62 -140.2 13.0 19981224 20170923 710470 99999 MANNWILLE AGCM CA 53.45 -111.25 656.0 20080401 20170923 710480 99999 ACADIA VALLEY CA CPAC 51.05 -110.31700000000001 735.0 19950423 20170923 710490 99999 WAGER BAY (AUT) MAN CA CXWB 65.867 -89.43299999999999 18.0 19940101 20170923 710500 99999 PUNTZI MOUNTAIN (AUT) BC CA CWPU 52.1 -124.133 910.0 19770701 20170923 710501 99999 KLEENA KLEENE CA 51.983000000000004 -124.98299999999999 899.0 19570106 19590331 710505 99999 PUNTZI MTN AUT CA 52.117 -124.083 -999.0 19770701 19830322 710510 99999 MANYBERRIES AGCM CA 49.367 -110.68299999999999 927.0 19551102 20170923 710513 27201 SACHS HARBOUR A CA NT CYSY 72.0 -125.26700000000001 86.0 19930101 20170923 710513 99999 SACHS HARBOUR CA CYSY 72.0 -125.26700000000001 85.6 19870305 20071231 710514 99999 MARATHON CA CYSP 48.755 -86.344 315.5 20071025 20170923 710520 99999 STORM HILLS CA CWVH 68.9 -133.93 261.0 20030921 20170923 710530 99999 CLINTON POINT CA CWXK 69.583 -120.8 101.0 19770701 19930812 710531 99999 19570701 19630731 710533 99999 CAPE BATHURST CA 0.0 0.0 -999.0 19870410 19870430 710534 99999 CLINTON POINT CA YUH 69.583 -120.75 98.0 19790131 19790131 710550 99999 COLVILLE LAKE NWT CA CWFX 67.021 -126.12299999999999 259.0 19930701 20170213 710560 99999 FORT CHIPEWYAN RCS CA CPCH 58.766999999999996 -111.117 238.0 19930701 20170923 710561 99999 CLUT LAKE(AUT) CA CWCX 65.6 -117.76700000000001 185.0 19571003 19880105 710563 99999 DAWSON CREEK CA 55.733000000000004 -120.18299999999999 671.0 19430501 20170923 710564 99999 DEASE LAKE CA 58.417 -130.033 813.0 20040901 20120214 710565 99999 PRIMROSE LAKE DND CA CWIQ 54.75 -110.05 702.0 20070628 20131017 710570 99999 MOSSLEIGH AGCM CA 50.667 -113.333 965.0 20080721 20170923 710580 99999 KEATS POINT NWT CA CWKP 69.667 -121.667 330.0 20040923 20170923 710590 99999 CROKER RIVER CA CWXR 69.27 -119.22 69.0 19981224 20170923 710600 99999 NORDEGG CS ALTA CA CXND 52.467 -116.06700000000001 1362.0 19840101 20170923 710603 99999 CAMSELL RIVER(MARS) CA WOA 65.617 -118.117 230.0 19831103 19840118 710610 99999 BARRHEAD CS CA CXBD 54.1 -114.45 648.0 19770708 20170923 710613 99999 PORT RADIUM CA 66.1 -117.93299999999999 213.0 19380905 19480101 710614 99999 INDIN RIVER (MAPS) CA 64.383 -115.01700000000001 478.0 19910418 19930615 710620 99999 VIOLET GROVE CS ALTA CA CXVG 53.15 -115.117 903.0 19770701 20170923 710621 99999 19590105 19620831 710624 99999 CONTWOYTO CA 65.483 -110.367 451.0 19790131 19790131 710630 99999 OTTAWA CDA RCS ONT CA 45.383 -75.717 79.0 19770701 20170923 710633 99999 FORT RESOLUTION CA CYFR 61.181000000000004 -113.69 160.3 19340101 20170922 710635 99999 BOW DRILL II CA WDE 47.1 -48.2 -999.0 19850130 19860718 710636 99999 BOW DRILL I CA 46.5 -48.4 37.0 19850130 19860220 710637 99999 BOGUS CANADIAN CA VERR 0.0 0.0 -999.0 19850208 19861009 710638 99999 BOGUS CANADIAN CA VSBC 0.0 0.0 -999.0 19850130 19850731 710639 99999 DEVILS HEAD (AUTO) CA 0.0 0.0 -999.0 19850208 19850909 710640 99999 CAPE PEEL WEST CA CWPX 69.03 -107.82 165.0 19981224 20170923 710650 99999 MYRNAM AGCM CA 53.717 -111.117 580.0 20080401 20170923 710660 99999 HIGH LEVEL CA CYOJ 58.621 -117.165 338.3 19770701 20170923 710670 99999 NEW SERPTA AGCM CA 53.266999999999996 -113.167 765.0 20080401 20170923 710680 99999 PEACE RIVER CA CYPE 56.227 -117.447 570.9 19590109 20170923 710685 99999 HIGH PRAIRIE ARPT CA ZHP 55.417 -116.5 0.0 19830723 19890721 710690 99999 SLAVE LAKE CA CYZH 55.293 -114.777 583.4 19550702 20170923 710691 99999 WAGNER CA 55.35 -114.98299999999999 584.0 19430521 19460116 710700 99999 PAKOWKI LAKE AGCM CA 49.217 -111.133 915.0 20080401 20170923 710702 99999 JOHNSON POINT CA CYUN 72.767 -118.5 9.0 19780422 19791025 710710 99999 JENNY LIND ISL ARPT CA CYUQ 68.65 -101.73299999999999 18.0 19770701 20050827 710713 99999 ROCK RIVER (MAPS) CA 66.783 -136.333 610.0 19891023 19910611 710720 99999 THUNDER BAY CA 48.367 -89.31700000000001 199.0 19480513 20170923 710725 99999 MOULD BAY CAMP CA 76.233 -119.31700000000001 12.0 19940318 19970310 710730 99999 QUEENSTOWN CA CPQU 50.6 -112.8 941.0 19550702 20170923 710733 99999 FORT RELIANCE NWT CA 62.717 -109.18299999999999 168.0 19910204 19930615 710734 99999 RANKIN INLET AUT CA YRT 62.817 -93.167 32.0 19781108 19810131 710735 99999 WHALE COVE AIRPORT CA CYXN 62.233000000000004 -92.6 20.0 19781205 20170923 710736 99999 FORT RELIANCE & CA 62.717 -109.167 160.0 19790131 19790131 710740 99999 ISACHSEN (AUT) NU CA CWIC 78.783 -103.55 58.0 19480503 20170202 710750 99999 COLLINS BAY SASK CA CWWC 58.183 -103.7 492.0 19770701 20170923 710751 99999 EMBARRAS CA 58.2 -111.383 236.0 19550702 19620921 710754 99999 COLLINS BAY (AUTO8) CA 58.183 -103.68299999999999 490.0 19790131 19790131 710760 99999 URANIUM CITY (AUT) CA CWDC 59.567 -108.48299999999999 318.0 19620501 20170923 710763 99999 URANIUM CITY(MARS) CA 59.567 -108.48299999999999 318.0 19880303 19910124 710764 99999 BEARTOOTH ISL(MAPS) CA 59.217 -109.7 238.0 19900907 19930615 710770 99999 BUFFALO NARROWS (AUT) SASK CA CWVT 55.833 -108.43299999999999 440.0 19770701 20170923 710774 99999 BUFFALO NARROWS CA CYVT 55.842 -108.41799999999999 440.1 19790131 20170923 710780 99999 LYNN LAKE CA CYYL 56.864 -101.07600000000001 356.6 19770701 20170923 710790 99999 THOMPSON CA CYTH 55.801 -97.86399999999999 222.2 19671108 20170923 710800 99999 MACKAR INLET CA CWUU 68.3 -85.667 395.0 19571101 20050529 710804 99999 MACKAR INLET CA YUU 68.3 -85.68299999999999 399.0 19790131 19791027 710810 99999 HALL BEACH CA CYUX 68.77600000000001 -81.244 8.2 19570801 20170923 710814 99999 IGLOOLIK AIRPORT CA CYGT 69.367 -81.817 51.0 19791219 20170922 710820 99999 ALERT UA CA CWLT 82.5 -62.333 65.0 19500601 20061003 710823 99999 ALERT CA CYLT 82.51799999999999 -62.281000000000006 30.5 19870305 20170922 710824 99999 ALERT (READAC) CA ZLR 82.5 -62.35 66.0 19880513 19921210 710830 99999 RANKIN INLET CA CYRT 62.81100000000001 -92.116 28.7 19810206 20170923 710840 99999 HAT ISLAND CA CWIL 68.32 -100.08 36.0 19981224 20170923 710850 99999 PINCHER CREEK CA CZPC 49.516999999999996 -114.0 1190.0 19930701 20170923 710860 99999 FT. PROVIDENCE NWT CA 61.667 -117.25 159.0 20041101 20050619 710870 99999 FORT PROVIDENCE NWT CA CWID 61.317 -117.6 162.0 19930615 20170923 710871 99999 BIRD CA 56.5 -94.2 87.0 19571001 19630731 710880 99999 ROWLEY ISLAND CA CWRX 69.07 -79.07 41.0 19981224 20170923 710881 99999 AXEL HEIBERG ISLAND CA 78.2 -89.71700000000001 61.0 19610820 19611130 710890 99999 RIBSTONE SOUTH AGCM CA 52.583 -110.35 644.0 20080401 20170923 710900 99999 CLYDE RIVER CA CYCY 70.486 -68.517 26.5 19770701 20170923 710901 99999 19421116 19630731 710903 99999 CYLDE AIRPORT & CA 70.5 -68.5 26.0 19880201 19910122 710910 99999 LONGSTAFF BLUFF CA CWLX 68.88 -75.13 162.0 19571202 20170902 710914 99999 LONGSTAFF BLF ARPT CA CYUV 68.933 -75.283 14.0 19790131 19910630 710920 99999 DEWAR LAKES CA CWUW 68.65 -71.17 518.0 19770701 20170923 710921 99999 19580202 19630731 710924 99999 DEWAR LAKES CA YUW 68.65 -71.233 515.0 19790131 19820919 710930 99999 CAPE HOOPER CA CWUP 68.467 -66.783 390.0 19570801 20170923 710933 99999 PANGIRTUNG (AUTOB) CA 66.15 -65.733 23.0 19901018 19930701 710934 99999 PANGNIRTUNG CA CYXP 66.145 -65.714 22.9 19340101 20170923 710935 99999 CAPE HOOPER & CA YUZ 68.433 -66.783 396.0 19790131 19790821 710940 99999 CAPE DYER CA CWFD 66.65 -61.383 725.0 19551208 20170903 710944 99999 REPULSE BAY CA CYUT 66.521 -86.225 24.4 19781205 20170923 710950 99999 POND INLET CA CYIO 72.683 -77.967 55.2 19340101 20170923 710951 99999 ROWLEY ISLAND CA 69.083 -79.033 59.0 19590207 19630731 710960 99999 BROUGHTON ISLAND CA CWVD 67.53 -63.78 584.0 19600402 20170923 710964 99999 QIKIQTARJUAQ CA CYVM 67.546 -64.031 6.4 19790131 20170923 710970 99999 BREVOORT ISLAND CA CWOB 63.33 -64.15 367.0 19600428 20170923 710980 99999 SANDY LAKE CA CZSJ 53.067 -93.35 290.0 19770701 20170923 710981 99999 19550702 19630731 710983 99999 KILLINEK (MAPS) CA 60.417 -64.85 31.0 19900724 19910124 710990 99999 FORT SEVERN CA CYER 56.016999999999996 -87.68299999999999 16.0 20061030 20170923 711000 99999 TRIPLE ISLAND LIGHT CA CWTI 54.3 -130.88299999999998 21.0 19770701 20050715 711010 99999 SANDSPIT AWOS BC CA CVZP 53.25 -131.8 6.0 19480101 20170923 711014 99999 ROSE SPIT (AUT) CA WRO 54.2 -131.65 0.0 19840914 19840921 711015 99999 SANDSPIT 'A' (AUTO) CA CZZP 53.25 -131.833 6.0 19941007 19950602 711020 99999 RIVERCOURSE AGCM CA 53.016999999999996 -110.1 669.0 19770701 20170923 711024 99999 ETHELDA BAY CA YTC 53.05 -129.683 6.0 19790131 19790615 711030 99999 QUESNEL CA CYQZ 53.026 -122.51 545.3 19550702 20170923 711033 99999 QUESNEL AUT CA CWQZ 53.03 -122.52 545.0 19890616 19940920 711034 99999 BOWRON LAKE LODGE CA 53.25 -121.417 914.0 19910108 19910207 711040 99999 WILLIAMS LAKE CA CYWL 52.183 -122.054 940.3 19440701 20170923 711046 99999 HORSEFLY RIVER (AUT) CA CWFR 52.0 -121.0 846.0 19930701 20011002 711050 99999 ROLLING HILLS AGCM CA CPRH 50.25 -111.7 645.0 19830301 20170923 711051 99999 19550702 19630731 711054 99999 SPRING ISLAND CA 50.0 -127.417 9.0 19770701 19860809 711055 99999 PINE ISLAND (MAPS) CA WPI 50.333 -127.96700000000001 4.0 19800905 19830322 711060 94234 TOFINO AIRPORT CA BC CYAZ 49.083 -125.76700000000001 24.0 19581202 20170923 711060 99999 TOFINO CA CYAZ 49.082 -125.773 24.4 20000101 20071231 711064 99999 QUATSINO LIGHTSTATION CA CWIF 50.43 -128.03 21.0 19990104 20011214 711070 25342 CAPE ST JAMES CS CA BC CWZV 51.933 -131.0 92.0 19770701 19930114 711070 99999 CAPE ST JAMES CS BC CA CWZV 51.933 -131.0 92.0 20010705 20170923 711071 99999 19550703 19630731 711073 99999 SCUDDER POINT CA CWZD 52.45 -131.23 5.0 19910411 19960604 711074 99999 HOSKINS INLET(MAPS) CA WZK 52.533 -131.55 8.0 19790131 19950501 711080 99999 ABBOTSFORD CA CYXX 49.025 -122.363 59.4 19550702 20170923 711090 99999 PORT HARDY CA CYZT 50.681000000000004 -127.367 21.6 19550705 20170923 711100 99999 ST LAWRENCE CA CADS 46.917 -55.383 49.0 19550702 20170923 711110 99999 SANDSPIT CA 53.25 -131.8 6.0 19770701 20170607 711111 99999 DOG CREEK CA 51.633 -122.25 1027.0 19550702 19601130 711120 99999 RICHMOND OPERATION CENTRE CA 49.167 -123.06700000000001 16.0 19801001 20170923 711121 99999 ASHCROFT CA 50.7 -121.31700000000001 488.0 19550702 19630731 711130 99999 AGASSIZ CS CA CWZA 49.25 -121.76700000000001 19.0 19770704 20170923 711131 99999 PACHENA POINT CA 48.717 -125.1 46.0 19550702 19581114 711133 99999 WHISTLER ALTA LAKE& CA CWAE 50.133 -122.95 658.0 19880318 19970328 711134 99999 ENTRANCE ISL.(CS) CA 49.217 -123.8 5.0 19920408 19950414 711140 99999 HOPE (AUT) BC CA CVPE 49.367 -121.48299999999999 39.0 19550702 20170923 711143 99999 HOPE (READAC) CA ZHE 49.367 -121.5 41.0 19910611 19921210 711145 99999 HOPE CA WHE 49.367 -121.48299999999999 38.0 19770701 19910522 711146 99999 OSOYOOS (AUTO8) CA 49.033 -119.43299999999999 283.0 19900724 19950414 711147 99999 SUMMERLAND CDA(AUT) CA 49.567 -119.65 454.0 19930724 19950414 711150 99999 VERNON AUTO CA CWJV 50.217 -119.18299999999999 482.0 19770701 20170923 711153 99999 VERNON (AUTO8) CA CWJV 50.233000000000004 -119.28299999999999 555.0 19910801 19950605 711160 99999 ONEFOUR CDA ALTA CA CWOE 49.117 -110.46700000000001 935.0 19910801 20170923 711170 99999 MOBILE UPPER AIR STATION CA CEWO 40.0 -50.0 76.1 20030226 20040607 711180 99999 WAINWRIGHT CFB AIRFIELD 21 ALTA CA CZWN 52.817 -111.1 686.0 20010916 20170923 711190 99999 EDMONTON STONY PLAIN ALTA CA CWSE 53.533 -114.1 766.0 19940314 20050412 711200 99999 COLD LAKE CA CYOD 54.405 -110.279 541.0 19550702 20170923 711210 99999 EDMONTON/NAMAO(MIL) CA CYED 53.667 -113.46700000000001 688.0 19441010 20170923 711220 99999 BANFF CS CA CWZG 51.2 -115.55 1397.0 19550702 20170923 711224 99999 BANFF CA 51.183 -115.56700000000001 1384.0 19790131 19790131 711225 99999 YOHO PARK CA 51.45 -116.333 1615.0 19921216 19950414 711226 99999 BANFF (MARS) CA 51.2 -115.55 1396.0 19811112 20101231 711228 99999 BOW VALLEY (AUTOB) CA 51.083 -115.06700000000001 1298.0 19910801 19930330 711230 99999 EDMONTON INTL CA CYEG 53.31 -113.58 723.3 19601114 20170923 711233 99999 EDMONTON VILLENEUVE CA CZVL 53.668 -113.854 687.3 19850102 20170923 711234 99999 NAKISKA RIDGETOP CA 50.95 -115.18299999999999 1914.0 19910827 19941122 711240 99999 EDMONTON STONY PLAIN CS ALTA CA 53.55 -114.1 766.0 19820901 20130430 711241 99999 19550702 19580813 711250 99999 MEADOW LAKE A CA CYLJ 54.125 -108.523 480.4 19770701 20170923 711253 99999 MEADOW LAKE (AUTO8) CA CWLJ 54.133 -108.53299999999999 480.0 19891017 20170923 711260 99999 STONY PLAIN CA 53.55 -114.1 766.0 19770701 20031007 711270 99999 EDMONTON STONY PLAIN CS CA CXPS 53.55 -114.117 766.0 19770705 20170923 711275 99999 JIMMY LAKE AWOS CA 54.9 -109.96700000000001 637.0 19920122 20070307 711280 99999 SUFFIELD CA 50.266999999999996 -111.18299999999999 770.0 19910321 20031128 711284 99999 VAUXHALL LDA CA 50.05 -112.133 779.0 19920807 19930330 711290 99999 KINDERSLEY CA CYKY 51.518 -109.181 694.0 19580701 20170923 711294 99999 KINDERSLEY ARPT & CA 51.467 -109.167 683.0 19790131 19910124 711300 99999 NIPAWIN AIRPORT CA CYBU 53.333 -104.0 374.0 19770701 20170923 711303 99999 NIPAWIN (AUTO8) CA WBU 53.333 -104.0 373.0 19881224 19950605 711310 99999 EASTEND CYPRESS (AUT) SASK CA CWEH 49.433 -108.98299999999999 1080.0 19770701 20170923 711320 99999 STONY RAPIDS ARPT CA CYSF 59.25 -105.833 250.0 19860725 20170923 711321 99999 CRANBERRY PORTAGE CA 54.617 -101.35 306.0 19571001 19630731 711330 99999 SPIRITWOOD WEST SASK CA CWSR 53.367 -107.55 584.0 19920501 20170923 711340 99999 BEARTOOTH ISLAND CA CWTF 59.22 -109.7 238.0 19930701 20170406 711350 99999 ROCKGLEN (AUT) SASK CA CWKO 49.167 -105.98299999999999 917.0 19770701 20170923 711360 99999 BRANDON RCS CA 49.9 -99.95 409.4 20040924 20170923 711370 99999 VAL MARIE SOUTHEAST CA CWVN 49.067 -107.583 796.0 19911208 20170923 711380 99999 YORKTON MUNI CA CYQV 51.265 -102.462 498.3 19550702 20170923 711390 99999 CYPRESS HILLS PARK SASK CA CWVP 49.65 -109.51700000000001 1271.0 19920505 20170923 711400 99999 BRANDON MUNI CA CYBR 49.917 -99.95 409.3 19770701 20170923 711405 99999 BEAUSEJOUR (MAN) CA 50.067 -96.51700000000001 274.0 19770701 19900530 711406 99999 BEAUSEJOUR CA YBS 50.067 -96.51700000000001 274.0 19790131 19790131 711410 99999 GATESHEAD ISLAND CA CNGH 70.633 -100.26700000000001 20.0 19770701 20170923 711415 99999 FISHER BRANCH(AUTO) CA 51.083 -97.55 253.0 19860301 19860425 711420 99999 SWIFT CURRENT AIRPORT CA CYYN 50.3 -107.68299999999999 816.9 19961101 20170923 711430 99999 BACHELORS ISLAND MARINE MAN CA CWBL 51.75 -99.9 256.0 19770701 20121105 711440 99999 OAKPOINT MARINE MAN CA CWOJ 50.498999999999995 -98.037 249.6 20010916 20170923 711450 99999 ISLAND LAKE AIRPORT CA CYIV 53.85 -94.65 236.0 19770701 20170923 711454 99999 ISLAND LAKE CA WIV 53.867 -94.667 238.0 19790131 19860509 711460 99999 CANDLE LAKE CA 53.733000000000004 -105.26700000000001 503.0 20020601 20051002 711461 99999 NEEPAWA CA 50.233000000000004 -99.5 388.0 19550702 19621029 711470 99999 CARMAN U OF M CS MAN CA CWNK 49.5 -98.03299999999999 268.0 19961101 20170923 711471 99999 19550902 19630731 711480 99999 PILOT MOUND (AUT) CA CWPO 49.183 -98.9 470.0 19571204 20170923 711490 99999 MC CREARY CA CWOO 50.717 -99.53299999999999 351.0 20010916 20170923 711500 99999 SHOAL LAKE CS MAN CA CWUT 50.45 -100.6 561.0 19930520 20170923 711510 99999 KENORA RCS CA 49.783 -94.367 413.0 19940103 20170923 711520 99999 BURGEO NL CA CABF 47.617 -57.617 11.0 20070228 20170923 711530 99999 CARDSTON ALTA CA CWFJ 49.2 -113.28299999999999 1136.0 19941201 20170923 711540 99999 WATERTON PARK GATE CA CWGM 49.133 -113.81700000000001 1289.0 19940706 20170923 711550 99999 EDMONTON INTERNATIONAL CS ALTA CA CXEG 53.3 -113.6 715.0 20010916 20170923 711560 99999 EDSON CLIMATE CA CZZJ 53.583 -116.46700000000001 927.0 20010716 20170923 711570 99999 EDMONTON MUNICIPAL CR10 ALTA CA CXEC 53.567 -113.51700000000001 671.0 20010916 20170923 711580 99999 BERENS RIVER CS MAN CA CWCF 52.35 -97.03299999999999 222.0 20010916 20170923 711590 99999 STEPHENVILLE RCS CA 48.567 -58.567 58.0 20090122 20170923 711600 99999 FORT RELIANCE (AUT) NWT CA CWFZ 62.7 -109.15 168.0 19930701 20170923 711610 99999 BROCKVILLE CLIMATE CA CTBO 44.633 -75.733 120.0 19930701 20170923 711620 99999 INNER WHALEBACKS NWT CA CWBJ 61.917 -113.71700000000001 165.0 19930701 20170923 711630 99999 LAC LA MARTRE NWT CA CWMT 63.133 -117.25 271.0 19940307 20170923 711640 99999 LITTLE CHICAGO NWT CA CWLG 67.167 -130.217 63.0 19930701 20170411 711650 99999 REA LAKES CA CWYH 64.117 -117.333 223.0 19940308 20170923 711660 99999 TROUT LAKE NWT CA CWTE 60.433 -121.23299999999999 498.0 19940308 20141110 711670 99999 EDSON CA 53.567 -116.45 926.0 19940301 20170923 711680 99999 SIOUX FALLS CLIMATE US SD 43.733000000000004 -96.633 481.5 19941001 20170923 711700 99999 CARBERRY CS CA CWZE 49.9 -99.35 384.0 19940901 20170923 711710 99999 VINELAND STATION RCS ONT CA CXVN 43.183 -79.4 79.0 20040510 20170923 711720 99999 PARRY SOUND CCG ONT CA CXPC 45.333 -80.033 176.0 20040803 20170923 711740 99999 ARVIAT CA CYEK 61.093999999999994 -94.071 9.8 20120727 20170923 711750 99999 WHISTLER CA 50.133 -122.95 658.0 20050126 20170923 711760 99999 CAPE KAKKIVIAK CA CWKW 59.98 -64.17 551.0 19960221 20170923 711770 99999 CAPE KIGLAPAIT CA CWYK 57.13 -61.48 834.0 19981224 20170923 711780 99999 BONAVISTA RCS CA CAVA 48.667 -53.117 26.0 20071016 20170923 711790 99999 TUKIALIK BAY CA CWTU 54.72 -58.35 683.0 19981224 20170923 711800 99999 WRECKHOUSE CA CAWR 47.7 -59.3 32.0 19920601 20170923 711810 99999 WINTERLAND NFLD CA CXWT 47.133 -55.317 29.0 20010916 20170923 711811 99999 LABRADOR CSTL CA 54.766999999999996 -58.45 10.0 19550702 19611231 711820 99999 CHURCHILL FALLS CA 53.55 -64.1 440.0 19770701 20120330 711830 99999 MONTREAL/PIERRE ELLIOTT TRUDEAU INTL QU CA CWTQ 45.467 -73.733 32.0 19910118 20170923 711835 99999 LITTLE MECATINA RIVER (AUT) CA CWFU 52.23 -61.32 321.0 19920408 19960103 711840 99999 VARENNES QUE CA CWHM 45.717 -73.383 18.0 19940804 20161025 711850 99999 DANIELS HARBOUR NFLD CA CWDH 50.233000000000004 -57.583 19.0 19550702 20170919 711854 99999 DANIEL'S HARBOUR CA WDX 50.233000000000004 -57.583 24.0 19790131 19950605 711855 99999 FEROLLE PT. (MAPS) CA 51.016999999999996 -57.1 8.0 19860301 20101231 711860 99999 CAP- ROUGE QUE CA CWQM 48.367 -70.533 7.0 19940121 20170923 711870 99999 HOPE CA 49.367 -121.5 39.0 19770701 20170605 711880 99999 GASPE CA CYGP 48.775 -64.479 32.9 19770914 20170923 711881 99999 MANICOUGAN CA 50.65 -68.833 406.0 19611027 19630731 711890 99999 POINTE CLAVEAU QUE CA CWQV 48.266999999999996 -70.117 4.0 19770701 20170923 711891 99999 RIVIERE AU RENARD CA 49.016999999999996 -64.4 39.0 19580819 19630731 711895 99999 GASPE CA 48.766999999999996 -64.483 33.0 19770701 19770913 711896 99999 MINGAN CA 50.283 -64.15 22.0 19430101 19831205 711900 99999 POINTE DE L'ISLET QUE CA 48.133 -69.7 7.0 20010731 20170923 711910 99999 FUNDY PARK CS CA CAFY 45.6 -64.95 43.0 20030620 20170923 711920 99999 QUESNEL CA 53.016999999999996 -122.5 545.0 20100604 20170923 711930 99999 TIMMINS CLIMATE CA 48.55 -81.383 294.0 19770701 20170923 711940 99999 MOBILE UA STATION ATLANTIC CA 40.0 -50.0 0.0 19770701 20060727 711944 99999 BURGEO 2 CA CWBF 47.62 -57.62 11.0 19911119 20060727 711945 99999 SAINT LOUIS CA 45.867 -73.0 31.0 20050628 20070614 711950 99999 SAINT ALBANS CA 47.867 -55.85 1.0 19770701 19830709 711960 99999 PEMBROKE CLIMATE CA 45.867 -77.25 162.0 19591117 20170923 711965 99999 GRATES COVE(AUTO) CA WVW -48.167 -52.933 18.0 19920106 19950605 711966 99999 POOLS ISLAND CA CWYI 49.117 -53.583 10.0 19920106 20170923 711970 99999 PORT AUX BASQUES CA CWZB 47.567 -59.15 40.0 19770701 20170914 711971 99999 ST ANDREWS CA 47.766999999999996 -59.333 11.0 19550702 19630731 711974 99999 PORT BASQUES(AUTO) CA CWOF 47.567 -59.183 40.0 19911119 19950605 711980 99999 LAC SAINT- PIERRE QUE CA CWBS 46.183 -72.917 16.0 20010702 20170923 711990 99999 WATSON LAKE (AUT) YT CA CXQH 60.117 -128.817 690.0 20050218 20170923 712000 99999 VICTORIA GONZALES CS BC CA CWLM 48.4 -123.31700000000001 70.0 19550702 20170923 712003 99999 VICTORIA (AUTO8) CA 48.417 -123.31700000000001 67.0 19811126 19910124 712004 99999 SHERINGHAM PT (AUT) CA 48.383 -123.917 0.0 19920621 19950414 712010 99999 VANCOUVER HARBOUR CS BC CA CWHC 49.283 -123.117 3.0 19800301 20170923 712013 99999 VANCOUVER INTL CA WHC 49.183 -123.167 3.0 19880105 19881208 712020 99999 ROSALIND AGCM CA CPRL 52.783 -112.43299999999999 712.0 19800301 20170923 712023 99999 VICTORIA MARINE CA 48.367 -123.75 32.0 19880105 19920325 712024 99999 RACE ROCKS CA 48.3 -123.53299999999999 5.0 19930527 19950414 712025 99999 WEST VAN CYPRESS CA 49.35 -123.18299999999999 161.0 19930112 19950414 712026 99999 ESQUIMALT METOC CA CWPF 48.433 -123.43299999999999 12.0 19940103 19950605 712027 99999 VICTORIA HARTLAND CS CA 48.53 -123.47 154.0 19950423 20070307 712030 99999 KELOWNA CA CYLW 49.956 -119.37799999999999 429.5 19930408 20170923 712035 99999 KELOWNA APT CA 49.95 -119.383 429.0 19831222 19930208 712040 99999 MANKOTA CA 49.1 -107.01700000000001 830.0 20010903 20170923 712043 99999 MERRY ISLAND LIGHTSTATION CA CWMR 49.47 -123.92 6.0 19990104 20011214 712045 99999 SAND HEADS (LS) CA CWVF 49.1 -123.3 1.0 19920106 19950605 712050 99999 CAMPBELL RIVER CA 49.95 -125.26700000000001 106.0 19800301 20051005 712060 99999 BELLA COOLA CA CYBD 52.388000000000005 -126.596 35.7 19830707 20170923 712063 99999 BELLA COOLA ARPT & CA 52.383 -126.583 35.0 19880105 19930309 712070 99999 SQUAMISH BC CA CWSK 49.783 -123.167 52.0 19820624 20170923 712073 99999 SQUAMISH (AUTO8) CA 49.783 -123.167 52.0 19880105 19930309 712079 99999 SQUAMISH CA CYSE 49.783 -123.167 52.0 20100104 20100403 712080 99999 BIG TROUT LAKE CA COTL 53.817 -89.9 224.1 19930527 20170923 712081 99999 POWELL RIVER CA CYPW 49.833999999999996 -124.5 129.5 20130101 20170923 712085 99999 POWELL RIVER ARPT & CA 49.817 -124.5 120.0 19831222 19930309 712090 99999 SANDHEADS CS CA CWVF 49.1 -123.3 11.0 20010705 20170923 712110 99999 HOWE SOUND - PAM ROC CA CWAS 49.483000000000004 -123.3 5.0 19961101 20170923 712120 99999 FORET MONTMORENCY RCS QUE CA CMFM 47.317 -71.133 673.0 20041005 20170923 712130 99999 EARLTON CLIMATE CA 47.683 -79.833 243.4 20081201 20170923 712140 99999 BODO AGDM ALTA CA CXBA 52.117 -110.1 687.0 20040824 20170923 712150 99999 OSOYOOS CS BC CA CWYY 49.033 -119.43299999999999 283.0 19950423 20170923 712160 99999 NAKUSP CS BC CA CWNP 50.266999999999996 -117.81700000000001 512.1 19950423 20170923 712170 99999 CHAMPION AGDM ALTA CA CXCP 50.266999999999996 -113.35 1006.0 20021212 20170923 712180 99999 SALMON ARM CS BC CA CWSL 50.7 -119.28299999999999 351.0 19950423 20170923 712190 99999 HOLLAND ROCK BC CA CWHL 54.167 -130.35 5.0 20010705 20170923 712200 99999 LUCY ISLAND LIGHTSTATION CA CWLC 54.29600000000001 -130.609 22.6 20010705 20170923 712210 99999 CLEARDALE AGDM ALTA CA CXCD 56.3 -119.73299999999999 630.0 20040713 20170923 712220 99999 DEASE LAKE (AUT) CA CWKX 58.433 -130.033 802.0 19930829 20170923 712230 99999 CONSORT AGDM ALTA CA CXCS 51.933 -110.7 772.0 20040824 20170923 712240 99999 DEL BONITA AGDM ALTA CA CXDB 49.05 -112.81700000000001 1310.0 20040824 20170923 712250 99999 FOREMOST AGDM ALTA CA CXFM 49.483000000000004 -111.48299999999999 881.0 20040824 20170923 712260 99999 HIGH PRAIRIE AGDM ALTA CA CXHP 55.383 -116.46700000000001 602.0 20040824 20170907 712270 99999 HOLDEN AGDM ALTA CA CXHD 53.183 -112.23299999999999 688.0 20040713 20170923 712280 99999 KILLAM AGDM ALTA CA CXKM 52.833 -111.867 675.0 20040824 20170923 712290 99999 MANNING AGDM ALTA CA CXMG 56.967 -117.45 457.0 20040824 20170923 712300 99999 BEAVERLODGE RCS ALTA CA CWBM 55.2 -119.4 745.0 19960816 20170923 712310 99999 BOW ISLAND CA CWXL 49.733000000000004 -111.45 817.0 19940201 20170923 712320 99999 BOW VALLEY ALTA CA CWXA 51.083 -115.06700000000001 1298.0 19930607 20170923 712330 99999 BRETON PLOTS ALTA CA CWOV 53.083 -114.43299999999999 852.0 20041005 20170923 712340 99999 CLARESHOLM CA CWDK 50.0 -113.633 1009.0 19940201 20170923 712350 99999 COP UPPER ALTA CA CWDU 51.067 -114.21700000000001 1235.0 19930607 20170923 712360 99999 CROWSNEST ALTA CA CWRT 49.617 -114.48299999999999 1303.0 19930607 20170923 712370 99999 DRUMHELLER EAST ALTA CA CWDZ 51.433 -112.667 678.0 20010916 20170923 712380 99999 ELK ISLAND NAT PARK ALTA CA CWFE 53.683 -112.867 716.0 19930701 20170923 712390 99999 CYORESS RIVER RCS CA 49.55 -99.06700000000001 374.0 19931015 20170923 712400 99999 ESTHER 1 ALTA CA CWGY 51.667 -110.2 707.0 19930607 20170923 712410 99999 HIGHVALE ALTA CA CWHA 53.45 -114.46700000000001 747.0 19930701 20060822 712420 99999 LACOMBE CDA 2 ALTA CA CWQQ 52.45 -113.75 860.0 19930607 20170923 712430 99999 LETHBRIDGE CDA CA CWQL 49.7 -112.76700000000001 910.0 19941201 20170923 712440 99999 MILK RIVER ALTA CA CWRY 49.133 -112.05 1050.0 19930908 20170923 712450 99999 NAKISKA RIDGETOP ALTA CA CWNR 50.933 -115.18299999999999 2543.0 19940303 20170923 712460 99999 RED EARTH ALTA CA CWRD 56.533 -115.26700000000001 546.0 19930701 20170923 712470 99999 MEDICINE HAT CA 50.016999999999996 -110.71700000000001 717.0 19930701 20130903 712480 99999 SUNDRE A ALTA CA CWAV 51.766999999999996 -114.68299999999999 1114.0 19930607 20170923 712490 99999 THREE HILLS CA CWHI 51.768 -113.206 857.0 19930607 20170923 712500 99999 ST JOHNS WEST CLIMATE CA CAJW 47.516999999999996 -52.783 110.0 19940103 20170923 712510 99999 VAUXHALL CDA CS ALTA CA CWVO 50.05 -112.133 779.0 19930607 20170923 712520 99999 WILLOW CREEK 1 ALTA CA CWWO 53.383 -118.333 1402.0 19940414 20170923 712530 99999 GARDEN RIVER ALTA CA CWGF 58.7 -113.867 241.0 19950423 20170923 712540 99999 CAMROSE ALTA CA CWRV 53.033 -112.81700000000001 739.0 19940101 20170923 712550 99999 MILDRED LAKE ALTA CA CWMX 57.033 -111.55 310.0 19940101 20170923 712560 99999 WHITECOURT ALTA CA CXZU 54.15 -115.78299999999999 785.0 20010916 20160421 712570 99999 MORRIN AGDM ALTA CA CXMO 51.65 -112.667 836.0 20040824 20170923 712580 99999 OLDS AGDM ALTA CA CXOL 51.75 -114.06700000000001 1046.0 20040824 20170923 712590 99999 POLLOCKVILLE AGDM ALTA CA CXPL 51.117 -111.7 750.0 20040824 20170923 712600 99999 SAULT STE MARIE CA CYAM 46.485 -84.509 192.0 19860425 20170923 712603 99999 SAULT STE MARIE & CA 46.483000000000004 -84.5 188.0 19880105 19930309 712610 99999 GODERICH ONT CA CWGD 43.766999999999996 -81.717 214.0 19811026 20170923 712615 99999 CALLAGHAN VALLEY CA BC CVOD 50.15 -123.117 869.0 20050405 20050912 712625 99999 NIAGARA DISTRICT CA CYSN 43.192 -79.172 97.8 19831222 20170923 712630 99999 HAMILTON CA CYHM 43.174 -79.935 237.7 19930520 20170923 712635 99999 RAWDON CA 46.016999999999996 -73.817 210.0 19831222 20070614 712640 99999 SHEARWATER RCS CA 44.633 -63.516999999999996 24.0 20080702 20170923 712643 99999 BUTTONVILLE MUNI CA CYKZ 43.861999999999995 -79.37 198.1 19860620 20170923 712650 99999 TORONTO CITY CENTRE CA CYTZ 43.617 -79.383 76.5 19790507 20170923 712654 99999 TORONTO ISL (MARS) CA 43.633 -79.4 77.0 19790604 19870611 712670 99999 LETHBRIDGE CA CYQL 49.633 -112.8 929.0 20110114 20170923 712680 99999 SMITHERS AIRPORT AUTO CA 54.817 -127.18299999999999 517.6 20040824 20170923 712690 99999 SCHULER AGDM ALTA CA CXSC 50.3 -110.083 800.0 20040824 20170923 712700 99999 COLLINGWOOD ONT CA CWCO 44.5 -80.217 180.0 19941201 20170923 712710 99999 ATHABASCA AGCM CA 54.633 -113.383 635.0 19941201 20170923 712720 99999 TADOULE LAKE CA CYBQ 58.7 -98.5 281.0 19941201 20170923 712730 99999 LOON LAKE CA 54.016999999999996 -109.133 545.6 19941201 20170923 712740 99999 SMOKY LAKE AGDM ALTA CA CXSL 54.266999999999996 -112.48299999999999 680.0 20040913 20170923 712750 99999 ST. PAUL AGDM ALTA CA CXSP 54.0 -111.26700000000001 649.0 20040713 20170923 712760 99999 TWO HILLS AGDM ALTA CA CXTH 53.617 -111.667 678.0 20040824 20170923 712770 99999 VALLEYVIEW AGDM ALTA CA CXVW 55.083 -117.18299999999999 698.0 20041005 20170923 712780 99999 VERMILLION AGDM ALTA CA CXVM 53.333 -110.867 623.0 20040824 20170917 712790 99999 SEPT-ILES QUE CA CXZV 50.217 -66.25 53.0 20040824 20170923 712810 99999 GRENADIER ISLAND ONT CA CWGH 44.417 -75.85 82.0 19941201 20140611 712820 99999 LAGOON CITY ONT CA CWGL 44.533 -79.217 221.0 19941201 20170923 712830 99999 BROWNVALE AGCM CA CPBN 56.117 -117.883 748.0 19941201 20170923 712840 99999 BUSBY AGCM CA CPBB 53.917 -113.917 714.0 19941201 20170923 712850 99999 ABEE AGDM ALTA CA CXAF 54.283 -112.96700000000001 664.0 20040824 20170923 712860 99999 ANDREW AGDM ALTA CA CXAG 53.917 -112.26700000000001 625.0 20040824 20170923 712870 99999 ATMORE AGDM ALTA CA CXAJ 54.766999999999996 -112.81700000000001 574.0 20040824 20170923 712880 99999 CAMBRIDGE BAY GSN NU CA CXCM 69.1 -105.133 19.0 20040803 20170923 712890 99999 STETTLER AGDM ALTA CA CXAK 52.333 -112.583 795.0 20040713 20170923 712900 99999 MACKENZIE CA 55.283 -123.133 690.0 19941001 20170628 712910 99999 CAMERON FALLS (AUT) ONT CA CXCA 49.15 -88.333 233.0 20030617 20170923 712920 99999 YORKTON CA 51.266999999999996 -102.46700000000001 498.0 20030617 20170923 712930 99999 HALL BEACH CA 68.783 -81.25 9.1 20090120 20170919 712940 99999 BANCROFT AUTO ONT CA CWRK 45.067 -77.867 331.0 20010916 20170923 712950 99999 EAR FALLS (AUT) CA CXEA 50.633 -93.21700000000001 363.0 20030617 20170923 712960 99999 EGBERT CS ONT CA CXET 44.233000000000004 -79.783 251.0 20040824 20170923 712970 99999 HAMILTON RBG CS ONT CA CXHM 43.283 -79.9 102.0 20040803 20170923 712980 99999 HARROW CDA AUTO CA CXHA 42.033 -82.9 191.0 20030617 20170923 712990 99999 KAPUSKASING CDA ON ONT CA CXKA 49.4 -82.43299999999999 218.0 20030617 20170923 713000 99999 KEMPTVILLE CS ONT CA CXKE 45.0 -75.633 99.0 20040824 20170923 713010 99999 KIRKLAND LAKE CS ONT CA CXKI 48.15 -80.0 324.0 20040921 20170923 713020 99999 PRINCE GEORGE AIRPORT AUTO CA 53.883 -122.667 680.0 20091127 20170923 713030 99999 POINT PELEE CS ONT CA CXPT 41.933 -82.51700000000001 177.0 20040824 20170923 713040 99999 BEAVER MINES CA 49.467 -114.18299999999999 1257.0 20040824 20170923 713041 99999 MOOSE CREEK CA CTCK 45.25 -74.967 85.0 20151119 20170923 713050 99999 FORT CHIPEWYAN CA 58.766999999999996 -111.117 238.0 20040921 20131031 713060 99999 INUKJUAK ARPT CA CYPH 58.467 -78.083 25.0 20040824 20170923 713070 99999 RIDGETOWN RCS ONT CA CXRG 42.45 -81.883 206.0 20040510 20170923 713080 99999 TRACADIE NS NS CA CXTD 45.6 -61.667 67.0 20040713 20170923 713090 99999 MOOSONEE RCS ONT CA CXZC 51.283 -80.617 9.0 20040921 20170923 713100 99999 ST. PETERS PEI CA CZSP 46.45 -62.567 30.0 20040608 20170923 713110 99999 NAPPAN AUTO NS CA CXNP 45.75 -64.233 20.0 20040921 20170923 713120 99999 NIPAWIN SASK CA CWBU 53.333 -104.0 372.0 20040608 20170923 713130 99999 HAVRE ST PIERRE CA CYGV 50.283 -63.6 37.8 19941201 20170923 713140 99999 BARRIE-ORO CA CXBI 44.48 -79.55 289.0 20040921 20170923 713150 99999 CHARLO AUTO NB CA CZCR 47.983000000000004 -66.333 42.0 20040803 20170923 713160 99999 LACLABICHE CLIMATE ALTA CA 54.766999999999996 -112.01700000000001 567.0 20040608 20170923 713170 99999 DEBERT CA CZDB 45.417 -63.467 38.0 20040921 20170923 713180 99999 CORONATION CLIMATE ALTA CA CWCT 52.067 -111.43299999999999 791.0 20040803 20170923 713190 99999 CHARLEVOIX (MRX) CA CWIS 47.283 -70.633 723.0 19971201 20170923 713200 99999 HALL BEACH CLIMATE NU CA CXUX 68.767 -81.233 8.0 20050201 20170923 713210 99999 IQALUIT CLIMATE NU CA CXFB 63.75 -68.55 34.0 20050201 20170923 713220 99999 ARVIAT CLIMATE NU CA CXAR 61.1 -94.06700000000001 10.0 20050201 20170923 713230 99999 BEAUCEVILLE QUE CA CWHV 46.2 -70.783 229.0 19940728 20170923 713240 99999 OSBORNE HEAD DND CA CAOS 44.617 -63.417 30.0 20071016 20170923 713250 99999 BEDFORD RANGE CA CABR 44.75 -63.667 10.0 20090801 20170923 713260 99999 HALIFAX KOOTENAY CA 44.583 -63.55 52.0 20170912 20170923 713270 99999 HALIFAX WINDSOR PARK CA CAHW 44.65 -63.617 51.0 20070423 20170923 713280 99999 HALIFAX DOCKYARD CA 44.65 -63.58 4.0 20170912 20170923 713290 99999 BEDFORD BASIN CA 44.7 -63.633 4.0 20071016 20170923 713310 99999 ISLAND FALLS (AUT) SASK CA CPIF 55.533 -102.35 297.0 20041109 20170923 713315 99999 CONFEDERATION BRIDGE CA CXBP 46.23 -63.73 54.0 20050201 20061031 713320 99999 KUGLUKTUK CLIMO CA CNCO 67.82 -115.12 23.0 20041109 20170923 713325 99999 GRIEF POINT CA CWKA 49.8 -124.53 10.0 20050517 20140922 713330 99999 LAUZON (AUT) CA CWLU 46.83 -71.17 20.0 20041109 20071127 713335 99999 ILE AUX GRUES CA CWIG 47.07 -70.53 18.0 20050517 20140922 713340 99999 TADOULE LAKE CS MAN CA CXBQ 58.7 -98.5 262.0 20030617 20170923 713350 99999 SAGLEK BAY CA CWZZ 58.333 -62.583 501.0 20040824 20170923 713360 99999 GRATES COVE CA 48.167 -52.933 46.0 20040921 20170712 713370 99999 LA SCIE NFLD CA CWAG 49.917 -55.667 194.0 20040824 20170923 713380 99999 QIKIQTARJUAQ A NU CA 67.533 -64.017 6.0 20040803 20170923 713390 99999 MARYS HARBOUR CA 52.3 -55.833 12.0 20040803 20170919 713400 99999 DAPP AGDM ALTA CA CXDP 54.317 -113.95 614.0 20040824 20170923 713407 99999 SLEETMUTE US AK SLQ 61.717 -157.15 54.0 19940103 19940404 713410 99999 BROCKET AGDM ALTA CA CXBR 49.617 -113.81700000000001 1073.0 20040510 20170923 713420 99999 OYEN AGDM ALTA CA CXOY 51.383 -110.35 767.0 20040928 20170923 713430 99999 WRENTHAM AGDM ALTA CA CXWM 49.5 -112.117 944.0 20040824 20170923 713440 99999 HUSSAR AGDM ALTA CA CXHR 51.183 -112.5 971.0 20040510 20170923 713450 99999 MASINASIN AGDM CA CXMN 49.133 -111.65 948.0 20040824 20170923 713460 99999 BARNWELL AGDM ALTA CA CXBW 49.8 -112.3 824.0 20040510 20170923 713470 99999 FAIRVIEW AGDM ALTA CA CXFR 56.067 -118.43299999999999 655.0 20040518 20170923 713480 99999 PEORIA AGDM ALTA CA CXPA 55.617 -118.28299999999999 621.0 20040510 20170923 713490 99999 RICH LAKE AGDM ALTA CA CXRL 54.5 -111.7 585.0 20040510 20170923 713500 99999 HARRINGTON CDA CS PEI CA CAHR 46.35 -63.167 53.0 20041005 20170923 713510 99999 OLIVER AGDM ALTA CA CZOL 53.65 -113.35 665.0 20040510 20170923 713520 99999 ELORA RCS ONT CA CZEL 43.65 -80.417 376.0 20040608 20170923 713530 99999 PRENTISS ALBERTA ALTA CA CZPS 52.433 -113.6 965.0 20040608 20170923 713540 99999 MUNDARE AGDM ALTA CA CZMU 53.567 -112.3 683.0 20040921 20170923 713550 99999 ALERT CLIMATE NU CA CZLT 82.5 -62.333 65.0 20040803 20170923 713560 99999 BAKER LAKE CLIMATE NU CA CXBL 64.317 -96.0 51.0 20040921 20170923 713570 99999 QIKIQTARJUAQ CLIMATE CA CZVM 67.55 -64.03 6.0 20050507 20170923 713580 99999 CLYDE RIVER CLIMATE NU CA CZCY 70.483 -68.517 27.0 20050201 20170923 713590 99999 DEWBERRY AGCM CA 53.667 -110.583 616.0 20080401 20170923 713600 99999 EDGERTON AGCM CA 52.766999999999996 -110.417 649.0 20071124 20170923 713610 99999 HAY RIVER CLIMATE NWT CA CZHY 60.833 -115.76700000000001 164.0 20040803 20170923 713620 99999 FORT SMITH CLIMATE NWT CA CZSM 60.016999999999996 -111.917 203.0 20040803 20170923 713630 99999 GJOA HAVEN CLIMATE NU CA CZHK 68.633 -95.85 42.0 20040608 20170923 713640 99999 INUVIK CLIMATE NWT CA CZEV 68.317 -133.517 103.0 20040608 20170923 713650 99999 FORT SIMPSON CLIMATE NWT CA CZFS 61.75 -121.23299999999999 168.0 20040608 20170923 713660 99999 CAPE DORSET A CA 64.233 -76.533 48.2 20040608 20140822 713670 99999 CORMACK RCS CA 49.317 -57.4 817.0 20040824 20170923 713680 99999 WATERLOO CA CYKF 43.461000000000006 -80.37899999999999 321.3 19930520 20170923 713681 99999 WATERLOO WELL & CA 43.45 -80.383 314.0 19770701 19900206 713683 99999 WATERLOO WELL & CA 43.45 -80.383 314.0 19900208 19930308 713690 99999 SLAVE LAKE CA 55.3 -114.78299999999999 583.0 20040913 20170919 713697 99999 LIVERPOOL AIRPORT CA 44.233000000000004 -64.85 96.0 19891023 19900517 713700 99999 SHAWINIGAN CS QUE CA CXSH 46.55 -72.733 110.0 20010904 20170923 713710 99999 MONTREAL/ST HUBERT CA CYHU 45.516999999999996 -73.417 27.4 19550702 20170923 713713 99999 SAINT HUBERT ARPT & CA 45.516999999999996 -73.417 27.0 19880105 19930309 713715 99999 ST LAMBERT CA 45.5 -73.52 7.0 19940317 19950419 713720 99999 L'ACADIE QUE CA CWIZ 45.283 -73.333 44.0 19920505 20170923 713721 99999 MONTREAL-EST CA CWPQ 45.63 -73.55 50.0 19550702 19560131 713725 99999 VALLEYFIELD (ECLUSE) CA CWVE 45.23 -74.1 46.0 19930802 19930824 713730 99999 FRELIGHSBURG QUE CA CWFQ 45.05 -72.85 152.0 19920505 20170923 713740 99999 CAPE WHITTLE QUE CA CWQW 50.15 -60.05 7.0 19940103 20170923 713750 99999 ILE AUX PERROQUETS QUE CA CWQR 50.217 -64.2 9.0 19940108 20170923 713760 99999 ST JOVITE QUE CA CWJT 46.067 -74.55 239.0 19930320 20170923 713770 99999 STE ANNE DE BELLEVUE 1 QUE CA CWVQ 45.417 -73.917 39.0 19940201 20170923 713780 99999 LA TUQUE QUE CA CWDQ 47.4 -72.783 169.0 19930701 20170923 713790 99999 NORMANDIN QUE CA CWOD 48.833 -72.533 137.0 19940201 20170923 713800 99999 CRESTOMERE AGCM CA 52.717 -113.9 855.0 20080721 20170923 713810 99999 MISTOOK QUE CA CWIX 48.583 -71.7 113.0 19941201 20170923 713820 99999 PARC DES LAURENTIDES QUE CA CWPD 47.55 -71.217 791.0 19940201 20170923 713830 99999 BONNARD 1 QUE CA CWKD 50.717 -71.0 498.0 19930112 20170923 713840 99999 CAP TOURMENTE QUE CA CWTN 47.067 -70.767 6.0 19940201 20170923 713850 99999 ILE BICQUETTE QUE CA CWQO 48.4 -68.883 7.0 19940103 20170923 713860 99999 AMQUI QUE CA CWZS 48.467 -67.433 166.0 20010916 20170923 713870 99999 ONATCHIWAY QUE CA CWXC 48.883 -71.017 304.0 20010916 20170923 713880 99999 LA BAIE CA CWUX 48.3 -70.917 152.0 20010916 20170923 713890 99999 DESCHAMBAULT CS QUE CA CWHQ 46.683 -71.967 61.0 20010802 20170923 713900 99999 POINTE NOIRE CS QUE CA CWIP 50.15 -66.433 24.0 20010916 20170923 713910 99999 HIGH FALLS QC CA CXHF 45.833 -75.633 195.0 20010916 20170923 713920 99999 STE FOY (U. LAVAL) QUE CA CWJB 46.78 -71.283 91.0 19971201 20170923 713930 99999 CALGARY INTL CS CA 51.1 -114.0 1081.0 20040921 20170923 713950 99999 HALIFAX INTL CA CYHZ 44.881 -63.50899999999999 145.4 19600701 20170923 713951 99999 HALIFAX INTL CA 44.883 -63.516999999999996 145.0 19770701 19790821 713953 99999 HALIFAX INTL ARPT & CA 44.883 -63.516999999999996 145.0 19490101 19930309 713955 99999 BEDFORD CA CWAZ 44.717 -63.683 33.0 19950423 19950605 713960 99999 HALIFAX METOC CA 44.667 -63.583 10.0 19991029 19991029 713970 99999 GREENWOOD CA CYZX 44.983999999999995 -64.917 28.0 19550702 20170923 713975 99999 BOW DRILL III CA 47.2 -55.1 0.0 19860117 19890517 713980 99999 MOOSONEE CA 51.283 -80.6 9.0 19770701 20170923 713981 99999 19550702 19630731 713985 99999 CHATHAM BROWNBURG CA 45.617 -74.417 75.0 19770701 20060718 713990 99999 SEDALIA AGCM CA CPSA 51.583 -110.75 755.0 19800701 20170923 713993 99999 ROWAN GORILLA III CA CWXO 43.88 -60.55 44.0 19910207 19960602 713995 99999 BACCARO POINT CA CWCP 43.45 -65.467 13.0 19930115 19950605 714000 99999 BADGER (AUT) NFLD CA CWDI 48.967 -56.067 103.0 19811001 20170923 714010 99999 WARFIELD RCS CA CXWF 49.117 -117.73299999999999 566.9 20040823 20170923 714015 99999 STAR BROOK CA WHU 48.583 -57.233000000000004 290.0 19930701 19960103 714020 99999 TWILLINGATE (AUT) NFLD CA CWDO 49.683 -54.8 92.0 19850910 20170923 714030 99999 BEAVER ISLAND (AUT) NS CA CWBV 44.817 -62.333 16.0 19850829 20170923 714040 99999 EGG ISLAND ALTA CA CXEL 58.967 -110.43299999999999 215.0 20030330 20170923 714050 99999 SHONTS AGCM CA 53.333 -112.53299999999999 679.0 19860101 20170923 714060 99999 FEROLLE POINT (AUT) NFLD CA CWXI 51.016999999999996 -57.1 6.0 19850830 20170923 714070 99999 KUGAARUK CLIMATE CA CNBB 68.533 -89.8 16.0 20050201 20170923 714080 99999 SAGONA ISLAND NFLD CA CWZN 47.367 -55.783 60.0 19850814 20170923 714090 99999 ETZICOM AGCM CA 49.55 -111.05 845.0 20080401 20170923 714100 99999 NORWAY HOUSE ARPT CA CYNE 53.967 -97.833 223.0 19770607 20170923 714110 99999 WESTERN HEAD NS CA CWWE 43.983000000000004 -64.667 10.0 19770613 20170923 714120 99999 EAST POINT (AUT) PEI CA CWEP 46.45 -61.983000000000004 8.0 19780801 20170923 714130 99999 SPONDIN AGCM CA 51.817 -111.68299999999999 804.0 19820102 20170923 714133 99999 GRAND ETANG (AUTO8) CA WZQ 46.533 -61.083 17.0 19910801 19950605 714140 99999 DUPRE AGCM CA CPDU 54.367 -110.867 556.0 19880622 20170923 714150 99999 CARIBOU POINT (AUT) NS CA CWBK 45.766999999999996 -62.683 2.0 19850811 20170923 714160 99999 FOURCHU HEAD (MAPS) CA 45.717 -60.233000000000004 10.0 19861016 20020119 714163 99999 SAINT PAUL ISLAND CA 47.233000000000004 -60.133 15.0 19860604 19880502 714164 99999 FOURCHU HEAD(MAPS)& CA 45.717 -60.233000000000004 10.0 19880105 19910124 714170 99999 ENGLEE (AUT) CA CWDA 50.72 -56.12 30.0 19850117 20170923 714180 99999 ST PAUL ISLAND (AUT) NS CA CWEF 47.217 -60.133 27.0 19870601 20170923 714190 99999 HART ISLAND (AUT) NS CA CWRN 45.35 -60.983000000000004 8.0 19850522 20170923 714210 99999 LAC EON QUE CA CWEO 51.867 -63.283 589.0 19800319 20170923 714220 99999 SUTTON JUNC (MARS) CA WXF 45.15 -72.583 237.0 19810601 19870727 714230 99999 HEATH POINT QUE CA CWHP 49.083 -61.7 7.0 19850102 20170923 714233 99999 HEATH POINT (MAPS)& CA 49.083 -61.7 7.0 19880105 19880326 714240 99999 ILE D'ORLEANS CA CWER 47.0 -70.817 4.0 19850701 20170923 714243 99999 ILE D`ORLEANS(AUT) CA 47.0 -70.817 5.0 19880105 19881011 714250 99999 CAP MADELEINE QUE CA CWSF 49.25 -65.317 29.0 19851106 20170923 714253 99999 CAP MADELEINE(MAPS) CA 49.25 -65.333 29.0 19880105 19881011 714260 99999 ILE ROUGE QUE CA CWAF 48.067 -69.55 6.0 19840921 20170923 714263 99999 ILE ROUGE (MAPS) & CA YRI 47.766999999999996 -69.583 130.0 19880105 19930309 714270 99999 POINTE DES MONTS QUE CA CWTG 49.317 -67.367 6.0 19851210 20170923 714280 99999 CAP CHAT QUE CA CWSG 49.1 -66.65 5.0 19850910 20170923 714283 99999 CAP CHAT (MAPS) & CA 49.083 -66.733 35.0 19880105 19881011 714290 99999 CAP D'ESPOIR QUE CA CWRZ 48.417 -64.317 15.0 19850915 20170923 714300 99999 POINT PETRE (AUT) ONT CA CWQP 43.833 -77.15 79.0 19770611 20170923 714310 99999 COBOURG (AUT) ONT CA CWNC 43.95 -78.167 78.0 19770611 20170923 714320 99999 PORT WELLER (AUT) ONT CA CWWZ 43.25 -79.217 79.0 19770611 20170923 714323 99999 WASAGA BEACH(AUTO8) CA 44.516999999999996 -80.017 182.0 19910204 19910924 714324 99999 COLLINGWOOD (AUT8)& CA 44.5 -80.217 180.0 19930829 19941220 714325 99999 BEAUSOLEIL ISL AUT& CA 44.85 -79.867 183.0 19921022 19950104 714330 99999 CARIBOU ISLAND (AUT) ONT CA CWCI 47.333 -85.833 187.0 19800301 20170923 714335 99999 BANCROFT AUTO8 CA 45.067 -77.867 331.0 20000613 20101231 714340 99999 PEAWANUCK (AUT) CA CWWN 54.983000000000004 -85.43299999999999 53.0 19811007 20170923 714350 99999 UPSALA (AUT) ONT CA CWDV 49.033 -90.46700000000001 489.0 19811026 20170923 714360 99999 PETERBOROUGH CA CYPQ 44.23 -78.363 191.4 19801011 20170923 714370 99999 BURLINGTON PIERS (AUT) ONT CA CWWB 43.3 -79.8 77.0 19910501 20170923 714375 99999 BURLINGTON PIERS & CA 43.3 -79.8 78.0 19840621 19910515 714380 99999 WESTERN ISLAND (AUT) ONT CA CWMZ 45.033 -80.367 191.0 19840607 20170923 714390 99999 COVE ISLAND (AUT) ONT CA CWWX 45.333 -81.733 181.0 19850910 20170923 714393 99999 ARNES (AUTO8) CA CWRE 50.8 -96.883 221.0 19881014 19950605 714400 99999 STANDARD AGCM CA CPSD 51.233000000000004 -112.98299999999999 901.0 19770611 20170923 714410 99999 GRETNA (AUT) MAN CA CWGN 49.016999999999996 -97.55 253.0 19811026 20170923 714420 99999 FISHER BRANCH (AUT) MAN CA CWSZ 51.083 -97.55 253.0 19851201 20170923 714430 99999 SWAN RIVER (AUT) MAN CA CWEQ 52.117 -101.23299999999999 335.0 19880105 20170923 714440 99999 WASAGAMING MAN CA CWWP 50.65 -99.93299999999999 627.0 19910920 20170923 714450 99999 GEORGE ISLAND (AUT) MAN CA CWWS 52.817 -97.6 223.0 19840921 20170923 714453 99999 GEORGE ISL (MAPS) & CA 52.8 -97.617 223.0 19880105 19880326 714460 99999 SWIFT CURRENT CDA SASK CA CWVC 50.266999999999996 -107.73299999999999 825.0 19910108 20170923 714470 99999 MELITA MAN CA CWEI 49.283 -100.98299999999999 446.0 19900724 20170923 714480 99999 PINAWA MAN CA CWEA 50.167 -96.05 268.0 19910611 20170923 714490 99999 SPRAGUE CA CWSU 49.016999999999996 -95.6 329.0 20010916 20170923 714500 99999 ELBOW CS SASK CA CWOK 51.133 -106.583 595.0 19810101 20170923 714503 99999 ELBOW (MARS) & CA WFJ 51.133 -106.583 594.0 19831222 19901012 714510 99999 SOUTHEND SASK CA CWJH 56.333 -103.28299999999999 344.0 19900724 20170923 714520 99999 WEYBURN SASK CA CWWF 49.7 -103.8 589.0 19900111 20170923 714530 99999 MAPLE CREEK SASK CA CWMQ 49.9 -109.46700000000001 767.0 19900314 20170923 714540 99999 WASKESIU LAKE SASK CA CWLV 53.917 -106.06700000000001 569.0 19900208 20170923 714550 99999 LUCKY LAKE SASK CA CWLE 50.95 -107.15 665.0 19910108 20170923 714560 99999 MELFORT SASK CA CWFF 52.817 -104.6 490.0 19910108 20170923 714570 99999 BROOKS ALTA CA CWBO 50.55 -111.85 747.0 19910801 20170923 714580 99999 VEGREVILLE ALTA CA CWVI 53.516999999999996 -112.1 639.0 19910801 20170923 714590 99999 LEADER AIRPORT SASK CA CWJX 50.9 -109.5 676.0 19910822 20170923 714600 99999 KILLARNEY (AUT) ONT CA CWBE 45.967 -81.483 196.0 19850910 20170923 714610 99999 EAGLESHAM AGCM CA CPEL 55.8 -117.883 563.0 19840921 20170923 714620 99999 GREAT DUCK ISLAND CA CWNL 45.633 -82.96700000000001 183.0 19850208 20170923 714630 99999 PORT COLBORNE (AUT) ONT CA CWPC 42.867 -79.25 184.0 19860102 20170923 714640 99999 LONG POINT (AUT) CA CWPS 42.567 -80.05 175.0 19860109 20170923 714650 99999 ERIEAU (AUT) ONT CA CWAJ 42.25 -81.9 178.0 19860117 20170923 714660 99999 SOUTHEAST SHOAL (AUT) ONT CA CWNB 41.833 -82.46700000000001 195.0 19851201 20161216 714670 99999 SACHS HARBOUR CLIMATE NWT CA CWSY 72.0 -125.26700000000001 88.0 20050201 20170923 714673 99999 MITCHELL'S BAY CA 42.467 -82.417 186.0 19861120 19880520 714680 99999 KATATOTA ISLAND CA CWKK 49.72 -88.33 260.0 19921008 20170923 714700 99999 LUPIN CS CS CA CWIJ 65.75 -111.25 488.0 20050415 20170923 714710 99999 DAWSON CREEK LWIS CA 55.733000000000004 -120.167 655.0 20070228 20130906 714720 99999 KINDAKUN ROCKS (AUT) BC CA CWQS 53.3 -132.767 14.0 19801001 20170923 714724 99999 MASSET AIRPORT CA CZMT 54.03 -132.13 7.0 20061024 20170923 714725 99999 MASSET A CA 54.016999999999996 -132.11700000000002 5.0 19920122 19921201 714730 99999 SATURNA ISLAND CS CA CWEZ 48.783 -123.03299999999999 24.0 19800914 20170923 714735 99999 VICTORIA HARBOUR CA CYWH 48.42 -123.33 5.0 19921008 20170923 714740 99999 CLINTON CA CWCL 51.15 -121.5 1057.0 19810601 20170320 714750 99999 PORT ALBERNI (AUT) BC CA CWQC 49.317 -124.917 76.0 19810201 20170923 714755 99999 PORT ALBERNI ARPT CA 49.266999999999996 -124.833 2.0 19831222 19950331 714760 99999 GREY ISLET (AUT) CA CWEK 54.567 -130.683 8.0 19880307 20170923 714764 99999 BONILLA ISLAND CA WWL 55.5 -130.63299999999998 17.0 19850701 19860320 714765 99999 GREY ISLET (MAPS) & CA 54.583 -130.7 13.0 19841025 19880326 714770 99999 ROSE SPIT (AUT) BC CA CWRO 54.15 -131.65 7.0 19860425 20170923 714773 99999 ROSE SPIT (MAPS) & CA 54.167 -131.667 7.0 19880105 19880502 714775 99999 ROSE SPIT (MAPS) & CA 54.167 -131.667 7.0 19841025 19860413 714780 99999 SARTINE ISLAND (AUT) CA CWFG 50.817 -128.9 111.0 19850130 20170923 714790 99999 SOLANDER ISLAND (AUT) BC CA CWRU 50.1 -127.93299999999999 99.0 19850102 20170923 714795 99999 WOSS CA 50.217 -126.617 122.0 19910108 19910206 714800 99999 NORMAN WELLS CLIMATE CA CNVQ 65.28 -126.75 94.0 20050201 20170923 714810 99999 EVANSBURG2 AGCM AB CA CPNB 53.573 -115.124 819.0 19860916 20170923 714813 99999 HELMCKEN ISL(MAPS)& CA 50.4 -125.867 19.0 19880105 19880225 714820 99999 CATHEDRAL POINT (AUT) BC CA CWME 52.183 -127.46700000000001 31.0 19850422 20170923 714823 99999 CATHEDRAL PT(MAPS)& CA 52.183 -127.46700000000001 25.0 19880105 19880326 714830 99999 FORT ASSINIBOINE AGCM CA CPFB 54.4 -114.76700000000001 676.0 19870710 20170923 714833 99999 MALAHAT (AUTO8) CA 48.583 -123.583 275.0 19910321 19950414 714835 99999 BIG CREEK(AUTO) CA CWBG 51.25 -123.083 1670.0 19920106 19950523 714840 99999 BONILLA ISLAND (AUT) BC CA CWWL 53.5 -130.63299999999998 15.0 19860331 20170923 714844 99999 CUMSHEWA ISL (MAPS) CA 53.033 -131.6 17.0 19880105 20101231 714850 99999 HERBERT ISLAND CA CWLP 50.933 -127.65 1605.0 19850102 20170923 714860 99999 JASPER WARDEN ALTA CA CWJW 52.933 -118.03299999999999 1020.0 19910801 20170923 714870 99999 ASSINIBOIA AIRPORT SASK CA CWJI 49.733000000000004 -105.93299999999999 726.0 19910911 20170923 714880 99999 KEY LAKE A CA CYKJ 57.25 -105.6 514.0 19940121 20170923 714890 99999 SCOTT CDA CA 52.367 -108.833 660.0 20010916 20170923 714900 99999 ROBERTSON LAKE (AUT) NU CA CWTD 65.083 -102.417 244.0 19800301 20170923 714910 99999 FORT GOOD HOPE CS CA 66.233 -128.65 82.0 20010916 20170923 714920 99999 TUKTUT NOGAIT NWT CA CXTN 69.183 -122.35 522.0 20010916 20170923 714930 99999 PARRSBORO CA CAPR 45.42 -64.35 31.0 20050101 20170923 714940 99999 THETFORD MINES RCS CA CMTH 46.05 -71.267 430.0 20070807 20170923 714950 99999 NEIR AGDM CA 51.367 -114.083 1145.0 20040921 20170923 714960 99999 SASKATOON RCS CA 52.167 -106.71700000000001 504.0 19810706 20170923 714963 99999 LUPIN ARPT (SAWR) CA CYWO 65.767 -111.25 494.0 19820624 20061031 714970 99999 FORT LIARD NWT CA CWJL 60.233000000000004 -123.46700000000001 213.0 19920219 20170923 714980 99999 GLEICHEN AGCM CA CPGI 50.933 -112.93299999999999 907.0 19901104 20170923 714990 99999 KEY LAKE CA 57.25 -105.617 514.0 19910812 20170923 715000 99999 GLENEVIS AGCM CA 53.817 -114.53299999999999 670.0 19860205 20170923 715010 99999 HERSCHEL ISLAND YT CA CWJN 69.567 -138.917 1.0 19861016 20170922 715020 99999 PELLY ISLAND NWT CA CWND 69.617 -135.433 17.0 19861101 20170923 715030 99999 DELINE CS NWT CA CXDE 65.217 -123.43299999999999 213.0 19861101 20170923 715040 99999 THORSBY AGCM CA 53.217 -113.9 754.0 19880105 20170923 715050 99999 HAINES JUNCTION CA CWHT 60.766999999999996 -137.583 595.0 19911106 20170923 715060 99999 ROCK RIVER CA CWRR 66.983 -136.217 731.0 19910611 20170923 715070 99999 HAWK HILLS AGCM CA CPHW 57.25 -117.28299999999999 455.0 19910812 20170923 715080 99999 TORONTO CITY ONT CA 43.667 -79.4 113.0 20040803 20170923 715090 99999 LETHBRIDGE DEMO FARM AGDM ALTA CA CPQL 49.683 -112.75 903.0 20040921 20170923 715100 99999 ROSETOWN EAST SASK CA CWRJ 51.567 -107.917 586.0 19910911 20170923 715110 99999 WATROUS EAST SASK CA CWIW 51.667 -105.4 526.0 19910801 20170923 715120 99999 LONGUE POINTE DE MINGAN QUE CA CWBT 50.266999999999996 -64.217 11.0 19940201 20170923 715130 99999 NATASHQUAN CA 50.183 -61.783 11.0 19951101 20170315 715140 99999 REGINA RCS SASK CA CWDJ 50.433 -104.667 577.0 19960301 20170923 715150 99999 INDIAN HEAD CDA SASK CA CWBD 50.55 -103.65 579.0 20010916 20170923 715160 99999 CORONACH SPC SASK CA CWAQ 49.05 -105.48299999999999 756.0 19960501 20170923 715170 99999 BLOOD TRIBE AGDM ALTA CA CPBT 49.567 -113.05 980.0 20040921 20170923 715180 99999 ENCHANT AGDM ALTA CA CPEH 50.183 -112.43299999999999 801.0 20040921 20170923 715190 99999 BOW ISLAND IRRIGATION AGDM CA CPXL 49.867 -111.383 799.0 20040921 20170923 715200 99999 LAC BENOIT QUE CA CWDE 51.533 -71.117 549.0 19961101 20170923 715210 99999 MANOUANE EST QUE CA CWDP 50.65 -70.517 497.0 19941003 20170923 715220 99999 CHUTES DES PASSES QUE CA CWDT 49.833 -71.167 398.0 19940901 20170923 715230 99999 CHAMOUCHOUANE QUE CA CWEE 49.266999999999996 -73.35 304.0 19941028 20170923 715240 99999 L'ASSOMPTION QUE CA CWEW 45.8 -73.433 21.0 19941001 20170923 715250 99999 SEVEN PERSONS AGDM ALTA CA CPSV 49.917 -110.917 766.0 20041005 20170923 715260 99999 STRATHMORE AGDM ALTA CA CPST 51.033 -113.28299999999999 967.0 20041005 20170923 715270 99999 DRYDEN RGNL CA CYHD 49.832 -92.744 412.7 19620101 20170923 715274 99999 SIMCOE (MARS) & CA 42.85 -80.267 239.0 19770827 19910124 715275 99999 LONG POINT (MAPS) & CA 42.567 -80.05 175.0 19860101 19860425 715280 99999 IRON SPRINGS AGDM ALTA CA CPIR 49.9 -112.73299999999999 858.0 20040921 20170923 715290 99999 LUTSELK'E CS NWT CA CXLU 62.417 -110.667 179.0 20030618 20170716 715320 99999 MUSKOKA AWOS ONT CA CZQA 44.967 -79.3 282.0 20050122 20170923 715330 99999 BELLA COOLA AIRPORT CA CVBD 52.383 -126.75 35.7 20030617 20170923 715340 99999 BORDEN CA CYBN 44.25 -79.917 223.0 20030617 20170923 715350 99999 FINCASTLE AGDM ALTA CA CPFI 49.8 -112.03299999999999 833.0 20040921 20170923 715360 99999 RAYMOND AGDM ALTA CA CPRY 49.483000000000004 -112.68299999999999 937.0 20040805 20170923 715370 99999 ROSEMARY AGDM CA CPRO 50.82 -112.05 714.0 20040804 20170923 715380 99999 WINDSOR CA CYQG 42.276 -82.956 189.6 19550702 20170923 715390 99999 MOOSE JAW CS SASK CA CZMJ 50.317 -105.55 577.0 20010916 20170923 715400 99999 HESPERO AGCM CA 52.3 -114.48299999999999 965.0 20080721 20170923 715410 99999 JEAN COTE AGCM CA 55.9 -117.117 638.0 20080721 20170923 715420 99999 LA CRETE AGCM CA 58.167 -116.333 323.0 20080721 20170923 715430 99999 LA GLACE AGCM CA CPLG 55.417 -119.25 760.0 20080822 20170923 715440 99999 LEGAL AGCM CA 54.0 -113.46700000000001 680.0 20080721 20170923 715450 99999 RADWAY AGCM CA 53.983000000000004 -112.867 625.0 20080721 20170923 715460 99999 RYCROFT AGCM CA CPRF 55.766999999999996 -118.667 575.0 20080721 20170923 715470 99999 SAVANNA AGCM CA CPSW 56.067 -119.333 703.0 20080721 20170923 715480 99999 ST LINA AGCM CA 54.266999999999996 -111.45 619.0 20080721 20170923 715490 99999 TAWATINAW AGCM CA 54.283 -113.51700000000001 611.0 20080721 20170923 715500 99999 DAUPHIN CS MAN CA CWZT 51.1 -100.05 305.0 19961101 20170923 715510 99999 OUTLOOK PFRA SASK CA CWYE 51.483000000000004 -107.05 541.0 19961101 20170923 715520 99999 VICTORIA BEACH (AUT) MAN CA CWII 50.7 -96.56700000000001 220.0 19960801 20170923 715530 99999 ROBLIN MAN CA CWXB 51.183 -101.367 540.0 20010803 20170923 715540 99999 POINTE-AU-PERE (INRS) CA 48.516999999999996 -68.467 5.0 20010916 20170923 715550 99999 STAVELY AAFC CA CWXN 50.183 -113.883 1364.0 20010916 20170923 715560 99999 LAST MOUNTAIN CS CA CWXG 51.417 -105.25 497.0 20010916 20170923 715570 99999 MERRITT CA 50.1 -120.76700000000001 591.0 19970401 20170923 715580 99999 ST ANTHONY NFLD CA CWDW 51.383 -56.1 29.0 20030617 20170923 715590 99999 ESTEVAN CA CPJM 49.217 -102.96700000000001 580.6 20050114 20170923 715600 99999 EMERSON AUT MAN CA 49.0 -97.23299999999999 242.0 20010916 20170923 715620 99999 CYPRESS BOWL SNOWBOARD CA 49.383 -123.2 1180.0 20100129 20100805 715630 99999 DELTA MARCH CS CA CZUG 50.183 -98.383 248.0 20010916 20110518 715640 99999 MORDEN CDA CS MAN CA CXMD 49.183 -98.083 298.0 20010916 20170923 715650 99999 LEEDALE AGDM CA CNLD 52.55 -114.47 947.0 20050322 20170923 715660 99999 TOMAHAWK AGDM CA CNTK 53.43 -114.72 814.0 20050322 20170923 715670 99999 LINDBERGH AGDM CA CNLB 53.95 -110.58 630.0 20050322 20170923 715680 99999 FANNY ISLAND CA CXFA 50.45 -125.98299999999999 8.0 20030617 20170923 715690 99999 BRATT'S LAKE UA SASK CA CXBK 50.2 -104.7 580.0 20010916 20170923 715700 99999 GREAT FALL CLIMO CA CPGF 50.522 -95.977 253.0 20050218 20170923 715710 99999 SPIRIT RIVER AUTO STATION ALTA CA CXSR 55.683 -119.23299999999999 1015.0 20010916 20170923 715720 99999 KELSEY DAM CS MAN CA CZKD 56.033 -96.5 183.0 20030617 20170923 715730 99999 DELHI CS ONT CA CXDI 42.867 -80.55 232.0 20010916 20170923 715740 99999 BATHURST CA CZBF 47.63 -65.73899999999999 58.8 20040803 20170923 715750 99999 CAPE DORSET CLIMATE CA CNCD 64.23 -76.53 50.0 20050507 20170923 715760 99999 POND INLET CLIMO CA CNDT 72.7 -77.95 65.0 20040803 20170910 715770 99999 GIMLI HARBOUR CS MAN CA CXGH 50.617 -96.96700000000001 217.0 20010916 20170923 715780 99999 BEAUPORT QUE CA CXBO 46.833 -71.183 10.0 20030617 20170923 715790 99999 WINNIPEG THE FORKS MAN CA CXWN 49.883 -97.133 230.0 20010916 20170923 715800 99999 TALOYOAK A NU CA 69.533 -93.56700000000001 28.0 20030617 20170923 715810 99999 ALGONQUIN PARK EAST GATE CA CTNK 45.533 -78.267 397.0 20050201 20170923 715820 99999 BELLA BELLA CAMPBELL CA CBBC 52.183 -128.15 43.0 20030330 20170923 715830 99999 QAVVIK LAKE NWT CA 68.25 -122.1 548.0 20010916 20110311 715840 99999 HAVRE ST PIERRE CA 50.266999999999996 -63.6 37.0 20030617 20170921 715850 99999 FORT MCMURRAY CS ALTA CA CXMM 56.65 -111.21700000000001 369.0 20010825 20170923 715860 99999 LA RONGE RCS SASK CA CXOX 55.15 -105.26700000000001 379.0 20010829 20170923 715870 99999 SANDY LAKE A CA 53.067 -93.35 289.9 20010701 20170923 715880 99999 ROCKY HARBOUR CS NFLD CA CXRH 49.567 -57.867 68.0 20010916 20170923 715890 99999 TERRA NOVA NAT PARK CS NFLD CA CXTP 48.55 -53.967 107.0 20010702 20170923 715900 99999 EDMUNSTON CA CERM 47.42 -68.32 154.0 20040810 20170923 715901 99999 MALAY FALLS CA CXMY 44.98 -62.48 40.0 20050217 20170923 715910 99999 MCNABS ISLAND (AUT) CA CXMI 44.6 -63.53 15.0 20040831 20170923 715915 99999 BLACK COMB MTN BASE CA BC CVOC 50.117 -122.95 659.0 20050201 20050912 715920 99999 ARCTIC BAY CS CA CXAT 73.0 -85.01700000000001 10.0 20030617 20170923 715925 99999 ARTIC BAY CA CYAB 73.0 -85.03299999999999 22.0 20110113 20170923 715930 99999 PRAIRIE RIVER ALTA CA CXPV 58.617 -111.667 212.0 20040405 20091007 715970 99999 GJOA HAVEN CA CYHK 68.63600000000001 -95.85 46.3 20030617 20170923 715971 99999 GRAND ETANG CA CWZQ 46.55 -61.05 13.0 20130101 20170923 715980 99999 BAS CARAQUET NB CA CWXS 47.8 -64.833 5.0 20030617 20170923 715990 99999 KEJIMKUJIK 1 NS CA CWKG 44.417 -65.2 165.0 19970501 20170923 716000 99999 SABLE ISLAND NS CA CESA 43.917 -60.0 5.0 19550702 20170923 716004 99999 SABLE ISLAND CA 43.933 -60.0 4.0 19790131 20170629 716005 99999 SABLE ISLAND (MAN) CA 43.917 -59.917 4.0 19920823 19940720 716010 99999 SHEARWATER CA CYAW 44.64 -63.498999999999995 50.9 19540101 20170922 716013 99999 DIGBY CA CYID 44.54600000000001 -65.789 152.1 19900111 19960602 716015 99999 SHEARWATER JETTY CA CWZU 44.63 -63.52 6.0 19860110 20170923 716016 99999 SHEARWATER AUTO CA CWAW 44.63 -63.5 53.0 19850111 19850618 716021 99999 19550702 19630731 716030 99999 YARMOUTH CA CYQI 43.827 -66.08800000000001 43.0 19490101 20170923 716033 99999 BRIER ISLAND(AUT) CA WVU 44.283 -66.333 16.0 19920408 19950605 716040 99999 NORTH MOUNTAIN CS CA CXNM 46.817 -60.667 439.0 19820101 20170923 716041 99999 EDDY POINT CA 45.516999999999996 -61.25 66.0 19550702 19630731 716050 99999 PORT MELLON CA CVOM 49.516999999999996 -123.48299999999999 123.0 20030617 20170923 716053 99999 PORT HAWKESBURY CA 45.65 -61.367 118.0 19870618 20100817 716055 99999 CAPE GEORGE (AUTO8) CA 45.867 -61.9 120.0 19940818 19950606 716060 99999 KAPUSKASING CA 49.4 -82.45 218.0 20040831 20120519 716070 99999 ST.STEPHEN (AUT) CA CWSS 45.217 -67.25 26.0 19820101 20170923 716080 99999 VANCOUVER SEA ISLAND CCG CA CVVR 49.183 -123.18299999999999 2.1 19820102 20170923 716090 99999 SAINT JOHN CA CYSJ 45.317 -65.883 108.8 19550702 20170923 716094 99999 POINT LEPREAU CA CWPE 45.067 -66.467 1.0 19911106 19950605 716100 99999 SHERBROOKE CA CYSC 45.43899999999999 -71.691 241.4 19620501 20170923 716110 99999 LENOXVILLE QUE CA CWQH 45.367 -71.817 181.0 19960301 20170923 716120 99999 MCTAVISH QUE CA CWTA 45.5 -73.567 73.0 19941201 20170923 716140 99999 STE CLOTHILDE QUE CA CWIT 45.167 -73.667 53.0 19911101 20170923 716150 99999 BRITT (AUT) CA CWBI 45.8 -80.53 190.0 20170228 20170315 716160 99999 LEMIEUX QUE CA CMLU 46.3 -72.05 97.0 19911106 20170915 716170 99999 JONQUIERE QUE CA CWJO 48.417 -71.133 128.0 19920106 20170923 716180 99999 CHURCHILL CA CYYQ 58.739 -94.065 28.7 19940211 20170923 716190 99999 NEW CARLISLE 1 QUE CA CWOC 48.0 -65.317 46.0 19940201 20170923 716200 99999 KINGSTON CA CYGK 44.225 -76.597 93.0 19820101 20170923 716204 99999 KINGSTON (MARS) CA 44.217 -76.6 93.0 19820101 19880830 716205 99999 SAINT LIN LAURENTID CA 45.85 -73.7 50.0 20050114 20070614 716210 99999 TRENTON CA CYTR 44.117 -77.533 86.3 19550703 20170923 716215 99999 HARRINGTON CA CMHN 45.8 -74.63 168.0 20050114 20061201 716220 99999 LONDON CS ONT CA CWSN 43.033 -81.15 278.0 20040803 20170923 716225 99999 LOCHABER CA 45.633 -75.2 105.0 20050114 20070614 716230 99999 LONDON CA CYXU 43.036 -81.154 278.0 19550702 20170923 716235 99999 SAINT ANDRE AVELIN CA 45.8 -75.067 195.0 20050114 20130425 716240 99999 LESTER B PEARSON INTL CA CYYZ 43.677 -79.631 173.4 19500101 20170923 716245 99999 COTE-STE-CATHERINE CA CWCS 45.42 -73.57 17.0 19820103 19820804 716246 99999 HAMILTON CA 43.167 -79.933 239.0 19820101 19831206 716248 99999 ST CATHARINES CA 43.183 -79.183 98.0 19820101 19831205 716249 99999 TORONTO HEADLAND (AUT) CA 43.37 -79.21 87.0 19880513 19941220 716250 99999 PETAWAWA CA CYWA 45.952 -77.319 130.1 19780101 20170923 716251 99999 TRENT HILLS CA 44.317 -77.633 139.0 19550702 19630731 716260 99999 MCGILL RADAR CA CWMN 45.42 -73.93 63.0 19990403 20061122 716261 99999 DARLINGTON CA 43.867 -78.783 93.0 19770701 19801121 716266 99999 COBOURG CA WNC 43.95 -78.167 78.0 19770701 19800809 716268 99999 PT PETRE CA 43.833 -77.15 81.0 19770701 19800625 716269 99999 PORT WELLER (AUT) CA 43.25 -79.22 79.0 19770701 19830405 716270 94792 MONTREAL/TRUDEAU INT CA QC CYUL 45.467 -73.733 36.0 19550101 20170923 716270 99999 PIERRE ELLIOTT TRUDEAU INTL CA CYUL 45.467 -73.733 36.0 20000101 20071231 716275 99999 ST HUBERT CA 45.516999999999996 -73.417 27.0 19540101 19860403 716276 99999 SUTTON JUNCTION/AUT CA WXF 45.15 -72.583 237.0 19770701 19810621 716278 99999 KUUJJUARAPIK ARPT CA CYGW 55.283 -77.75 10.0 19770701 20170923 716279 99999 GATINEAU CA CYND 45.522 -75.564 64.3 19800423 20170923 716280 99999 OTTAWA MACDONALD CARTIER INTL CA CYOW 45.323 -75.669 114.0 19500101 20170923 716285 99999 OTTAWA STOLPORT CA 45.467 -75.65 58.0 19921022 19941220 716290 99999 FORT ROSS CA CNFR 72.017 -94.2 10.0 19801015 20170923 716291 99999 KILLALOE/BONNECHERE CA 45.667 -77.6 181.0 19550702 19630731 716293 99999 PETERBOROUGH ARPT CA 44.233000000000004 -78.367 191.0 19880105 19930308 716300 99999 MUSKOKA CA CYQA 44.975 -79.303 281.9 19550702 20170923 716303 99999 EGBERT (MAPS) CA CWET 44.233000000000004 -79.783 251.0 19910207 19930831 716305 99999 LAGOON CITY & CA 44.533 -79.217 221.0 19930202 19941220 716310 99999 MOUNT FOREST (AUT) ONT CA CWLS 43.983000000000004 -80.75 415.0 19620101 20170923 716313 99999 NORTH BAY (READAC) CA 46.367 -79.417 370.0 19910611 19910626 716314 99999 MT FOREST CA 43.983000000000004 -80.75 415.0 19791101 19910204 716315 99999 GODERICH CA 43.766999999999996 -81.7 213.0 19770701 19801031 716316 99999 GODERICH (AUTO8) CA 43.766999999999996 -81.7 213.0 19811124 19830405 716320 99999 LYNN LAKE RCS CA CPLE 56.85 -101.06700000000001 354.0 19770701 20170923 716321 99999 CENTRALIA HURON CA 43.3 -81.517 253.0 19550702 19630731 716330 99999 WIARTON A CA CYVV 44.75 -81.1 222.2 19500101 20170923 716333 99999 WIARTON (READAC) CA CZVV 44.75 -81.117 223.0 19910611 19950728 716340 99999 RED PINES CA CARP 47.433 -65.583 124.0 19930520 20170923 716341 99999 SARNIA CA 43.0 -82.3 181.0 19770701 19800605 716344 99999 SARNIA AIRPORT & CA 43.0 -82.3 181.0 19800611 19930308 716353 99999 GREAT BEND (MAPS) CA 43.333 -81.733 190.0 19861120 19871204 716360 99999 CAMPSIE AUTO CA CPZC 54.131 -111.678 647.0 20140404 20170923 716363 99999 BELLE RIVER CA 42.3 -82.7 184.0 19861120 19941220 716370 99999 RANFURLY AUTO CA 53.417 -111.73299999999999 687.0 20140404 20170923 716373 99999 OLIPHANT\ONT CA 44.733000000000004 -81.283 182.0 19861205 19941220 716380 99999 SECHELT CA CVOU 49.45 -123.7 86.0 20030917 20170923 716390 99999 TORONTO BUTTONVILLE A ONT CA 43.867 -79.367 198.0 20040824 20170923 716400 99999 LAKE SUPERIOR PROVINCIAL PARK CA 47.717 -84.81700000000001 400.6 20140404 20170923 716420 99999 CHAPLEAU CA CYLD 47.82 -83.34700000000001 446.5 19961101 20170923 716440 99999 KELOWNA UBCO CA 49.933 -119.4 456.0 20140404 20170923 716445 99999 FREDERICTON AQUATIC CENTRE C/S CA CWZF 45.97 -66.65 8.0 20050524 20151104 716530 99999 MONTREAL RIVER RADAR CA CWGJ 47.25 -84.6 459.0 20151028 20170628 716600 99999 CRANBROOK AIRPORT AUTO CA 49.617 -115.78299999999999 929.7 20140404 20170923 716630 99999 WASECA RCS CA 53.133 -109.4 640.0 20140404 20170923 716650 99999 NAIN CA CWFP 56.55 -61.68 8.0 20050218 20170923 716660 99999 BUCTOUCHE CDA CS CA CABT 46.42 -64.77 36.0 20050724 20170923 716670 99999 THUNDER BAY CS CA CZTB 48.37 -89.32 199.0 20050724 20170923 716680 99999 FREDERICKTON CDA CS CA CAFC 45.92 -66.6 35.0 20050724 20170923 716690 99999 PEKISKO CA CNPK 50.367 -114.417 1415.0 20050524 20170923 716700 99999 KOUCHIBOUGUAC CS CA CAKC 46.77 -65.0 34.0 20050628 20170923 716710 99999 KENTVILLE CDA CA CXKT 45.07 -64.48 49.0 20051017 20170923 716720 99999 PETERBOROUGH TRENT U CA CTPQ 44.35 -78.3 216.0 20050724 20170923 716730 99999 FERINTOSH AGCM CA 52.75 -112.85 795.0 20080401 20170923 716740 99999 FORESTBURG AGCM CA 52.55 -112.117 721.0 20071124 20170923 716750 99999 BIG TROUT LAKE CA CYTL 53.833 -89.867 224.0 19941116 20170923 716780 99999 MUSKRAT DAM CA 53.433 -91.76700000000001 277.7 20121116 20170903 716790 99999 OOTSA LAKESKINS LAKE CA CVSL 53.77 -125.98 861.0 20051017 20170923 716800 99999 LOWER CARP LAKE NWT CA CXLC 63.6 -113.85 373.0 20010916 20170923 716810 99999 ASHCROFT CA CVAS 50.7 -121.26700000000001 327.0 20030405 20170923 716820 99999 LINDBURG LANDING NWT CA CXLL 61.117 -122.85 183.0 20010916 20170923 716830 99999 TRAIL VALLEY NWT CA CXTV 68.75 -133.5 85.0 20040713 20170923 716840 99999 TIMISKAMING RGNL / EARLTON CA CYXR 47.7 -79.85 243.2 20050724 20170923 716850 99999 REVELSTOKE CA CVRA 50.967 -118.18299999999999 445.0 20060403 20130905 716860 99999 DEASE LAKE CA CYDL 58.417 -130.033 802.8 20050724 20170923 716870 99999 WHISTLER-NESTERS CA CVOC 50.133 -122.95 659.0 20050724 20170923 716880 99999 CALLAGHAN VALLEY CA CVOD 50.15 -123.117 884.0 20050724 20170923 716890 99999 FORT MCMURRAY AIRPORT CA CYMM 56.65 -111.21700000000001 369.1 20070228 20170923 716900 99999 TEEPEE CREEK AGCM CA CPTC 55.35 -118.4 670.0 20080721 20170923 716910 99999 BAIE COMEAU CA CYBC 49.133 -68.2 21.6 20040928 20170923 716920 99999 MARTICOT ISLAND CA CWTM 47.333 -54.583 22.0 20050921 20170923 716930 99999 CYPRESS BOWL SOUTH CA CVOG 49.383 -123.2 886.0 20070401 20140822 716940 99999 BEATRICE CLIMATE CA CTBT 45.133 -79.4 297.0 20051102 20170923 716950 99999 THE PAS CLIMATE CA CPQD 53.967 -101.1 274.0 20051027 20170923 716960 99999 CHURCHILL CLIMATE CA CPYQ 58.72 -94.07 29.0 20060201 20170923 716970 99999 OSHAWA CA CYOO 43.923 -78.895 139.9 20061024 20170923 716971 99999 LANSDOWNE HOUSE LWIS CA CYLH 52.2 -87.93 254.0 20100920 20170923 716990 99999 POINT LEPREAU CS CA CWPE 45.067 -66.45 6.0 20040921 20170923 717000 99999 FREDERICTON CA CYFC 45.867 -66.533 20.7 19550702 20170923 717010 99999 GAGETOWN (CAN-MIL) CA CYCX 45.833 -66.433 51.0 19770704 20170923 717020 99999 SUMMERSIDE CA CWSD 46.433 -63.833 12.0 19500101 20170923 717024 99999 NORTH POINT (AUTO8) CA 47.083 -64.0 15.0 19911106 19950605 717030 99999 ST LEONARD CA CYSL 47.15 -67.833 241.7 19850319 20140630 717040 99999 SARNIA CA CYZR 43.0 -82.31700000000001 181.1 20040321 20170923 717041 99999 CAPE NORTH CA 47.016999999999996 -60.45 47.0 19581002 19590228 717050 99999 GREATER MONCTON INTL CA CYQM 46.111999999999995 -64.679 70.7 19420101 20170923 717055 99999 PT. ESCUMINAC(MAPS) CA 47.067 -64.8 5.0 19860117 19880722 717060 99999 CHARLOTTETOWN CA CYYG 46.283 -63.133 48.8 19550702 20170923 717063 99999 SUMMERSIDE CA CYSU 46.441 -63.833999999999996 17.1 19910911 20130430 717070 99999 SYDNEY A CA CYQY 46.167 -60.05 61.9 19420101 20170923 717075 99999 INVERNESS (AMOS) CA WVE 46.233000000000004 -61.3 41.0 19770701 19830429 717080 99999 QUEBEC JEAN LESAGE INTL CA CYQB 46.791000000000004 -71.393 74.4 20050104 20170923 717081 99999 19550702 19560731 717090 99999 ILES DE LA MADELEINE A CA CYGR 47.417 -61.783 10.7 19770701 20170923 717091 99999 19550702 19630731 717093 99999 ILES DE LA MADELEIN CA 47.433 -61.766999999999996 8.0 19911101 19930701 717094 99999 ILES DE LA MADELEIN CA 47.417 -61.783 10.0 19781205 19870513 717100 99999 ILES DE LA MADELEINE QUE CA CWGR 47.417 -61.766999999999996 8.0 19930701 20170923 717101 99999 COPPER LAKE CA 45.383 -61.967 96.0 19550702 19620228 717110 99999 CHARLO CA NB CYCL 47.983000000000004 -66.333 40.0 19770701 20050409 717111 99999 LAC MEGANTIC CA 45.583 -70.867 415.0 19550702 19620430 717115 99999 ST LEONARD AUTO8 CA 47.15 -67.817 49.0 19950911 20050303 717120 99999 ST ANICET 1 QUE CA CWCB 45.117 -74.283 49.0 19940201 20170923 717130 99999 LA POCATIERE QUE CA CWST 47.35 -70.017 31.0 19960301 20170923 717134 99999 CHARLEVOIX CA CYML 47.598 -70.22399999999999 297.8 19830801 19961113 717140 99999 QUEBEC/JEAN LESAGE INTL QUE CA CWQB 46.783 -71.383 74.0 19550702 20170923 717144 99999 VILLEROY RADAR CA 46.45 -71.917 0.0 19911018 19911126 717145 99999 TROIS RIVIERES CA CWRQ 46.38 -72.62 11.0 19770824 19771104 717146 99999 NICOLET (AUTOB) CA 46.217 -72.65 10.0 19910320 19910611 717150 99999 RIVIERE DU LOUP QUE CA CWNH 47.8 -69.533 147.0 19770701 20170923 717154 99999 RIVIERE DU LOUP & CA 47.8 -69.55 149.0 19790131 19790207 717155 99999 RIVIERE DU LOUP & CA 47.8 -69.55 149.0 19811124 19830501 717160 99999 VALCARTIER AIRPORT CA CYOY 46.9 -71.5 168.0 19781030 20170923 717161 99999 CAMPBELLTON CA 48.0 -66.667 8.0 19550702 19630731 717170 99999 MIRAMICHI A CA 47.0 -65.45 33.0 19540101 20050901 717173 99999 BATHURST CA 47.617 -65.75 59.0 19910204 20101026 717174 99999 CHATHAM (AUTO8) CA 47.0 -65.467 34.0 19850405 20050810 717175 99999 BAS CARAQUET CA CWXS 47.8 -64.833 5.0 19930724 19950605 717180 99999 MONT JOLI A CA CYYY 48.6 -68.217 52.4 19550702 20170923 717190 99999 MISCOU ISLAND (AUT) CA CWMI 48.016999999999996 -64.5 4.0 19770701 20170923 717200 99999 POWELL RIVER CA CVOP 49.833 -124.48299999999999 125.0 19770701 20170923 717210 99999 MANIWAKI AIRPORT CA CWMJ 46.266999999999996 -76.0 200.0 19930801 20170923 717220 99999 MANIWAKI UA CA CWMW 46.3 -76.0 189.0 19550702 20060307 717230 99999 NICOLET QUE CA CWNQ 46.217 -72.65 8.0 19910611 20170923 717234 99999 LA TUQUE A CA YLQ 47.4 -72.783 167.0 19850702 19851227 717240 99999 TROIS RIVIERES QUE CA CWTY 46.35 -72.5 6.0 19911106 20170923 717250 99999 VAL D OR CA CYVO 48.053000000000004 -77.783 337.4 19550702 20170923 717255 99999 ROUYN NORANDA CA CYUY 48.206 -78.836 301.1 19770701 20170923 717260 99999 PARENT QUE CA CWPK 47.917 -74.617 445.0 19550702 20170923 717263 99999 KANGIQSUJUAQ ARPT CA 61.583 -71.933 151.0 19900314 19910204 717270 99999 BAGOTVILLE CA CYBG 48.331 -70.99600000000001 159.1 19500102 20170923 717280 99999 ROBERVAL A CA CYRJ 48.516999999999996 -72.267 178.6 19571011 20170923 717290 99999 TROIS-RIVIERES A CA 46.35 -72.683 60.0 20050729 20050817 717300 99999 SUDBURY CA CYSB 46.625 -80.79899999999999 347.8 19550702 20170923 717310 99999 NORTH BAY CA CYYB 46.364 -79.423 370.3 19500101 20170923 717313 99999 NORTH BAY (READAC) CA CZNB 46.367 -79.417 364.0 19910711 19930805 717320 99999 BARRAGE TEMISCAMINGUE CA CWBA 46.717 -79.1 181.0 20010705 20170923 717330 99999 SUDBURY CLIMATE CA 46.633 -80.8 348.0 19550702 20170923 717334 99999 ELLIOT LAKE MUNI CA CYEL 46.351000000000006 -82.561 331.3 19780111 20120402 717340 99999 ROUYN QUE CA CWUY 48.233000000000004 -79.033 318.0 19920505 20170923 717350 99999 EARLTON CA 47.7 -79.85 243.0 19550702 20120215 717355 99999 NIPISSING CA 46.317 -79.483 0.0 19880725 19941220 717360 99999 PINCHER CREEK CLIMATE CA CPCK 49.516999999999996 -114.0 1190.0 19921216 20170923 717365 99999 RAWSON LAKE (AUT) CA CTRA 49.65 -93.71700000000001 435.0 20090923 20170923 717366 99999 ROYAL ISLAND (AUT) CA 49.467 -94.76700000000001 329.0 20070628 20170923 717367 99999 NORTHEAST MARGAREE (AUT) CA CWNS 46.367 -60.983000000000004 46.0 20101115 20170923 717370 99999 SAINT-MICHEL-DES-SAINTS CA CMMY 46.817 -74.1 430.0 20030617 20170923 717374 99999 CHAPLEAU ARPT(SAWR) CA CYLD 47.65 -83.35 448.0 19780814 19980510 717375 99999 SAULT STE MARIE & CA 46.483000000000004 -84.5 188.0 19770701 19860403 717380 99999 WAWA CA CYXZ 47.967 -84.787 287.1 19770701 20170923 717381 99999 WHITE RIVER CA CYWR 48.6 -85.28299999999999 374.0 19550702 19630731 717385 99999 WAWA AUT CA CWXZ 47.967 -84.78299999999999 287.0 19921022 20150708 717386 99999 CORNER BROOK CA CWKB 48.933 -57.917 152.0 20090801 20170923 717390 99999 TIMMINS VICTOR POWER A CA CYTS 48.57 -81.377 294.7 19550702 20170923 717393 99999 WELCOME ISL (AUTO8) CA WEC 48.367 -89.117 209.0 19890908 19950605 717410 99999 KAMLOOPS AUTO CA CZKA 50.7 -120.45 345.0 20061010 20170923 717420 99999 GANDER AIRPORT CS CA CXGD 48.93 -54.57 151.0 20050724 20170923 717430 99999 RIVIERE AUX FEUILLES CA CMRF 57.92 -72.98 171.0 20060403 20170923 717440 99999 MIRAMICHI RCS CA CACQ 47.016999999999996 -65.467 33.0 20051017 20170923 717460 99999 SARNIA CLIMATE CA CTZR 43.0 -82.3 181.0 20060201 20170923 717470 99999 ATIKOKAN (AUT) ONT CA CWCH 48.75 -91.617 389.0 20010916 20170923 717480 99999 GIMLI CLIMATE CA CPGH 50.633 -97.05 230.0 19770701 20170923 717483 99999 ATIKOKAN (AUT) & CA 48.766999999999996 -91.633 429.0 19881208 19901101 717485 99999 BIG THUNDER CA WQU 48.283 -89.383 299.0 19950210 19950320 717490 99999 THUNDER BAY A CA CYQT 48.367 -89.333 199.0 19550702 20170923 717493 99999 TERRACE BAY CA CYTJ 48.813 -87.09899999999999 289.6 19820806 20050114 717495 99999 UPSALA (AUT) CA 49.03 -90.47 489.0 19770701 19950421 717496 99999 PUKASKWA PARK CA CWCJ 48.6 -86.3 206.0 19930520 19960604 717500 54802 PUKASKWA CA ON CWCJ 48.583 -86.3 208.0 20060101 20170920 717500 99999 PUKASKWA (AUT) ONT CA CWCJ 48.583 -86.28299999999999 208.0 19961101 20071231 717510 99999 WELCOME ISLAND (AUT) CA CWEC 48.367 -89.117 211.0 19961101 20170923 717520 99999 WELLAND PELHAM CA CTWL 42.97 -79.33 178.0 20060201 20170923 717530 99999 UPPER STEWIACKE RCS CA CAOH 45.23 -63.05 24.0 20060201 20170923 717540 99999 NORTH BATTLEFORD RCS CA CPQW 52.77 -108.25 548.0 20060201 20170923 717545 99999 SAINT DENIS DE KARM CA 47.516999999999996 -69.883 14.0 20060403 20060718 717550 99999 MUSKRAT DAM A CA CZMD 53.43 -91.77 278.0 20060726 20170904 717560 99999 BLACKCOMB BASE SLIDING CENTER CA 50.1 -122.93299999999999 937.0 20080322 20170923 717570 99999 BELLA BELLA CA 52.15 -128.15 43.0 20060702 20120207 717580 99999 SYDNEY RCS CA CAQY 46.17 -60.05 63.0 20060201 20170923 717600 99999 BIG CREEK (AUT) CA CWBG 51.27 -123.1 1670.0 19961101 20110928 717610 99999 VILNA AGCM CA CPVI 54.133 -111.917 645.0 20010717 20170923 717620 99999 ISKUT RIVER (AUT) CA CWIO 56.73 -131.67 15.0 19961101 20050307 717630 99999 NECHAKO RIVER CA 53.683 -124.833 715.0 19961101 20020115 717650 99999 LYTTON RCS CA 50.217 -121.583 225.0 20061010 20170923 717660 99999 QUALICUM BEACH AIRPORT CA 49.333 -124.4 58.0 20080322 20170923 717670 99999 TOBERMORY RCS CA CTTR 45.233000000000004 -81.633 214.0 20070228 20170923 717680 99999 SUMMERLAND CS BC CA CWUS 49.567 -119.65 454.0 19950423 20170923 717690 99999 BALLENAS ISLAND BC CA CWGB 49.35 -124.15 13.0 19950423 20170923 717700 99999 CRESTON CAMPBELL SCIENTIFIC BC CA CWJR 49.083 -116.5 646.0 19950423 20170923 717710 99999 CUMSHEWA ISLAND BC CA CWZL 53.033 -131.6 17.0 20010916 20170923 717720 99999 ENTRANCE ISLAND CS BC CA CWEL 49.217 -123.8 5.0 19950423 20170923 717730 99999 WHITEHORSE AUTO CA 60.717 -135.083 707.0 20050728 20170923 717740 99999 MALAHAT BC CA CWKH 48.567 -123.51700000000001 366.0 19950423 20170923 717750 99999 PITT MEADOWS CAMPBELL SCIENTIFIC BC CA CWMM 49.2 -122.68299999999999 5.0 19950423 20170923 717760 99999 NELSON BC CA CWNM 49.483000000000004 -117.3 534.9 19950423 20170923 717770 99999 PEMBERTON AIRPORT BC CA CWGP 50.3 -122.73299999999999 204.0 19950423 20170923 717775 99999 PEMBERTON AIRPORT (WIND)PEMBERTON AIRPORT (WIND) CA CWPN 50.3 -122.73299999999999 203.0 20101115 20140922 717780 99999 RACE ROCKS CAMPBELL SCIENTIFIC BC CA CWQK 48.3 -123.53299999999999 3.0 19950423 20170923 717790 99999 QUESNEL AIRPORT AUTO CA 53.033 -122.5 545.0 20050722 20170923 717800 99999 SHERINGHAM POINT BC CA CWSP 48.383 -123.917 22.0 19950423 20170923 717810 99999 SISTERS ISLAND BC CA CWGT 49.483000000000004 -124.43299999999999 20.0 19950423 20170923 717820 99999 SPARWOOD CS BC CA CWGW 49.75 -114.883 1138.0 19950423 20170923 717830 99999 VICTORIA UNIVERSITY CS CA CWYJ 48.45 -123.3 60.0 19950423 20170923 717840 99999 WEST VANCOUVER (AUT) CA CWWA 49.35 -123.2 168.0 19950423 20170923 717850 99999 WHITE ROCK CAMPBELL SCIENTIFIC BC CA CWWK 49.016999999999996 -122.76700000000001 13.0 19950423 20170923 717860 99999 YOHO PARK BC CA CWYL 51.45 -116.35 1602.0 19960501 20170923 717870 99999 MECHANIC SETTLEMENT RCS CA CAMS 45.7 -65.167 403.0 20070211 20170923 717880 99999 GRASSY LAKE CA CPGL 49.867 -111.73299999999999 783.0 20070605 20170923 717890 99999 FORT MACLEOD AGCM CA 49.783 -113.383 978.0 20080401 20170923 717910 99999 GILT EDGE NORTH AGCM CA 53.067 -110.617 647.0 20071124 20170923 717920 99999 HALKIRK AGCM CA 52.117 -112.167 843.0 20080401 20170923 717930 99999 HEMARUKA AGCM CA 51.783 -111.21700000000001 780.0 20080401 20170923 717940 99999 HUGHENDEN AGCM CA 52.567 -110.78299999999999 703.0 20080721 20170923 717950 99999 IRVINE AGCM CA 49.983000000000004 -110.26700000000001 795.0 20080401 20170923 717960 99999 KESSLER AGCM CA 52.283 -111.1 720.0 20080721 20161013 717970 99999 KITSCOPTY AGCM CA 53.35 -110.417 664.0 20080401 20170923 717980 99999 ESQUIMALT HARBOUR CA CWPF 48.43 -123.43 3.0 20030617 20170923 717990 99999 VICTORIA INTL CA CYYJ 48.647 -123.426 19.2 19550702 20170923 717994 99999 VICTORIA UNIV CA 48.45 -123.3 60.0 19930520 19950414 717995 99999 VICTORIA MARINE RAD CA 48.367 -123.75 31.0 19770701 19800227 718000 99999 CAPE RACE (AUT) NFLD CA CWRA 46.65 -53.067 27.0 19550702 20170923 718004 99999 ST SHOTTS (AUT) CA CWFH 46.72 -53.48 143.0 19930330 19960103 718009 99999 KELLIGREWS CA 47.5 -53.016999999999996 3.0 19900302 19900317 718010 99999 ST JOHNS INTL CA CYYT 47.619 -52.751999999999995 140.5 19410929 20170923 718020 99999 ST JOHN'S WEST CA 47.516999999999996 -52.783 112.0 19770701 20150415 718021 99999 GRAND BANK CA 47.1 -55.766999999999996 8.0 19550702 19630731 718030 99999 GANDER INTL CA CYQX 48.937 -54.568000000000005 151.2 19410630 20170923 718040 99999 SAGLEK CA 58.333 -62.583 501.0 19890114 20101019 718041 99999 BUCHANS CA 48.85 -56.833 276.0 19550702 19630731 718043 99999 SAGLEK AIRPORT CA YSV 58.467 -62.65 83.0 19930204 19930902 718045 99999 BADGER CA 48.967 -56.067 105.0 19770701 19830501 718050 99999 ST PIERRE SB LFVP 46.763000000000005 -56.176 8.2 19770701 20170923 718059 99999 BOGUS CANADIAN CA 0.0 0.0 -999.0 19850208 19850723 718060 99999 LA SCIE CA 49.917 -55.667 194.0 19840701 20120409 718061 99999 19550702 19630731 718064 99999 CONNE RIVER (AUT) CA CWFY 48.17 -55.48 183.0 19920505 19960103 718070 99999 ARGENTIA (AUT) CA CWAR 47.3 -53.983000000000004 19.0 19450301 20170803 718073 99999 ARGENTIA (MARS) CA 47.3 -54.0 16.0 19870219 19910204 718080 99999 BLANC SABLON A CA CYBX 51.45 -57.183 36.9 19770701 20170923 718084 99999 BLANC SABLON ARPT & CA 51.433 -57.217 19.0 19820901 19830510 718090 99999 DEER LAKE A CA CYDF 49.217 -57.4 21.9 19770701 20170923 718091 99999 BELLE ISLE CA 51.883 -55.383 130.0 19550702 19630731 718100 99999 PORT MENIER QUE CA CWBY 49.833 -64.283 55.0 19600719 20170923 718103 99999 PORT MENIER CA CYPN 49.836000000000006 -64.289 50.9 19810820 19921201 718104 99999 PORT MENIER (MARS)& CA YPN 49.85 -64.45 31.0 19790131 19790723 718105 99999 HAVRE ST-PIERRE CA 50.25 -63.6 6.0 19770701 19941220 718110 99999 SEPT ILES CA CYZV 50.217 -66.267 54.9 19550702 20170923 718113 99999 NEMISCAU ARPT(SAWR) CA CYHH 51.7 -76.117 244.0 19811124 20151030 718120 99999 ARVIAT A CA 61.1 -94.06700000000001 10.0 20010705 20120808 718121 99999 LAKE EON CA 51.867 -63.283 593.0 19550802 19630731 718130 99999 NATASHQUAN A CA CMNT 50.183 -61.8 11.0 19550702 20170923 718134 99999 NATASHQUAN AIRPORT CA 50.183 -61.783 11.0 19840118 19900919 718140 99999 CHEVERY QUE CA CWDM 50.45 -59.633 8.0 19550702 20170923 718141 99999 HARRINGTON HARBOUR CA 50.533 -59.5 3.0 19770701 19781101 718150 99999 STEPHENVILLE A CA CYJT 48.533 -58.55 25.0 19411015 20170923 718160 99999 GOOSE BAY CA CYYR 53.317 -60.417 48.8 19420321 20170923 718170 99999 MARYS HARBOUR CA CYMH 52.3 -55.833 12.0 19571001 20170923 718171 99999 BATTLE HARBOUR CA WBF 52.25 -55.6 5.0 19770701 19831103 718173 99999 MARY'S HARBOUR CA 52.3 -55.817 12.0 19900724 20101026 718174 99999 19790131 19790628 718175 99999 QUAKER HAT (MAPS) CA 54.733000000000004 -57.35 38.0 19811130 19880105 718180 99999 CARTWRIGHT CA CWCA 53.717 -57.033 14.0 19550702 20170923 718184 99999 CARTWRIGHT (MAN) CA CYCA 53.683 -57.033 12.0 19790131 19791006 718190 99999 ST.ANTHONY CA CYAY 51.4 -56.067 32.9 19550702 20170923 718193 99999 MAKKOVIK AIRPORT CA CYFT 55.083 -59.183 71.0 19860125 19970304 718194 99999 ST ANTHONY CA 51.383 -56.083 34.0 19770803 20050612 718195 99999 WELCOME ISL (AUTO8) CA WEC 48.367 -89.117 209.0 19881014 19890731 718200 99999 KINGSTON CLIMATE CA CTKG 44.217 -76.6 93.0 19961001 20170923 718201 99999 BARRAGE ANGLIERS CA CWRC 47.55 -79.23 267.0 19550702 19610831 718210 99999 MATAGAMI A CA CGMG 49.75 -77.8 281.3 19770701 20170923 718211 99999 19550702 19600229 718213 99999 MATAGAMI (READAC) CA 49.766999999999996 -77.833 281.0 19910801 19921210 718220 99999 CHAPAIS CA CYMT 49.772 -74.528 387.1 19770701 20170923 718223 99999 CHIBOUGAMAU CA 49.766999999999996 -74.55 387.0 19920807 19921210 718230 99999 LA GRANDE IV UA CA CGAH 53.75 -73.683 306.0 19851205 20170923 718233 99999 LA GRANDE IV READAC CA 53.75 -73.683 307.0 19910921 19921130 718240 99999 CHAPAIS QUE CA CWUK 49.817 -74.967 381.0 20040824 20170923 718241 99999 GAGNON CA YGA 51.95 -68.133 566.0 19771006 19851010 718250 99999 WABUSH CA CYWK 52.922 -66.86399999999999 551.1 19601102 20170923 718260 99999 PANGNIRTUNG NU CA CWXP 66.15 -65.717 23.0 19770701 20170923 718261 99999 SNITCHQUON CA 53.2 -70.9 572.0 19550702 19630731 718264 99999 PANGNIRTUNG CA YNI 53.2 -70.9 537.0 19790131 19790410 718270 99999 LA GRANDE RIVIERE CA CYGL 53.625 -77.704 194.8 19770701 20170923 718274 99999 OPINACA CA 52.217 -76.6 208.0 19781205 19790822 718275 99999 LA GRANDE III(SAWR) CA CYAD 53.567 -76.2 233.0 19781205 20151030 718276 99999 LA GRANDE IV ARPT CA 53.0 -73.383 283.0 19781205 19860413 718280 99999 SCHEFFERVILLE A CA CYKL 54.8 -66.8 520.9 19550702 20170923 718284 99999 CANIAPISCAU AIRPORT CA 54.833 -69.867 509.0 19781205 19821020 718290 99999 BAIE COMEAU QUE CA CWFW 49.25 -68.133 130.0 19960301 20170923 718300 99999 ST. ANTHONY LWIS CA 51.383 -56.083 33.0 20030330 20090903 718310 99999 KAPUSKASING CA CYYU 49.413999999999994 -82.46799999999999 226.5 19500101 20170923 718320 99999 NAGAGAMI (AUT) ONT CA CWNZ 49.733000000000004 -84.15 264.0 19820101 20170923 718330 99999 GUELPH TURFGRASS CA CTGT 43.55 -80.217 325.0 20070228 20170923 718331 99999 PAGWA RIVER CA 50.033 -85.26700000000001 189.0 19550702 19630731 718340 99999 GERALDTON GREENSTONE REGIONAL CA CYGQ 49.778 -86.939 348.7 19820101 20170923 718344 99999 GERALDTON AIRPORT & CA 49.7 -86.95 331.0 19820101 19830401 718345 99999 EKWAN RIVER (AUTO8) CA WED 53.817 -84.917 96.0 19940830 19950425 718350 99999 PICKLE LAKE (AUT) CA CWPL 51.45 -90.21700000000001 391.0 19910801 20170923 718355 99999 MOOSONEE (SAWR) CA 51.266999999999996 -80.65 10.0 19820101 19910204 718360 99999 MOOSONEE AWOS CA CYMO 51.283 -80.6 9.1 19820101 20170923 718364 99999 EASTMAIN RIVER ARPT CA CZEM 52.233000000000004 -78.517 8.0 19851106 19970224 718365 99999 MOOSONEE A CA 51.283 -80.6 9.0 19550702 19960603 718366 99999 ONAKAWANA (AUT) CA 50.6 -81.42 42.0 19940818 19940916 718370 99999 ST MARY RESEVOIR CA CPMR 49.367 -113.117 1128.0 20070806 20170923 718390 99999 BULLHORN COULEE RESEVOIR CA CPBR 49.3 -113.367 1115.0 20090801 20170923 718400 99999 DEERWOOD RCS MAN CA CXDW 49.4 -98.31700000000001 341.0 20041114 20170923 718401 99999 NAKINA CA 50.183 -86.7 325.0 19550702 19630731 718410 99999 ARMSTRONG (AUT) ONT CA CWYW 50.283 -88.9 323.0 19500101 20170923 718414 99999 ARMSTRONG (MARS) CA YYW 50.283 -88.9 322.0 19820101 19830721 718420 99999 SIOUX LOOKOUT AIRPORT CA CYXL 50.117 -91.9 383.4 19550702 20170923 718423 99999 HOLMAN CA 70.75 -117.8 30.0 20040831 20101014 718424 99999 HAMILTON RBG CA 43.283 -79.9 102.0 20040810 20041013 718425 99999 DRYDEN RGNL CA ON CYHD 49.833 -92.73299999999999 413.0 19820101 20101209 718426 99999 DELHI CA 42.867 -80.55 232.0 20040510 20101231 718427 99999 HARROW ON CA 42.033 -82.9 191.0 20040510 20120522 718428 99999 BERENS RIVER CA CYBV 52.35 -97.03299999999999 222.0 20040518 20170922 718429 99999 CHESTERFIELD INLET CA CYCS 63.333 -90.71700000000001 11.0 20040510 20170923 718430 99999 WINNIPEG UA MAN CA CXWI 49.883 -97.133 227.0 20030617 20130430 718431 99999 KANGIQSUJUAQ CA CYKG 61.583 -71.933 151.0 19550702 20170922 718432 99999 AKULIVIK CA CYKO 60.818999999999996 -78.149 22.9 20040518 20170921 718433 99999 AUPALUKA CA CYLA 59.297 -69.983 36.9 20040518 20170923 718434 99999 LUTSEL KE CA CYLK 62.42 -110.67 179.0 20040510 20170923 718435 99999 KANGIKSUALUJJUAQ CA CYLU 58.717 -65.983 60.0 20040518 20170923 718436 99999 DE WEMINDJI CA CYNC 53.016999999999996 -78.833 15.0 20040510 20170922 718437 99999 RAE LAKES CA CYRA 64.117 -117.367 213.0 20040525 20170923 718438 99999 SUFFIELD CA CYSD 50.266999999999996 -111.18299999999999 770.0 20040512 20150331 718440 99999 BIG TROUT LAKE READAC CA 53.817 -89.9 222.0 19911201 20131212 718441 99999 CAPE PARRY CA 70.1 -124.71700000000001 87.0 20040510 20101014 718442 99999 SALLUIT CA CYZG 62.178999999999995 -75.667 232.0 20040713 20170923 718443 99999 EASTMAIN RIVER CA CZEM 52.233000000000004 -78.517 7.0 20040713 20170922 718450 99999 PICKLE LAKE A CA CYPL 51.45 -90.2 386.2 19551027 20170923 718454 99999 PICKLE LAKE CA 51.433 -90.21700000000001 396.0 19921008 20101231 718455 99999 PICKLE LAKE ARPT CA 51.45 -90.2 385.9 19900125 19910107 718460 99999 LANSDOWNE HOUSE (AUT) ONT CA CWLF 52.183 -87.93299999999999 253.0 19550702 20170921 718463 99999 LANSDOWNE HOUSE & CA 52.233000000000004 -87.883 255.0 19890810 19910204 718470 99999 DRYDEN A ONT CA 49.833 -92.75 413.0 20010912 20050120 718480 99999 TRAVERS AGCM CA CPTR 50.3 -112.867 955.0 19550702 20170923 718490 99999 WINNIPEG 'A' CS MAN CA 49.917 -97.23299999999999 239.0 20010916 20170923 718500 99999 KENORA A CA CYQK 49.783 -94.367 406.0 19550704 20170923 718510 99999 SOUTHPORT CA CYPG 49.903 -98.274 269.7 19550702 20170923 718515 99999 PORTAGE SOUTHPORT CA CWPG 49.9 -98.26700000000001 273.0 19950101 20170923 718520 99999 WINNIPEG INTL CA CYWG 49.91 -97.24 238.7 19550702 20170923 718525 99999 GRETNA CA 49.033 -97.56700000000001 252.0 19820101 19950605 718527 99999 WINNEPEG CA WKT 49.917 -97.23299999999999 239.0 19880319 19891109 718530 99999 SHILO CA CWLO 49.783 -99.633 373.0 19930802 20130703 718531 99999 MACDONALD CA 50.083 -98.45 255.0 19550702 19590515 718533 99999 WASAGA BEACH(AUTO8) CA 51.1 -100.05 305.0 19870320 19910204 718534 99999 PINAWA (AUTO8) CA 50.183 -96.81700000000001 268.0 19881223 19910611 718535 99999 SPRAGUE (AUTO8) CA 49.016999999999996 -95.6 329.0 19881223 19950605 718540 99999 RED LAKE CA CYRL 51.067 -93.79299999999999 385.6 19551102 20170923 718544 99999 RED LAKE(AUT) CA WDJ 51.083 -93.8 383.0 19921216 19940621 718550 99999 DAUPHIN AIRPORT CA 51.1 -100.05 305.0 19550702 20120504 718553 99999 DAUPHIN (AUTOB) CA 51.1 -100.05 305.0 19910109 19910315 718560 99999 GIMLI INDUSTRIAL CA 50.617 -97.03299999999999 232.0 19500101 20170310 718564 99999 GIMLI (MAN) CA 50.633 -97.05 230.0 19790131 19790604 718565 99999 HECLA AMOS CA 51.167 -96.667 230.0 19770701 19790201 718570 99999 TULLIBY LAKE AGCM CA CPTU 53.65 -110.06700000000001 596.0 20040120 20170923 718571 99999 WABOWDEN CA 54.917 -98.633 233.0 19550702 19870331 718575 99999 FLIN FLON CA 54.667 -101.68299999999999 312.0 19430319 20090529 718576 99999 FLIN FLON (AUTO8) CA 54.683 -101.7 304.0 19881209 19950605 718580 99999 GRAND RAPIDS (AUT) CA CWJD 53.183 -99.26700000000001 223.0 19770701 20170923 718590 99999 BERENS RIVER CA 52.35 -97.03299999999999 222.0 19850618 20101126 718593 99999 MELITA (AUTO8) CA 49.283 -100.98299999999999 455.0 19881223 19900530 718600 99999 SPRINGBANK A CA CYBW 51.1 -114.367 1200.0 20030330 20170923 718601 99999 RIVERS CA CYYI 50.016999999999996 -100.31700000000001 473.0 19550702 19831031 718610 99999 BROADVIEW SASK CA CWIK 50.368 -102.571 599.8 19550702 20170923 718614 99999 BROADVIEW & CA YDR 50.383 -102.583 599.0 19790131 19790604 718620 99999 ESTEVAN A CA CYEN 49.217 -102.96700000000001 580.6 19550702 20170923 718630 99999 REGINA INTL CA CYQR 50.433 -104.667 577.3 19550702 20170923 718640 99999 MOOSE JAW AIR VICE MARSHAL C M MCEWEN CA CYMJ 50.33 -105.559 576.7 19550702 20170923 718650 99999 WYNYARD (AUT) SASK CA CWOY 51.766999999999996 -104.2 560.0 19550702 20170923 718654 99999 WYNYARD (MARS) CA 51.766999999999996 -104.21700000000001 561.0 19790131 20050303 718660 99999 SASKATOON J G DIEFENBAKER INTL CA CYXE 52.167 -106.7 503.8 19550702 20170923 718663 99999 SOUTHEND (AUTO8) CA 56.333 -103.28299999999999 344.0 19890309 19900530 718665 99999 ELBOW CA 51.133 -106.583 594.0 19770701 19830501 718670 99999 THE PAS AIRPORT CA CYQD 53.967 -101.1 270.4 19421218 20170923 718680 99999 HUDSON BAY SASK CA CZHB 52.817 -102.31700000000001 358.0 19430319 20170923 718684 99999 HUDSON BAY (MARS) CA WHB 52.817 -102.31700000000001 358.0 19790217 19890727 718690 99999 PRINCE ALBERT GLASS FIELD CA CYPA 53.214 -105.67299999999999 428.2 19550702 20170923 718700 99999 SWIFT CURRENT ARPT CA 50.3 -107.68299999999999 817.0 19550702 20120504 718703 99999 SWIFT (MARS) CA WYN 50.266999999999996 -107.73299999999999 826.0 19821205 19860912 718710 99999 LLOYDMINSTER CA CYLL 53.309 -110.073 668.4 19831201 20170923 718711 99999 VERMILION CA YVG 53.35 -110.833 619.0 19550702 19831205 718720 99999 SVARTEVAEG CA CNSG 81.167 -91.81700000000001 72.0 19550702 20170923 718724 99999 ESTHER 1 CA 51.667 -110.2 707.0 19921008 19930330 718730 99999 CORONATION CA CYCT 52.075 -111.445 791.0 19550702 20050830 718735 99999 CORONATION (AUT) CA 52.067 -111.46700000000001 791.0 19770701 20101231 718736 99999 DRUMHELLER EAST CA 51.433 -112.667 678.0 19910801 20101231 718737 99999 BOW ISLAND CA 49.617 -111.45 838.0 19940103 19940314 718740 99999 BATHURST INLET CA CNBI 66.833 -108.01700000000001 5.0 19550702 20170923 718743 99999 MILK RIVER CA 49.133 -112.05 1050.0 19910801 19930330 718750 99999 PINCHER CREEK CA 49.516999999999996 -114.0 1190.0 19421201 20120101 718753 99999 PINCHER CREEK (AUT) CA 49.5 -113.95 1154.0 19910711 19910908 718754 99999 PINCHER CREEK (AUT) CA 49.5 -113.95 1154.0 19791115 19820403 718755 99999 PINCHER CREEK CA 49.516999999999996 -114.0 1220.0 19811124 20110608 718756 99999 CLARESHOLM (AUTO8) CA 50.0 -113.633 1012.0 19920219 19940314 718760 99999 NORTH BATTLEFORD CA CYQW 52.769 -108.244 548.3 19400101 20170923 718765 99999 LLOYDMINSTER A CA 53.3 -110.0 648.0 19820501 19831205 718770 99999 CALGARY INTL CA CYYC 51.114 -114.02 1084.2 19550702 20170923 718775 99999 GOLDEN ARPT CA CYGE 51.3 -116.96700000000001 787.0 19770701 19970224 718776 99999 CALGARY/SPRINGBANK CA CYBW 51.1 -114.383 1200.0 19771013 19970310 718777 99999 SUNDRE ARPT (AUTOB) CA WAV 51.766999999999996 -114.68299999999999 1114.0 19910801 19940621 718778 99999 COP UPPER CA 51.083 -114.21700000000001 1235.0 19920807 19930330 718780 99999 RED DEER REGIONAL CA CYQF 52.183 -113.9 904.6 19550702 20170923 718783 99999 THREE HILLS CA 51.7 -113.21700000000001 907.0 19921216 19930330 718784 99999 LACOMBE CDA CA 52.45 -113.75 874.0 19921216 19930330 718790 99999 EDMONTON CITY CENTRE CA CYXD 53.573 -113.521 670.6 19500101 20150401 718793 99999 SPARWOOD (AUTO8) & CA 49.75 -114.9 1137.0 19921216 19950414 718794 99999 SPARWOOD / ELK VALLEY CA CWSW 49.75 -114.88 1138.0 19800423 20170923 718795 99999 CROWSNEST CA 49.633 -114.48299999999999 1303.0 19920807 19930330 718800 99999 CRANBROOK A CA CYXC 49.617 -115.78299999999999 939.4 19770701 20170923 718801 99999 WASA CA 49.733000000000004 -115.78299999999999 920.0 19550702 19630731 718810 99999 EDSON CA CYET 53.57899999999999 -116.465 926.9 19600202 20170923 718813 99999 EDSON (READAC) CA ZET 53.583 -116.48299999999999 925.0 19910822 19921210 718814 99999 COAL VALLEY CA 53.083 -116.81700000000001 1426.0 19800611 19830613 718820 99999 REVELSTOKE A CA 50.967 -118.18299999999999 445.0 19550702 20170923 718823 99999 REVELSTOKE (AUTOB) CA 50.967 -118.2 443.0 19890616 19921210 718830 99999 BLUE RIVER CA CYCP 52.117 -119.28299999999999 682.8 19770701 20170923 718831 99999 ROSSLAND CA 49.15 -117.917 2348.0 19550703 19630731 718834 99999 BLUE RIVER CS CA CWSV 52.13 -119.28 683.0 19800216 20170923 718835 99999 NELSON (AUTO8) & CA 49.5 -117.3 535.0 19921216 19950414 718840 99999 CASTLEGAR CA CYCG 49.29600000000001 -117.633 495.0 19770701 20170923 718841 99999 CRESCENT VALLEY CA 49.45 -117.56700000000001 610.0 19550702 19630731 718843 99999 NAKUSP (AUTO8) & CA 50.266999999999996 -117.81700000000001 512.0 19910204 19950414 718844 99999 CRESTON (AUTO8) & CA 49.083 -116.5 569.0 19930520 19950414 718850 99999 GLENWOOD CA CPCR 49.333 -113.51700000000001 1074.0 20071124 20170923 718851 99999 CARMI CA 49.5 -119.083 1245.0 19550702 19630131 718860 99999 YORKTON CA 51.266999999999996 -102.46700000000001 498.4 19550702 20170923 718863 99999 SALMON ARM AUTO8 & CA 50.7 -119.28299999999999 351.0 19901104 19950414 718864 99999 PRINCETON CA CYDC 49.468 -120.51100000000001 700.4 19781012 20170923 718870 99999 KAMLOOPS CA CYKA 50.702 -120.444 345.3 19550702 20170923 718880 99999 VIKING AGCM CA CPVA 53.183 -111.73299999999999 711.0 19550702 20170923 718884 99999 WAINWRIGHT (AUTO8) CA 52.817 -111.083 684.0 19790131 20120418 718890 99999 PENTICTON CA CYYF 49.463 -119.602 344.1 19550702 20170923 718895 99999 KELOWNA UA CA 49.93 -119.4 456.0 19770701 19831205 718900 99999 NANAIMO CA CYCD 49.052 -123.87 28.3 19550702 20170923 718903 99999 PAM ROCKS CA WAS 49.483000000000004 -123.28299999999999 0.0 19870612 19950605 718904 99999 SISTERS IL AUTO8 & CA 49.483000000000004 -124.43299999999999 0.0 19921008 19950414 718905 99999 BALLENAS IL AUTO8 & CA 49.35 -124.167 0.0 19770701 19950414 718910 99999 LYTTON CA CWLY 50.23 -121.58 229.0 19550702 20170923 718913 99999 LYTTON CA 50.233000000000004 -121.583 258.0 19890616 19910529 718914 99999 LYTTON (READAC) CA YLY 50.233000000000004 -121.583 255.0 19790131 19910916 718915 99999 HOPE SLIDE CA CWKV 49.28 -121.23 674.0 19770701 20030515 718916 99999 CAPE MUDGE CA CWAD 50.0 -125.2 5.0 19770701 20011214 718917 99999 108 MILE HOUSE CA WOF 51.733000000000004 -121.333 953.0 19920807 19950414 718918 99999 PEMBERTON CA CYPS 50.303000000000004 -122.738 204.2 20100104 20100403 718920 99999 VANCOUVER INTL CA CYVR 49.193999999999996 -123.184 4.3 19550702 20170923 718925 99999 VANCOUVER HARBOUR CA 49.3 -123.117 5.0 19770701 19800227 718926 99999 VANCOUVER HARBOUR & CA YHC 49.3 -123.117 5.0 19790131 19790604 718930 99999 COMOX CA CYQQ 49.711000000000006 -124.887 25.6 19540101 20170923 718935 99999 POWELL RIVER CA 49.817 -124.5 120.0 19770701 19831205 718936 99999 CAMPBELL RIVER CA CYBL 49.951 -125.271 105.5 19770701 20170923 718937 99999 CHATHAM POINT CA CWFM 50.33 -125.43 23.0 19770701 20011213 718940 99999 ESTEVAN POINT CS BC CA CWEB 49.383 -126.55 7.0 19550702 20170923 718944 99999 ESTEVAN POINT (MAN) CA YEP 49.383 -126.55 7.0 19790131 19831205 718950 99999 WETASKIWIN AGCM CA CPWT 52.967 -113.43299999999999 774.0 19770701 20170923 718951 99999 BULL HARBOUR CA 50.917 -127.95 0.0 19550702 19630731 718955 25237 HOLBERG CA WHJ 50.65 -128.05 579.0 19770701 19900317 718956 99999 EGG ISLAND CA 51.25 -127.833 14.0 19770701 19781122 718960 99999 PRINCE GEORGE CA CYXS 53.888999999999996 -122.679 691.0 19550702 20170923 718964 99999 WASKAGANISH AIRPORT CA CYKQ 51.483000000000004 -78.75 23.0 19960401 20170922 718965 99999 DRYAD POINT CA CWAU 52.18 -128.12 4.0 19990103 20011213 718970 99999 MCINNES ISLAND BC CA CWMS 52.25 -128.717 26.0 19770701 20170415 718980 99999 PRINCE RUPERT CA CYPR 54.283 -130.45 35.4 19550702 20170923 718985 99999 BONILLA ISLAND & CA WVB 53.5 -130.63299999999998 18.0 19770702 19781126 718990 25343 LANGARA CA BC CWJU 54.25 -133.05 41.0 19770701 20170823 718990 99999 LANGARA CA CWJU 54.25 -133.05 41.0 20000101 20071231 718994 99999 FORT ST. JAMES ARPT CA YJM 54.417 -124.25 716.0 19880318 19890505 719000 99999 HOPEDALE (AUT) NFLD CA CWHO 55.45 -60.217 12.0 19550702 20170923 719004 99999 HOPEDALE (MAPS) CA YHO 55.45 -60.233000000000004 10.0 19790131 19791006 719010 99999 BORDER (AUT) CA CWTB 55.33 -63.22 479.0 19770701 20050723 719015 99999 SAGLEK CA 58.467 -62.65 82.0 19890624 19890720 719020 99999 NAIN AIRPORT CA CYDP 56.55 -61.683 7.0 19840921 20170923 719023 99999 NAIN CA CWFP 56.55 -61.7 7.0 19920823 20050303 719025 99999 KILLINEK (MAPS) & CA 60.417 -64.85 31.0 19860801 19900530 719030 99999 LANGARA ISLAND CS BC CA 54.25 -133.05 41.0 20010916 20170823 719031 99999 RESOLUTION ISLAND CA 61.583 -64.65 366.0 19340801 19630731 719035 99999 QUAQTAQ CA CYHA 61.04600000000001 -69.618 32.0 20060103 20170922 719040 99999 WIMBORBE AGCM CA CPWB 51.933 -113.583 940.0 19770701 20170923 719041 99999 CAPE HOPES ADVANCE CA 61.083 -69.55 73.0 19550702 19630731 719043 99999 KANGIRSUK A CA CYAS 60.033 -70.0 123.0 19880621 20170923 719044 99999 KANGIQSUJUAQ ARPT CA CYKG 61.583 -71.933 151.0 19910207 19970224 719045 99999 APALUK CA YLA 59.3 -69.6 35.0 19921008 19950605 719050 99999 MONTREAL INTL MIRABEL CA CYMX 45.683 -74.033 82.3 19560101 20170923 719053 99999 UMIUJAQ CA CYMU 56.533 -76.517 71.0 19930225 20170923 719060 99999 KUUJJUAQ A CA CYVP 58.1 -68.417 39.3 19411105 20170923 719063 99999 KANGIQSUALUJJUAQ CA YKB 58.717 -66.0 58.0 19900424 19950516 719064 99999 TASIUJAQ A CA CYTQ 58.667 -69.95 31.0 19920505 20170917 719065 99999 KANGIKSUALUJJUAQ A CA CYLU 58.717 -65.983 60.0 19940830 19970224 719070 99999 INUKJUAK A UA CA CWPH 58.467 -78.083 25.0 19340101 20170923 719073 99999 INUKJUAK ARPT(SAWR) CA 58.467 -78.083 25.0 19880725 20101014 719074 99999 IVUJIVIK CA CYIK 62.417 -77.925 38.4 19880621 20170923 719075 99999 SALLIUT ARPT (SAWR) CA CYZG 62.183 -75.667 226.0 19890616 19960602 719076 99999 AKULIVIK AIRPORT CA CYKO 60.817 -78.15 9.0 19910711 19970304 719077 99999 PUVIRNITUQ CA CYPX 60.051 -77.28699999999999 22.6 19930225 20170923 719080 99999 PRINCE GEORGE UA BC CA 53.9 -122.78299999999999 601.0 20010707 20060105 719081 99999 NOTTINGHAM ISLAND CA 63.117 -77.933 16.0 19340101 19630731 719083 99999 NUELTIN LAKE CA 60.5 -99.0 335.0 19390918 19410901 719090 99999 IQALUIT CA CYFB 63.756 -68.556 33.5 19420301 20170923 719094 99999 KIMMIRUT A NWT CA CYLC 62.85 -69.883 53.0 19340101 20170824 719100 99999 CAPE DORSET A CA 64.233 -76.533 48.0 19770701 20170923 719101 99999 WINISK CA 55.233000000000004 -85.117 13.0 19590102 19630731 719104 99999 SANIKILUAQ AIRPORT CA 56.533 -79.25 32.0 19781205 20170922 719110 99999 SHEPHERD BAY A CA CYUS 68.817 -93.43299999999999 43.0 19770701 20170923 719111 99999 19471015 19560831 719120 99999 GILLAM AIRPORT CA CYGX 56.35 -94.71700000000001 145.0 19430325 20170923 719123 99999 GILLAM (AUTOB) CA 56.367 -94.7 145.0 19881209 20070307 719124 99999 BROCHET CA ZBT 57.883 -101.68299999999999 346.0 19911101 19921210 719130 99999 CHURCHILL A UA MAN CA 58.733000000000004 -94.06700000000001 29.0 19430101 20101231 719140 99999 SATURNA / CAPMON CS CA CVTS 48.766999999999996 -123.117 178.0 19770701 20170923 719141 99999 SPENCE BAY AIRPORT& CA 69.55 -93.583 26.0 19830725 19900206 719143 99999 NANISIVIK CA CYSR 72.982 -84.61399999999999 641.9 19880105 20110113 719144 99999 SPENCE BAY AIRPORT& CA WYH 69.55 -93.583 26.0 19810310 19830426 719145 99999 TALOYOAK CA CYYH 69.547 -93.57700000000001 28.0 19550702 20170923 719150 99999 CORAL HARBOUR CA CYZS 64.193 -83.359 64.0 19430301 20170923 719154 99999 PELLE BAY CA 68.433 -89.6 90.0 19810220 19870513 719155 99999 CARVEL RADAR CA 53.57 -114.15 0.0 19810220 19840608 719156 99999 GJOA HAVEN CA 68.633 -95.85 48.0 19840824 20121231 719160 99999 THOMSEN RIVER CA CWYF 73.233 -119.53299999999999 42.0 19500101 20170303 719164 99999 CHESTERFIELD INLET& CA CYCS 63.333 -90.71700000000001 6.0 19340101 19970309 719165 99999 YANKEE (AUT) CA 80.7 -81.0 1053.0 19880513 19890215 719170 99999 EUREKA CA CWEU 79.983 -85.93299999999999 10.0 19470501 20170923 719174 99999 EUREKA CA NT CYEU 79.983 -85.8 78.0 19920427 19940714 719175 99999 SKULL POINT (AUT) CA 80.0 -86.43 37.0 19880513 19890215 719176 99999 WHISKEY (AUT) CA CWKU 81.03 -76.95 829.0 19880513 19890215 719180 99999 CAM FOUR CA CWRF 68.433 -89.71700000000001 324.5 19770723 20170923 719181 99999 ARCTIC BAY & CA YAB 73.033 -85.15 1.0 19400101 19630731 719190 99999 PELLY BAY CA CWKE 68.433 -89.71700000000001 326.0 19770701 20050722 719191 99999 19571002 19630731 719194 99999 KUGAARUK CA CYBB 68.53399999999999 -89.80799999999999 17.1 19790131 20170923 719195 99999 GRANT (AUT) CA CWWM 82.5 -65.08 1242.0 19850303 19890215 719200 99999 BACCARO PT CA CWCP 43.45 -65.467 5.0 19770701 20170923 719201 99999 CREE LAKE METEOROLOGICAL AERONAU CA CWFN 57.35 -107.13 495.0 19550702 19630731 719203 99999 CRAIG HARBOR CA 76.2 -81.017 4.0 19400101 19400801 719204 99999 CREE LAKE (MAPS) CA YFN 57.35 -107.133 499.0 19790131 19790604 719210 99999 SCHEFFERVILLE A CA 54.8 -66.8 520.9 19771128 20170314 719211 99999 BROCHET CA CYBT 57.883 -101.667 344.0 19550702 19630731 719214 99999 BROCHET CA 57.883 -101.68299999999999 346.0 19781013 19800531 719220 99999 LA RONGE CA CYVC 55.151 -105.262 378.6 19770701 20170923 719221 99999 BATHURST INLET CA 66.85 -108.01700000000001 13.0 19590102 19620815 719230 99999 ENNADAI LAKE (AUT) NU CA CWJC 61.117 -100.883 353.0 19550702 20170923 719234 99999 ENNADI LAKE CA 61.133 -100.917 323.0 19790131 19790604 719240 99999 RESOLUTE BAY CA CYRB 74.717 -94.969 65.5 19471011 20170923 719245 99999 REA POINT CA 75.35 -105.71700000000001 15.0 19770701 19871223 719246 99999 GRISE FIORD AIRPORT CA CWGZ 76.417 -82.9 45.0 19781116 20170923 719248 99999 MALLOCH DOME (AUT) CA CWCN 78.22 -101.05 12.0 19811124 19831004 719249 99999 BLACK TOP RIDGE (AUT) CA 80.0 -85.42 619.0 19880513 19890215 719250 99999 CAMBRIDGE BAY CA CYCB 69.108 -105.13799999999999 27.4 19341001 20170923 719260 99999 BAKER LAKE CA CYBK 64.29899999999999 -96.07799999999999 18.0 19460201 20170923 719264 99999 ARVIAT CA 61.1 -94.06700000000001 10.0 19430310 20050507 719265 99999 BAKER LAKE AIRPORT CA 64.3 -96.0 11.0 19790131 19860413 719270 99999 NORTH COWICHAN CA 48.817 -123.71700000000001 60.0 19570802 20170923 719280 99999 ROCKY MTN HOUSE (AUT) ALTA CA CWRM 52.417 -114.9 988.0 19550702 20170923 719284 99999 ROCKY MOUNTAIN HOUSE CA CYRM 52.43 -114.904 988.8 19790604 20130430 719290 99999 BYRON BAY AIRPORT CA CYUK 68.75 -109.06700000000001 92.0 19570801 20020224 719300 99999 WHITECOURT A CA CYZU 54.15 -115.78299999999999 782.0 19550702 20170923 719303 99999 DEVON ISLAND CA 74.5 -83.5 0.0 19451016 19480101 719310 99999 POOLS ISLAND CA CWLB 49.1 -53.567 19.0 19550702 20170923 719320 99999 FORT MCMURRAY AWOS ARPT CA 56.65 -111.21700000000001 369.0 19430201 20120215 719323 99999 RED EARTH CA 56.533 -115.26700000000001 546.0 19920219 19930615 719330 99999 FORT ST JAMES AUTO CA CVFS 54.45 -124.28299999999999 685.5 19770701 20170923 719331 99999 KEG RIVER CA 57.783 -117.833 427.0 19550702 19630731 719333 99999 SOUSA CRK(AVT) CA 58.583 -118.5 373.0 19910108 19930615 719334 99999 FORT CHIPEWYAN AUTOMATED REPORTI CA 58.77 -111.13 232.0 19910801 19931014 719340 99999 FORT SMITH CA CYSM 60.02 -111.962 204.5 19340101 20170923 719350 99999 HAY RIVER A CA CYHY 60.833 -115.78299999999999 165.5 19340101 20170923 719353 99999 19430301 19480101 719360 99999 YELLOWKNIFE CA CYZF 62.463 -114.44 205.7 19420701 20170923 719365 99999 MT ARTHUR (AUT) CA 81.33 -74.77 1336.0 19880513 19890215 719370 99999 LADY FRANKLIN POINT CA CYUJ 68.5 -113.21700000000001 21.0 19770701 20050619 719371 99999 19420901 19610129 719373 99999 FRANCES LAKE CA 61.283 -129.4 739.0 19411001 19480101 719380 99999 KUGLUKTUK CA CYCO 67.817 -115.14399999999999 22.6 19340101 20170923 719390 26114 CAPE YOUNG AIRPORT CA NU CYUI 68.933 -116.917 16.0 19770701 19991025 719390 99999 CAPE YOUNG AIRPORT CA CYUI 68.933 -116.917 16.0 20041121 20050322 719391 99999 BEATTON RIVER CA 57.383 -121.383 840.0 19550702 19630731 719400 99999 GRANDE PRAIRIE CA CYQU 55.18 -118.885 669.0 19550702 20170923 719403 99999 CHETWYND AIRPORT CA CYCQ 55.7 -121.633 629.0 19821111 19970310 719410 99999 VAL D'OR CA 48.05 -77.767 337.0 19770701 20170315 719421 99999 FAIRVIEW & CA 56.083 -118.43299999999999 655.0 19550702 19630731 719430 99999 FORT ST JOHN CA CYXJ 56.238 -120.74 694.9 19420701 20170923 719440 99999 MACKENZIE A CA 55.3 -123.133 690.0 19770701 20170923 719445 99999 INGENIKA POINT CA 56.8 -124.9 680.0 19990104 20050208 719446 99999 PINK MOUNTAIN 2 CA CWCG 57.033 -122.53299999999999 1067.0 19861016 19950501 719450 99999 FORT NELSON CA CYYE 58.833 -122.6 381.9 19420220 20170923 719455 99999 LONG POND CA CWWU 47.516999999999996 -52.983000000000004 13.0 19770701 20170923 719456 99999 MUNCHO LAKE CA 58.917 -125.76700000000001 835.0 19430916 19450818 719457 99999 FORT LIARD CA 60.233000000000004 -123.46700000000001 214.0 19770701 19781229 719458 99999 FORT LIARD AIRPORT CA CYJF 60.233000000000004 -123.46700000000001 213.0 19831201 19970224 719460 99999 FORT SIMPSON CA CYFS 61.76 -121.23700000000001 169.2 19340101 20170923 719463 99999 INNER WHALEBACKS CA 61.917 -113.71700000000001 165.0 19880901 19930615 719465 99999 WRIGLEY CA CYWY 63.208999999999996 -123.43700000000001 149.0 19430601 20170922 719467 99999 FORT PROVIDENCE CA 61.317 -117.6 162.0 19430204 19461201 719468 99999 FORT FRANKLIN ARPT CA CYWJ 65.183 -123.417 0.0 19880421 19970224 719470 99999 MATAGAMI CA CYNM 49.762 -77.803 279.8 20090101 20170923 719471 99999 SMITH RIVER CA 59.9 -126.43299999999999 673.0 19550702 19630731 719480 27202 CAPE PARRY CA NT CZCP 70.167 -124.7 87.0 19570101 20170923 719480 99999 CAPE PARRY A CA CZCP 70.167 -124.71700000000001 87.0 20000101 20071231 719485 99999 PAULATUK CA CYPC 69.361 -124.059 5.5 19830725 20170923 719490 99999 FARO (AUT) YT CA CWUM 62.233000000000004 -133.35 717.0 19770701 20170923 719491 99999 WHITCOURT CA 54.133 -115.78299999999999 802.0 19400101 20120420 719492 99999 SAINT-ROCK-DES-AULNAIES CA CMSR 47.28 -70.17 48.0 20050228 20061103 719493 99999 FARO CA CZFA 62.208 -133.376 716.6 19840203 20170923 719494 99999 HOLMAN CA CYHI 70.763 -117.806 35.7 19500101 20170923 719495 99999 FARO (MARS) CA 62.233000000000004 -133.36700000000002 694.0 19800423 19810624 719500 99999 SMITHERS CA CYYD 54.825 -127.18299999999999 521.8 19550702 20170923 719510 99999 TERRACE CA CYXT 54.468999999999994 -128.576 217.3 19550702 20170923 719520 25272 BURNS LAKE CAMPBELL CA BC CWPZ 54.383 -125.95 714.0 20060101 20170923 719520 99999 BURNS LAKE CAMPBELL SCIENTIFIC BC CA CWPZ 54.383 -125.95 713.0 19770701 20071231 719523 99999 LUCY ISL (LGT-H) CA WLC 54.3 -130.6 27.0 19900724 19960523 719524 99999 BURNS LAKE & CA 54.233000000000004 -125.76700000000001 704.0 19790131 19910611 719525 99999 BURNS LAKE CA 54.233000000000004 -125.76700000000001 704.0 19921008 20070307 719530 99999 WATSON LAKE CA CYQH 60.11600000000001 -128.82299999999998 687.3 19420401 20170923 719531 99999 19381001 19630731 719540 26394 FLIN FLON CA MB CWFO 54.683 -101.68299999999999 304.0 19950101 20170923 719540 99999 FLON FLON CA CWFO 54.683 -101.68299999999999 303.9 20000101 20071231 719550 99999 STEWART CA CZST 55.933 -129.983 7.3 19770701 20170923 719560 99999 GORE BAY CLIMATE CA CTZE 45.883 -82.56700000000001 188.0 19770701 20170923 719564 99999 NICHOLSON PENINSUL& CA 69.9 -128.967 98.0 19790131 19790131 719570 99999 INUVIK MIKE ZUBKO CA CYEV 68.304 -133.483 68.3 19581113 20170923 719573 99999 LITTLE CHICAGO CA 67.2 -130.217 63.0 19910911 19930615 719574 99999 FORT MCPHERSON CA CZFM 67.408 -134.861 35.4 19781205 20170923 719575 99999 AKLAVIK CA CYKD 68.223 -135.006 6.4 19781205 20170923 719576 99999 FORT NORMAN AIRPORT CA CZFN 64.917 -125.56700000000001 98.0 19340101 20170923 719580 99999 DEASE LAKE CA CWDL 58.433 -130.017 807.0 19440916 20121115 719584 99999 DEASE LAKE CA YDL 58.417 -130.0 815.0 19790131 19790604 719590 26394 CHETICAMP CS CA NS CXCH 46.633 -60.933 44.0 19570701 19930630 719590 99999 CHETICAMP CS CA CXCH 46.633 -60.933 44.0 20030625 20170923 719594 99999 TUKTOYAKTUK CA YTW 69.45 -133.0 18.0 19790131 19810417 719595 99999 TUKTOYAKTUK CA CYUB 69.433 -133.026 4.6 19770701 20170923 719596 99999 NIPTERK BASE CA CWNI 69.62 -135.33 10.0 19890223 19890505 719600 99999 LIVERPOOL BAY CA CWLI 69.6 -130.9 102.0 19960221 20170923 719620 99999 FORT FRANCES RCS CA CTAG 48.65 -93.43299999999999 342.0 20080429 20170923 719630 99999 HANBURY RIVER NWT CA CWQY 63.6 -105.133 317.0 19930607 20170923 719640 99999 WHITEHORSE INTL CA CYXY 60.71 -135.067 706.2 19401001 20170923 719644 99999 FARO A CA 62.217 -133.36700000000002 717.0 19811124 19840118 719645 99999 ROSS RIVER AIRPORT CA CYDM 61.967 -132.433 705.0 19440112 19941231 719650 99999 MAYO CA CYMA 63.61600000000001 -135.868 503.8 19340101 20170923 719660 99999 DAWSON CITY CA CYDA 64.043 -139.128 370.3 19340101 20170923 719664 99999 DAWSON CA CWON 64.05 -139.13 370.0 19880226 20170923 719665 99999 OLD CROW CA CYOC 67.571 -139.839 251.2 19770701 20170923 719666 99999 OSHAWA CA 43.923 -78.895 139.9 20100603 20100820 719670 99999 SAINT GERMAIN DE GRANTHAM CA CMSI 45.817 -72.533 85.0 19440128 20170923 719674 99999 BURWASH CA 61.367 -139.033 827.0 19881107 20120329 719675 99999 BEAVER CREEK ARPT CA CYXQ 62.417 -140.86700000000002 649.0 19430820 20170923 719676 99999 HAINES JUNCTION CA 60.783 -137.55 655.0 19431101 19850524 719677 99999 HAINES JUNCTION CA 60.766999999999996 -137.583 599.0 19790131 19790818 719680 99999 SHINGLE POINT CA CYUA 68.95 -137.22 56.0 19770701 20170923 719681 99999 19340101 19601114 719690 26463 KOMAKUK BEACH ARPT CA YT CYAJ 69.583 -140.183 7.0 19770701 19930630 719691 99999 SNAG CA 62.367 -140.4 587.0 19430822 19630731 719700 99999 MEADOW LAKE CA 54.133 -108.51700000000001 481.0 20071124 20170923 719710 99999 GRISE FIORD CLIMATE CA 76.417 -82.9 45.0 20080401 20170923 719720 99999 RESOLUTION ISLAND CA CWRH 61.58 -64.65 369.0 19981224 20170923 719730 99999 CORNER BROOK CA 48.933 -57.917 152.0 20080401 20170923 719740 99999 AULVIK NATIONAL PARK CA CWSQ 74.13 -119.98 32.0 19961101 20170923 719750 99999 CAPE MERCY CA CWYM 64.95 -63.58 583.0 19960221 20170923 719760 99999 PARC NATIONAL DES PINGUALUIT CA 61.3 -73.667 503.0 19950827 20170923 719770 99999 MARGARET LAKE CA 68.8 -140.85 568.0 19950423 20170923 719780 99999 IVVAVIK NAT. PARK YT CA CWOI 69.15 -140.15 244.0 19950901 20170923 719790 99999 HENDRICKSON CREEK CA CWPA 53.8 -118.45 1448.0 19950901 20170923 719800 99999 RABBIT KETTLE NWT CA CWQF 61.95 -127.2 618.0 19951001 20170923 719810 99999 AZURE CA 50.5 -114.0 1143.0 19941201 20170923 719820 99999 BLACK DIAMOND CA 50.7 -114.15 1156.0 19950901 20170923 719830 99999 REA POINT NU CA CZRP 75.367 -105.71700000000001 15.0 19950430 20170713 719840 99999 PAULATUK NWT CA CZPK 69.35 -124.06700000000001 6.0 19940901 20170923 719850 99999 TUKTOYAKTUK NWT CA 69.433 -133.017 5.0 19940901 20170923 719860 99999 ATLEE CA 50.8 -111.0 795.0 19951001 20170923 719870 99999 NORTH POINT PEI CA CWNE 47.05 -63.983000000000004 8.0 20030330 20170923 719880 99999 BRIER ISLAND CA CWVU 44.283 -66.35 16.0 20030617 20170923 719890 99999 MOULD BAY CS NWT CA CWAY 76.233 -119.333 2.0 20010916 20170923 719900 99999 MACMILLAN PASS CA CWNV 63.25 -130.033 1379.0 20030617 20170923 719964 99999 SEDCO 706 CA WVFN 0.0 0.0 21.0 19831103 19850813 719974 99999 HOSKINS ISLET CA 52.53 -131.55 8.0 19831103 19860329 719984 99999 WEST VENTURE CA LFXV 0.0 0.0 20.0 19831130 20140125 719990 99999 LILLOOET CA 50.683 -121.93299999999999 235.0 20040928 20170923 719994 99999 SEDCO 710 CA CWQJ 46.5 -48.5 0.0 19831104 19900626 720000 99999 BOGUS AMERICAN US 19830803 20020521 720021 99999 BOOTHVILLE HELIPORT US LA 29.35 -89.43 1.0 20040224 20130430 720046 99999 NEWHALL US CA K3A6 34.37 -118.57 427.0 20040224 20110905 720048 99999 EUGENE ISLAND 330 US LA 28.08 -92.7 0.0 20040316 20090801 720059 99999 VALLE US AZ K40G 35.650999999999996 -112.148 1828.5 20040408 20040614 720110 53983 LLANO MUNICIPAL AIRPORT US TX KAQO 30.784000000000002 -98.662 335.9 20060101 20170924 720110 99999 LLANO MUNI US TX KAQO 30.784000000000002 -98.662 336.0 20040806 20071231 720113 54829 OAKLAND/TROY AIRPORT US MI KVLL 42.543 -83.178 218.2 20060101 20170924 720113 99999 OAKLAND TROY US MI KVLL 42.543 -83.178 222.0 20041230 20071231 720120 63837 HILTON HEAD AIRPORT US SC KHXD 32.217 -80.7 7.3 20060101 20170924 720120 99999 HILTON HEAD US SC KHXD 32.217 -80.7 6.0 20040904 20071231 720122 99999 BROWNING STARR-BROWNING AIRSTRI US 48.6 -113.11 1419.0 20041030 20041030 720129 99999 AUSTIN ARPT US NV KTMT 39.468 -117.197 1748.1 20170510 20170923 720137 4867 MORS MUNI-J.R. WSBRN FD AP US IL KC09 41.425 -88.419 178.0 20060101 20170924 720137 99999 MORRIS MUNI J R WAS US IL KC09 41.433 -88.417 178.0 20040224 20071231 720141 4868 MARSHALL CO US IL KC75 41.019 -89.38600000000001 173.1 20060101 20170924 720141 99999 MARSHALL CO US IL 41.019 -89.38600000000001 173.1 20040224 20071231 720150 99999 COMANCHE COMANCHE COUNTY-CITY A US 31.92 -98.6 423.0 20040803 20040930 720151 3049 ALPINE-CASPARIS MUNI ARPT US TX KE38 30.383000000000003 -103.68299999999999 1375.6 20060101 20170924 720151 99999 ALPINE CASPARIS MUNI US TX KE38 30.384 -103.684 1376.0 20040426 20071231 720159 99999 HIGH ISLAND 264C US LA KH08 28.467 -93.73299999999999 30.0 20040414 20130510 720160 63884 KEE FLD US WV KI16 37.601 -81.559 543.5 20060101 20170924 720160 99999 KEE FLD US WV 37.6 -81.559 543.5 20040803 20071231 720165 99999 WARNER SPRINGS GLIDERPORT US CA 34.264 -116.854 2056.8 20070307 20130430 720167 99999 RAMONA US CA 33.033 -116.917 424.0 20050419 20051105 720168 99999 COVINGTON MUNI US TN KM04 35.583 -89.587 85.3 20170427 20170923 720169 116 WASHINGTON REGIONAL AIRPORT US MO KFYG 38.583 -91.0 149.1 20130101 20150602 720169 99999 WASHINGTON REGIONAL AIRPORT US MO KFYG 38.583 -91.0 148.7 20120209 20170923 720170 63851 METROPOLIS MUNICIPAL AIRPORT US IL KM30 37.186 -88.751 117.0 20060101 20170924 720170 99999 METROPOLIS MUNICIPAL US IL KM30 37.186 -88.751 117.0 20040803 20071231 720171 99999 WILLIAM L WHITEHURST FLD US TN KM08 35.214 -89.04299999999999 152.1 20160804 20170923 720172 53996 MENA INTERMOUNTAIN MUNICIPAL AIRPORT US AR KMEZ 34.545 -94.20299999999999 328.9 20060101 20170924 720172 99999 MENA INTERMOUNTAIN US AR KMEZ 34.545 -94.20299999999999 329.0 20041103 20071231 720175 99999 MONTICELLO US AR KLLQ 33.633 -91.75 84.0 20100920 20170923 720193 117 LONNIE POOL FIELD WEAVERVILLE AIRPORT US CA KO54 40.747 -122.92200000000001 716.3 20151217 20170522 720193 99999 LONNIE POOL FLD / WEAVERVILLE AIRPORT US CA KO54 40.747 -122.92200000000001 716.0 20101030 20170617 720198 54813 MUNISING LAKESHORE US MI KP53 46.417 -86.65 186.5 20060101 20170924 720198 99999 MUNISING LAKESHORE O US MI KP53 46.417 -86.65 187.0 20041028 20071231 720202 118 TILLAMOOK AIRPORT US OR KTMK 45.417 -123.81700000000001 11.3 20130101 20170923 720202 99999 TILLAMOOK AWS US OR KTMK 45.417 -123.81700000000001 11.0 20040429 20170504 720222 99999 SAINT THOMAS (USCG) VQ 18.333 -64.917 2.0 20061026 20061026 720254 119 CHEHALIS CENTRALIA AIRPORT US WA KCLS 46.683 -122.98299999999999 54.3 20130101 20170923 720254 99999 CHEHALIS CENTRALIA US WA KCLS 46.677 -122.98299999999999 53.6 20070216 20170922 720257 63835 EARLY COUNTY AIRPORT US GA KBIJ 31.397 -84.895 65.2 20060101 20170924 720257 99999 EARLY CO US GA KBIJ 31.4 -84.9 65.0 20040525 20071231 720258 4997 ISEDOR IVERSON AIRPORT US MN KHZX 46.619 -93.31 374.3 20060101 20170924 720258 99999 ISEDOR IVERSON US MN KHZX 46.617 -93.31700000000001 374.0 20040525 20071231 720259 63844 MACON CO US NC K1A5 35.223 -83.419 615.7 20060101 20170925 720259 99999 MACON CO US NC 35.223 -83.419 615.7 20040525 20071231 720261 53976 BRIDGEPORT MUNICIPAL ARPT US TX KXBP 33.175 -97.82799999999999 259.4 20060101 20170924 720261 99999 BRIDGEPORT MUNI US TX KXBP 33.183 -97.833 260.0 20040525 20071231 720262 94076 MC ELROY AFLD US CO K20V 40.054 -106.369 2258.9 20060101 20170924 720262 99999 MC ELROY AFLD US CO 40.054 -106.369 2258.9 20040525 20071231 720263 99999 ELBERT CO PATZ FLD US GA 34.095 -82.816 183.8 20040525 20170923 720264 63827 TAZEWELL COUNTY AIRPORT US VA K6V3 37.064 -81.798 808.3 20060101 20130430 720264 99999 TAZEWELL COUNTY ARPT US VA KJFZ 37.067 -81.8 808.0 20040525 20071231 720265 63833 THOMAS C RUSSELL FLD ARPT US AL KALX 32.915 -85.963 209.1 20060101 20170924 720265 99999 THOMAS C RUSSELL FLD US AL KALX 32.917 -85.96700000000001 209.0 20040525 20071231 720266 54809 WARSAW MUNICIPAL AIRPORT US IN KASW 41.275 -85.84 259.1 20060101 20170924 720266 99999 WARSAW MUNICIPAL US IN KASW 41.266999999999996 -85.833 259.0 20040525 20071231 720267 23224 AUBURN MUNICIPAL AIRPORT US CA KAUN 38.955 -121.08200000000001 466.7 20060101 20170924 720267 99999 AUBURN MUNICIPAL US CA KAUN 38.955 -121.08200000000001 468.0 20040525 20071231 720268 53882 DCATR CO INDUS AIRPK ARPT US GA KBGE 30.983 -84.633 43.0 20060101 20170924 720268 99999 DECATUR CO INDUSTRI US GA KBGE 30.967 -84.633 43.0 20040525 20071231 720269 12982 BROOKS COUNTY AIRPORT US TX KBKS 27.206999999999997 -98.12100000000001 34.1 20060101 20170924 720269 99999 BROOKS CO US TX KBKS 27.2 -98.117 34.0 20040525 20071231 720271 3044 BIG SRNG MCMHN-WRKLE ARPT US TX KBPG 32.213 -101.521 784.3 20060101 20170924 720271 99999 BIG SPRING MCMAHON US TX KBPG 32.217 -101.51700000000001 784.0 20040525 20071231 720272 94282 SKAGIT REGIONAL AIRPORT US WA KBVS 48.467 -122.417 42.7 20060101 20170924 720272 99999 SKAGIT RGNL US WA KBVS 48.467 -122.417 44.0 20040525 20071231 720273 12981 BAY CITY MUNICIPAL AIRPORT US TX KBYY 28.973000000000003 -95.863 13.7 20060101 20170924 720273 99999 BAY CITY MUNI US TX KBYY 28.967 -95.867 14.0 20040525 20071231 720274 93799 COLUMBUS CO MUNICIPAL ARPT US NC KCPC 34.273 -78.715 29.9 20060101 20170924 720274 99999 COLUMBUS CO MUNI US NC KCPC 34.266999999999996 -78.717 30.0 20040525 20071231 720275 4872 TOLEDO SUBURBAN AIRPORT US MI KDUH 41.736000000000004 -83.655 203.9 20060101 20170924 720275 99999 LAMBERTVILLE US MI KDUH 41.733000000000004 -83.65 204.0 20040525 20071231 720276 12983 EDINBURG INTL AIRPORT US TX KEBG 26.441999999999997 -98.12899999999999 24.4 20060101 20170924 720276 99999 EDINBURG INTL US TX KEBG 26.441999999999997 -98.12200000000001 23.0 20040525 20071231 720277 63843 SHELBY MUNICIPAL AIRPORT US NC KEHO 35.256 -81.601 258.2 20060101 20170924 720277 99999 SHELBY MUNI US NC KEHO 35.256 -81.601 258.0 20040525 20071231 720278 3704 EMPORIA-GRENVLE RGNL ARPT US VA KEMV 36.687 -77.483 38.7 20060101 20170924 720278 99999 EMPORIA GREENSVILLE US VA KEMV 36.687 -77.483 39.0 20040525 20071231 720279 3705 CURTIS L BROWN JR FLD ARPT US NC KEYF 34.602 -78.578 40.5 20060101 20170607 720279 99999 C L BROWN JR FLD US NC KEYF 34.6 -78.583 41.0 20040525 20071231 720281 53969 WILBARGER CO US TX KF05 34.226 -99.28399999999999 385.6 20060101 20170924 720281 99999 WILBARGER CO US TX 34.226 -99.28399999999999 385.6 20040525 20071231 720282 3736 FIRST FLIGHT AIRPORT US NC KFFA 36.018 -75.671 4.0 20060101 20170924 720282 99999 FIRST FLIGHT US NC KFFA 36.018 -75.671 4.0 20040525 20071231 720283 4927 FILLMORE COUNTY AIRPORT US MN KFKA 43.677 -92.18 388.9 20060101 20170924 720283 99999 FILLMORE CO US MN KFKA 43.677 -92.18 389.0 20040525 20071231 720284 4877 FITCH H BEACH AIRPORT US MI KFPK 42.574 -84.811 267.6 20060101 20170924 720284 99999 CHARLOTTE US MI KFPK 42.567 -84.81700000000001 271.0 20040525 20071231 720285 3734 MIDDLE PENINSULA REGIONAL AIRPORT US VA KFYJ 37.521 -76.765 7.3 20060101 20170924 720285 99999 MIDDLE PENINSULA RGN US VA KFYJ 37.516999999999996 -76.767 7.0 20040525 20071231 720286 53977 GRANBURY MUNICIPAL ARPT US TX KGDJ 32.444 -97.81700000000001 237.1 20060101 20170924 720286 99999 GRANBURY MUNI US TX KGDJ 32.45 -97.81700000000001 237.0 20040525 20071231 720287 53967 GRAYSON COUNTY AIRPORT US TX KGYI 33.714 -96.67399999999999 228.3 20060101 20170924 720287 99999 GRAYSON CO US TX KGYI 33.714 -96.67399999999999 228.0 20040525 20071231 720288 3711 HENDERSON-OXFORD AIRPORT US NC KHNZ 36.361 -78.529 160.6 20060101 20170924 720288 99999 HENDERSON OXFORD US NC KHNZ 36.367 -78.533 161.0 20040525 20071231 720289 63836 THOMSON-MCDUFFIE CO ARPT US GA KHQU 33.53 -82.516 151.8 20060101 20170924 720289 99999 THOMSON MCDUFFIE CO US GA KHQU 33.533 -82.51700000000001 152.0 20040525 20071231 720291 53970 MESQUITE METROPOLITAN ARPT US TX KHQZ 32.747 -96.531 136.3 20060101 20170924 720291 99999 MESQUITE METRO US TX KHQZ 32.75 -96.53299999999999 136.0 20040525 20071231 720293 4989 INDEPENDENCE MUNICIPAL APT US IA KIIB 42.453 -91.948 298.1 20060101 20170924 720293 99999 INDEPENDENCE MUNI US IA KIIB 42.45 -91.95 298.0 20040525 20071007 720294 53898 WASHINGTON-WILKES CO ARPT US GA KIIY 33.78 -82.816 196.6 20061028 20170924 720294 99999 WASHINGTON WILKES CO US GA KIIY 33.783 -82.81700000000001 197.0 20040525 20070520 720295 53972 HILLSBORO MUNICIPAL ARPT US TX KINJ 32.084 -97.09700000000001 208.8 20060101 20170924 720295 99999 HILLSBORO MUNI US TX KINJ 32.083 -97.1 209.0 20040525 20071231 720296 53945 JASPER COUNTY-BELL FLD APT US TX KJAS 30.886 -94.035 64.9 20060101 20170924 720296 99999 JASPER CO BELL FLD US TX KJAS 30.886 -94.035 65.0 20040525 20071231 720297 3730 WILLIAMSBURG-JAMESTOWN APT US VA KJGG 37.239000000000004 -76.71600000000001 14.9 20060101 20170924 720297 99999 WILLIAMSBURG US VA KJGG 37.233000000000004 -76.717 15.0 20040525 20071231 720298 53971 CHEROKEE COUNTY AIRPORT US TX KJSO 31.869 -95.21799999999999 206.4 20060101 20170924 720298 99999 JACKSONVILLE US TX KJSO 31.866999999999997 -95.21700000000001 206.0 20040525 20071231 720299 53966 MID-WAY REGIONAL AIRPORT US TX KJWY 32.455999999999996 -96.913 228.3 20060101 20170924 720299 99999 MIDLOTHIAN/WAXAHATC US TX KJWY 32.45 -96.917 217.0 20040525 20071231 720300 99999 WARNER-ROBINS(NEXRAD) US GA KJGX 32.683 -83.35 159.0 20051224 20051224 720301 63846 PLANTATION AIRPARK US GA KJYL 32.646 -81.596 57.3 20060101 20170924 720301 99999 PLANTATION AIRPARK US GA KJYL 32.645 -81.596 57.0 20040525 20071231 720302 53963 CRKVIL-RED RIVER CO ARPT US TX KLBR 33.593 -95.064 134.1 20060101 20170326 720302 99999 CLARKSVILLE RED RIVE US TX KLBR 33.593 -96.064 134.0 20040525 20071231 720303 53973 HEARNE MUNICIPAL AIRPORT US TX KLHB 30.872 -96.62200000000001 86.9 20060101 20170924 720303 99999 HEARNE MUNI US TX KLHB 30.866999999999997 -96.617 87.0 20040525 20071231 720304 64752 WINGS FIELD AIRPORT US PA KLOM 40.1 -75.267 92.1 20060101 20170924 720304 99999 WINGS FLD US PA KLOM 40.133 -75.267 92.0 20040525 20071231 720305 53964 DECATUR MUNICIPAL AIRPORT US TX KLUD 33.254 -97.581 319.1 20060101 20170924 720305 99999 DECATUR MUNI US TX KLUD 33.25 -97.583 319.0 20040525 20071231 720306 53879 LEE'S SUMMIT MUNICIPAL APT US MO KLXT 38.96 -94.37100000000001 303.9 20060101 20170924 720306 99999 LEE'S SUMMIT US MO KLXT 38.955999999999996 -94.37299999999999 306.0 20040525 20071231 720307 63804 MADISON CO EXECUTIVE ARPT US AL KMDQ 34.861 -86.557 230.1 20060101 20170924 720307 99999 HUNTSVILLE US AL KMDQ 34.861 -86.557 230.0 20040525 20071231 720308 4992 MILLARD AIRPORT US NE KMLE 41.196000000000005 -96.11200000000001 319.7 20060101 20170924 720308 99999 MILLARD US NE KMLE 41.196000000000005 -96.11200000000001 320.0 20040525 20071231 720309 4947 MOUNT PLEASANT MUNI ARPT US IA KMPZ 40.946999999999996 -91.51100000000001 223.7 20060101 20170924 720309 99999 MT PLEASANT MUNI US IA KMPZ 40.95 -91.51700000000001 224.0 20040525 20071231 720311 53962 MOUNT PLEASANT RGNL ARPT US TX KOSA 33.096 -94.961 110.6 20060101 20170924 720311 99999 MT PLEASANT US TX KOSA 33.1 -94.96700000000001 111.0 20040525 20071231 720312 4964 PELLA MUNICIPAL AIRPORT US IA KPEA 41.4 -92.946 269.8 20060101 20170924 720312 99999 PELLA MUNI US IA KPEA 41.4 -92.95 270.0 20040525 20071231 720313 3052 PERRY LEFORS FIELD AIRPORT US TX KPPA 35.613 -100.99600000000001 989.1 20060101 20170924 720313 99999 PERRY LEFORS FLD US NM KPPA 35.617 -100.98299999999999 989.0 20040525 20071231 720314 93983 PALESTINE MUNICIPAL ARPT US TX KPSN 31.78 -95.706 128.9 20060101 20170924 720314 99999 PALESTINE MUNI US TX KPSN 31.783 -95.7 129.0 20040525 20071231 720315 3045 PERRYTON OCHILTREE CO ARPT US TX KPYX 36.414 -100.75 889.4 20060101 20170924 720315 99999 PERRYTON OCHILTREE US TX KPYX 36.417 -100.75 889.0 20040525 20071231 720316 12984 NUECES COUNTY ARIPORT US TX KRBO 27.779 -97.691 24.1 20060101 20170924 720316 99999 UECES CO US TX KRBO 27.783 -97.68299999999999 24.0 20040716 20071231 720317 3735 STAFFORD REGIONAL AIRPORT US VA KRMN 38.398 -77.456 64.6 20060101 20170924 720317 99999 STAFFORD RGNL US VA KRMN 38.4 -77.45 64.0 20040525 20071231 720318 53965 GRAHAM MUNICIPAL AIRPORT US TX KRPH 33.11 -98.555 342.3 20060101 20170924 720318 99999 GRAHAM MUNI US TX KRPH 33.11 -98.555 342.0 20040525 20071231 720319 63841 ROBINSON MUNICIPAL AIRPORT US IL KRSV 39.016 -87.65 140.8 20060101 20170924 720319 99999 ROBINSON MUNI US IL KRSV 39.016999999999996 -87.65 141.0 20040525 20071231 720320 53981 CLEBURNE MUNICIPAL AIRPORT US TX KCPT 32.354 -97.434 260.3 20060101 20170924 720320 99999 CLEBURNE MUNI US TX KCPT 32.35 -97.43299999999999 260.0 20040803 20071231 720321 4893 CHEBOYGAN COUNTY AIRPORT US MI KSLH 45.653999999999996 -84.51899999999999 193.6 20060101 20170924 720321 99999 CHEBOYGAN CO US MI KSLH 45.65 -84.51700000000001 195.0 20040525 20071231 720322 4129 SANDPOINT AIRPORT US ID KSZT 48.299 -116.56 648.3 20060101 20170924 720322 99999 SANDPOINT US ID KSZT 48.3 -116.56700000000001 650.0 20040525 20071231 720323 93947 GILLESPIE CO US TX KT82 30.243000000000002 -98.91 516.6 20060101 20170924 720323 99999 GILLESPIE CO US TX 30.243000000000002 -98.90899999999999 516.6 20040525 20071231 720324 64753 QUAKERTOWN AIRPORT US PA KUKT 40.435 -75.382 160.3 20060101 20170924 720324 99999 QUAKERTOWN US PA KUKT 40.433 -75.383 160.0 20040525 20071231 720326 4981 VINTON VETERANS MEMORIAL AIRPARK AIRPORT US IA KVTI 42.218999999999994 -92.02600000000001 257.6 20060101 20170924 720326 99999 VINTON VETERANS MEM US IA KVTI 42.217 -92.03299999999999 258.0 20040525 20071231 720327 4995 MENOMONIE MUNICIPAL AIRPORT-SCORE FIELD US WI KLUM 44.891999999999996 -91.868 272.8 20060101 20170924 720327 99999 MENOMONIE AFLD US WI KLUM 44.883 -91.867 273.0 20040525 20071231 720328 63832 UPSHUR COUNTY RGNL AIRPORT US WV KW22 39.0 -80.274 498.4 20060101 20170924 720328 99999 UPSHUR CO RGNL US WV KW22 39.0 -80.267 498.0 20040525 20071231 720330 63853 MOUNT CARMEL MUNICIPAL AIRPORT US IL KAJG 38.607 -87.727 161.2 20060101 20170924 720330 99999 MT CARMEL MUNI US IL KAJG 38.6 -87.73299999999999 131.0 20040803 20071231 720331 99999 KENNETT MEM US MO KTKX 36.226 -90.037 79.9 20151210 20170923 720333 53175 CORONA MUNICIPAL AIRPORT US CA KAJO 33.898 -117.602 162.5 20110101 20170505 720333 99999 CORONA MUNI US CA KAJO 33.9 -117.6 162.0 20060907 20170923 720334 93764 GAITHERSBURG MONTGOMERY COUNTY AIR PARK US MD KGAI 39.167 -77.167 164.3 20150224 20170924 720334 99999 MONTGOMERY CO AIRPARK US MD KGAI 39.168 -77.166 164.3 20071017 20150602 720339 121 RYAN FIELD AIRPORT US AZ KRYN 32.15 -111.167 737.0 20170519 20170923 720339 99999 RYAN FLD US AZ KRYN 32.141999999999996 -111.175 736.7 20071115 20170922 720340 54818 FRANKFORT DOW MEMORIAL FIELD AIRPORT US MI KFKS 44.626000000000005 -86.20100000000001 192.6 20060101 20170925 720340 99999 FRANKLIN DOW MEM FLD US MI KFKS 44.625 -86.20100000000001 193.0 20040824 20071231 720342 53947 WATONGA AIRPORT US OK KJWG 35.864000000000004 -98.421 471.8 20060101 20170924 720342 99999 WATONGA RGNL US OK KJWG 35.867 -98.421 472.0 20041109 20071231 720343 54852 WAUPACA MUNICIPAL AIRPORT US WI KPCZ 44.333 -89.02 251.8 20060101 20170924 720343 99999 WAUPACA MUNI US WI KPCZ 44.333 -89.01700000000001 252.0 20041109 20071231 720344 54920 CHEROKEE MUNICIPAL AIRPORT/ US IA KCKP 42.732 -95.556 373.7 20060101 20170924 720344 99999 CHEROKEE MUNI US IA KCKP 42.733000000000004 -95.55 374.0 20050406 20071231 720345 94086 RALPH WENZ FIELD AIRPORT US WY KPNA 42.79600000000001 -109.807 2159.8 20060101 20170924 720345 99999 RALPH WENZ FLD US WY KPNA 42.8 -109.8 2160.0 20041109 20071231 720346 53991 ALLEN PARISH AIRPORT US LA KACP 30.75 -92.68799999999999 32.6 20060119 20170924 720347 63877 GREENE COUNTY REGIONAL AIRPORT US GA K3J7 33.598 -83.139 206.4 20060101 20170924 720347 99999 GREENE COUNTY RGNL US GA K3J7 33.6 -83.133 206.0 20050427 20071231 720348 63886 BALDWIN COUNTY AIRPORT US GA KMLJ 33.154 -83.241 117.0 20060101 20170925 720348 99999 BALDWIN CO US GA KMLJ 33.154 -83.241 117.0 20050427 20071231 720351 54919 OSKALOOSA MUNICIPAL AIRPORT US IA KOOA 41.226000000000006 -92.491 256.0 20060101 20170924 720351 99999 OSKALOOSA MUNI US IA KOOA 41.233000000000004 -92.5 256.0 20050507 20071231 720352 99999 MISSISSIPPI CANYON US LA KCYD 28.17 -89.22 1.0 20050507 20111007 720353 63875 MIDDLESBORO-BELL COUNTY AIRPORT US KY K1A6 36.611 -83.738 351.7 20060101 20170924 720353 99999 MIDDLESBORO BELL CO US KY K1A6 36.617 -83.73299999999999 352.0 20050524 20071231 720354 63901 ALTUS/QUARTZ MOUNTAIN REGIONAL AIRPORT US OK KAXS 34.699 -99.338 436.8 20060101 20170924 720355 3732 GREATER CUMBERLAND REGIONAL AIRPORT US MD KCBE 39.6 -78.767 236.2 20060428 20170924 720355 99999 GREATER CUMBERLAND US MD KCBE 39.617 -78.767 236.0 20050524 20071231 720356 13999 CLINTON REGIONAL AIRPORT US OK KCLK 35.538000000000004 -98.93299999999999 492.6 20060101 20170924 720357 53993 CUSHING MUNICIPAL AIRPORT US OK KCUH 35.95 -96.773 279.2 20060101 20170924 720357 99999 CUSHING MUNI US OK KCUH 35.95 -96.76700000000001 279.0 20050611 20071231 720358 53999 EL RENO REGIONAL AIRPORT US OK KRQO 35.473 -98.006 431.9 20060101 20170924 720359 23902 SEMINOLE MUNICIPAL AIRPORT US OK KSRE 35.275 -96.675 312.1 20060119 20120716 720361 63870 FLORALA MUNI US AL K0J4 31.043000000000003 -86.31200000000001 95.7 20060511 20170907 720361 99999 FLORALA MUNI US AL 31.041999999999998 -86.31200000000001 95.7 20070412 20071231 720362 63874 MAC CRENSHAW MEMORIAL AIRPORT US AL KPRN 31.846 -86.611 137.5 20060901 20170924 720363 63872 WEEDON FIELD AIRPORT US AL KEUF 31.951 -85.12899999999999 86.9 20060901 20170924 720365 99999 BROOKINGS AIRPORT US OR KBOK 42.074 -124.29 140.0 20050729 20170923 720366 63879 BRAXTON CO US WV K48I 38.687 -80.652 388.6 20060101 20090815 720366 99999 BRAXTON CO US WV 38.687 -80.652 387.1 20050801 20071216 720367 54927 PAYNESVILLE MUNICIPAL AP US MN KPEX 45.372 -94.74600000000001 359.7 20130101 20170924 720367 99999 PAYNESVILLE MUNI US MN KPEX 45.372 -94.74700000000001 359.7 20050812 20170803 720368 54924 SLAYTON MUNICIPAL AIRPORT US MN KDVP 43.986999999999995 -95.78299999999999 494.7 20060119 20170924 720369 4135 DRIGGS-REED MEMORIAL AIRPORT US ID KDIJ 43.743 -111.098 1898.6 20061024 20170924 720371 54850 HREE RIVERS MUNICIPAL DR HAINES AIRPORT US MI KHAI 41.96 -85.59299999999999 251.2 20061024 20170924 720373 92824 PLANT CITY MUNICIPAL AIRPORT US FL KPCM 28.0 -82.164 46.9 20061024 20170924 720374 92825 PETER O KNIGHT AIRPORT US FL KTPF 27.916 -82.449 2.4 20061024 20170924 720375 54844 DRUMMOND ISLAND AIRPORT US MI KDRM 46.007 -83.743 202.7 20060831 20170925 720376 63880 THE ALBERTVILLE MUNI ARPT-THOMAS J BRUMLIK FLD US AL K8A0 34.229 -86.256 314.6 20060403 20170924 720377 13917 NEWPORT MUNI US AR KM19 35.633 -91.167 0.0 20110101 20170923 720377 99999 NEWPORT MUNI US AR KM19 35.638000000000005 -91.176 72.8 20060501 20170922 720378 122 NEW CASTLE MUNICIPAL AIRPORT US PA KUCP 41.033 -80.417 327.1 20130101 20170923 720378 99999 NEW CASTLE MUNI US PA KUCP 41.025 -80.413 326.7 20060501 20170923 720379 63882 WAYNE COUNTY AIRPORT US KY KEKQ 36.855 -84.85600000000001 293.5 20060501 20170924 720381 63885 JACK EDWARDS AIRPORT US AL KJKA 30.291 -87.67200000000001 4.9 20060501 20170924 720382 123 ST MICHAEL AIRPORT US AK PAMK 63.49 -162.11 28.0 20150224 20170923 720382 99999 ST MICHAEL US AK PAMK 63.49 -162.11 28.0 20060501 20170923 720383 53847 WHITING FIELD NAVAL AIR STATION-SOUTH US FL KNDZ 30.704 -87.023 54.3 20070116 20170924 720384 124 BAY BRIDGE AIRPORT US MD KW29 38.967 -76.333 5.2 20130101 20170923 720384 99999 STEVENSVILLE US MD KW29 38.967 -76.333 5.0 20070401 20170522 720385 419 BERTHOUD PASS US CO K0CO 39.8 -105.766 4113.3 20130306 20170923 720385 99999 BERTHOUD PASS US CO K0CO 39.8 -105.76700000000001 4113.0 20070401 20170923 720386 125 WILLMAR MUNICIPAL AIRPORT JOHN L RICE FIELD US MN KBDH 45.117 -95.133 344.1 20130101 20170924 720386 99999 WILLMAR MUNI US MN KBDH 45.117 -95.133 343.0 20070724 20170922 720387 99999 HOBBS US NM KHBB 32.766999999999996 -103.21700000000001 1130.0 20070401 20120227 720388 469 PIERCE COUNTY AIRPORT THUN FIELD US WA KPLU 47.104 -122.287 164.3 20130101 20170923 720388 99999 PUYALLUP THUN FIELD US WA KPLU 47.1 -122.28299999999999 164.0 20070401 20170922 720389 99999 ST MARY'S RGNL / LEONARD TOWN US MD 38.317 -76.55 43.3 20070521 20130430 720391 127 BEEVILLE MUNICIPAL AIRPORT US TX KBEA 28.35 -97.71700000000001 82.3 20170427 20170912 720391 99999 BEEVILLE MUNI US TX KBEA 28.35 -97.71700000000001 82.0 20070625 20170923 720392 128 HOMERVILLE AIRPORT US GA KHOE 31.055999999999997 -82.76700000000001 57.3 20130101 20170924 720392 99999 HOMERVILLE US GA KHOE 31.055999999999997 -82.774 56.7 20070521 20170922 720393 129 HEREFORD MUNICIPAL AIRPORT US TX KHRX 34.85 -102.333 1153.1 20150227 20170922 720393 99999 HEREFORD MUNI US TX KHRX 34.858000000000004 -102.32600000000001 1153.7 20070521 20170923 720394 428 DEXTER B FLORENCE MEMORIAL FIELD AIRPORT US AR KADF 34.1 -93.066 55.8 20130501 20170924 720394 99999 DEXTER B FLORENCE MEM FLD US AR KADF 34.1 -93.066 55.5 20070521 20121231 720395 130 PLEASANTON MUNICIPAL AIRPORT US TX KPEZ 28.95 -98.51700000000001 131.1 20130101 20170924 720395 99999 PLEASANTON MUNI US TX KPEZ 28.954 -98.52 131.1 20070521 20170922 720396 99999 TP MCCAMPBELL US TX 27.913 -97.212 5.5 20070521 20070717 720397 131 OHIO UNIVERSITY AIRPORT SNYDER FIELD US OH KUNI 39.217 -82.23299999999999 233.2 20150531 20170923 720397 99999 OHIO UNIVERSITY SNYDER FLD US OH KUNI 39.211 -82.23100000000001 233.5 20070521 20170923 720398 99999 WAUTOMA MUNI US WI 44.042 -89.304 261.8 20070521 20130425 720399 99999 CAMP BLANDING AAF US FL K2CB 29.951999999999998 -81.98 59.7 20080602 20141003 720401 133 CLINTON MUNICIPAL AIRPORT US AR KCCA 35.6 -92.45 157.3 20150227 20170804 720401 99999 CLINTON MUNI US AR KCCA 35.6 -92.45 157.0 20070628 20170923 720402 99999 SKYHAVEN US MO K9K4 38.784 -93.803 242.3 20070628 20080106 720403 99999 KICKAPOO DOWNTOWN AIRPARK US TX KT47 33.858000000000004 -98.49 304.2 20070628 20071015 720404 134 KICKAPOO DOWNTOWN AIRPORT US TX KCWC 33.85 -98.48299999999999 304.2 20130101 20170923 720404 99999 KICKAPOO DOWNTOWN AIRPORT US TX KCWC 33.85 -98.48299999999999 304.0 20071114 20170504 720405 436 BLAIR MUNICIPAL AIRPORT US NE KBTA 41.412 -96.109 395.9 20170309 20170923 720405 99999 BLAIR MUNI AIRPORT US NE KBTA 41.417 -96.117 403.9 20080107 20170922 720406 135 GNOSS FIELD AIRPORT US CA KDVO 38.15 -122.55 1.2 20170101 20170924 720406 99999 GNOSS FIELD AIRPORT US CA KDVO 38.15 -122.55 0.6 20071114 20170531 720407 462 OCEAN COUNTY AIRPORT US NJ KMJX 39.928000000000004 -74.292 25.0 20150224 20170308 720407 99999 ROBERT J MILLER AIRPARK US NJ KMJX 39.933 -74.3 25.0 20071114 20170923 720408 136 CHESTER COUNTY GO CARLSON AIRPORT US PA KMQS 39.983000000000004 -75.867 201.2 20130101 20170922 720408 99999 COATESVILLE/CARLSON AIRPORT US PA KMQS 39.983000000000004 -75.867 201.0 20071203 20170923 720409 99999 BLAIRSVILLE AIRPORT US GA KDZJ 34.85 -83.98299999999999 582.0 20071228 20161004 720411 137 ANGEL FIRE AIRPORT US NM KAXX 36.422 -105.29 2554.2 20160917 20170924 720411 99999 ANGEL FIRE US NM KAXX 36.417 -105.29 2554.2 20080107 20170922 720412 54943 PERRY MUNICIPAL AIRPORT US IA KPRO 41.828 -94.16 308.8 20170309 20170504 720412 99999 PERRY MUNI US IA KPRO 41.828 -94.16 309.0 20080115 20170923 720413 138 POSEY FIELD AIRPORT US AL K1M4 34.266999999999996 -87.6 284.1 20151209 20170924 720413 99999 HALEYVIILLE / POSEY FIELD US AL K1M4 34.266999999999996 -87.6 284.0 20080229 20170803 720414 139 KNOX COUNTY AIRPORT US OH K4I3 40.333 -82.51700000000001 363.0 20130101 20170505 720414 99999 KNOX COUNTY US OH K4I3 40.333 -82.51700000000001 363.0 20080229 20170923 720415 140 FREMONT MUNICIPAL AIRPORT US MI KFFX 43.433 -86.0 253.3 20150224 20170923 720415 99999 FREMONT MUNI US MI KFFX 43.433 -86.0 253.0 20080229 20150602 720417 99999 JOHNSON (STANTON CO MUNI) US KS K2K3 37.583 -101.73299999999999 1013.5 20170912 20170923 720422 3037 SHALTZ FIELD AIRPORT US KS KCBK 39.428000000000004 -101.046 971.1 20120403 20170924 720424 99999 CAMP RED DEVIL US CO K1PW 38.5 -104.917 1816.9 20131119 20131119 720425 99999 HUGOTON MUNI US KS KHQG 37.163000000000004 -101.37100000000001 954.9 20151020 20170923 720426 141 INDEPENDENT MUNICIPAL AIRPORT US KS KIDP 37.158 -95.77799999999999 251.2 20150528 20170922 720426 99999 INDEPENDENCE MUNICIPAL AIRPORT US KS KIDP 37.158 -95.77799999999999 251.5 20100604 20170923 720431 99999 LARNED PAWNEE CO US KS KLQR 38.209 -99.086 613.0 20170615 20170615 720436 142 ATKINSON MUNICPAL AIRPORT US KS KPTS 37.45 -94.73299999999999 290.2 20170519 20170924 720436 99999 ATKINSON MUNI US KS KPTS 37.449 -94.73100000000001 289.6 20100113 20170922 720437 143 CHEYENNE COUNTY MUNICIPAL AIRPORT US KS KSYF 39.766999999999996 -101.8 1040.3 20130101 20170511 720437 99999 CHEYENNE CO MUNI US KS KSYF 39.760999999999996 -101.796 1039.7 20120423 20170923 720443 99999 MADISONVILLE MUNI US KY 37.355 -87.4 133.8 20111021 20130430 720447 437 KYLE OAKLEY FIELD AIRPORT US KY KCEY 36.665 -88.37299999999999 176.2 20130101 20170923 720447 99999 KYLE OAKLEY FLD / MURRAY US KY KCEY 36.665 -88.37299999999999 175.6 20101109 20161010 720448 144 STUART POWELL FIELD AIRPORT US KY KDVK 37.578 -84.77 312.1 20151208 20170924 720448 99999 STUART POWELL FLD US KY KDVK 37.578 -84.77 311.5 20080325 20170922 720449 99999 ASHLAND RGNL US KY KDWU 38.555 -82.738 166.4 20140813 20170923 720451 99999 ADDINGTON FLD US KY KEKX 37.686 -85.925 236.2 20161110 20170923 720452 99999 FLEMING/MASON AIRPORT US KY KFGX 38.542 -83.743 278.3 20140307 20170923 720455 145 MADISON AIRPORT US KY KI39 37.633 -84.333 305.1 20160916 20170923 720455 99999 MADISON / RICHMOND US KY 37.631 -84.33200000000001 304.8 20101216 20170803 720456 146 MOUNT STERLING MONTGOMERY COUNTY AIRPORT US KY KIOB 38.067 -83.98299999999999 311.2 20130101 20170923 720456 99999 MT STERLING MONTGOMERY CO US KY KIOB 38.058 -83.98 310.6 20120531 20170923 720458 476 BIG SANDY REGIONAL AIRPORT US KY KSJS 37.751 -82.637 372.5 20151208 20170923 720458 99999 BLUEBIRD US OK 35.403 -96.83200000000001 313.9 20120531 20170923 720464 99999 PIKE CO HATCHER FLD US KY KPBX 37.562 -82.566 449.0 20140923 20170923 720465 99999 WILLIAMSBURG (WHITLEY CO ARPT) US KY KBYL 36.8 -84.2 358.8 20170911 20170923 720466 99999 SUPERDOME HELIPORT US LA KVSH 29.95 -90.083 15.2 20120726 20150128 720467 148 GEORGE R CARR MEMORIAL AIR FIELD US LA KBXA 30.816999999999997 -89.867 36.6 20150224 20170922 720467 99999 GEORGE R CARR MEM AIR FLD US LA KBXA 30.814 -89.865 36.3 20120824 20170923 720468 466 ST LANDRY PARISH AIRPORT AHART FIELD US LA KOPL 30.558000000000003 -92.09899999999999 23.2 20150531 20170924 720468 99999 ST LANDRY PARISH AHART FLD US LA KOPL 30.558000000000003 -92.09899999999999 22.9 20130502 20150602 720472 99999 STEVEN A BEAN MUNI US ME K8B0 44.992 -70.665 556.3 20170116 20170923 720475 99999 NORTHWEST MISSOURI RGNL US MO KEVU 40.353 -94.915 350.5 20170105 20170923 720476 455 HANNIBAL REGIONAL AIRPORT US MO KHAE 39.725 -91.444 234.7 20150224 20170923 720476 99999 HANNIBAL RGNL US MO KHAE 39.724000000000004 -91.444 235.6 20121115 20151217 720477 99999 FLOYD W JONES LEBANON US MO KLBO 37.648 -92.652 402.6 20170630 20170923 720478 99999 LAWRENCE SMITH MEM US MO KLRY 38.611 -94.34200000000001 278.9 20161216 20170923 720479 149 MONETT MUNICIPAL AIRPORT US MO KHFJ 36.9 -94.01700000000001 401.1 20170519 20170923 720479 99999 MONETT MUNI US MO KHFJ 36.9 -94.01700000000001 401.0 20090201 20170803 720481 99999 MALDEN MUNI US MO KMAW 36.601 -89.992 89.9 20160517 20170921 720483 99999 MARSHALL MEM MUNI US MO KMHL 39.096 -93.20299999999999 237.4 20141202 20170923 720484 99999 MEXICO MEM US MO KMYJ 39.158 -91.818 250.9 20160426 20170923 720487 99999 WARSAW MUNI US MO KRAW 38.347 -93.345 285.3 20170908 20170910 720488 99999 SIKESTON MEM MUNI US MO KSIK 36.899 -89.56200000000001 96.0 20150128 20170923 720491 99999 GWINNER ROGER MELROE FLD US ND KGWR 46.218999999999994 -97.64299999999999 385.9 20101227 20170923 720492 151 CALEDONIA COUNTY AIRPORT US VT KCDA 44.567 -72.017 362.1 20130101 20170922 720492 99999 CALEDONIA COUNTY AIRPORT US VT KCDA 44.567 -72.017 362.0 20080422 20170923 720493 54758 NEWPORT AP US VT KEFK 44.883 -72.233 278.9 20150531 20170923 720493 99999 NEWPORT STATE US VT KEFK 44.888999999999996 -72.229 283.5 20080423 20161010 720494 152 FRANKLIN COUNTY STATE AIRPORT US VT KFSO 44.933 -73.1 70.1 20080401 20170924 720494 99999 FRANKLIN CO AIRPORT US VT KFSO 44.933 -73.1 69.5 20110101 20111231 720498 153 CHESTERFIELD COUNTY AIRPORT US VA KFCI 37.4 -77.517 72.2 20130101 20170915 720498 99999 CHESTERFIELD AIRPORT US VA KFCI 37.4 -77.517 72.2 20100517 20170313 720499 154 HAMPTON ROADS EXECUTIVE AIRPORT US VA KPVG 36.783 -76.45 7.0 20130101 20170924 720499 99999 HAMPTON ROADS EXECUTIVE AIRPORT US VA KPVG 36.78 -76.449 7.0 20110503 20170922 720501 99999 ESSEX CO AIRPORT US VA KXSA 37.85 -76.883 41.0 20080401 20170923 720504 99999 TALLADEGA MUNI US AL KASN 33.57 -86.051 160.9 20120106 20170923 720505 156 WALKER COUNTY AIRPORT BEVILL FIELD US AL KJFX 33.902 -87.314 147.2 20150317 20170804 720505 99999 WALKER CO BEVILL FLD US AL KJFX 33.902 -87.314 146.9 20110207 20170923 720507 99999 BESSEMER AIPORT US AL KEKY 33.313 -86.926 213.1 20160714 20170923 720508 99999 MERKEL FLD SYLACAUGA MUNI US AL KSCD 33.172 -86.306 173.4 20140114 20170923 720516 99999 AFTON MUNI US WY KAFO 42.711000000000006 -110.94200000000001 1896.2 20131113 20170923 720517 24165 KEMMERER MUNICIPAL AIRPORT US WY KEMM 41.824 -110.557 2220.5 20130627 20170924 720518 449 FORT BRIDGER AIRPORT US WY KFBR 41.393 -110.406 2145.5 20130801 20170924 720518 99999 FORT BRIDGER AIRPORT US WY KFBR 41.391999999999996 -110.10700000000001 2144.0 20120720 20120720 720519 99999 POWELL MUNI US WY KPOY 44.867 -108.79299999999999 1552.0 20140707 20170923 720521 475 SHIVELY FIELD AIRPORT US WY KSAA 41.443999999999996 -106.82799999999999 2138.5 20150224 20170924 720521 99999 SHIVELY FLD US WY KSAA 41.445 -106.824 2137.3 20130502 20170910 720522 443 DUBOIS MUNICIPAL AIRPORT US WY KDUB 43.548 -109.69 2224.1 20130514 20170924 720522 99999 DUBOIS MUNI AIRPORT US WY KDUB 43.548 -109.69 2224.1 20151208 20151217 720524 99999 FREMONT CO AIRPORT US CO 38.428000000000004 -105.10600000000001 1657.8 20120713 20130430 720525 99999 WALDEN JACKSON AIRPORT US CO 40.75 -106.272 2485.0 20110114 20130430 720528 3064 CENTRAL COLORADO REGIONAL AP US CO KAEJ 38.698 -106.07 2421.9 20130101 20170924 720528 99999 CENTRAL COLORADO RGNL US CO KAEJ 38.817 -106.117 2423.0 20100401 20170803 720529 429 HOPKINS FIELD AIRPORT US CO KAIB 38.239000000000004 -108.56299999999999 1810.5 20130101 20170924 720529 99999 HOPKINS FIELD US CO KAIB 38.233000000000004 -108.56700000000001 1811.0 20080704 20170504 720531 158 BLAKE FIELD AIRPORT US CO KAJZ 38.783 -108.06700000000001 1583.1 20150531 20170920 720531 99999 BLAKE FIELD / DELTA US CO KAJZ 38.783 -108.06700000000001 1583.0 20120209 20170922 720532 159 HARRIET ALEXANDER FIELD AIRPORT US CO KANK 38.533 -106.05 2294.2 20151208 20170923 720532 99999 HARRIET- ALEXANDER FIELD US CO KANK 38.533 -106.05 2294.0 20091121 20170313 720533 160 BOULDER MUNICIPAL AIRPORT US CO KBDU 40.033 -105.21700000000001 1612.1 20151208 20170924 720533 99999 BOULDER MUNICIPAL AIRPORT US CO KBDU 40.039 -105.226 1612.0 20100201 20170922 720534 161 ERIE MUNICIPAL AIRPORT US CO KEIK 40.016999999999996 -105.05 1564.2 20170101 20170924 720534 99999 ERIE MUNI US CO KEIK 40.016999999999996 -105.05 1564.0 20100218 20170522 720535 162 FORT MORGAN MUNICIPAL AIRPORT US CO KFMM 40.333 -103.8 1393.2 20170518 20170924 720535 99999 FORT MORGAN MUNI US CO KFMM 40.334 -103.804 1392.3 20120726 20170922 720536 99999 GRANBY GRAND CO US CO KGNB 40.09 -105.917 2500.3 20170703 20170908 720537 163 HOLYOKE AIRPORT US CO KHEQ 40.567 -102.26700000000001 1137.2 20160919 20170924 720537 99999 HOLYOKE US CO KHEQ 40.569 -102.273 1136.9 20101129 20170922 720538 99999 VANCE BRAND AIRPORT US CO KLMO 40.167 -105.167 1541.0 20101202 20170923 720539 165 STEVENS FIELD AIRPORT US CO KPSO 37.283 -107.05 2335.1 20170519 20170924 720539 99999 STEVENS FIELD US CO KPSO 37.283 -107.05 2335.0 20091001 20170922 720541 53806 OXFORD UNIV US MS KUOX 34.383 -89.55 137.8 20130101 20170923 720541 99999 UNIVERSITY OXFORD US MS KUOX 34.383 -89.53299999999999 138.0 20080530 20161010 720542 166 LAGO VISTA RUSTY ALLEN AIRPORT US TX KRYW 30.5 -97.96700000000001 375.2 20170519 20170924 720542 99999 LARGO VISTA / RUSTY ALLEN AIRPORT US TX KRYW 30.5 -97.96700000000001 375.0 20080825 20170922 720543 167 DE KALB COUNTY AIRPORT US IN KGWB 41.3 -85.06700000000001 268.2 20130101 20170924 720543 99999 AUBURN / DE KALB CO US IN KGWB 41.306999999999995 -85.064 268.2 20080612 20121231 720544 168 STERLING MUNICIPAL AIRPORT US CO KSTK 40.617 -103.26700000000001 1231.1 20151208 20170924 720544 99999 STERLING MUNI US CO KSTK 40.615 -103.265 1230.8 20101129 20170922 720545 169 CHESTER AIRPORT US CT KSNC 41.38399999999999 -72.506 127.1 20150227 20170923 720545 99999 CHESTER AIRPORT US CT KSNC 41.38399999999999 -72.506 126.8 20080817 20170922 720546 99999 EUREKA US NV 39.604 -116.005 1814.8 20120209 20130430 720549 171 CARSON AIRPORT US NV KCXP 39.183 -119.73299999999999 1432.3 20150224 20170923 720549 99999 CARSON CITY AIRPORT US NV KCXP 39.192 -119.734 1431.6 20100714 20150602 720551 99999 MINDEN TAHOE AIRPORT US NV KMEV 39.0 -119.751 1440.5 20140523 20170923 720553 99999 PORT AUTH DOWNTN MANHATTAN WALL ST HEL US NY KJRB 40.701 -74.009 2.1 20160720 20170923 720558 3977 ELK CITY MUNICIPAL AP US OK KELK 35.433 -99.4 610.2 20150224 20170922 720558 99999 ELK CITY MUNI US OK KELK 35.431 -99.39399999999999 610.2 20140530 20170923 720559 172 STAN STAMPER MUNICIPAL AIRPORT US OK KHHW 34.033 -95.53299999999999 174.0 20130101 20170924 720559 99999 STAN STAMPER MUNI US OK KHHW 34.035 -95.542 174.0 20120202 20170922 720561 467 WILLIAM R POUGE MUNICIPAL AIRPORT US OK KOWP 36.175 -96.152 272.2 20151209 20170923 720561 99999 WILLIAM R POGUE MUNI US OK KOWP 36.167 -96.15 272.0 20130822 20170922 720562 99999 RANGE OP 13 / YAKIMA TRAINING CENTER US WA K1QW 46.8 -120.167 928.0 20080530 20170920 720565 99999 HEBER CITY MUNI RUSS MCDONALD FLD US UT 40.482 -111.429 1718.2 20100412 20130430 720567 24180 BRIGHAM CITY AIRPORT US UT KBMC 41.552 -112.06200000000001 1288.1 20140724 20170924 720569 99999 KANAB MUNI US UT KKNB 37.010999999999996 -112.531 1483.8 20130813 20170819 720572 99999 BOLINDER FIELD TOOELE VALLEY US UT KTVY 40.611999999999995 -112.351 1316.1 20150506 20170923 720575 173 INDIANAPOLIS EXECUTIVE AIRPORT US IN KTYQ 40.031 -86.251 281.0 20151208 20170924 720575 99999 INDIANAPOLIS EXECUTIVE US IN KTYQ 40.031 -86.251 281.0 20080721 20170510 720576 174 UNIVERSITY AIRPORT US CA KEDU 38.533 -121.78299999999999 21.0 20130101 20170923 720576 99999 DAVIS US CA KEDU 38.533 -121.78299999999999 21.0 20080721 20170922 720577 175 RUSK COUNTY AIRPORT US TX KRFI 32.15 -94.85 135.0 20150224 20170923 720577 99999 HENDERSON/RUSK COUNTY AIRPORT US TX KRFI 32.15 -94.85 134.7 20080721 20170923 720578 176 STEPHENS COUNTY AIRPORT US TX KBKD 32.717 -98.89200000000001 391.1 20151209 20170924 720578 99999 STEPHENS CO US TX KBKD 32.719 -98.891 391.4 20080721 20170922 720579 99999 CASTROVILLE MUNI US TX KT89 29.342 -98.851 235.0 20080825 20130430 720581 178 LINDEN AIRPORT US NJ KLDJ 40.617 -74.25 7.0 20130101 20170924 720581 99999 LINDEN US NJ KLDJ 40.617 -74.245 7.0 20080721 20170522 720582 99999 TODD FLD US MN 45.898999999999994 -94.874 406.3 20080721 20130430 720583 99999 LAKE ELMO US MN 44.997 -92.85600000000001 284.1 20080721 20130430 720584 181 ZAPATA COUNTY AIRPORT US TX KAPY 26.967 -99.25 129.2 20130101 20170922 720584 99999 ZAPATA US TX KAPY 26.967 -99.25 129.0 20080721 20170923 720585 99999 ELBOW LAKE MUNI US MN 45.986000000000004 -95.992 367.0 20080721 20130430 720586 183 PLATTEVILLE MUNICIPAL AIRPORT US WI KPVB 42.683 -90.45 312.1 20170910 20170923 720586 99999 PLATTEVILLE MUNI US WI KPVB 42.68899999999999 -90.444 312.1 20080825 20170922 720587 184 ABBEVILLE CHRIS CRUSTA MEMORIAL AIRPORT US LA KIYA 29.976 -92.084 15.2 20150531 20170923 720587 99999 CHRIS CRUSTA MEMORIAL AIRPORT / ABBEVILLE US LA KIYA 29.976 -92.084 4.6 20080825 20170923 720588 99999 OXFORD US MS 34.383 -89.53299999999999 136.0 20080825 20100527 720589 185 SHAWANO MUNICIPAL AIRPORT US WI KEZS 44.783 -88.55 248.1 20170428 20170924 720589 99999 SHAWANO US WI KEZS 44.783 -88.55 248.0 20080915 20170922 720592 186 H L SONNY CALLAHAN AIRPORT US AL KCQF 30.46 -87.87700000000001 28.0 20150531 20170923 720592 99999 FAIRHOPE/SONNY CALLAHAN AIRPORT US AL KCQF 30.461 -87.87700000000001 27.7 20081022 20170923 720593 187 STARKE COUNTY AIRPORT US IN KOXI 41.333 -86.667 208.2 20150908 20170923 720593 99999 KNOX/STARKE CO US IN KOXI 41.333 -86.667 208.5 20081022 20170522 720594 188 HOUSTON DUNN HELISTOP US TX KMCJ 29.717 -95.383 69.2 20130101 20170924 720594 99999 HOUSTON/DUNN HELISTOP US TX KMCJ 29.717 -95.383 69.0 20081022 20170504 720595 99999 HOLLISTER MUNI US CA 36.9 -121.417 70.1 20100527 20100527 720596 189 NEWBERRY COUNTY AIRPORT US SC KEOE 34.3 -81.633 173.1 20130101 20170924 720596 99999 NEWBERRY US SC KEOE 34.3 -81.633 173.0 20090105 20170922 720597 190 LAURENS COUNTY AIRPORT US SC KLUX 34.5 -81.95 212.1 20150317 20170923 720597 99999 LAURENS US SC KLUX 34.5 -81.95 212.0 20090105 20170923 720598 191 BERKELEY COUNTY AIRPORT US SC KMKS 33.183 -80.033 22.3 20150317 20170924 720598 99999 MONCKS CORNER US SC KMKS 33.183 -80.033 22.0 20090105 20170922 720599 192 CHESTER CATAWBA REGIONAL AIRPORT US SC KDCM 34.783 -81.2 200.3 20150227 20170924 720599 99999 CHESTER US SC KDCM 34.783 -81.2 200.0 20090105 20151217 720601 193 AIKEN MUNICIPAL AIRPORT US SC KAIK 33.65 -81.683 161.2 20130101 20170314 720601 99999 AIKEN MUNI US SC KAIK 33.649 -81.685 160.9 20090105 20170923 720602 194 BARNWELL REGIONAL AIRPORT US SC KBNL 33.25 -81.383 75.3 20130101 20170923 720602 99999 BARNWELL CO US SC KBNL 33.258 -81.388 75.0 20090105 20170923 720603 195 WOODWARD FIELD AIRPORT US SC KCDN 34.283 -80.567 92.1 20130101 20170504 720603 99999 CAMDEN/WOODWARD FLD US SC KCDN 34.283 -80.567 92.0 20090105 20170923 720604 196 WILLIAMSBURG REGIONAL AIRPORT US SC KCKI 33.717 -79.85 20.1 20150227 20170923 720604 99999 KINGSTREE/WILLIAMSBURG RGNL US SC KCKI 33.717 -79.857 20.4 20090105 20170923 720605 197 CHERAW MUNICIPAL LYNCH BELLINGER FIELD US SC KCQW 34.717 -79.95 73.2 20160917 20170923 720605 99999 CHERAW US SC KCQW 34.717 -79.95 73.0 20090105 20170923 720606 198 CHARLESTON EXECUTIVE AIRPORT US SC KJZI 32.701 -80.003 5.2 20130101 20170924 720606 99999 CHARLESTON EXECUTIVE US SC KJZI 32.701 -80.003 5.2 20090105 20170803 720607 199 LANCASTER COUNTY MC WHIRTER FIELD AIRPORT US SC KLKR 34.717 -80.85 148.1 20170918 20170923 720607 99999 LANCASTER CO MC WHIRTER FLD US SC KLKR 34.723 -80.855 148.1 20090105 20170923 720608 200 MARION COUNTY AIRPORT US SC KMAO 34.181 -79.335 28.0 20130101 20170923 720608 99999 MARION CO US SC KMAO 34.181 -79.335 28.0 20090105 20170923 720609 201 LOWCOUNTRY REGIONAL AIRPORT US SC KRBW 32.917 -80.633 31.1 20130101 20170924 720609 99999 WALTERBORO/LOWCOUNTRY RGNL US SC KRBW 32.921 -80.641 29.9 20090105 20170918 720611 202 SUMTER AIRPORT US SC KSMS 34.0 -80.367 55.2 20150224 20170924 720611 99999 SUMTER US SC KSMS 34.0 -80.367 55.5 20090105 20170313 720612 203 BEAUFORT COUNTY AIRPORT US SC KARW 32.412 -80.634 38.1 20130101 20170924 720612 99999 BEAUFORT US SC KARW 32.4 -80.633 3.0 20090120 20170922 720613 204 CONWAY HORRY COUNTY AIRPORT US SC KHYW 33.828 -79.122 10.1 20130101 20170906 720613 99999 CONWAY HORRY CO US SC KHYW 33.829 -79.122 10.4 20090601 20170923 720614 205 LINCOLN REGIONAL AIRPORT KARL HARDER FIELD US CA KLHM 38.909 -121.351 37.2 20130101 20170924 720614 99999 LINCOLN RGNL KARL HARDER FLD US CA KLHM 38.909 -121.351 36.9 20090601 20170522 720615 99999 COLUMBIA US CA 38.03 -120.415 645.6 20090120 20170923 720616 207 BRANSON AIRPORT US MO KBBG 36.533 -93.2 397.2 20130101 20170923 720616 99999 BRANSON AIRPORT US MO KBBG 36.533 -93.2 397.0 20090201 20170922 720617 208 HOUSTON EXECUTIVE AIRPORT US TX KTME 29.8 -95.9 51.2 20130101 20170924 720617 99999 HUSTON/EXECUTIVE US KTME 29.8 -95.9 50.6 20090204 20170313 720619 99999 FRANCIS E WARREN AFB HELIPORT US WY KFEW 41.133 -104.867 1877.6 20090423 20170923 720622 99999 BOWIE MUNI US TX 33.602 -97.77600000000001 335.6 20090320 20130430 720623 99999 ELIZABETHTON MUNI US TN 36.371 -82.17299999999999 485.5 20090325 20130430 720624 211 MADISON MUNICIPAL AIRPORT US SD KMDS 44.016000000000005 -97.086 523.0 20130101 20170308 720624 99999 MADISON MUNI US SD KMDS 44.016000000000005 -97.086 523.3 20090312 20170923 720625 212 BLACKWELL TONKAWA MUNICIPAL AIRPORT US OK KBKN 36.75 -97.35 314.3 20170520 20170905 720625 99999 BLACKWELL TONKAWA MUNI US OK KBKN 36.75 -97.35 314.0 20090312 20170923 720626 213 PAMPA MESA VISTA AIRPORT US TX KBPC 35.883 -101.03299999999999 845.2 20130101 20170313 720626 99999 PAMPA M VISTA US TX KBPC 35.883 -101.03299999999999 845.0 20090313 20170923 720627 214 STIGLER REGIONAL AIRPORT US OK KGZL 35.283 -95.1 183.2 20151209 20151218 720627 99999 STIGLER RGNL US OK KGZL 35.283 -95.1 183.0 20090312 20170923 720628 215 CLARENCE E PAGE MUNICIPAL AIRPORT US OK KRCE 35.483000000000004 -97.81700000000001 413.0 20130101 20170523 720628 99999 OKLAHOMA CITY/PAGE US OK KRCE 35.483000000000004 -97.81700000000001 413.0 20090312 20170619 720629 216 JACK BARSTOW AIRPORT US MI KIKW 43.663000000000004 -84.26100000000001 194.2 20151209 20170924 720629 99999 JACK BARSTOW US MI KIKW 43.663000000000004 -84.26100000000001 193.5 20090406 20170922 720631 217 MARLBORO COUNTY JETPORT H E AVENT FIELD US SC KBBP 34.617 -79.733 45.1 20150317 20170924 720631 99999 MARLBORO CO JETPORT H E AVENT US SC KBBP 34.622 -79.734 44.8 20090403 20170910 720632 218 SUMMERVILLE AIRPORT US SC KDYB 33.063 -80.279 17.1 20150224 20170924 720632 99999 SUMMERVILLE US SC KDYB 33.063 -80.279 17.1 20090404 20170313 720633 219 HARTSVILLE REGIONAL AIRPORT US SC KHVS 34.4 -80.117 111.3 20130101 20170924 720633 99999 HARTSVILLE RGNL US SC KHVS 34.403 -80.119 110.9 20090403 20160126 720634 220 FAIRFIELD COUNTY AIRPORT US SC KFDW 34.315 -81.109 176.2 20150227 20170923 720634 99999 FAIRFIELD CO/WINNSBORO US SC KFDW 34.315 -81.109 175.9 20090421 20150602 720635 221 H A CLARK MEMORIAL FIELD AIRPORT US AZ KCMR 35.3 -112.2 2035.2 20151209 20170910 720635 99999 H A CLARK MEM FLD US AZ KCMR 35.302 -112.194 2035.5 20090508 20170923 720636 222 CLINTON MEMORIAL AIRPORT US MO KGLY 38.35 -93.68299999999999 251.2 20150227 20170924 720636 99999 CLINTON MEM US MO KGLY 38.357 -93.684 250.5 20090508 20150602 720637 223 HOUSTON SOUTHWEST AIRPORT US TX KAXH 29.5 -95.477 21.0 20170428 20170906 720637 99999 HOUSTON SOUTHWEST AIRPORT US TX KAXH 29.506 -95.477 20.7 20090601 20170923 720638 224 BEND MUNICIPAL AIRPORT US OR KBDN 44.095 -121.2 1055.2 20130101 20170922 720638 99999 BEND MUNI AIRPORT US OR KBDN 44.095 -121.2 1054.6 20090524 20170923 720639 225 HORSESHOE BAY RESORT AIRPORT US TX KDZB 30.533 -98.367 333.2 20130101 20170924 720639 99999 HORSESHOE BAY AIRPARK US TX KDZB 30.533 -98.367 332.8 20090605 20170905 720641 99999 SCHRIEVER AFB US CO KSHM 38.8 -104.51700000000001 1899.5 20121018 20170923 720642 99999 CHEYENNE MTN AS US CO KCWN 38.75 -104.85 2114.0 20121120 20170923 720643 54940 FOREST CITY MUNICIPAL AIRPORT US IA KFXY 43.235 -93.624 374.6 20150227 20170923 720643 99999 FOREST CITY MUNI US IA KFXY 43.233000000000004 -93.78299999999999 375.0 20090702 20170313 720644 226 BUCKEYE MUNICIPAL AIRPORT US AZ KBXK 33.417 -112.68299999999999 311.2 20130101 20170924 720644 99999 BUCKEYE MUNI US AZ KBXK 33.42 -112.686 311.2 20090708 20170522 720645 227 PLACERVILLE AIRPORT US CA KPVF 38.717 -120.75 787.3 20130101 20151115 720645 99999 PLACERVILLE US CA KPVF 38.724000000000004 -120.75299999999999 787.3 20090711 20170803 720646 228 HALF MOON BAY AIRPORT US CA KHAF 37.513000000000005 -122.501 20.1 20130101 20170924 720646 99999 HALF MOON BAY AIRPORT US CA KHAF 37.513000000000005 -122.501 20.4 20090717 20170522 720647 229 LAMPASAS AIRPORT US TX KLZZ 31.105999999999998 -98.196 370.0 20150529 20170922 720647 99999 LAMPASAS AIRPORT US TX KLZZ 31.105999999999998 -98.196 370.3 20090719 20170923 720648 230 AUSTIN EXECUTIVE AIRPORT US TX KEDC 30.395 -97.56700000000001 188.1 20150224 20170923 720648 99999 AUSTIN EXECUTIVE US TX KEDC 30.395 -97.56700000000001 187.5 20090722 20170923 720649 231 HALIFAX NORTHAMPTON REGIONAL AIRPORT US NC KIXA 36.33 -77.635 44.2 20150224 20170803 720649 99999 HALIFAX-NORTHAMPTON REGIONAL US NC KIXA 36.33 -77.635 44.2 20090722 20170923 720651 232 UNION COUNTY AIRPORT US OH KMRT 40.225 -83.352 311.2 20130101 20170922 720651 99999 UNION COUNTY AIRPORT US OH KMRT 40.225 -83.352 311.2 20090721 20170923 720652 433 BRIDGEPORT SONORA JUNCTION US CA KBAN 38.356 -119.51899999999999 2057.1 20130110 20170923 720652 99999 USMC MTN WARFARE TRAINING CENTER US CA KBAN 38.35 -119.51700000000001 2067.2 20090813 20170504 720653 99999 USMC BOMB RANGE BT-11 US NC 35.016999999999996 -76.467 5.2 20100527 20100527 720654 99999 CORNING MUNI US AR 36.404 -90.648 89.3 20090701 20130430 720655 235 CRYSTAL RIVER AIRPORT US FL KCGC 28.866999999999997 -82.56700000000001 3.1 20130101 20151218 720655 99999 CRYSTAL RIVER US FL KCGC 28.866999999999997 -82.571 2.7 20090812 20170923 720656 99999 MIDDLETON MUNI MOREY FLD US WI 43.114 -89.53200000000001 282.9 20091104 20130430 720657 99999 HINCKLEY/FIELD OF DREAMS AIRPORT US MN 46.023 -92.895 311.0 20091111 20130430 720658 99999 SAUK CENTRE MUNI US MN 45.707 -94.93299999999999 379.2 20091111 20130430 720659 239 OZONA MUNICIPAL AIRPORT US TX KOZA 30.735 -101.20299999999999 726.0 20151209 20170923 720659 99999 OZONA MUNI US TX KOZA 30.735 -101.20299999999999 725.7 20091118 20170922 720661 99999 IONIA CO US MI 42.938 -85.061 249.3 20091203 20130430 720662 99999 TEHACHAPI MUNI US CA 35.135 -118.439 1219.5 20100527 20100527 720663 99999 VIROQUA MUNI US WI 43.57899999999999 -90.913 393.8 20091216 20130430 720664 242 INDEPENDENCE OIL PLATFORM US LA KIPN 28.083000000000002 -87.98299999999999 224.0 20130101 20150602 720664 99999 OIL PLATFORM/INDEPENDENCE US LA KIPN 28.083000000000002 -87.98299999999999 223.7 20091217 20160616 720665 243 MAGNOLIA OIL PLATFORM US LA KGBK 27.2 -92.2 224.0 20130101 20170923 720665 99999 OIL PLATFORM/MAGNOLIA US LA KGBK 27.2 -92.2 223.7 20091217 20121231 720666 244 SHIP SHOAL OIL PLATFORM US LA KSPR 28.6 -91.2 224.0 20170519 20170923 720666 99999 OIL PLATFORM/SHIP SHOAL US LA KSPR 28.6 -91.2 223.7 20091217 20170922 720667 99999 OIL PLATFORM/INNOVATOR US MS KMYT 28.217 -89.617 223.7 20091217 20140203 720668 246 EAST BREAKS OIL PLATFORM US TX KEMK 27.816999999999997 -94.31700000000001 224.0 20170308 20170922 720668 99999 OIL PLATFORM/EAST BREAKS US TX KEMK 27.816999999999997 -94.31700000000001 223.7 20091217 20170923 720669 247 GUNNISON OIL PLATFORM US TX KGUL 27.3 -93.53299999999999 224.0 20160918 20170923 720669 99999 OIL PLATFORM/GUNNISON US TX KGUL 27.3 -93.53299999999999 223.7 20091217 20170922 720671 248 JESUP WAYNE COUNTY AIRPORT US GA KJES 31.554000000000002 -81.883 33.2 20151209 20170314 720671 99999 JESUP WAYNE CO US GA KJES 31.554000000000002 -81.883 32.9 20100111 20170911 720672 485 FLAGLER COUNTY AIRPORT US FL KXFL 29.467 -81.206 10.1 20130101 20141113 720672 99999 FLAGLER CO US FL KXFL 29.467 -81.206 10.1 20091103 20121231 720673 99999 PAYSON AIRPORT US AZ 34.257 -111.339 1571.9 20100527 20100527 720674 249 WEST GEORGIA REGIONAL AIRPORT O V GRAY FIELD US GA KCTJ 33.633 -85.15 354.2 20130101 20170923 720674 99999 WEST GEORGIA RGNL O V GRAY FLD US GA KCTJ 33.631 -85.152 353.9 20100129 20170922 720675 99999 INDIAN SPRINGS RANGE 63 US NV KL63 36.53 -115.57 972.0 20100305 20111230 720681 99999 CALAVERAS CO MAURY RASMUSSEN FLD US CA KCPU 38.146 -120.648 403.9 20160526 20170923 720684 99999 PHIFER AFLD US WY KEAN 42.05 -104.93299999999999 1455.1 20160331 20170923 720699 3724 CARROLL CO RGNL/JJACK B POAGE FIELD AIRPORT US MD KDMW 39.608000000000004 -77.008 240.5 20110101 20170924 720699 99999 CARROLL CO RGNL JAC US MD KDMW 39.608000000000004 -77.008 240.0 20100218 20101231 720701 54942 OSCEOLA MUNICIPAL AIRPORT US IA KI75 41.052 -93.689 339.9 20150908 20170923 720701 99999 OSCEOLA MUNI US IA KI75 41.05 -93.68299999999999 338.0 20100218 20170313 720709 99999 PUTNAM COUNTY AIRPORT US OH KOWX 41.036 -83.98200000000001 232.6 20160909 20170923 720712 250 HENRY TIFT MYERS AIRPORT US GA KTMA 31.429000000000002 -83.48899999999999 108.2 20130101 20150602 720712 99999 HENRY TIFT MYERS AIRPORT US KTMA 31.429000000000002 -83.48899999999999 108.2 20100804 20170923 720713 251 DARKE COUNTY AIRPORT US OH KVES 40.204 -84.53200000000001 307.2 20150602 20170924 720713 99999 DARKE COUNTY AIRPORT US OH KVES 40.204 -84.53200000000001 306.9 20100308 20170313 720714 252 PAULDING NORTHWEST ATLANTA AIRPORT US GA KPUJ 33.912 -84.941 393.2 20170308 20170804 720714 99999 PAULDING COUNTY AIRPORT US GA KPUJ 33.912 -84.941 393.0 20100425 20170923 720716 99999 LURAY CAVERNS US VA KW45 38.667 -78.501 274.9 20100429 20130430 720717 442 WEST DELTA 27A US MS KDLP 29.116999999999997 -89.55 36.3 20151110 20170923 720717 99999 WEST DELTA OIL PLATFORM US MS KDLP 29.116999999999997 -89.55 224.0 20100430 20170922 720718 253 MISSISSIPPI CANYON 311 A US LA KMDJ 28.643 -89.794 224.0 20150531 20170923 720718 99999 MISSISSIPPI CANYON OIL PLATFORM US LA KMDJ 28.65 -89.8 224.0 20100430 20170922 720719 254 EAST CAMERON 278 OIL PLATFORM US LA KEHC 28.433000000000003 -92.883 224.0 20151211 20170829 720719 99999 EAST CAMERON OIL PLATFORM US LA KEHC 28.433000000000003 -92.883 224.0 20100430 20170923 720721 255 SABINE OIL PLATFORM US LA KVBS 29.483 -93.633 224.0 20150531 20170919 720721 99999 SABINE OIL PLATFORM US LA KVBS 29.483 -93.633 224.0 20100430 20170920 720722 256 SOUTH MARSH 268 OIL PLATFORM US LA KSCF 29.116999999999997 -91.867 224.0 20150531 20170923 720722 99999 S MARSH OIL PLATFORM US LA KSCF 29.116999999999997 -91.867 224.0 20100430 20150602 720723 257 VERMILLION 26 OIL PLATFORM US LA KVNP 29.467 -92.367 224.0 20130126 20130425 720723 99999 VERMILLION OIL PLATFORM US LA KVNP 29.467 -92.367 224.0 20100430 20121221 720724 99999 ALEXANDER MUNI US NM 34.645 -106.834 1583.1 20100503 20130430 720725 434 BRAZOS 133B US TX KBBF 28.058000000000003 -95.87200000000001 0.0 20150531 20170923 720725 99999 BRAZOS 133 US TX KBBF 27.835 -96.01100000000001 0.0 20100504 20170313 720726 99999 GALVESTON 424 US TX KGVX 28.576999999999998 -94.977 0.0 20100504 20160304 720727 260 HIGH ISLAND 376 US TX KHQI 27.962 -93.671 0.3 20151110 20170906 720727 99999 HIGH ISLAND 376 US TX KHQI 27.962 -93.671 0.0 20100504 20170923 720729 435 BRAZOS 451 OILP US TX KBQX 28.5 -95.71600000000001 34.1 20130717 20170923 720729 99999 BRAZOS 451 US TX KBQX 28.5 -95.71700000000001 0.0 20100513 20170922 720731 261 MUSTANG ISLAND 31 US TX KMIU 27.283 -96.73299999999999 0.3 20130101 20131023 720731 99999 MUSTANG ISLAND 31 US TX KMIU 27.283 -96.73299999999999 0.0 20100513 20121231 720732 99999 MUSTANG ISLAND A85A US TX KMZG 27.733 -96.18299999999999 9.0 20100513 20170923 720733 99999 BOERNE STAGE FLD US TX 29.724 -98.695 422.1 20100511 20130430 720734 264 NAMPA MUNICIPAL AIRPORT US ID KMAN 43.581 -116.523 773.3 20100514 20170924 720734 99999 NAMPA MUNI US ID KMAN 43.581 -116.523 773.3 20110101 20111231 720735 73805 NORTHWEST FLORIDA BEACHES INTL ARPT US FL KECP 30.349 -85.788 17.4 20110301 20170924 720735 99999 NW PANAMA CITY INTL US FL KECP 30.358 -85.79899999999999 21.0 20100523 20110228 720736 265 FULTON COUNTY AIRPORT US IN KRCR 41.066 -86.182 241.1 20151208 20170921 720736 99999 FULTON CO US IN KRCR 41.066 -86.182 240.8 20100607 20170922 720737 266 CARRINGTON MUNICIPAL AIRPORT US ND K46D 47.451 -99.15100000000001 490.1 20151110 20170320 720737 99999 CARRINGTON MUNI US ND K46D 47.451 -99.15100000000001 489.8 20100610 20170923 720738 267 THOMASVILLE REGIONAL AIRPORT US GA KTVI 30.901999999999997 -83.881 80.2 20150531 20170924 720738 99999 THOMASVILLE RGNL US GA KTVI 30.901999999999997 -83.881 80.5 20100621 20170922 720739 268 MINDEN AIRPORT US LA KMNE 32.646 -93.29799999999999 85.0 20160721 20170924 720739 99999 MINDEN-WEBSTER AIRPORT US LA KMNE 32.646 -93.29799999999999 84.7 20100614 20170922 720741 269 BOULDER MUNICIPAL AIRPORT US NV KBVU 35.946999999999996 -114.861 671.2 20130101 20170923 720741 99999 BOULDER CITY MUNI US NV KBVU 35.946999999999996 -114.861 671.0 20100624 20170922 720742 270 FAITH RANCH AIRPORT US TX KFTN 28.209 -100.01899999999999 236.2 20160917 20170923 720742 99999 FAITH RANCH AIRPORT US TX KFTN 28.209 -100.01899999999999 235.6 20100618 20170922 720743 418 SOUTH PADRE ISLAND HELIPORT US TX KSPL 26.066999999999997 -97.15 4.3 20160919 20161010 720743 99999 S PADRE ISLAND HELIPORT US TX KSPL 26.070999999999998 -97.15700000000001 3.0 20100618 20170103 720744 271 PICKENS COUNTY AIRPORT US SC KLQK 34.817 -82.7 309.1 20130101 20170924 720744 99999 PICKENS CO AIRPORT US SC KLQK 34.81 -82.70299999999999 308.8 20100719 20170910 720745 272 BOOMVANG SPUR OIL PLATFORM US KVAF 27.35 -94.633 101.2 20130101 20170923 720745 99999 BOOMVANG HELIPORT / OIL PLATFORM US KVAF 27.35 -94.633 101.0 20100722 20170922 720746 99999 COVINGTON MUNI US GA 33.632 -83.85 242.3 20100901 20130430 720747 99999 ELK MOUNTAIN US WY KEHY 41.733000000000004 -106.46700000000001 2225.0 20100914 20170923 720749 24255 WHIDBEY ISLAND NAS US WA KNUW 48.35 -122.667 14.3 20090603 20170924 720768 274 LEE COUNTY AIRPORT US VA K0VG 36.654 -83.21799999999999 430.1 20130101 20170924 720768 99999 LEE CO US VA K0VG 36.654 -83.21799999999999 430.1 20100921 20121231 720769 275 GEORGE M BRYAN AIRPORT US MS KSTF 33.433 -88.84899999999999 101.2 20130101 20170924 720769 99999 GEORGE M BRYAN US MS KSTF 33.433 -88.84899999999999 101.2 20100923 20170716 720771 276 COLEMAN MUNICIPAL AIRPORT US TX KCOM 31.840999999999998 -99.404 517.3 20130101 20170923 720771 99999 COLEMAN MUNI US TX KCOM 31.840999999999998 -99.404 517.2 20100930 20121231 720772 99999 MORIARTY AIRPORT US NM 34.986 -106.009 1889.5 20101013 20130430 720773 99999 COURTLAND AIRPORT US AL 34.659 -87.34899999999999 179.2 20101018 20130430 720776 99999 HESLER NOBLE FLD US MS KLUL 31.673000000000002 -89.17200000000001 72.5 20121118 20170923 720777 99999 LAWRENCEVILLE BRUNSWICK MUNI US VA KLVL 36.773 -77.794 100.3 20140625 20170923 720779 461 MEXIA LIMESTONE COUNTY AIRPORT US TX KLXY 31.641 -96.514 166.1 20130829 20170924 720779 99999 MEXIA LIMESTONE CO US TX KLXY 31.64 -96.515 165.8 20170519 20170910 720787 278 JOHN BELL WILLIAMS AIRPORT US MS KJVW 32.304 -90.411 75.3 20150317 20170924 720787 99999 JOHN BELL WILLIAMS AIRPORT US MS KJVW 32.304 -90.411 75.3 20110402 20150602 720815 99999 PUTNAM CO US IN K4I7 39.63 -86.814 256.6 20140313 20170222 720835 99999 MADELINE ISLAND US WI K4R5 46.788999999999994 -90.759 197.8 20161111 20170923 720839 279 RENO STEAD AIRPORT US NV KRTS 39.667 -119.876 1540.2 20150224 20170923 720839 99999 RENO / STEAD AIRPORT US NV KRTS 39.668 -119.876 1539.2 20110921 20150602 720852 280 MEADOW LAKE AIRPORT US CO KFLY 38.946 -104.57 2095.2 20150908 20170924 720852 99999 MEADOW LAKE AIRPORT US CO KFLY 38.946 -104.57 2095.2 20101201 20170803 720853 281 ROLLA MUNICIPAL AIRPORT US ND K06D 48.88399999999999 -99.62100000000001 555.0 20170309 20170923 720853 99999 ROLLA MUNI US ND K06D 48.88399999999999 -99.62100000000001 555.3 20101118 20170922 720854 282 BEACH AIRPORT US ND K20U 46.925 -103.98200000000001 840.0 20150227 20170924 720854 99999 BEACH US ND K20U 46.925 -103.98200000000001 840.0 20101118 20170922 720855 283 CAVALIER MUNICIPAL AIRPORT US ND K2C8 48.784 -97.632 272.2 20150227 20170923 720855 99999 CAVALIER MUNI US ND K2C8 48.784 -97.632 271.9 20101118 20170922 720856 284 SCOTTSBORO MUNICIPAL AIRPORT WORD FIELD US AL K4A6 34.689 -86.006 198.1 20160918 20170923 720856 99999 SCOTTSBORO MUNI WORD FLD US AL K4A6 34.689 -86.006 198.1 20101130 20170923 720858 285 CANDO MUNICIPAL AIRPORT US ND K9D7 48.48 -99.236 450.2 20150227 20170924 720858 99999 CANDO MUNI US ND K9D7 48.48 -99.236 450.5 20101118 20170910 720859 286 BLACK RIVER FALLS AREA AIRPORT US WI KBCK 44.251000000000005 -90.855 255.1 20150224 20170923 720859 99999 BLACK RIVER FALLS AREA US WI KBCK 44.251000000000005 -90.855 254.8 20101118 20170923 720861 287 CROSBY MUNICIPAL AIRPORT US ND KD50 48.928999999999995 -103.29700000000001 594.1 20130101 20170803 720861 99999 CROSBY MUNI US ND KD50 48.928999999999995 -103.29700000000001 594.4 20101118 20170923 720862 99999 ROBERTSON FLD US ND 48.753 -98.39299999999999 490.1 20101118 20130430 720863 289 TIOGA MUNICIPAL AIRPORT US ND KD60 48.381 -102.898 691.0 20130101 20170924 720863 99999 TIOGA MUNI US ND KD60 48.381 -102.898 690.7 20101118 20151217 720864 290 TARBORO EDGECOMBE AIRPORT US NC KETC 35.937 -77.547 16.2 20130101 20161011 720864 99999 TARBORO EDGECOMBE US NC KETC 35.937 -77.547 16.2 20101122 20121231 720865 291 HUTSON FIELD AIRPORT US ND KGAF 48.405 -97.37100000000001 251.2 20150531 20170922 720865 99999 HUTSON FLD US ND KGAF 48.405 -97.37100000000001 251.2 20101118 20170923 720866 292 MERCER COUNTY REGIONAL AIRPORT US ND KHZE 47.29 -101.581 553.2 20150224 20170923 720866 99999 MERCER CO RGNL US ND KHZE 47.29 -101.581 552.6 20101118 20160126 720867 293 RUGBY MUNICIPAL AIRPORT US ND KRUG 48.39 -100.024 472.1 20130101 20170923 720867 99999 RUGBY MUNI US ND KRUG 48.39 -100.024 471.8 20101118 20121231 720868 294 WATFORD CITY MUNICIPAL AIRPORT US ND KS25 47.79600000000001 -103.25399999999999 643.1 20151208 20170924 720868 99999 WATFORD CITY MUNI US ND KS25 47.79600000000001 -103.25399999999999 642.8 20101118 20170922 720869 295 JESSE VIERTEL MEMORIAL AIRPORT US MO KVER 38.946999999999996 -92.68299999999999 218.2 20130101 20170923 720869 99999 JESSE VIERTEL MEM US MO KVER 38.946999999999996 -92.68299999999999 217.9 20101203 20121231 720871 296 MANDAN MUNICIPAL AIRPORT US ND KY19 46.768 -100.89399999999999 593.1 20130101 20170924 720871 99999 MANDAN MUNI US ND KY19 46.768 -100.89399999999999 592.5 20101118 20170922 720887 297 MANITOWISH WATERS AIRPORT US WI KD25 46.117 -89.883 491.0 20130101 20170804 720887 99999 MANITOWISH WATERS US WI KD25 46.122 -89.882 490.7 20111215 20170923 720895 99999 GLEN ULLIN REGIONAL US ND KD57 46.813 -101.86 636.7 20131016 20170923 720897 99999 MONROE WALTON CO US GA KD73 33.782 -83.693 264.3 20170817 20170923 720902 298 DUPONT LAPEER AIRPORT US MI KD95 43.067 -83.26700000000001 254.2 20130101 20170925 720902 99999 DUPONT LAPEER US MI KD95 43.067 -83.272 254.2 20120124 20170522 720903 441 DAVIESS COUNTY AIRPORT US IN KDCY 38.7 -87.13 143.3 20151208 20151217 720903 99999 DAVIESS CO US IN KDCY 38.7 -87.13 144.2 20130826 20170923 720904 299 DELAND MUNICIPAL AIRPORT SIDNEY H TAYLOR FIELD US FL KDED 29.066999999999997 -81.283 24.1 20151209 20170923 720904 99999 DELAND MUNI SIDNEY H TAYLOR FLD US FL KDED 29.066999999999997 -81.28399999999999 24.1 20120209 20170923 720907 99999 CAMPBELL CO US TN KJAU 36.335 -84.162 359.7 20150608 20170923 720909 300 STANLEY MUNICIPAL AIRPORT US ND K08D 48.301 -102.406 684.3 20170425 20170504 720909 99999 STANLEY MUNI US ND K08D 48.301 -102.406 684.3 20101207 20170923 720911 301 BARNES COUNTY MUNICIPAL AIRPORT US ND KBAC 46.942 -98.01799999999999 427.0 20151208 20170313 720911 99999 BARNES CO MUNI US ND KBAC 46.941 -98.01799999999999 426.7 20101215 20170923 720912 302 VIOSCA KNOLL 768 OIL PLATFORM US AL KVOA 29.233 -87.78299999999999 53.0 20130101 20170923 720912 99999 VIOSCA KNOLL 768 US AL KVOA 29.233 -87.78299999999999 53.0 20110105 20170313 720913 303 SALSA US LA KGHB 27.833000000000002 -91.98299999999999 30.2 20170519 20170923 720913 99999 GARDEN BANKS 172 US LA KGHB 27.833000000000002 -91.98299999999999 30.0 20101103 20170922 720914 304 EUGENE ISLAND OIL PLATFORM US LA KEIR 28.633000000000003 -91.48299999999999 28.0 20130101 20170923 720914 99999 EUGENE I 2150ILP US LA KEIR 28.633000000000003 -91.48299999999999 28.0 20101101 20170522 720915 99999 E CAMERON 47JP US LA KCMB 29.433000000000003 -92.98299999999999 29.0 20101101 20120803 720916 453 GREEN CANYON 338 US LA KGRY 27.63 -90.45 58.2 20130101 20170923 720916 99999 GREEN CANYON 338 US LA KGRY 27.633000000000003 -90.45 58.0 20101105 20170922 720917 306 HIGH ISLAND 179 OIL PLATFORM US TX KXIH 29.183000000000003 -94.51700000000001 75.3 20130101 20170923 720917 99999 HIGH ISLAND 179A US LA KXIH 29.183000000000003 -94.51700000000001 75.0 20101122 20170504 720918 307 MAIN PASS 140B US LA KMIS 29.296 -88.84200000000001 25.0 20170910 20170923 720918 99999 MISSION US SD KMIS 43.033 -100.617 789.0 20110105 20170922 720919 99999 N PADRE 975 US TX KOPM 26.833000000000002 -96.93299999999999 25.0 20101101 20141031 720921 309 WEST CAMERON 368 A OIL PLATFORM US TX KCRH 28.916999999999998 -93.3 34.1 20130101 20151014 720921 99999 W CAMERON 368A US TX KCRH 28.916999999999998 -93.3 34.0 20101101 20121231 720922 99999 ST GEORGE MUNI US UT KDXZ 37.036 -113.51 879.0 20110113 20111214 720923 310 BOUNDARY COUNTY AIRPORT US ID K65S 48.726000000000006 -116.295 711.1 20150224 20170803 720923 99999 BOUNDARY CO US ID K65S 48.726000000000006 -116.295 711.1 20110118 20170923 720924 311 ROSCOE TURNER AIRPORT US MS KCRX 34.915 -88.604 130.2 20160126 20161010 720924 99999 ROSCOE TURNER AIRPORT US MS KCRX 34.915 -88.604 129.5 20110118 20170918 720925 312 ATLANTIS OIL PLATFORM US LA KATP 27.2 -90.03299999999999 50.3 20130101 20150602 720925 99999 ATLANTIS US LA KATP 27.2 -90.03299999999999 50.0 20110104 20170923 720926 313 BEAUMONT MUNICIPAL AIRPORT US TX KBMT 30.070999999999998 -94.21600000000001 10.1 20150224 20170923 720926 99999 BEAUMONT MUNI US TX KBMT 30.070999999999998 -94.21600000000001 9.8 20110310 20170923 720927 314 FLETCHER FIELD AIRPORT US MS KCKM 34.3 -90.512 53.0 20150227 20170924 720927 99999 FLETCHER FLD US MS KCKM 34.3 -90.512 52.7 20110311 20150602 720928 315 DELAWARE MUNICIPAL JIM MOORE FIELD AIRPORT US OH KDLZ 40.28 -83.115 288.0 20130101 20170924 720928 99999 DELAWARE MUNI US OH KDLZ 40.28 -83.115 288.0 20110315 20170905 720929 316 CUMERLAND MUNICIPAL AIRPORT US WI KUBE 45.506 -91.98100000000001 378.3 20151208 20170504 720929 99999 CUMBERLAND MUNI US WI KUBE 45.506 -91.98100000000001 378.3 20110309 20170923 720932 317 BROOKHAVEN LINCOLN COUNTY AIRPORT US MS K1R7 31.605999999999998 -90.40899999999999 149.1 20150227 20170622 720932 99999 BROOKHAVEN LINCOLN CO US MS K1R7 31.605999999999998 -90.40899999999999 149.0 20110402 20170504 720933 318 LINTON MUNICIPAL AIRPORT US ND K7L2 46.218 -100.245 542.2 20150531 20170922 720933 99999 LINTON MUNI US ND K7L2 46.218 -100.245 541.9 20110513 20170923 720934 99999 WRAY MUNI US CO 40.1 -102.241 1120.7 20110512 20130430 720935 99999 PETALUMA MUNI US CA 38.258 -122.60600000000001 26.5 20110517 20130430 720936 99999 ALWOOD NDB US NC KAQE 35.707 -77.372 9.0 20110618 20110618 720937 99999 AUX FIELD ONE/CAMP SHELBY US MS 31.2 -89.18299999999999 93.0 20110512 20110519 720939 99999 OAKES MUNI US ND 46.173 -98.08 406.9 20110513 20130430 720941 99999 HARVEY MUNI US ND 47.791000000000004 -99.932 489.2 20110516 20130430 720942 323 WAHOO MUNICIPAL AIRPORT US NE KAHQ 41.233000000000004 -96.6 373.1 20130101 20150602 720942 99999 WAHOO MUNI US NE KAHQ 41.24100000000001 -96.594 373.1 20110517 20170923 720943 431 HARRISON COUNTY AIRPORT US TX KASL 32.521 -94.30799999999999 108.8 20130101 20170923 720943 99999 HARRISON CO US TX KASL 32.521 -94.30799999999999 108.8 20110518 20170313 720944 324 BELLEFONTAINE REGIONAL AIRPORT US OH KEDJ 40.367 -83.81700000000001 342.3 20150224 20170923 720944 99999 BELLEFONTAINE RGNL US OH KEDJ 40.372 -83.819 342.3 20110512 20170828 720945 99999 QUINCY MUNI ARPT US FL 30.6 -84.55 20.9 20110521 20130430 720946 326 FERNANDINA BEACH MUNICIPAL AIRPORT US FL KFHB 30.616999999999997 -81.467 5.2 20150224 20170923 720946 99999 FERNANDINA BEACH MUNI US FL KFHB 30.612 -81.461 4.9 20110512 20170313 720947 99999 COOPERSTOWN MUNI US ND 47.423 -98.10600000000001 434.0 20110601 20130430 720948 328 JIMMY CARTER REGIONAL AIRPORT US GA KACJ 32.11 -84.189 142.7 20130101 20170924 720948 99999 SOUTHER FLD US GA KACJ 32.111 -84.189 143.6 20110711 20170922 720949 329 CAMDENTON MEMORIAL AIRPORT US MO KH21 37.974000000000004 -92.691 324.0 20170827 20170923 720949 99999 CAMDENTON MEM US MO KH21 37.974000000000004 -92.691 323.7 20110630 20150305 720951 330 EAST GEORGIA REGIONAL AIRPORT US GA KSBO 32.609 -82.37 100.3 20151209 20170923 720951 99999 EMANUEL CO US GA KSBO 32.609 -82.37 100.0 20110704 20170922 720952 99999 GRAY BUTTE FLD US CA KGXA 34.564 -117.675 920.5 20110825 20170923 720953 331 MAIN PASS 289 C OIL PLATFORM US LA KVKY 29.248 -88.441 115.2 20150531 20170922 720953 99999 MAIN PASS 289C OIL PLATFORM US LA KVKY 29.248 -88.441 115.0 20110816 20170923 720954 456 ALAMINOS CANYON US TX KHHV 26.933000000000003 -94.68299999999999 25.3 20150531 20170923 720954 99999 ALAMINOS CANYON 25 OIL PLATFORM US KHHV 26.939 -94.689 90.0 20110724 20170905 720955 99999 SOUTH TIMBALLER 301B OIL PLATFORM US KSTZ 28.16 -90.666 89.0 20110825 20130409 720956 332 VERMILION 331 OIL PLATFORM US KVQT 28.27 -92.264 90.2 20150531 20170923 720956 99999 VERMILLON 331A US KVQT 28.27 -92.264 90.0 20110610 20170923 720957 333 PORT FORCHON HELIPORT US LA KXPY 29.116999999999997 -90.2 30.2 20150531 20170923 720957 99999 FOURCHON HELIPORT US LA KXPY 29.123 -90.20200000000001 30.0 20111001 20170313 720958 99999 TUCKER GUTHRIE MEM US KY 36.859 -83.35799999999999 472.7 20111021 20130430 720959 99999 BUTLER MUNI US GA 32.568000000000005 -84.251 203.3 20111021 20121031 720961 336 LOGANSPORT CASS COUNTY AIRPORT US IN KGGP 40.711 -86.375 225.3 20130101 20170924 720961 99999 LOGANSPORT CASS CO US IN KGGP 40.711 -86.375 224.9 20111028 20170905 720962 337 HEART OF GEORGIA REGIONAL AIRPORT US GA KEZM 32.214 -83.12799999999999 93.3 20130101 20170910 720962 99999 HEART OF GEORGIA RGNL US GA KEZM 32.214 -83.12799999999999 92.7 20111021 20170923 720963 99999 MCGREGOR RANGE BASE CAMP US NM 32.067 -106.15 1283.0 20111215 20170923 720964 338 TYNDALL DRONE RUNWAY US FL KTDR 30.033 -85.53299999999999 5.2 20151208 20170922 720964 99999 TYNDALL DRONE RUNWAY US FL KTDR 30.033 -85.53299999999999 4.6 20120125 20170923 720965 13910 DYESS AIR FORCE BASE US TX KDYS 32.433 -99.85 545.0 20160101 20170923 720965 99999 DYESS AFB/ABILENE US TX KDYS 32.417 -99.85 545.0 20111229 20170905 720966 339 GRIFFIN SPALDING COUNTY AIRPORT US GA K6A2 33.227 -84.275 292.3 20130101 20170922 720966 99999 GRIFFIN SPALDING CO US GA K6A2 33.227 -84.275 292.0 20111118 20170923 720967 457 FALSE RIVER REGIONAL AIRPORT US LA KHZR 30.718000000000004 -91.479 12.2 20151107 20170924 720967 99999 FALSE RIVER RGNL US LA KHZR 30.718000000000004 -91.479 11.9 20111221 20170922 720968 99999 SILER CITY MUNI US NC K5W8 35.704 -79.50399999999999 187.1 20111215 20150123 720969 99999 TEN SLEEP US WY KJPD 44.15 -107.167 2741.0 20111201 20121213 720971 342 SOUTH PASS US WY KFWZ 42.516999999999996 -108.78299999999999 2588.1 20170309 20170924 720971 99999 SOUTH PASS US WY KFWZ 42.516999999999996 -108.78299999999999 2588.0 20111201 20170922 720972 99999 ST MARY HOSPITAL HELIPORT US MN 44.016999999999996 -92.48299999999999 355.0 20111201 20170923 720974 344 WINCHESTER MUNICIPAL AIRPORT US TN KBGF 35.178000000000004 -86.066 298.1 20130101 20170504 720974 99999 WINCHESTER MUNI US TN KBGF 35.178000000000004 -86.066 298.4 20120209 20170923 720975 99999 HAGLER AAF US MS KSLJ 31.174 -89.191 85.3 20160616 20160616 720976 345 LORDSBURG MUNICIPAL AIRPORT US NM KLSB 32.333 -108.691 1304.2 20130101 20150602 720976 99999 LORDSBURG MUNI US NM KLSB 32.333 -108.691 1303.9 20120215 20160824 720977 99999 ALPHA (BURNS) US WY 41.333 -104.26700000000001 1667.3 20130226 20170923 720978 99999 BRAVO (PINE BLUFFS) US NE 41.516999999999996 -104.0 1607.2 20130226 20170923 720979 99999 CHARLIE (GERING) US NE 41.583 -103.667 1371.0 20130226 20170923 720981 99999 DELTA (KIMBALL) US NE 41.367 -103.8 1546.0 20130731 20170923 720982 99999 ECHO (PINE BLUFFS) US NE 41.117 -103.98299999999999 1609.3 20131218 20170406 720983 99999 FOXTROT (DIX) US NE 41.367 -103.48299999999999 1453.0 20141215 20170923 720984 99999 GOLF (SIDNEY) US NE 41.217 -103.1 1333.5 20140514 20161214 720985 99999 HOTEL (GURLEY) US NE 41.317 -102.833 1262.8 20130816 20170923 720986 99999 INDIA (SIDNEY) US NE 41.05 -102.867 1293.0 20130828 20170923 720987 99999 JULIET (PEETZ) US CO K1JW 40.967 -103.2 1380.1 20130829 20170922 720988 99999 KILO (DIX) US NE K1KW 41.133 -103.48299999999999 1439.3 20141215 20170923 720989 99999 LIMA (GROVER) US CO K1LW 40.917 -103.7 1518.8 20141215 20170923 720991 99999 MIKE (HAXTUN) US CO K1MW 40.7 -103.48299999999999 1336.2 20120702 20170923 720992 99999 NOVEMBER (GROVER) US CO K1NW 40.633 -103.833 1459.1 20141215 20170923 720993 99999 OSCAR (GROVER) US CO K1OW 40.883 -104.0 1649.0 20130226 20170923 720994 99999 ALPHA (RAYNESFORD) US MT K1AM 47.283 -110.8 1219.2 20131025 20170923 720995 99999 BRAVO (GEYSER) US MT K1BM 47.283 -110.367 1234.4 20120920 20170923 720996 99999 CHARLIE (STANFORD) US MT K1CM 47.1 -110.167 1336.6 20120601 20170726 720997 99999 DELTA (DENTON) US MT K1DM 47.383 -109.81700000000001 1093.3 20131025 20170923 720998 99999 ECHO (WINIFRED) US MT K1EM 47.45 -109.417 1116.5 20120717 20170923 720999 99999 FOXTROT (AUGUSTA) US MT K1FM 47.6 -112.31700000000001 1343.3 20120614 20170904 721001 99999 GOLF (SIMMS) US MT K1GM 47.333 -112.1 1310.6 20131025 20170923 721002 99999 HOTEL (FAIRFIELD) US MT K1HM 47.7 -111.95 1178.7 20130625 20170923 721003 99999 INDIA (ULM) US MT K1IM 47.317 -111.46700000000001 1108.0 20120920 20170923 721004 99999 JULIE (POWER) US MT K1JM 47.75 -111.55 1152.1 20120504 20170923 721005 99999 KILO (HARLOWTOWN) US MT K1KM 46.45 -109.8 1329.8 20120921 20170923 721006 99999 LIMA (JUDITH GAP) US MT K1LM 46.7 -109.73299999999999 1414.3 20120607 20170923 721007 99999 MIKE (MOORE) US MT K1MM 47.016999999999996 -109.633 1256.1 20120614 20170908 721008 99999 NOVEMBER (GRASS RANGE) US MT K1NM 47.067 -109.03299999999999 1161.3 20120619 20170922 721009 99999 OSCAR (ROY) US MT K1OM 47.333 -108.93299999999999 1086.0 20131025 20170923 721011 99999 ALPHA (BALFOUR) US ND 47.967 -100.581 482.8 20141125 20170923 721012 99999 BRAVO (VELVA) US ND 47.909 -100.927 588.6 20121030 20170923 721013 99999 CHARLIE (RUSO) US ND 47.714 -101.01 598.6 20120926 20170923 721014 99999 DELTA (MAX) US ND 47.795 -101.29899999999999 631.6 20121031 20170923 721015 99999 ECHO (RYDER) US ND 47.751000000000005 -101.67399999999999 640.7 20121101 20170923 721016 99999 FOXTROT (RYDER 2) US ND 47.896 -101.67399999999999 619.4 20120821 20170923 721017 99999 GOLF (PLAZA) US ND 48.12 -101.96 643.7 20121024 20170923 721018 99999 HOTEL (PARSHALL) US ND 47.974 -102.223 578.2 20120821 20170923 721019 99999 INDIA (PALERMO) US ND 48.345 -102.304 678.2 20120823 20170923 721021 99999 JULIET (DONNYBROOK) US ND 48.412 -101.89200000000001 670.3 20121002 20170923 721022 99999 KILO (DONNYBROOK 2) US ND 48.551 -102.12 693.4 20120927 20170923 721023 99999 LIMA (BOWBELLS) US ND 48.788999999999994 -102.26899999999999 601.1 20121023 20170923 721024 99999 MIKE (KENMARE) US ND 48.673 -101.882 569.4 20120925 20170923 721025 99999 NOVEMBER (MOHALL) US ND 48.76 -101.59200000000001 516.0 20121023 20170923 721026 99999 OSCAR (ANTLER) US ND 48.825 -101.28299999999999 466.3 20120926 20170923 721027 99999 TRINITY CENTER US CA 40.983000000000004 -122.694 728.5 20120302 20130430 721028 99999 MIDDLEBURY STATE AIRPORT US VT 43.985 -73.095 149.4 20120227 20170923 721029 347 LA PORTE MUNICIPAL AIRPORT US IN KPPO 41.571999999999996 -86.735 247.2 20130101 20170924 721029 99999 LA PORTE MUNI US IN KPPO 41.571999999999996 -86.735 247.5 20120402 20151217 721031 348 TULLAHOMA REGIONAL AIRPORT WILLIAM NORTHERN FIELD US TN KTHA 35.38 -86.24600000000001 330.1 20130101 20170923 721031 99999 TULLAHOMA RGNL WM NORTHERN FLD US TN KTHA 35.38 -86.24600000000001 329.8 20120408 20121231 721032 99999 ANDREWS CO US TX 32.330999999999996 -102.53 967.4 20120417 20130430 721033 350 FITZGERALD MUNICIPAL AIRPORT US GA KFZG 31.684 -83.27 111.3 20130101 20170924 721033 99999 FITZGERALD MUNI US GA KFZG 31.684 -83.27 111.3 20120620 20170313 721034 351 CAMERON MUNICIPAL AIRPORT US TX KT35 30.879 -96.971 123.1 20130101 20170923 721034 99999 CAMERON MUNI AIRPARK US TX KT35 30.879 -96.971 122.5 20120501 20170923 721035 352 HAZLEHURST AIRPORT US GA KAZE 31.885 -82.647 78.0 20130101 20170924 721035 99999 HAZLEHURST US GA KAZE 31.885 -82.647 77.7 20120705 20170922 721036 353 BOYSEN THERMOPOL US WY KTBX 43.467 -108.389 2225.0 20130101 20170924 721036 99999 BOYSEN US WY KTBX 43.467 -108.238 2225.0 20120503 20170922 721037 99999 KITTY HAWK ONE HELIPORT US NC 36.071999999999996 -75.694 3.0 20120503 20170914 721038 99999 JORDAN FLD ARPT US NC 35.238 -79.99600000000001 182.9 20120503 20170920 721041 99999 MARCO ISLAND US FL KMKY 25.995 -81.673 1.5 20120726 20170818 721042 486 ZEPHYRHILLS MUNICIPAL AIRPORT US FL KZPH 28.228 -82.156 27.4 20130101 20170924 721042 99999 ZEPHYRHILLS MUNI US FL KZPH 28.228 -82.156 27.4 20120813 20170313 721043 99999 ATHENS MUNI US TX KF44 32.164 -95.82799999999999 135.3 20120813 20170923 721044 99999 ROCKWALL MUNI US TX KF46 32.931 -96.435 175.0 20120813 20170923 721045 354 MIDWEST NATIONAL AIR CENTER AIRPORT US MO KGPH 39.332 -94.31 237.1 20150227 20170922 721045 99999 MIDWEST NAT AIR CENTER AIRPORT US MO KGPH 39.333 -94.31 236.8 20120818 20170923 721046 99999 LOUISIANA RGNL ARPT / GONZALES US LA KREG 30.166999999999998 -90.93299999999999 4.3 20120829 20170923 721047 99999 VAGABOND AAF / YAKIMA TRINING CENTER US WA 46.667 -120.45 417.6 20120917 20121231 721048 471 PRESIDIO LELY INTERNATIONAL AIRPORT US TX KPRS 29.634 -104.361 896.1 20151209 20170923 721048 99999 PRESIDIO LELY INTL ARPT US TX KPRS 29.634 -104.36200000000001 893.7 20130731 20170922 722003 54930 STANTON AIRFIELD US MN KSYN 44.476000000000006 -93.016 280.4 20060101 20170924 722003 99999 STANTON AIRFIELD US MN KSYN 44.483000000000004 -93.01700000000001 280.0 19880106 20071231 722004 54922 HARRY STERN AIRPORT US ND KBWP 46.244 -96.60700000000001 295.1 20060101 20170924 722004 99999 HARRY STERN US ND KBWP 46.25 -96.6 295.0 20050719 20071231 722005 99999 COFFEY CO US KS KUKL 38.302 -95.725 357.5 20050427 20080213 722006 54926 QUENTIN AANENSON FIELD AIRPORT US MN KLYV 43.621 -96.21600000000001 436.2 20060101 20170924 722006 99999 LUVERNE QUENTIN AANE US MN KLYV 43.617 -96.21700000000001 436.0 20050208 20071231 722007 54828 TUSCOLA AREA AIRPORT US MI KCFS 43.458999999999996 -83.446 213.7 20081124 20170925 722008 12995 MUSTANG BEACH AIRPORT US TX KRAS 27.811999999999998 -97.089 1.5 20060101 20170826 722008 99999 MUSTANG BEACH US TX KRAS 27.833000000000002 -97.06700000000001 2.0 20050217 20071231 722010 12836 KEY WEST INTERNATIONAL AIRPORT US FL KEYW 24.555 -81.752 1.2 19730101 20170924 722011 92813 KISSIMMEE GATEWAY AIRPORT US FL KISM 28.29 -81.437 25.0 20060101 20170924 722011 99999 KISSIMMEE GATEWAY US FL KISM 28.29 -81.437 25.0 20020423 20071231 722012 92817 THE VILLAGES US FL KVVG 28.95 -81.96700000000001 27.1 20060101 20170924 722012 99999 THE VILLAGES US FL KVVG 28.967 -81.96700000000001 27.0 20020423 20071231 722013 99999 KEY WEST / BOCA CHICA(NEXRAD) US FL KBYX 24.6 -81.7 3.0 19880105 19880704 722014 12818 HERNANDO COUNTY AIRPORT US FL KBKV 28.474 -82.454 23.5 20060101 20170924 722014 99999 HERNANDO CO US FL KBKV 28.474 -82.455 23.0 19990114 20071231 722015 12850 KEY WEST NAS US FL KNQX 24.583000000000002 -81.683 1.8 19730101 20170924 722016 12896 THE FL KEYS MARATHON ARPT US FL KMTH 24.726 -81.05199999999999 2.4 20060101 20170924 722016 99999 FLORIDA KEYS MARATHO US FL KMTH 24.733 -81.05 2.0 19880318 20071231 722017 12876 WINTER HAVEN US FL KGIF 28.061999999999998 -81.75399999999999 44.5 20060101 20100801 722017 99999 WINTER HAVEN US FL KGIF 28.05 -81.75 44.0 19990114 20010516 722018 99999 CLOVIS(NEXRAD) US NM KFDX 34.633 -103.633 1417.0 20000101 20010516 722019 99999 ISLAMORADA COAST GUARD STATION US FL 24.95 -80.58 1.0 19750916 19920422 722020 12839 MIAMI INTERNATIONAL AIRPORT US FL KMIA 25.791 -80.316 8.8 19730101 20170924 722021 92816 VANDENBERG AIRPORT US FL KVDF 28.014 -82.345 6.7 20060101 20170924 722021 99999 VANDENBERG US FL KVDF 28.017 -82.35 7.0 20020424 20071231 722022 12803 BOCA RATON AIRPORT US FL KBCT 26.378 -80.108 4.0 20060101 20170924 722022 99999 BOCA RATON US FL KBCT 26.378 -80.108 4.0 20020423 20071229 722024 12882 OPA LOCKA AIRPORT US FL KOPF 25.906999999999996 -80.28 3.1 20060101 20170924 722024 99999 OPA LOCKA US FL KOPF 25.9 -80.283 2.0 19621028 20071231 722025 12849 FORT LAUDERDALE HOL US FL KFLL 26.072 -80.154 3.4 19730101 20100731 722025 99999 FORT LAUDERDALE HOL US FL 26.066999999999997 -80.15 3.0 20100801 20100818 722026 12826 HOMESTEAD AFB AIRPORT US FL KHST 25.483 -80.383 1.5 19430201 20170924 722026 99999 HOMESTEAD ARB US FL KHST 25.483 -80.383 2.0 20000101 20071231 722027 99999 MIAMI BEACH COAST GUARD STATION US FL 25.77 -80.13 1.0 19830713 19840103 722028 99999 FOWEY ROCKS COAST GUARD STATION US FL 25.58 -80.1 1.0 19800419 19860831 722029 12888 KENDALL-TAMIAMI EXEC ARPT US FL KTMB 25.648000000000003 -80.433 3.1 20060101 20170924 722029 99999 KENDALL TAMIAMI EXEC US FL KTMB 25.65 -80.433 2.0 19760620 20071231 722030 12844 PALM BEACH INTERNATIONAL AIRPORT US FL KPBI 26.685 -80.09899999999999 5.8 19430206 20170925 722031 63839 FOLSOM FIELD AP US AL K3A1 34.269 -86.85799999999999 293.5 20060101 20170924 722031 99999 FOLSOM FLD US AL K3A1 34.266999999999996 -86.85 295.0 19730101 20071231 722032 54916 WASECA MUNICIPAL AIRPORT US MN KACQ 44.074 -93.553 343.2 20060101 20170924 722032 99999 WASECA MUNI US MN KACQ 44.067 -93.55 343.0 20040713 20071231 722033 4999 GRANITE FALLS MUNI ARPT/LENZEN-ROE MEMORIAL FIELD US MN KGDB 44.753 -95.556 319.1 20060101 20170924 722033 99999 GRANITE FALLS MUNI US MN KGDB 44.75 -95.55 319.0 20040525 20071231 722034 12812 CHARLOTTE COUNTY AIRPORT US FL KPGD 26.916999999999998 -81.991 7.6 20060101 20170924 722034 99999 CHARLOTTE CO US FL KPGD 26.92 -81.98299999999999 8.0 19990114 20071231 722035 99999 CLEWISTON US FL 26.75 -80.95 6.0 19730101 19780511 722036 99999 LAKE WORTH INLET US FL 26.77 -80.05 1.0 19750911 19871013 722037 92809 NORTH PERRY AIRPORT US FL KHWO 25.999000000000002 -80.241 2.7 20060101 20170924 722037 99999 NORTH PERRY US FL KHWO 26.0 -80.233 3.0 19990904 20071231 722038 12897 NAPLES MUNICIPAL AIRPORT US FL KAPF 26.151999999999997 -81.775 2.7 19990101 20170924 722038 99999 NAPLES MUNI US FL KAPF 26.153000000000002 -81.775 2.0 19431229 19981231 722039 12885 FT LAUDER EXECUTIVE ARPT US FL KFXE 26.197 -80.171 4.3 20060101 20170924 722039 99999 FORT LAUDERDALE EXEC US FL KFXE 26.2 -80.167 4.0 19840908 20071231 722040 12838 MELBOURNE INTL AP US FL KMLB 28.101 -80.64399999999999 8.2 19741113 20170924 722040 99999 MELBOURNE REGIONAL US FL KMLB 28.1 -80.65 11.0 20000101 20031231 722041 12993 SOUTH LAFOURCHE AIRPORT US LA KGAO 29.445 -90.26100000000001 0.3 20060101 20170924 722041 99999 SOUTH LAFORCHE US LA KGAO 29.45 -90.26700000000001 0.0 19730101 20071231 722042 53978 WOOD COUNTY AIRPORT MINEOLA US TX KJDD 32.742 -95.49600000000001 132.3 20060101 20170924 722042 99999 WOOD CO US TX KJDD 32.741 -95.49600000000001 132.0 20040525 20071231 722043 99999 ROCKINGHAM ROCKINGHAM-HAMLET AI US 34.89 -79.76 109.0 20040525 20060412 722044 53930 ADA MUNICIPAL AIRPORT US OK KADH 34.804 -96.671 309.7 20060101 20170924 722044 99999 ADA MUNI US OK KADH 34.8 -96.667 310.0 20040319 20071231 722045 12843 VERO BEACH MUNI US FL KVRB 27.653000000000002 -80.243 8.5 19730101 20100801 722045 99999 VERO BEACH MUNI US FL 27.65 -80.417 8.0 20100801 20100818 722046 12898 SPACE COAST REGIONAL AIRPORT US FL KTIX 28.517 -80.8 10.7 20060101 20170924 722046 99999 SPACE COAST RGNL US FL KTIX 28.517 -80.8 10.0 19730420 20071231 722047 99999 FORT PIERCE COAST GUARD STATION US FL 27.47 -80.3 1.0 19750916 19900121 722048 99999 JUPITER INLET COAST GUARD STATIO US 27.03 -80.12 1.0 19760228 19780914 722049 92805 POMPANO BEACH AIRPARK ARPT US FL KPMP 26.25 -80.108 6.4 20060101 20170924 722049 99999 POMPANO BEACH AIRPAR US FL KPMP 26.25 -80.117 6.0 19880621 20071231 722050 12815 ORLANDO INTERNATIONAL AIRPORT US FL KMCO 28.434 -81.325 27.4 19520507 20170924 722051 12841 ATOKA MUNI US OK KORL 28.545 -81.333 34.1 19410616 19900206 722051 53932 ATOKA MUNICIPAL AIRPORT US OK KAQR 34.398 -96.148 179.8 20060101 20170924 722051 99999 ATOKA MUNI US OK KAQR 34.398 -96.148 180.0 20040713 20071231 722052 53933 ALVA REGIONAL AIRPORT US OK KAVK 36.773 -98.67 449.3 20060101 20170924 722052 99999 ALVA RGNL US OK KAVK 36.766999999999996 -98.667 449.0 20040713 20071231 722053 12841 EXECUTIVE AIRPORT US FL KORL 28.545 -81.333 32.9 19900208 20170924 722053 99999 EXECUTIVE US FL KORL 28.55 -81.333 34.0 20000101 20031231 722054 53959 WEST MEMPHIS MUNICIPAL APT US AR KAWM 35.135 -90.234 65.2 20060101 20170924 722054 99999 WEST MEMPHIS MUNI US AR KAWM 35.135 -90.234 65.0 20040319 20071231 722055 12861 OCALA INTERNATIONAL AIRPORT-JIM TAYLOR FIELD US FL KOCF 29.166999999999998 -82.23299999999999 26.5 20060101 20170924 722055 99999 OCALA INTL J TAYLOR US FL KOCF 29.166999999999998 -82.21700000000001 27.0 19440107 20071231 722056 12834 DAYTONA BEACH INTL US FL KDAB 29.183000000000003 -81.048 12.5 19730101 20100801 722056 99999 DAYTONA BEACH INTL US FL 29.166999999999998 -81.05 11.0 20100801 20100818 722057 12854 ORLANDO SANFORD AIRPORT US FL KSFB 28.78 -81.244 16.8 19730101 20170924 722057 99999 ORLANDO SANFORD US FL KSFB 28.767 -81.233 17.0 20000101 20031231 722058 99999 PONCE DE LEON INLET US FL 29.07 -80.92 3.0 19750911 19830324 722059 4866 BURLINGTON MUNICIPAL ARPT US WI KBUU 42.69 -88.304 237.4 20060101 20170924 722059 99999 BURLINGTON MUNI US WI KBUU 42.683 -88.3 237.0 19450801 20071231 722060 13889 JACKSONVILLE INTERNATIONAL AIRPORT US FL KJAX 30.495 -81.694 7.9 19480101 20170924 722061 3038 COPPER MOUNTAIN US CO KCCU 39.467 -106.15 3680.2 20060101 20170924 722061 99999 COPPER MOUNTAIN RE US CO KCCU 39.467 -106.15 3680.0 20040713 20071231 722062 63842 DOUGLAS MUNICIPAL AIRPORT US GA KDQH 31.476999999999997 -82.861 78.3 20060101 20170924 722062 99999 DOUGLAS MUNI US GA KDQH 31.478 -82.86 78.0 20040510 20071231 722064 99999 PORT RICHEY (ASOS) US FL 28.35 -82.617 12.0 19961220 19990111 722065 93837 JACKSONVILLE NAS US FL KNIP 30.233 -81.667 6.1 19730101 20170924 722066 3853 MAYPORT NAF US FL KNRB 30.4 -81.417 4.9 19730101 20170924 722067 63823 CECIL FIELD AIRPORT US FL KVQQ 30.219 -81.876 24.7 20060101 20170924 722067 93832 CECIL FLD US FL KNZC 30.217 -81.883 24.4 19730101 19991231 722067 99999 CECIL FLD US FL KVQQ 30.219 -81.877 25.0 20011113 20071231 722068 53860 JACKSONVILLE/CRAIG US FL KCRG 30.336 -81.515 12.5 20040101 20100801 722068 99999 JACKSONVILLE/CRAIG US FL 30.333000000000002 -81.517 12.0 19740822 20100818 722069 53853 DESTIN-FT.WALTON BEACH APT US FL KDTS 30.4 -86.47200000000001 6.7 20060101 20170924 722069 99999 DESTIN FT. WALTON US FL KDTS 30.4 -86.471 7.0 19970902 20071231 722070 3822 SAVANNAH/HILTON HEAD INTL AIRPORT US GA KSAV 32.131 -81.202 14.0 19480101 20170924 722071 53935 CHICKASHA MUNICIPAL ARPT US OK KCHK 35.096 -97.96600000000001 350.5 20060101 20170924 722071 99999 CHICKASHA MUNI US OK KCHK 35.1 -97.96700000000001 351.0 20041228 20071231 722072 3894 CLARKSVILLE US TN KCKV 36.624 -87.419 167.6 20060101 20100801 722072 99999 CLARKSVILLE US TN 36.617 -87.417 165.0 20040608 20100817 722073 3727 SAMPSON COUNTY AIRPORT US NC KCTZ 34.976 -78.36399999999999 45.1 20060101 20170924 722073 99999 SAMPSON CO US NC KCTZ 34.983000000000004 -78.367 45.0 20040713 20071231 722074 63840 CARMI MINICIPAL AIRPORT US IL KCUL 38.089 -88.12299999999999 118.3 20060101 20170924 722074 99999 CARMI MUNI US IL KCUL 38.083 -88.117 118.0 20040713 20071231 722075 4871 DE KALB TAYLOR MUNI ARPT US IL KDKB 41.931999999999995 -88.708 278.9 20060101 20170924 722075 99999 DE KALB TAYLOR MUNI US IL KDKB 41.93 -88.71 279.0 19730101 20071231 722076 94891 VERMILION COUNTY AIRPORT US IL KDNV 40.2 -87.6 202.4 20060101 20170924 722076 99999 VERMILION CO US IL KDNV 40.199 -87.596 212.0 19730101 20071231 722077 99999 TYBEE COAST GUARD STATION US GA 32.02 -80.85 2.0 19750911 19871030 722078 53938 HALLIBURTON FIELD AIRPORT US OK KDUC 34.471 -97.95100000000001 339.2 20060101 20170924 722078 99999 HALLIBURTON FLD US OK KDUC 34.471 -97.96 339.0 20040713 20071231 722079 53888 DAVIDSON COUNTY AIRPORT US NC KEXX 35.781 -80.304 223.4 20060101 20170924 722079 99999 DAVIDSON CO US NC KEXX 35.783 -80.3 223.0 19920226 20071231 722080 13880 CHARLESTON AFB/INTERNATIONAL AIRPORT US SC KCHS 32.899 -80.041 12.2 19450101 20170924 722081 13730 FREDERICK MUNICIPAL ARPT US MD KFDK 39.417 -77.383 92.4 20060101 20170925 722081 99999 FREDERICK AIRPORT US MD KFDK 39.417 -77.367 92.0 20040713 20071231 722082 4876 ALBERTUS AIRPORT US IL KFEP 42.246 -89.58200000000001 261.8 20060101 20170924 722082 99999 ALBERTUS US IL KFEP 42.246 -89.58200000000001 262.0 20040713 20071231 722083 99999 CHARLESTON AFB US SC 32.9 -80.05 14.0 19951004 19951005 722085 93831 BEAUFORT MCAS US SC KNBC 32.483000000000004 -80.717 11.3 19450401 20170924 722086 13758 CHARLESTON NAS US SC KNAO 32.85 -79.95 1.0 19730201 19800730 722086 99999 CHARLESTON NS US SC KNAO 32.86 -79.95 1.0 20000129 20020625 722088 99999 FOLLY BEACH LONG RANGE NAVIGATIO US 32.68 -79.88 3.0 19750916 19840916 722089 94959 GALESBURG MUNICIPAL ARPT US IL KGBG 40.933 -90.43299999999999 232.9 20060101 20170924 722089 99999 GALESBURG MUNI US IL KGBG 40.933 -90.43299999999999 233.0 20040713 20071231 722090 3875 WRIGHT AAF AIRPORT US GA KLHW 31.883000000000003 -81.567 13.7 20060103 20170924 722090 99999 FT STEWART/WRIGHT US GA KLHW 31.883000000000003 -81.567 14.0 19670201 20071231 722091 53940 CLAREMORE REGIONAL AIRPORT US OK KGCM 36.294000000000004 -95.479 221.0 20060101 20170924 722091 99999 CLAREMORE RGNL US OK KGCM 36.3 -95.48299999999999 223.0 20040713 20071231 722092 53941 GROVE MUNICIPAL AIRPORT US OK KGMJ 36.605 -94.738 253.9 20060101 20170924 722092 99999 GROVE MUNI US OK KGMJ 36.6 -94.73299999999999 253.0 20040713 20071231 722093 4878 GRAYLING ARMY AIRFIELD US MI KGOV 44.68 -84.729 350.2 20060101 20170925 722093 99999 GRAYLING AAF US MI KGOV 44.68 -84.729 353.0 19861101 20071231 722094 53984 GRAND PRAIRIE MUNICIPAL AIRPORT US TX KGPM 32.699 -97.04700000000001 179.5 20060101 20170924 722094 99999 GRAND PRAIRIE MUNI US TX KGPM 32.7 -97.05 180.0 19850130 20071231 722095 3030 GUYMON MUNICIPAL AIRPORT US OK KGUY 36.681999999999995 -101.505 951.9 20060101 20170924 722095 99999 GUYMON MUNI US OK KGUY 36.685 -101.5 952.0 20040319 20071231 722096 53127 HENDERSON EXECUTIVE ARPT US NV KHND 35.976 -115.133 749.2 20060101 20170924 722096 99999 HENDERSON EXECUTIVE US NV KHND 35.967 -115.134 760.0 20040713 20071231 722097 4936 HARLAN MUNICIPAL AIRPORT US IA KHNR 41.583999999999996 -95.339 375.2 20060101 20170924 722097 99999 HARLAN MUNI US IA KHNR 41.583 -95.333 375.0 20040713 20071231 722098 64761 EAST HAMPTON AIRPORT US NY KHTO 40.96 -72.252 17.1 20060101 20170924 722098 99999 EAST HAMPTON US NY KHTO 40.967 -72.25 17.0 20040713 20071231 722099 53936 CHANDLER MUNICIPAL AIRPORT US OK KCQB 35.724000000000004 -96.82 299.9 20060101 20170924 722099 99999 CHANDLER RGNL US OK KCQB 35.717 -96.81700000000001 300.0 20040713 20071231 722100 99999 TAMPA BAY AREA FL. US FL KTBW 27.7 -82.4 14.8 19760220 20060401 722101 3039 WOLF CREEK PASS AWOS-3 AIRPORT US CO KCPW 37.45 -106.8 3593.9 20060101 20170924 722101 99999 PAGOSA SPRINGS WOL US CO KCPW 37.45 -106.8 3584.0 19730101 20071231 722102 99999 CLEBURNE CLEBURNE MUNICIPAL AIR US 32.35 -97.43 260.0 20040525 20040617 722103 12895 ST LUCIE COUNTY INTL ARPT US FL KFPR 27.498 -80.377 7.3 20060101 20170924 722103 99999 ST LUCIE CO INTL US FL KFPR 27.483 -80.367 7.0 19880114 20071231 722104 92806 ALBERT WHITTED AIRPORT US FL KSPG 27.765 -82.62799999999999 2.4 19860101 20170924 722104 99999 ALBERT WHITTED US FL KSPG 27.767 -82.633 2.0 20000101 20031231 722105 99999 FT. MYERS BEACH COAST GUARD STAT US 26.45 -81.95 1.0 19750916 19840209 722106 12835 PAGE FIELD AIRPORT US FL KFMY 26.585 -81.861 4.6 19430101 20170924 722107 3056 GAINES COUNTY AIRPORT US TX KGNC 32.675 -102.654 1010.4 20060101 20170924 722107 99999 GAINES CO US TX KGNC 32.674 -102.65299999999999 1010.0 20040517 20071231 722108 12894 SW FLORIDA INTN AIRPORT US FL KRSW 26.535999999999998 -81.755 9.5 20060101 20170924 722108 99999 SOUTHWEST FLORIDA I US FL KRSW 26.533 -81.75 9.0 19830723 20071231 722109 63848 CANTON/CHEROKEE ARPT US GA K47A 34.311 -84.42399999999999 371.6 20060101 20170924 722109 99999 CHEROKEE COUNTY AIRPORT US GA KCNI 34.3 -84.417 372.0 20040525 20071231 722110 12842 TAMPA INTERNATIONAL AIRPORT US FL KTPA 27.962 -82.54 5.8 19400801 20170924 722111 63847 ISBELL FLD US AL K4A9 34.474000000000004 -85.721 267.3 20060101 20170924 722111 99999 ISBELL FLD US AL 34.474000000000004 -85.721 267.3 20040525 20071231 722112 53982 FOX STEPHENS FIELD - GILMER MINICIPAL AIRPORT US TX KJXI 32.699 -94.949 126.5 20060101 20170924 722112 99999 FOX STEPHENS FLD US TX KJXI 32.698 -94.949 126.0 20040525 20071231 722113 53979 GIDDINGS-LEE COUNTY AIRPORT US TX KGYB 30.169 -96.98 147.8 20060101 20170924 722113 99999 GIDDINGS LEE CO US TX KGYB 30.166999999999998 -96.98299999999999 148.0 20040525 20071231 722114 54901 BUFFALO MUNICIPAL AIRPORT US MN KCFE 45.159 -93.84299999999999 294.7 20060101 20170924 722114 99999 BUFFALO MUNI ARPT US MN KCFE 45.167 -93.833 295.0 20040525 20071231 722115 12871 SARASOTA/BRADENTON INTL AP US FL KSRQ 27.401 -82.559 8.5 20060101 20170924 722115 99999 SARASOTA BRADENTON US FL KSRQ 27.383000000000003 -82.55 9.0 19730101 20071231 722116 12873 ST PETE-CLWTR INTL AIRPORT US FL KPIE 27.910999999999998 -82.68799999999999 3.4 20060101 20170924 722116 99999 ST PETERSBURG CLEAR US FL KPIE 27.9 -82.68299999999999 3.0 19730101 20071231 722117 99999 EGMONT KEY COAST GUARD STATION US FL 27.6 -82.77 1.0 19750918 19840108 722118 482 VENICE MUNICIPAL AIRPORT US FL KVNC 27.072 -82.44 5.8 20170519 20170924 722118 99999 VENICE MUNI US FL KVNC 27.072 -82.44 5.5 19440127 20170922 722119 12883 LAKELAND LINDER REGIONAL AIRPORT US FL KLAL 28.0 -82.05 43.3 20060101 20170924 722119 99999 LAKELAND LINDER RGN US FL KLAL 27.983 -82.01700000000001 43.0 19420801 20071231 722120 12833 CROSS CITY AIRPORT US FL KCTY 29.633000000000003 -83.105 11.6 19431219 20170924 722121 99999 CURRITUCK CURRITUCK COUNTY AIRP US 36.4 -76.02 5.0 20040525 20040805 722122 3050 WINSTON FIELD AIRPORT US TX KSNK 32.693000000000005 -100.95100000000001 740.7 20060101 20170924 722122 99999 WINSTON FLD US TX KSNK 32.7 -100.95 741.0 20040525 20071231 722123 12809 BARTOW MUNICIPAL AIRPORT US FL KBOW 27.95 -81.783 38.1 20060101 20170924 722123 99999 BARTOW MUNI US FL KBOW 27.95 -81.783 38.0 19900208 20071231 722124 4998 HEBRON MUNICIPAL AIRPORT US NE KHJH 40.149 -97.587 449.0 20060101 20170924 722124 99999 HEBRON MUNI US NE KHJH 40.15 -97.583 447.0 20040525 20071231 722125 4829 SAGNAW CO H.W. BROWNE ARPT US MI KHYX 43.433 -83.867 182.9 20060101 20170924 722125 99999 SAGINAW CO H W BROWN US MI KHYX 43.433 -83.867 183.0 20040525 20071231 722126 4879 LANSING MUNICIPAL AP US IL KIGQ 41.54 -87.53200000000001 187.8 20060101 20170924 722126 99999 LANSING MUNI US IL KIGQ 41.533 -87.53299999999999 189.0 20040525 20071231 722127 4880 GREATER KANKAKEE AIRPORT US IL KIKK 41.121 -87.846 191.7 20060101 20170924 722127 99999 GREATER KANKAKEE US IL KIKK 41.067 -87.833 192.0 20040525 20071231 722128 53899 LICONTN-LINCOLN CO RGNL AP US NC KIPJ 35.483000000000004 -81.161 266.7 20060101 20170924 722128 99999 LINCOLNTON LINCOLN US NC KIPJ 35.483000000000004 -81.167 267.0 20040525 20071231 722129 4939 MOORHEAD MUNICIPAL AIRPORT US MN KJKJ 46.839 -96.663 279.5 20060101 20170924 722129 99999 MOORHEAD MUNI US MN KJKJ 46.839 -96.664 280.0 20040525 20071231 722130 13861 WAYCROSS-WARE CO. AIRPORT US GA KAYS 31.25 -82.4 43.3 19421201 20170924 722130 99999 WAYCROSS/WARE CO. US GA KAYS 31.25 -82.4 46.0 20001004 20031231 722131 3713 JOHNSTON COUNTY AIRPORT US NC KJNX 35.541 -78.39 50.3 20060101 20170924 722131 99999 JOHNSTON CO US NC KJNX 35.541 -78.39 50.0 20040525 20071231 722132 63801 CONCORD REGIONAL AIRPORT US NC KJQF 35.382 -80.491 214.9 20060101 20170924 722132 99999 CONCORD RGNL US NC KJQF 35.383 -80.7 215.0 20040525 20071231 722133 53946 SALLISAW MUNICIPAL AIRPORT US OK KJSV 35.438 -94.803 160.9 20060101 20170924 722133 99999 SALLISAW MUNI US OK KJSV 35.438 -94.803 161.0 20040525 20071231 722134 63822 VIDALIA REGIONAL AIRPORT US GA KVDI 32.193000000000005 -82.37200000000001 83.5 20060101 20170924 722134 99999 VIDALIA RGNL US GA KVDI 32.2 -82.367 84.0 20010705 20071231 722135 13870 ALMA/BACON CO. US GA KAMG 31.535999999999998 -82.507 62.8 19730101 20100801 722135 99999 ALMA/BACON CO. US GA 31.533 -82.5 61.0 20100801 20100817 722136 53883 BRUNSWICK GOLDEN ISLES APT US GA KBQK 31.259 -81.46600000000001 7.9 20060101 20170924 722136 99999 BRUNSWICK GOLDEN IS US GA KBQK 31.25 -81.467 8.0 19730101 20071231 722137 13878 MALCOLM MC KINNON AIRPORT US GA KSSI 31.151999999999997 -81.391 4.9 19730101 20170924 722138 13835 BAY SAINT LOUIS US MS KHSA 30.366999999999997 -89.45 7.0 19420501 19890214 722138 63852 STENNIS INTERNATIONAL AIRPORT US MS KHSA 30.368000000000002 -89.455 7.0 20071030 20170924 722138 99999 BAY SAINT LOUIS US MS KHSA 30.366999999999997 -89.45 7.0 20040517 20071230 722139 99999 SAINT SIMON ISLAND COAST GUARD S US 31.13 -81.37 1.0 19750911 19830111 722140 93805 TALLAHASSEE REGIONAL AIRPORT US FL KTLH 30.393 -84.353 16.8 19420501 20170924 722141 3731 FRANKLIN COUNTY AIRPORT US NC KLHZ 36.023 -78.33 112.5 20060101 20170924 722141 99999 FRANKLIN CO US NC KLHZ 36.023 -78.33 112.0 20040525 20071231 722142 4114 CHALLIS AIRPORT US ID KLLJ 44.523 -114.215 1534.1 20160101 20170923 722142 99999 CHALLIS US ID KLLJ 44.516999999999996 -114.21799999999999 1546.0 20040525 20170923 722143 53975 LANCASTER AIRPORT US TX KLNC 32.579 -96.719 152.7 20060101 20170924 722143 99999 LANCASTER US TX KLNC 32.583 -96.71700000000001 153.0 20040525 20071231 722144 4945 MAPLE LAKE MUNICIPAL ARPT US MN KMGG 45.236000000000004 -93.986 313.3 20060101 20170924 722144 99999 MAPLE LAKE MUNICIPAL US MN KMGG 45.24 -93.99 313.0 20040525 20071231 722145 4884 HARBOR SPRINGS AIRPORT US MI KMGN 45.426 -84.913 206.4 20060101 20170924 722145 99999 HARBOR SPRINGS US MI KMGN 45.426 -84.913 209.0 19760801 20071231 722146 12816 GAINESVILLE RGNL US FL KGNV 29.691999999999997 -82.27600000000001 50.3 19431101 20100801 722146 99999 GAINESVILLE RGNL US FL 29.683000000000003 -82.26700000000001 48.0 20100801 20100818 722147 53817 MOULTRIE MUNICIPAL AIRPORT US GA KMGR 31.083000000000002 -83.8 86.3 20060101 20170924 722147 99999 MOULTRIE MUNI US GA KMGR 31.085 -83.803 90.0 20040525 20071231 722148 63824 STANLEY COUNTY AIRPORT US NC KVUJ 35.417 -80.15100000000001 185.6 20060101 20170924 722148 99999 STANLY CO US NC KVUJ 35.417 -80.15 186.0 20040525 20071231 722149 4899 ILLINOIS VALLEY RGNL-WALTER DUNCAN FLD ARPT US IL KVYS 41.352 -89.15299999999999 199.3 20060101 20170924 722149 99999 ILLINOIS VALLEY RGNL US IL KVYS 41.35 -89.15 199.0 20040525 20071231 722150 99999 PEACHTREE CITY US GA 33.356 -84.56700000000001 244.9 19990428 20060212 722151 14794 WESTERLY STATE AIRPORT US RI KWST 41.35 -71.79899999999999 24.7 20060101 20170924 722151 99999 WESTERLY US RI KWST 41.35 -71.803 24.0 20040525 20071231 722152 53957 WEST WOODWARD AIRPORT US OK KWWR 36.437 -99.521 666.9 20060101 20170924 722153 99999 GREEN CANYON 184 US LA 27.767 -91.51700000000001 0.0 20040525 20060911 722154 53885 DALTON MUNICIPAL AIRPORT US GA KDNN 34.722 -84.869 216.4 20060101 20170924 722154 99999 DALTON US GA KDNN 34.722 -84.869 216.0 19990114 20071231 722155 3040 MONUMENT HILL AWOS-3 ARPT US CO KMNH 39.217 -104.633 2151.9 20060101 20170924 722155 99999 ELBERT MTN MONUMENT US CO KMNH 39.217 -104.633 2125.0 20040525 20071231 722156 53873 CARTERSVILLE AIRPORT US GA KVPC 34.123000000000005 -84.84899999999999 232.6 20060101 20170924 722156 99999 CARTERSVILLE US GA KVPC 34.117 -84.85 231.0 20010705 20071231 722157 4949 MACOMB MUNICIPAL AIRPORT US IL KMQB 40.52 -90.652 215.5 20060101 20170924 722157 99999 MACOMB MUNI US IL KMQB 40.516999999999996 -90.65 215.0 20040525 20071231 722158 99999 ANNAPOLIS UNITED STATES NAVAL ACADEMY US MD KNAK 38.99 -76.48 2.0 20040525 20170923 722159 12980 MID VALLEY AIRPORT US TX KT65 26.178 -97.973 21.3 20060101 20170924 722159 99999 MID VALLEY US TX KT65 26.183000000000003 -97.96700000000001 21.0 20040525 20071231 722160 13869 SW GEORGIA REGIONAL ARPT US GA KABY 31.535999999999998 -84.194 57.9 19730101 20170924 722160 99999 ALBANY MUNICIPAL US GA KABY 31.533 -84.18299999999999 59.0 20000101 20031231 722162 26554 MERRILL PASS WEST US AK PAER 61.266999999999996 -153.8 356.6 20060101 20140616 722162 99999 MERRILL PASS WEST US AK 61.25 -153.817 358.0 20040525 20071208 722163 99999 PROSPECT CREEK US AK 66.817 -150.65 335.0 20040601 20110607 722164 53949 OKMULGEE MUNICIPAL AIRPORT US OK KOKM 35.668 -95.949 219.5 20060101 20170924 722164 99999 OKMULGEE RGNL US OK KOKM 35.667 -95.95 219.0 20040525 20071231 722165 13815 OLIVE BRANCH US MS KOLV 34.983000000000004 -89.78299999999999 123.0 19411013 19740415 722165 63808 OLIVE BRANCH AIRPORT US MS KOLV 34.979 -89.787 122.5 20060101 20170924 722165 99999 OLIVE BRANCH US MS KOLV 34.983000000000004 -89.78299999999999 123.0 20040517 20071231 722166 93845 VALDOSTA REGIONAL AIRPORT US GA KVLD 30.783 -83.277 60.4 19480101 20170924 722166 99999 VALDOSTA RGNL US GA KVLD 30.783 -83.26700000000001 62.0 20000101 20031231 722167 3718 ORANGE COUNTY AIRPORT US VA KOMH 38.247 -78.046 143.0 20060101 20170924 722167 99999 ORANGE CO US VA KOMH 38.25 -78.05 142.0 19420401 20071231 722168 4960 OLIVIA REGIONAL AIRPORT US MN KOVL 44.778999999999996 -95.03299999999999 328.0 20060101 20170924 722168 99999 OLIVIA RGNL US MN KOVL 44.783 -95.03299999999999 328.0 20040525 20071231 722169 3058 PECOS MUNICIPAL AIRPORT US TX KPEQ 31.383000000000003 -103.51100000000001 796.4 20060101 20170924 722169 99999 PECOS MUNICIPAL AIR US TX KPEQ 31.383000000000003 -103.5 796.0 20040525 20071231 722170 3813 MIDDLE GEORGIA REGIONAL AIRPORT US GA KMCN 32.685 -83.65299999999999 104.6 19411020 20170925 722171 4889 PONTIAC MUNICIPAL AIRPORT US IL KPNT 40.924 -88.625 200.9 20060101 20170924 722171 99999 PONTIAC MUNI US IL KPNT 40.917 -88.617 203.0 20040525 20071231 722172 63810 EDGAR COUNTY AIRPORT US IL KPRG 39.7 -87.669 199.3 20060101 20170924 722172 99999 EDGAR CO US IL KPRG 39.7 -87.667 199.0 20040525 20071231 722173 53951 PAULS VALLEY MUNI AIRPORT US OK KPVJ 34.711 -97.223 295.1 20060101 20170924 722173 99999 PAULS VALLEY MUNI US OK KPVJ 34.717 -97.21700000000001 295.0 20040525 20071231 722174 23097 HALE COUNTY AIRPORT US TX KPVW 34.167 -101.71700000000001 1028.4 20060101 20170924 722174 99999 HALE CO US TX KPVW 34.167 -101.71700000000001 1028.0 20040525 20071231 722175 13860 ROBINS AFB AIRPORT US GA KWRB 32.633 -83.6 89.6 19420807 20170924 722175 99999 ROBINS AFB US GA KWRB 32.633 -83.6 90.0 20000101 20071231 722176 53884 NEWNAN COWETA COUNTY ARPT US GA KCCO 33.312 -84.77 295.7 20060101 20170924 722176 99999 NEWNAN COWETA CO US GA KCCO 33.317 -84.76700000000001 296.0 19990114 20071231 722177 63811 ANDREWS-MURPHY AIRPORT US NC KRHP 35.195 -83.865 516.9 20060101 20170925 722177 99999 ANDREWS MURPHY US NC KRHP 35.2 -83.867 517.0 20040525 20071231 722178 53953 ROBERT S KERR AIRPORT US OK KRKR 35.021 -94.62100000000001 137.5 20060101 20170924 722178 99999 ROBERT S KERR US OK KRKR 35.016999999999996 -94.617 137.0 20040525 20071231 722179 4968 NEW RICHMOND MUNICIPAL APT US WI KRNH 45.15 -92.53299999999999 303.6 20060101 20170924 722179 99999 NEW RICHMOND RGNL US WI KRNH 45.15 -92.53299999999999 304.0 20040525 20071231 722180 3820 AUGUSTA REGIONAL AT BUSH FIELD AP US GA KAGS 33.364000000000004 -81.963 40.2 19480101 20170925 722181 13837 DANIEL FIELD AIRPORT US GA KDNL 33.467 -82.039 128.9 20060101 20170924 722181 99999 DANIEL FIELD US GA KDNL 33.467 -82.039 129.0 19970123 20071231 722182 4890 ROCHELLE MUNI ARPT-KORITZ FIELD AIRPORT US IL KRPJ 41.893 -89.07799999999999 238.1 20060101 20170924 722182 99999 ROCHELLE MUNI KORIT US IL KRPJ 41.9 -89.083 238.0 20040525 20071231 722183 4972 BURNETT COUNTY AIRPORT US WI KRZN 45.823 -92.37299999999999 301.5 20060101 20170924 722183 99999 BURNETT CO US WI KRZN 45.817 -92.367 301.0 20040525 20071231 722184 99999 PLAINS / PETERSON FIELD US GA 32.08 -84.37 160.0 19771221 19810122 722185 53838 LEE GILMER MEMORIAL ARPT US GA KGVL 34.272 -83.83 388.6 20060101 20170924 722185 99999 LEE GILMER MEM US GA KGVL 34.266999999999996 -83.833 389.0 19970718 20071231 722186 4892 BEAVER ISLAND AIRPORT US MI KSJX 45.68899999999999 -85.566 203.0 20060101 20170924 722186 99999 BEAVER ISLAND US MI KSJX 45.7 -85.56700000000001 204.0 20040525 20071231 722187 93911 SHAWNEE MUNICIPAL AIRPORT US OK KSNL 35.357 -96.943 327.1 20060101 20170924 722187 99999 SHAWNEE RGNL US OK KSNL 35.35 -96.95 327.0 20040525 20071231 722188 53985 SEARCY MUNICIPAL AIRPORT US AR KSRC 35.211999999999996 -91.73700000000001 80.5 20060101 20170924 722188 99999 SEARCY MUNI US AR KSRC 35.211 -91.738 80.0 20040525 20071231 722189 92815 WITHAM FIELD AIRPORT US FL KSUA 27.182 -80.221 5.5 20060101 20170924 722189 99999 WITHAM FLD US FL KSUA 27.183000000000003 -80.217 5.0 20040525 20071231 722190 13874 HARTSFIELD-JACKSON ATLANTA INTL AP US GA KATL 33.63 -84.44200000000001 307.9 19730101 20170924 722191 3721 BRUNSWICK COUNTY AIRPORT US NC KSUT 33.929 -78.075 7.6 20060101 20170924 722191 99999 BRUNSWICK CO US NC KSUT 33.933 -78.067 8.0 20040525 20071231 722192 23033 AVENGER FIELD AIRPORT US TX KSWW 32.473 -100.46600000000001 725.4 20060101 20170924 722192 99999 AVENGER FLD US TX KSWW 32.467 -100.46700000000001 725.0 20040525 20071231 722193 3722 PERSON COUNTY AIRPORT US NC KTDF 36.285 -78.984 185.6 20060101 20170924 722193 99999 PERSON CO US NC KTDF 36.283 -78.983 186.0 20040525 20071231 722194 4896 RANTOUL NATL AVN CNTR-F ELLIOTT FIELD AIRPORT US IL KTIP 40.293 -88.14200000000001 224.6 20060101 20170924 722194 99999 RANTOUL NATL AVIATIO US IL KTIP 40.3 -88.15 225.0 20040525 20071231 722195 3888 FULTON CO-BROWN FLD ARPT US GA KFTY 33.779 -84.521 256.0 20060101 20170924 722195 99999 FULTON CO ARPT BROW US GA KFTY 33.766999999999996 -84.51700000000001 256.0 19730101 20071231 722196 53863 DEKALB-PEACHTREE AIRPORT US GA KPDK 33.875 -84.302 305.4 20060101 20170924 722196 99999 DEKALB PEACHTREE US GA KPDK 33.867 -84.3 306.0 19810801 20071231 722197 53819 PCHTRE CTY-FALCON FLD ARPT US GA KFFC 33.355 -84.56700000000001 243.2 20060101 20170924 722197 99999 PEACHTREE CITY FALCO US GA KFFC 33.357 -84.572 246.0 19960201 20071231 722198 63819 BOONE US NC KTNB 36.2 -81.65 910.4 20020902 20170925 722198 99999 BOONE WATAUGA HOSPTL US NC KTNB 36.2 -81.65 959.0 20040525 20071231 722199 53956 TAHLEQUAH MUNICIPAL ARPT US OK KTQH 35.929 -95.00399999999999 266.1 20060101 20170924 722199 99999 TAHLEQUAH MUNI US OK KTQH 35.933 -95.0 266.0 20040525 20071231 722200 12832 APALACHICOLA MUNI AIRPORT US FL KAAF 29.733 -85.03299999999999 5.8 19450101 20170924 722200 99999 APALACHICOLA MUNI US FL KAAF 29.733 -85.03299999999999 6.0 20000101 20031231 722201 3723 SANFORD-LEE COUNTY RGNL ARPT US NC KTTA 35.582 -79.101 75.3 20060101 20170924 722201 99999 SANFORD US NC KTTA 35.584 -79.101 75.0 20040525 20071231 722202 12985 GARNER FIELD AIRPORT US TX KUVA 29.211 -99.744 287.1 20060101 20170924 722202 99999 GARNER FLD US TX KUVA 29.217 -99.75 287.0 20040525 20071231 722203 3041 MONARCH PASS AWOS-3 ARPT US CO KMYP 38.483000000000004 -106.31700000000001 3667.1 20060101 20170924 722203 99999 SALIDA MTN MONARCH P US CO KMYP 38.483000000000004 -106.31700000000001 3667.0 20040525 20071231 722204 4996 TRI-TOWNSHIP AIRPORT US IL KSFY 42.04600000000001 -90.10799999999999 187.8 20060101 20170924 722204 99999 TRI TOWNSHIP US IL KSFY 42.05 -90.1 188.0 20040525 20071231 722205 99999 THEDFORD(NEXRAD) US NE KLNX 41.95 -100.583 905.0 20061120 20061120 722208 4224 ORCAS ISLAND AIRPORT US WA KORS 48.708 -122.911 9.5 20060101 20170924 722208 99999 EASTSOUND ORCAS ISLA US WA KORS 48.717 -122.917 9.0 20040803 20071231 722209 12986 CALHOUN COUNTY AIRPORT US TX KPKV 28.654 -96.681 9.1 20060101 20170924 722209 99999 CALHOUN CO US TX KPKV 28.65 -96.68299999999999 9.0 20040803 20071231 722210 13858 EGLIN AFB AIRPORT US FL KVPS 30.483 -86.51700000000001 26.5 19380910 20170924 722210 99999 VALPARAISO/EGLIN AF US FL KVPS 30.483 -86.51700000000001 29.0 19720101 20071231 722211 94087 THOMAS COUNTY AIRPORT US NE KTIF 41.964 -100.569 888.2 20060101 20170924 722211 99999 THOMAS COUNTY US NE KTIF 41.967 -100.56700000000001 892.0 20040904 20071231 722212 92814 ST AUGUSTINE AIRPORT US FL KSGJ 29.959 -81.34 3.1 20060101 20170924 722212 99999 ST AUGUSTINE US FL KSGJ 29.967 -81.333 3.0 19970123 20071231 722213 12819 LEESBURG REGIONAL AIRPORT US FL KLEE 28.820999999999998 -81.81 23.5 20060101 20170924 722213 99999 LEESBURG RGNL US FL KLEE 28.823 -81.809 23.0 19970123 20071231 722214 3070 MOORE COUNTY AIRPORT US TX KDUX 35.858000000000004 -102.01299999999999 1129.3 20060101 20170924 722214 99999 MOORE CO US TX KDUX 35.858000000000004 -102.01299999999999 1129.0 20040824 20071231 722215 13884 BOB SIKES AIRPORT US FL KCEW 30.78 -86.523 57.9 19730101 20170924 722216 99999 NORTH AF AUX US SC KXNO 33.615 -81.084 97.8 20071024 20170923 722217 63881 W H `BUD` BARRON AIRPORT US GA KDBN 32.564 -82.985 94.2 20060101 20170925 722217 99999 W H BUD BARRON US GA KDBN 32.564 -82.985 94.0 20050628 20071231 722218 356 CAMBRIDGE DORCHESTER AIRPORT US MD KCGE 38.533 -76.033 6.1 20130115 20161010 722218 99999 CAMBRIDGE DORCHESTER US MD KCGE 38.539 -76.03 5.8 20061003 20170923 722219 99999 SHELL AHP US AL KSXS 31.363000000000003 -85.84899999999999 121.9 20131211 20170923 722220 13899 PENSACOLA US FL KPNS 30.478 -87.18700000000001 36.0 19730101 19850531 722220 99999 PENSACOLA FL US 30.483 -87.18299999999999 38.0 20010908 20170923 722221 444 DIXON AIRPORT US WY KDWX 41.037 -107.493 1996.1 20150529 20170922 722221 13899 PENSACOLA REGIONAL AP US FL KPNS 30.478 -87.18700000000001 36.0 19850531 19900228 722221 99999 DIXON ARPT US WY KDWX 41.038000000000004 -107.49700000000001 1987.3 20100527 20170923 722223 13899 PENSACOLA REGIONAL AIRPORT US FL KPNS 30.478 -87.18700000000001 34.1 19900228 20170924 722224 53862 PERRY FOLEY US FL K40J 30.072 -83.574 13.7 20060101 20170924 722224 99999 PERRY FOLEY US FL 30.069000000000003 -83.581 13.7 19980514 20071231 722225 3855 PENSACOLA NAS US FL KNPA 30.35 -87.31700000000001 8.5 19450201 20170924 722226 93841 WHITING FIELD NAVAL AIR STATION NORTH US FL KNSE 30.717 -87.01700000000001 60.7 19730101 20170924 722227 3815 PENSACOLA SAUFLEY NAS US FL 30.483 -87.35 28.0 19730102 19751231 722228 99999 SANTA ROSA COAST GUARD STATION US FL 30.32 -87.25 2.0 19750916 19790818 722230 13894 MOBILE REGIONAL AIRPORT US AL KMOB 30.688000000000002 -88.24600000000001 65.5 19730101 20170924 722231 357 HAMILTON MUNICIPAL AIRPORT US TX KMNZ 31.666 -98.149 396.2 20170519 20170910 722231 99999 HAMILTON MUNI US TX KMNZ 31.666 -98.149 395.9 20080227 20170923 722235 13838 MOBILE DOWNTOWN AIRPORT US AL KBFM 30.625999999999998 -88.068 7.9 19420701 20170924 722235 99999 MOBILE DOWNTOWN US AL KBFM 30.616999999999997 -88.06700000000001 8.0 20000101 20031231 722236 99999 MOBILE POINT COAST GUARD STATION US AL 30.23 -88.03 1.0 19750916 19771211 722237 99999 PASCAGOULA COAST GUARD STATION US MS 30.37 -88.57 8.0 19750916 19790724 722238 63873 HANCHEY ARMY HELIPORT (FORT RUCKER) US AL KHEY 31.35 -85.667 96.6 20060901 20170924 722238 99999 HANCHEY AHP US AL KHEY 31.35 -85.65 97.0 19791207 20071231 722239 53861 LOWE ARMY HELIPORT (FORT RUCKER) US AL KLOR 31.355999999999998 -85.751 74.4 20080717 20170924 722239 99999 LOWE AHP US AL KLOR 31.35 -85.75 74.0 19890714 19980401 722240 99999 CAPE SAN BLAS FL. US FL 29.683000000000003 -85.367 2.0 19780823 20040527 722241 54925 WAYNE MUNICIPAL AIRPORT US NE KLCG 42.242 -96.98299999999999 434.0 20060101 20170924 722241 99999 WAYNE MUNI US NE KLCG 42.25 -96.98299999999999 436.0 20050722 20071231 722242 99999 GALLIANO HELIPORT US LA K2GL 29.4 -90.3 2.0 20061024 20080626 722243 3738 RICHMOND COUNTY AIRPORT US NC KRCZ 34.891 -79.759 109.1 20061024 20170924 722244 358 COLLEGE PARK AP US MD KCGS 38.981 -76.922 15.2 20080101 20170924 722244 99999 COLLEGE PARK US MD KCGS 38.981 -76.922 14.6 19761215 20111231 722245 3882 PANAMA CITY-BAY CO. INT AP US FL KPFN 30.212 -85.68299999999999 6.4 20060101 20100603 722245 99999 PANAMA CITY BAY CO US FL KPFN 30.2 -85.68299999999999 6.0 19730101 20071231 722246 3844 EGLIN AF AUX NR 3 D US FL KEGI 30.65 -86.51700000000001 58.0 19490908 20170923 722246 99999 DUKE FLD US FL KEGI 30.65 -86.523 59.4 20000103 20071231 722247 54785 SOMERSET AIRPORT US NJ KSMQ 40.624 -74.669 32.0 20060101 20170923 722247 99999 SOMERSET US NJ KSMQ 40.633 -74.667 32.0 20050217 20071227 722248 53995 SOUTHLAND FIELD US LA KL75 30.131 -93.376 3.4 20061024 20170924 722248 99999 SOUTHLAND FLD US LA KUXL 30.131 -93.376 3.4 20070125 20071231 722249 63887 HOOK FIELD MUNICIPAL AIRPORT US OH KMWO 39.531 -84.395 198.1 20061024 20170922 722250 13829 LAWSON AAF AIRPORT US GA KLSF 32.35 -85.0 70.7 19390501 20170925 722250 99999 FORT BENNING US GA KLSF 32.333 -85.0 71.0 20000101 20071231 722251 53958 RUSTON REGIONAL AIRPORT US LA KRSN 32.514 -92.588 94.8 20060425 20170924 722252 54923 MYERS FIELD AIRPORT US MN KCNB 44.729 -96.266 363.6 20061018 20170924 722253 53992 MOREHOUSE MEMORIAL AIRPORT US LA KBQP 32.756 -91.881 50.9 20061018 20170924 722255 93842 COLUMBUS METRO AIRPORT US GA KCSG 32.516 -84.94200000000001 119.5 19480101 20170924 722256 64774 MARSHFIELD MUNICIPAL AIRPORT - GEORGE HARLOW FIELD US MA KGHG 42.098 -70.672 3.4 20061024 20170925 722260 13895 MONTGOMERY RGNL (DANNELLY FD) AP US AL KMGM 32.3 -86.40799999999999 61.6 19730101 20170924 722261 360 OKEECHOBEE COUNTY AIRPORT US FL KOBE 27.267 -80.85 10.1 20150224 20170803 722261 99999 OKEECHOBEE CO US FL KOBE 27.263 -80.85 10.4 20070116 20170923 722265 13821 MAXWELL AFB AIRPORT US AL KMXF 32.383 -86.35 52.1 19351001 20170924 722265 99999 MAXWELL AFB US AL KMXF 32.383 -86.367 52.0 20000102 20071231 722266 13850 CRAIG FLD US AL KSEM 32.35 -86.98299999999999 51.0 19410701 19770831 722266 99999 CRAIG FLD US AL KSEM 32.344 -86.988 50.6 20140109 20170923 722267 3878 TROY MUNICIPAL AIRPORT US AL KTOI 31.861 -86.012 121.0 19730108 20170924 722267 99999 TROY MUNI US AL KTOI 31.866999999999997 -86.01700000000001 121.0 20000103 20031231 722268 13839 DOTHAN REGIONAL AIRPORT US AL KDHN 31.316999999999997 -85.45 114.0 20060101 20170924 722268 93843 DOTHAN RGNL US AL KDHN 31.316999999999997 -85.45 122.0 19411216 19991231 722268 99999 DOTHAN RGNL US AL KDHN 31.316999999999997 -85.45 122.0 20000101 20071231 722269 3850 CAIRNS ARMY AIRFIELD (FORT RUCKER) US AL KOZR 31.267 -85.71700000000001 91.7 19541019 20170924 722269 99999 CAIRNS AAF US AL KOZR 31.267 -85.7 92.0 20000101 20071231 722270 13864 DOBBINS AIR RESERVE BASE AIRPORT US GA KMGE 33.917 -84.51700000000001 325.5 19460901 20170924 722270 99999 MARIETTA/DOBBINS AF US GA KMGE 33.917 -84.51700000000001 326.0 20000101 20071231 722273 99999 ATLANTA (NAVRES) US GA 33.917 -84.51700000000001 326.0 20030712 20030712 722274 54939 CENTERVILLE MUNICIPAL AIRPORT US IA KTVK 40.684 -92.90100000000001 311.8 20170310 20170923 722274 99999 CENTERVILLE MUNI US IA KTVK 40.684 -92.90100000000001 313.0 20090601 20170922 722275 53843 ANDALUSIA OPP US AL K79J 31.309 -86.39399999999999 94.5 20060103 20170924 722275 99999 ANDALUSIA OPP US AL K79J 31.309 -86.39399999999999 94.5 19730101 20071231 722276 53820 MIDDLETON FIELD AIRPORT US AL KGZH 31.416 -87.044 78.6 20060101 20170924 722276 99999 MIDDLETON FLD US AL KGZH 31.416999999999998 -87.05 79.0 19931115 20071231 722279 53852 PRYOR FIELD REGIONAL ARPT US AL KDCU 34.653 -86.945 180.4 20060101 20170924 722279 99999 PRYOR FLD RGNL US AL KDCU 34.653 -86.945 180.0 19990114 20071231 722280 13876 BIRMINGHAM INTERNATIONAL AIRPORT US AL KBHM 33.566 -86.745 187.5 19420801 20170924 722284 3892 ABRN-OPLKA R G PITTS ARPT US AL KAUO 32.616 -85.43299999999999 236.5 20060101 20170903 722284 99999 AUBURN OPELIKA ROBE US AL KAUO 32.616 -85.43299999999999 237.0 19920507 20071231 722285 3896 GADSDEN MUNICIPAL AIRPORT US AL KGAD 33.967 -86.083 173.4 20060101 20170924 722285 99999 GADSDEN MUNI US AL KGAD 33.967 -86.083 173.0 19730101 20071231 722286 93806 TUSCALOOSA MUNICIPAL ARPT US AL KTCL 33.211999999999996 -87.616 45.7 19730101 20170924 722286 99999 TUSCALOOSA RGNL US AL KTCL 33.217 -87.6 52.0 20000101 20031231 722287 13871 ANNISTON METROPOLITAN ARPT US AL KANB 33.586999999999996 -85.85600000000001 181.1 19730101 20170924 722288 99999 AUBURN UNIV. (AMOS) US AL KAUB 32.6 -85.5 198.0 19910822 19960330 722290 3881 NWS METEOROLOGICAL OBSY US AL KCKL 32.9 -87.25 138.1 19760325 20041231 722290 99999 CENTREVILLE US AL KCKL 32.9 -87.25 140.0 20020826 20051007 722291 470 PLATTSMOUTH MUNICIPAL AIRPORT US NE KPMV 40.948 -95.917 367.3 20150529 20170924 722291 99999 PLATTSMOUTH MUNI US NE KPMV 40.95 -95.91799999999999 366.4 20061121 20150602 722293 99999 CAMERON US LA KCVW 29.784000000000002 -93.3 5.0 19810918 20170923 722294 99999 GRAND CHENIER (LITTLE PECAN ISLAND ARPT) US LA K3L4 29.8 -92.804 2.0 19870117 20170923 722295 99999 SOUTH TIMBALIER US LA KS58 28.533 -90.583 1.0 19870117 20110407 722296 99999 SHIP SHOAL 198G US LA 28.5 -91.2 2.0 19870118 19921128 722297 99999 MISSISSIPPI CANYON 778 US LA 28.15 -93.35 43.0 19870228 20130430 722298 99999 VERMILLION AREA US LA KVRX 28.583000000000002 -92.45 1.0 19870118 19880730 722300 53864 SHELBY COUNTY AIRPORT US AL KEET 33.178000000000004 -86.78200000000001 172.2 20020101 20170924 722300 99999 BIRMINGHAM US AL KEET 33.183 -86.78299999999999 175.0 19981223 20011231 722303 99999 HIGH ISLAND US LA 28.13 -94.4 30.0 19870117 19930920 722304 99999 MISSISSIPPI CANYON US LA 28.78 -89.05 18.0 19870117 19900827 722305 99999 VENICE HELIPORT US LA 29.12 -89.2 80.0 19870122 19881109 722306 99999 EUGENE ISLAND US LA 28.47 -91.78 30.0 19870118 19920127 722307 99999 MARATHON-VENICE US LA K5LA 29.285999999999998 -89.36399999999999 1.5 19870117 20160915 722308 99999 FOURCHON (SAWRS) US LA K9F2 29.1 -90.2 2.0 19870118 20161103 722309 12990 GRAND ISLE (SAWRS) US LA KGNI 29.191999999999997 -90.075 2.1 20061027 20161103 722309 99999 GRAND ISLE (SAWRS) US LA KAXO 29.25 -89.96700000000001 2.0 19870117 20071231 722310 12916 LOUIS ARMSTRONG NEW ORLEANS INTL AP US LA KMSY 29.998 -90.27799999999999 1.2 19451001 20170924 722312 3908 HAMMOND MUNICIPAL AIRPORT US LA KHDC 30.521 -90.41799999999999 13.4 20060101 20170924 722312 99999 HAMMOND US LA KHDC 30.517 -90.417 14.0 20020423 20071231 722314 3934 NEW IBERIA/ACADIANA US LA KARA 30.033 -91.883 7.0 19810724 19991231 722314 53915 ACADIANA REGIONAL AIRPORT US LA KARA 30.038 -91.884 7.3 20060101 20170924 722314 99999 NEW IBERIA/ACADIANA US LA KARA 30.033 -91.883 7.0 20000101 20071231 722315 53917 LAKEFRONT AIRPORT US LA KNEW 30.049 -90.029 2.7 19420901 20170924 722315 99999 LAKEFRONT US LA KNEW 30.033 -90.01700000000001 2.0 20000101 20031231 722316 12958 NEW ORLEANS NAS US LA KNBG 29.816999999999997 -90.01700000000001 0.6 19730101 20170923 722317 13970 BATON ROUGE METRO R US LA KBTR 30.537 -91.147 23.2 19420101 20101115 722317 99999 BATON ROUGE METRO R US LA 30.533 -91.15 22.0 20110125 20110317 722319 53943 NATCHITOCHES REGIONAL ARPT US LA KIER 31.736 -93.09899999999999 36.9 20060101 20170924 722319 99999 NATCHITOCHES RGNL US LA KIER 31.733 -93.1 37.0 20020423 20071231 722320 12884 BATON ROUGE METRO R US LA KBVE 29.333000000000002 -89.40799999999999 0.3 19730101 20101114 722320 13970 BATON ROUGE METRO RYAN FIELD AIRPORT US LA KBTR 30.537 -91.147 19.5 20101115 20170924 722322 361 GLASGOW MUNICIPAL AIRPORT US KY KGLW 37.033 -85.95 218.2 20130101 20150602 722322 99999 GLASGOW MUNI US KY KGLW 37.032 -85.954 217.9 20041123 20170923 722323 362 GATESVILLE MUNICIPAL AIRPORT US TX KGOP 31.416999999999998 -97.8 276.2 20130101 20150602 722323 99999 CITY COUNTY US TX KGOP 31.421 -97.79700000000001 275.8 20041123 20170923 722324 3071 MIDLAND AIRPARK US TX KMDD 32.036 -102.101 854.4 20060101 20170924 722324 99999 MIDLAND AIRPARK US TX KMDD 32.037 -102.101 854.0 20041123 20071231 722325 99999 SOUTHWEST PASS COAST GUARD STATI US 28.92 -89.43 1.0 19750916 19860610 722326 99999 GRAND ISLE COAST GUARD STATION US LA 29.27 -89.95 2.0 19750916 19820903 722327 99999 LEEVILLE US LA 29.22 -90.23 2.0 19780331 19850727 722328 99999 AMELIA / LAKE PALOURD US LA K7R3 29.7 -91.1 2.0 19780403 20161103 722329 12936 HARRY P WILLIAMS MEMO ARPT US LA KPTN 29.717 -91.333 2.7 20060101 20170924 722329 99999 HARRY P WILLIAMS MEM US LA KPTN 29.717 -91.333 3.0 19840910 20071221 722330 99999 SLIDELL/MUN. LA US LA KASD 30.333000000000002 -89.81700000000001 11.0 20010213 20170922 722331 54941 IOWA FALLS MUNICIPAL AIRPORT US IA KIFA 42.471000000000004 -93.20700000000001 346.6 20151208 20151217 722331 99999 IOWA FALLS MUNI US IA KIFA 42.467 -93.26700000000001 347.0 20071016 20170923 722332 54953 TOMAHAWK REGIONAL AIRPORT US WI KTKV 45.468999999999994 -89.806 452.9 20060101 20170924 722332 99999 TOMAHAWK RGNL US WI KTKV 45.468999999999994 -89.806 453.0 20041109 20071231 722333 3069 SAGUACHE MUNICIPAL AIRPORT US CO K04V 38.097 -106.169 2385.4 20060101 20170924 722333 99999 SAGUACHE MUNCICIPAL US CO K04V 38.1 -106.167 2385.0 20041005 20071231 722334 3976 BEAUREGARD REGIONAL AIRPORT US LA KDRI 30.833000000000002 -93.333 62.2 20060101 20170924 722334 99999 DE RIDDER US LA KDRI 30.833000000000002 -93.333 62.0 20041228 20071231 722335 99999 WEST CAMERON US LA 28.33 -93.02 24.0 19761102 19830609 722336 99999 BOOTHVILLE US LA KBVE 29.33 -89.4 1.0 19770312 20170923 722337 99999 EAST ADDITION B323 US TX 28.22 -93.75 26.0 19800612 19931012 722338 12994 JIM HOGG COUNTY AIRPORT US TX KHBV 27.349 -98.73700000000001 202.1 20060101 20170924 722338 99999 JIM HOGG CO US TX KHBV 27.35 -98.73299999999999 202.0 20040824 20071231 722339 99999 PHI OIL PLATFORM US LA K4C0 29.783 -93.18299999999999 1.0 20041005 20110829 722340 13865 KEY FIELD AIRPORT US MS KMEI 32.335 -88.744 89.6 19420301 20170924 722341 92822 ORMOND BEACH MUNICIPAL AIRPORT US FL KOMN 29.296 -81.113 8.8 20060101 20170923 722341 99999 ORMOND BEACH MUNI US FL KOMN 29.3 -81.117 9.0 20041005 20071231 722342 54931 TRACY MUNICIPAL AIRPORT US MN KTKC 44.248999999999995 -95.60700000000001 408.4 20060101 20170924 722342 99999 TRACY MUNI US MN KTKC 44.25 -95.6 408.0 20041109 20071231 722343 54826 SOUTH HAVEN AREA REGIONAL AIRPORT US MI KLWA 42.351000000000006 -86.256 203.0 20060101 20170924 722343 99999 SOUTH HAVEN AREA RGN US MI KLWA 42.351000000000006 -86.256 203.0 20041124 20071231 722344 99999 LOUISVILLE WINSTON CO US MS KLMS 33.146 -89.06200000000001 175.3 19810220 19821217 722345 3866 MERIDIAN NAS/MC CAIN FD AP US MS KNMM 32.55 -88.56700000000001 82.6 19730101 20170924 722346 54824 OWOSSO COMMUNITY AIRPORT US MI KRNP 42.993 -84.139 224.3 20060101 20170924 722346 99999 OWOSSO COMMUNITY US MI KRNP 42.983000000000004 -84.133 224.0 19430324 20071231 722347 13833 HAGLER AAF US MS KHBG 31.281999999999996 -89.25299999999999 46.0 20050101 20100731 722347 99999 HATTIESBURG MUNI US MS 31.267 -89.25 46.0 19420820 20120101 722348 53808 HATTIESBURG-LAUREL RGNL AP US MS KPIB 31.467 -89.333 89.3 20060101 20170924 722348 99999 HATTIESBURG LAUREL US MS KPIB 31.467 -89.333 91.0 19781220 20071231 722350 3940 JACKSON INTERNATIONAL AIRPORT US MS KJAN 32.321 -90.07799999999999 100.6 19420901 20170924 722351 12953 WHARTON REGIONAL AIRPORT US TX KARM 29.266 -96.008 30.5 20060101 20170924 722351 99999 WHARTON RGNL US TX KARM 29.254 -96.154 31.0 20041130 20071231 722354 13927 HAWKINS FIELD AIRPORT US MS KHKS 32.336999999999996 -90.221 104.2 20050101 20170924 722354 99999 HAWKINS FLD US MS KHKS 32.333 -90.21700000000001 104.0 20010705 20041231 722355 93999 VICKSBURG MUNICIPAL AIRPORT US MS KVKS 32.233000000000004 -90.93299999999999 31.4 20130319 20170924 722356 13939 MID DELTA RGNL US MS KGLH 33.483000000000004 -90.985 39.3 19420120 20100731 722356 99999 GREENVILLE MUNI US MS 33.483000000000004 -90.98299999999999 40.0 20000101 20100818 722357 3961 HRDY-ANRES FD NTCHZ-ADAMS COUNTY AIRPORT US MS KHEZ 31.616999999999997 -91.28299999999999 82.9 20060101 20170924 722357 99999 NATCHEZ/HARDY(AWOS) US MS KHEZ 31.616999999999997 -91.3 83.0 19730102 20071231 722358 93919 MCOM/PIKE CO/J E LWS FD AP US MS KMCB 31.183000000000003 -90.471 125.9 19730101 20170924 722359 13978 GREENWOOD LEFLORE US MS KGWO 33.496 -90.087 40.5 19430205 20100731 722359 99999 GREENWOOD LEFLORE US MS 33.483000000000004 -90.083 51.0 20100801 20100818 722361 92808 NEW SMYRNA BEACH MUNICIPAL AIRPORT US FL KEVB 29.054000000000002 -80.94800000000001 3.1 20060101 20170924 722361 99999 NEW SMYRNA BEACH MUN US FL KEVB 29.055999999999997 -80.94800000000001 3.0 20041130 20071231 722362 93937 SULPHUR SPRINGS MUNICIPAL AIRPORT US TX KSLR 33.167 -95.617 149.1 20060101 20170924 722362 99999 SULPHER SPRINGS MUNI US TX KSLR 33.167 -95.617 149.0 20050104 20071231 722363 23098 EDWARDS COUNTY AIRPORT US TX KECU 29.947 -100.17299999999999 723.0 20060101 20170724 722363 99999 EDWARDS CO US TX KECU 29.947 -100.17399999999999 723.0 20050104 20071231 722364 23903 TUNICA MUNICIPAL AIRPORT US MS KUTA 34.681 -90.34700000000001 59.1 20060101 20170924 722365 99999 MAIN PASS B68 US LA 29.67 -88.88 1.0 19761102 19830609 722366 53865 SLIDELL LA WSO/WSR US LA KASD 30.343000000000004 -89.822 8.2 20060101 20170924 722366 99999 SLIDELL WSFO US LA 30.34 -89.83 37.3 19990114 20071231 722367 363 SKYHAVEN AIRPORT US MO KRCM 38.783 -93.8 243.2 20150528 20170923 722367 99999 WARRENSBURG US MO KRCM 38.783 -93.8 243.0 20071016 20170922 722368 364 THOMAS P STAFFORD AIRPORT US OK KOJA 35.55 -98.667 489.2 20150224 20170923 722368 99999 THOMAS P STAFFORD US OK KOJA 35.55 -98.667 489.2 20071114 20170922 722369 365 T P MC CAMPBELL AIRPORT US TX KTFP 27.916999999999998 -97.2 5.2 20130101 20170924 722369 99999 INGLESIDE US TX KTFP 27.916999999999998 -97.2 5.0 20071016 20170510 722375 99999 VERMILION B131 US LA 29.07 -92.18 1.0 19761206 19830609 722383 99999 WEST CAMERON B56 US LA 37C 0.0 0.0 -999.0 19890227 19940912 722384 99999 HIGH ISLAND A572C US LA 27.95 -93.98 30.0 19890228 19930422 722385 99999 VERMILION B215 US LA 28.7 -92.32 1.0 19761102 19800930 722386 99999 SHIP SHOAL B113 US LA 0.0 0.0 -999.0 19880105 19910114 722387 99999 SOUTH MARSH B161 US LA 0.0 0.0 -999.0 19880303 19880502 722388 99999 GREEN CANYON B18 US LA 0.0 0.0 -999.0 19880421 19910125 722390 3931 POLK ARMY AIRFIELD US LA KPOE 31.05 -93.18299999999999 100.6 19620903 20170924 722390 99999 FORT POLK (ARMY) US LA KPOE 31.033 -93.03299999999999 110.0 20000101 20071231 722393 99999 HIGH ISLAND A489B US LA 28.2 -94.2 0.0 19880105 19930330 722394 99999 SHIP SHOAL B224A US LA 28.5 -91.3 32.0 19870713 20050903 722395 99999 GRAND ISLE B95 US LA 28.5 -90.12 1.0 19761102 19830609 722396 99999 EUGENE ISLAND US LA 28.25 -91.833 1.0 19770827 19830609 722397 99999 SHIP SHOAL PLATFORM US LA 28.68 -91.22 18.0 19780401 19851230 722398 99999 SOUTH MARSH ISLAND US LA 28.3 -91.98 1.0 19840607 20030304 722399 99999 ZAPATA-YORKTOWNTLAT US 27.416999999999998 -94.417 17.0 19850201 20110816 722400 3937 LAKE CHARLES REGIONAL AIRPORT US LA KLCH 30.125 -93.228 2.7 19420502 20170924 722403 12968 SALT POINT US LA KP92 29.561999999999998 -91.52600000000001 1.2 20060413 20170924 722403 99999 SALT POINT US LA KP92 29.56 -91.53299999999999 0.0 19850208 20071231 722404 13941 CHENNAULT INTERNATIONAL AP US LA KCWF 30.21 -93.14299999999999 5.2 19880105 20170924 722404 99999 CHENAULT AIRPARK US LA KCWF 30.217 -93.15 5.0 20000101 20031231 722405 13976 LAFAYETTE REGIONAL AIRPORT US LA KLFT 30.205 -91.988 11.6 19451001 20170924 722406 12927 HOUMA-TERREBONNE AIRPORT US LA KHUM 29.566 -90.66 2.7 20060101 20170923 722406 99999 HOUMA-TERREBONNE US LA KHUM 29.566999999999997 -90.66 3.0 19551027 20071231 722407 99999 CALCASIEU COAST GUARD STATION US LA 29.78 -93.35 1.0 19750916 19820912 722408 99999 INTRACOASTAL CITY US LA K7R4 29.767 -92.117 5.0 19760101 20150426 722409 99999 TENNECO PLATFORM US LA 28.0 -93.0 15.0 19760901 19871012 722410 12917 SOUTHEAST TEXAS REGIONAL AIRPORT US TX KBPT 29.951 -94.021 4.9 19730101 20170924 722413 99999 FREEPORT SUPPLEMENTARY AVIATION US KFOQ 29.0 -95.32 2.0 19870117 19890610 722414 99999 SABINE PASS US TX 29.7 -93.95 5.0 19810904 19840113 722415 99999 SABINE PASS COAST GUARD STATION US TX 29.73 -93.87 1.0 19750916 19860720 722416 12971 NEW BRAUNFELS MUNICIPAL AP US TX KBAZ 29.709 -98.046 196.6 19990317 20170924 722417 99999 WILMETTE (CGS) US IL 42.067 -87.68299999999999 183.0 19870501 19910207 722418 99999 CALUMET (CGS) US IL 63G 41.717 -87.53299999999999 180.0 19870501 19900810 722420 12923 SCHOLES INTL AT GLSTON APT US TX KGLS 29.273000000000003 -94.859 1.5 19930101 20170924 722420 99999 GALVESTON US TX KGLS 29.3 -94.8 16.0 19730101 20031231 722422 12923 SCHOLES INTL AT GLSTON APT US TX KGLS 29.273000000000003 -94.859 2.7 19730101 19900109 722423 12923 GALVESTON SCHOLES FIELD US TX KGLS 29.273000000000003 -94.859 2.7 19431101 19631001 722423 99999 GALVESTON US TX 29.267 -94.867 2.0 19900111 19910204 722425 99999 GALVESTON COAST GUARD STATION US TX 29.33 -94.77 1.0 19770712 19790704 722426 99999 FREEPORT (SAWRS) US TX 28.983 -95.31700000000001 2.0 19880105 19900701 722427 12975 CLOVER FIELD AIRPORT US TX KLVJ 29.519000000000002 -95.242 13.4 20060101 20170924 722427 99999 PEARLAND RGNL US TX KLVJ 29.517 -95.25 13.0 20010706 20071231 722429 53910 HOOKS MEMORIAL AIRPT US TX KDWH 30.068 -95.556 46.3 20060101 20170924 722429 99999 HOUSTON/D.W. HOOKS US TX KDWH 30.066999999999997 -95.55 46.0 19860916 20071231 722430 12960 G BUSH INTERCONTINENTAL AP/HOUSTON AP US TX KIAH 29.98 -95.36 29.0 19730101 20170924 722433 99999 WEST HOUSTON US TX KIWS 29.818 -95.67299999999999 33.8 19850130 19851129 722435 12918 WILLIAM P HOBBY US TX KHOU 29.638 -95.28200000000001 14.3 19730101 20100731 722435 99999 WILLIAM P HOBBY US TX 29.633000000000003 -95.26700000000001 14.0 19460728 20100817 722436 12906 ELLINGTON FIELD AIRPORT US TX KEFD 29.616999999999997 -95.167 9.8 19410701 20170924 722436 99999 HOUSTON/ELLINGTON US TX KEFD 29.6 -95.167 10.0 20000101 20071231 722437 99999 FREEPORT COAST GUARD STATION US TX 28.95 -95.3 2.0 19750916 19860616 722439 99999 SOUTH BRAZOS A70 US TX 28.02 -95.87 23.0 19840101 19920805 722440 12918 WILLIAM P. HOBBY AIRPORT US TX KHOU 29.638 -95.28200000000001 13.4 20100801 20170924 722444 53902 MONTGOMERY COUNTY AIRPORT US TX KCXO 30.357 -95.414 74.7 20060101 20170924 722444 99999 MONTGOMERY CO US TX KCXO 30.35 -95.417 75.0 19990114 20071231 722445 3904 EASTERWOOD FLD US TX KCLL 30.589000000000002 -96.365 100.0 19730101 20100801 722445 99999 EASTERWOOD FLD US TX 30.583000000000002 -96.35 100.0 20100801 20100818 722446 93987 ANGELINA COUNTY AIRPORT US TX KLFK 31.236 -94.75399999999999 87.8 19730101 20170924 722447 3901 LONGVIEW US TX KGGG 32.385 -94.712 113.7 19730101 19910131 722447 53903 HUNTSVILLE MUNICIPAL ARPT US TX KUTS 30.744 -95.586 111.6 20060101 20170924 722447 99999 HUNTSVILLE US TX KUTS 30.733 -95.583 111.0 19990114 20071231 722448 13972 TYLER POUNDS REGIONAL ARPT US TX KTYR 32.354 -95.40299999999999 165.8 19730101 20170924 722448 99999 TYLER POUNDS RGNL US TX KTYR 32.35 -95.4 166.0 19460726 19991231 722453 99999 SABINE PASS US TX 29.7 -93.95 3.0 19860916 20101209 722469 53912 CAMPBELL FLD-CORSICANA MU US TX KCRS 32.031 -96.399 136.6 20060101 20170924 722469 99999 C DAVID CAMPBELL FLD US TX KCRS 32.033 -96.4 137.0 19990114 20071231 722470 3901 EAST TEXAS REGIONAL ARPT US TX KGGG 32.385 -94.712 111.3 19910204 20170924 722470 99999 LONGVIEW US TX KGGG 32.35 -94.65 124.0 19771017 19771017 722479 53907 ARLINGTON MUNICIPAL AIRPORT US TX KGKY 32.664 -97.094 192.0 20060101 20170924 722479 99999 ARLINGTON MUNI US TX KGKY 32.667 -97.1 191.0 19990317 20071231 722480 13957 SHREVEPORT REGIONAL AIRPORT US LA KSHV 32.446999999999996 -93.824 77.4 19730101 20170924 722484 53905 SHREVEPORT DOWNTOWN ARPT US LA KDTN 32.543 -93.745 54.6 20000101 20170924 722484 99999 SHREVEPORT DOWNTOWN US LA KDTN 32.54 -93.745 55.0 19810904 19991231 722485 13944 BARKSDALE AIR FORCE BASE US LA KBAD 32.5 -93.667 50.6 19370301 20170924 722485 99999 BARKSDALE AFB US LA KBAD 32.5 -93.65 51.0 20000102 20071231 722486 13942 MONROE REGIONAL AIRPORT US LA KMLU 32.516 -92.041 24.1 19421001 20170924 722487 13935 ESLER REGIONAL AIRPORT US LA KESF 31.395 -92.291 36.0 19410701 20170924 722488 3996 VICKSBURG/TALLULAH RGNL AP US LA KTVR 32.35 -91.02799999999999 26.2 20050101 20170924 722488 99999 VICKSBURG\TALLULAH US LA KTVR 32.35 -91.03299999999999 26.0 19970718 20041231 722489 53911 TERRELL MUNICIPAL AIRPORT US TX KTRL 32.71 -96.26700000000001 144.8 20060101 20170924 722489 99999 TERRELL MUNI US TX KTRL 32.717 -96.26700000000001 144.0 19990114 20071231 722499 53948 A L MANGHAM JR RGNL ARPT US TX KOCH 31.578000000000003 -94.709 108.2 20060101 20170924 722499 99999 A L MANGHAM JR RGNL US TX KOCH 31.578000000000003 -94.71 108.0 19920226 20071231 722500 12919 BROWNSVILLE/S PADRE ISLAND INTL AP US TX KBRO 25.914 -97.42299999999999 7.3 19470101 20170924 722503 99999 VERMILLION US TX 28.583000000000002 -92.46700000000001 38.0 19870403 19910203 722505 12904 VALLEY INTERNATIONAL ARPT US TX KHRL 26.228 -97.654 10.4 19420301 20170924 722505 99999 VALLEY INTL US TX KHRL 26.217 -97.65 11.0 20000101 20031231 722506 12959 MC ALLEN MILLER INTL ARPT US TX KMFE 26.184 -98.25399999999999 30.5 19730101 20170924 722507 99999 CHARLES R JOHNSON US TX 26.563000000000002 -97.43799999999999 3.0 19770803 19770803 722508 12957 PORT ISABEL-CAMERON CO APT US TX KPIL 26.166 -97.346 5.8 20060101 20170924 722508 99999 PORT ISABEL CAMERON US TX KPIL 26.166999999999998 -97.35 6.0 19751003 20071231 722510 12924 CORPUS CHRISTI INTERNATIONAL AIRPORT US TX KCRP 27.774 -97.512 13.4 19460801 20170924 722515 12926 CORPUS CHRISTI NAS US TX KNGP 27.683000000000003 -97.28299999999999 5.5 19730101 20170924 722516 12928 KINGSVILLE NAS US TX KNQI 27.5 -97.81700000000001 15.2 19730101 20170924 722517 12932 ALICE INTERNATIONAL ARPT US TX KALI 27.741 -98.025 52.7 19460801 20170924 722517 99999 ALICE INTL US TX KALI 27.733 -98.01700000000001 54.0 20000101 20031231 722518 12974 NAVAL AUXILIARY LANDING FD US TX KNOG 27.9 -98.05 78.3 20110301 20170924 722518 99999 ORANGE GROVE NALF US TX KNOG 27.9 -98.05 78.0 19730608 20050224 722519 99999 PORT ARANSAS COAST GUARD STATION US TX 27.83 -97.07 1.0 19750916 19860624 722520 12907 LAREDO INTERNATIONAL AIRPORT US TX KLRD 27.533 -99.46700000000001 150.6 20081124 20170924 722520 12920 LAREDO INTL AIRPORT US TX KLRD 27.55 -99.46700000000001 155.0 19650301 19991231 722520 99999 LAREDO INTL AIRPORT US TX KLRD 27.55 -99.46700000000001 155.0 19430101 20081123 722521 99999 LAREDO INTL US TX 27.616999999999997 -99.51700000000001 164.0 19760824 19790727 722523 12970 STINSON MINICIPAL AIRPORT US TX KSSF 29.339000000000002 -98.47200000000001 174.0 19990101 20170924 722523 99999 STINSON MUNI US TX KSSF 29.333000000000002 -98.46700000000001 176.0 19880105 19981231 722524 12972 ARANSAS COUNTY AIRPORT US TX KRKP 28.084 -97.046 6.7 20060101 20170924 722524 99999 ARANSAS CO US TX KRKP 28.083000000000002 -97.05 7.0 19840101 20071231 722525 12920 LAREDO AIR FORCE BASE US TX KLRD 27.544 -99.461 154.8 19460806 19650315 722525 99999 LAREDO INTL ARPT US TX 27.616999999999997 -99.51700000000001 164.0 19730101 19750828 722526 12947 COTULLA-LA SALLE CO ARPT US TX KCOT 28.456999999999997 -99.21799999999999 145.1 19730101 20170924 722527 12976 BRAZORIA COUNTY AIRPORT US TX KLBX 29.11 -95.462 7.6 20060101 20170924 722527 99999 BRAZORIA CO US TX KLBX 29.116999999999997 -95.46700000000001 8.0 19890714 20071231 722530 12921 SAN ANTONIO INTERNATIONAL AIRPORT US TX KSAT 29.544 -98.484 240.5 19460814 20170924 722533 12962 HONDO MUNICIPAL AIRPORT US TX KHDO 29.36 -99.17399999999999 280.4 19420915 20170924 722535 12909 LACKLAND AIR FORCE BASE (KELLY FIELD ANNEX) US TX KSKF 29.383000000000003 -98.583 210.3 19370707 20170924 722535 99999 LACKLAND AFB KELLY US TX KSKF 29.383000000000003 -98.583 211.0 19730101 20071231 722536 12911 RANDOLPH AFB AIRPORT US TX KRND 29.533 -98.262 221.9 19380401 20170924 722536 99999 RANDOLPH AFB US TX KRND 29.517 -98.26700000000001 232.0 20000102 20071231 722537 12961 KRVL MUNI/LUIS SHRER FD AP US TX KERV 29.983 -99.083 492.9 20060101 20170924 722537 99999 KERRVILLE MUNI US TX KERV 29.976999999999997 -99.086 493.0 19730101 20071231 722539 12979 SAN MARCOS MUNICIPAL ARPT US TX KHYI 29.891 -97.86399999999999 182.0 20060101 20170924 722539 99999 SAN MARCOS MUNI US TX KHYI 29.9 -97.867 182.0 19980201 20071231 722540 13904 AUSTIN-BERGSTROM INTL AIRPORT US TX KAUS 30.183000000000003 -97.68 146.3 19990524 20170924 722540 13958 AUSTIN/MUELLER MUNI US TX KATT 30.320999999999998 -97.76 200.6 19730101 19990523 722541 53914 MC KINNEY MUNICIPAL ARPT US TX KTKI 33.19 -96.59100000000001 178.6 20060101 20170924 722541 99999 COLLIN CO RGNL US TX KTKI 33.183 -96.583 178.0 19970123 20071231 722542 3999 BURNET MUNICIPAL CRADOCK FIELD AIRPORT US TX KBMQ 30.741 -98.235 392.6 20060101 20170924 722542 99999 BURNET MUNI KATE CR US TX KBMQ 30.733 -98.23299999999999 391.0 19970123 20071231 722543 12977 SUGAR LAND REGIONAL ARPT US TX KSGR 29.622 -95.65700000000001 25.6 20060101 20170924 722543 99999 SUGER LAND RGNL US TX KSGR 29.616999999999997 -95.65 25.0 19970123 20071231 722544 13958 AUSTIN-CAMP MABRY US TX KATT 30.320999999999998 -97.76 204.2 19990602 20170924 722545 13904 BERGSTROM AFB/AUSTI US TX KAUS 30.183000000000003 -97.68 150.9 19930104 19990523 722545 99999 BERGSTROM AFB/AUSTI US TX KBSM 30.2 -97.68299999999999 165.0 19421017 19921231 722546 12910 SAN MARCOS (AWOS) US TX KRJO 29.9 -97.867 182.0 19920408 19960627 722547 53942 GEORGETOWN MUNICIPAL ARPT US TX KGTU 30.679000000000002 -97.679 239.9 20060101 20170924 722547 99999 GEORGETOWN MUNI US TX KGTU 30.683000000000003 -97.68299999999999 241.0 19920409 20071231 722550 12912 VICTORIA REGIONAL AIRPORT US TX KVCT 28.861 -96.93 35.1 19411104 20170924 722552 93929 GAINESVILLE MUNICIPAL ARPT US TX KGLE 33.650999999999996 -97.197 255.7 20060101 20170924 722552 99999 GAINESVILLE MUNI US TX KGLE 33.650999999999996 -97.197 258.0 20020430 20071231 722553 53928 BRENHAM MUNI US TX K11R 30.219 -96.374 93.9 20060101 20170924 722553 99999 BRENHAM MUNI US TX 30.219 -96.374 93.9 20020423 20071231 722554 12978 FAYETTE RGNL AIR CTR US TX K3T5 29.908 -96.95 98.8 20060101 20170924 722554 99999 FAYETTE RGNL AIR CNTR US TX 29.908 -96.95 98.8 20020423 20071231 722555 12935 PALACIOS MUNICIPAL AIRPORT US TX KPSX 28.725 -96.25399999999999 3.7 19460801 20170924 722556 12925 CHASE NAVAL AIR STATION US TX KNIR 28.366999999999997 -97.667 20.1 19730101 19921001 722557 99999 PORT OCONNOR (CGS) US TX 8R9 28.433000000000003 -96.43299999999999 3.0 19750916 19860721 722560 13959 WACO REGIONAL AIRPORT US TX KACT 31.619 -97.228 152.4 19420514 20170924 722561 99999 TSTC WACO US TX KCNW 31.638 -97.074 143.3 20070605 20170923 722563 53952 MC GREGOR EXECUTIVE ARPT US TX KPWG 31.485 -97.316 180.4 20060101 20170924 722563 99999 MC GREGOR EXECUTIVE US TX KPWG 31.483 -97.31700000000001 180.0 19920408 20071231 722570 3933 HOOD AAF AIRPORT US TX KHLR 31.133000000000003 -97.71700000000001 281.6 19601101 20170924 722570 99999 FT HOOD AAF/KILLEEN US TX KHLR 31.1 -97.71700000000001 282.0 20000104 20071231 722572 3933 FORT HOOD US TX KHLR 31.133000000000003 -97.71700000000001 266.7 19730102 19771202 722575 3972 KILLEEN MUNICIPAL AIRPORT US TX KILE 31.083000000000002 -97.68299999999999 256.3 20060101 20170915 722575 99999 KILLEEN MUNI (AWOS) US TX KILE 31.083000000000002 -97.68299999999999 258.0 19460515 20071231 722576 3902 ROBERT GRAY AFF AIRPORT US TX KGRK 31.066999999999997 -97.833 309.4 19500926 20170924 722576 99999 ROBERT GRAY AAF US TX KGRK 31.066999999999997 -97.833 309.0 20000101 20071231 722577 93984 DRAUGHON-MILLER CNTRL TX RGNL ARPT US TX KTPL 31.15 -97.417 207.9 20060101 20170924 722577 99999 DRAUGHON MILLER CEN US TX KTPL 31.15 -97.4 208.0 19450102 20071231 722580 13960 DALLAS LOVE FIELD AIRPORT US TX KDAL 32.852 -96.85600000000001 134.1 19460726 20170924 722581 13960 DALLAS LOVE FIELD US TX KDAL 32.852 -96.85600000000001 148.7 19850531 19900208 722583 13960 DALLAS LOVE FLD US TX KDAL 32.852 -96.85600000000001 148.7 19900208 20100731 722583 99999 DALLAS LOVE FLD US TX 32.833 -96.85 152.0 20100801 20100817 722585 93901 NAVAL AIR STATION OPERATIONS US TX KNBE 32.733000000000004 -96.96700000000001 150.0 19410805 19980103 722586 99999 DEL RIO(NEXRAD) US TX KDFX 29.267 -100.28299999999999 345.0 19420114 19710529 722587 93955 COX FIELD AIRPORT US TX KPRX 33.633 -95.45 166.7 20060101 20170924 722587 99999 COX FLD US TX KPRX 33.633 -95.45 167.0 19440518 20071231 722588 13926 MAJORS AIRPORT US TX KGVT 33.068000000000005 -96.065 163.1 20060101 20170924 722588 99999 MAJORS US TX KGVT 33.067 -96.06700000000001 163.0 19420911 20071231 722589 3991 DENTON MUNICIPAL AIRPORT US TX KDTO 33.205999999999996 -97.199 195.7 20060101 20170924 722589 99999 DENTON MUNI US TX KDTO 33.201 -97.198 196.0 19980208 20071231 722590 3927 DALLAS/FT WORTH INTERNATIONAL AP US TX KDFW 32.898 -97.01899999999999 170.7 19730101 20170924 722592 99999 ANCHORAGE(WFO) US AK 61.15 -149.983 40.0 20141007 20170923 722593 3985 FORT WORTH SPINKS AIRPORT US TX KFWS 32.565 -97.30799999999999 213.4 20060101 20170924 722593 99999 FORT WORTH SPINKS US TX KFWS 32.567 -97.3 213.0 20011216 20071231 722594 53909 FORT WORTH ALLIANCE ARPT US TX KAFW 32.973 -97.318 208.8 20060101 20170924 722594 99999 FORT WORTH ALLIANCE US TX KAFW 32.983000000000004 -97.31700000000001 220.0 19910108 20071231 722595 13911 FORT WORTH NAVAL AIR STATION JRB/CARSWELL FIELD US TX KNFW 32.766999999999996 -97.45 185.3 19421201 20170924 722596 13961 FORT WORTH MEACHAM US TX KFTW 32.819 -97.361 215.2 19460801 20100731 722596 99999 FORT WORTH MEACHAM US TX 32.817 -97.35 222.0 20100801 20100818 722597 93985 MINERAL WELLS AIRPORT US TX KMWL 32.782 -98.06 283.5 19480310 20170924 722598 3970 ADDISON AIRPORT US TX KADS 32.969 -96.836 196.3 20060101 20170924 722598 99999 ADDISON US TX KADS 32.967 -96.833 196.0 19740201 20071231 722599 3971 DALLAS EXECUTIVE AIRPORT US TX KRBD 32.681 -96.868 200.6 20060101 20170924 722599 99999 DALLAS EXECUTIVE US TX KRBD 32.683 -96.867 201.0 19840713 20071231 722600 3969 CLARK FIELD MUNI AIRPORT US TX KSEP 32.215 -98.178 402.6 19840101 20170924 722600 99999 STEPHENVILLE/CLARK US TX KSEP 32.217 -98.18299999999999 402.0 20030402 20031231 722610 22004 DEL RIO INTL US TX KDRT 29.366999999999997 -100.917 315.0 19460809 19510430 722610 22010 DEL RIO INTERNATIONAL AIRPORT US TX KDRT 29.378 -100.927 304.5 19510501 20170924 722615 22001 LAUGHLIN AFB AIRPORT US TX KDLF 29.366999999999997 -100.78299999999999 329.8 19430217 20170924 722615 99999 LAUGHLIN AFB US TX KDLF 29.366999999999997 -100.78299999999999 330.0 20000101 20071231 722616 3032 TERRELL COUNTY AIRPORT US TX K6R6 30.048000000000002 -102.213 707.8 20060101 20170924 722616 99999 TERRELL CO US TX K6R6 30.046 -102.213 708.0 20010705 20071231 722618 23091 FORT STOCKTON-PECOS CO APT US TX KFST 30.912 -102.917 917.5 20170519 20170920 722618 99999 FORT STOCKTON PECOS US TX KFST 30.916999999999998 -102.917 918.0 19980201 20170922 722620 23055 GUADALUPE PASS AMOS US TX KGDP 31.831 -104.809 1663.0 19770827 20170924 722626 93035 MARFA AP US TX KMRF 30.371 -104.01700000000001 1478.0 19730101 19770802 722626 99999 MARFA AP US TX KMRF 30.371 -104.01700000000001 1478.0 20020520 20020525 722630 23034 SAN ANGELO REGIONAL/MATHS FIELD AP US TX KSJT 31.351999999999997 -100.495 584.0 19480215 20170924 722635 13973 JUNCTION US TX KJCT 30.511 -99.766 533.1 19730101 19770802 722636 93042 DALHART MUNICIPAL US TX KDHT 36.016999999999996 -102.55 1217.4 19421101 20100731 722636 99999 DALHART MUNICIPAL AIRPORT US TX 36.016999999999996 -102.55 1216.0 20100801 20100818 722637 93046 HEMPHILL COUNTY AIRPORT US TX KHHF 35.9 -100.4 730.3 20060101 20170924 722637 99999 HEMPHILL CO US TX KHHF 35.9 -100.4 730.0 19810707 20071231 722640 93035 MARFA MUNICIPAL AIRPORT US TX KMRF 30.371 -104.01700000000001 1478.0 19361201 20170923 722640 99999 MARFA MUNICIPAL US TX KMRF 30.366999999999997 -104.01700000000001 1481.0 20000101 20031231 722648 3031 ODESSA-SCHLEMEYER FLD ARPT US TX KODO 31.921 -102.387 914.7 20060101 20170924 722648 99999 ODESSA SCHLEMEYER FL US TX KODO 31.916999999999998 -102.383 916.0 20010705 20071231 722650 23023 MIDLAND INTERNATIONAL AIRPORT US TX KMAF 31.948 -102.209 872.3 19480201 20170924 722654 23091 FT STOCKTON\PECOS US TX KFST 30.912 -102.917 917.4 20060101 20170923 722654 99999 FT STOCKTON\PECOS US TX KFST 30.916999999999998 -102.917 19970718 19970818 722655 23005 WEBB AFB US TX KBGS 32.217 -101.51700000000001 780.9 19420927 19770902 722656 23040 WINKLER COUNTY AIRPORT US TX KINK 31.78 -103.20200000000001 855.6 19460801 20170924 722657 23041 BIG SPRING US TX KHCA 32.233000000000004 -101.5 783.9 19470101 19741130 722658 99999 SANDERSON (RAMOS) US TX 30.166999999999998 -102.417 908.0 19750421 19770507 722660 13962 ABILENE REGIONAL AIRPORT US TX KABI 32.411 -99.682 545.6 19460801 20170924 722665 13910 ABILENE DYESS AFB US TX KDYS 32.433 -99.85 545.3 19730101 19881231 722666 93943 BROWNWOOD REGIONAL AIRPORT US TX KBWD 31.8 -98.95 419.7 20060101 20170924 722666 99999 BROWNWOOD MUNICIPAL US TX KBWD 31.8 -98.95 423.0 19440901 20071231 722670 23042 LUBBOCK INTERNATIONAL AIRPORT US TX KLBB 33.666 -101.823 991.8 19450810 20170924 722673 99999 SHERMAN-DENISON US TX 33.72 -96.67 228.0 19820920 20030515 722675 23021 REESE AFB/LUBBOCK US TX KREE 33.6 -102.05 1017.0 19420301 19970411 722676 3035 ARTESIA MUNICIPAL AIRPORT US NM KATS 32.853 -104.46799999999999 1079.3 20060101 20170924 722676 99999 ARTESIA MUNI US NM KATS 32.85 -104.46700000000001 1079.0 19730101 20071231 722677 3027 CLINES CORNERS US NM KCQC 35.003 -105.663 2159.8 20060101 20170924 722677 99999 CLINES CORNERS US NM KCQC 35.0 -105.667 2160.0 19990114 20071231 722678 23052 RATON MUNI/CREWS FIELD APT US NM KRTN 36.741 -104.50200000000001 1935.2 19980902 20170924 722678 99999 RATON MUNI CREWS FLD US NM KRTN 36.733000000000004 -104.5 1936.0 20001104 20031231 722680 23009 ROSWELL INTERNATIONAL AIR CENTER AP US NM KROW 33.308 -104.508 1112.2 19420713 20170924 722682 99999 SOUTH MARSH 268A US LA KSRN 29.12 -91.87 0.0 19730101 20100519 722683 93083 SIERRA BLANCA RGNL AIRPORT US NM KSRR 33.45 -105.51700000000001 2075.7 20060101 20170924 722683 99999 SIERRA BLANCA RGNL US NM KSRR 33.467 -105.53299999999999 2077.0 19880421 20071231 722684 99999 RUIDOSO US NM 33.35 -105.667 2106.0 19820101 19880703 722685 99999 CORONA / LINCOLN US NM K4CR 34.1 -105.667 1981.0 19730101 20120930 722686 23008 CANNON AFB AIRPORT US NM KCVS 34.383 -103.31700000000001 1309.1 19430125 20170924 722686 99999 CANNON AFB US NM KCVS 34.383 -103.31700000000001 1309.0 20000101 20071231 722687 93033 CAVERN CITY AIR TRML ARPT US NM KCNM 32.334 -104.258 985.1 19420910 20170924 722688 93034 LEA COUNTY REGIONAL AIRPORT US NM KHOB 32.693000000000005 -103.213 1114.0 19421101 20170924 722688 99999 LEA CO RGNL US NM KHOB 32.683 -103.21700000000001 1116.0 20000101 20071231 722689 23077 CLOVIS MUNICIPAL AIRPORT US NM KCVN 34.433 -103.083 1285.0 20060101 20170924 722689 99999 CLOVIS MUNI US NM KCVN 34.433 -103.083 1285.0 19800908 20071231 722690 99999 WHITE SANDS NM. US NM 32.383 -106.48299999999999 1244.0 19800101 19980731 722691 366 CLAXTON EVANS COUNTY AIRPORT US GA KCWV 32.2 -81.87 34.1 20130101 20170923 722691 99999 CLAXTON EVANS CO US GA KCWV 32.195 -81.87 34.1 20080107 20170923 722692 367 WARRENTON FAUQUIER AIRPORT US VA KHWY 38.586 -77.711 103.0 20130101 20170923 722692 99999 WARRENTON US VA KHWY 38.583 -77.717 102.7 20080115 20170923 722693 93097 ALAMOGORDO-WHITE SANDS RGL AIRPORT US NM KALM 32.84 -105.991 1280.2 20060101 20170924 722693 99999 ALAMOGORDO WHITE SA US NM KALM 32.833 -105.98299999999999 1280.0 19870117 20071231 722695 93041 LAS CRUCES INTL AIRPORT US NM KLRU 32.283 -106.917 1357.6 20060101 20170924 722695 99999 LAS CRUCES INTL US NM KLRU 32.283 -106.917 1358.0 19470818 20071231 722696 99999 HOLLOMAN AFB US NM 32.85 -106.1 1248.0 19420902 19811110 722697 99999 NORTHROP STRIP/ALAM US NM 32.95 -106.417 1324.0 19810114 19811114 722700 23044 EL PASO INTERNATIONAL AIRPORT US TX KELP 31.811 -106.376 1194.2 19410401 20170924 722704 99999 BIGGS AAF US TX KBIF 31.85 -106.38 1203.4 20100614 20170923 722707 23055 GUADALUPE PASS US TX KGDP 31.831 -104.809 1663.0 19730101 19770802 722710 93045 TRH OR CONSEQCES MUNI ARPT US NM KTCS 33.236999999999995 -107.26799999999999 1478.3 19780301 20170924 722710 99999 TRUTH OR CONSEQUENC US NM KTCS 33.233000000000004 -107.26700000000001 1481.0 20000101 20031231 722720 93026 BISBEE DOUGLAS INTL ARPT US AZ KDUG 31.458000000000002 -109.60600000000001 1251.2 20100801 20170924 722720 93063 BISBEE DOUGLAS INTL US AZ KSVC 32.633 -108.167 1659.9 19730101 20100801 722720 99999 BISBEE DOUGLAS INTL US AZ KDUG 31.467 -109.6 1251.0 20000101 20031231 722721 93063 GRANT COUNTY AIRPORT US NM KSVC 32.633 -108.167 1637.7 20100801 20170924 722725 23078 DEMING MUNICIPAL AIRPORT US NM KDMN 32.262 -107.721 1310.9 20060101 20170924 722725 99999 DEMING MUNI US NM KDMN 32.25 -107.71700000000001 1315.0 19421029 20071231 722726 93045 NOGALES (AMOS) US AZ KTCS 33.236999999999995 -107.26799999999999 1480.7 19730101 19780228 722726 99999 NOGALES AUTOMATIC METEOROLOGICAL US AZ 31.42 -110.85 1198.0 19881208 19990728 722728 3196 NOGALES INTERNATIONAL ARPT US AZ KOLS 31.421 -110.846 1198.5 20060101 20170924 722728 99999 NOGALES INTL US AZ KOLS 31.416999999999998 -110.85 1205.0 20010705 20071231 722730 3124 SIERRA VISTA MUNICIPAL-LIBBY AAF AIRPORT US AZ KFHU 31.588 -110.344 1438.4 19541011 20170924 722730 99999 FORT HUACHUCA US AZ KFHU 31.583000000000002 -110.333 1428.0 20000103 20071231 722733 99999 LUKEVILLE US AZ 31.88 -112.82 511.0 19850208 19880826 722735 93026 BISBEE DOUGLAS INTL US AZ KDUG 31.458000000000002 -109.60600000000001 1250.0 19421116 20100801 722735 99999 BISBEE DOUGLAS INTL US AZ 31.467 -109.6 1298.0 20100801 20100817 722740 23160 TUCSON INTERNATIONAL AIRPORT US AZ KTUS 32.131 -110.955 776.9 19730101 20170924 722743 99999 TUCSON NEXRAD US AZ EMX 31.883000000000003 -110.617 1586.0 19991115 20021202 722745 23109 DAVIS-MONTHAN AFB AIRPORT US AZ KDMA 32.167 -110.883 824.2 19410717 20170924 722745 99999 DAVIS MONTHAN AFB US AZ KDMA 32.167 -110.883 824.0 20000101 20071231 722746 99999 SAFFORD MUNICIPAL US AZ 32.85 -109.633 968.0 19730101 19730601 722747 93084 SAFFORD REGIONAL AIRPORT US AZ KSAD 32.855 -109.635 968.0 20060101 20170924 722747 99999 SAFFORD RGNL US AZ KSAD 32.85 -109.633 968.0 19780911 20071231 722748 3914 CASA GRANDE MUNICIPAL ARPT US AZ KCGZ 32.95 -111.76700000000001 445.6 20060101 20170917 722748 99999 CASA GRANDE MUNI US AZ KCGZ 32.95 -111.76700000000001 446.0 19920412 20071231 722749 53128 CHANDLER MUNICIPAL AIRPORT US AZ KCHD 33.269 -111.81299999999999 378.9 20060101 20170924 722749 99999 CHANDLER MUNI US AZ KCHD 33.266999999999996 -111.81700000000001 379.0 19990114 20071231 722764 3029 WINDOW ROCK AIRPORT US AZ KRQE 35.658 -109.061 2054.1 20060101 20170924 722764 99999 WINDOW ROCK US AZ KRQE 35.65 -109.06700000000001 2055.0 19990323 20071231 722780 23183 PHOENIX SKY HARBOR INTL AIRPORT US AZ KPHX 33.428000000000004 -112.00399999999999 337.4 19730101 20170924 722781 99999 HENRY CO US TN KPHT 36.338 -88.383 176.8 20140530 20170923 722783 3185 FALCON FIELD AIRPORT US AZ KFFZ 33.467 -111.73299999999999 420.6 20060101 20170924 722783 99999 MESA/FALCON FIELD US AZ KFFZ 33.467 -111.73299999999999 424.0 19880105 20071231 722784 3184 PHOENIX DEER VALLEY ARPT US AZ KDVT 33.688 -112.08200000000001 443.5 20060101 20170924 722784 99999 PHOENIX DEER VALLEY US AZ KDVT 33.688 -112.083 450.0 19870629 20071231 722785 23111 LUKE AFB AIRPORT US AZ KLUF 33.55 -112.367 330.7 19411201 20170924 722785 99999 LUKE AFB US AZ KLUF 33.533 -112.383 331.0 20000103 20071231 722786 23104 WILLIAMS GATEWAY AIRPORT US AZ KIWA 33.3 -111.667 421.2 19420301 20170924 722786 99999 WILLIAMS GATEWAY US AZ KIWA 33.3 -111.65 421.0 20000101 20031231 722787 53126 GLENDALE MUNICIPAL AIRPORT US AZ KGEU 33.527 -112.295 324.9 20060101 20170924 722787 99999 GLENDALE MUNI US AZ KGEU 33.527 -112.295 325.0 19990114 20071231 722788 3186 PHOENIX GOODYEAR AIRPORT US AZ KGYR 33.417 -112.383 295.1 20060101 20170924 722788 99999 PHOENIX GOODYEAR US AZ KGYR 33.417 -112.383 295.0 19870603 20071231 722789 3192 SCOTTSDALE AIRPORT US AZ KSDL 33.623000000000005 -111.911 449.0 20060101 20170924 722789 99999 SCOTTSDALE US AZ KSDL 33.623000000000005 -111.911 460.0 19870629 20071231 722800 23195 YUMA MARINE CORPS AIR STATION/YUMA INTL AIRPORT US AZ KYUM 32.667 -114.6 62.8 19420116 20070105 722800 99999 YUMA INTL AIRPORT US AZ KYUM 32.65 -114.6 63.0 20000103 20070105 722801 99999 YUMA MCAS YUMA INTL US AZ 32.65 -114.6 65.0 20040713 20070105 722805 3145 YUMA MCAS US AZ KNYL 32.65 -114.617 64.9 19770127 19870630 722806 99999 AJO MUNI US AZ KP01 32.45 -112.867 444.4 19420115 19460120 722810 23199 NAF US CA KNJK 32.817 -115.68299999999999 -12.8 19840413 20170924 722813 53146 PIONEER AIRFIELD US AZ KALK 31.607 -110.428 1453.3 20080807 20170924 722817 3068 ELLICOTT-B AFA US CO KABH 38.766999999999996 -104.3 1837.9 20060501 20170924 722817 99999 ELLICOTT-B AFA US CO KABH 38.75 -104.3 1840.0 20071026 20071231 722819 53989 MULTI PURPOSE RANGE US KS KAMM 39.294000000000004 -96.926 385.3 20060601 20170110 722820 3949 PEASON RIDGE US LA KAQV 31.4 -93.28299999999999 111.3 20060101 20170924 722820 99999 PEASON RIDGE FT POLK US LA KAQV 31.37 -93.16 111.0 20050302 20071231 722821 53988 FULLERTON LANDING STRIP US LA KBKB 31.15 -92.96700000000001 94.5 20060101 20170924 722821 99999 FULLERTON LANDING ST US LA KBKB 31.022 -92.11 94.0 20050303 20071214 722822 63903 DIRT STRIP EAST OF FORT POLK US LA KDNK 31.114 -92.96600000000001 114.0 20060101 20130503 722823 3749 CAMP DAVID US MD KRSP 39.645 -77.468 561.4 20060501 20170924 722823 99999 CAMP DAVID US MD KRSP 39.65 -77.467 561.4 20040921 20071231 722825 53145 TONOPAH TEST RANGE #74 US NV KBJN 37.617 -116.264 1755.7 20060101 20150201 722825 99999 TONOPAH RANGE #74 N US NV KBJN 37.617 -116.26700000000001 1756.0 20040921 20071231 722826 93762 SITE R US PA KRYT 39.733000000000004 -77.433 274.9 20060501 20170924 722826 99999 SITE R US PA KRYT 39.733000000000004 -77.433 274.9 20041027 20071231 722857 368 WALHALLA MUNICIPAL AIRPORT US ND K96D 48.941 -97.90299999999999 290.2 20130101 20170923 722857 99999 WALHALLA MUNI US ND K96D 48.941 -97.90299999999999 290.5 20101118 20170922 722859 99999 DANA POINT US CA 33.45 -117.68 15.0 19840607 19960630 722860 23119 MARCH AIR RESERVE BASE US CA KRIV 33.9 -117.25 468.2 19330101 20170924 722860 99999 RIVERSIDE/MARCH AFB US CA KRIV 33.9 -117.25 468.0 20000101 20071231 722864 99999 BIG BEAR CITY ARPT US CA 34.266999999999996 -116.85 2057.0 19801202 19840614 722865 93180 ONTARIO US CA KONT 34.067 -117.65 303.9 19421215 19991231 722865 99999 ONTARIO US CA KONT 34.067 -117.65 303.9 20000101 20010516 722866 23122 SAN BERNARDINO INTERNATIONAL AIRPORT US CA KSBD 34.095 -117.235 353.3 19430106 19931030 722866 99999 SAN BERNARDINO INTL US CA KSBD 34.095 -117.235 353.3 20090112 20170923 722867 23156 BEAUMONT US CA KBUO 33.933 -116.96700000000001 692.0 19730101 19991231 722867 99999 BEAUMONT US CA KBUO 33.933 -116.96700000000001 692.0 20000101 20010901 722868 93138 PALM SPRINGS INTL AIRPORT US CA KPSP 33.821999999999996 -116.50399999999999 124.7 20060101 20170924 722868 99999 PALM SPRINGS INTL US CA KPSP 33.833 -116.5 145.0 19430510 20071231 722869 3171 RIVERSIDE MUNICIPAL ARPT US CA KRAL 33.952 -117.439 245.2 20060101 20170924 722869 99999 RIVERSIDE MUNI US CA KRAL 33.95 -117.43299999999999 249.0 19770116 20071231 722874 93134 DOWNTOWN L.A./USC CAMPUS US CA KCQT 34.024 -118.291 54.6 20000101 20170924 722880 23152 BURBANK-GLENDALE-PASA ARPT US CA KBUR 34.201 -118.35799999999999 236.2 19430601 20170924 722880 99999 BURBANK/GLENDALE US CA KBUR 34.2 -118.35 236.0 20000101 20031231 722883 99999 HERMOSA BEACH PIER US CA 33.87 -118.4 8.0 19770827 19960630 722884 99999 SANTA MONICA PIER US CA 34.0 -118.5 2.0 19770827 19960630 722885 93197 SANTA MONICA MUNI AIRPORT US CA KSMO 34.016 -118.45100000000001 53.0 20060101 20170924 722885 99999 SANTA MONICA MUNI US CA KSMO 34.016999999999996 -118.45 53.0 19730101 20071231 722886 23130 VAN NUYS AIRPORT US CA KVNY 34.21 -118.48899999999999 234.7 19421211 20170924 722886 99999 VAN NUYS US CA KVNY 34.21 -118.49 244.0 20000101 20031231 722887 3180 BRACKETT FIELD AIRPORT US CA KPOC 34.1 -117.78299999999999 308.2 20060101 20170924 722887 99999 BRACKETT FLD US CA KPOC 34.083 -117.78299999999999 308.0 19780306 20071231 722888 99999 NORTH CENTRAL LOWER US MI 44.9 -84.71700000000001 446.0 19770108 20050430 722889 99999 APPLE VALLEY US CA KAPV 34.575 -117.186 933.3 19730622 19730622 722890 93136 MOUNT WILSON US CA KMWS 34.233000000000004 -118.06700000000001 1739.2 19500101 20150513 722890 99999 MOUNT WILSON US CA KMWS 34.233000000000004 -118.06700000000001 1739.0 20000103 20071226 722895 23243 LOMPOC AIRPORT US CA KLPC 34.667 -120.46700000000001 26.8 20060101 20170924 722895 99999 LOMPOC US CA KLPC 34.667 -120.46700000000001 27.0 19920409 20071219 722897 93206 SAN LUIS CO REGIONAL ARPT US CA KSBP 35.236999999999995 -120.641 61.0 20060101 20170924 722897 99999 SAN LUIS CO RGNL US CA KSBP 35.233000000000004 -120.633 65.0 19730227 20071231 722898 99999 ANACAPA ISLAND US CA 34.02 -119.37 42.0 19780407 19870919 722899 3179 CHINO AIRPORT US CA KCNO 33.975 -117.63600000000001 198.1 20060101 20170924 722899 99999 CHINO US CA KCNO 33.967 -117.633 199.0 19770705 20071231 722900 23188 SAN DIEGO INTERNATIONAL AIRPORT US CA KSAN 32.734 -117.18299999999999 4.6 19420101 20170924 722901 99999 SAN DIEGO/MONTGOMER US CA 32.817 -117.133 129.0 19730101 19900206 722903 3131 MONTGOMERY FIELD AIRPORT US CA KMYF 32.816 -117.139 127.1 20060101 20170924 722903 99999 MONTGOMERY FLD US CA KMYF 32.816 -117.14 130.0 19900208 20071231 722904 3178 BROWN FIELD MUNICIPAL ARPT US CA KSDM 32.571999999999996 -116.979 157.0 20060101 20170924 722904 23196 BROWN FLD MUNI US CA KSDM 32.567 -116.96700000000001 160.0 19780429 19991231 722904 99999 BROWN FLD MUNI US CA KSDM 32.567 -116.96700000000001 160.0 20000101 20071231 722905 99999 POINT LOMA / CABRILLO US CA 32.67 -117.48 111.0 19760130 19960630 722906 93112 NORTH ISLAND NAS US CA KNZY 32.7 -117.2 7.9 19450401 20170924 722907 53143 GILLESPIE FIELD AIRPORT US CA KSEE 32.826 -116.973 118.0 20060101 20170924 722907 99999 GILLESPIE FLD US CA KSEE 32.833 -116.96700000000001 118.0 19730101 20071231 722908 99999 EL TORO(USMC) US CA 33.667 -117.73299999999999 117.0 19730101 19890112 722909 93115 NAVAL AUXILIARY LANDING FD US CA KNRS 32.567 -117.117 7.3 19730101 20170924 722910 93116 SAN NICOLAS ISLAND NAVAL OUTLYING FIELD US CA KNSI 33.24 -119.458 153.0 19430616 20170924 722910 99999 SAN NICHOLAS ISLAND US CA KNSI 33.25 -119.45 174.0 20000103 20071231 722913 99999 MARINA DEL REY US CA 33.97 -118.43 8.0 19771005 19960630 722914 99999 MISSION BEACH US CA 32.77 -117.23 2.0 19780823 19960701 722915 93114 TUSTIN MCAF US CA KNTK 33.7 -117.833 16.5 19760101 19891130 722916 99999 MALIBU BEACH US CA 34.03 -118.68 139.0 19780823 19820702 722917 99999 LONG BEACH US CA 33.77 -118.17 3.0 19780823 19820427 722919 99999 SOLANA BEACH US CA 32.98 -117.27 5.0 19831106 19960630 722920 23191 CATALINA AIRPORT US CA KAVX 33.405 -118.416 488.3 19430612 20170924 722920 99999 AVALON/CATALINA US CA KAVX 33.4 -118.417 488.0 20000613 20031231 722923 99999 CAMP PENDLETON MCAS US CA 33.3 -117.35 19.0 19770317 19780206 722924 99999 SANTA CATALINA ISLAND US CA 33.33 -118.33 3.0 19770827 19960630 722925 93117 NALF/F. SHERMAN FLD ARPT US CA KNUC 33.023 -118.588 55.5 19430610 20170922 722925 99999 SAN CLEMENTE ISLAND US CA KNUC 33.016999999999996 -118.583 56.0 20000103 20031231 722926 3154 MARINE CORPS AIR STATION US CA KNFG 33.3 -117.35 22.9 19730102 20170924 722927 3177 MCCLELLAN-PALOMAR AIRPORT US CA KCRQ 33.128 -117.279 100.0 20060101 20170924 722927 99999 MC CLELLAN PALOMAR US CA KCRQ 33.128 -117.28 101.0 19730101 20071231 722928 369 MCOLF CAMP PENDLETON RED BEACH AIRPORT US CA KNXF 33.286 -117.456 27.1 20150531 20170608 722928 99999 MCOLF CAMP PENDLETON (RED BEACH) AIRPORT US CA KNXF 33.286 -117.456 27.0 19750916 20150602 722929 99999 OCEANSIDE HARBOR US CA 33.22 -117.4 9.0 19770827 19960630 722930 93107 SAN DIEGO/MIRAMAR N US CA KNKX 32.867 -117.133 145.7 19890101 20050303 722931 93107 MARINE CORPS AIR STATION US CA KNKX 32.867 -117.133 145.4 20060101 20170924 722931 99999 MIRAMAR MCAS US CA KNKX 32.867 -117.15 146.0 20040713 20071231 722933 99999 SAN CLEMENTE US CA 33.42 -117.62 3.0 19810506 19960630 722934 53121 OCEANSIDE MUNICIPAL ARPT US CA KOKB 33.219 -117.34899999999999 8.5 20060101 20170924 722934 99999 OCEANSIDE MUNI US CA KOKB 33.217 -117.35 9.0 19831104 20071231 722935 99999 EL CAPITAN BEACH US CA 34.467 -120.03299999999999 27.0 19880107 19960630 722950 23174 LOS ANGELES INTERNATIONAL AIRPORT US CA KLAX 33.938 -118.389 29.6 19440101 20170924 722953 3183 MOJAVE AIRPORT US CA KMHV 35.067 -118.15 849.5 20060102 20170924 722953 99999 MOJAVE US CA KMHV 35.059 -118.152 851.0 19860916 20071231 722954 99999 ZUMA BEACH US CA 34.02 -118.82 6.0 19770827 19960630 722955 3122 TORRANCE AIRPORT US CA KTOA 33.802 -118.34200000000001 27.4 19440601 19991231 722955 3174 ZAMPERINI FIELD AIRPORT US CA KTOA 33.803000000000004 -118.34 29.6 20060101 20170924 722955 99999 ZAMPERINI FLD US CA KTOA 33.803000000000004 -118.34 31.4 20000101 20071231 722956 3167 NRTHORP FLD/HATHRN MUNI AP US CA KHHR 33.923 -118.334 19.2 20060101 20170924 722956 99999 JACK NORTHROP FLD H US CA KHHR 33.917 -118.333 20.0 19730101 20071231 722957 99999 LONG BEACH US CA 32.75 -118.417 24.0 19761129 19880105 722958 99999 CABRILLO BEACH US CA 33.72 -118.28 8.0 19760130 19960630 722959 99999 SCRIPPS PIER / LA JOL US CA 32.87 -117.25 4.0 19780823 19900321 722970 23129 LONG BEACH / DAUGHERTY FIELD / AIRPORT US CA KLGB 33.812 -118.146 9.5 19430101 20170924 722972 63878 LITCHFIELD MUNICIPAL AIRPORT US IL K3LF 39.163000000000004 -89.675 210.3 20060101 20170924 722972 99999 LITCHFIELD MUNI US IL K3LF 39.167 -89.667 210.0 20040921 20071231 722973 99999 NEWPORT BEACH US CA 33.6 -117.88 3.0 19770827 19960701 722974 99999 LONG BEACH US CA K5L8 33.766999999999996 -118.167 3.0 19770208 19891127 722975 53141 LOS ALAMITOS AAF AIRPORT US CA KSLI 33.79 -118.052 10.7 20060101 20170924 722975 93106 LOS ALAMITOS AAF US CA KSLI 33.783 -118.05 11.0 19820907 19991231 722975 99999 LOS ALAMITOS AAF US CA KSLI 33.783 -118.05 11.0 20000101 20071231 722976 3166 FULLERTON MUNICIPAL ARPT US CA KFUL 33.872 -117.979 29.3 20060101 20170924 722976 99999 FULLERTON MUNICIPAL US CA KFUL 33.867 -117.98299999999999 29.0 19730101 20071231 722977 93184 J. WAYNE APT-ORANGE CO APT US CA KSNA 33.68 -117.866 16.5 19400617 20170924 722977 99999 JOHN WAYNE ARPT ORA US CA KSNA 33.667 -117.867 17.0 20000101 20031231 722978 99999 HUNTINGTON BEACH US CA 33.65 -118.0 35.0 19730101 19960630 722979 3157 LONG BEACH NAVAL STN US CA NWF 33.75 -118.23299999999999 4.3 19730102 19731228 722983 99999 POINT VINCENTE US CA 33.73 -118.4 5.0 19880106 19880309 722984 99999 HUNTINGTON B. OIL US CA 33.57 -118.13 36.0 19870403 19880309 722985 99999 LONGBEACH RADIO US CA 33.75 -118.333 5.0 19750916 19800207 722986 99999 TERMINAL ISLAND US CA 33.73 -118.27 10.0 19770827 19860529 723010 3810 HICKORY REGIONAL AIRPORT US NC KHKY 35.743 -81.382 348.4 20100801 20170924 723011 13748 WILMINGTON NEW HANOVER COUNTY US NC KILM 34.268 -77.9 11.6 19420601 19900228 723013 13748 WILMINGTON INTL US NC KILM 34.268 -77.9 11.6 19900228 20170924 723015 99999 SOUTH PORT / OAK ISLAND COAST GU US 33.88 -78.02 1.0 19750916 19910108 723016 99999 WRIGHTSVILLE BEACH US NC 34.18 -77.82 3.0 19750916 19910403 723020 13748 WILMINGTON INTERNATIONAL AIRPORT US NC KILM 34.268 -77.9 10.1 20170510 20170924 723020 99999 WILMINGTON INTL US NC KILM 34.266999999999996 -77.9 10.0 20010705 20170922 723030 13714 POPE AFB AIRPORT US NC KPOB 35.174 -79.009 66.5 19370703 20170924 723030 99999 POPE FIELD US NC KPOB 35.167 -79.033 66.0 20000101 20071231 723034 93747 MACKALL AAF AIRPORT US NC KHFF 35.033 -79.5 114.6 20060103 20170924 723034 99999 MACKALL AAF US NC KHFF 35.033 -79.5 115.0 19790507 20071231 723035 93740 FAYETT RGNL/GRANNIS FLD AP US NC KFAY 34.991 -78.88 56.7 20060101 20170924 723035 99999 FAYETTEVILLE RGNL G US NC KFAY 34.983000000000004 -78.883 58.0 19730101 20071231 723037 93765 MICHAEL J SMITH FLD ARPT US NC KMRH 34.734 -76.661 3.4 20060101 20170924 723037 99999 MICHAEL J SMITH FLD US NC KMRH 34.733000000000004 -76.667 3.0 20010705 20071231 723040 93729 CAPE HATTERAS US NC KHSE 35.233000000000004 -75.622 3.4 19730101 19951231 723040 99999 CAPE HATTERAS NC. US KHAT 35.266999999999996 -75.55 3.0 19960322 20060803 723044 99999 ERWIN HARNETT COUNTY AIRPORT US NC 35.38 -78.73 60.0 19990114 19990715 723045 99999 OREGON INLET COAST GUARD STATION US NC 35.77 -75.52 1.0 19750916 19860515 723046 13766 DARE COUNTY REGIONAL AIRPORT US NC KMQI 35.917 -75.7 4.0 20060101 20170924 723046 99999 DARE CO RGNL US NC KMQI 35.917 -75.7 4.0 19850715 20071231 723047 99999 ORACOKE COAST GUARD STATION US NC 35.12 -75.98 2.0 19750916 19860515 723048 99999 ANDREWS ANDREWS-MURPHY AIRPORT US NC 35.19 -83.86 518.0 19990114 20010517 723050 99999 NEWPORT US NC KMHX 34.766999999999996 -76.867 10.8 19960516 20041008 723055 63816 STATESVILLE MUNICIPAL ARPT US NC KSVH 35.765 -80.957 294.1 20060101 20170924 723055 99999 STATESVILLE RGNL US NC KSVH 35.766999999999996 -80.95 295.0 20010705 20071231 723060 13722 RALEIGH-DURHAM INTERNATIONAL AP US NC KRDU 35.891999999999996 -78.782 126.8 19451101 20170924 723062 99999 USMC BOMB RANGE BT-11 US NC KNBT 35.016999999999996 -76.467 5.2 20090903 20170923 723065 13783 PITT-GREENVILLE AIRPORT US NC KPGV 35.633 -77.383 7.6 20060101 20170924 723065 99999 PITT GREENVILLE US NC KPGV 35.635 -77.383 8.0 19730101 20071231 723066 13713 SEYMOUR-JOHNSON AFB AIRPORT US NC KGSB 35.344 -77.965 33.2 19430601 20170924 723066 99999 SEYMOUR JOHNSON AFB US NC KGSB 35.333 -77.95 34.0 20000101 20071231 723067 93726 KINSTON REGIONAL JETPORT AT STALLING FIELD US NC KISO 35.317 -77.633 28.7 19730608 20170924 723067 99999 KINSTON RGNL JETPORT US NC KISO 35.332 -77.609 29.0 20000101 20071231 723068 93759 ROCKY MOUNT-WILSON RGN APT US NC KRWI 35.855 -77.893 48.8 20060101 20170924 723068 99999 ROCKY MOUNT WILSON US NC KRWI 35.85 -77.883 48.0 19730620 20071231 723069 93753 ALBERT J ELLIS AIRPORT US NC KOAJ 34.833 -77.617 29.3 20060101 20170924 723069 99999 JACKSONVILLE (AWOS) US NC KOAJ 34.833 -77.617 29.0 19761225 20071231 723070 13786 ELZ CTY CG/AIR STN RGNL AP US NC KECG 36.260999999999996 -76.175 4.0 20100801 20170924 723074 3703 NORTHEASTERN REGIONAL ARPT US NC KEDE 36.028 -76.567 6.1 20060101 20170924 723074 99999 NORTHEASTERN RGNL US NC KEDE 36.029 -76.57 6.0 19990114 20071231 723075 13769 OCEANA NAS US VA KNTU 36.817 -76.033 7.0 19730101 20170924 723076 99999 CAPE HENRY COAST GUARD LIGHT STA US 36.93 -76.0 1.0 19750916 19841220 723077 99999 NORFOLK / CHESAPEAK US VA 36.9 -75.72 23.0 19750916 19840107 723078 99999 MARKS MUNI US VA 36.596 -78.56 128.3 19890918 19900206 723079 93796 TRI-COUNTY AIRPORT US NC KASJ 36.298 -77.171 20.7 20060101 20170924 723079 99999 TRI CO US NC KASJ 36.3 -77.167 21.0 19990114 20071231 723080 13737 NORFOLK INTERNATIONAL AIRPORT US VA KORF 36.903 -76.192 9.1 19730101 20170924 723082 99999 WEST CAMERON 560 US LA 28.15 -93.35 0.0 20040825 20050409 723083 13763 FRANKLIN MUNICIPAL-JOHN BEVERLY ROSE AIRPORT US VA KFKN 36.698 -76.903 12.5 19941016 20170925 723083 99999 FRANKLIN MUNI JB ROS US VA KFKN 36.698 -76.904 12.0 20000101 20031231 723084 93775 HANOVER CO MUNICIPAL ARPT US VA KOFP 37.708 -77.434 62.5 20170510 20170523 723084 99999 HANOVER CO MUNI US VA KOFP 37.709 -77.437 63.0 19860620 20170923 723085 13750 NORFOLK NAS US VA KNGU 36.937 -76.289 5.2 19730101 20170924 723086 93741 NWPT NEWS/WIMBURG INTL APT US VA KPHF 37.132 -76.493 12.8 20000101 20170924 723086 99999 NEWPORT NEWS WILLIA US VA KPHF 37.133 -76.483 13.0 19730101 19991231 723087 93735 FELKER ARMY AIRFIELD US VA KFAF 37.133 -76.6 3.7 19601101 20170924 723087 99999 FELKER AAF US VA KFAF 37.133 -76.609 4.0 20000103 20071231 723088 99999 MILFORD HAVEN COAST GUARD STATIO US 37.48 -76.32 1.0 19750916 19910113 723089 13755 CHINCOTEAGUE US VA K0W8 37.933 -75.383 2.0 19821019 19960630 723090 13754 CHERRY POINT MCAS US NC KNKT 34.9 -76.883 8.8 19730101 20170924 723094 99999 SWANSBORO / BOGUE US NC 34.65 -77.1 2.0 19790507 19910403 723095 93719 CRAVEN COUNTY REG AIRPORT US NC KEWN 35.068000000000005 -77.048 5.8 19730101 20170924 723096 93727 JACKSONVILLE US NC KNCA 34.708 -77.44 7.9 19730101 20170924 723097 93743 BOGUE FIELD MARINE CORPS AUXILIARY FIELD US NC KNJM 34.683 -77.033 6.4 19870504 20170924 723098 93798 CULPEPER REGIONAL AIRPORT US VA KCJR 38.527 -77.859 96.3 20060101 20170924 723098 99999 CULPEPER RGNL US VA KCJR 38.533 -77.867 96.0 19730623 20071231 723099 99999 CAPE LOOKOUT COAST GUARD STATION US NC 34.6 -76.53 4.0 19750916 19830107 723100 13883 COLUMBIA METROPOLITAN AIRPORT US SC KCAE 33.942 -81.118 68.6 19420424 20170924 723104 53867 COLUMBIA OWENS DOWNTOWN AP US SC KCUB 33.971 -80.99600000000001 64.6 20060101 20170924 723104 99999 COLUMBIA OWENS APT US SC KCUB 33.967 -80.983 59.0 19790513 20071231 723105 3858 MCENTIRE AIR NATIONAL GUARD STATION US SC KMMT 33.967 -80.8 77.4 20060104 20170924 723105 93833 MC ENTIRE JNGB US SC KMMT 33.921 -80.801 77.0 19590206 19991231 723105 99999 MC ENTIRE JNGB US SC KMMT 33.921 -80.801 77.0 20000103 20071229 723106 13744 FLORENCE REGIONAL AIRPORT US SC KFLO 34.185 -79.72399999999999 44.5 19730101 20170924 723107 371 SANTEE COOPER REGIONAL AIRPORT US SC KMNI 33.586999999999996 -80.209 31.1 20150224 20170924 723107 99999 SANTEE COOPER RGNL US SC KMNI 33.586999999999996 -80.209 31.4 20081208 20170910 723108 13776 LUMBERTON MUNICIPAL ARPT US NC KLBT 34.608000000000004 -79.059 36.9 19980902 20170924 723108 99999 LUMBERTON MUNI US NC KLBT 34.61 -79.059 38.0 20000101 20031231 723109 93782 LAURINBURG-MAXTON AIRPORT US NC KMEB 34.792 -79.366 67.1 20060101 20170924 723109 99999 MAXTON US NC KMEB 34.783 -79.367 67.0 19990114 20071231 723110 13873 ATHENS/BEN EPPS AIRPORT US GA KAHN 33.948 -83.32799999999999 239.3 19730101 20170924 723114 3715 LOUISA CO/FREEMAN FLD ARPT US VA KLKU 38.01 -77.97 150.3 20060101 20170925 723114 99999 LOUISA CO FREEMAN FL US VA KLKU 38.016999999999996 -77.967 150.0 19990114 20071231 723115 53854 ORANGEBURG MUNICIPAL ARPT US SC KOGB 33.461999999999996 -80.858 60.1 20060101 20170924 723115 99999 ORANGEBURG MUNI US SC KOGB 33.45 -80.867 59.0 19990114 20071231 723116 3742 DARLINGTON COUNTY JETPORT AIRPORT US SC KUDG 34.466 -79.89 58.5 20060101 20170924 723116 99999 DARLINGTON CO JETPOR US SC KUDG 34.45 -79.883 59.0 19990114 20071231 723117 53871 RK HL/YORK CO/BRYNT FD APT US SC KUZA 34.986999999999995 -81.058 203.9 20060101 20170924 723117 99999 ROCK HILL YORK CO US SC KUZA 34.983000000000004 -81.05 203.0 20010811 20071231 723118 53850 OCCONEE COUNTY RGNL ARPT US SC KCEU 34.672 -82.88600000000001 271.6 20060101 20170924 723118 99999 OCONEE CO RGNL US SC KCEU 34.667 -82.883 272.0 20010811 20071231 723119 13886 GREENVILLE DOWNTOWN ARPT US SC KGMU 34.846 -82.346 319.4 19420908 20170924 723119 99999 GREENVILLE DOWNTOWN US SC KGMU 34.85 -82.35 319.0 20000101 20031231 723120 3870 GREENVILLE-SPARTANBURG INTL AIRPORT US SC KGSP 34.884 -82.221 287.4 19730101 20170924 723122 63889 DONALDSON CENTER AIRPORT US SC KGYH 34.758 -82.376 291.1 20060101 20170924 723122 99999 GREENVILLE US SC KGYH 34.75 -82.367 291.0 20050611 20071231 723123 14886 Kings Land O' Lakes Airport US WI KLNL 46.15 -89.21700000000001 519.4 20060101 20170924 723123 99999 KINGS LAND O LAKES US WI KLNL 46.15 -89.21700000000001 519.0 20050315 20071231 723124 53874 GREENWOOD COUNTY AIRPORT US SC KGRD 34.249 -82.15899999999999 192.3 20060101 20170924 723124 99999 GREENWOOD CO US SC KGRD 34.249 -82.167 192.0 20010811 20071231 723125 93846 ANDERSON RGNL US SC KAND 34.498000000000005 -82.71 235.6 19730101 20100801 723125 99999 ANDERSON RGNL US SC 34.483000000000004 -82.7 244.0 20100801 20100817 723126 93804 SPARTANBURG DOWNTOWN MEMORIAL AIRPORT US SC KSPA 34.917 -81.95 244.1 19730101 19820320 723126 99999 SPARTANBURG DOWNTOWN MEM US SC KSPA 34.916 -81.95700000000001 244.1 20090420 20170923 723139 93729 BILLY MITCHELL AIRPORT US NC KHSE 35.233000000000004 -75.622 3.4 19960101 20170924 723140 13881 CHARLOTTE/DOUGLAS INTERNATIONAL AP US NC KCLT 35.224000000000004 -80.955 221.9 19410722 20170924 723143 3720 MOORE COUNTY AIRPORT US NC KSOP 35.236999999999995 -79.391 140.5 20060101 20170924 723143 99999 MOORE CO US NC KSOP 35.233000000000004 -79.383 141.0 19920226 20071231 723144 53890 RURFTON CO-MARCHMAN FLD AP US NC KFQD 35.428000000000004 -81.935 328.6 20060101 20170924 723144 99999 RUTHERFORDTON US NC KFQD 35.433 -81.93299999999999 329.0 19990114 20071231 723145 3810 HICKORY RGNL US NC KHKY 35.743 -81.382 362.1 19730101 20100801 723145 99999 HICKORY RGNL US NC 35.733000000000004 -81.383 372.0 20100801 20100817 723146 53892 ASHE COUNTY AIRPORT US NC KGEV 36.431999999999995 -81.419 969.3 20060101 20170924 723146 99999 ASHE CO US NC KGEV 36.433 -81.417 969.0 19990114 20071231 723147 53870 GASTONIA MUNICIPAL AIRPORT US NC KAKH 35.196999999999996 -81.156 242.9 20060101 20170924 723147 99999 GASTONIA MUNI US NC KAKH 35.2 -81.15 243.0 20010811 20071231 723148 63859 MORGANTON-LENOIR AIRPORT US NC KMRN 35.821 -81.611 387.1 20060101 20170925 723148 99999 FOOTHILLS RGNL US NC KMRN 35.817 -81.617 387.0 20010811 20071231 723150 3812 ASHEVILLE REGIONAL AIRPORT US NC KAVL 35.431999999999995 -82.538 645.3 19730101 20170924 723155 99999 HOT SPRINGS (AWRS) US NC 35.9 -82.81700000000001 451.0 19730101 19840331 723156 63812 ROWAN COUNTY AIRPORT US NC KRUQ 35.646 -80.52 235.6 20060101 20170925 723156 99999 ROWAN COUNTY ARPT US NC KRUQ 35.65 -80.517 236.0 20020219 20071231 723160 13870 BACON COUNTY AIRPORT US GA KAMG 31.535999999999998 -82.507 58.8 20100801 20170925 723165 63821 WILKES COUNTY AIRPORT US NC KUKF 36.223 -81.098 396.2 20060101 20170925 723165 99999 WILKES CO US NC KUKF 36.217 -81.1 397.0 20010811 20071231 723170 13723 PIEDMONT TRIAD INTERNATIONAL AIRPORT US NC KGSO 36.097 -79.943 271.3 19451101 20170924 723171 53144 EDWARDS AF AUX NORTH US CA K9L2 34.988 -117.865 694.3 20060101 20170924 723171 99999 EDWARDS AF AUX NORTH BASE US CA K9L2 34.991 -117.863 700.7 20050712 20071231 723174 93783 BURLINGTON ALAMANCE RGL AP US NC KBUY 36.047 -79.477 188.1 20060101 20170924 723174 99999 BURLINGTON ALAMANCE US NC KBUY 36.05 -79.467 188.0 20010811 20071231 723177 63807 MOUNT AIRY/SURRY CO ARPT US NC KMWK 36.46 -80.553 380.1 20060101 20170924 723177 99999 MT AIRY SURRY CO US NC KMWK 36.467 -80.55 380.0 20010811 20071231 723180 99999 BLACKSBURG US VA 37.2 -80.4 641.9 19960101 20050403 723181 13877 BRISTOL TRI CITY AIRPORT US TN KTRI 36.473 -82.404 464.8 19730101 19900228 723183 13877 TRI CITIES RGNL US TN KTRI 36.473 -82.404 464.8 19900228 20100801 723183 99999 TRI CITIES RGNL US TN 36.467 -82.4 475.0 20100801 20100817 723190 93846 ANDERSON REGIONAL AIRPORT US SC KAND 34.498000000000005 -82.71 231.7 20100801 20170924 723191 93807 WINSTON-SALEM REYNOLDS AP US NC KINT 36.134 -80.222 295.7 19850531 19900206 723193 93807 SMITH REYNOLDS AIRPORT US NC KINT 36.134 -80.222 295.7 19900208 20170924 723193 99999 SMITH REYNOLDS US NC KINT 36.133 -80.217 295.0 20000101 20031231 723194 53872 MONROE AIRPORT US NC KEQY 35.016999999999996 -80.62100000000001 207.0 20060101 20170924 723194 99999 MONROE AIRPORT US NC KEQY 35.019 -80.62 207.0 20010811 20071231 723200 93801 RICHARD B RUSSELL AIRPORT US GA KRMG 34.348 -85.161 194.8 19780101 20170924 723200 99999 ROME/RUSSELL(RAMOS) US GA KRMG 34.35 -85.167 196.0 20000101 20031231 723213 99999 PUERTO ESCONDIDO US 19860507 19880531 723230 3856 HUNTSVILLE INTL/C.T.JONES FIELD AIRPORT US AL KHSV 34.644 -86.786 190.2 19730101 20170924 723231 63883 REDSTONE ARMY AIRFIELD US AL KHUA 34.679 -86.685 208.8 20060103 20170924 723231 99999 REDSTONE AAF US AL KHUA 34.683 -86.68299999999999 209.0 20040804 20071231 723235 13896 NORTH WEST ALABAMA REGIONAL AIRPORT US AL KMSL 34.744 -87.6 164.6 19730101 20170924 723240 13882 LOVELL FIELD AIRPORT US TN KCHA 35.031 -85.20100000000001 204.5 19730101 20170924 723244 99999 DALLAS BAY SKY PARK US TN KCQN 35.188 -85.178 210.3 19801205 19900801 723245 99999 MONTEAGLE US TN MGL 35.25 -85.85 586.0 19730101 19990823 723246 53868 OAK RIDGE US TN KOQT 36.024 -84.238 277.4 19990102 20100801 723246 99999 OAK RIDGE US TN 36.016999999999996 -84.23299999999999 279.0 20100801 20100817 723249 463 MAURY COUNTY AIRPORT US TN KMRC 35.554 -87.179 207.9 20130309 20170923 723249 99999 MAURY CO US TN KMRC 35.554 -87.179 207.6 20160125 20170910 723250 3847 CROSSVILLE MEMORIAL -WHITSON FIELD APT US TN KCSV 35.951 -85.081 569.1 20100801 20170924 723260 13891 MC GHEE TYSON AIRPORT US TN KTYS 35.818000000000005 -83.986 293.2 19480101 20170924 723263 99999 FAYETTEVILLE/KELSO US TN 35.133 -86.55 198.0 19881208 19891112 723264 99999 KNOXVILLE DOWNTOWN ISLAND US TN KDKX 35.964 -83.874 253.9 19790507 20170923 723265 3847 CROSSVILLE MEM WHIT US TN KCSV 35.951 -85.081 570.0 19730101 20100801 723265 99999 CROSSVILLE MEM WHIT US TN 35.95 -85.083 588.0 20100801 20100817 723270 13897 NASHVILLE INTERNATIONAL AIRPORT US TN KBNA 36.119 -86.689 182.9 19510101 20170924 723271 99999 JOHN C TUNE US TN KJWN 36.181999999999995 -86.887 150.9 20151210 20170923 723273 13827 SMYRNA AIRPORT US TN KMQY 36.009 -86.52 165.5 20060101 20170924 723273 99999 SMYRNA US TN KMQY 36.0 -86.51700000000001 166.0 19420816 20071231 723274 372 UPPER CUMBERLAND REGIONAL AIRPORT US TN KSRB 36.056 -85.531 312.1 20151107 20170923 723274 99999 UPPER CUMBERLAND RGNL US TN KSRB 36.056 -85.531 312.4 19810220 20170923 723275 99999 CLARKSVILLE/OUTLAW US TN CKV 36.617 -87.417 168.0 19730418 19810915 723280 3894 OUTLAW FIELD AIRPORT US TN KCKV 36.624 -87.419 170.7 20100801 20170924 723284 93839 MILLINGTON MUNICIPAL AIRPORT US TN KNQA 35.35 -89.867 97.5 20060101 20170924 723284 99999 MILLINGTON MUNI ARP US TN KNQA 35.35 -89.867 98.0 20010811 20071231 723290 3849 CAPE GIRARDEAU RGNL US MO KLOZ 37.086999999999996 -84.07700000000001 369.1 19730101 19850531 723290 3935 CAPE GIRARDEAU RGNL ARPT US MO KCGI 37.225 -89.571 102.4 20100801 20170924 723291 3849 LONDON-CORBIN AP US KY KLOZ 37.086999999999996 -84.07700000000001 369.1 19850531 19900206 723293 3849 LONDON-CORBIN AP US KY KLOZ 37.086999999999996 -84.07700000000001 369.1 19900208 19910220 723300 3975 POPLAR BUFF MUNICIAL ARPT US MO KPOF 36.773 -90.325 99.7 20060101 20170924 723300 99999 POPLAR BLUFF(AMOS) US MO KPOF 36.766999999999996 -90.46700000000001 146.0 19770828 20071231 723301 93862 TUPELO C D LEMONS ARPT US MS KTUP 34.262 -88.771 110.0 19730101 19900228 723303 93862 TUPELO C D LEMONS ARPT US MS KTUP 34.262 -88.771 110.0 19900208 19910228 723305 99999 OXFORD UNIVERSITY US MS 34.383 -89.53299999999999 137.0 19730112 19850311 723306 13825 COLUMBUS AFB AIRPORT US MS KCBM 33.65 -88.45 66.8 19420301 20170924 723306 99999 COLUMBUS AFB US MS KCBM 33.65 -88.45 66.0 20000101 20071231 723307 53893 GOLDEN TRIANGLE RGNL APT US MS KGTR 33.45 -88.583 80.5 20060101 20170924 723307 99999 GOLDEN TRIANGLE RGNL US MS KGTR 33.45 -88.583 80.0 19770102 20071231 723320 93862 TUPELO REGIONAL AIRPORT US MS KTUP 34.262 -88.771 110.0 19910301 20170924 723340 13893 MEMPHIS INTERNATIONAL AIRPORT US TN KMEM 35.056 -89.98700000000001 77.4 19461001 20170924 723345 93839 MEMPHIS NAS US TN KNQA 35.35 -89.867 97.5 19730101 19960429 723346 3811 MCKELLAR-SIPES RGNL ARPT US TN KMKL 35.593 -88.917 132.0 19730101 20170924 723347 3809 DYERSBURG MUNICIPAL ARPT US TN KDYR 36.0 -89.40899999999999 91.4 19430412 20170924 723347 99999 DYERSBURG MUNI US TN KDYR 36.0 -89.4 103.0 20000101 20031231 723348 99999 ABILENE(NEXRAD) US TX KDYX 32.533 -99.25 462.0 19770501 19810812 723350 13877 TRI-CITIES REGIONAL TN/VA AIRPORT US TN KTRI 36.48 -82.399 456.3 20100801 20170924 723400 3952 NORTH LITTLE ROCK AIRPORT US AR KLZK 34.835 -92.26 171.6 20060101 20170923 723400 99999 LITTLE ROCK WSFO US AR KLZK 34.833 -92.25 173.0 19730101 20051231 723401 13963 LITTLE ROCK ADAMS FIELD US AR KLIT 34.727 -92.23899999999999 78.3 19750101 19900228 723403 13963 ADAMS FIELD AIRPORT US AR KLIT 34.727 -92.23899999999999 78.6 19900228 20170924 723405 3930 LITTLE ROCK AFB AIRPORT US AR KLRF 34.917 -92.15 94.8 19560101 20170924 723405 99999 LITTLE ROCK AFB US AR KLRF 34.917 -92.15 95.0 20000102 20071231 723406 93991 WALNUT RIDGE REGIONAL ARPT US AR KARG 36.125 -90.92399999999999 83.2 20060101 20170912 723406 99999 WALNUT RIDGE RGNL US AR KARG 36.125 -90.925 83.0 19421010 20071231 723407 3953 JONESBORO MUNICIPAL ARPT US AR KJBR 35.830999999999996 -90.646 79.9 20060101 20170924 723407 99999 JONESBORO MUNI US AR KJBR 35.833 -90.633 80.0 19730101 20071231 723408 13814 ARKANSAS INTERNATIONAL AIRPORT US AR KBYH 35.967 -89.95 77.4 19420901 20170921 723408 99999 ARKANSAS INTL US AR KBYH 35.967 -89.93299999999999 77.0 20000103 20071231 723409 53869 BLYTHEVILLE MUNI AIRPORT US AR KHKA 35.94 -89.831 77.7 20060101 20170924 723409 99999 BLYTHEVILLE MUNI US AR KHKA 35.933 -89.833 78.0 20010811 20071231 723410 99999 PAGE OK. US 34.683 -94.617 883.0 19771026 19950611 723415 3962 MEMORIAL FIELD AIRPORT US AR KHOT 34.29 -93.06 163.1 20060101 20170924 723415 99999 MEMORIAL FLD US AR KHOT 34.467 -93.083 165.0 19730101 20071231 723416 13925 STUTTGART MUNICIPAL ARPT US AR KSGT 34.6 -91.574 68.3 20060101 20170924 723416 99999 STUTTGART MUNI US AR KSGT 34.6 -91.56700000000001 68.0 19910911 20071231 723417 93988 GRIDER FIELD AIRPORT US AR KPBF 34.175 -91.935 62.8 19730101 20170924 723417 99999 GRIDER FLD US AR KPBF 34.167 -91.93299999999999 63.0 20000101 20031231 723418 13977 TEXARKANA REGIONAL AIRPORT-WEBB FIELD US AR KTXK 33.454 -94.007 110.0 19460729 20170924 723419 93992 S. AR RGNL AT GDWIN FLD AP US AR KELD 33.221 -92.814 76.8 19730101 20170924 723424 53919 MONTICELLO MUNI US AR KLLQ 33.635999999999996 -91.756 82.3 20050101 20170924 723424 99999 MONTICELLO MUNI US AR 33.567 -91.71700000000001 36.0 19990103 20041231 723425 373 HARRELL FIELD AIRPORT US AR KCDH 33.617 -92.76700000000001 40.2 20130101 20170924 723425 99999 HARRELL FLD US AR KCDH 33.623000000000005 -92.76299999999999 39.6 19840320 20121231 723429 53920 MUNICIPAL AIRPORT US AR KRUE 35.258 -93.095 122.8 20060101 20170924 723429 99999 RUSSELLVILLE RGNL US AR KRUE 35.266999999999996 -93.1 123.0 20010811 20071231 723434 3973 SPRINGDALE MUNICIPAL ARPT US AR KASG 36.167 -94.117 412.4 20060101 20170924 723434 99999 SPRINGDALE MUNI US AR KASG 36.183 -94.117 412.0 19850703 20071231 723435 53921 MOUNT IDA US AR KMWT 34.547 -93.57799999999999 214.0 20060101 20170924 723435 99999 MOUNT IDA US AR KMWT 34.55 -93.583 214.0 19990426 20071231 723436 53922 NW ARKANSAS REGIONAL ARPT US AR KXNA 36.283 -94.3 392.3 20060101 20170924 723436 99999 NW ARKANSAS RGNL US AR KXNA 36.282 -94.307 392.0 20020201 20071231 723439 53918 OZARK REGIONAL AIRPORT US AR KBPK 36.369 -92.47 282.9 20060101 20170924 723439 99999 OZARK RGNL US AR KBPK 36.369 -92.471 283.0 19990103 20071231 723440 13964 FORT SMITH REGIONAL AIRPORT US AR KFSM 35.333 -94.363 136.9 19470101 20170924 723441 54921 ALBION MUNICIPAL AIRPORT US NE KBVN 41.73 -98.054 548.3 20060101 20170924 723441 99999 ALBION MUNI US NE KBVN 41.733000000000004 -98.05 550.0 20040824 20071231 723443 53955 SMITH FIELD AIRPORT US AR KSLG 36.191 -94.491 363.6 20060101 20170924 723443 99999 SMITH FLD US AR KSLG 36.2 -94.48299999999999 364.0 19920408 20071231 723444 3978 BENTONVILLE MUNI/LOUIS M THADEN FIELD AIRPORT US AR KVBT 36.35 -94.21700000000001 395.0 20060101 20170924 723444 99999 BENTONVILLE MUNI THA US AR KVBT 36.346 -94.219 395.0 19920408 20071231 723445 93993 DRAKE FIELD AIRPORT US AR KFYV 36.01 -94.169 381.3 19730101 20170924 723445 99999 DRAKE FLD US AR KFYV 36.0 -94.167 381.0 20000101 20031231 723446 13971 BOONE CO US AR KHRO 36.266999999999996 -93.15700000000001 422.1 19460801 20100731 723446 99999 BOONE CO US AR 36.25 -93.15 427.0 20100801 20100817 723447 3918 MARION COUNTY RGNL AIRPORT US AR KFLP 36.291 -92.59 219.2 20060101 20170924 723447 99999 FLIPPIN (AWOS) US AR KFLP 36.3 -92.46700000000001 350.0 19920409 20071231 723448 53934 BATESVILLE REGIONAL ARPT US AR KBVX 35.726 -91.647 141.1 20060101 20170924 723448 99999 BATESVILLE RGNL US AR KBVX 35.726 -91.647 141.0 19920409 20071231 723449 53954 ROGERS MUNI-CARTER FLD APT US AR KROG 36.372 -94.10700000000001 412.4 20060101 20170924 723449 99999 ROGERS MUNI CARTER F US AR KROG 36.372 -94.10700000000001 414.0 19920506 20071231 723450 13971 BOONE COUNTY AIRPORT US AR KHRO 36.266999999999996 -93.15700000000001 418.8 20100801 20170924 723480 99999 WEST PLAINS MO US 36.733000000000004 -91.85 308.0 19730101 19960808 723484 53901 WEST PLAINS MUNICIPAL ARPT US MO KUNO 36.878 -91.90299999999999 372.8 20060101 20170924 723484 99999 WEST PLAINS MUNI US MO KUNO 36.883 -91.9 374.0 20010811 20071231 723485 99999 POPLAR BLUFF(AMOS)& US MO 36.766999999999996 -90.46700000000001 116.0 19760820 19770728 723489 3935 CAPE GIRARDEAU RGNL US MO KCGI 37.225 -89.571 107.3 19730101 20100801 723489 99999 CAPE GIRARDEAU RGNL US MO 37.217 -89.56700000000001 107.0 20100801 20100817 723490 99999 MONETTE US MO 36.917 -94.01700000000001 437.0 19730101 20130430 723493 99999 WAPPAPELLO US MO 36.933 -90.28299999999999 101.0 19880810 19881202 723495 13987 JOPLIN REGIONAL AIRPORT US MO KJLN 37.147 -94.50200000000001 298.7 19730101 20170924 723510 13966 SHEPPARD AFB/WICHITA FALLS MUNI AP US TX KSPS 33.979 -98.493 310.0 19420413 20170924 723513 99999 SHEPPARD AFB US TX KSHP 33.967 -98.48299999999999 310.6 19870731 20130228 723520 13902 ALTUS AFB AIRPORT US OK KLTS 34.65 -99.26700000000001 421.2 19430201 20170924 723520 99999 ALTUS AFB US OK KLTS 34.65 -99.26700000000001 420.0 20000103 20071231 723525 93986 HOBART MUNICIPAL AIRPORT US OK KHBR 34.989000000000004 -99.053 474.3 19730101 20170924 723526 3932 CLINTON-SHERMAN AIRPORT US OK KCSM 35.357 -99.204 585.8 20060101 20170924 723526 99999 CLINTON-SHERMAN US OK KCSM 35.333 -99.2 586.0 19580818 20071231 723527 13975 GAGE/SHATTUCK US OK KGAG 36.297 -99.76899999999999 671.2 19460801 20100709 723528 3981 FREDERICK MUNICIPAL AIRPT US OK KFDR 34.21 -98.59 382.5 20060101 20170924 723528 99999 FREDERICK MUNI US OK KFDR 34.352 -98.984 383.0 19980514 20071231 723529 53929 ARDMORE DOWNTOWN EXE US OK K1F0 34.147 -97.12299999999999 257.3 20060101 20170924 723529 99999 ARDMORE DOWNTOWN EXECUTIVE US OK 34.147 -97.12299999999999 257.3 19990114 20071231 723530 13967 WILL ROGERS WORLD AIRPORT US OK KOKC 35.389 -97.601 391.7 19411214 20170924 723535 13909 VANCE AIR FORCE BASE US OK KEND 36.333 -97.917 398.1 20060103 20170924 723535 99999 VANCE AFB US OK KEND 36.333 -97.917 398.0 19420101 20071231 723536 53986 ENID WOODRING REGIONAL AIRPORT US OK KWDG 36.383 -97.8 355.7 20060101 20170924 723536 99999 ENID WOODRING RGNL US OK KWDG 36.383 -97.78299999999999 356.0 19790131 20071231 723537 53913 GUTHRIE MUNICIPAL AIRPORT US OK KGOK 35.852 -97.414 325.5 20060101 20170924 723537 99999 GUTHRIE MUNI US OK KGOK 35.85 -97.417 326.0 19990114 20071231 723540 13919 TINKER AFB AIRPORT US OK KTIK 35.417 -97.383 393.5 19421214 20170924 723540 99999 TINKER AFB US OK KTIK 35.417 -97.383 397.0 20000101 20071231 723544 3954 WILEY POST AIRPORT US OK KPWA 35.534 -97.647 395.3 20060101 20170924 723544 99999 OKLAHOMA CITY/WILEY US OK KPWA 35.533 -97.65 396.0 19801023 20071231 723545 3965 STILLWATER REGIONAL ARPT US OK KSWO 36.162 -97.089 299.9 20060101 20170924 723545 99999 STILLWATER RGNL US OK KSWO 36.15 -97.083 305.0 19730103 20071231 723546 13969 PONCA CITY MUNI US OK KPNC 36.736999999999995 -97.102 304.2 19460801 20100731 723546 99999 PONCA CITY MUNI US OK 36.733000000000004 -97.1 307.0 20100801 20100817 723550 13945 HENRY POST AAF AIRPORT US OK KFSI 34.65 -98.4 362.4 19390901 20170924 723550 99999 FORT SILL US OK KFSI 34.6 -98.4 360.0 20000104 20071231 723555 93940 ARDMORE MUNICIPAL AIRPORT US OK KADM 34.3 -97.01700000000001 221.0 20060101 20170924 723555 99999 ARDMORE MUNICIPAL US OK KADM 34.3 -97.01700000000001 232.0 19430301 20071231 723556 93953 DAVIS FIELD AIRPORT US OK KMKO 35.657 -95.361 185.9 20060101 20170924 723556 99999 MUSKOGEE/DAVIS FLD US OK KMKO 35.65 -95.367 186.0 19370911 20071231 723560 13968 TULSA INTERNATIONAL AIRPORT US OK KTUL 36.199 -95.887 198.1 19470101 20170924 723564 53908 RICHARD LLOYD JONES JR APT US OK KRVS 36.039 -95.984 194.5 20060101 20170924 723564 99999 RICHARD LLOYD JONES US OK KRVS 36.033 -95.98299999999999 194.0 19801015 20071231 723565 3959 BARTLESVILLE MUNICIPAL AIRPORT US OK KBVO 36.768 -96.02600000000001 217.9 20060101 20170923 723565 99999 BARTLESVILLE MUNI US OK KBVO 36.766999999999996 -96.01700000000001 217.0 19730101 20071231 723566 93950 MC ALESTER REGIONAL ARPT US OK KMLC 34.882 -95.78299999999999 234.7 19530701 20170924 723567 99999 TULSA WSO/(INOLA) US OK 36.18 -95.56 223.7 19770506 19770728 723570 3948 UNIVERSITY OF OKLAHOMA WESTHEIMER AIRPORT US OK KOUN 35.25 -97.46700000000001 360.3 20060101 20170924 723570 99999 NORMAN/MAX WESTHEIM US OK KOUN 35.233000000000004 -97.45 345.0 20000210 20071231 723575 3950 LAWTON-FORT SILL RGNL ARPT US OK KLAW 34.558 -98.417 325.8 20050101 20170924 723575 99999 LAWTON MUNICIPAL US OK KLAW 34.567 -98.417 338.0 19850130 20041231 723600 23051 CLAYTON MUNICIPAL AIRPARK AIRPORT US NM KCAO 36.449 -103.154 1511.8 19770827 20170924 723601 23007 CHILDRESS MUNICIPAL AP US TX KCDS 34.427 -100.28299999999999 595.0 19430215 19800901 723604 23007 CHILDRESS MUNICIPAL US TX KCDS 34.427 -100.28299999999999 595.0 19800910 20100731 723604 99999 CHILDRESS MUNICIPAL US TX 34.433 -100.28299999999999 595.0 20100801 20100817 723620 93040 SOCORRO MUNICIPAL AP US NM KONM 34.067 -106.9 1485.9 20170509 20170522 723620 99999 SOCORRO MUNI US NM KONM 34.022 -106.90299999999999 1485.9 19730101 20170923 723625 93057 GRANTS-MILAN MUNI AIRPORT US NM KGNT 35.165 -107.902 1987.3 19480101 20170924 723625 99999 GRANTS MILAN MUNI US NM KGNT 35.167 -107.9 1992.0 20000101 20031231 723626 3737 CURRITUCK COUNTY AIRPORT US NC KONX 36.399 -76.016 4.9 20060101 20170924 723626 93044 CURRITUCK CO US NC KONX 36.4 -76.017 5.0 19730101 19730108 723626 99999 CURRITUCK CO US NC KONX 36.4 -76.017 5.0 20040831 20071231 723627 23081 GALLUP MUNICIPAL AIRPORT US NM KGUP 35.514 -108.794 1972.4 19730101 20170924 723628 93942 CURTIS FIELD AIRPORT US TX KBBD 31.178 -99.324 556.9 20060101 20160320 723628 99999 BRADY/CURTIS FIELD US TX KBBD 31.183000000000003 -99.31700000000001 557.0 20050831 20071231 723629 53998 ORANGE COUNTY AIRPORT US TX KORG 30.069000000000003 -93.804 4.0 20060101 20170924 723629 99999 ORANGE CO US TX KORG 30.069000000000003 -93.801 4.0 20050831 20071231 723630 23047 AMARILLO RICK HUSBAND INTL AIRPORT US TX KAMA 35.23 -101.704 1098.5 19430301 20170923 723635 3024 HUTCHINSON COUNTY AIRPORT US TX KBGD 35.695 -101.395 930.9 20060101 20170924 723635 99999 HUTCHINSON CO US TX KBGD 35.7 -101.4 931.0 19990103 20071231 723640 99999 DONA ANA COUNTY INTL JETPORT ARPT/SANTA TERESA US NM KDNA 31.88 -106.70299999999999 1253.6 19950911 20170923 723647 3034 DOUBLE EAGLE II AIRPORT US NM KAEG 35.145 -106.795 1779.1 20060101 20170924 723647 99999 DOUBLE EAGLE II US NM KAEG 35.15 -106.8 1779.0 20010811 20071202 723650 23050 ALBUQUERQUE INTL SUNPORT AIRPORT US NM KABQ 35.042 -106.616 1618.5 19410701 20170924 723653 99999 ALBUQUERQUE RADAR US NM KZAB 35.167 -106.56700000000001 1621.0 20100512 20100512 723654 93091 LOS ALAMOS AIRPORT US NM KLAM 35.883 -106.28299999999999 2185.7 20060101 20170924 723654 99999 LOS ALAMOS US NM KLAM 35.879 -106.26899999999999 2186.0 19800228 20071231 723655 99999 MORIARTY US NM 34.98 -106.05 1890.0 19730101 20090331 723656 23049 SANTA FE MUNICIPAL AIRPORT US NM KSAF 35.617 -106.089 1933.7 19460801 20170924 723656 99999 SANTA FE CO. MUNI US NM KSAF 35.617 -106.083 1935.0 20000101 20031231 723657 3014 TORREON US NM K4SL 35.799 -107.181 2105.9 20060101 20130226 723657 99999 TORREON US NM K4SL 35.8 -107.18 2106.0 19730101 20071231 723658 23090 FOUR CORNERS REGIONAL ARPT US NM KFMN 36.744 -108.229 1674.9 19730101 20170924 723658 99999 FOUR CORNERS RGNL US NM KFMN 36.733000000000004 -108.21700000000001 1678.0 20000101 20031231 723659 99999 TAOS US NM KE23 36.383 -105.6 2126.0 19730101 19950720 723660 23007 CHILDRESS MUNICIPAL ARPT US TX KCDS 34.427 -100.28299999999999 594.7 20100801 20170924 723663 3012 TAOS REGIONAL AIRPORT US NM KSKX 36.45 -105.667 2161.3 20060101 20170924 723663 99999 TAOS MUNI APT(AWOS) US NM KSKX 36.45 -105.667 2161.0 19880319 20071231 723671 23051 CLAYTON MUNICIPAL AIRPARK US NM KCAO 36.449 -103.154 1515.5 19730101 19770831 723675 93092 CHAMA AWRS US NM KE33 36.9 -106.583 2393.0 20060101 20120930 723675 99999 CHAMA AWRS US NM KE33 36.883 -106.56700000000001 2393.0 19840607 20071231 723676 23048 TUCUMCARI MUNICIPAL ARPT US NM KTCC 35.181999999999995 -103.603 1239.0 19460801 20170924 723676 99999 TUCUMCARI MUNI US NM KTCC 35.183 -103.6 1239.0 20000101 20031231 723677 23054 LAS VEGAS MUNICIPAL ARPT US NM KLVS 35.654 -105.14200000000001 2095.2 19460801 20170924 723678 23052 RATON MUNICIPAL CREWS FIELD A US NM KRTN 36.741 -104.50200000000001 1935.2 19730101 19810402 723700 93167 KINGMAN AIRPORT US AZ KIGM 35.258 -113.93299999999999 1042.4 19990101 20170924 723700 99999 KINGMAN US AZ KIGM 35.259 -113.95 1051.0 19430329 19981231 723710 3162 PAGE MUNICIPAL AIRPORT US AZ KPGA 36.926 -111.448 1313.7 20060101 20170924 723710 99999 PAGE MUNI (AMOS) US AZ KPGA 36.933 -111.45 1304.0 19770827 20071231 723721 23184 PRESCOTT MUNICIPAL AP US AZ KPRC 34.652 -112.421 1539.8 19730101 19900228 723723 23184 ERNEST A. LOVE FIELD ARPT US AZ KPRC 34.652 -112.421 1536.8 19900228 20170924 723740 23194 WINSLOW-LINDBERGH REGIONAL AIRPORT US AZ KINW 35.028 -110.721 1489.3 19730101 20170924 723745 93139 PAYSON US AZ KPAN 34.257 -111.339 1572.0 19730101 20170923 723746 99999 SHOW LOW MUNICIPAL US AZ 34.25 -110.03299999999999 1943.0 19730102 19850125 723747 3101 SHOW LOW MUNICIPAL AIRPORT US AZ KSOW 34.264 -110.008 1954.1 20060101 20170924 723747 99999 SHOW LOW RGNL US AZ KSOW 34.266999999999996 -110.0 1955.0 19850117 20071231 723750 3103 FLAGSTAFF PULLIAM AIRPORT US AZ KFLG 35.144 -111.666 2134.5 20050101 20170924 723750 99999 FLAGSTAFF AIRPORT US AZ KFLG 35.133 -111.667 2135.0 19730101 20041231 723751 99999 US 19760305 19770213 723754 93027 ST JOHNS INDUS AIRPK ARPT US AZ KSJN 34.518 -109.37899999999999 1747.4 20060101 20170924 723754 99999 ST JOHNS INDUSTRIAL US AZ KSJN 34.516999999999996 -109.383 1748.0 19901022 20071231 723755 3103 FLAGSTAFF PULLIAM ARPT US AZ KFLG 35.144 -111.666 2139.1 19480101 20041231 723756 375 SEDONA AIRPORT US AZ KSEZ 34.85 -111.78299999999999 1471.3 20130101 20170923 723756 99999 SEDONA US AZ KSEZ 34.849000000000004 -111.788 1471.3 19920408 20170313 723757 99999 FLAGSTAFF NEXRAD US AZ FSX 34.567 -111.2 2291.0 20001130 20021021 723758 54928 RUSK COUNTY AIRPORT US WI KRCX 45.497 -91.001 377.3 20090617 20170924 723758 99999 RUSK COUNTY US WI KRCX 45.5 -91.0 377.0 20050719 20090616 723759 53990 MC CURTAIN COUNTY REGIONAL AIRPORT US OK K4O4 33.909 -94.859 143.9 20060101 20170924 723759 99999 MC CURTAIN CO RGNL US OK K4O4 33.909 -94.859 144.0 20050722 20071231 723760 99999 FLAGSTAFF US AZ 35.217 -111.81700000000001 2181.6 19981002 20170923 723761 23901 CALDWELL MUNICIPAL AIRPORT US TX KRWV 30.516 -96.704 119.2 20060101 20170924 723761 99999 CALDWELL MUNI US TX KRWV 30.517 -96.7 119.0 20050722 20071231 723762 93244 SANTA YNEZ AIRPORT US CA KIZA 34.607 -120.07600000000001 204.5 20060105 20170924 723762 99999 SANTA YNEZ US CA KIZA 34.606 -120.07600000000001 205.0 20050725 20070814 723780 99999 US 19730101 19760305 723781 99999 GRAND CANYON PARK US AZ 35.95 -112.15 2014.0 19760309 19900206 723783 3195 GRAND CANYON NATL PARK APT US AZ KGCN 35.946 -112.155 2013.5 20060101 20170924 723783 99999 GRAND CANYON NATL P US AZ KGCN 35.95 -112.133 2014.0 19900208 20071231 723785 99999 PAGE MUNI (AMOS) & US AZ 36.933 -111.45 1314.0 19730102 19770802 723786 99999 KINGMAN (AMOS) & US AZ 35.25 -113.93299999999999 1033.0 19730101 19770802 723787 99999 LAKE HAVASU (AWOS) US AZ 34.467 -111.76700000000001 147.0 19730420 19940508 723788 53135 LAUGHLIN/BULLHEAD INTERNATIONAL AIRPORT US AZ KIFP 35.157 -114.559 211.8 20060101 20170924 723788 99999 LAUGHLIN BULLHEAD IN US AZ KIFP 35.15 -114.56700000000001 212.0 19910419 20071231 723800 99999 US 19730101 19750814 723801 99999 US 19750814 19770213 723805 23179 NEEDLES AIRPORT US CA KEED 34.768 -114.619 271.3 19770217 20170924 723810 23114 EDWARDS AIR FORCE BASE US CA KEDW 34.9 -117.867 704.4 19411201 20170924 723810 99999 EDWARDS AFB US CA KEDW 34.933 -117.9 705.0 20000101 20071231 723814 93121 TWENTYNINE PALMS NAAS US CA KNXP 34.3 -116.167 695.9 19770711 19891127 723815 23161 BARSTOW-DAGGETT AIRPORT US CA KDAG 34.854 -116.786 584.3 19490101 20170924 723816 3159 GENERAL WILLIAM J. FOX AIRFIELD AIRPORT US CA KWJF 34.741 -118.212 712.6 19740601 20170924 723820 23182 PDLE PRODN FLT/TST AF PLT US CA KPMD 34.629 -118.084 769.2 19730101 20170924 723820 99999 PALMDALE PRODUCTION US CA KPMD 34.633 -118.083 774.0 20000101 20031231 723825 23131 SOUTHERN CALIFORNIA LOGISTICS AIRPORT US CA KVCV 34.583 -117.383 879.4 19420101 20170924 723825 99999 S CALIF LOGISTICS US CA KVCV 34.6 -117.383 879.0 20041230 20071231 723826 93194 INYOKERN AIRPORT US CA KIYK 35.667 -117.833 748.9 20060101 20131104 723826 99999 INYOKERN US CA KIYK 35.659 -117.83 748.0 19730621 20071231 723830 23187 SANDBERG US CA KSDB 34.744 -118.72399999999999 1374.7 19730101 20170924 723840 23155 MEADOWS FIELD AIRPORT US CA KBFL 35.434 -119.054 149.1 19411001 20170924 723850 3133 YUCCA FLATS TEST S T US NV 36.95 -116.05 1196.9 19730101 19790514 723860 23169 MCCARRAN INTERNATIONAL AIRPORT US NV KLAS 36.071999999999996 -115.163 664.5 19730101 20170924 723865 99999 NELLIS AFB US NV 36.233000000000004 -115.03299999999999 583.0 20000101 20170923 723870 3160 DESERT ROCK AIRPORT US NV KDRA 36.621 -116.02799999999999 984.5 19780515 20170924 723874 99999 BICYCLE LAKE FORT IRWIN AAF(N US CA 35.283 -116.617 716.0 19791111 19831205 723884 93218 JOLON HUNTER LIGGETT MIL RES US CA 36.0 -121.23299999999999 317.0 19880105 19891127 723890 93193 FRESNO YOSEMITE INTERNATIONAL AIRPORT US CA KFAT 36.78 -119.719 101.5 19411204 20170924 723894 3181 MAMMOTH YOSEMITE AIRPORT US CA KMMH 37.633 -118.85 2172.6 20060103 20170924 723894 99999 MAMMOTH YOSEMITE US CA KMMH 37.624 -118.838 2173.0 19840331 20071231 723895 23149 PORTERVILLE MUNICIPAL ARPT US CA KPTV 36.029 -119.06299999999999 134.7 20060101 20170924 723895 99999 PORTERVILLE MUNI US CA KPTV 36.033 -119.06700000000001 135.0 19920129 20071231 723896 93144 VISALIA MUNICIPAL AIRPORT US CA KVIS 36.317 -119.4 89.9 20060101 20170924 723896 99999 VISALIA MUNI US CA KVIS 36.317 -119.4 90.0 19730118 20071231 723897 23167 FRESNO CHANDLER EXEC US CA KFCH 36.732 -119.82 85.0 19950423 19970923 723897 99999 FRESNO CHANDLER EXECUTIVE US CA KFCH 36.732 -119.82 84.7 20150717 20170923 723898 53119 HANFORD MUNICIPAL AIRPORT US CA KHJO 36.319 -119.62899999999999 75.9 20060101 20170924 723898 99999 HANFORD MUNI US CA KHJO 36.317 -119.633 74.0 19981005 20071231 723900 93226 SAN SIMEON/PT. PIED US CA K87Q 35.666 -121.285 21.0 19990101 20050607 723900 99999 POINT PIEDRAS BLANCA US CA 35.67 -121.28 17.0 19430607 19981231 723910 93111 POINT MUGU US CA KNTD 34.117 -119.117 4.0 19730101 20170924 723914 93218 JOLON HUNTER LIGGETT MIL RES US CA 36.0 -121.23299999999999 317.0 19790315 19880105 723915 99999 SANTA CRUZ ISLAND US CA KSZN 34.02 -119.75 10.0 19730103 19800617 723920 99999 SANTA PAULA US CA 34.35 -119.06700000000001 75.0 19730207 19760305 723921 99999 POINT ARGUELLO(CGS) US CA 34.567 -120.667 2.0 19760309 19861124 723923 99999 SANTA BARBARA HARBOR US CA 34.4 -119.7 8.0 19770827 19960701 723924 99999 VENTURA HARBOR US CA 34.25 -119.25 7.0 19770827 19960701 723925 23190 SANTA BARBARA MUNICIPAL AIRPORT US CA KSBA 34.426 -119.84299999999999 2.7 19730101 20170924 723926 23136 CAMARILLO AIRPORT US CA KCMA 34.217 -119.083 23.5 20060101 20170924 723926 99999 CAMARILLO US CA KCMA 34.217 -119.1 23.0 19730101 20071231 723927 93110 OXNARD AIRPORT US CA KOXR 34.201 -119.20700000000001 11.0 19440401 20170924 723927 99999 OXNARD US CA KOXR 34.201 -119.20700000000001 14.0 20000101 20031231 723928 99999 SANTA PAULA ARPT US CA KSZP 34.35 -119.083 78.9 19841106 19841106 723929 99999 OXNARD / CHANNEL ISLAND US CA 34.17 -119.22 2.0 19760130 19960701 723930 93214 VANDENBERG AFB US CA KVBG 34.717 -120.56700000000001 112.5 20060101 20170924 723930 99999 VANDENBERG AFB US CA KVBG 34.75 -120.56700000000001 121.0 19510703 20071231 723935 99999 VANDENBERG RANGE US CA KXVW 34.717 -120.56700000000001 100.0 19950505 20020308 723940 23273 SANTA MARIA PUB/CAPT G A HANCOCK AP US CA KSMX 34.899 -120.449 73.8 19730101 20170924 723960 99999 US 19730101 19760210 723961 99999 PT.PIEDRAS BLANCA US CA 35.667 -121.28299999999999 10.0 19760730 19770728 723965 93209 PASO ROBLES MUNICIPAL ARPT US CA KPRB 35.67 -120.62799999999999 246.9 19411201 20170924 723980 93720 SALBRY-OCN CTY WICO RGNL AP US MD KSBY 38.341 -75.513 14.3 20100801 20170924 723990 14711 HARRISBURG INTERNATIONAL AIRPORT US PA KMDT 40.196 -76.77199999999999 95.1 20100801 20170924 724006 3701 CHESAPEAKE REGIONAL ARPT US VA KCPK 36.666 -76.321 6.1 20060101 20170925 724006 99999 CHESAPEAKE RGNL US VA KCPK 36.667 -76.317 6.0 20010811 20071231 724007 3719 SUFFOLK MUNICIPAL AIRPORT US VA KSFQ 36.681999999999995 -76.602 22.0 20060101 20170924 724007 99999 SUFFOLK EXECUTIVE US VA KSFQ 36.683 -76.6 22.0 19990114 20071231 724008 93781 HALIFAX COUNTY AIRPORT US NC KRZZ 36.439 -77.71 78.0 20060101 20090625 724008 99999 HALIFAX CO US NC KRZZ 36.433 -77.717 78.0 19990114 20071231 724010 13740 RICHMOND INTERNATIONAL AIRPORT US VA KRIC 37.505 -77.32 50.0 19420924 20170924 724014 93714 DINWIDDIE COUNTY AIRPORT US VA KPTB 37.183 -77.5 58.8 20060101 20170924 724014 99999 DINWIDDIE CO US VA KPTB 37.183 -77.5 59.0 19920807 20071231 724015 13726 FT PICKETT/BLACKSTO US VA KBKT 37.083 -77.95 134.0 19430601 19430701 724015 99999 ALLEN C PERKINSON BLACKSTONE AAF US VA KBKT 37.074 -77.958 133.8 20030922 20170923 724016 93736 CHARLOTTES-ALBEMARLE ARPT US VA KCHO 38.139 -78.453 195.4 19730101 20170924 724016 99999 CHARLOTTESVILLE ALB US VA KCHO 38.133 -78.45 195.0 20000101 20031231 724017 3707 FARMVILLE REGIONAL AIRPORT US VA KFVX 37.358000000000004 -78.438 127.1 20060101 20170924 724017 99999 FARMVILLE RGNL US VA KFVX 37.35 -78.433 127.0 19940718 20071231 724019 93773 WAKEFIELD MUNICIPAL ARPT US VA KAKQ 36.984 -77.007 33.2 20060101 20170924 724019 99999 WAKEFIELD MUNI US VA KAKQ 36.983000000000004 -77.0 34.0 19971210 20071231 724020 93739 WALLOPS FLIGHT FACILITY AIRPORT US VA KWAL 37.937 -75.471 14.0 19730101 20170924 724020 99999 WALLOPS ISL STN US VA KWAL 37.933 -75.483 12.0 19800101 19850311 724024 93739 WALLOPS ISLAND UAU US VA KWAL 37.937 -75.471 14.6 19791231 19910228 724025 99999 WEIRWOOD / KELLAM FIELD US VA 37.47 -75.88 12.0 19850814 19870813 724026 3716 ACCOMACK COUNTY AIRPORT US VA KMFV 37.647 -75.76100000000001 14.3 20060101 20170925 724026 99999 ACCOMACK CO US VA KMFV 37.647 -75.76100000000001 14.0 19750916 20071231 724027 99999 PARRAMORE BEACH US VA 37.53 -75.62 1.0 19750916 19940630 724028 99999 CAPE CHARLES COAST GUARD STATION US VA 37.25 -76.0 2.0 19790507 19910113 724029 93775 RICHMOND (ASOS) US VA KOFP 37.708 -77.434 62.5 20060101 20170924 724029 99999 RICHMOND (ASOS) US VA 37.7 -77.433 63.0 19970318 19970318 724030 93738 WASHINGTON DULLES INTERNATIONAL AP US VA KIAD 38.935 -77.447 88.4 19730101 20170924 724033 3706 SHANNON AIRPORT US VA KEZF 38.266999999999996 -77.449 25.9 20060101 20170924 724033 99999 SHANNON US VA KEZF 38.266999999999996 -77.45 26.0 19941016 20071231 724035 13773 QUANTICO MCAF US VA KNYG 38.504 -77.305 3.1 19730101 20170924 724036 3710 MANSAS RGNL/H P DAVS FD AP US VA KHEF 38.721 -77.515 58.5 20060101 20170925 724036 99999 MANASSAS RGNL DAVIS US VA KHEF 38.721 -77.515 59.0 19920408 20071231 724037 93728 DAVISON AAF AIRPORT US VA KDAA 38.717 -77.183 22.3 19570201 20170924 724037 99999 DAVISON AAF US VA KDAA 38.717 -77.183 22.0 20000101 20071231 724040 13721 NAVAL AIR STATION US MD KNHK 38.3 -76.417 11.9 19450301 20170924 724043 3756 EASTON/NEWNAM FIELD AIRPORT US MD KESN 38.804 -76.069 22.0 20060428 20170924 724043 99999 EASTON/NEWMAN/FLD US MD KESN 38.8 -76.067 22.0 19960229 20071231 724045 93720 SALISBURY OCEAN CIT US MD KSBY 38.341 -75.51 18.3 19730101 20100731 724045 99999 SALISBURY OCEAN CIT US MD 38.333 -75.5 16.0 20100801 20100817 724046 99999 INDIAN RIVER COAST GUARD STATION US DE 38.62 -75.07 1.0 19750716 19920316 724047 99999 THOMAS POINT COAST GUARD STATION US MD 38.9 -76.43 1.0 19750916 19860903 724048 99999 COVE POINT COAST GUARD LIGHT STA US 38.38 -76.38 1.0 19750916 19860902 724049 99999 SMITH POINT / SUNNYBANK US VA 37.88 -76.18 1.0 19760130 19770110 724050 13743 RONALD REAGAN WASHINGTON NATL AP US VA KDCA 38.847 -77.035 3.1 19360901 20170924 724053 3717 WINCHESTER REGIONAL ARPT US VA KOKV 39.143 -78.14399999999999 221.6 20060101 20170924 724053 99999 WINCHESTER RGNL US VA KOKV 39.15 -78.15 222.0 19950101 20071231 724055 3714 LESSBURG EXECUTIVE AIRPORT US VA KJYO 39.078 -77.558 118.6 20060101 20170924 724055 99999 LEESBURG EXECUTIVE US VA KJYO 39.078 -77.558 119.0 19950101 20071231 724056 63805 MOUNTIAN EMPIRE AIRPORT US VA KMKJ 36.895 -81.35 780.0 20060101 20170924 724056 99999 MOUNTAIN EMPIRE US VA KMKJ 36.895 -81.35 780.0 19950423 20071231 724057 13701 PHILLIPS ARMY AIRFIELD US MD KAPG 39.472 -76.17 17.4 20060103 20170924 724057 99999 PHILLIPS AAF US MD KAPG 39.467 -76.167 17.0 19770701 20071231 724058 53818 VIRGINIA HIGHLANDS AIRPORT US VA KVJI 36.683 -82.03299999999999 630.9 20060101 20170924 724058 99999 VIRGINIA HIGHLANDS US VA KVJI 36.683 -82.03299999999999 636.0 19840607 20071231 724060 93721 BALTIMORE-WASHINGTON INTL AIRPORT US MD KBWI 39.173 -76.684 47.6 19450101 20170924 724064 99999 FORT RITCHIE/SITE R US MD 39.733000000000004 -77.433 275.0 19610911 20010612 724065 93733 TIPTON AIRPORT US MD KFME 39.083 -76.767 46.0 19591113 19890929 724065 99999 TIPTON US MD KFME 39.085 -76.759 45.7 20050519 20170923 724066 93706 HGRTWN RGNL-R.HNSON FLD AP US MD KHGR 39.708 -77.73 212.8 20060101 20170924 724066 99999 HAGERSTOWN RGNL RIC US MD KHGR 39.7 -77.717 215.0 19730122 20071231 724067 93744 MARTIN STATE AIRPORT US MD KMTN 39.333 -76.417 6.4 20060101 20170924 724067 99999 MARTIN STATE US MD KMTN 39.317 -76.4 7.0 19700701 20071231 724069 99999 STILLPOND COAST GUARD STATION US MD 39.33 -76.1 8.0 19750916 19890803 724070 93730 ATLANTIC CITY INTERNATIONAL AIRPORT US NJ KACY 39.452 -74.567 18.3 19470101 20170924 724074 93780 SOUTH JERSEY REGIONAL ARPT US NJ KVAY 39.949 -74.842 16.2 20060101 20170924 724074 99999 SOUTH JERSEY RGNL US NJ KVAY 39.95 -74.85 16.0 19950105 20071231 724075 13735 MILLVILLE MUNICIPAL ARPT US NJ KMIV 39.366 -75.078 18.3 19730101 20170924 724076 13724 ATLANTIC CITY (CGS) US NJ ATLN 39.379 -74.42399999999999 3.4 19750915 19910215 724077 54779 AEROFLEX-ANDOVER AIRPORT US NJ K12N 41.00899999999999 -74.737 177.7 20060101 20170924 724077 99999 AEROFLEX ANDOVER US NJ K12N 41.016999999999996 -74.733 178.0 19990426 20071231 724080 13739 PHILADELPHIA INTERNATIONAL AIRPORT US PA KPHL 39.873000000000005 -75.227 3.1 19730101 20170924 724083 99999 DOVER(NEXRAD) US DE KDOX 38.833 -75.433 15.0 19820625 19821121 724084 4739 MONMOUTH EXECUTIVE US NJ KBLM 40.183 -74.117 48.0 19830421 19991231 724084 54760 MONMOUTH EXECUTIVE AIRPORT US NJ KBLM 40.183 -74.133 48.5 20060101 20170924 724084 99999 MONMOUTH EXECUTIVE US NJ KBLM 40.183 -74.117 48.0 20000101 20071231 724085 94732 NE PHILADELPHIA AIRPORT US PA KPNE 40.082 -75.01100000000001 30.5 19730101 20170924 724085 99999 NORTHEAST PHILADELPH US PA KPNE 40.082 -75.01100000000001 37.0 20000101 20031231 724086 14793 WILLOW GROVE NAS US PA KNXX 40.2 -75.15 110.0 19730101 20110412 724087 99999 MANASQUAN INL COAST GUARD STATIO US 40.1 -74.02 1.0 19431101 19960409 724088 13707 DOVER AFB AIRPORT US DE KDOV 39.133 -75.467 8.5 19421201 20170924 724088 99999 DOVER AFB US DE KDOV 39.117 -75.467 9.0 20000101 20071231 724089 13781 WILMINGTON NEW CAST US DE KILG 39.673 -75.601 24.4 19420801 20100731 724089 99999 WILMINGTON NEW CAST US DE 39.683 -75.6 25.0 20100801 20100817 724090 14780 NAES/MAXFIELD FIELD US NJ KNEL 40.033 -74.35 30.8 19730101 20170924 724093 13764 SUSSEX COUNTY AIRPORT US DE KGED 38.689 -75.359 15.5 20060101 20170925 724093 99999 SUSSEX CO US DE KGED 38.683 -75.367 15.0 19870202 20071231 724094 54743 ESSEX COUNTY AIRPORT US NJ KCDW 40.876 -74.283 52.7 20060101 20170924 724094 99999 ESSEX CO US NJ KCDW 40.883 -74.283 53.0 19810805 20071231 724095 14792 TRENTON MERCER AIRPORT US NJ KTTN 40.277 -74.816 56.1 19730101 20170924 724095 99999 TRENTON MERCER US NJ KTTN 40.266999999999996 -74.8 65.0 20000101 20031231 724096 14706 MCGUIRE AFB AIRPORT US NJ KWRI 40.016999999999996 -74.6 39.9 19420801 20170924 724096 99999 MC GUIRE AFB US NJ KWRI 40.016999999999996 -74.583 40.0 20000101 20071231 724097 54738 MORRISTOWN MUNICIPAL AIRPORT US NJ KMMU 40.8 -74.417 57.0 20060101 20170925 724097 99999 MORRISTOWN MUNI US NJ KMMU 40.8 -74.417 57.0 19810112 20071231 724098 99999 AMBROSE / FT. TILDEN US NY 40.45 -73.82 1.0 19750915 19870430 724099 99999 SANDY HOOK COAST GUARD STATION US NJ 40.47 -74.02 5.0 19750911 19960627 724100 13733 LYNCHBURG RGNL/PRESTON GLENN FLD AP US VA KLYH 37.321 -79.207 286.5 19730101 20170924 724104 99999 SOMERSET ARPT ASOS US NJ KSMQ 40.633 -74.667 32.0 19990114 20050208 724105 93760 SHENANDOAH VALLEY RGNL ART US VA KSHD 38.264 -78.896 366.1 20060101 20170924 724105 99999 SHENANDOAH VALLEY RG US VA KSHD 38.266999999999996 -78.9 366.0 19730101 20071231 724106 13728 DANVILLE REGIONAL AIRPORT US VA KDAN 36.573 -79.335 174.0 19730101 20170924 724106 99999 DANVILLE RGNL US VA KDAN 36.567 -79.333 174.0 20000101 20031231 724107 53895 TWIN COUNTY AIRPORT US VA KHLX 36.766 -80.82300000000001 820.8 20060101 20170924 724107 99999 TWIN COUNTY US VA KHLX 36.766999999999996 -80.817 821.0 19950101 20071231 724110 13741 ROANOKE REGIONAL/WOODRUM FIELD AP US VA KROA 37.317 -79.97399999999999 358.1 19730101 20170924 724113 53881 VIRGINIA TECH AIRPORT US VA KBCB 37.208 -80.408 649.8 20060101 20170924 724113 99999 VIRGINIA TECH ARPT US VA KBCB 37.208 -80.408 650.0 19941016 20071231 724115 93757 INGALLS FIELD AIRPORT US VA KHSP 37.95 -79.817 1156.1 20060101 20170924 724115 99999 INGALLS FLD US VA KHSP 37.95 -79.833 1156.0 19730101 20071231 724116 13868 NEW RIVER VALLEY AIRPORT US VA KPSK 37.133 -80.683 641.6 19940818 20170924 724116 99999 DUBLIN/NEW RIV VLLY US VA KPSK 37.133 -80.683 642.0 20000101 20031231 724117 63802 LONESOME PINE AIRPORT US VA KLNP 36.988 -82.53 818.1 20060101 20170924 724117 99999 LONESOME PINE US VA KLNP 36.983000000000004 -82.53299999999999 818.0 19800227 20071231 724118 93797 MCKNBRG-BRUNWICK RGNL ARPT US VA KAVC 36.688 -78.054 134.7 20060101 20170924 724118 99999 MECKLENBURG BRUNSWI US VA KAVC 36.683 -78.05 135.0 19970123 20071231 724120 3872 RALEIGH COUNTY MEMORIAL AIRPORT US WV KBKW 37.784 -81.123 766.3 19730101 20170924 724125 3859 MERCER COUNTY AIRPORT US WV KBLF 37.298 -81.204 870.5 20000101 20170924 724125 99999 MERCER CO US WV KBLF 37.296 -81.208 871.0 19730101 19991231 724126 99999 WHITE SULPHUR SPRNG US WV KSSU 37.766999999999996 -80.333 549.0 19730101 19861008 724127 53801 GREENBRIER VALLEY ARIPORT US WV KLWB 37.867 -80.4 701.7 20060101 20170924 724127 99999 GREENBRIER VALLEY US WV KLWB 37.858000000000004 -80.399 702.0 19730101 20071231 724130 99999 US 19730101 19760304 724131 99999 PIKEVILLE (RAMOS) US KY 5I3 37.483000000000004 -82.51700000000001 209.0 19760305 19900206 724133 99999 PIKEVILLE REMOTE AUTOMATIC METEO US 37.48 -82.52 446.0 19900208 19920729 724140 13866 YEAGER AIRPORT US WV KCRW 38.379 -81.59 277.4 19730101 20170924 724165 3725 GRANT CO US WV KW99 38.994 -79.14399999999999 292.6 20060101 20170924 724165 99999 GRANT CO US WV 38.983000000000004 -79.15 293.5 20010811 20071231 724170 13729 ELKINS-RAND CO-J.RAND FIELD AIRPORT US WV KEKN 38.885 -79.85300000000001 603.2 19730101 20170924 724175 3802 HARRISON/MARION RGNL ARPT US WV KCKB 39.296 -80.229 366.7 20060101 20170924 724175 99999 HARRISON MARION RGN US WV KCKB 39.283 -80.217 371.0 19730101 20071231 724176 13736 MGTN RGNL-W L B HART FD AP US WV KMGW 39.643 -79.916 378.0 19730101 20170924 724177 13734 ETRN WV RGNL/SHPHERD FD AP US WV KMRB 39.404 -77.945 162.8 19730101 20170924 724180 13781 NEW CASTLE COUNTY AIRPORT US DE KILG 39.674 -75.60600000000001 24.1 20100801 20170924 724190 3889 JULIAN CARROLL AIRPORT US KY KJKL 37.591 -83.314 416.1 20100801 20170924 724200 14891 MANSFIELD LAHM REGIONAL AIRPORT US OH KMFD 40.82 -82.51799999999999 393.2 20100801 20170924 724210 93814 CINCINNATI/NORTHERN KENTUCKY INTL AP US KY KCVG 39.044000000000004 -84.67200000000001 269.1 19730101 20170924 724220 93820 BLUE GRASS AIRPORT US KY KLEX 38.041 -84.60600000000001 298.7 19730101 20170924 724230 93821 LOUISVILLE INTL-STANDIFORD FIELD AP US KY KSDF 38.181 -85.73899999999999 148.7 19730101 20170924 724233 53841 CAPITAL CITY AIRPORT US KY KFFT 38.185 -84.90299999999999 245.1 20060101 20170924 724233 99999 CAPITAL CITY ARPT US KY KFFT 38.183 -84.9 245.0 19970123 20071231 724235 13810 BOWMAN FIELD AIRPORT US KY KLOU 38.228 -85.664 164.6 19411101 20170924 724235 99999 BOWMAN FLD US KY KLOU 38.217 -85.65 166.0 20000101 20031231 724236 3889 JACKSON CARROLL ARPT US KY KJKL 37.591 -83.314 413.6 19730102 20100801 724236 99999 JACKSON CARROLL AIRPORT US KY 37.6 -83.31700000000001 421.0 20100801 20100817 724237 53803 OWENSBORO-DAVIESS COUNTY AIRPORT US KY KOWB 37.75 -87.167 122.8 20060101 20170924 724237 99999 OWENSBORO DAVIESS C US KY KOWB 37.733000000000004 -87.167 124.0 19730101 20071231 724238 53886 HENDERSON CITY-COUNTY ARPT US KY KEHR 37.8 -87.68299999999999 118.0 20060101 20170924 724238 99999 HENDERSON CITY CO US KY KEHR 37.8 -87.68299999999999 118.0 19921008 20071231 724240 13807 GODMAN AAF AIRPORT US KY KFTK 37.9 -85.96700000000001 230.1 19450301 20170924 724240 99999 FORT KNOX/GODMAN US KY KFTK 37.9 -85.96700000000001 230.0 20000101 20071231 724243 3849 LDON-CRBN APT-MGEE FLD APT US KY KLOZ 37.086999999999996 -84.07700000000001 362.1 19910321 20170924 724250 3860 TRI-STATE/M.J.FERGUSON FIELD AIRPORT US WV KHTS 38.365 -82.555 251.2 19730101 20170924 724270 3804 OAK RIDGE US TN KPKB 39.2 -81.27 263.3 19730101 19850531 724270 53868 OAK RIDGE US TN KOQT 36.023 -84.234 274.3 20100801 20170924 724270 99999 OAK RIDGE US TN KOQT 36.016999999999996 -84.21700000000001 279.0 20020503 20060202 724271 3804 PARKERSBURG WOOD COUNTY AP US WV KPKB 39.2 -81.27 263.3 19850531 19900206 724273 3804 MID-OHIO VALLEY REGIONAL AIRPORT US WV KPKB 39.34 -81.444 253.3 19900208 20170924 724275 14894 WHEELING OHIO COUNTY ARPT US WV KHLG 40.176 -80.64699999999999 359.4 19730101 20170924 724275 99999 WHEELING OHIO CO US WV KHLG 40.167 -80.65 364.0 20000101 20031231 724276 53859 DAYTON-WRIGHT BROTHERS APT US OH KMGY 39.594 -84.226 293.2 20060101 20170924 724276 99999 DAYTON WRIGHT BROTHE US OH KMGY 39.589 -84.225 292.0 19990114 20071231 724280 14821 PORT COLUMBUS INTERNATIONAL AIRPORT US OH KCMH 39.991 -82.87700000000001 248.7 19450401 20170924 724284 63825 BOLTON FIELD AIRPORT US OH KTZR 39.9 -83.133 275.8 20060101 20170924 724284 99999 BOLTON FLD US OH KTZR 39.9 -83.133 276.0 19810807 20071231 724285 13812 RICKENBACKER INTL AIRPORT US OH KLCK 39.817 -82.93299999999999 226.8 19420801 20170924 724285 99999 RICKENBACKER INTL US OH KLCK 39.8 -82.917 227.0 19930101 20071231 724286 93824 ZANESVILLE MUNICIPAL ARPT US OH KZZV 39.944 -81.892 268.2 19730101 20170924 724287 4848 METCALF FIELD AIRPORT US OH KTDZ 41.563 -83.476 189.6 20060101 20170924 724287 99999 METCALF FLD US OH KTDZ 41.567 -83.48299999999999 190.0 19980514 20071231 724288 4804 OHIO STATE UNIVERSITY ARPT US OH KOSU 40.078 -83.07799999999999 275.8 20060101 20170924 724288 99999 OHIO STATE UNIVERSI US OH KOSU 40.067 -83.06700000000001 276.0 19730622 20071231 724289 99999 TOLEDO COAST GUARD STATION US OH 41.7 -83.45 180.0 19760926 19960701 724290 93815 J.M.COX DAYTON INTERNATIONAL AIRPORT US OH KDAY 39.906 -84.219 305.7 19730101 20170924 724293 99999 MOUNT WERNER US CO K3MW 40.46 -106.76 3241.0 20050322 20140721 724294 53844 FAIRFIELD COUNTY AIRPORT US OH KLHQ 39.756 -82.65700000000001 264.9 20060101 20170925 724294 99999 FAIRFIELD CO US OH KLHQ 39.75 -82.65 265.0 19970123 20071231 724295 3867 SPRINGFIELD BECKLEY US OH KSGH 39.833 -83.833 320.0 19730103 19991229 724295 63888 SPRINGFIELD-BECKLEY MUNICIPAL AIRPORT US OH KSGH 39.84 -83.84 320.3 20060103 20170924 724295 99999 SPRINGFIELD BECKLEY US OH KSGH 39.833 -83.833 320.0 20000103 20071231 724296 13841 AIRBORNE AIRPARK AIRPORT US OH KILN 39.42 -83.822 328.3 19430801 20170924 724296 99999 AIRBORNE AIRPARK US OH KILN 39.433 -83.8 328.0 20000101 20031231 724297 93812 CINA MUNI APT/LUKN FD APT US OH KLUK 39.103 -84.419 149.4 19730101 20170925 724298 4850 LIMA ALLEN COUNTY AIRPORT US OH KAOH 40.708 -84.027 297.2 20060101 20170924 724298 99999 LIMA ALLEN CO US OH KAOH 40.707 -84.027 297.0 19980514 20071231 724303 14813 AKRON FULTON INTL AIRPORT US OH KAKR 41.038000000000004 -81.464 318.2 19990502 20170924 724303 99999 AKRON FULTON INTL US OH KAKR 41.033 -81.467 325.0 20000101 20031231 724320 93817 EVANSVILLE REGIONAL AIRPORT US IN KEVV 38.044000000000004 -87.521 121.9 19730101 20170924 724325 99999 RACEWAY US IN 38.049 -87.381 122.0 19860203 19890829 724330 3879 SALEM-LECKRONE AIRPORT US IL KSLO 38.65 -88.96700000000001 173.7 20060101 20170924 724330 99999 SALEM-LECKRONE US IL KSLO 38.65 -88.96700000000001 174.0 19730101 20071231 724335 93894 MOUNT VERNON AIRPORT US IL KMVN 38.323 -88.85799999999999 146.3 20060101 20170924 724335 99999 MOUNT VERNON US IL KMVN 38.317 -88.867 146.0 19730101 20071231 724336 93810 SOUTHERN ILLINOIS AIRPORT US IL KMDH 37.78 -89.25 123.8 20060101 20170924 724336 99999 SOUTHERN ILLINOIS US IL KMDH 37.766999999999996 -89.25 125.0 19730101 20071231 724337 3838 VANDALIA MUNICIPAL US IL KVLA 39.0 -89.167 164.0 19730101 19730515 724338 13802 SCOTT AIR FORCE BASE/MIDAMERICA AIRPORT US IL KBLV 38.55 -89.85 139.9 19380101 20170924 724338 99999 SCOTT AFB MIDAMERIC US IL KBLV 38.533 -89.833 140.0 20000101 20071231 724339 3865 WILLIAMSON COUNTY RGNL APT US IL KMWA 37.75 -89.0 140.2 20060101 20170924 724339 99999 WILLIAMSON CO RGNL US IL KMWA 37.75 -89.01700000000001 144.0 19760116 20071231 724340 13994 LAMBERT-ST LOUIS INTERNATIONAL AP US MO KSTL 38.753 -90.374 161.9 19730101 20170924 724343 99999 ST LOUIS NEXRAD US MO 36.7 -90.68299999999999 220.0 20000817 20020424 724345 3966 SPIRIT OF ST LOUIS AIRPORT US MO KSUS 38.657 -90.656 140.8 19730101 20170924 724347 53904 ST CHARLES CO SMARTT ARPT US MO KSET 38.929 -90.428 132.9 20060101 20170924 724347 99999 ST CHARLES CO SMARTT US MO KSET 38.933 -90.43299999999999 133.0 20010811 20071231 724350 3816 BARKLEY REGIONAL AIRPORT US KY KPAH 37.056 -88.774 125.9 19890101 20170924 724354 63815 SOMERSET-PULASKI CO-J.T. WILSON FIELD AIRPORT US KY KSME 37.054 -84.615 282.6 20060101 20170924 724354 99999 SOMERSET PULASKI CO US KY KSME 37.053000000000004 -84.616 283.0 19920807 20071231 724356 53866 SHELBYVILLE MINUCIPAL ARPT US IN KGEZ 39.578 -85.803 245.1 20060101 20170924 724356 99999 SHELBYVILLE MUNI US IN KGEZ 39.583 -85.8 245.0 20010811 20071231 724360 13803 COLUMBUS BAKALAR US IN KBAK 39.266999999999996 -85.9 199.9 19840816 19840823 724361 13803 COLUMBUS BAKALAR US IN KBAK 39.266999999999996 -85.9 199.9 19430501 19900206 724363 13803 COLUMBUS MUNICIPAL AIRPORT US IN KBAK 39.266999999999996 -85.9 200.0 19900208 20170924 724363 99999 COLUMBUS MUNI US IN KBAK 39.25 -85.883 200.0 20000102 20071231 724365 53896 HUNTINGBURG AIRPORT US IN KHNB 38.249 -86.954 161.2 20060101 20170924 724365 99999 HUNTINGBURG US IN KHNB 38.25 -86.95 161.0 19940103 20071231 724370 93823 TERRE HAUTE HULMAN REGIONAL A US IN HUF 39.45 -87.3 175.3 19480101 19850531 724370 99999 TERRE HAUTE HULMAN REGIONAL A US IN HUF 39.45 -87.3 175.3 20011208 20030504 724371 93823 TERRE HAUTE HULMAN REGIONAL A US IN 39.45 -87.3 175.3 19850531 19900206 724373 3868 TER HUTE INTL-HULMAN FD AP US IN KHUF 39.452 -87.309 175.3 20060101 20170924 724373 93823 TERRE HAUTE INTL HU US IN KHUF 39.45 -87.3 180.0 19900208 19991231 724373 99999 TERRE HAUTE INTL HU US IN KHUF 39.45 -87.3 180.0 20000101 20071231 724375 3893 MONROE COUNTY AIRPORT US IN KBMG 39.133 -86.617 257.3 20060101 20170924 724375 99999 MONROE CO US IN KBMG 39.133 -86.617 258.0 19730101 20071231 724380 93819 INDIANAPOLIS INTERNATIONAL AIRPORT US IN KIND 39.725 -86.28200000000001 241.1 19421006 20170924 724384 53842 EAGLE CREEK AIRPARK ARPT US IN KEYE 39.825 -86.296 250.9 20060101 20170924 724384 99999 EAGLE CREEK AIRPARK US IN KEYE 39.830999999999996 -86.294 251.0 19990114 20071231 724385 4828 ANRSN MUNI DRNGTON FLD AP US IN KAID 40.117 -85.617 274.3 20060101 20170923 724385 99999 ANDERSON MUNI DARLIN US IN KAID 40.117 -85.617 280.0 19840816 20071231 724386 14835 PURDUE UNIVERSITY AIRPORT US IN KLAF 40.412 -86.93700000000001 182.6 19730101 20170924 724387 54807 KOKOMO MUNICIPAL AIRPORT US IN KOKK 40.528 -86.059 253.0 20060101 20170924 724387 99999 KOKOMO MUNI US IN KOKK 40.533 -86.06700000000001 253.0 19940728 20071231 724388 14829 GOSHEN MUNICIPAL AIRPORT US IN KGSH 41.533 -85.78299999999999 253.0 19961002 20170924 724388 99999 GOSHEN MUNI US IN KGSH 41.533 -85.8 252.0 20000101 20031231 724389 12991 SHIP SHOAL 207A US LA KGSM 28.517 -90.96700000000001 32.3 20061020 20100513 724389 99999 SHIP SHOAL 207A US LA KGSM 28.53 -90.98 1.0 20040904 20071126 724390 93822 ABRAHAM LINCOLN CAPITAL AIRPORT US IL KSPI 39.845 -89.684 181.1 19730101 20170924 724394 99999 ALTON US IL 38.883 -90.05 166.0 19840225 19840229 724395 3958 ST LOUIS REGIONAL AIRPORT US IL KALN 38.883 -90.05 165.5 20060101 20170924 724395 99999 ST LOUIS RGNL US IL KALN 38.883 -90.03299999999999 166.0 19730101 20071231 724396 93989 QUINCY RGNL BALDWIN US IL KUIN 39.937 -91.19200000000001 233.5 19730101 20100801 724396 99999 QUINCY RGNL BALDWIN US IL 39.933 -91.18299999999999 240.0 20100801 20100817 724397 54831 CENTRAL ILLINOIS REGIONAL AIRPORT US IL KBMI 40.483000000000004 -88.95 263.7 20060101 20170924 724397 99999 CENTRAL ILLINOIS RG US IL KBMI 40.467 -88.917 265.0 19760402 20071231 724398 99999 WEST PLAINS US IL 36.883 -91.9 374.0 19760402 20010516 724400 13995 SPRINGFIELD-BRANSON REGIONAL AIRPORT US MO KSGF 37.24 -93.39 383.7 19730101 20170924 724420 13997 ROLLA NATIONAL AIRPORT US MO KVIH 38.131 -91.76799999999999 343.5 20100801 20170924 724430 93989 QUINCY RGNL-BLDWN FLD ARPT US IL KUIN 39.937 -91.19200000000001 234.4 20100801 20170924 724450 3945 COLUMBIA REGIONAL AIRPORT US MO KCOU 38.817 -92.21799999999999 272.2 19730101 20170924 724453 3994 SEDALIA MEMORIAL AIRPORT US MO KDMO 38.704 -93.18299999999999 274.3 20060101 20170924 724453 99999 SEDALIA MEMORIAL US MO KDMO 38.707 -93.176 277.0 19970123 20071231 724454 93996 FARMINGTON REGIONAL ARPT US MO KFAM 37.760999999999996 -90.428 288.7 19950210 20170924 724454 99999 FARMINGTON RGNL US MO KFAM 37.760999999999996 -90.429 289.0 20000101 20031231 724455 14938 KIRKSVILLE REGIONAL ARPT US MO KIRK 40.097 -92.54299999999999 294.4 19730101 20170924 724455 99999 KIRKSVILLE RGNL US MO KIRK 40.083 -92.53299999999999 294.0 20000101 20031231 724456 13997 ROLLA/VICHY AIRPORT US MO KVIH 38.131 -91.76799999999999 346.6 19730101 20100801 724456 99999 ROLLA/VICHY AIRPORT US MO 38.133 -91.76700000000001 350.0 20100801 20100817 724457 3938 WAYNESVILLE REGIONAL AIRPORT AT FORNEY FIELD US MO KTBN 37.75 -92.15 353.3 19630320 20170924 724457 99999 WAYNESVILLE RGNL AR US MO KTBN 37.733000000000004 -92.133 353.0 20000101 20071231 724458 3963 JEFFERSON CITY MEMO ARPT US MO KJEF 38.591 -92.156 174.7 20060101 20170924 724458 99999 JEFFERSON CITY MEM US MO KJEF 38.583 -92.15 167.0 19731129 20071231 724459 53931 LEE C FINE MEMORIAL ARPT US MO KAIZ 38.096 -92.553 264.9 20060101 20170924 724459 99999 LEE C FINE MEM US MO KAIZ 38.1 -92.55 265.0 19850423 20071231 724460 3947 KANSAS CITY INTERNATIONAL AIRPORT US MO KMCI 39.297 -94.73100000000001 306.3 19730101 20170924 724461 13988 KANSAS CITY DOWNTOWN AP US MO KMKC 39.121 -94.59700000000001 228.6 19480101 19900206 724462 3073 CROCKETT HOUSTON COUNTY AP US TX KDKR 31.307 -95.404 106.1 20150227 20170924 724462 99999 HOUSTON CO US TX KDKR 31.307 -95.404 106.1 20050611 20170717 724463 13988 C.R. WHEELER DOWNTOWN ARPT US MO KMKC 39.121 -94.59700000000001 226.2 19900208 20170924 724463 99999 CHARLES B WHEELER D US MO KMKC 39.117 -94.583 231.0 20000101 20031231 724464 53916 AGRICULTURAL SCIENCE CENTER US MO KCDJ 39.823 -93.579 234.4 20060101 20170924 724464 99999 CHILLICOTHE AGRI-SC US MO KCDJ 39.817 -93.583 234.0 19990114 20071231 724466 3929 RICHARD GEBAUR US MO KGVW 38.844 -94.56 321.9 19540327 20041231 724466 99999 RICHARDS-GEBAUR AP US MO KGVW 38.85 -94.55 333.0 20000101 20000110 724467 13930 WHITEMAN AFB AIRPORT US MO KSZL 38.717 -93.55 265.2 19421201 20170924 724467 99999 WHITEMAN AFB US MO KSZL 38.717 -93.55 265.0 20000101 20071231 724468 3967 JOHNSON CO EXECUTIVE ARPT US KS KOJC 38.85 -94.73899999999999 326.1 20060101 20170924 724468 99999 JOHNSON CO EXECUTIVE US KS KOJC 38.85 -94.73299999999999 334.0 19730101 20071231 724475 93909 NEW CENTURY AIRCENTER ARPT US KS KIXD 38.832 -94.89 331.3 19781124 20170924 724475 99999 JOHNSON CO. INDUSTR US KS KIXD 38.833 -94.883 331.0 20000101 20031231 724490 13993 ROSECRANS MEMORIAL AIRPORT US MO KSTJ 39.774 -94.92299999999999 249.3 19440301 20170924 724490 99999 ST. JOSEPH/ROSE-CRA US MO KSTJ 39.766999999999996 -94.917 249.0 20000101 20031231 724500 3928 WICHITA EISENHOWER NATIONAL US KS KICT 37.648 -97.43 402.6 19730101 20170924 724502 13932 STROTHER FIELD AIRPORT US KS KWLD 37.168 -97.037 350.5 20060101 20170924 724502 99999 STROTHER FLD US KS KWLD 37.167 -97.03299999999999 354.0 19970123 20071231 724503 99999 SPENCER US ID 44.35 -112.18 1793.0 19970123 20041224 724504 3974 COLONEL JAMES JABARA ARPT US KS KAAO 37.746 -97.221 433.1 20060101 20170924 724504 99999 COL JAMES JABARA US KS KAAO 37.75 -97.21700000000001 433.0 19870710 20071231 724505 3923 MCCONNELL AFB AIRPORT US KS KIAB 37.617 -97.26700000000001 417.9 19531201 20170924 724505 99999 MC CONNELL AFB US KS KIAB 37.617 -97.26700000000001 418.0 20000103 20071231 724506 13986 HUTCHINSON MUNICIPAL ARPT US KS KHUT 38.065 -97.861 470.3 19450201 20170924 724506 99999 HUTCHINSON MUNI US KS KHUT 38.067 -97.85 470.0 20000101 20031231 724507 13981 CHANUTE MARTIN JOHNSON APT US KS KCNU 37.67 -95.484 300.2 19730101 20170924 724508 3997 LAWRENCE MUNICIPAL AIRPORT US KS KLWC 39.008 -95.212 253.6 20060101 20170924 724508 99999 LAWRENCE MUNI US KS KLWC 39.010999999999996 -95.21700000000001 254.0 19970123 20071231 724509 53939 NEWTON-CITY-COUNTY AIRPORT US KS KEWK 38.068000000000005 -97.275 467.0 20060101 20170924 724509 99999 NEWTON CITY CO US KS KEWK 38.058 -97.26700000000001 467.0 19920408 20071231 724510 13985 DODGE CITY REGIONAL AIRPORT US KS KDDC 37.769 -99.96799999999999 787.0 19430419 20170924 724515 23064 GARDEN CITY REGIONAL ARPT US KS KGCK 37.927 -100.725 878.4 19430201 20170924 724515 99999 GARDEN CITY RGNL US KS KGCK 37.917 -100.71700000000001 881.0 20000101 20031231 724516 23020 LIBERAL MUNICIPAL AIRPORT US KS KLBL 37.05 -100.96700000000001 875.7 20060101 20170924 724516 99999 LIBERAL MUNI US KS KLBL 37.033 -100.95 879.0 19430618 20071231 724517 13940 GREAT BEND MUNICIPAL ARPT US KS KGBD 38.35 -98.867 573.0 20060101 20170924 724517 99999 GREAT BEND MUNI US KS KGBD 38.35 -98.867 575.0 19430801 20071231 724518 3968 HAYS REGIONAL AIRPORT US KS KHYS 38.85 -99.26700000000001 609.0 20060101 20170924 724518 99999 HAYS RGNL US KS KHYS 38.842 -99.273 609.0 19800825 20071231 724519 93967 COFFEYVILLE MUNICIPAL ARPT US KS KCFV 37.091 -95.566 229.2 20060101 20170924 724519 99999 COFFEYVILLE MUNI US KS KCFV 37.1 -95.56700000000001 230.0 19970123 20071231 724520 3957 MEDICINE LODGE US KS KP28 37.284 -98.553 467.9 19780310 20170924 724530 13969 PONCA CITY REGIONAL ARPT US OK KPNC 36.736999999999995 -97.102 304.8 20100801 20170924 724550 13947 MARSHALL ARMY AIRFIELD US KS KFRI 39.05 -96.76700000000001 324.6 19380817 20170924 724550 99999 FT RILEY/MARSHALL A US KS KFRI 39.1 -96.76700000000001 320.0 20000103 20071231 724555 3936 MANHATTAN REGIONAL AIRPORT US KS KMHK 39.135 -96.679 321.9 20060101 20170924 724555 99999 MANHATTAN RGNL US KS KMHK 39.133 -96.667 322.0 19730101 20071231 724556 13989 EMPORIA MUNICIPAL AIRPORT US KS KEMP 38.329 -96.195 364.5 19730101 20170924 724556 99999 EMPORIA MUNI US KS KEMP 38.332 -96.191 368.0 20000101 20031231 724560 13996 PHILIP BILLARD MUNICIPAL AIRPORT US KS KTOP 39.073 -95.626 267.0 19730101 20170924 724565 13920 FORBES FIELD AIRPORT US KS KFOE 38.95 -95.664 325.2 19421001 20170924 724565 99999 FORBES FLD US KS KFOE 38.95 -95.65 329.0 20000101 20031231 724567 13921 SHERMAN AAF US KS KFLV 39.367 -94.917 235.0 19370203 19981001 724580 13984 BLOSSER MUNICIPAL AIRPORT US KS KCNK 39.551 -97.65100000000001 447.8 19730101 20170924 724585 93997 RUSSELL MUNICIPAL AIRPORT US KS KRSL 38.876 -98.809 568.2 19430201 20170924 724586 3919 SALINA MUNICIPAL AIRPORT US KS KSLN 38.8 -97.65 386.8 19730101 20170924 724586 13922 SALINA MUNI US KS KSLN 38.783 -97.65 393.0 19421101 19650601 724600 99999 ELKHART / ELKHART-MORTON COUNTY US 37.0 -101.88 1102.0 19771006 20050504 724604 93076 ELKHART-MORTON CO AIRPORT US KS KEHA 37.0 -101.883 1104.0 20060101 20170924 724604 99999 ELKHART MORTON CO US KS KEHA 37.001 -101.88 1104.0 19920505 20071231 724620 23061 SAN LUIS VALLEY REGIONAL AIRPORT US CO KALS 37.439 -105.861 2296.1 19730101 20170924 724625 93005 DURA-LA PLATA CO AIRPORT US CO KDRO 37.143 -107.76 2033.0 20060101 20170924 724625 99999 DURANGO-LA PLATA CO US CO KDRO 37.14 -107.76 2038.0 19730101 20071231 724626 99999 DURANGO AVIATION WEATHER REPORTI US 37.28 -107.87 2012.0 19730101 19910215 724627 3011 TELLURIDE REGIONAL AIRPORT US CO KTEX 37.95 -107.9 2770.9 20060101 20170924 724627 99999 TELLURIDE RGNL US CO KTEX 37.95 -107.917 2767.0 19870213 20071231 724630 99999 LAMAR US CO 38.083 -102.617 1103.0 19741113 20110111 724631 99999 US 19730101 19741024 724635 23067 LA JUNTA MUNICIPAL AIRPORT US CO KLHX 38.049 -103.512 1278.3 19421101 20170924 724636 3013 LAMAR MUNICIPAL AIRPORT US CO KLAA 38.07 -102.68799999999999 1129.0 20060101 20170924 724636 99999 LAMAR MUNI US CO KLAA 38.07 -102.68799999999999 1130.0 19951128 20071231 724640 93058 PUEBLO MEMORIAL AIRPORT US CO KPUB 38.29 -104.49799999999999 1438.7 19421001 20170924 724645 23070 PERRY STOKES AIRPORT US CO KTAD 37.262 -104.338 1749.9 19730101 20170924 724646 3028 COMANCHE NATIONAL GRASSLAND US CO KSPD 37.283 -102.61399999999999 1335.9 20060101 20170924 724646 99999 SPRINGFIELD COMANCHE US CO KSPD 37.283 -102.617 1335.0 19990114 20071231 724650 23065 RENNER FIELD/GOODLAND MINI AIRPORT US KS KGLD 39.367 -101.693 1114.4 19730101 20170924 724655 93990 HILL CITY MUNICIPAL ARPT US KS KHLC 39.376 -99.83 666.9 19730101 20170924 724660 93037 CITY OF COLORADO SPRINGS MUNICIPAL AP US CO KCOS 38.81 -104.68799999999999 1884.0 19420901 20170924 724663 99999 PETERSON AFB US CO 38.817 -104.73299999999999 1876.0 19420901 19480401 724665 93010 LIMON MUNICIPAL AIRPORT US CO KLIC 39.275 -103.666 1638.0 19730101 20170924 724665 99999 LIMON MUNI US CO KLIC 39.266999999999996 -103.667 1635.0 20000101 20031231 724666 93067 CENTENNIAL AIRPORT US CO KAPA 39.57 -104.84899999999999 1793.1 20060101 20170924 724666 99999 CENTENNIAL US CO KAPA 39.57 -104.84899999999999 1793.0 19801204 20071231 724670 3017 DENVER INTL AP US CO KDEN 39.833 -104.65799999999999 1655.4 19741113 19940529 724671 99999 LEADVILLE/LAKE CO. US CO LXV 39.25 -106.3 3096.0 19480103 19900206 724673 93009 LEADVILLE/LAKE COUNTY APT US CO KLXV 39.229 -106.31700000000001 3027.3 20060101 20170924 724673 99999 LAKE CO US CO KLXV 39.22 -106.31700000000001 3026.0 19900208 20071231 724674 94050 MEEKER AIRPORT US CO KEEO 40.044000000000004 -107.889 1940.4 20060101 20170924 724674 99999 MEEKER US CO KEEO 40.049 -107.88600000000001 1957.0 19781031 20071231 724675 23063 EAGLE CO REGIONAL AIRPORT US CO KEGE 39.65 -106.917 1980.3 19730101 20170924 724675 99999 EAGLE CO RGNL US CO KEGE 39.633 -106.917 1993.0 20000101 20031231 724676 93073 ASPEN-PITKIN COUNTY ARPT US CO KASE 39.23 -106.87100000000001 2353.1 20060101 20170924 724676 99999 ASPEN PITKIN CO SARD US CO KASE 39.223 -106.869 2384.0 19730101 20071231 724677 93007 GUNSN-CRSTED BUTTE RGL APT US CO KGUC 38.533 -106.93299999999999 2336.6 20020902 20170924 724677 99999 GUNNISON CO. (AWOS) US CO KGUC 38.534 -106.93299999999999 2339.0 19730101 20071231 724678 94033 STEAMBOAT SPRINGS/BOB ADAMS FIELD AIRPORT US CO KSBS 40.516999999999996 -106.867 2096.7 20110214 20170924 724678 99999 STEAMBOAT SPRINGS B US CO KSBS 40.516 -106.866 2096.0 19840607 20040402 724679 99999 WINTER PARK RESORT US CO 39.88 -105.77 2771.0 19860501 19930715 724680 94015 BUTTS AAF AIRPORT US CO KFCS 38.678000000000004 -104.757 1779.4 19660915 20170924 724680 99999 FORT CARSON/BUTTS US CO KFCS 38.7 -104.76700000000001 1789.0 20000104 20071231 724684 99999 SALIDA US CO 38.516999999999996 -106.01700000000001 2186.0 19870403 19920707 724685 99999 SALIDA/ALEXANDER US CO 0V2 38.533 -106.05 2282.0 19730101 19860910 724686 99999 GUNNISON AVIATION WEATHER REPORT US 38.6 -106.92 2380.0 19730101 19910211 724689 3026 KIT CARSON COUNTY AIRPORT US CO KITR 39.245 -102.28399999999999 1277.7 20060101 20170924 724689 99999 KIT CARSON COUNTY US CO KITR 39.25 -102.28299999999999 1286.0 19990114 20071231 724690 23062 DENVER WSFO US CO KDNR 39.75 -104.867 1612.0 19400515 19950301 724690 99999 DENVER/STAPLETON INT US CO KDNR 39.75 -104.867 1611.9 20021121 20021121 724694 450 FRONT RANGE AIRPORT US CO KFTG 39.784 -104.538 1680.4 20160917 20170924 724694 99999 FRONT RANGE US CO KFTG 39.785 -104.54299999999999 1680.1 20051203 20170922 724695 23036 BUCKLEY AIR FORCE BASE US CO KBKF 39.717 -104.75 1726.1 19440301 20170924 724695 99999 BUCKLEY AFB US CO KBKF 39.7 -104.75 1726.0 20000101 20071231 724696 99999 FRASER US CO 39.95 -105.833 2609.0 19730101 19740624 724697 99999 FORT COLLINS DOWNTOWN US CO 40.588 -105.042 1505.4 19730101 19940901 724698 24015 COLORADO PLAINS RGNL ARPT US CO KAKO 40.167 -103.21700000000001 1421.3 19730101 20170924 724698 99999 COLORADO PLAINS RGNL US CO KAKO 40.183 -103.21700000000001 1437.0 20000101 20031231 724699 3065 ATCT ROCKY MOUNTAIN METRO US CO KBJC 39.9 -105.117 1705.4 20060101 20170924 724699 99999 BROOMFIELD/JEFFCO US CO KBJC 39.917 -105.117 1728.0 19810801 20071231 724700 93141 CARBON COUNTY AIRPORT US UT KPUC 39.609 -110.755 1804.7 20060101 20170924 724700 99999 PRICE/CARBON COUNTY US UT KPUC 39.617 -110.75 1799.0 19770827 20071231 724720 99999 BLANDING US UT 37.617 -109.46700000000001 1840.0 19730101 20170921 724721 93025 BLANDING US UT 37.617 -109.46700000000001 184.1 19750814 19900206 724723 93025 BLANDING MUNI US UT K4BL 37.583 -109.48299999999999 1789.0 19900208 20100621 724723 99999 BLANDING MUNI US UT 37.583 -109.48299999999999 1789.0 20000101 20071231 724725 99999 TOOELE US UT 40.32 -112.3 1628.0 19510625 20020930 724733 23170 HANKSVILLE US UT KHVE 38.417 -110.7 1355.1 20160101 20170923 724735 23170 HANKSVILLE US UT KHVE 38.371 -110.715 1354.5 19730101 20170924 724735 99999 HANKSVILLE US UT K4HV 38.37 -110.72 1314.0 20000101 20071231 724736 99999 BULLFROG MARINA US UT 37.5 -110.7 1110.0 19730101 19960319 724737 377 INVERNESS AIRPORT US FL KINF 28.816999999999997 -82.31700000000001 15.2 20130101 20170924 724737 99999 INVERNESS MUNI AIRPORT US FL KINF 28.804000000000002 -82.318 20.0 20090812 20170922 724739 99999 CARRABELLE THOMPSON US FL 29.842 -84.70100000000001 6.1 20061010 20061012 724741 99999 LA BELLE MUNI US FL 26.744 -81.433 5.5 20061010 20061023 724742 99999 VANDENBERG US FL KX16 28.02 -82.35 7.0 20061010 20061012 724743 99999 PHILLIPS PLATFORM US AL KRAM 29.05 -88.08 10.0 20050628 20111107 724750 23176 MILFORD MUNICIPAL AIRPORT US UT KMLF 38.417 -113.01700000000001 1536.2 20160101 20170923 724750 99999 MILFORD MUNICIPAL US UT KMLF 38.417 -113.01700000000001 1536.0 19730101 20170905 724751 99999 US 19760305 19770213 724754 23186 ST GEORGE MUNICIPAL ARPT US UT KSGU 37.1 -113.6 894.9 20060101 20170924 724754 99999 ST GEORGE MUNI US UT KSGU 37.091 -113.59299999999999 896.0 19800701 20071231 724755 93129 CEDAR CITY REGIONAL ARPT US UT KCDC 37.709 -113.094 1702.6 19730101 20170924 724756 23159 BRYCE CANYON AIRPORT US UT KBCE 37.705999999999996 -112.146 2312.2 19730101 20170924 724756 99999 BRYCE CANYON US UT KBCE 37.7 -112.145 2313.0 20000101 20031231 724757 23176 MILFORD MUNICIPAL AP US UT KMLF 38.417 -113.01700000000001 1534.1 19770101 19830430 724760 23066 GRAND JUNCTION REGIONAL AIRPORT US CO KGJT 39.134 -108.54 1480.7 19730101 20170924 724765 93013 MONTROSE REGIONAL AIRPORT US CO KMTJ 38.506 -107.899 1743.5 20060101 20170924 724765 99999 MONTROSE RGNL US CO KMTJ 38.516999999999996 -107.89399999999999 1755.0 19730101 20071231 724766 99999 MONTROSE US CO 38.5 -107.883 1752.0 19730101 19901011 724767 93069 CORTEZ MUNICIPAL AIRPORT US CO KCEZ 37.306999999999995 -108.626 1801.4 20060101 20170924 724767 99999 CORTEZ MUNI US CO KCEZ 37.3 -108.633 1804.0 19730101 20071231 724768 24051 GREELEY-WELD COUNTY ARPT US CO KGXY 40.436 -104.632 1431.7 20060101 20170924 724768 99999 GREELEY WELD CO US CO KGXY 40.437 -104.633 1432.0 19880105 20071231 724769 94035 FORT COLLINS LOVELAND AP US CO KFNL 40.45 -105.01700000000001 1528.6 20080101 20170924 724769 99999 FORT COLLINS (AWOS) US CO KFNL 40.45 -105.01700000000001 1529.0 19860501 20071231 724770 3170 EUREKA US NV KP68 39.601 -116.006 1809.3 20100801 20170924 724770 99999 EUREKA (RAMOS) US NV KP68 39.6 -116.0 1811.0 19730101 19750814 724771 99999 GREEN RIVER RANGE US UT 39.0 -110.15 1241.0 19750814 19900219 724773 93132 GREEN RIVER RANGE US UT KU28 39.0 -110.15 1255.8 20060102 20090501 724773 99999 GREEN RIVER RANGE US UT 39.0 -110.17 1241.0 19900314 20071222 724776 93075 CANYONLANDS FIELD AIRPORT US UT KCNY 38.75 -109.76299999999999 1389.9 20060101 20170924 724776 99999 CANYONLANDS FLD US UT KCNY 38.75 -109.75 1388.0 19730301 20071231 724795 99999 DELTA US UT KU24 39.33 -112.58 1414.0 19730101 20121001 724796 94128 LOGAN-CACHE AIRPORT US UT KLGU 41.787 -111.853 1357.6 19990101 20170924 724796 99999 LOGAN CACHE US UT KLGU 41.783 -111.85 1358.0 19811111 19981231 724797 23176 MILFORD MUNI BRISCOE US UT KMLF 38.417 -113.01700000000001 1534.1 19970101 20170924 724800 23157 BISHOP AIRPORT US CA KBIH 37.371 -118.35799999999999 1250.3 19430116 20170924 724810 23203 CASTLE AFB US CA KMER 37.383 -120.56700000000001 58.2 19420101 20170924 724810 99999 CASTLE US CA KMER 37.38 -120.568 57.6 20011031 20071231 724815 23257 MRCD MUNI/MACREADY FLD APT US CA KMCE 37.285 -120.51299999999999 46.3 20060101 20170924 724815 99999 MERCED MUNI MACREADY US CA KMCE 37.285 -120.514 48.0 19831001 20071231 724828 93241 NUT TREE AIRPORT US CA KVCB 38.378 -121.958 33.2 20060101 20170924 724828 99999 NUT TREE US CA KVCB 38.383 -121.96700000000001 35.0 20010811 20071231 724830 23232 SACRAMENTO EXECUTIVE AIRPORT US CA KSAC 38.507 -121.495 4.6 19730101 20170924 724833 23206 SACRAMENTO MATHER AIRPORT US CA KMHR 38.567 -121.3 30.2 20020902 20170923 724833 99999 SACRAMENTO MATHER FL US CA KMHR 38.555 -121.29700000000001 30.0 19880304 20031231 724834 99999 POINT CABRILLO US CA 39.35 -123.82 20.0 19810906 19871007 724835 23206 MATHER FIELD US CA KMHR 38.567 -121.3 29.3 19410901 19930515 724836 23208 SACRAMENTO MCCLELLAN AFB US CA KMCC 38.667 -121.4 23.5 19391109 20170924 724836 99999 MC CLELLAN AFLD US CA KMCC 38.668 -121.40100000000001 22.9 20000101 20070507 724837 93216 BEALE AIR FORCE BASE US CA KBAB 39.133 -121.43299999999999 34.4 19590701 20170924 724837 99999 BEALE AFB US CA KBAB 39.133 -121.43299999999999 34.0 20000103 20071231 724838 93205 YUBA COUNTRY AIRPORT US CA KMYV 39.102 -121.568 18.9 20060101 20170924 724838 99999 YUBA CO US CA KMYV 39.1 -121.56700000000001 19.0 19430811 20071231 724839 93225 SACRAMENTO INTL AIRPORT US CA KSMF 38.696 -121.59 7.0 19730101 20170924 724839 99999 SACRAMENTO INTL US CA KSMF 38.683 -121.583 8.0 20000101 20031231 724844 99999 TONOPAH TEST RANGE US NV KTNX 37.799 -116.781 1691.3 19820816 20021016 724845 99999 WELLS US NV 41.12 -114.97 1722.0 19990114 20061212 724846 53123 NORTH LAS VEGAS AIRPORT US NV KVGT 36.211999999999996 -115.196 671.5 20060101 20170924 724846 99999 NORTH LAS VEGAS US NV KVGT 36.211 -115.194 672.0 19990114 20071231 724850 99999 US 19730101 19750814 724851 99999 US 19750814 19770213 724855 23153 TONOPAH AIRPORT US NV KTPH 38.051 -117.09 1644.4 19421001 20170924 724856 99999 HAWTHORNE INDUSTRIAL US NV KHTH 38.544000000000004 -118.634 1284.7 19831103 20170923 724860 23154 ELY AIRPORT/YELLAND FIELD/AIRPORT US NV KELY 39.295 -114.84700000000001 1908.7 19730101 20170924 724870 3163 CALIENTE (AMOS) US NV KP38 37.611999999999995 -114.52600000000001 1332.9 20120123 20120123 724870 99999 CALIENTE NV. US 37.617 -114.51700000000001 1335.0 19770122 20041125 724880 23185 RENO/TAHOE INTERNATIONAL AIRPORT US NV KRNO 39.484 -119.771 1344.2 19430105 20170924 724885 93102 FALLON NAS US NV KNFL 39.417 -118.71700000000001 1199.1 19730101 20170924 724913 99999 MONTEREY (FNMOC) US CA 36.6 -121.867 152.0 20050320 20050320 724915 23245 MONTEREY PENINSULA US CA KMRY 36.583 -121.833 78.0 19730101 19991231 724915 23259 MONTEREY PENINSULA AIRPORT US CA KMRY 36.588 -121.845 50.3 20060101 20170924 724915 99999 MONTEREY PENINSULA US CA 36.583 -121.833 80.0 20000101 20071231 724916 93217 MARINA MUNI US CA KOAR 36.683 -121.76700000000001 41.0 19730102 19901229 724917 23233 SALINAS MUNI US CA KSNS 36.664 -121.60799999999999 23.5 19410805 20100801 724917 99999 SALINAS MUNI US CA 36.65 -121.6 26.0 20100801 20100817 724918 99999 CASTROVILLE / MOSS US CA 36.8 -121.8 5.0 19760130 19800516 724920 23237 STOCKTON METROPOLITAN AIRPORT US CA KSCK 37.889 -121.226 7.9 19410103 20170924 724925 23240 CROWS LANDING US CA KNRC 37.4 -121.133 56.7 19730102 19940309 724926 23258 MDSTO CTY-CO H SHAM FD APT US CA KMOD 37.624 -120.95100000000001 22.3 19730101 20170924 724927 23285 LIVERMORE MUNICIPAL ARPT US CA KLVK 37.693000000000005 -121.814 119.8 20000101 20170924 724927 99999 LIVERMORE MUNICIPAL US CA KLVK 37.7 -121.81700000000001 121.0 19730625 19991231 724930 23230 METRO OAKLAND INTL AIRPORT US CA KOAK 37.721 -122.221 1.8 19430101 20170924 724930 99999 OAKLAND/METROP. OAK US CA KOAK 37.75 -122.21700000000001 4.0 20000101 20031231 724935 93228 HAYWARD AIR TERM US CA KHWD 37.654 -122.115 14.3 20000101 20100731 724935 99999 HAYWARD AIR TERM US CA 37.667 -122.117 14.0 19730101 20100817 724936 23254 CONCORD/BUCHANAN US CA KCCR 37.992 -122.055 18.3 19730101 20100731 724936 99999 CONCORD/BUCHANAN US CA 37.983000000000004 -122.05 7.0 20100801 20100817 724937 23289 PALO ALTO AIRPORT OF SANTA CLARA COUNTY US CA KPAO 37.467 -122.117 2.1 20060101 20170924 724937 99999 PALO ALTO ARPT OF SA US CA KPAO 37.461 -122.115 1.0 19841101 20071231 724938 93231 SAN CARLOS AIRPORT US CA KSQL 37.516999999999996 -122.25 1.5 20060101 20170924 724938 99999 SAN CARLOS US CA KSQL 37.512 -122.25 2.0 19830701 20071231 724939 99999 DAVIS POINT AVIATION WEATHER REP US 38.05 -122.27 18.0 19760130 19960701 724940 23234 SAN FRANCISCO INTERNATIONAL AIRPORT US CA KSFO 37.62 -122.365 2.4 19730101 20170924 724943 99999 TREASURE ISLAND US CA 37.8 -122.37 8.0 19820711 19960627 724945 23293 N Y. MINETA SN JO INTL APT US CA KSJC 37.359 -121.92399999999999 15.5 19730101 20170924 724946 93232 REID-HILLVIEW AIRPORT OF SANTA CLARA COUNTY US CA KRHV 37.333 -121.81700000000001 40.5 20060101 20170924 724946 99999 REID HILLVIEW OF SAN US CA KRHV 37.333 -121.81700000000001 41.0 19800409 20071231 724947 99999 PILLAR PT / EL GRANDA US CA 37.5 -122.5 40.0 19760130 19960701 724950 23250 CONCORD/BUCHANAN US CA KCCR 37.983000000000004 -122.05 12.0 19760131 19960630 724950 23254 BUCHANAN FIELD AIRPORT US CA KCCR 37.992 -122.055 5.5 20100801 20170924 724953 99999 RIO NIDO US CA 38.516999999999996 -122.917 -999.0 19891111 19900303 724955 93227 NAPA COUNTY AIRPORT US CA KAPC 38.21 -122.285 4.3 20000101 20170924 724955 99999 NAPA CO US CA KAPC 38.213 -122.281 11.0 19730101 19991231 724956 23211 HAMILTON AAF US CA KSRF 38.067 -122.5 1.0 19390301 19760709 724957 23213 SONOMA COUNTY AIRPORT US CA KSTS 38.504 -122.81 34.8 20000101 20170924 724957 99999 C M SCHULZ SONOMA CO US CA KSTS 38.516999999999996 -122.81700000000001 38.0 19430404 19991231 724958 99999 PORT CHICAGO US CA 38.03 -122.03 12.0 19750916 19960607 724959 99999 POINT REYES COAST GUARD STATION US CA 38.0 -123.02 87.0 19780404 19921020 724970 99999 CHICO CALIFORNIA MAP US CA CIC 39.783 -121.85 69.0 19420506 19760305 724971 99999 CHICO MUNICIPAL & US CA 39.783 -121.85 73.0 19760305 19900219 724973 93203 CHICO MUNICIPAL AIRPORT US CA KCIC 39.8 -121.85 82.9 20060101 20170924 724973 99999 CHICO MUNI US CA KCIC 39.8 -121.867 73.0 19900314 20071231 724975 93809 CAIRO REGIONAL AIRPORT US IL KCIR 37.064 -89.219 97.8 20060101 20170924 724975 99999 CAIRO RGNL US IL KCIR 37.067 -89.21700000000001 98.0 20040904 20071231 724988 94704 DANSVILLE MUNICIPAL ARPT US NY KDSV 42.571000000000005 -77.71300000000001 208.8 20010102 20170924 724988 99999 DANSVILLE MUNI US NY KDSV 42.571000000000005 -77.71300000000001 202.0 20010811 20031231 724990 99999 US 19730101 19760305 724991 99999 POINT ARENA (CGS) US CA 89Q 38.95 -123.73299999999999 18.0 19760309 19840928 724995 99999 BODEGA BAY COAST GUARD LIGHT STA US 38.32 -123.05 3.0 19750916 19960701 725010 99999 UPTON US NY 40.85 -72.85 26.2 19990503 20050927 725014 54780 MONTAUK AIRPORT US NY KMTP 41.073 -71.923 2.1 20060101 20170924 725014 99999 MONTAUK US NY KMTP 41.083 -71.917 2.0 19990114 20071231 725015 4789 ORANGE COUNTY AIRPORT US NY KMGJ 41.50899999999999 -74.265 111.3 20060101 20170924 725015 99999 ORANGE CO US NY KMGJ 41.51 -74.26 111.0 19990114 20071231 725016 54790 BROOKHAVEN AIRPORT US NY KHWV 40.821999999999996 -72.869 25.0 20060101 20170924 725016 99999 BROOKHAVEN US NY KHWV 40.817 -72.867 25.0 20010828 20071231 725020 14734 NEWARK LIBERTY INTERNATIONAL AP US NJ KEWR 40.683 -74.169 2.1 19730101 20170924 725021 99999 CLEVELAND MUNI US TX 30.355999999999998 -95.008 45.7 20091020 20130430 725023 474 CLEVELAND MUNICIPAL AIRPORT US MS KRNV 33.861 -90.758 42.7 20150531 20170923 725023 99999 CLEVELAND MUNI US MS KRNV 33.760999999999996 -90.758 42.7 19870629 20170307 725024 99999 WILDWOOD US NJ 39.0 -74.82 2.0 19780301 19790714 725025 94741 TETERBORO AIRPORT US NJ KTEB 40.85 -74.061 2.7 19730101 20170924 725025 99999 TETERBORO US NJ KTEB 40.85 -74.05 3.0 20000101 20031231 725026 99999 BRONX / EXECUTION COAST GUARD ST US 40.88 -73.73 8.0 19750915 19791127 725027 54788 MERIDEN MARKHAM MUNI ARPT US CT KMMK 41.51 -72.828 31.4 20060101 20170924 725027 99999 MERIDEN MARKHAM MUNI US CT KMMK 41.50899999999999 -72.829 31.0 19750911 20071231 725028 99999 BAY SHORE / FIRE ISLAND US NY 40.63 -73.27 5.0 19750915 19920802 725029 64707 WATERBURY-OXFORD AIRPORT US CT KOXC 41.483000000000004 -73.133 221.3 20060101 20170924 725029 99999 WATERBURY OXFORD US CT KOXC 41.479 -73.135 221.0 19920226 20071231 725030 14732 LA GUARDIA AIRPORT US NY KLGA 40.779 -73.88 3.4 19730101 20170924 725033 94728 NYC CENTRAL PARK US NY KNYC 40.779 -73.969 47.5 19431201 20100731 725033 99999 NEW YORK CITY CENTRAL PARK US NY 40.766999999999996 -73.983 27.0 20100801 20100817 725034 99999 CALVERTON/GRUMMAN US NY KCTO 40.917 -72.783 23.0 19820927 19910109 725035 4781 LONG ISLAND MAC ART US NY KISP 40.794000000000004 -73.102 30.2 19730101 20100731 725035 99999 LONG ISLAND MAC ART US NY 40.783 -73.1 31.0 20100801 20100817 725036 14757 DUTCHESS COUNTY AIRPORT US NY KPOU 41.626999999999995 -73.884 50.6 19730101 20170924 725036 99999 DUTCHESS CO US NY KPOU 41.617 -73.883 50.0 20000101 20031231 725037 94745 WESTCHESTER COUNTY AIRPORT US NY KHPN 41.067 -73.708 115.5 19730101 20170924 725038 14714 STEWART INTERNATIONAL AIRPORT US NY KSWF 41.5 -74.1 149.7 19420802 20170924 725038 99999 STEWART INTL US NY KSWF 41.5 -74.1 150.0 20000101 20071231 725039 99999 EATONS NECK COAST GUARD STATION US NY 40.95 -73.4 1.0 19750911 19960701 725040 94702 IGOR I SIKORSKY MEMORIAL AIRPORT US CT KBDR 41.158 -73.12899999999999 1.5 19421208 20170924 725045 14758 TWEED-NEW HAVEN AIRPORT US CT KHVN 41.263999999999996 -72.887 0.9 19730101 20170924 725045 99999 TWEED NEW HAVEN US CT KHVN 41.25 -72.883 4.0 20000101 20031231 725046 14707 GROTON-NEW LONDON AIRPORT US CT KGON 41.328 -72.04899999999999 3.1 19430118 20170925 725046 99999 GROTON NEW LONDON US CT KGON 41.317 -72.033 3.0 20000101 20031231 725047 99999 NEW LONDON LEDGE COAST GUARD STA US CT 41.3 -72.08 8.0 19750911 19870427 725048 99999 FAULKNER ISLAND COAST GUARD LIGH US CT 41.22 -72.67 15.0 19750911 19820308 725049 99999 LITTLE GULF ISLAND LIGHT STATION US CT 41.2 -72.1 6.0 19750911 19780910 725050 4781 LONG ISLAND MAC ARTHUR AIRPORT US NY KISP 40.794000000000004 -73.102 25.6 20100801 20170924 725051 99999 US 19730101 19761022 725053 94728 CENTRAL PARK US NY KNYC 40.779 -73.969 42.7 20120801 20170924 725054 64710 NORTH CENTRAL STATE ARPT US RI KSFZ 41.92100000000001 -71.491 134.4 20060101 20170925 725054 99999 NORTH CENTRAL STATE US CT KSFZ 41.92100000000001 -71.483 134.0 19910824 20071231 725055 99999 CHATHAM COAST GUARD STATION US MA 41.67 -69.95 1.0 19750911 19960630 725056 99999 POINT JUDITH (CGS) US RI 41.35 -71.467 2.0 19470201 19950318 725057 99999 BRANT POINT COAST GUARD STATION US MA 41.28 -70.08 8.0 19750911 19960701 725058 94793 BLOCK ISLAND STATE AIRPORT US RI KBID 41.168 -71.578 32.0 19900101 20170925 725058 99999 BLOCK ISLAND US RI KBID 41.167 -71.567 33.0 19761023 20031231 725059 14702 LAURENCE G HANSCOM FLD APT US MA KBED 42.47 -71.289 40.5 20060101 20170924 725059 99999 LAURENCE G HANSCOM US MA 42.467 -71.283 42.0 19780211 20071231 725060 14704 NANTUCKET MEM US MA KFMH 41.65 -70.517 40.2 20060101 20100731 725060 14756 NANTUCKET MEMORIAL AIRPORT US MA KACK 41.253 -70.061 14.6 20120801 20170925 725060 94728 NEW YORK CENTRAL PARK US NY KNYC 40.779 -73.969 47.5 20100801 20120801 725061 14704 OTIS ANGB AIRPORT US MA KFMH 41.65 -70.517 39.6 20100801 20170925 725061 14756 OTIS ANGB US MA KACK 41.253 -70.061 14.3 19730101 19900219 725063 14756 NANTUCKET MEM US MA KACK 41.253 -70.061 14.3 19900314 20120801 725063 99999 NANTUCKET MEM US MA 41.25 -70.05 15.0 20000101 20031231 725064 54769 PLYMOUTH MUNICIPAL AIRPORT US MA KPYM 41.91 -70.729 45.4 20060101 20170925 725064 99999 PLYMOUTH MUNICIPAL US MA KPYM 41.909 -70.729 45.0 19850226 20071231 725065 94726 NEW BEDFORD RGNL AIRPORT US MA KEWB 41.676 -70.958 24.4 20060101 20170925 725065 99999 NEW BEDFORD RGNL US MA KEWB 41.667 -70.95 24.0 19730101 20071231 725066 94724 MARTHAS VINEYARD AIRPORT US MA KMVY 41.393 -70.615 20.7 20060101 20170925 725066 99999 MARTHAS VINEYARD US MA KMVY 41.4 -70.617 20.0 19730101 20071231 725067 94720 BRNSBL MUNI-BMAN/POL FD AP US MA KHYA 41.669 -70.28 16.8 20060101 20170925 725067 99999 BARNSTABLE MUNI BOA US MA KHYA 41.667 -70.267 17.0 19730101 20071231 725068 54777 TAUNTON MUNICIPAL AIRPORT US MA KTAN 41.876000000000005 -71.021 13.1 20060101 20170925 725068 99999 TAUNTON MUNI US MA KTAN 41.867 -71.017 13.0 19421002 20071231 725069 94624 CHATHAM MUNICIPAL AIRPORT US MA KCQX 41.688 -69.993 20.7 20060101 20170925 725069 99999 CHATHAM MUNI US MA KCQX 41.683 -69.983 21.0 19750911 20071231 725070 14765 THEODORE F GREEN STATE AIRPORT US RI KPVD 41.723 -71.433 16.8 19420801 20170924 725073 64708 PROVINCETOWN MUNI AIRPORT US MA KPVC 42.071999999999996 -70.221 2.4 20060101 20170924 725073 99999 PROVINCETOWN MUNI US MA KPVC 42.067 -70.217 3.0 19880424 20071231 725074 54752 QUONSET STATE AIRPORT US RI KOQU 41.597 -71.41199999999999 5.8 20060103 20170924 725074 99999 QUONSET STATE US RI KOQU 41.583 -71.417 5.0 19850920 20071230 725075 54768 HARRIMAN-AND-WEST AIRPORT US MA KAQW 42.7 -73.167 199.6 20060101 20170924 725075 99999 HARRIMAN AND WEST US MA KAQW 42.696000000000005 -73.17 199.0 19730101 20071231 725076 99999 MERRIMAC RIVER COAST GUARD STATI US 42.82 -70.87 1.0 19750911 19831011 725077 99999 BUZZARDS BAY COAST GUARD LIGHT S US 41.38 -71.03 1.0 19750911 19810813 725078 99999 CASTLE HILL COAST GUARD STATION US RI 41.45 -71.35 15.0 19890616 19960701 725079 14787 NEWPORT STATE AIRPORT US RI KUUU 41.533 -71.283 52.4 20060101 20170925 725079 99999 NEWPORT US RI KUUU 41.532 -71.282 52.0 19750911 20071231 725080 14740 BRADLEY INTERNATIONAL AIRPORT US CT KBDL 41.938 -72.682 53.3 19410912 20170924 725084 54767 WINDHAM AIRPORT US CT KIJD 41.742 -72.184 75.3 20060101 20170924 725084 99999 WINDHAM AIRPORT US CT KIJD 41.75 -72.184 75.0 19961220 20071231 725085 54756 ORANGE MUNICIPAL AIRPORT US MA KORE 42.57 -72.291 169.2 19960702 20170924 725085 99999 ORANGE MUNI US MA KORE 42.567 -72.283 169.0 20000101 20031231 725086 54734 DANBURY MUNICIPAL AIRPORT US CT KDXR 41.371 -73.483 139.3 20060101 20170924 725086 99999 DANBURY MUNI ARPT US CT KDXR 41.372 -73.482 140.0 19730622 20071231 725087 14752 HARTFORD-BRAINARD AIRPORT US CT KHFD 41.736000000000004 -72.65100000000001 5.8 19740101 20170924 725087 99999 HARTFORD BRAINARD US CT KHFD 41.733000000000004 -72.65 5.0 20000101 20031231 725088 54733 BEVERLY MUNICIPAL AIRPORT US MA KBVY 42.583999999999996 -70.918 32.9 20060101 20170925 725088 99999 BEVERLY MUNI US MA KBVY 42.583 -70.917 33.0 19740220 20071231 725089 99999 NEW HAVEN COAST GUARD STATION US CT 41.27 -72.9 3.0 19750911 19960701 725090 14739 GEN E L LOGAN INTERNATIONAL AIRPORT US MA KBOS 42.361000000000004 -71.01 3.7 19431121 20170924 725094 99999 MARSHFIELD AIRPORT US MA 42.1 -70.683 3.0 19900725 20060802 725095 94746 WORCESTER RGNL US MA KORH 42.271 -71.873 310.0 19730101 20100731 725095 99999 WORCESTER RGNL US MA 42.266999999999996 -71.867 315.0 20100801 20100817 725096 99999 ISLE OF SHOALS COAST GUARD STATI US 42.97 -70.62 1.0 19750911 19861022 725097 14790 NAVAL AIR STATION US MA KNZW 42.15 -70.933 49.1 19730101 19960928 725098 54704 NORWOOD MEMORIAL AIRPORT US MA KOWD 42.191 -71.17399999999999 15.2 20060101 20170925 725098 99999 NORWOOD MEM US MA KOWD 42.183 -71.167 15.0 19730101 20071231 725099 99999 GLOUCESTER COAST GUARD STATION US MA 42.58 -70.67 1.0 19750911 19960701 725100 94746 WORCESTER REGIONAL AIRPORT US MA KORH 42.271 -71.873 304.8 20100801 20170924 725101 14712 READING SPAATZ FIELD US PA KRDG 40.367 -75.967 107.6 19430608 19900219 725103 14712 RDNG RGNL/C A SPAATZ FD AP US PA KRDG 40.367 -75.967 104.9 19900314 20170924 725103 99999 READING RGNL CARL A US PA KRDG 40.367 -75.967 105.0 20000101 20031231 725104 4843 PORT MEADVILLE AIRPORT US PA KGKJ 41.626000000000005 -80.215 426.7 20060101 20170924 725104 99999 PORT MEADVILLE US PA KGKJ 41.633 -80.217 427.0 19990114 20071231 725105 14770 PENN VALLEY AIRPORT US PA KSEG 40.821 -76.86399999999999 135.3 19970902 20170925 725105 99999 PENN VALLEY US PA KSEG 40.817 -76.867 137.0 20000101 20031231 725107 4780 FITCHBURG MUNICIPAL ARP US MA KFIT 42.552 -71.756 106.1 19971002 20170924 725107 99999 FITCHBURG MUNI US MA KFIT 42.553999999999995 -71.759 106.0 20000101 20031231 725109 54782 POTTSTOWN LIMERICK AIRPORT US PA KPTW 40.238 -75.557 88.7 20060101 20170924 725109 99999 POTTSTOWN LIMERICK US PA KPTW 40.233000000000004 -75.55 94.0 20010811 20071231 725110 14751 HARRISBURG CAPITAL CITY ARPT US PA KCXY 40.217 -76.851 105.8 19730101 19850531 725111 14751 HARRISBURG CAPITAL CITY ARPT US PA KCXY 40.217 -76.851 105.8 19480101 19900228 725111 99999 HARRISBURG CAPITAL CITY ARPT US PA 40.217 -76.85 107.0 19740101 19841231 725113 54786 DOYLESTOWN AIRPORT US PA KDYL 40.33 -75.123 120.1 20060101 20170924 725113 99999 DOYLESTOWN US PA KDYL 40.333 -75.122 120.0 19990831 20071231 725114 93778 YORK AIRPORT US PA KTHV 39.918 -76.874 148.1 20060101 20170924 725114 99999 YORK US PA KTHV 39.917 -76.867 146.0 19980514 20071231 725115 14711 HARRISBURG INTL US PA KMDT 40.196 -76.77199999999999 95.1 19350201 20100731 725115 99999 HARRISBURG INTL US PA 40.183 -76.75 97.0 20100801 20100817 725116 54737 LANCASTER AIRPORT US PA KLNS 40.12 -76.294 122.8 20060101 20170924 725116 99999 LANCASTER US PA KLNS 40.117 -76.283 123.0 19730701 20071231 725117 4827 WASHINGTON COUNTY AIRPORT US PA KAFJ 40.133 -80.283 361.2 20060101 20170924 725117 99999 WASHINGTON CO US PA KAFJ 40.133 -80.283 361.0 19890309 20071231 725118 14751 CAPITAL CITY AIRPORT US PA KCXY 40.217 -76.851 103.6 19900301 20170924 725118 99999 HARRISBURG/CAPITAL US PA KCXY 40.217 -76.85 106.0 20000101 20031231 725119 54792 CLEARFIELD-LAWRENCE ARPT US PA KFIG 41.047 -78.41199999999999 462.1 20060101 20170924 725119 99999 CLEARFIELD LAWRENCE US PA KFIG 41.049 -78.413 462.0 20010811 20071231 725120 14761 PHILIPSBURG AIRPORT US PA KPSB 40.9 -78.083 593.8 19730101 19850531 725120 99999 PHILIPSBURG AIRPORT US PA 40.867 -78.067 594.0 20040906 20051031 725121 14761 BURLIGTON/COLCHE US VT KPSB 40.9 -78.083 593.8 19850531 19860827 725124 64705 BTLR CO/K W SCHOLTER FD AP US PA KBTP 40.777 -79.95 380.1 20060101 20170924 725124 99999 BUTLER CO SCHOLTER F US PA KBTP 40.777 -79.95 380.0 19920226 20071231 725125 4787 DU BOIS-JEFFERSON CO ARPT US PA KDUJ 41.178000000000004 -78.899 552.9 19730101 20170924 725125 99999 DU BOIS JEFFERSON C US PA KDUJ 41.167 -78.9 554.0 20000101 20031231 725126 14736 ALTOONA-BLAIR COUNTY ARPT US PA KAOO 40.296 -78.32 451.1 19730101 20170924 725127 4726 J MURTHA JTWN-CMBRA CO APT US PA KJST 40.316 -78.834 696.2 19730101 20170924 725127 99999 JOHN MURTHA JOHNSTO US PA KJST 40.317 -78.833 696.0 20000101 20031231 725128 54739 UNIVERSITY PARK AIRPORT US PA KUNV 40.85 -77.85 377.7 20060101 20170924 725128 99999 UNIVERSITY PARK US PA KUNV 40.85 -77.85 378.0 19800625 20071231 725130 14777 WILKES-BARRE/SCRANTON INTL AIRPORT US PA KAVP 41.333999999999996 -75.727 283.5 19730101 20170924 725135 14754 TOBYHANNA US PA 7TB 41.183 -75.417 594.4 19730101 19841001 725140 14778 WILLIAMSPORT REGIONAL AIRPORT US PA KIPT 41.243 -76.922 158.5 19730101 20170924 725144 54723 MUIR ARMY AIRFIELD (FORT INDIANTOWN GAP) US PA KMUI 40.433 -76.567 148.7 20060103 20170924 725144 99999 MUIR AAF US PA KMUI 40.433 -76.567 149.0 19780828 20071231 725145 54746 SULLIVAN COUNTY INTL ARPT US NY KMSV 41.701 -74.795 427.6 20060101 20170924 725145 99999 SULLIVAN CO INTL US NY KMSV 41.7 -74.8 428.0 19810212 20071231 725146 54773 OSWEGO COUNTY AIRPORT US NY KFZY 43.35 -76.385 144.8 20060101 20170924 725146 99999 OSWEGO CO US NY KFZY 43.35 -76.383 145.0 19990114 20071231 725150 4725 GREATER BINGHAMTON/E A LINK FIELD AP US NY KBGM 42.207 -75.98 486.2 19730101 20170924 725155 94761 ITHACA TOMPKINS REGIONAL AIRPORT US NY KITH 42.483000000000004 -76.467 335.0 20060101 20170924 725155 99999 ITHACA TOMPKINS RGNL US NY KITH 42.49100000000001 -76.467 335.0 19730101 20071231 725156 14748 ELMIRA/CORNING RGNL ARPT US NY KELM 42.159 -76.892 291.1 19730101 20170925 725156 99999 ELMIRA CORNING RGNL US NY KELM 42.15 -76.883 291.0 20000101 20031231 725157 54757 MUNI ARPT TARANTINE FLD AP US NY KELZ 42.108999999999995 -77.992 647.4 20060101 20170925 725157 99999 WELLSVILLE MUNI US NY KELZ 42.11 -77.99 647.0 19780614 20071231 725160 99999 BENNINGTON STATE US VT 42.883 -73.25 252.0 20030805 20030805 725165 94737 RUTLAND STATE AIRPORT US VT KRUT 43.533 -72.95 239.0 20060101 20170924 725165 99999 RUTLAND STATE US VT KRUT 43.516999999999996 -72.95 240.0 19730102 20071231 725170 14737 LEHIGH VALLEY INTERNATIONAL AIRPORT US PA KABE 40.65 -75.44800000000001 118.9 19730101 20170924 725171 99999 ALLENTOWN QUEEN CITY MUNI US PA KJVU 40.567 -75.483 122.0 20080825 20130430 725172 13762 NAVAL AUXILIARY LANDING FIELD US VA KNFE 36.695 -76.13600000000001 4.9 20070601 20170924 725175 64706 INDIANA COUNTY/JIMMY STEWART FIELD/AIRPORT US PA KIDI 40.633 -79.1 428.2 20060101 20170924 725175 99999 INDIANA CO US PA KIDI 40.633 -79.10600000000001 428.0 19990103 20071231 725180 14735 ALBANY INTERNATIONAL AIRPORT US NY KALB 42.743 -73.809 95.1 19460101 20170924 725184 99999 ALBANY (NEXRAD) US NY CXX 44.516999999999996 -73.167 131.0 20020422 20020422 725185 14750 FLOYD BENNETT MEM US NY KGFL 43.35 -73.617 101.5 19730101 20100801 725185 99999 FLOYD BENNETT MEM US NY 43.333 -73.6 103.0 20100801 20100817 725186 99999 OGDENSBURG INTL US NY KOGS 44.681999999999995 -75.46600000000001 90.5 19770502 20170923 725187 94733 CLINTON COUNTY AIRPORT US NY KPLB 44.687 -73.523 113.4 20060101 20070524 725187 99999 CLINTON CO US NY KPLB 44.683 -73.517 113.0 19780823 20070522 725188 99999 CAPE VINCENT MARINE AVIATION REP US 44.12 -76.33 75.0 19800227 19810501 725190 14771 SYRACUSE HANCOCK INTERNATIONAL AP US NY KSYR 43.111000000000004 -76.104 125.9 19421001 20170924 725194 54778 PENN YAN AIRPORT US NY KPEO 42.643 -77.056 275.2 20060101 20170924 725194 99999 PENN YAN US NY KPEO 42.633 -77.05 302.0 19990114 20071231 725195 99999 OSWEGO COAST GUARD STATION US NY 43.47 -76.52 78.0 19760926 19960701 725196 14717 GRIFFISS AIRPARK US NY KRME 43.233999999999995 -75.407 154.0 19420701 19980923 725196 64775 GRIFFIS AIRFIELD US NY KRME 43.233999999999995 -75.41199999999999 158.2 20070102 20170924 725197 94794 ONEIDA COUNTY AIRPORT US NY KUCA 43.145 -75.384 216.7 19730101 20070118 725198 99999 MILLBROOK/SKY ACRES US NY K44N 41.7 -73.733 213.0 19890714 19960214 725200 94823 PITTSBURGH INTERNATIONAL AIRPORT US PA KPIT 40.485 -80.214 366.7 19450201 20170924 725204 4813 BEAVER COUNTY AIRPORT US PA KBVI 40.766999999999996 -80.4 381.6 20060102 20170923 725204 99999 BEAVER CO US PA KBVI 40.766999999999996 -80.383 382.0 19840331 20071231 725205 14762 ALLEGHENY COUNTY AIRPORT US PA KAGC 40.355 -79.922 380.4 19730101 20170924 725205 99999 ALLEGHENY CO US PA KAGC 40.35 -79.917 382.0 20000101 20031231 725206 99999 PITTSBURGH WSFO US PA 40.53 -80.22 381.3 19730101 19780127 725207 54735 ARNOLD PALMER REGIONAL APT US PA KLBE 40.283 -79.4 365.5 20060101 20170924 725207 99999 ARNOLD PALMER RGNL US PA KLBE 40.266999999999996 -79.4 361.0 19730102 20071231 725208 4855 MARION MUNICIPAL AIRPORT US OH KMNN 40.616 -83.064 303.0 20060101 20170924 725208 99999 MARION MUNI US OH KMNN 40.616 -83.06299999999999 303.0 19990426 20071231 725210 14895 AKRON-CANTON REGIONAL AIRPORT US OH KCAK 40.918 -81.444 369.7 19730101 20170924 725214 4849 LORAIN COUNTY RGNL AIRPORT US OH KLPR 41.346000000000004 -82.179 242.0 20060101 20170924 725214 99999 LORAIN CO RGNL US OH KLPR 41.35 -82.18299999999999 242.0 19980428 20071231 725215 99999 LORAIN COAST GUARD STATION US OH 41.47 -82.18 176.0 19760926 19960701 725216 4842 WAYNE COUNTY AIRPORT US OH KBJJ 40.873000000000005 -81.887 346.6 20060101 20170924 725216 99999 WAYNE CO US OH KBJJ 40.867 -81.883 346.0 19990114 20071231 725217 53855 BUTLER CO. REGIONAL ARPT US OH KHAO 39.364000000000004 -84.525 193.2 20060101 20170924 725217 99999 BUTLER CO RGNL US OH KHAO 39.363 -84.521 193.0 19990114 20071231 725218 99999 MARION US PA 40.617 -83.06700000000001 303.0 19990114 19990204 725220 14750 FLOYD BENNETT MEMO AIRPORT US NY KGFL 43.35 -73.617 97.8 20100801 20170925 725224 4852 HARRY CLEVER FIELD AIRPORT US OH KPHD 40.472 -81.42399999999999 272.8 20060101 20170924 725224 99999 HARRY CLEVER FLD US OH KPHD 40.467 -81.417 272.0 19990114 20071231 725229 4858 NEWARK-HEATH AIRPORT US OH KVTA 40.023 -82.463 269.4 20060101 20170924 725229 99999 NEWARK HEATH US OH KVTA 40.025 -82.462 269.0 20010811 20071231 725230 94704 DANSVILLE/MUNICIPAL US NY KDSV 42.571000000000005 -77.71300000000001 201.8 19730101 19850131 725230 99999 DANSVILLE MUNICIPAL US NY 42.567 -77.717 209.0 20020418 20041014 725235 4720 CHAUTAUQUA CO/JAMESTOWN AP US NY KJHW 42.15 -79.25 525.2 20060101 20170924 725235 99999 CHATAUQUA CO JAMESTO US NY KJHW 42.153 -79.258 525.0 19730101 20071231 725240 14820 CLEVELAND-HOPKINS INTERNATIONAL AP US OH KCLE 41.406000000000006 -81.852 238.1 19730101 20170924 725243 99999 CLEVELAND (LGT-H) US OH 41.483000000000004 -81.7 182.0 19890908 19940915 725244 99999 WILLOUGHBY LOST NATION MUNI US OH KLNN 41.684 -81.39 190.8 19831103 20170923 725245 4853 CLEVELAND BURKE LAKEFNT AP US OH KBKL 41.518 -81.684 178.0 20060101 20170924 725245 99999 BURKE LAKEFRONT US OH KBKL 41.516999999999996 -81.683 178.0 19730101 20071231 725246 14891 MANSFIELD LAHM RGNL US OH KMFD 40.82 -82.51799999999999 399.9 19490101 20100731 725246 99999 MANSFIELD LAHM RGNL US OH 40.817 -82.51700000000001 405.0 20100801 20100817 725247 4805 CUYAHOGA COUNTY AIRPORT US OH KCGF 41.567 -81.483 267.9 20060101 20170924 725247 99999 CUYAHOGA CO US OH KCGF 41.567 -81.483 268.0 19730101 20071231 725248 99999 CLEVELAND HARBOR COAST GUARD STA US 41.5 -81.72 181.0 19770920 19841001 725249 99999 MARBLEHEAD COAST GUARD STATION US OH 41.55 -82.73 196.0 19760926 19960701 725250 14852 YOUNGSTOWN-WARREN REGIONAL AIRPORT US OH KYNG 41.255 -80.67399999999999 355.7 19480101 20170924 725251 99999 SHAWANO US WI 44.783 -88.55 248.0 20100527 20100527 725253 380 PORTAGE COUNTY AIRPORT US OH KPOV 41.217 -81.25 365.2 20130101 20170804 725253 99999 RAVENNA/PORTAGE COUNTY AIRPORT US OH KPOV 41.21 -81.252 364.8 19900724 20170923 725254 4851 DEFIANCE MEMORIAL AIRPORT US OH KDFI 41.338 -84.429 215.5 20060101 20170924 725254 99999 DEFIANCE MEMORIAL US OH KDFI 41.338 -84.429 215.0 19980514 20071231 725255 99999 ASHTABULA COAST GUARD STATION US OH 41.92 -80.8 178.0 19760926 19960701 725256 4857 ASHTABULA COUNTY AIRPORT US OH KHZY 41.778 -80.696 281.6 20060101 20170924 725256 99999 ASHTABULA CO US OH KHZY 41.783 -80.7 282.0 20010811 20071231 725257 99999 JENNINGS US LA 30.243000000000002 -92.67299999999999 7.0 20120531 20130430 725258 382 TOCCOA RG LETOURNEAU FIELD AIRPORT US GA KTOC 34.594 -83.296 303.3 20170519 20170923 725258 99999 TOCCOA RG LETOURNEAU FLD US GA KTOC 34.594 -83.296 303.0 20120607 20170922 725260 14860 ERIE INTL/T. RIDGE FIELD AIRPORT US PA KERI 42.08 -80.182 222.2 19730101 20170924 725264 99999 SAINT MARYS MUNI US PA 8G5 41.433 -78.583 0.0 19850531 19870323 725265 99999 ERIE COAST GUARD STATION US PA 42.12 -80.08 175.0 19430701 19880308 725266 4751 BRADFORD REGIONAL AIRPORT US PA KBFD 41.8 -78.633 652.9 19730101 20170925 725267 94868 VENANGO REGIONAL AIRPORT US PA KFKL 41.383 -79.867 469.4 19730101 20170924 725267 99999 VENANGO RGNL US PA KFKL 41.378 -79.86 469.0 20000101 20031231 725270 99999 SIMCOE (MARS) & CA 42.85 -80.267 239.0 19730101 19770630 725280 14733 BUFFALO NIAGARA INTERNATIONAL AP US NY KBUF 42.941 -78.736 218.2 19420201 20170924 725283 465 CATTARAUGUS COUNTY OLEAN AIRPORT US NY KOLE 42.24100000000001 -78.37100000000001 651.1 20130101 20170923 725283 99999 CATTARAUGUS CO OLEAN US NY KOLE 42.24100000000001 -78.37100000000001 650.7 19870813 20170910 725285 99999 BUFFALO COAST GUARD STATION US NY 42.88 -78.88 180.0 19760926 19960701 725287 4724 NIAGARA FALLS INTL AIRPORT US NY KIAG 43.108000000000004 -78.938 178.3 19510612 20170924 725287 99999 NIAGARA FALLS INTL US NY KIAG 43.1 -78.933 180.0 20000101 20031231 725288 99999 NIAGARA COAST GUARD STATION US NY 43.27 -79.07 82.0 19760926 19960701 725290 14768 GREATER ROCHESTER INTERNATIONAL AP US NY KROC 43.117 -77.67699999999999 164.3 19730101 20170924 725291 99999 RIDGELY AIRPARK US MD KRJD 38.97 -75.866 19.5 20070521 20090701 725292 14976 GRINNELL REGIONAL AIRPORT US IA KGGI 41.717 -92.7 307.2 20060831 20170924 725293 99999 GARRETT CO US MD 39.58 -79.339 894.0 20070530 20130430 725294 383 ANSON COUNTY AIRPORT JEFF CLOUD FIELD US NC KAFP 35.016999999999996 -80.083 91.1 20130101 20170905 725294 99999 WADESBORO ANSON CO US NC KAFP 35.021 -80.077 90.8 20070521 20170923 725295 99999 ROCHESTER COAST GUARD LIGHT STAT US 43.25 -77.6 82.0 19760926 19960701 725296 99999 BOWMAN MUNI US ND KBPP 46.187 -103.428 901.6 20070521 20100603 725300 94846 CHICAGO O'HARE INTERNATIONAL AIRPORT US IL KORD 41.995 -87.934 201.8 19461001 20170924 725305 94892 DUPAGE AIRPORT US IL KDPA 41.913999999999994 -88.24600000000001 229.8 20060101 20170924 725305 99999 DUPAGE US IL KDPA 41.908 -88.249 231.0 19730101 20071231 725306 14855 GLENVIEW NAS US IL KNBU 42.083 -87.833 199.0 19730101 19950301 725306 99999 GLENVIEW NAS US IL KNBU 42.083 -87.81700000000001 199.0 20050905 20050905 725307 99999 WILMETTE (MARINES)& US IL K62G 42.067 -87.68299999999999 223.0 19760212 19960214 725310 14806 RANTOUL/CHANUTE AFB US IL 40.3 -88.15 228.0 19360701 19710528 725310 99999 RANTOUL US IL 40.3 -88.15 228.0 20020228 20060203 725314 3960 ST LOUIS DOWNTOWN AIRPORT US IL KCPS 38.571 -90.15700000000001 125.9 20060101 20170924 725314 99999 CAHOKIA/ST. LOUIS US IL KCPS 38.567 -90.15 126.0 19781219 20071231 725315 94870 UNIVERSI OF IL WILLARD APT US IL KCMI 40.04 -88.27799999999999 229.8 20060101 20170924 725315 99999 UNIV OF ILLINOIS WI US IL KCMI 40.033 -88.26700000000001 230.0 19730101 20071231 725316 3887 DECATUR AIRPORT US IL KDEC 39.834 -88.866 205.7 20060101 20170924 725316 99999 DECATUR US IL KDEC 39.833 -88.867 208.0 19730101 20071231 725317 53802 COLES COUNTY MEMO AIRPORT US IL KMTO 39.478 -88.28 219.8 20060101 20170924 725317 99999 COLES CO MEM US IL KMTO 39.483000000000004 -88.28299999999999 220.0 19730103 20071231 725320 14842 GREATER PEORIA REGIONAL AIRPORT US IL KPIA 40.668 -89.684 198.1 19730101 20170924 725323 99999 GALESBURG MUNICIPAL US IL GBG 40.933 -90.43299999999999 245.0 19810904 19950814 725325 14816 BRADFORD/RINKENBERG US IL KBDF 41.233000000000004 -89.617 247.0 19730101 19751214 725325 99999 BRADFORD/RINKENBERG US IL KBDF 41.233000000000004 -89.617 247.0 20011226 20011226 725326 4894 WHITESIDE CO ARPT-JOS H BITTOR F FLD ARPT US IL KSQI 41.743 -89.676 197.2 20060101 20170924 725326 99999 STERLING ROCKFALLS US IL KSQI 41.743 -89.68299999999999 197.0 19910711 20071231 725327 4846 PORTER COUNTY MUNICIPAL AIRPORT US IN KVPZ 41.453 -87.006 234.7 20060101 20170924 725327 99999 PORTER CO MUNI US IN KVPZ 41.45 -87.0 241.0 19990114 20071231 725330 14827 FORT WAYNE INTERNATIONAL AIRPORT US IN KFWA 40.971000000000004 -85.206 241.1 19411101 20170924 725334 99999 PERU/GRISSOM RWY 23 US IN 40.65 -86.15 247.0 19850414 19860410 725335 94833 GRISSOM AFB AIRPORT US IN KGUS 40.65 -86.15 247.5 20060101 20170924 725335 99999 GRISSOM ARB US IN KGUS 40.65 -86.15 247.0 19450201 20071231 725336 94895 DELAWARE CO-JOHNSON FD APT US IN KMIE 40.234 -85.39399999999999 285.6 20060101 20170924 725336 99999 DELAWARE CO JOHNSON US IN KMIE 40.233000000000004 -85.383 286.0 19730101 20071231 725337 4807 GARY/CHICAGO AIRPORT US IN KGYY 41.617 -87.417 180.1 20060101 20170924 725337 99999 GARY CHICAGO US IN KGYY 41.617 -87.4 180.0 19810126 20071231 725339 99999 CHIGAGO-WAUKEE ARPT US IL KPWK 42.117 -87.9 197.0 20010811 20020621 725340 14819 CHICAGO MIDWAY INTL ARPT US IL KMDW 41.786 -87.75200000000001 186.5 19730101 20170924 725342 13809 LRNCVLL-VINCNES INTL ARPT US IL KLWV 38.764 -87.60600000000001 130.8 20060101 20170924 725342 99999 LAWRENCEVILLE VINCEN US IL KLWV 38.764 -87.605 131.0 19970123 20071231 725344 99999 CHICAGO / CALUMET COAST GUARD ST US 41.72 -87.53 180.0 19940303 19960630 725345 14834 JOLIET REGIONAL AIRPORT US IL KJOT 41.5 -88.167 177.4 20020902 20170924 725345 99999 JOLIET RGNL US IL KJOT 41.518 -88.176 177.0 20010412 20031231 725346 94866 CHICAGO/MEIGS US IL KCGX 41.867 -87.6 181.0 19730101 20080618 725346 99999 CHICAGO/MEIGS US IL KCGX 41.867 -87.6 181.0 20000101 20030409 725347 14880 WAUKEGAN REGIONAL AIRPORT US IL KUGN 42.417 -87.867 221.6 20060101 20170924 725347 99999 CHICAGO/WAUKEGAN US IL KUGN 42.417 -87.867 222.0 19890421 20071231 725348 4831 LEWIS UNIVERSITY AIRPORT US IL KLOT 41.604 -88.085 201.2 20060101 20170924 725348 99999 LEWIS UNIVERSITY US IL KLOT 41.6 -88.1 207.0 20010412 20071231 725349 99999 AFWA ASSIGNED 0.0 0.0 0.0 19970101 20071231 725350 14848 SOUTH BEND REGIONAL AIRPORT US IN KSBN 41.707 -86.316 235.6 19730101 20170924 725354 4806 ELKHART MUNICIPAL AIRPORT US IN KEKM 41.717 -85.98299999999999 237.1 20060102 20170924 725354 99999 ELKHART MUNI US IN KEKM 41.717 -86.0 237.0 19810722 20071231 725360 94830 TOLEDO EXPRESS AIRPORT US OH KTOL 41.586999999999996 -83.806 205.4 19730101 20170924 725366 14825 FINDLAY AIRPORT US OH KFDY 41.013999999999996 -83.669 243.8 19730101 20170924 725370 94847 DETROIT METRO WAYNE COUNTY AIRPORT US MI KDTW 42.231 -83.331 192.3 19420801 20170924 725373 54819 GROSSE ILE MUNICIPAL AIRPORT US MI KONZ 42.099 -83.161 178.9 20060101 20170925 725373 99999 GROSSE ILE MUNI US MI KONZ 42.1 -83.167 180.0 19970718 20071231 725374 94889 ANN ARBOR MUNICIPAL ARPT US MI KARB 42.223 -83.744 255.7 20060101 20170925 725374 99999 ANN ARBOR MUNICIPAL US MI KARB 42.223 -87.74600000000001 256.0 19781205 20071231 725375 14822 DETROIT CITY AIRPORT US MI KDET 42.409 -83.01 190.8 19730101 20170924 725376 14853 WILLOW RUN AIRPORT US MI KYIP 42.233000000000004 -83.53299999999999 236.8 19730101 20170924 725376 99999 WILLOW RUN US MI KYIP 42.233000000000004 -83.51700000000001 218.0 20000101 20031231 725377 14804 SELFRIDGE AIR NATIONAL GUARD BASE US MI KMTC 42.608000000000004 -82.818 176.8 19370101 20170924 725377 99999 SELFRIDGE ANGB US MI KMTC 42.6 -82.833 177.0 20000101 20071231 725378 4887 LIVINGSTON COUNTY AIRPORT US MI KOZW 42.629 -83.984 287.7 20060101 20170924 725378 99999 LIVINGSTON CO US MI KOZW 42.633 -83.98299999999999 293.0 19760926 20071231 725380 99999 WINDSOR AIRPORT CA 42.266999999999996 -82.96700000000001 190.0 19730101 19770807 725383 54827 KIRSCH MUNICIPAL AIRPORT US MI KIRS 41.817 -85.43299999999999 281.9 20060101 20170924 725383 99999 KIRSCH MUNI US MI KIRS 41.817 -85.439 282.0 19970123 20071231 725384 4888 ST CLAIR COUNTY INTL ARPT US MI KPHN 42.911 -82.529 195.1 20060101 20170925 725384 99999 ST CLAIR CO INTL US MI KPHN 42.917 -82.53299999999999 198.0 19940718 20071231 725385 99999 BELLE ISLE COAST GUARD STATION US MI 42.33 -82.97 177.0 19760926 19960701 725386 94898 HARBOR BEACH US MI KP58 44.022 -82.79299999999999 179.8 20060101 20170924 725386 99999 PORT HOPE US MI KP58 44.016999999999996 -82.78299999999999 179.0 19781128 20071231 725387 94899 COPPER HARBOR US MI KP59 47.467 -87.883 190.8 20060101 20170924 725387 99999 COPPER HARBOR US MI KP59 47.467 -87.883 190.0 19781128 20071231 725390 14836 CAPITAL CITY AIRPORT US MI KLAN 42.78 -84.579 256.3 19730101 20170924 725394 4839 TULIP CITY AIRPORT US MI KBIV 42.746 -86.09700000000001 210.0 20060101 20170924 725394 99999 TULIP CITY US MI KBIV 42.75 -86.1 213.0 19820616 20071231 725395 14833 JAKSON CO-RYNOLDS FLD ARPT US MI KJXN 42.266999999999996 -84.46700000000001 304.2 19730101 20170924 725396 14815 W K KELLOGG AIRPORT US MI KBTL 42.308 -85.251 282.9 19421001 20170924 725396 99999 W K KELLOGG US MI KBTL 42.3 -85.25 290.0 20000101 20031231 725397 99999 BATH US MI 42.85 -84.48 261.0 19900907 19960701 725400 99999 SPICKARD US MO 40.25 -93.72 271.0 19771006 20030720 725404 4847 ADRIAN LENAWEE COUNTY ARPT US MI KADG 41.868 -84.079 242.6 20060101 20170924 725404 99999 LENAWEE CO US MI KADG 41.867 -84.083 244.0 19990114 20071231 725405 54816 GRATIOT COMMUNITY AIRPORT US MI KAMN 43.321999999999996 -84.68799999999999 227.7 20060101 20170924 725405 99999 GRATIOT COMMUNITY US MI KAMN 43.317 -84.68299999999999 230.0 19990114 20071231 725406 54817 HURON COUNTY MEMORIAL AIRPORT US MI KBAX 43.78 -82.986 233.5 20060101 20170924 725406 99999 HURON CO MEM US MI KBAX 43.783 -82.98299999999999 233.0 19990114 20071231 725407 4854 OTSEGO COUNTY AIRPORT US MI KGLR 45.013000000000005 -84.70100000000001 406.9 20060101 20170924 725407 99999 GAYLORD RGNL US MI KGLR 45.016999999999996 -84.7 405.0 19990114 20071231 725408 4881 SCHOOLCRAFT COUNTY AIRPORT US MI KISQ 45.983000000000004 -86.18299999999999 209.1 20060101 20170925 725408 99999 SCHOOLCRAFT CO US MI KISQ 45.967 -86.167 209.0 19990114 20071231 725409 4882 HILLSDALE MUNICIPAL ARPT US MI KJYM 41.92100000000001 -84.586 360.3 20060101 20170924 725409 99999 HILLSDALE MUNICIPAL US MI KJYM 41.92100000000001 -84.586 360.0 19990114 20071231 725414 4886 BRANCH COUNTY MEMO AIRPORT US MI KOEB 41.933 -85.053 292.3 20060101 20170924 725414 99999 BRANCH CO MEM US MI KOEB 41.933 -85.05 292.0 19990114 20071231 725415 54821 BROOKS FIELD AIRPORT US MI KRMY 42.251000000000005 -84.956 286.8 20060101 20170924 725415 99999 BROOKS FLD US MI KRMY 42.25 -84.95 287.0 19990114 20071231 725416 14864 ROBEN-HOOD ARPT US MI KRQB 43.717 -85.5 282.9 20060101 20170925 725416 99999 ROBEN HOOD US MI KRQB 43.717 -85.5 302.0 19990114 20071231 725417 54822 MASON JEWETT FIELD AIRPORT US MI KTEW 42.566 -84.43299999999999 281.0 20060101 20170924 725417 99999 MASON JEWETT FLD US MI KTEW 42.567 -84.417 280.0 19990114 20071231 725418 54823 CUSTER AIRPORT US MI KTTF 41.94 -83.435 186.5 20060101 20170925 725418 99999 CUSTER US MI KTTF 41.933 -83.43299999999999 188.0 19990114 20071231 725420 14931 SE IOWA REGIONAL AIRPORT US IA KBRL 40.783 -91.125 210.9 20100801 20170924 725424 4885 MOUNT PLEASANT MUNI ARPT US MI KMOP 43.622 -84.73700000000001 230.1 20060101 20170924 725424 99999 MOUNT PLEASANT MUNI US MI KMOP 43.617 -84.73299999999999 230.0 20010811 20071231 725430 94822 GREATER ROCKFORD AIRPORT US IL KRFD 42.193000000000005 -89.09299999999999 222.5 19730101 20170924 725434 54789 POCONO MTNS MUNI AIRPORT US PA KMPO 41.138999999999996 -75.37899999999999 584.0 20060101 20170924 725434 99999 POCONO MOUNTAINS MUN US PA KMPO 41.133 -75.383 584.0 20010811 20071231 725440 14923 QUAD CITY INTERNATIONAL AIRPORT US IL KMLI 41.465 -90.523 180.4 19730101 20170924 725450 14990 THE EASTERN IOWA AIRPORT US IA KCID 41.883 -91.71700000000001 264.6 19730101 20170924 725453 14930 ATLANTIC MUNICIPAL AIRPORT US IA KAIO 41.407 -95.04700000000001 360.3 20060101 20170924 725453 99999 ATLANTIC MUNI US IA KAIO 41.4 -95.05 360.0 19950423 20071231 725454 4903 WASHINGTON MUNICIPAL ARPT US IA KAWG 41.276 -91.67299999999999 229.8 20060101 20170924 725454 99999 WASHINGTON MUNI US IA KAWG 41.283 -91.667 230.0 19950423 20071231 725455 14931 SOUTHEAST IOWA RGNL US IA KBRL 40.783 -91.125 214.0 19730101 20100731 725455 99999 SOUTHEAST IOWA RGNL US IA 40.783 -91.117 218.0 20100801 20100817 725456 4921 KEOKUK MUNICIPAL AIRPORT US IA KEOK 40.46 -91.428 204.5 20060101 20170924 725456 99999 KEOKUK MUNI US IA KEOK 40.46 -91.428 205.0 19950212 20071231 725457 4904 ALGONA MUNICIPAL AIRPORT US IA KAXA 43.078 -94.272 371.6 20060101 20170924 725457 99999 ALGONA US IA KAXA 43.078 -94.272 372.0 19950430 20071231 725458 4907 CLARION MUNICIPAL AIRPORT US IA KCAV 42.742 -93.759 354.2 20060101 20170924 725458 99999 CLARION MUNI US IA KCAV 42.75 -93.76700000000001 354.0 19950423 20071231 725460 14933 DES MOINES INTERNATIONAL AIRPORT US IA KDSM 41.534 -93.65299999999999 291.7 19730101 20170924 725461 94988 MARSHALLTOWN MUNICIPAL APT US IA KMIW 42.111000000000004 -92.916 296.9 20060101 20170924 725461 99999 MARSHALL TOWN MUNI US IA KMIW 42.113 -92.91799999999999 297.0 19970123 20071231 725462 14937 IOWA CITY MUNICIPAL ARPT US IA KIOW 41.633 -91.54299999999999 198.1 19970101 20170924 725462 99999 IOWA CITY MUNI US IA KIOW 41.638999999999996 -91.54700000000001 204.0 20000101 20031231 725463 14966 CHARLES CITY MUNICIPAL APT US IA KCCY 43.073 -92.611 342.9 20060101 20170924 725463 99999 CHARLES CITY MUNI US IA KCCY 43.067 -92.617 343.0 19950423 20071231 725464 4977 NEWTON MUNICIPAL AIRPORT US IA KTNU 41.674 -93.022 290.5 20060101 20170924 725464 99999 NEWTON MUNI US IA KTNU 41.667 -93.01700000000001 290.0 19950212 20071231 725465 14950 OTTUMWA INDUSTRIAL AIRPORT US IA KOTM 41.108000000000004 -92.447 256.6 19730101 20170924 725466 4938 ANKENY REGIONAL AIRPORT US IA KIKV 41.691 -93.566 277.4 20060101 20170924 725466 99999 ANKENY REGIONAL ARP US IA KIKV 41.683 -93.55 277.0 19730101 20071231 725467 4973 SHENANDOAH MUNICIPAL ARPT US IA KSDA 40.751 -95.413 296.0 20060101 20170924 725467 99999 SHENANDOAH MUNI US IA KSDA 40.75 -95.417 296.0 19950212 20071231 725468 4910 ARTHUR N. NEU AIRPORT US IA KCIN 42.04600000000001 -94.789 367.0 20060101 20170924 725468 99999 ARTHUR N NEU US IA KCIN 42.05 -94.78299999999999 367.0 19950423 20071231 725469 4913 CHARITON MUNICIPAL AIRPORT US IA KCNC 41.019 -93.359 320.0 20060101 20170924 725469 99999 CHARITON MUNI US IA KCNC 41.016999999999996 -93.367 320.0 19950423 20071231 725470 94908 DUBUQUE REGIONAL AIRPORT US IA KDBQ 42.398 -90.704 321.9 19730101 20170924 725472 94989 AMES MUNICIPAL AIRPORT US IA KAMW 41.99100000000001 -93.619 291.1 20060101 20170924 725472 99999 AMES MUNI US IA KAMW 42.0 -93.617 291.0 19970123 20071231 725473 94979 CLINTON MUNICIPAL AIRPORT US IA KCWI 41.833 -90.333 213.4 20060101 20170924 725473 99999 CLINTON MUNI US IA KCWI 41.833 -90.333 216.0 19880105 20071231 725474 4915 CRESTON MUNICIPAL AIRPORT US IA KCSQ 41.007 -94.363 394.4 20060101 20170924 725474 99999 CRESTON MUNI US IA KCSQ 41.016999999999996 -94.367 396.0 19950423 20071231 725475 4953 MONTICELLO REGIONAL ARPT US IA KMXO 42.224 -91.166 258.8 20060101 20170924 725475 99999 MONTICELLO RGNL US IA KMXO 42.217 -91.167 254.0 19950212 20071231 725476 4916 DECORAH MUNICIPAL AIRPORT US IA KDEH 43.275 -91.73899999999999 352.7 20060101 20170924 725476 99999 DECORAH MUNI US IA KDEH 43.276 -91.73899999999999 353.0 19950430 20071231 725477 4917 DENISON MUNICIPAL AIRPORT US IA KDNS 41.986000000000004 -95.381 388.9 20060101 20170924 725477 99999 DENISON MUNICIPAL US IA KDNS 41.986000000000004 -95.38 389.0 19950423 20071228 725478 4920 WEBSTER CITY MUNI AIRPORT US IA KEBS 42.43600000000001 -93.869 341.7 20060101 20170924 725478 99999 WEBSTER CITY MUNI US IA KEBS 42.437 -93.869 342.0 19950423 20071231 725479 4937 SCHENCK FIELD AIRPORT US IA KICL 40.722 -95.02600000000001 302.4 20060101 20170924 725479 99999 SCHENCK FLD US IA KICL 40.717 -95.03299999999999 302.0 19950423 20071231 725480 94910 WATERLOO MUNICIPAL AIRPORT US IA KALO 42.553999999999995 -92.40100000000001 264.6 19600301 20170924 725483 4930 FORT MADISON MUNICIPAL APT US IA KFSW 40.659 -91.32700000000001 220.7 20060103 20170924 725483 99999 FORT MADISON MUNI US IA KFSW 40.667 -91.333 221.0 19950423 20071231 725484 4942 LE MARS MUNICIPAL AIRPORT US IA KLRJ 42.778 -96.194 364.5 20060101 20170924 725484 99999 LE MARS MUNI US IA KLRJ 42.783 -96.2 365.0 19950423 20071231 725485 14940 MASON CITY MUNICIPAL ARPT US IA KMCW 43.153999999999996 -93.32700000000001 373.4 19730101 20170924 725486 4906 BOONE MUNICIPAL AIRPORT US IA KBNW 42.049 -93.848 353.6 20060101 20170924 725486 99999 BOONE MUNI US IA KBNW 42.05 -93.85 354.0 19730101 20071231 725487 4950 MUSCATINE MUNICIPIAL ARPT US IA KMUT 41.367 -91.15 166.7 20060101 20170924 725487 99999 MUSCATINE MUNI US IA KMUT 41.367 -91.15 167.0 19950423 20071231 725488 4955 OELWEIN MUNICIPAL AIRPORT US IA KOLZ 42.681000000000004 -91.97399999999999 328.0 20060101 20170924 725488 99999 OELWEIN MUNI US IA KOLZ 42.683 -91.96700000000001 328.0 19950423 20071231 725489 4959 ORANGE CITY MUNICIPAL ARPT US IA KORC 42.99 -96.06299999999999 431.0 20060101 20170924 725489 99999 ORANGE CITY MUNI US IA KORC 42.983000000000004 -96.06700000000001 431.0 19950423 20071231 725490 94933 FORT DODGE REGIONAL APRT US IA KFOD 42.55 -94.18299999999999 352.4 20060101 20170924 725490 99999 FORT DODGE (AWOS) US IA KFOD 42.55 -94.18299999999999 355.0 19780310 20071231 725493 4962 KNOXVILLE MUNICIPAL ARPT US IA KOXV 41.299 -93.11399999999999 282.2 20060101 20170924 725493 99999 KNOXVILLE US IA KOXV 41.299 -93.11399999999999 283.0 19950423 20071231 725494 4966 RED OAK MUNICIPAL AIRPORT US IA KRDK 41.01 -95.26 318.2 20060101 20170924 725494 99999 RED OAK MUNI US IA KRDK 41.016999999999996 -95.26700000000001 318.0 19950423 20071231 725495 4975 SHELDON MUNICIPAL AIRPORT US IA KSHL 43.208 -95.833 432.5 20060101 20170924 725495 99999 SHELDON MUNI US IA KSHL 43.217 -95.833 433.0 19950423 20071231 725496 4976 STORM LAKE MUNICIPAL ARPT US IA KSLB 42.597 -95.241 453.5 20060101 20170924 725496 99999 STORM LAKE MUNI US IA KSLB 42.6 -95.23299999999999 454.0 19950423 20071231 725497 4908 COUNCIL BLUFFS MUNI ARPT US IA KCBF 41.25899999999999 -95.76 381.9 20060101 20170924 725497 99999 COUNCIL BLUFFS MUNI US IA KCBF 41.266999999999996 -95.76700000000001 382.0 19950708 20071231 725498 94998 AUDUBON COUNTY AIRPORT US IA KADU 41.7 -94.917 392.3 20060101 20170924 725498 99999 AUDUBON CO US IA KADU 41.7 -94.917 392.0 19970718 20071231 725499 94991 LAMONI MUNICIPAL AIRPORT US IA KLWD 40.631 -93.90100000000001 346.0 20060101 20170924 725499 99999 LAMONI MUNI AIRPORT US IA KLWD 40.633 -93.9 344.0 19990323 20071231 725500 14942 EPPLEY AIRFIELD AIRPORT US NE KOMA 41.31 -95.899 299.3 19740419 20170924 725510 14939 LINCOLN MUNICIPAL AIRPORT US NE KLNK 40.851 -96.74799999999999 362.7 19421001 20170924 725512 14989 YORK MUNICIPAL AIRPORT US NE KJYR 40.894 -97.626 507.2 20060101 20170924 725512 99999 YORK MUNI US NE KJYR 40.897 -97.62299999999999 509.0 20040510 20071231 725513 4901 ARRA MUNI-AL POTTER FLD AP US NE KAUH 40.893 -97.99700000000001 548.3 20060101 20170924 725513 99999 AURORA MUNI AL POTT US NE KAUH 40.9 -97.98299999999999 550.0 19980408 20071231 725514 3757 WEBSTER NAVAL OUTLYING FIELD US MD KNUI 38.141999999999996 -76.429 6.4 20060822 20170925 725515 94947 BEATRICE MUNICIPAL AIRPORT US NE KBIE 40.301 -96.75399999999999 403.6 20060101 20170924 725515 99999 BEATRICE MUNI US NE KBIE 40.3 -96.75 404.0 19730101 20071231 725520 14935 CENTRAL NEBRASKA REGIONAL AIRPORT US NE KGRI 40.961000000000006 -98.314 560.8 19440301 20170924 725524 94958 EVELYN SHARP FIELD AIRPORT US NE KODX 41.623000000000005 -98.948 629.1 20060101 20170924 725524 99999 EVELYN SHARP FLD US NE KODX 41.617 -98.95 631.0 19810806 20071231 725525 94949 HASTINGS MUNICIPAL AIRPORT US NE KHSI 40.601 -98.426 597.7 20060101 20170924 725525 99999 HASTINGS MUNI US NE KHSI 40.605 -98.428 598.0 19730101 20071231 725526 14905 KEARNEY MUNICIPAL AIRPORT US NE KEAR 40.733000000000004 -99.0 649.2 20060101 20170924 725526 99999 KEARNEY MUNI US NE KEAR 40.717 -99.0 649.0 19430312 20071231 725527 94978 TEKAMAH MUNICIPAL AIRPORT US NE KTQE 41.763999999999996 -96.178 313.3 20060101 20170924 725527 99999 TEKAMAH MUNI US NE KTQE 41.766999999999996 -96.18299999999999 313.0 19951107 20071231 725528 99999 CRAM FLD US NE KBUB 41.777 -99.15 665.1 19810121 19810429 725530 94918 OMAHA US NE 41.367 -96.01700000000001 405.7 19730101 19950916 725530 99999 OMAHA NE. US 41.367 -96.01700000000001 406.0 20011029 20050906 725532 14942 OMAHA EPPLEY AIRFIELD US NE KOMA 41.31 -95.899 299.3 19730101 19740217 725533 94957 BRENNER FIELD AIRPORT US NE KFNB 40.08 -95.59200000000001 298.7 20000101 20170924 725533 99999 FALLS CITY/BRENNER US NE KFNB 40.083 -95.6 300.0 19810904 19991231 725540 14949 OFFUTT AFB AIRPORT US NE KOFF 41.117 -95.917 319.1 19480112 20170924 725540 99999 OFFUTT AFB US NE KOFF 41.117 -95.9 321.0 20000101 20071231 725541 4993 NEBRASKA CITY MUNI AIRPORT US NE KAFK 40.606 -95.86399999999999 351.4 20060101 20170924 725541 99999 NEBRASKA CITY MUNI US NE KAFK 40.6 -95.867 354.0 20040510 20071231 725550 99999 US 19730101 19760305 725551 99999 BURWELL MUNI US NE K20 41.783 -99.15 664.0 19760305 19801101 725555 94946 BROKEN BOW MUNICIPAL ARPT US NE KBBW 41.433 -99.633 771.1 20060101 20170924 725555 99999 BROKEN BOW MUNI US NE KBBW 41.433 -99.65 776.0 19730101 20071231 725556 94975 AINSWORTH MUNICIPAL ARPT US NE KANW 42.577 -100.001 787.6 20060101 20170924 725556 99999 AINSWORTH MUNICIPAL US NE KANW 42.57899999999999 -100.0 789.0 19430203 20071231 725560 14941 KARL STEFAN MEMORIAL AIRPORT US NE KOFK 41.986000000000004 -97.435 472.7 19730101 20170924 725564 4924 FREMONT MUNICIPAL AIRPORT US NE KFET 41.449 -96.52 366.7 20060101 20170924 725564 99999 FREMONT MUNI US NE KFET 41.449 -96.52 367.0 19951107 20071231 725565 94951 COLUMBUS MUNICIPAL AIRPORT US NE KOLU 41.433 -97.35 441.1 20060101 20170924 725565 99999 COLUMBUS MUNI US NE KOLU 41.45 -97.333 440.0 19730101 20071231 725566 4957 THE O'NEILL MUNI-JOHN L BAKER FIELD AIRPORT US NE KONL 42.47 -98.68799999999999 619.1 20060101 20170924 725566 99999 THE ONEILL MUNI J BA US NE KONL 42.47 -98.68799999999999 619.0 19530804 20071231 725570 14943 SIOUX GATEWAY/COL BUD DAY FIELD AP US IA KSUX 42.391000000000005 -96.37899999999999 333.8 19421001 20170924 725580 99999 VALLEY US NE KOAX 41.317 -96.35 351.5 20000216 20050420 725610 24030 SIDNEY MUNICIPAL AIRPORT US NE KSNY 41.099 -102.986 1309.4 19770827 20170924 725610 99999 SIDNEY MUNI (AMOS) US NE KSNY 41.1 -102.98299999999999 1312.0 20000101 20031231 725620 24023 NORTH PLATTE RGNL AP LEE BIRD FD AP US NE KLBF 41.121 -100.669 846.7 19730101 20170924 725621 94063 SEARLE FIELD AIRPORT US NE KOGA 41.119 -101.76799999999999 990.6 20060101 20170924 725621 99999 SEARLE FLD US NE KOGA 41.117 -101.76700000000001 999.0 19970123 20071231 725624 14994 JIM KELLY FIELD AIRPORT US NE KLXN 40.789 -99.771 733.0 20060101 20170924 725624 99999 JIM KELLY FLD US NE KLXN 40.791 -99.777 735.0 19970123 20071231 725625 94040 MC COOK MUNICIPAL AIRPORT US NE KMCK 40.205999999999996 -100.59100000000001 771.1 20060101 20170924 725625 99999 MCCOOK RGNL US NE KMCK 40.2 -100.583 782.0 19730101 20071231 725626 24091 IMPERIAL MUNICIPAL AIRPORT US NE KIML 40.51 -101.62 996.1 19730401 20170924 725626 99999 IMPERIAL MUNI US NE KIML 40.509 -101.62100000000001 997.0 20000101 20031231 725627 99999 MULLEN / HOOKER COUNTY US NE KMHN 42.05 -101.07 994.0 19730101 19951209 725628 4935 BREWSTER FIELD AIRPORT US NE KHDE 40.45 -99.339 702.3 20060101 20170924 725628 99999 BREWSTER FLD US NE KHDE 40.45 -99.333 704.0 19730101 20071231 725630 24030 SIDNEY MUNICIPAL AP US NE KSNY 41.099 -102.986 1312.5 19730101 19770819 725634 99999 COZAD MUNI US NE KCZD 40.869 -100.00399999999999 762.6 19851106 19910405 725635 24044 ALLIANCE MUNICIPAL AIRPORT US NE KAIA 42.056999999999995 -102.802 1197.6 20060101 20170924 725635 99999 ALLIANCE MUNI US NE KAIA 42.05 -102.8 1198.0 19421122 20071231 725636 24017 CHADRON MUNICIPAL AIRPORT US NE KCDR 42.836999999999996 -103.098 1004.0 19730101 20170924 725636 99999 CHADRON MUNI US NE KCDR 42.833 -103.1 1005.0 20000101 20031231 725637 99999 GORDON MUNI US NE KGRN 42.806000000000004 -102.175 1085.7 19740101 20170923 725640 24018 CHEYENNE AIRPORT US WY KCYS 41.15 -104.81700000000001 1868.4 19480101 20170924 725643 99999 ARLINGTON EXIT I-80 US WY KARL 41.583 -106.2 2388.0 19750803 20080928 725644 99999 PUMPKIN VINE US WY KPUM 41.05 -105.46 2438.0 20030319 20040218 725645 24022 LARAMIE REGIONAL AIRPORT US WY KLAR 41.317 -105.68299999999999 2214.7 19730101 20170924 725646 99999 VEDAUWOO US WY KVDW 41.15 -105.4 2524.0 20030319 20080928 725647 99999 WHITAKER US WY KWTR 41.68 -105.45 1888.0 20020905 20031226 725648 99999 SIBLEY PEAK US WY KSIB 42.433 -105.03299999999999 1490.0 20020905 20041030 725649 99999 WHEATLAND US WY KBRX 41.95 -104.95 1509.0 20020905 20041027 725650 3017 DENVER INTERNATIONAL AIRPORT US CO KDEN 39.833 -104.65799999999999 1650.2 19940718 20170924 725660 24028 WESTERN NE REGIONAL/HEILIG FIELD AP US NE KBFF 41.871 -103.59299999999999 1202.4 19430113 20170924 725665 94073 KMBAL MUNI/R E ARRAJ FD AP US NE KIBM 41.18899999999999 -103.671 1491.7 20060101 20170924 725665 99999 KIMBALL MUNI R E ARR US NE KIBM 41.18 -103.67 1501.0 20030512 20071231 725670 24032 MILLER FIELD AIRPORT US NE KVTN 42.878 -100.55 789.4 19480101 20170924 725680 99999 DOUGLAS AIRPORT US WY 42.8 -105.383 1502.0 19730101 19760305 725681 24019 DOUGLAS US WY 4DG 42.75 -105.383 1466.1 19760305 19770227 725685 24019 DOUGLAS US WY K4DG 42.75 -105.383 1477.0 19770301 19950101 725686 94057 CONVERSE COUNTY AIRPORT US WY KDGW 42.79600000000001 -105.38 1504.5 20060101 20170924 725686 99999 CONVERSE CO US WY KDGW 42.797 -105.38600000000001 1503.0 19990114 20071231 725690 24089 NATRONA COUNTY INTERNATIONAL AP US WY KCPR 42.898 -106.47399999999999 1619.4 19400101 20170924 725700 24046 CRAIG-MOFFAT AIRPORT US CO KCAG 40.493 -107.524 1886.7 20060101 20170924 725700 99999 CRAIG-MOFFAT US CO KCAG 40.5 -107.53299999999999 1915.0 19770827 20071231 725705 94030 VERNAL AIRPORT US UT KVEL 40.443000000000005 -109.51299999999999 1606.3 20060101 20170924 725705 99999 VERNAL US UT KVEL 40.441 -109.51 1609.0 19730101 20071231 725706 99999 PRICE/CARBON(RAMOS) US UT 39.617 -110.75 1796.0 19730101 19770802 725707 99999 VERNAL US UT 40.47 -109.53 1612.0 19730620 19820730 725708 99999 ROOSEVELT & US UT U67 40.3 -109.98299999999999 1556.0 19730101 19850401 725710 94025 YAMPA VALLEY AIRPORT US CO KHDN 40.481 -107.21799999999999 2011.7 20100401 20170924 725711 99999 US 19730101 19741024 725715 94025 HAYDEN/YAMPA (AWOS) US CO KHDN 40.481 -107.21799999999999 2012.3 20060101 20100331 725715 99999 HAYDEN/YAMPA (AWOS) US CO 40.483000000000004 -107.21700000000001 2012.0 19730101 20071231 725716 99999 RIFLE AVIATION WEATHER REPORTING US CO 39.53 -107.8 1622.0 19730101 19960630 725717 3016 GARFIELD CO REGIONAL ARPT US CO KRIL 39.528 -107.72 1683.1 20060101 20170924 725717 99999 GARFIELD CO RGNL US CO KRIL 39.533 -107.73299999999999 1690.0 19870609 20071231 725720 24127 SALT LAKE CITY INTERNATIONAL AIRPORT US UT KSLC 40.778 -111.969 1287.8 19411101 20170924 725723 99999 SALT LAKE CITY US UT KZLC 40.783 -111.95 1288.0 19760520 19760607 725724 24174 PROVO MUNICIPAL AIRPORT US UT KPVU 40.219 -111.723 1370.7 20060101 20170924 725724 99999 PROVO MUNI US UT KPVU 40.219 -111.723 1371.0 19800529 20071231 725740 24027 ROCK SPRINGS ARPT US WY KRKS 41.593999999999994 -109.053 2055.9 19730101 19850531 725741 24027 ROCK SPRINGS ARPT US WY KRKS 41.593999999999994 -109.053 2055.9 19850531 19900228 725743 99999 ROCK SPRINGS VORTAC US WY 41.583 -109.01700000000001 2070.0 19881208 19901206 725744 24027 RCK SRINGS-SWETWTER CO APT US WY KRKS 41.595 -109.053 2055.0 19900301 20170924 725745 24057 RAWLINS MUNICIPAL US WY KRWL 41.8 -107.2 2055.3 19730101 20100731 725745 99999 RAWLINS MUNICIPAL US WY 41.8 -107.2 2077.0 20100801 20100818 725750 24126 OGDEN-HINCKLEY AIRPORT US UT KOGD 41.196000000000005 -112.01100000000001 1362.5 19730101 20170924 725750 99999 OGDEN-HINCKLEY MUNI US UT KOGD 41.2 -112.01700000000001 1362.0 20000101 20031231 725753 99999 EAGLE RANGE US UT KU16 41.05 -113.07 1292.0 19910711 20170922 725755 24101 HILL AFB AIRPORT US UT KHIF 41.117 -111.96700000000001 1459.7 19411001 20170924 725755 99999 HILL AFB US UT KHIF 41.117 -111.96700000000001 1460.0 20000101 20071231 725760 24021 HUNT FIELD AIRPORT US WY KLND 42.815 -108.726 1704.4 19730101 20170924 725763 94053 TORRINGTON MUNICIPAL ARPT US WY KTOR 42.06100000000001 -104.15799999999999 1279.9 20060101 20170924 725763 99999 TORRINGTON MUNI US WY KTOR 42.067 -104.15 1282.0 20010811 20071231 725765 24061 RIVERTON REGIONAL US WY KRIW 43.06399999999999 -108.459 1684.0 19730101 20070401 725765 99999 RIVERTON REGIONAL US WY 43.067 -108.46700000000001 1699.0 20000101 20031231 725770 99999 US 19730101 19750701 725771 99999 726710 US WY 42.533 -110.117 2079.0 19760405 19780314 725775 4111 EVAN-UINTA CO BURNS FLD AP US WY KEVW 41.273 -111.031 2183.3 19730101 20170924 725775 99999 EVANSTON UINTA CO BU US WY KEVW 41.266999999999996 -111.03299999999999 2175.0 20000101 20031231 725776 24166 JACKSON HOLE AIRPORT US WY KJAC 43.6 -110.73299999999999 1956.5 20060101 20170924 725776 99999 JACKSON HOLE US WY KJAC 43.6 -110.73299999999999 1966.0 19730101 20071231 725780 24156 POCATELLO REGIONAL AIRPORT US ID KPIH 42.92 -112.571 1357.0 19430101 20170924 725784 4109 ELK CITY US ID KP69 46.144 -115.596 451.1 20060101 20170924 725784 99999 LOWELL US ID KP69 46.133 -115.6 480.0 19830802 20071231 725785 24145 IDAHO FALLS REGIONAL ARPT US ID KIDA 43.516000000000005 -112.06700000000001 1441.4 19730101 20170924 725786 24151 MALAD CITY AIRPORT US ID KMLD 42.188 -112.24799999999999 1384.7 19730101 20170922 725786 99999 MALAD CITY US ID KMLD 42.167 -112.29700000000001 1373.0 20000101 20051005 725787 24158 STREVELL US ID K4SV 42.016999999999996 -113.25 1612.0 19730101 19840913 725788 94182 MC CALL US ID KMYL 44.888999999999996 -116.102 1530.1 20060101 20170924 725788 99999 MC CALL US ID 44.883 -116.1 1531.0 19831103 19951108 725800 99999 US 19730101 19760305 725801 99999 US 19760305 19770213 725805 24172 DERBY FIELD AIRPORT US NV KLOL 40.068000000000005 -118.569 1189.3 19770101 20170924 725810 24193 WENDOVER AIRPORT US UT KENV 40.721 -114.036 1291.4 19420801 20170924 725810 99999 WENDOVER/AF. AUX. F US UT KENV 40.733000000000004 -114.03299999999999 1292.0 20000101 20031231 725814 99999 DUGWAY PRVG GROUND US UT 40.2 -112.93299999999999 1326.0 19770804 19891127 725816 99999 DUGWAY PG UTAH/MICHALES AAF US UT DPG 40.183 -112.93299999999999 1326.0 19430614 19760630 725820 99999 ELKO US NV 40.85 -115.73299999999999 1594.5 19730101 20000213 725821 99999 US 19760305 19770213 725824 3170 EUREKA (RAMOS) US NV KP68 39.601 -116.006 1809.3 20060101 20100731 725824 99999 EUREKA (RAMOS) US NV 39.516999999999996 -115.96700000000001 1993.0 19790510 20100817 725825 24121 ELKO REGIONAL AIRPORT US NV KEKO 40.829 -115.789 1533.1 19770101 20170924 725826 99999 AUSTIN US NV 39.5 -117.08 2014.0 19730101 20030501 725827 94190 WILD HORSE RESERVOIR US NV KAWH 41.636 -115.801 1901.7 20060102 20070701 725827 99999 WILDHORSE RES/ELKO US NV KAWH 41.667 -115.78299999999999 1902.0 19870629 20070701 725830 24128 WINNEMUCCA MUNICIPAL AIRPORT US NV KWMC 40.902 -117.80799999999999 1309.4 19730101 20170924 725835 24119 BATTLE MOUNTAIN AIRPORT US NV KBAM 40.611999999999995 -116.89200000000001 1373.1 19730101 20170924 725835 99999 BATTLE MOUNTAIN US NV KBAM 40.6 -116.867 1381.0 20000101 20070306 725837 99999 SUSANVILLE MUNI US CA KSVE 40.376 -120.573 1264.6 19770301 20170923 725840 99999 US 19730101 19760305 725841 99999 SUSANVILLE MUNI US CA SVE 40.383 -120.56700000000001 1264.0 19760305 19770227 725845 23225 BLUE CANYON - NYACK ARPT US CA KBLU 39.277 -120.71 1608.1 19730101 20170924 725846 93201 TRUCKEE-TAHOE AIRPORT US CA KTRK 39.32 -120.139 1798.3 20060101 20170924 725846 99999 TRUCKEE-TAHOE US CA KTRK 39.32 -120.133 1798.0 19730101 20071231 725847 93230 LAKE TAHOE AIRPORT US CA KTVL 38.898 -119.995 1924.5 20000101 20170924 725847 99999 LAKE TAHOE US CA KTVL 38.883 -120.0 1909.0 19730101 19991231 725848 99999 SHELTER COVE US CA 40.02 -124.07 21.0 19730101 20070628 725850 93228 HAYWARD EXECUTIVE AIRPORT US CA KHWD 37.654 -122.115 13.1 20100801 20170924 725860 99999 GOODING MUNICIPAL US ID 42.917 -114.76700000000001 1137.0 19730101 20051215 725861 24142 GOODING MUNICIPAL ARPT US ID GNG 42.917 -114.76700000000001 1127.2 19760305 19820531 725864 94182 MCCALL MUNICIPAL AIRPORT US ID KMYL 44.888999999999996 -116.102 1528.0 20160101 20170923 725864 99999 MC CALL MUNI US ID KMYL 44.883 -116.1 1530.0 19980514 20170923 725865 94161 FRIEDMAN MEMORIAL AIRPORT US ID KSUN 43.5 -114.3 1617.3 20060101 20170924 725865 99999 FRIEDMAN MEM US ID KSUN 43.5 -114.3 1622.0 19730101 20071231 725866 94178 JSIN FLD-MAGIC VLY RGN APT US ID KTWF 42.482 -114.48700000000001 1265.2 20060101 20170924 725866 99999 JOSLIN FLD MAGIC VA US ID KTWF 42.483000000000004 -114.48299999999999 1265.0 19730101 20071231 725867 24133 BURLEY MUNICIPAL AIRPORT US ID KBYI 42.542 -113.766 1266.1 19730101 20170924 725868 94184 ALLEN H TIGERT AIRPORT US ID KU78 42.65 -111.583 1779.7 20060101 20120928 725868 99999 ALLEN H TIGERT US ID KU78 42.633 -111.583 1780.0 19840111 20071231 725869 94186 MALTA US ID K77M 42.302 -113.335 1375.0 19850208 20100731 725869 99999 MALTA US ID K77M 42.32 -113.33 1375.0 20000101 20071231 725870 99999 US 19730103 19750514 725871 99999 US 19750515 19770211 725875 99999 OWYHEE US NV KOWY 41.953 -116.18799999999999 1638.0 19770301 19850619 725890 99999 US 19730101 19760305 725891 99999 LAKEVIEW US OR 42.183 -120.35 1455.0 19760305 19770227 725895 94236 KLAMATH FALLS AIRPORT US OR KLMT 42.147 -121.72399999999999 1244.8 19590901 20170924 725895 99999 KLAMATH FALLS US OR KLMT 42.15 -121.73299999999999 1248.0 20000101 20031231 725896 99999 LAKEVIEW US OR 42.22 -120.35 1455.0 19770301 19971001 725900 99999 FORT BRAGG US CA 39.4 -123.82 19.0 19430607 20031207 725905 23275 UKIAH MUNICIPAL AIRPORT US CA KUKI 39.126 -123.20100000000001 183.2 19730101 20170924 725905 99999 UKIAH MUNI US CA KUKI 39.117 -123.2 187.0 20000101 20031231 725910 24216 RED BLUFF MUNICIPAL ARPT US CA KRBL 40.152 -122.25399999999999 107.6 19730101 20170924 725915 24257 REDDING MUNICIPAL ARPT US CA KRDD 40.518 -122.29899999999999 153.0 19440901 19910331 725920 24257 REDDING MUNICIPAL AIRPORT US CA KRDD 40.518 -122.29899999999999 151.5 19910331 20170924 725930 23233 SALINAS MUNICIPAL AIRPORT US CA KSNS 36.664 -121.60799999999999 22.6 20100801 20170924 725939 99999 COUNCIL BLUFFS US IA 41.266999999999996 -95.76700000000001 382.0 19950423 19950531 725940 24213 WOODLEY ISLAND (NEW 10/94) US CA KEKA 40.81 -124.16 6.1 20060101 20170923 725940 99999 EUREKA US CA KEKA 40.8 -124.167 18.0 19480101 20071231 725945 24283 ARCATA AIRPORT US CA KACV 40.978 -124.109 61.0 19730101 20170924 725946 24286 JACK MCNAMARA FIELD ARPT US CA KCEC 41.78 -124.23700000000001 17.4 19730101 20170924 725946 99999 JACK MC NAMARA FLD US CA KCEC 41.766999999999996 -124.23299999999999 17.0 20000101 20031231 725947 99999 SAMOA / HUMBOLDT BAY US CA 40.77 -124.23 2.0 19750916 19960619 725948 99999 TRINIDAD HEAD COAST GUARD LIGHT US 41.05 -124.15 58.0 19760130 19960701 725949 99999 ST GEORGE REEF COAST GUARD LIGHT US CA 41.83 -124.4 45.0 19791223 19791223 725950 99999 ALTURAS US CA 41.5 -120.53299999999999 1341.0 19730101 19760305 725951 99999 US 19760305 19770213 725955 24259 SISKIYOU COUNTY AIRPORT US CA KSIY 41.781000000000006 -122.46799999999999 808.0 19500101 20170924 725955 99999 SISKIYOU CO US CA KSIY 41.783 -122.46700000000001 807.0 20000101 20031231 725956 24212 BURNEY US CA KBNY 40.883 -121.667 957.0 19730101 19860817 725956 99999 BURNEY US CA 40.883 -121.667 957.0 20041109 20041109 725957 24215 MOUNT SHASTA US CA KMHS 41.333 -122.333 1077.5 19770101 20170924 725957 99999 MOUNT SHASTA US CA KMHS 41.317 -122.31700000000001 1077.0 20000101 20031231 725958 94299 ALTURAS MUNICIPAL AIRPORT US CA KAAT 41.49100000000001 -120.564 1333.5 20060101 20170924 725958 99999 ALTURAS MUNI US CA KAAT 41.483000000000004 -120.56700000000001 1333.0 19831104 20071231 725959 99999 MONTAGUE US CA K1O5 41.733000000000004 -122.55 770.0 19480101 19960312 725970 24225 ROGUE VALLEY INTL-MEDFORD AIRPORT US OR KMFR 42.381 -122.87200000000001 395.3 19730101 20170924 725975 24235 SEXTON SUMMIT US OR KSXT 42.6 -123.36399999999999 1168.0 19730101 20170924 725976 94285 LAKE COUNTY AIRPORT US OR KLKV 42.167 -120.4 1441.1 20060101 20170924 725976 99999 LAKE CO US OR KLKV 42.167 -120.4 1443.0 19910829 20071231 725980 99999 US 19730101 19760305 725981 99999 US 19760305 19770213 725985 24267 BROOKINGS US OR KBOK 42.074 -124.29 139.9 19770225 20170924 725985 99999 BROOKINGS US OR 42.05 -124.28 24.0 20000101 20020417 725990 99999 US 19730101 19741201 725995 99999 CAPE BLANCO COAST GUARD STATION US OR 42.83 -124.57 57.0 19750911 19811004 726000 99999 SABLE ISLAND & CA 43.933 -60.016999999999996 2.0 19730101 19770630 726010 99999 SHEARWATER(CAN-MIL) CA 44.633 -63.5 51.0 19730101 19770810 726020 99999 US 19730101 19760405 726021 99999 US 19760407 19770125 726025 99999 WESTERN HEAD (MARS) CA 44.633 -63.5 51.0 19770125 19770630 726030 99999 YARMOUTH AIRPORT CA 43.833 -66.083 48.0 19730101 19770630 726035 99999 MOUNT DESSERT (CGS) US ME 43.967 -68.133 1.0 19750911 19800911 726036 99999 ROCKLAND LS (CGS) US ME 43.833 -68.833 1.0 19750911 19900530 726037 99999 CAPE NEDDICK COAST GUARD LIGHT S US 43.17 -70.6 12.0 19750911 19871119 726040 99999 FRANCONIA NH US 44.217 -71.75 287.0 19730101 20060410 726050 14745 CONCORD MUNICIPAL AIRPORT US NH KCON 43.12 -71.3 105.5 19730101 20170924 726054 99999 BOSTON / HULL COAST GUARD LIGHT US 42.32 -70.88 0.0 19770827 19951018 726055 4743 PEASE INTERNATIONAL TRADEPORT AIRPORT US NH KPSM 43.083 -70.817 30.5 20060101 20170924 726055 99999 PEASE INTL TRADEPOR US NH KPSM 43.083 -70.817 31.0 19560409 20071231 726056 54791 SKYHAVEN AIRPORT US NH KDAW 43.278 -70.922 98.5 20060101 20170924 726056 99999 SKYHAVEN US NH KDAW 43.284 -70.929 98.0 20010811 20071231 726058 99999 NEW CASTLES COAST GUARD LIGHT ST US 43.12 -70.48 1.0 19750911 19830516 726059 99999 PORTSMOUTH HARBOR US NH 43.07 -70.72 1.0 19750911 19940630 726060 14764 PORTLAND INTERNATIONAL JETPORT AP US ME KPWM 43.65 -70.3 13.7 19730101 20170924 726064 64709 SANFORD REGIONAL AIRPORT US ME KSFM 43.394 -70.708 74.4 20060101 20170924 726064 99999 SANFORD RGNL US ME KSFM 43.4 -70.7 74.0 19450301 20071231 726065 99999 GOAT ISLAND REMOTE AUTOMATIC MET US 43.33 -70.4 12.0 19750911 19891026 726066 99999 HALFWAY ROCK COAST GUARD LIGHT S US 43.65 -70.03 1.0 19750803 19810623 726067 99999 SCITUATE COAST GUARD STATION US MA 42.2 -70.72 1.0 19750911 19960401 726068 99999 RACE POINT COAST GUARD STATION US MA 42.05 -70.18 1.0 19750911 19960701 726069 99999 SANDWICH COAST GUARD STATION US MA 41.78 -70.5 1.0 19750911 19960701 726070 14606 BANGOR INTERNATIONAL ARPT US ME KBGR 44.798 -68.819 45.1 20100801 20170924 726070 99999 BANGOR INTL US ME KBGR 44.8 -68.817 60.0 19730101 19770630 726071 14606 BANGOR AIRPORT US ME KBGR 44.798 -68.819 58.5 19411201 19900228 726073 14615 WATERVILLE ROBERT LAFLEUR ARPT US ME KWVL 44.533 -69.667 94.5 20060101 20170924 726073 99999 WATERVILLE R LAFLEUR US ME KWVL 44.533 -69.683 101.0 19880105 20071231 726074 99999 GREENVILLE (AMOS) US ME 45.45 -69.55 427.0 19810310 19910304 726076 99999 HERON NECK COAST GUARD LIGHT STA US 44.03 -68.87 1.0 19750808 19811218 726077 14616 HANCOCK CO-BAR HARBOR ARPT US ME KBHB 44.45 -68.367 26.8 20060101 20170924 726077 99999 HANCOCK CO BAR HARBO US ME KBHB 44.45 -68.367 25.0 19421102 20071231 726078 99999 EGG ROCK LIGHT STATION US ME 44.35 -68.13 12.0 19750911 19761023 726079 94601 KNOX COUNTY REGIONAL ARPT US ME KRKD 44.067 -69.1 14.3 20060101 20170924 726079 99999 KNOX CO RGNL US ME KRKD 44.067 -69.1 17.0 19770427 20071231 726080 14608 EASTPORT US ME KEPM 44.917 -67.0 23.0 19730101 20001221 726080 99999 EASTPORT MUNI US ME KEPM 44.91 -67.013 13.7 20010106 20050604 726083 4836 NRN AROOSTOOK REGIONAL APT US ME KFVE 47.286 -68.313 301.1 20060101 20170924 726083 99999 NORTHERN AROOSTOOK US ME KFVE 47.285 -68.313 301.0 19880105 20071231 726084 99999 WEST JONESPORT COAST GUARD STATI US 44.53 -67.62 5.0 19850130 19960701 726085 99999 WEST QUODDY HEAD COAST GUARD LIG US 44.8 -66.95 1.0 19750911 19880531 726086 99999 LIBBY ISLAND (CGS) US ME 44.567 -67.367 1.0 19760630 19830224 726087 99999 PORTLAND HEAD COAST GUARD LIGHT US 43.62 -70.2 23.0 19780211 19890523 726088 14606 BANGOR INTL US ME KBGR 44.798 -68.819 58.5 19900301 20100731 726088 99999 BANGOR INTL US ME 44.8 -68.817 60.0 20100801 20100817 726090 99999 SAINT JOHN AIRPORT CA 45.317 -65.883 93.0 19730101 19770801 726100 99999 SHERBROOKE AIRPORT CA 45.433 -71.683 239.0 19730101 19770630 726110 99999 US 19730101 19760305 726111 94765 LEBANON MUNICIPAL AP US NH KLEB 43.626000000000005 -72.305 173.7 19760305 19770227 726114 54771 MORRISVILLE-STOWE ST ARPT US VT KMVL 44.534 -72.61399999999999 223.1 20060101 20170925 726114 99999 MORRISVILLE STOWE ST US VT KMVL 44.533 -72.617 223.0 19970123 20071231 726115 54740 HARTNESS ST (SPNGFLD) ARPT US VT KVSF 43.343999999999994 -72.518 176.2 20060101 20170924 726115 99999 HARTNESS STATE US VT KVSF 43.35 -72.517 176.0 19730924 20071231 726116 94765 LEBANON MUNICIPAL AIRPORT US NH KLEB 43.626000000000005 -72.305 182.3 19930101 20170924 726116 99999 LEBANON MUNI US NH KLEB 43.617 -72.3 184.0 19770301 20031231 726120 99999 NEWPORT US VT 44.93 -72.2 233.0 19730101 20010621 726130 14755 MT. WASHINGTON OBSERVATORY US NH KMWN 44.266999999999996 -71.3 1911.4 20060101 20170923 726130 99999 MOUNT WASHINGTON US NH KMWN 44.266999999999996 -71.3 1910.0 19730101 20071231 726134 54728 WHITEFIELD (ASOS) US NH KHIE 44.368 -71.545 327.4 20060101 20170924 726134 99999 WHITEFIELD (ASOS) US NH KHIE 44.35 -71.55 319.0 19960628 19960628 726140 54742 ST. JOHNSBURY(AMOS) US VT K1V4 44.42 -72.01899999999999 212.4 19730101 20170924 726145 94705 EDWARD F KNAPP STATE ARPT US VT KMPV 44.20399999999999 -72.562 343.2 19730101 20170924 726150 99999 WOLFEBORO/LAKES RGN US NH 43.583 -71.267 177.0 19730101 19780926 726155 54736 LACONIA MUNICIPAL AIRPORT US NH KLCI 43.567 -71.433 166.1 20060101 20170924 726155 99999 LACONIA MUNI US NH KLCI 43.567 -71.417 166.0 19730101 20071231 726156 99999 WOOD ISLAND LIGHT STATION US ME 43.45 -70.32 9.0 19781128 19861118 726157 99999 OWL'S HEAD LIGHT STATION US ME 44.08 -69.03 15.0 19781128 19890303 726160 94700 BERLIN MUNICIPAL AIRPORT US NH KBML 44.576 -71.179 353.0 20060101 20170925 726160 99999 BERLIN MUNICIPAL US NH KBML 44.583 -71.183 353.0 19730101 20071231 726163 54770 JAFFREY MINI-SLVR RNCH APT US NH KAFN 42.805 -72.00399999999999 317.0 20060101 20170924 726163 99999 JAFFREY ARPT SILVER US NH KAFN 42.8 -72.0 317.0 19970313 20071231 726164 54728 MT WASHINGTON RGNL AIRPORT US NH KHIE 44.368 -71.545 327.4 20160918 20161010 726164 99999 MT WASHINGTON RGNL US NH KHIE 44.368 -71.544 327.0 19990114 20170923 726165 94721 DILLANT-HOPKINS AIRPORT US NH KEEN 42.9 -72.267 146.6 20060101 20170924 726165 99999 DILLANT HOPKINS US NH KEEN 42.9 -72.267 149.0 19730104 20071231 726166 54781 W. H. MORSE STATE AIRPORT US VT KDDH 42.891000000000005 -73.247 251.8 20060101 20170924 726166 99999 WILLIAM H MORSE STATE US VT 42.891000000000005 -73.24600000000001 252.1 20010811 20071231 726170 14742 BURLINGTON INTERNATIONAL AIRPORT US VT KBTV 44.468 -73.15 100.6 19480101 20170924 726180 99999 RUMFORD ME. US 44.533 -70.533 205.0 19730101 20070201 726183 54772 EASTERN SLOPES RGNL ARPT US ME KIZG 43.99100000000001 -70.94800000000001 135.6 20060101 20170924 726183 99999 EASTERN SLOPES RGNL US ME KIZG 43.99100000000001 -70.94800000000001 138.0 19970123 20071231 726184 94709 AUBURN/LEWISTON MUNI ARPT US ME KLEW 44.05 -70.283 87.8 20060101 20170924 726184 99999 AUBURN LEWISTON MUNI US ME KLEW 44.05 -70.283 88.0 19880310 20071231 726185 14605 AUGUSTA STATE AIRPORT US ME KAUG 44.316 -69.797 107.0 19730101 20170924 726186 99999 GREAT DUCK ISLAND COAST GUARD LI US 44.15 -68.25 1.0 19750911 19861215 726187 99999 ROCKLAND COAST GUARD STATION US ME 44.1 -69.1 1.0 19750911 19960701 726188 99999 BEAR ISLAND COAST GUARD STATION US ME 44.28 -68.27 12.0 19750916 19801006 726189 99999 SOUTHWEST HARBOR US ME 44.27 -68.32 5.0 19870320 19960701 726190 94626 MAINE FOREST SERVICE US ME KGNR 45.461999999999996 -69.595 427.0 20060101 20170924 726190 99999 GREENVILLE US ME KGNR 45.467 -69.583 316.0 19770827 20071231 726191 99999 GREENVILLE (AMOS) & US ME 45.467 -69.583 427.0 19730101 19770802 726196 14610 MILLINOCKET MUNICIPAL ARPT US ME KMLT 45.648 -68.693 123.8 19430301 20170924 726196 99999 MILLINOCKET MUNI US ME KMLT 45.65 -68.683 124.0 20000101 20031231 726200 99999 KINGSTON ARPT (MAN) CA 44.217 -76.6 93.0 19730101 19770630 726210 99999 TRENTON (CAN-MIL) CA 44.117 -77.533 86.0 19730101 19770630 726221 94725 MASSENA AP US NY KMSS 44.93600000000001 -74.846 65.2 19730101 19900228 726223 94725 MASSENA INTL/RCHARDS FD AP US NY KMSS 44.93600000000001 -74.846 65.2 19900301 20170924 726225 4742 PLATTSBURGH INTL US NY KPBG 44.651 -73.468 71.0 19560115 19950927 726225 64776 PLATTSBURGH INTERNATIONAL AIRPORT US NY KPBG 44.65 -73.467 71.3 20070618 20170924 726226 99999 LA CROSSE(WFO) US WI KARX 43.817 -91.2 200.0 19420101 19800314 726227 94790 WATERTOWN INTL AIRPORT US NY KART 43.992 -76.02199999999999 96.9 19490501 20170924 726228 94740 ADIRONDACK REGIONAL ARPT US NY KSLK 44.385 -74.207 506.9 20060101 20170925 726228 99999 ADIRONDACK RGNL US NY KSLK 44.383 -74.2 507.0 19730101 20071231 726230 99999 LONDON AIRPORT CA 43.033 -81.15 278.0 19730101 19770630 726240 99999 TORONTO/PEARSON CA 43.683 -79.633 173.0 19730101 19770630 726245 99999 COTE-STE-CATH MOT CA 43.75 -79.483 198.0 19730101 19770630 726246 99999 HAMILTON AIRPORT & CA 43.167 -79.933 239.0 19730101 19770630 726247 99999 TORONTO IL ARPT AUT CA 43.633 -79.4 81.0 19730101 19770630 726248 99999 ST. CATHARINES ARPT CA 43.183 -79.183 98.0 19730101 19770630 726250 99999 PETAWAWA A ONT CA 45.95 -77.317 130.0 19730101 19770630 726260 99999 US 19730101 19750514 726261 99999 DARLINGTON & CA 44.233000000000004 -78.35 190.0 19750601 19770630 726266 99999 COBOURG CA 43.95 -78.167 78.0 19750807 19770630 726268 99999 POINT PETRE (MARS) CA 43.833 -77.15 81.0 19750905 19770630 726269 99999 PORT WELLER (MARS)& CA 43.25 -79.2 80.0 19750807 19770630 726270 94792 MONTREAL DORVAL INTL AP CA 45.467 -73.75 36.0 19730101 19770630 726275 99999 SAINT HUBERT ARPT & CA 45.516999999999996 -73.417 27.0 19730101 19770630 726276 99999 SUTTON JUNCTION/AUT CA 45.15 -72.583 237.0 19730108 19770630 726278 99999 MONTREAL/MIRABEL CA 45.683 -74.033 82.0 19751101 19770630 726280 99999 OTTAWA INTL AIRPORT CA 45.317 -75.667 114.0 19730101 19770630 726284 94836 SAWYER INTERNATIONAL APT US MI KSAW 46.35 -87.4 372.2 20060101 20170924 726284 99999 SAWYER INTL US MI KSAW 46.35 -87.383 372.0 20010811 20071231 726300 99999 EGBERT CA CXET 44.233000000000004 -79.783 251.0 19730101 20040820 726310 99999 MOUNT FOREST(MARS)& CA 43.983000000000004 -80.75 412.0 19730101 19770806 726315 99999 GODERICH CA 43.766999999999996 -81.7 213.0 19730102 19770630 726320 99999 WHITE LAKE US MI 42.683 -83.46700000000001 321.3 19770101 20020131 726330 99999 WIARTON AIRPORT CA 44.75 -81.1 222.0 19730101 19770630 726340 99999 GAYLORD US MI KAPX 44.9 -84.71700000000001 448.4 19730101 20010502 726341 99999 SARNIA CA 43.0 -82.3 181.0 19750501 19770630 726350 94860 GERALD R FORD INTERNATIONAL AIRPORT US MI KGRR 42.883 -85.524 244.8 19730101 20170924 726355 94871 SW MICHIGAN REGIONAL ARPT US MI KBEH 42.126000000000005 -86.428 196.0 20060101 20170924 726355 99999 SOUTHWEST MICHIGAN US MI KBEH 42.133 -86.43299999999999 196.0 19730101 20071231 726356 99999 SAINT JOSEPH COAST GUARD STATION US MI 42.12 -86.48 176.0 19770126 19960701 726357 94815 KLMAZO/BTL CREEK INTL ARPT US MI KAZO 42.235 -85.552 264.6 20060101 20170924 726357 99999 KALAMAZOO BATTLE CR US MI KAZO 42.233000000000004 -85.55 266.0 19730101 20071231 726358 384 MICHIGAN CITY MUNICIPAL AIRPORT PHILLIPS FIELD US IN KMGC 41.703 -86.28200000000001 200.3 20150908 20170924 726358 99999 MICHIGAN CITY MUNICIPAL AIRPORT US IN KMGC 41.703 -86.821 199.6 19770126 20170504 726360 14840 MUSKEGON COUNTY AIRPORT US MI KMKG 43.17100000000001 -86.23700000000001 190.5 19730101 20170924 726364 4883 MASON COUNTY AIRPORT US MI KLDM 43.963 -86.40799999999999 195.1 20060101 20170925 726364 99999 MASON CO US MI KLDM 43.967 -86.4 197.0 20010811 20071231 726365 99999 LUDINGTON COAST GUARD STATION US MI 43.95 -86.47 182.0 19770126 19960630 726366 99999 MUSKEGON COAST GUARD STATION US MI 43.23 -86.33 182.0 19770126 19890803 726367 99999 POINT BETSIE / FRANKFORT US MI 44.62 -86.2 183.0 19770126 19850813 726370 14826 BISHOP INTERNATIONAL AIRPORT US MI KFNT 42.967 -83.749 234.7 19730101 20170924 726375 94817 OAKLAND CO. INTNL AIRPORT US MI KPTK 42.665 -83.41799999999999 297.5 20060101 20170924 726375 99999 OAKLAND CO INTL US MI KPTK 42.667 -83.417 299.0 19730101 20071231 726376 99999 PORT HURON COAST GUARD STATION US MI 43.0 -82.42 177.0 19770126 19960701 726377 99999 SAGINAW RIVER COAST GUARD STATIO US 43.63 -83.85 177.0 19760926 19960701 726378 99999 SHELBY US AL KMBX 33.167 -86.76700000000001 178.0 19760513 19760513 726379 14845 MBS INTERNATIONAL AIRPORT US MI KMBS 43.533 -84.08 201.2 19730101 20170924 726380 94814 ROSCOMMON COUNTY AIRPORT US MI KHTL 44.358999999999995 -84.67399999999999 350.8 19730101 20170925 726381 99999 HYTOP(NEXRAD) US AL KHTX 34.933 -86.083 536.0 19840403 19870704 726384 14817 WEXFORD COUNTY AIRPORT US MI KCAD 44.283 -85.417 397.8 19900724 20170925 726384 99999 WEXFORD CO US MI KCAD 44.283 -85.417 398.0 20000101 20031231 726385 94894 MANISTEE CO-BLACKER ARPT US MI KMBL 44.266999999999996 -86.25 189.3 20060101 20170925 726385 99999 MANISTEE CO BLACKER US MI KMBL 44.272 -86.24700000000001 189.0 19730101 20071231 726386 99999 FRANKFORT COAST GUARD STATION US MI 44.63 -86.25 174.0 19770126 19960630 726387 14850 CHERRY CAPITAL AIRPORT US MI KTVC 44.74100000000001 -85.583 188.4 19730101 20170924 726388 99999 LANSING SHOAL LS US MI 45.9 -85.56700000000001 177.0 19800613 20050719 726389 99999 NORTH MANITOU SHOAL US MI 45.02 -85.95 177.0 19760926 19800622 726390 94849 ALPENA COUNTY REGIONAL AIRPORT US MI KAPN 45.071999999999996 -83.564 208.5 19730101 20170924 726391 385 BALD MOUNTAIN COTTONWOOD PASS US CO K7BM 38.783 -106.21700000000001 2995.3 20170426 20170924 726391 99999 COTTONWOOD PASS US CO K7BM 38.78 -106.22 2995.0 20050611 20170922 726392 424 SUNLIGHT US CO K5SM 39.433 -107.383 3232.1 20130514 20170923 726392 99999 SUNLIGHT MTN US CO K5SM 39.43 -107.38 3232.0 20050611 20170923 726393 99999 ALPENA NEXRAD US MI APX 44.917 -84.71700000000001 476.0 19990111 19990111 726394 4874 LUCE COUNTY AIRPORT US MI KERY 46.31100000000001 -85.45700000000001 281.3 20060101 20170924 726394 99999 LUCE CO US MI KERY 46.31100000000001 -85.45700000000001 265.0 19810811 20071231 726395 14808 OSCODA-WURTSMITH AIRPORT US MI KOSC 44.45 -83.4 192.9 19430701 20170924 726395 99999 OSCODA WURTSMITH US MI KOSC 44.45 -83.4 193.0 20000101 20031231 726396 422 WILKERSON PASS US CO K4BM 39.05 -105.516 3438.1 20150317 20170922 726396 99999 WILKERSON PASS US CO K4BM 39.05 -105.51 3438.0 19760926 20170923 726397 99999 TAWAS POINT COAST GUARD STATION US MI 44.25 -83.43 178.0 19760926 19960701 726398 99999 THUNDER BAY ISLAND US MI 45.07 -83.55 178.0 19760926 19801107 726399 99999 MANISTIQUE US MI 45.95 -86.23 178.0 19760116 20040920 726400 14839 GENERAL MITCHELL INTERNATIONAL AP US WI KMKE 42.955 -87.904 204.2 19480101 20170924 726403 99999 MILWAUKEE WSFO US WI 42.97 -88.55 307.1 20010904 20110810 726404 4865 LKLND/NOBL F LEE MEM FD AP US WI KARV 45.928000000000004 -89.73100000000001 496.8 20060101 20170924 726404 99999 LAKELAND NOBLE F LE US WI KARV 45.933 -89.73299999999999 497.0 19891023 20071231 726405 94869 LAWRENCE J TIMMERMAN AIRPORT US WI KMWC 43.108999999999995 -88.031 223.7 19730101 20170924 726405 99999 LAWRENCE J TIMMERMAN US WI KMWC 43.117 -88.03299999999999 227.0 20000101 20071231 726406 99999 KENOSHA COAST GUARD STATION US WI 42.58 -87.75 223.0 19760926 19960701 726407 99999 MILWAUKEE COAST GUARD LIGHT STAT US 43.02 -87.95 179.0 19760926 19960701 726408 99999 SHEBOYGAN COAST GUARD STATION US WI 43.75 -87.7 1.0 19760926 19960701 726409 4897 WAUKESHA COUNTY AIRPORT US WI KUES 43.041000000000004 -88.23700000000001 277.7 20060101 20170924 726409 99999 WAUKESHA CO US WI KUES 43.041000000000004 -88.23700000000001 278.0 19880222 20071231 726410 14837 DANE CO REGIONAL-TRUAX FIELD AIRPORT US WI KMSN 43.141000000000005 -89.345 264.0 19480101 20170924 726413 4875 WEST BEND MUNICIPAL ARPT US WI KETB 43.417 -88.133 269.4 20060101 20170924 726413 99999 WEST BEND MUNI US WI KETB 43.422 -88.12799999999999 270.0 20010811 20071231 726414 4873 MONROE MUNICIPAL AIRPORT US WI KEFT 42.615 -89.59100000000001 330.7 20060101 20170924 726414 99999 MONROE MUNI US WI KEFT 42.615 -89.59 331.0 20010811 20071231 726415 94854 ROCK COUNTY AIRPORT US WI KJVL 42.617 -89.03299999999999 246.3 20060101 20170924 726415 99999 SOUTHERN WISC RGNL US WI KJVL 42.62 -89.042 246.0 19730101 20071231 726416 14921 TRI-COUNTY REGIONAL ARPT US WI KLNR 43.211999999999996 -90.181 218.5 19730101 20170924 726416 99999 TRI CO RGNL US WI KLNR 43.217 -90.18299999999999 219.0 20000101 20031231 726417 54911 TAYLOR COUNTY AIRPORT US WI KMDZ 45.101000000000006 -90.303 448.1 20060101 20170924 726417 99999 TAYLOR CO US WI KMDZ 45.101000000000006 -90.303 448.0 19990114 20071231 726418 54912 L.O. SIMENSTAD MUNICIPAL AIRPORT US WI KOEO 45.308 -92.69 275.2 20060101 20170924 726418 99999 L O SIMENSTAD MUNI US WI KOEO 45.317 -92.7 275.0 19990114 20071231 726419 94929 JOHN F KENNEDY MEMO ARPT US WI KASX 46.549 -90.919 251.8 20060101 20170924 726419 99999 J F KENNEDY MEMORIAL US WI KASX 46.55 -90.917 252.0 20010811 20071231 726424 94818 JOHN H BATTEN AIRPORT US WI KRAC 42.761 -87.814 205.4 20060101 20170924 726424 99999 JOHN H BATTEN US WI KRAC 42.761 -87.815 205.0 19990114 20071231 726425 4841 SHEBOYGAN CO MEMO AIRPORT US WI KSBM 43.769 -87.851 227.4 20060101 20170924 726425 99999 SHEBOYGAN CO MEM US WI KSBM 43.766999999999996 -87.85 230.0 19990114 20071231 726426 4895 STEVENS POINT MUNI ARPT US WI KSTE 44.55 -89.53299999999999 338.3 20060101 20170924 726426 99999 STEVENS POINT MUNI US WI KSTE 44.55 -89.53299999999999 338.0 19990114 20071231 726427 54908 RICHARD I BONG AIRPORT US WI KSUW 46.68899999999999 -92.094 205.4 20060101 20170924 726427 99999 RICHARD I BONG US WI KSUW 46.683 -92.1 205.0 19990114 20071231 726430 14920 LA CROSSE MUNICIPAL AIRPORT US WI KLSE 43.879 -91.25299999999999 198.7 19480101 20170924 726435 14991 CHIPPEWA VALLEY RGNL ARPT US WI KEAU 44.867 -91.488 269.8 19730101 20170924 726436 94930 VOLK FIELD AIRPORT US WI KVOK 43.933 -90.26700000000001 278.0 19611001 20170924 726436 99999 VOLK FLD US WI KVOK 43.933 -90.25 278.0 20000103 20071229 726437 94940 SPARTA/FORT MC COY AIRPORT US WI KCMY 43.967 -90.73299999999999 252.7 20060101 20170924 726437 99999 SPART FORT MC COY US WI KCMY 43.967 -90.73299999999999 255.0 19790621 20071231 726438 94994 BOSCOBEL AIRPORT US WI KOVS 43.156000000000006 -90.678 204.8 20060101 20170924 726438 99999 BOSCOBEL US WI KOVS 43.167 -90.68299999999999 205.0 20010811 20071231 726440 14925 ROCHESTER INTERNATIONAL AIRPORT US MN KRST 43.903999999999996 -92.492 397.5 19730101 20170924 726444 4963 PRAIRIE DU CHIEN MUNI ARPT US WI KPDC 43.019 -91.124 201.5 20060101 20170924 726444 99999 PRAIRIE DU CHIEN MUN US WI KPDC 43.016999999999996 -91.117 201.0 20010811 20071231 726449 4891 MERRILL MUNICIPAL AIRPORT US WI KRRL 45.199 -89.711 401.4 20060101 20170924 726449 99999 MERRILL MUNI US WI KRRL 45.2 -89.71700000000001 402.0 20010811 20071231 726450 14898 AUSTIN STRAUBEL INTERNATIONAL AP US WI KGRB 44.479 -88.137 209.4 19500101 20170924 726452 4826 ALEXANDER FD S WOOD CO APT US WI KISW 44.358999999999995 -89.837 310.6 20060101 20170924 726452 99999 ALEXANDER FLD SOUTH US WI KISW 44.367 -89.833 311.0 19970123 20071231 726454 99999 TWO RIVERS COAST GUARD STATION US WI 44.13 -87.55 176.0 19780823 19960630 726455 94897 MANITOWOC COUNTY AIRPORT US WI KMTW 44.133 -87.667 198.4 20060101 20170924 726455 99999 MANITOWOC CO US WI KMTW 44.133 -87.68299999999999 198.0 19730101 20071231 726456 94855 WHITTMAN REGIONAL AIRPORT US WI KOSH 43.983999999999995 -88.557 238.4 20060101 20170924 726456 99999 WITTMAN RGNL US WI KOSH 43.983000000000004 -88.55 246.0 19730101 20071231 726457 4825 OUTAGAMIE CO RGNL AIRPORT US WI KATW 44.266999999999996 -88.51700000000001 279.5 20060101 20170924 726457 99999 OUTAGAMIE CO RGNL US WI KATW 44.25 -88.51700000000001 280.0 19800910 20071231 726458 4824 DOOR CO CHERRYLAND AIRPORT US WI KSUE 44.85 -87.417 220.7 20060101 20170924 726458 99999 DOOR CO CHERRYLAND US WI KSUE 44.85 -87.417 221.0 19810121 20071231 726459 99999 STURGEON BAY US WI 44.78 -87.32 176.0 19810806 19960701 726460 14897 WAUSAU MUNICIPAL ARPT US WI KAUW 44.928999999999995 -89.62799999999999 364.5 19730101 19850531 726461 14897 WAUSAU MUNICIPAL ARPT US WI KAUW 44.928999999999995 -89.62799999999999 364.5 19850531 19900219 726463 14897 WAUSAU DOWNTOWN AIRPORT US WI KAUW 44.928999999999995 -89.62799999999999 365.8 19900314 20170924 726464 54834 WATERTOWN MUNICIPAL AIRPORT US WI KRYV 43.167 -88.71700000000001 249.9 20060101 20170924 726464 99999 WATERTOWN MUNI US WI KRYV 43.167 -88.71700000000001 254.0 19950423 20071231 726465 94890 CENTRAL WISCONSIN AIRPORT US WI KCWA 44.783 -89.667 389.2 20060101 20170924 726465 99999 CENTRAL WISCONSIN US WI KCWA 44.783 -89.667 389.0 19730101 20071231 726466 54917 APPLETON MUNICIPAL AIRPORT US MN KAQP 45.228 -96.007 310.9 20060101 20170924 726466 99999 APPLETON MUNI ARPT US MN KAQP 45.23 -96.0 310.0 19791227 20071231 726467 54909 RICE LAKE REGIONAL-CARL'S FIELD AIRPORT US WI KRPD 45.419 -91.773 336.8 20060101 20170924 726467 99999 RICE LAKE RGNL CARLS US WI KRPD 45.417 -91.76700000000001 337.0 19870629 20071231 726468 54913 PRICE COUNTY AIRPORT US WI KPBH 45.708999999999996 -90.402 456.3 20060101 20170924 726468 99999 PRICE CO US WI KPBH 45.717 -90.4 456.0 19880111 20071231 726480 94853 DELTA COUNTY AIRPORT US MI KESC 45.733000000000004 -87.083 181.1 20060101 20170924 726480 99999 DELTA CO US MI KESC 45.723 -87.094 186.0 19730101 20071231 726482 99999 ESCANABA (AWOS) US MI 45.717 -87.1 186.0 19480101 19900109 726483 99999 ESCANABA/DELTA CO. US MI 45.717 -87.1 186.0 19900111 19910304 726487 94896 MEONE-MARINETTE TWIN CO AP US MI KMNM 45.117 -87.633 190.5 20060101 20170924 726487 99999 MENOMINEE MARINETTE US MI KMNM 45.126999999999995 -87.63799999999999 191.0 19730101 20071231 726498 4925 FAIRFIELD MUNICIPAL ARPT US IA KFFL 41.053000000000004 -91.979 243.5 20060101 20170924 726498 99999 FAIRFIELD MUNI US IA KFFL 41.053000000000004 -91.979 244.0 19950423 20071231 726499 94971 ESTHERVILLE MUNI AIRPORT US IA KEST 43.401 -94.74700000000001 401.4 20060101 20170924 726499 99999 ESTHERVILLE MUNI US IA KEST 43.407 -94.74600000000001 401.0 19870629 20071231 726500 14972 SPENCER MUNICIPAL AIRPORT US IA KSPW 43.163999999999994 -95.20200000000001 407.8 20060101 20170924 726500 99999 SPENCER US IA KSPW 43.167 -95.15 408.0 19730101 20071231 726502 54832 CLINTONVILLE MUNICIPAL AIRPORT US WI KCLI 44.614 -88.73100000000001 250.6 20060101 20170924 726502 99999 CLINTONVILLE MUNI US WI KCLI 44.617 -88.73299999999999 251.0 19970123 20071231 726503 54833 BARABOO WISCONSIN DELLS AIRPORT US WI KDLL 43.522 -89.774 297.5 20060101 20170924 726503 99999 BARABOO WISC DELLS US WI KDLL 43.522 -89.771 297.0 19970123 20071231 726504 54838 EAGLE RIVER UNION AIRPORT US WI KEGV 45.931999999999995 -89.26899999999999 500.5 20060101 20170924 726504 99999 EAGLE RIVER UNION US WI KEGV 45.931999999999995 -89.26899999999999 500.0 19970123 20071231 726505 4845 KENOSHA REGIONAL AIRPORT US WI KENW 42.595 -87.93799999999999 226.5 20060101 20170924 726505 99999 KENOSHA RGNL US WI KENW 42.583 -87.917 226.0 19970123 20071231 726506 4840 FOND DU LAC COUNTY AIRPORT US WI KFLD 43.769 -88.491 246.0 19990101 20170924 726506 99999 FOND DU LAC CO US WI KFLD 43.771 -88.488 246.0 19970123 19981231 726507 54907 IOWA COUNTY AIRPORT US WI KMRJ 42.887 -90.236 356.9 20060101 20170924 726507 99999 IOWA CO US WI KMRJ 42.883 -90.23299999999999 357.0 19970123 20071231 726508 94973 SAWYER COUNTY AIRPORT US WI KHYR 46.026 -91.444 367.0 20060101 20170924 726508 99999 SAWYER CO US WI KHYR 46.033 -91.45 371.0 19970123 20071231 726509 4898 DODGE COUNTY AIRPORT US WI KUNU 43.426 -88.70299999999999 285.3 20060101 20170924 726509 99999 DODGE CO US WI KUNU 43.433 -88.7 285.0 19970123 20071231 726510 14944 JOE FOSS FIELD AIRPORT US SD KFSD 43.578 -96.75399999999999 435.3 19421001 20170924 726513 99999 SIOUX FALLS NEXRAD US SD UDX 44.133 -102.833 954.0 19990408 19990408 726514 94032 CUSTER COUNTY AIRPORT US SD KCUT 43.733000000000004 -103.611 1690.1 20060101 20170924 726514 99999 CUSTER COUNTY US SD KCUT 43.733000000000004 -103.617 1707.0 19850522 20071231 726515 94902 BROOKINGS MUNICIPAL ARPT US SD KBKX 44.3 -96.8 502.3 20060101 20170924 726515 99999 BROOKINGS RGNL US SD KBKX 44.3 -96.81700000000001 502.0 19730101 20071231 726516 24024 PHILIP AIRPORT US SD KPHP 44.051 -101.601 672.4 19980702 20170924 726516 99999 PHILIP US SD KPHP 44.05 -101.6 673.0 20000101 20031231 726517 94039 PINE RIDGE AIRPORT US SD KIEN 43.021 -102.51799999999999 1015.3 20060101 20170924 726517 99999 PINE RIDGE US SD KIEN 43.016999999999996 -102.51700000000001 1016.0 19990114 20071231 726518 94990 WINNER REGIONAL AIRPORT US SD KICR 43.391000000000005 -99.84200000000001 619.4 20060101 20170924 726518 99999 WINNER US SD KICR 43.383 -99.85 619.0 19990114 20070803 726519 94993 SISSETON MUNICIPAL AIRPORT US SD K8D3 45.669 -96.991 353.9 20060101 20170924 726519 99999 SISSETON MUNI ARPT US SD K8D3 45.667 -97.0 354.0 20010811 20071231 726520 99999 PICKSTOWN SD. US 43.067 -98.53299999999999 453.0 19730101 19991128 726525 94911 CHAN GURNEY MUNICIPAL ARPT US SD KYKN 42.878 -97.363 359.7 20060101 20170924 726525 99999 CHAN GURNEY MUNI US SD KYKN 42.917 -97.383 398.0 19730101 20071231 726530 94943 CHAMBERLAIN MUNI AIRPORT US SD K9V9 43.766999999999996 -99.318 519.1 20060101 20170924 726530 99999 CHAMBERLAIN (AMOS) US SD K9V9 43.8 -99.31700000000001 530.0 19780310 20071231 726539 94056 FAITH MUNICIPAL AIRPORT US SD KD07 45.032 -102.01899999999999 786.4 20060101 20170924 726539 99999 FAITH MUNI US SD KD07 45.033 -102.01700000000001 787.0 19990114 20071231 726540 14936 HURON REGIONAL AIRPORT US SD KHON 44.398 -98.223 390.1 19730101 20170924 726543 99999 GLENWOOD US MN 45.65 -95.38 423.0 19930112 19950202 726544 4958 ORR REGIONAL AIRPORT US MN KORB 48.016000000000005 -92.85600000000001 399.6 20060101 20170924 726544 99999 ORR RGNL US MN KORB 48.016999999999996 -92.85 400.0 19930112 20071231 726545 94950 MITCHELL MUNICIPAL AIRPORT US SD KMHE 43.773999999999994 -98.038 395.9 20060101 20170924 726545 99999 MITCHELL MUNI US SD KMHE 43.775 -98.039 397.0 19730101 20071231 726546 14946 WATERTOWN MUNICIPAL ARPT US SD KATY 44.905 -97.149 532.8 19480101 20170924 726547 4931 GLENWOOD MUNICIPAL AIRPORT US MN KGHW 45.644 -95.32 424.6 20060101 20170924 726547 99999 GLENWOOD MUNI US MN KGHW 45.65 -95.31700000000001 425.0 19740809 20071231 726548 4971 WARROAD INTL-SWEDE CARLSON FLD ARPT US MN KRRT 48.941 -95.348 327.4 20060101 20170924 726548 99999 WARROAD INTL US MN KRRT 48.933 -95.333 327.0 19970123 20071231 726549 54905 COOK MUNICIPAL AIRPORT US MN KCQM 47.821999999999996 -92.689 404.5 20060101 20170924 726549 99999 COOK MUNI US MN KCQM 47.817 -92.68299999999999 404.0 19970718 20071231 726550 14926 ST CLOUD REGIONAL AIRPORT US MN KSTC 45.543 -94.051 307.5 19730101 20170924 726553 4951 MONTIVIDEO-CHIPPEWA CO APT US MN KMVE 44.968999999999994 -95.71 315.2 20060101 20170924 726553 99999 MONTEVIDEO CHIPPEWA US MN KMVE 44.968999999999994 -95.71700000000001 315.0 19880402 20071231 726554 54906 ST JAMES MUNICIPAL AIRPORT US MN KJYG 43.986000000000004 -94.55799999999999 325.2 20060101 20170924 726554 99999 ST JAMES MUNI US MN KJYG 43.986000000000004 -94.55799999999999 325.0 19860127 20071231 726555 94938 BRAINERD LAKES RGNL ARPT US MN KBRD 46.405 -94.131 372.2 20060101 20170924 726555 99999 BRAINERD LAKES RGNL US MN KBRD 46.4 -94.133 374.0 19730101 20071231 726556 14992 REDWOOD FALLS MUNI AIRPORT US MN KRWF 44.548 -95.08 311.2 20000101 20170924 726556 99999 REDWOOD FALLS MUNI US MN KRWF 44.55 -95.083 312.0 19491111 19991231 726557 14910 CHANDLER FIELD AIRPORT US MN KAXN 45.868 -95.39399999999999 431.6 19730101 20170924 726558 4914 CLOQUET CARLTON CO AIRPORT US MN KCOQ 46.703 -92.50399999999999 389.8 20060101 20170924 726558 99999 CLOQUET CARLTON CO US MN KCOQ 46.7 -92.5 390.0 19920804 20071231 726559 94976 SW MN RGNL MRSHL/RYAN FIELD AIRPORT US MN KMML 44.45 -95.81700000000001 359.4 20060101 20170924 726559 99999 SW MINNESOTA RGNL US MN KMML 44.451 -95.822 360.0 19840331 20071231 726560 24025 PIERRE REGIONAL AIRPORT US SD KPIR 44.381 -100.286 531.0 20100801 20170924 726560 94966 PIERRE RGNL US SD KFFM 46.283 -96.15 360.9 20060101 20100801 726560 99999 PIERRE RGNL US SD KPIR 44.383 -100.28299999999999 531.0 19840331 20071231 726561 94997 WADENA MUNICIPAL AIRPORT US MN KADC 46.446999999999996 -95.212 417.6 20060101 20170924 726561 99999 WADENA US MN KADC 46.45 -95.21700000000001 417.0 20020423 20071231 726562 4943 AIRLAKE AIRPORT US MN KLVN 44.628 -93.228 292.6 20060101 20170924 726562 99999 AIRLAKE US MN KLVN 44.629 -93.228 293.0 19970123 20071231 726563 94969 FARIBAULT MUNICIPAL ARPT US MN KFBL 44.333 -93.31700000000001 323.1 20060101 20170924 726563 99999 FARIBAULT MUNI US MN KFBL 44.325 -93.311 323.0 19861016 20071231 726564 4967 RED WING REGIONAL AIRPORT US MN KRGK 44.589 -92.485 237.7 20060101 20170924 726564 99999 RED WING RGNL US MN KRGK 44.583 -92.48299999999999 238.0 19911106 20071231 726565 4948 MORRIS MUNICIPAL AIRPORT US MN KMOX 45.566 -95.96799999999999 344.4 20060101 20170924 726565 99999 MORRIS MUNI US MN KMOX 45.567 -95.96700000000001 347.0 19911106 20071231 726566 4965 PIPESTONE MUNICIPAL ARPT US MN KPQN 43.983000000000004 -96.3 529.1 20060101 20170924 726566 99999 PIPESTONE MUNI US MN KPQN 43.983000000000004 -96.3 529.0 19911106 20071202 726567 4980 NEW ULM MUNICIPAL AIRPORT US MN KULM 44.318999999999996 -94.50200000000001 308.2 20060101 20170924 726567 99999 NEW ULM MUNI US MN KULM 44.317 -94.5 308.0 19911118 20071231 726568 4961 OWATONNA DEGNER RGNL ARPT US MN KOWA 44.123000000000005 -93.26100000000001 349.3 20060101 20170924 726568 99999 OWATONNA DEGNER RGNL US MN KOWA 44.117 -93.26700000000001 349.0 19920804 20071231 726569 4933 HTCHSON MUNI-BUTLR FLD APT US MN KHCD 44.858999999999995 -94.382 323.1 20060101 20170924 726569 99999 HUTCHINSON MUNI BUTL US MN KHCD 44.867 -94.383 323.0 19920804 20071231 726572 94966 FERGUS FALLS MUNICIPAL AIRPORT-EINAR MICKELSON FLD US MN KFFM 46.283 -96.15 360.6 20100801 20170924 726573 99999 AIRLAKE US MN 44.633 -93.23299999999999 292.0 19930112 19960815 726574 94985 MARSHFIELD MUNICIPAL ARPT US WI KMFI 44.638000000000005 -90.18799999999999 382.5 20060101 20170924 726574 99999 MARSHFIELD MUNI US WI KMFI 44.637 -90.189 389.0 19920807 20071231 726575 94960 CRYSTAL AIRPORT US MN KMIC 45.062 -93.351 262.4 20060101 20170924 726575 99999 CRYSTAL US MN KMIC 45.062 -93.354 265.0 19831103 20071231 726576 14928 WILLMAR RCO US MN KILL 45.117 -95.083 344.1 19901120 20090514 726576 99999 WILLMAR MUNI JOHN L RICE FLD US MN KILL 45.11600000000001 -95.089 343.5 20000101 20031231 726577 94974 ANOKA CO-BLNE AP(JNS FD) AP US MN KANE 45.15 -93.21700000000001 278.0 20060101 20170924 726577 99999 ANOKA CO BLAINE US MN KANE 45.15 -93.21700000000001 278.0 19901022 20071231 726578 4944 LITL FALS/MRSON CO-LNBRG FIELD AIRPORT US MN KLXL 45.949 -94.34700000000001 342.0 20060101 20170924 726578 99999 LITTLE FALLS MORRISO US MN KLXL 45.949 -94.34700000000001 342.0 19920804 20071231 726579 94963 FLYING CLOUD AIRPORT US MN KFCM 44.832 -93.471 276.5 20060101 20170924 726579 99999 FLYING CLOUD US MN KFCM 44.817 -93.45 276.0 19831103 20071231 726580 14922 MINNEAPOLIS-ST PAUL INTERNATIONAL AP US MN KMSP 44.883 -93.229 265.8 19450101 20170924 726583 4941 LITCHFIELD MUNICIPAL ARPT US MN KLJF 45.147 -94.507 347.5 20060101 20170924 726583 99999 LITCHFIELD MUNI US MN KLJF 45.1 -94.5 347.0 19850422 20071231 726584 14927 ST PAUL DWTWN HOLMAN FD AP US MN KSTP 44.931999999999995 -93.056 213.4 19831103 20170924 726584 99999 ST PAUL DOWNTOWN HO US MN KSTP 44.933 -93.05 215.0 20000101 20031231 726585 14954 MANKATO MUNICIPAL AIRPORT US MN KMKT 44.217 -93.917 311.2 20060101 20170924 726585 99999 MANKATA RGNL ARPT US MN KMKT 44.223 -93.919 311.0 19730101 20071231 726586 94948 FAIRMONT MUNICIPAL AIRPORT US MN KFRM 43.65 -94.417 353.9 20060101 20170924 726586 99999 FAIRMONT MUNI(AWOS) US MN KFRM 43.65 -94.417 354.0 19730101 20071231 726587 94927 WORTHINGTON MUNICIPAL ARPT US MN KOTG 43.645 -95.58 478.5 20060101 20170924 726587 99999 WORTHINGTON MUNI US MN KOTG 43.65 -95.583 480.0 19730101 20071231 726588 4956 WIOA MUNI-MAX CONRAD FD AP US MN KONA 44.077 -91.708 200.0 20060101 20170924 726588 99999 WINONA MUNI CONRAD F US MN KONA 44.083 -91.7 200.0 19911118 20071231 726589 94968 ALBERT LEA MUNICIPAL ARPT US MN KAEL 43.683 -93.367 383.7 20060101 20170924 726589 99999 ALBERT LEA (AWOS) US MN KAEL 43.683 -93.367 383.0 19860331 20071231 726590 14929 ABERDEEN REGIONAL AIRPORT US SD KABR 45.443000000000005 -98.413 395.3 19730101 20170924 726593 4946 JACKSON MUNICIPAL AIRPORT US MN KMJQ 43.65 -94.986 440.7 20060101 20170924 726593 99999 JACKSON MUNI US MN KMJQ 43.65 -94.98700000000001 441.0 19980201 20071231 726596 4978 DODGE CENTER ARPT US MN KTOB 44.018 -92.831 397.8 20060101 20170924 726596 99999 DODGE CENTER US MN KTOB 44.016999999999996 -92.833 398.0 20010811 20071231 726603 4974 SOUTH ST PAUL MUNI-RICHARD E FLEMING FLD ARPT US MN KSGS 44.857 -93.03299999999999 249.9 20060101 20170924 726603 99999 SOUTH ST PAUL MUNI US MN KSGS 44.85 -93.03299999999999 250.0 19950101 20071231 726605 386 BLACK HILLS AIRPORT CLYDE ICE FIELD US SD KSPF 44.483000000000004 -103.78299999999999 1198.2 20151208 20151218 726605 99999 BLACK HILLS CLYDE ICE FLD US SD KSPF 44.48 -103.78299999999999 1198.2 19900727 20170923 726606 99999 BELLE FOURCHE MUNI US SD KEFC 44.733999999999995 -103.86200000000001 972.3 19921024 20040521 726610 99999 REDIG SD. US 45.266999999999996 -103.53299999999999 925.0 19770827 19890410 726620 24090 RAPID CITY REGIONAL AIRPORT US SD KRAP 44.043 -103.054 963.2 19730101 20170924 726625 24006 ELLSWORTH AIR FORCE BASE US SD KRCA 44.15 -103.1 999.1 19390201 20170924 726625 99999 ELLSWORTH AFB US SD KRCA 44.133 -103.1 999.0 20000101 20071231 726626 4864 LANGLADE COUNTY AIRPORT US WI KAIG 45.153999999999996 -89.111 463.9 20060101 20170924 726626 99999 LANGLADE CO US WI KAIG 45.15 -89.117 464.0 19730101 20071231 726627 94037 BUFFALO US SD K2WX 45.604 -103.546 915.6 19990101 20170924 726627 99999 BUFFALO US SD K2WX 45.6 -103.55 915.0 19740809 19981231 726630 99999 MOORCROFT US WY 4MC 44.266999999999996 -104.95 1303.0 19730101 19760503 726650 94023 GILLETTE-CAMPBELL CO. ARPT US WY KGCC 44.339 -105.542 1327.1 20060101 20170924 726650 99999 GILLETTE/GILLETTE-C US WY KGCC 44.349 -105.539 1230.0 19770828 20071231 726654 94054 JOHNSON COUNTY AIRPORT US WY KBYG 44.381 -106.721 1513.9 20060101 20170924 726654 99999 JOHNSON CO US WY KBYG 44.383 -106.71700000000001 1514.0 19990426 20071231 726655 99999 GILLETTE (AMOS) US WY 44.35 -105.53299999999999 1329.0 19761110 19770802 726656 99999 BANGOR CGS US WA 47.733000000000004 -122.71700000000001 0.0 19850118 19850130 726657 99999 WEST JONESPORT CGS& US ME 44.516999999999996 -67.6 0.0 19850118 19850130 726660 24029 SHERIDAN COUNTY AIRPORT US WY KSHR 44.769 -106.969 1202.4 19730101 20170924 726662 99999 US 19760820 19760920 726664 94173 YELLOWSTONE US WY KP60 44.544 -110.421 2388.1 19790322 20170923 726665 24062 WORLAND MUNICIPAL AIRPORT US WY KWRL 43.966 -107.95100000000001 1271.6 20000101 20170924 726665 99999 WORLAND MUNI US WY KWRL 43.967 -107.95 1288.0 19730101 19991231 726666 99999 CODY MUNI (AWOS) & US WY 44.516999999999996 -109.01700000000001 1551.0 19730101 19770802 726667 24048 SOUTH BIG HORN COUNTY ARPT US WY KGEY 44.516999999999996 -108.08200000000001 1198.8 20060101 20170924 726667 99999 SOUTH BIG HORN CO US WY KGEY 44.516999999999996 -108.083 1199.0 19800616 20071231 726670 99999 US 19730101 19760305 726671 99999 BROADUS & US MT 45.433 -105.4 922.0 19760305 19900219 726673 99999 BROADUS & US MT K4BQ 45.433 -105.4 922.0 19900314 19951206 726675 24037 MILES CITY MUNICIPAL ARPT US MT KMLS 46.427 -105.883 802.8 19730101 19830531 726676 24087 DAWSON COMMUNITY AIRPORT US MT KGDV 47.133 -104.8 748.9 20060101 20170924 726676 99999 DAWSON COMMUNITY US MT KGDV 47.133 -104.8 749.0 19730101 20071231 726679 4969 RUSH CITY REGIONAL AIRPORT US MN KROS 45.698 -92.95299999999999 281.3 20060101 20170924 726679 99999 RUSH CITY RGNL US MN KROS 45.7 -92.95 281.0 20010811 20071231 726680 99999 MOBRIDGE US SD 45.55 -100.417 522.0 19730101 19760305 726681 99999 MOBRIDGE US SD Y26 45.533 -100.43299999999999 508.0 19760305 19770227 726682 54914 PRINCETON MUNICIPAL AIRPORT US MN KPNM 45.56 -93.60799999999999 298.4 20060101 20170924 726682 99999 PRINCETON MUNI US MN KPNM 45.56 -93.60799999999999 298.0 19970313 20071231 726685 94052 MOBRIDGE MUNICIPAL AIRPORT US SD KMBG 45.54600000000001 -100.40799999999999 522.7 20060101 20170924 726685 99999 MOBRIDGE MUNI US SD KMBG 45.547 -100.40799999999999 523.0 19770301 20071231 726686 24025 PIERRE RGNL US SD KPIR 44.381 -100.286 526.1 19440301 20100731 726686 99999 PIERRE RGNL US SD 44.383 -100.28299999999999 544.0 20100801 20100817 726690 24057 RAWLINS MUNI/HARVEY FIELD ARPT US WY KRWL 41.8 -107.2 2053.1 20100801 20170924 726690 99999 RAWLINS MUNICIPAL US WY KRWL 41.8 -107.2 2065.0 19730101 19760305 726691 99999 LEMMON US SD Y22 45.933 -102.167 791.0 19760305 19770227 726695 99999 LEMMON MUNI US SD KLEM 45.919 -102.10600000000001 783.6 19770301 20010827 726700 24045 YELLOWSTONE REGIONAL ARPT US WY KCOD 44.516999999999996 -109.01700000000001 1552.0 20060101 20170924 726700 99999 CODY MUNI (AWOS) US WY KCOD 44.516999999999996 -109.01700000000001 1553.0 19770827 20071231 726704 99999 BUFFALO US WY 44.383 -106.71700000000001 1514.0 19990114 19990204 726710 24164 BIG PINEY-MARBLETON ARPT US WY KBPI 42.583999999999996 -110.10799999999999 2124.5 19990101 20170924 726710 99999 BIG PINEY (AMOS) US WY KBPI 42.567 -110.1 2124.0 19780310 19981231 726720 24061 RIVERTON REGIONAL AIRPORT US WY KRIW 43.06399999999999 -108.459 1659.6 20070401 20170924 726720 99999 RIVERTON US WY KRIW 43.06399999999999 -108.46 1684.0 20050509 20070331 726760 99999 US 19730101 19750813 726761 99999 WEST YELLOWSTONE & US MT 44.65 -111.1 2031.0 19750814 19900219 726763 24198 WEATHER SERVICE OFFICE US MT KWEY 44.65 -111.1 2030.9 20060103 20071019 726763 99999 WEST YELLOWSTONE US MT KWEY 44.65 -111.1 2031.0 19900314 20071019 726764 94163 YELLOWSTONE AIRPORT US MT KWYS 44.683 -111.117 2026.6 20060608 20170924 726764 99999 YELLOWSTONE US MT KWYS 44.683 -111.117 2025.0 19910801 20070930 726765 99999 WEST YELLOWSTONE & US MT 44.683 -111.117 2025.0 19730601 19900930 726766 99999 MONIDA US MT 44.567 -112.31700000000001 2068.0 19430313 19920323 726770 24033 BILLINGS LOGAN INTERNATIONAL AIRPORT US MT KBIL 45.806999999999995 -108.542 1091.5 19350501 20170924 726774 99999 HAMILTON/RAVALLI CO US MT 46.25 -114.15 1110.0 19880905 20030428 726775 99999 HARLOWTON US MT 46.43 -109.83 1268.0 19730101 20051101 726776 24036 LEWISTOWN MUNICIPAL ARPT US MT KLWT 47.049 -109.458 1263.4 19420401 20170924 726777 94055 BAKER MUNICIPAL AIRPORT US MT KBHK 46.358000000000004 -104.25 905.6 20060101 20170924 726777 99999 BAKER MUNI US MT KBHK 46.35 -104.26700000000001 906.0 19980514 20071231 726785 24135 BERT MOONEY US MT KBTM 45.965 -112.501 1686.5 19770301 20100801 726785 99999 BERT MOONEY US MT 45.95 -112.5 1734.0 20100801 20100818 726790 99999 US 19730101 19760305 726791 24135 BUTTE SILVER BOW CO ARPT US MT KBTM 45.965 -112.501 1686.5 19760305 19770227 726795 24161 WHITEHALL US MT HIA 45.867 -111.96700000000001 1303.9 19730101 19780101 726796 24138 DILLON AIRPORT US MT KDLN 45.258 -112.554 1591.7 19730101 20100801 726796 99999 DILLON AIRPORT US MT 45.25 -112.55 1597.0 20100801 20100818 726797 24132 GALLATIN FIELD AIRPORT US MT KBZN 45.788000000000004 -111.161 1349.4 19730101 20170924 726798 24150 MISSION FIELD AIRPORT US MT KLVM 45.698 -110.441 1415.2 19730101 20170924 726799 99999 DILLON SAWRS US MT 45.25 -112.55 1537.0 19730701 19740507 726809 99999 BOISE NEXRAD US ID 43.5 -116.23299999999999 958.0 19990416 20010710 726810 24131 BOISE AIR TERMINAL/GOWEN FD AIRPORT US ID KBOI 43.567 -116.241 857.7 19310101 20170924 726813 94195 CALDWELL INDUSTRIAL ARPT US ID KEUL 43.65 -116.633 740.4 20060101 20170924 726813 99999 CALDWELL (AWOS) US ID KEUL 43.633 -116.633 740.0 19920409 20071231 726815 24106 MOUNTAIN HOME AFB AIRPORT US ID KMUO 43.05 -115.867 913.2 19320101 20170924 726815 99999 MOUNTAIN HOME AFB US ID KMUO 43.05 -115.867 913.0 20000101 20071231 726816 4110 JEROME COUNTY AIRPORT US ID KJER 42.727 -114.456 1233.8 20060101 20170924 726816 99999 JEROME CO US ID KJER 42.727 -114.45700000000001 1235.0 19990114 20071231 726817 24154 MULLAN PASS US ID KMLP 47.457 -115.645 1837.3 19960702 20170924 726817 99999 MULLAN PASS VOR US ID KMLP 47.45 -115.667 1829.0 20000101 20031231 726818 94194 REXBURG-MADISON COUNTY APT US ID KRXE 43.833999999999996 -111.804 1480.7 19990102 20170924 726824 4112 STANLEY RANGER STATION US ID KSNT 44.17100000000001 -114.927 1979.7 19990102 20170924 726830 94185 BURNS MUNICIPAL AIRPORT US OR KBNO 43.595 -118.956 1261.9 19730101 20170924 726830 99999 BURNS MUNI (AMOS) US OR KBNO 43.583 -118.95 1271.0 19810101 19901231 726834 99999 CHETCO RIVER COAST GUARD STATION US OR 42.15 -124.27 6.0 19771108 19910105 726835 24230 ROBERTS FLD US OR KRDM 44.256 -121.139 940.0 19420101 20100801 726835 99999 ROBERTS FLD US OR 44.25 -121.15 962.0 20100801 20100818 726836 4201 SCAPPOOSE INDUS AIRPK ARPT US OR KSPB 45.773 -122.861 16.8 20060101 20170924 726836 99999 SCAPPOOSE INDUSTRIAL US OR KSPB 45.773 -122.867 18.0 19780711 20071231 726837 24162 ONTARIO MUNICIPAL AIRPORT US OR KONO 44.021 -117.01299999999999 668.4 19730101 20170924 726837 99999 ONTARIA MUNI US OR KONO 44.016999999999996 -117.01700000000001 668.0 20000101 20031231 726838 94185 BURNS MUNICIPAL ARPT US OR KBNO 43.595 -118.956 1271.0 19801231 19901231 726839 94196 JOHN DAY STATE ARPT US OR K5J0 44.403999999999996 -118.963 1126.8 20060102 20061122 726839 99999 JOHN DAY STATE ARPT US OR 44.4 -118.96700000000001 1127.0 19900517 19950716 726860 99999 US 19730101 19760304 726861 99999 SALMON US ID SMN 45.117 -113.883 1232.0 19760305 19770225 726865 24196 LEMHI COUNTY AIRPORT US ID KSMN 45.117 -113.883 1232.6 20060101 20170924 726865 99999 LEMHI CO US ID KSMN 45.117 -113.883 1232.0 19770301 20071231 726866 99999 SALMON US ID 45.18 -113.9 1210.0 19810906 19971231 726870 99999 US 19730101 19760305 726871 99999 GRANGEVILLE & US ID 45.95 -116.133 1009.0 19760305 19900219 726873 452 IDAHO COUNTY AIRPORT US ID KGIC 45.943000000000005 -116.12299999999999 1010.1 20150224 20170923 726873 99999 IDAHO COUNTY AIRPORT US ID KGIC 45.943000000000005 -116.12299999999999 1010.1 19900322 20150602 726874 99999 ROME AUTOMATIC METEOROLOGICAL OB US 42.9 -117.65 1162.0 19810909 19980427 726875 94107 ROME STATE AIRPORT US OR KREO 42.591 -117.86399999999999 1234.4 19980302 20170924 726875 99999 ROME STATE US OR KREO 42.583 -117.883 1235.0 20000101 20031231 726876 387 GRANT COUNTY REGIONAL AIRPORT OGILVIE FIELD US OR KGCD 44.4 -118.96700000000001 1127.2 20151208 20170923 726876 99999 GRANT RGNL OGILVIE FLD US OR KGCD 44.4 -118.96700000000001 1126.8 19990114 20170922 726880 24155 EASTERN OR REGIONAL AT PENDLETON AP US OR KPDT 45.698 -118.855 452.9 19420101 20170924 726881 94273 MC MINNVILLE MUNICIPAL APT US OR KMMV 45.195 -123.134 48.5 20060101 20170924 726881 99999 MC MINNVILLE MUNI US OR KMMV 45.183 -123.133 50.0 19970201 20071231 726883 4113 HERMISTON MUNICIPAL ARPT US OR KHRI 45.826 -119.26100000000001 195.4 20060101 20170924 726883 99999 HERMISTON MUNI US OR KHRI 45.828 -119.259 196.0 19980514 20071231 726884 24148 LA GRANDE/UNION COUNTY APT US OR KLGD 45.283 -118.0 826.9 19880506 20170924 726884 99999 LA GRANDE UNION CO US OR KLGD 45.283 -118.0 828.0 20000101 20031231 726885 24152 MEACHAM US OR KMEH 45.511 -118.425 1134.8 19730101 20170924 726886 24130 BAKER CITY MUNICIPAL ARPT US OR KBKE 44.843 -117.809 1024.4 19730101 20170924 726887 99999 SUNRIVER US OR KS21 43.876000000000005 -121.45299999999999 1269.2 19800514 19800617 726901 24231 ROSEBURG US OR KRBG 43.239 -123.355 155.1 19730101 19800430 726904 24231 ROSEBURG REGIONAL AIRPORT US OR KRBG 43.239 -123.355 160.0 19800514 20170924 726904 99999 ROSEBURG RGNL US OR KRBG 43.233000000000004 -123.35 161.0 20000101 20031231 726910 99999 US 19730101 19760305 726911 99999 US 19760305 19770213 726915 99999 COOS BAY COAST GUARD STATION US OR 43.35 -124.33 23.0 19750911 19870805 726916 99999 UMPQUA RIVER COAST GUARD STATION US OR 43.68 -124.17 41.0 19750813 19910105 726917 24284 NORTH BEND MUNICIPAL ARPT US OR KOTH 43.413000000000004 -124.244 5.2 19770101 20170924 726917 99999 NORTH BEND MUNI US OR KOTH 43.417 -124.23299999999999 5.0 20000101 20031231 726920 24230 ROBERTS FIELD AIRPORT US OR KRDM 44.256 -121.139 927.5 20100801 20170924 726930 24221 MAHLON SWEET FIELD AIRPORT US OR KEUG 44.128 -123.221 107.6 19730101 20170924 726940 24232 MCNARY FIELD AIRPORT US OR KSLE 44.905 -123.001 62.5 19730101 20170924 726945 24202 CORVALLIS MUNICIPAL APRT US OR KCVO 44.5 -123.28299999999999 76.2 20060101 20170924 726945 99999 CORVALLIS MUNI US OR KCVO 44.483000000000004 -123.28299999999999 75.0 19430421 20071231 726950 24285 NEWPORT MUNICIPAL AIRPORT US OR KONP 44.583 -124.05 37.2 20110301 20170924 726950 99999 NEWPORT MUNI US OR KONP 44.58 -124.05799999999999 49.0 19730101 20110228 726951 99999 NEWPORT US OR JNW 44.633 -124.05 48.0 19760305 19770227 726954 99999 NEWPORT US OR 44.583 -124.06700000000001 48.0 19901022 20011231 726955 99999 SIUSLAW RIVER COAST GUARD STATIO US 44.0 -124.12 12.0 19750916 19910105 726956 99999 YAQUINA BAY COAST GUARD STATION US OR 44.62 -124.05 1.0 19750916 19910105 726957 99999 PACIFIC CITY STATE US OR 45.2 -123.96700000000001 2.0 19901023 19921118 726958 24285 NEWPORT MUNICIPAL US OR KONP 44.583 -124.05 48.8 19770301 20110301 726958 99999 NEWPORT MUNICIPAL US OR 44.583 -124.05 48.0 20000101 20031231 726959 94281 AURORA STATE AIRPORT US OR KUAO 45.248999999999995 -122.76899999999999 59.7 20060101 20170924 726959 99999 AURORA STATE US OR KUAO 45.25 -122.76700000000001 61.0 19801015 20071231 726963 99999 TILLAMOOK US OR S47 45.417 -123.81700000000001 11.0 19920828 19950607 726980 24229 PORTLAND INTERNATIONAL AIRPORT US OR KPDX 45.596000000000004 -122.609 5.8 19360501 20170924 726985 24242 PORTLAND-TROUTDALE AIRPORT US OR KTTD 45.551 -122.40899999999999 8.8 20060101 20170924 726985 99999 PORTLAND TROUTDALE US OR KTTD 45.55 -122.4 12.0 19480101 20071231 726986 94261 PORTLAND-HILLSBORO AIRPORT US OR KHIO 45.541000000000004 -122.949 62.2 20060101 20170924 726986 99999 PORTLAND/HILLSBORO US OR KHIO 45.533 -122.95 62.0 19730101 20071231 726987 94204 CASCADE LOCKS STATE AIRPORT US OR KCZK 45.683 -121.883 46.0 20060101 20131001 726987 99999 CASCADE LOCKS STATE US OR KCZK 45.667 -121.883 46.0 19730101 20071231 726988 24219 MUNICIPAL AIRPORT US WA KDLS 45.619 -121.166 71.6 19730101 20170924 726989 99999 TILLAMOOK BAY COAST GUARD STATIO US 45.57 -123.92 15.0 19750911 19901117 727000 99999 FREDERICTON AIRPORT CA 45.867 -66.533 20.0 19730101 19770702 727010 99999 GAGETOWN (CAN-MIL) CA 45.833 -66.433 51.0 19750602 19770630 727020 99999 SUMMERSIDE(CAN-MIL) CA 46.433 -63.833 24.0 19730101 19770727 727031 99999 HOULTON INTL ARPT & US ME 46.133 -67.783 150.0 19730101 19900219 727033 14609 INTERNATIONAL AIRPORT US ME KHUL 46.119 -67.793 145.1 20000101 20170924 727033 99999 HOULTON INTL US ME KHUL 46.117 -67.8 149.0 19420617 19991231 727050 99999 MONCTON AIRPORT CA 46.117 -64.683 71.0 19730101 19770712 727060 99999 CHARLOTTETOWN ARPT CA 46.283 -63.133 55.0 19730101 19770703 727070 99999 SYDNEY AIRPORT CA 46.167 -60.05 62.0 19730101 19770630 727075 99999 INVERNESS (MARS) CA 46.233000000000004 -61.3 41.0 19730101 19770630 727090 99999 ILES DE LA MADELEIN CA 47.383 -61.867 57.0 19730101 19770630 727100 99999 US 19730101 19740730 727110 99999 CHARLO AIRPORT CA 48.0 -66.333 37.0 19730101 19770630 727119 94605 CLAYTON LAKE US ME K40B 46.617 -69.533 314.2 20060101 20170924 727119 99999 CLAYTON LAKE US ME K40B 46.617 -69.517 314.0 19850208 20070103 727120 14607 CARIBOU MUNICIPAL AIRPORT US ME KCAR 46.871 -68.017 190.2 19730101 20170924 727125 14623 LORING AFB/LIMESTON US ME KLIZ 46.95 -67.883 227.0 19500801 19940304 727125 99999 LORING INTL US ME ME16 46.95 -67.88600000000001 227.4 20130225 20130430 727130 14604 NERN MAINE RGNL ARPT AT PRESQUE IS AIRPORT US ME KPQI 46.683 -68.05 162.8 19411101 20170924 727130 99999 PRESQUE ISLE (AWOS) US ME KPQI 46.683 -68.05 146.0 20000101 20031231 727135 94623 WISCASSET AIRPORT US ME KIWI 43.964 -69.712 20.7 20060101 20170924 727135 99999 WISCASSET US ME KIWI 43.961000000000006 -69.71300000000001 21.0 19950913 20071231 727140 99999 QUEBEC AIRPORT CA 46.8 -71.383 72.0 19730101 19770630 727145 99999 TROIS RIVIERES CA 46.35 -72.683 60.0 19730101 19770630 727150 99999 RIVIERE DU LOUP & CA 47.8 -69.55 149.0 19730101 19770630 727170 99999 CHATHAM CA 47.016999999999996 -65.45 33.0 19730101 19770630 727180 99999 MONT JOLI AIRPORT CA 48.6 -68.2 52.0 19730101 19770630 727190 99999 MISCOU ISL (MARS) CA 48.016999999999996 -64.5 4.0 19730101 19770630 727200 99999 STE AGATHE DES MONT CA 46.05 -74.283 395.0 19730101 19770630 727220 99999 MANIWAKI CA 46.367 -75.983 168.0 19730101 19770803 727250 99999 VAL DOR CA YVO 48.05 -77.783 337.0 19730101 19770630 727255 99999 ROUYN AIRPORT CA 48.2 -78.833 301.0 19730101 19770630 727260 99999 PARENT (MARS) CA 47.917 -74.617 439.0 19730101 19770728 727270 99999 BAGOTVILLE(CAN-MIL) CA 48.333 -71.0 159.0 19730101 19770630 727280 99999 ROBERVAL AIRPORT CA 48.516999999999996 -72.267 179.0 19730101 19770630 727300 99999 SUDBURY AIRPORT CA 46.617 -80.8 341.0 19730101 19770630 727310 99999 NORTH BAY AIRPORT CA 46.367 -79.417 370.0 19730101 19770630 727320 99999 BRITT CA 45.8 -80.533 192.0 19761117 19770217 727330 99999 GORE BAY AIRPORT CA 45.883 -82.56700000000001 193.0 19730101 19770630 727340 14847 SAULT STE MARIE MUNI/SASN FIELD AP US MI KANJ 46.479 -84.35700000000001 220.1 19730101 20170924 727344 4869 CHIPPEWA COUNTY INTL ARPT US MI KCIU 46.25 -84.46700000000001 243.5 20060101 20170924 727344 99999 CHIPPEWA CO INTL US MI KCIU 46.25 -84.46700000000001 244.0 19780319 20071231 727345 14847 SAULT STE MARIE US MI KANJ 46.479 -84.35700000000001 220.7 19480101 19721231 727345 99999 SAULT STE MARIE US MI 46.483000000000004 -84.367 218.0 19730101 19910908 727346 99999 SAULT STE. MARIE COAST GUARD STA US 46.5 -84.33 176.0 19760926 19960701 727347 14841 PELLSTON REGIONAL ARPT OF EMMET COUNTY ARPT US MI KPLN 45.56399999999999 -84.79299999999999 214.9 19730101 20170924 727348 99999 SAINT IGNACE US MI 45.85 -84.72 176.0 19760926 19960701 727349 99999 WHITEFISH POINT LS US MI 46.766999999999996 -84.95 183.0 19811106 19811106 727350 99999 EARLTON AIRPORT CA 47.7 -79.85 244.0 19730101 19770704 727370 99999 US 19730101 19760331 727375 99999 SAULT STE MARIE & CA 46.483000000000004 -84.5 188.0 19730101 19770630 727376 99999 GRAND MARAIS COAST GUARD STATION US MI 46.67 -85.98 183.0 19760926 19820803 727377 99999 WHITEFISH POINT US MI 46.766999999999996 -84.96700000000001 186.0 19770917 19811020 727380 99999 WAWA AIRPORT CA 47.967 -84.78299999999999 287.0 19730101 19770630 727390 99999 TIMMINS AIRPORT CA 48.567 -81.367 295.0 19730101 19770630 727410 99999 PARK FALLS MUNI US WI KPKF 45.955 -90.42399999999999 457.2 19730101 20010203 727415 4803 RHINELANDER-ONEIDA CO ARPT US WI KRHI 45.631 -89.48200000000001 495.0 20060101 20170924 727415 99999 RHINELANDER ONEIDA US WI KRHI 45.633 -89.46700000000001 495.0 19730101 20071231 727416 99999 DEVILS ISLAND LIGHT STATION US WI 47.08 -90.73 192.0 19760926 19870526 727417 54825 PRESQUE ISLE COUNTY AIRPORT US MI KPZQ 45.407 -83.81299999999999 204.2 20060101 20170924 727417 99999 PRESQUE ISLE CO US MI KPZQ 45.4 -83.81700000000001 204.0 20041230 20071231 727430 94850 MARQUETTE MICHIGAN COUNTY AP (WFO) US MI KMQT 46.531000000000006 -87.54899999999999 431.3 19730101 20170923 727430 99999 MARQUETTE CO. ARPT US MI KMQT 46.533 -87.55 434.0 20040105 20071123 727431 99999 MARQUETTE US MI MQT 46.533 -87.56700000000001 434.0 19850531 19850626 727434 4870 CHARLEVOIX MUNICIPAL ARPT US MI KCVX 45.305 -85.275 196.9 20060101 20170924 727434 99999 CHARLEVOIX MUNI US MI KCVX 45.3 -85.26700000000001 204.0 20020423 20071231 727435 54820 MACKINAC ISLAND AIRPORT US MI KMCD 45.865 -84.637 225.6 20060101 20170924 727435 99999 MACKINACK ISLAND US MI KMCD 45.865 -84.637 226.0 19561008 20071231 727436 4863 ANTRIM COUNTY AIRPORT US MI KACB 44.986000000000004 -85.20299999999999 189.0 20060101 20170925 727436 99999 ANTRIM CO US MI KACB 44.983000000000004 -85.2 190.0 19730101 20071231 727437 94893 FORD AIRPORT US MI KIMT 45.818000000000005 -88.11399999999999 342.0 20060101 20170924 727437 99999 FORD US MI KIMT 45.817 -88.117 360.0 19730101 20071231 727438 99999 MARQUETTE COAST GUARD LIGHT STAT US 46.55 -87.38 203.0 19760926 19960701 727439 99999 MANITOU ISLAND(CGS) US MI 47.417 -87.583 186.0 19760926 19771209 727440 14858 HOUGHTON COUNTY MEMO ARPT US MI KCMX 47.169 -88.48899999999999 333.8 19730101 20170924 727444 4979 RICHARD B HELGESON AIRPORT US MN KTWM 47.049 -91.745 329.2 20060101 20170924 727444 99999 RICHARD B HELGESON US MN KTWM 47.05 -91.75 329.0 19920807 20071231 727445 94926 GOGEBIC-IRON COUNTY ARPT US MI KIWD 46.533 -90.133 374.9 20060101 20170924 727445 99999 GOCEBIC IRON CO US MI KIWD 46.527 -90.131 375.0 19730101 20071231 727446 99999 TWO HARBORS(AWOS) US MN 47.1 -91.75 328.0 19760926 19810622 727447 99999 EAGLE HARBOR COAST GUARD LIGHT S US 47.47 -88.17 186.0 19760926 19830324 727448 99999 PORTAGE COAST GUARD STATION US MI 47.23 -88.63 190.0 19760926 19910303 727449 4954 MOOSE LAKE CARLTON CO ARPT US MN KMZH 46.419 -92.804 328.0 20060101 20170924 727449 99999 MOOSE LAKE CARLTON C US MN KMZH 46.417 -92.8 328.0 19760926 20071231 727450 14913 DULUTH INTERNATIONAL AIRPORT US MN KDLH 46.836999999999996 -92.18299999999999 436.8 19480101 20170924 727452 4912 CRKSTN MUNI KRKWOD FLD APT US MN KCKN 47.842 -96.62100000000001 274.0 20060101 20170924 727452 99999 CROOKSTON MUNI KIRKW US MN KCKN 47.85 -96.617 274.0 19850920 20071231 727453 94967 PK RPDS MUNI-KONSHOK FD AP US MN KPKD 46.901 -95.068 437.1 19900111 20170924 727454 4911 GRAND MARAIS/COOK CO ARPT US MN KCKC 47.838 -90.383 548.0 20060101 20170924 727454 99999 GRAND MARAIS COOK CO US MN KCKC 47.833 -90.383 548.0 19970313 20071231 727455 94931 CHISHOLM-HIBBING AIRPORT US MN KHIB 47.386 -92.839 412.1 19730101 20170924 727456 4919 SKY HARBOR AIRPORT US MN KDYT 46.722 -92.04299999999999 185.9 20060101 20170924 727456 99999 SKY HARBOR US MN KDYT 46.722 -92.04299999999999 186.0 19760926 20071231 727457 94962 DETRT LKS-WETHING FLD ARPT US MN KDTL 46.833 -95.883 425.8 20060101 20170924 727457 99999 DETROIT LAKES WETHIN US MN KDTL 46.825 -95.88600000000001 426.0 19780203 20071231 727458 94919 GRAND RAPIDS/ITASCA CO-G NEWSTROM FIELD ARPT US MN KGPZ 47.211000000000006 -93.51 413.0 20060101 20170924 727458 99999 GRAND RAPIDS ITASCA US MN KGPZ 47.217 -93.51700000000001 413.0 19831103 20071231 727459 94964 ELY MUNICIPAL AIRPORT US MN KELO 47.817 -91.833 443.8 20060101 20170924 727459 99999 ELY MUNI US MN KELO 47.817 -91.833 443.0 19831103 20071231 727466 4918 MDSON-LAC QUI PARLE CO APT US MN KDXX 44.986000000000004 -96.04299999999999 329.8 20060101 20170924 727466 99999 LAC QUI PARLE CO US MN KDXX 44.986000000000004 -96.178 330.0 19990114 20071231 727467 4926 FLAG ISLAND US MN KFGN 49.318000000000005 -94.90299999999999 329.2 20060101 20170924 727467 99999 FLAG ISLAND US MN KFGN 49.317 -94.9 329.0 19990114 20071231 727468 4928 BIGFORK MUNICIPAL AIRPORT US MN KFOZ 47.783 -93.65 411.2 20060101 20170924 727468 99999 BIGFORK US MN KFOZ 47.783 -93.65 411.0 19990114 20071231 727469 94992 GRAND MARAIS US MN KGNA 47.747 -90.344 185.9 20060101 20170924 727469 99999 GRAND MARIAS US MN KGNA 47.833 -90.383 186.0 19990114 20071231 727470 14918 FALLS INTERNATIONAL AIRPORT US MN KINL 48.56100000000001 -93.398 360.6 19730101 20170924 727473 94977 SCOTTS SPB US MN KCDD 48.266999999999996 -92.48299999999999 341.1 20060101 20170924 727473 99999 CRANE LAKE SEAPLANE US MN KCDD 48.266999999999996 -92.48299999999999 341.0 19910108 20071231 727474 4923 EVELETH-VIRGINIA MUNI ARPT US MN KEVM 47.424 -92.49799999999999 420.3 20060101 20170924 727474 99999 EVELETH VIRGINIA MUN US MN KEVM 47.425 -92.49799999999999 420.0 19920804 20071231 727475 4940 MORA MUNICIPAL AIRPORT US MN KJMR 45.886 -93.272 308.5 20060101 20170924 727475 99999 MORA MUNI US MN KJMR 45.886 -93.272 308.0 19760820 20071231 727476 94961 BAUDETTE INTERNATIONAL APT US MN KBDE 48.717 -94.6 329.8 19831104 20170924 727477 4970 ROSEAU MUNI/RUDY BILLBERG FLD ARPT US MN KROX 48.856 -95.697 322.8 20060101 20170924 727477 99999 ROSEAU MUNI BILLBERG US MN KROX 48.85 -95.7 323.0 19900924 20071231 727478 4934 HALLOCK MUNICIPAL AIRPORT US MN KHCO 48.753 -96.943 249.6 20060101 20170924 727478 99999 HALLOCK MUNI US MN KHCO 48.75 -96.95 250.0 19920807 20071231 727480 99999 ATIKOKAN (AUT) & CA 48.75 -91.617 391.0 19730101 19770630 727486 4983 WASKISH MUNICIPAL AIRPORT US MN KVWU 48.153999999999996 -94.51700000000001 360.0 20060101 20170924 727486 99999 WASKISH MUNI AIRPT US MN KVWU 48.15 -94.51700000000001 360.0 20010811 20071231 727490 99999 THUNDER BAY AIRPORT CA 48.367 -89.31700000000001 199.0 19730101 19770630 727495 99999 ROYAL ISLAND CA 49.033 -90.46700000000001 489.0 19730101 19770630 727497 4984 LONGVILLE MUNICIPAL ARPT US MN KXVG 46.99 -94.204 406.6 20060101 20170924 727497 99999 LONGVILLE MUNI US MN KXVG 46.983000000000004 -94.2 407.0 20010811 20071231 727500 99999 PEQUOT LAKE MN US 46.6 -94.31700000000001 390.0 19760901 20040727 727503 4909 CAMBRIDGE MUNICIPAL ARPT US MN KCBG 45.559 -93.265 288.0 20060101 20170923 727503 99999 CAMBRIDGE MUNI US MN KCBG 45.55 -93.26700000000001 288.0 19920807 20071231 727504 94999 ATKN MUNI-S KURTZ FLD ARPT US MN KAIT 46.548 -93.677 367.0 20060101 20170924 727504 99999 AITKIN MUNI KURTZ FL US MN KAIT 46.55 -93.68299999999999 367.0 19920807 20071231 727505 4929 FOSSTON MUNICIPAL AIRPORT US MN KFSE 47.593 -95.775 389.2 20060101 20170924 727505 99999 FOSSTON MUNI US MN KFSE 47.6 -95.76700000000001 389.0 19920807 20071231 727506 4952 WINDOM MUNICIPAL AIRPORT US MN KMWM 43.913000000000004 -95.109 429.8 20060101 20170923 727506 99999 WINDOM MUNI US MN KMWM 43.917 -95.117 430.0 19990114 20071231 727507 54904 BENSON MUNICIPAL AIRPORT US MN KBBB 45.332 -95.65100000000001 316.7 20060101 20170924 727507 99999 BENSON MUNI US MN KBBB 45.333 -95.65 317.0 19940718 20071231 727508 54915 PINE RIVER REGIONAL AIRPORT US MN KPWC 46.725 -94.382 394.7 20060101 20170924 727508 99999 PINE RIVER RGNL US MN KPWC 46.717 -94.383 395.0 19990114 20071231 727514 54910 STAPLES MUNICIPAL AIRPORT US MN KSAZ 46.381 -94.806 392.3 20060101 20170924 727514 99999 STAPLES MUNI US MN KSAZ 46.383 -94.8 392.0 19990114 20071231 727515 4982 ORTHONVILLE MUNI-MARTINSON FIELD AIRPORT US MN KVVV 45.306000000000004 -96.42399999999999 335.3 20060101 20170924 727515 99999 ORTONVILLE MUNI MART US MN KVVV 45.3 -96.417 335.0 19990114 20071231 727517 4932 GLENCOE MUNICIPAL AIRPORT US MN KGYL 44.756 -94.081 302.4 20060101 20170923 727517 99999 GLENCOE MUNI US MN KGYL 44.75 -94.083 302.0 20010811 20071231 727530 14914 HECTOR INTERNATIONAL AIRPORT US ND KFAR 46.925 -96.811 274.3 19480101 20170924 727533 4922 WHEATON MUNICIPAL AIRPORT US MN KETH 45.78 -96.545 312.4 20060101 20170924 727533 99999 WHEATON MUNI US MN KETH 45.78 -96.544 312.0 19920807 20071231 727534 99999 LIDGERWOOD REMOTE AUTOMATIC METE US 46.1 -97.15 351.0 19790322 20010827 727535 14919 JAMESTOWN REGIONAL AIRPORT US ND KJMS 46.926 -98.669 455.4 19730101 20170924 727550 14958 BEMIDJI-BELTRAMI CO ARPT US MN KBJI 47.5 -94.93299999999999 424.3 20060101 20170924 727550 99999 BEMIDJI MUNICIPAL US MN KBJI 47.5 -94.93299999999999 420.0 19730101 20071231 727554 99999 GRAND MARAIS US MN 47.75 -90.34 185.0 19781205 20101223 727555 94956 THIEF RIVER FALLS RGNL APT US MN KTVF 48.067 -96.18299999999999 339.9 20060101 20170924 727555 99999 THIEF RIVER FALLS RG US MN KTVF 48.066 -96.185 340.0 19730101 20071231 727556 4905 SILVER BAY MUNICIPAL ARPT US MN KBFW 47.248999999999995 -91.416 331.9 20060101 20170924 727556 99999 SILVER BAY MUNI US MN KBFW 47.25 -91.417 332.0 19920807 20071231 727560 99999 WARROAD MN US 48.933 -95.35 328.0 19780310 19930909 727564 99999 WARROAD INTL SWEDE CARLSON FIELD US MN KRAD 48.941 -95.348 336.0 19920807 19951115 727566 4902 AUSTIN MUNICIPAL AIRPORT US MN KAUM 43.665 -92.93299999999999 375.8 20060101 20170924 727566 99999 AUSTIN MUNI US MN KAUM 43.667 -92.93299999999999 376.0 19920807 20071231 727570 14916 GRAND FORKS INTERNATIONAL AIRPORT US ND KGFK 47.943000000000005 -97.184 256.6 20100801 20170924 727570 99999 GRAND FORKS INTL US ND KGFK 47.933 -97.167 257.0 19480101 19770802 727572 99999 DEVILS LAKE(AWOS) US ND 48.117 -98.9 443.0 19730101 19900109 727573 94928 DEVILS LAKE MUNI AIRPORT US ND KDVL 48.117 -98.9 439.2 20060101 20170924 727573 99999 DEVILS LAKE MUNI US ND KDVL 48.114 -98.90899999999999 443.0 19900111 20071231 727575 94925 GRAND FORKS AFB AIRPORT US ND KRDR 47.967 -97.4 278.3 19590303 20170924 727575 99999 GRAND FORKS AFB US ND KRDR 47.95 -97.4 278.0 20000101 20071231 727576 14916 GRAND FORKS INTL US ND KGFK 47.943000000000005 -97.184 253.6 19730101 20100801 727576 99999 GRAND FORKS INTL US ND 47.95 -97.167 264.0 20100801 20100818 727577 99999 GRAND FORKS NEXRAD US ND MVX 47.533 -97.333 329.0 19741118 19750926 727580 99999 DEVILS LAKE US ND 48.1 -98.87 439.0 19770827 19920518 727584 94038 HETTINGER MUNICIPAL ARPT US ND KHEI 46.013999999999996 -102.655 824.5 20060101 20170924 727584 99999 HETTINGER MUNI US ND KHEI 46.016999999999996 -102.65 824.0 19990114 20071231 727630 24012 DICKINSON THEODORE ROOSEVELT RGNL ARPT US ND KDIK 46.799 -102.79700000000001 786.4 20100801 20170924 727640 24011 BISMARCK MUNICIPAL AIRPORT US ND KBIS 46.783 -100.757 503.2 19360701 20170924 727645 24012 DICKINSON MUNI US ND KDIK 46.799 -102.79700000000001 787.3 19730101 20100801 727645 99999 DICKINSON MUNI US ND 46.8 -102.8 810.0 20100801 20100818 727650 99999 ROSEGLEN US ND 47.75 -101.83 624.0 19770828 20040907 727670 94014 SLOULIN FIELD INTERNATIONAL AIRPORT US ND KISN 48.174 -103.637 579.7 19730101 20170924 727675 94011 MINOT AFB AIRPORT US ND KMIB 48.417 -101.35 508.1 19591001 20170924 727675 99999 MINOT AFB US ND KMIB 48.417 -101.35 508.0 20000101 20071231 727676 24013 MINOT INTERNATIONAL ARPT US ND KMOT 48.255 -101.273 507.5 19730101 20170924 727677 94041 GARRISON US ND KN60 47.646 -101.439 582.8 20060101 20170924 727677 99999 GARRISON US ND KN60 47.65 -101.44 582.0 19760820 20071231 727680 94008 WOKAL FIELD/GLASGOW INTL AIRPORT US MT KGGW 48.214 -106.62100000000001 696.5 19421210 20170924 727684 94051 JORDAN AIRPORT US MT KJDN 47.326 -106.948 811.4 20060101 20170924 727684 99999 JORDAN US MT KJDN 47.32899999999999 -106.95299999999999 811.0 19790322 20071231 727685 99999 GLASGOW INDUSTRIAL US MT 07MT 48.42100000000001 -106.52799999999999 841.9 19730702 19760528 727686 94017 L M CLAYTON AIRPORT US MT KOLF 48.093999999999994 -105.574 605.3 20060101 20170924 727686 99999 L M CLAYTON US MT KOLF 48.1 -105.583 605.0 19730419 20071231 727687 94028 SIDNEY-RICHLAND MUNI ARPT US MT KSDY 47.717 -104.18299999999999 603.5 20060101 20170924 727687 99999 SIDNEY-RICHLAND MUNI US MT KSDY 47.707 -104.193 605.0 19730104 20071231 727690 24137 CUT BANK MUNICIPAL AIRPORT US MT KCTB 48.603 -112.375 1169.8 20100801 20170924 727700 24138 DILLON AIRPORT US MT KDLN 45.258 -112.554 1585.0 20100801 20170924 727720 24144 HELENA REGIONAL AIRPORT US MT KHLN 46.606 -111.964 1166.8 19730101 20170924 727725 99999 ELLISTON US MT 46.567 -112.43299999999999 1547.0 19730102 19770701 727730 24153 MISSOULA INTERNATIONAL AIRPORT US MT KMSO 46.92100000000001 -114.09299999999999 972.9 19730101 20170924 727735 24139 DRUMMOND US MT K3DU 46.638000000000005 -113.176 0.0 19730101 20120930 727735 99999 DRUMMOND US MT K3DU 46.67 -113.15 1202.0 20000101 20071231 727740 24135 BERT MOONEY AIRPORT US MT KBTM 45.965 -112.501 1678.2 20100801 20170924 727750 24143 GREAT FALLS INTERNATIONAL AIRPORT US MT KGTF 47.473 -111.382 1116.8 19730101 20170924 727755 24112 MALMSTROM AFHP HELIPORT US MT KGFA 47.516999999999996 -111.18299999999999 1058.3 19421201 20170924 727755 99999 MALMSTROM AFHP US MT KGFA 47.5 -111.18299999999999 1058.0 20020110 20071231 727760 99999 GREAT FALLS US MT 47.45 -111.383 1130.5 19940921 20170923 727770 94012 HAVRE CITY-COUNTY AIRPORT US MT KHVR 48.543 -109.76299999999999 787.9 19730101 20170924 727790 24146 GLACIER PARK INTERNATIONAL AIRPORT US MT KGPI 48.303999999999995 -114.264 901.3 19730101 20170924 727795 99999 THOMPSON FALLS US MT 47.6 -115.37 725.0 19730101 20021031 727796 24137 CUT BANK MUNI US MT KCTB 48.603 -112.375 1169.8 19421201 20100801 727796 99999 CUT BANK MUNI US MT 48.6 -112.367 1204.0 20100801 20100818 727810 24243 YAKIMA AIR TERMINAL/MCALSR FIELD AP US WA KYKM 46.568000000000005 -120.54299999999999 324.3 19730101 20170924 727813 99999 VAGABOND AAF US WA KFCT 46.667 -120.454 417.6 20030617 20081110 727815 24237 STAMPASS PASS FLTWO US WA KSMP 47.277 -121.337 1206.7 19730101 20170924 727825 94239 PANGBORN MEMORIAL AIRPORT US WA KEAT 47.398 -120.20100000000001 374.6 20000101 20170924 727825 99999 PANGBORN MEM US WA KEAT 47.398999999999994 -120.20700000000001 381.0 19730101 19991231 727826 24141 EPHRATA MUNICIPAL US WA KEPH 47.308 -119.515 383.7 19420101 20100801 727826 99999 EPHRATA MUNICIPAL US WA 47.3 -119.51700000000001 388.0 20100801 20100818 727827 24110 GRANT COUNTY INTL AIRPORT US WA KMWH 47.208 -119.319 364.5 19430610 20170924 727827 99999 MOSES LAKE/GRANT CO US WA KMWH 47.2 -119.31700000000001 361.0 20000101 20031231 727830 24149 LEWISTON-NEZ PERCE COUNTY AIRPORT US ID KLWS 46.375 -117.016 437.7 19730101 20170924 727833 4114 CHALLIS (AMOS) US ID KLLJ 44.523 -114.215 1536.2 19990102 20170924 727833 99999 CHALLIS CHALLIS AIRPORT US ID 44.52 -114.22 1534.0 19810912 19981008 727834 24136 COEUR D'ALENE AIR TERM APT US ID KCOE 47.766999999999996 -116.81700000000001 703.2 20060101 20170924 727834 99999 COEUR D ALENE AIR TE US ID KCOE 47.766999999999996 -116.81700000000001 707.0 19480101 20071231 727836 99999 MULLAN AVIATION WEATHER REPORTIN US 47.47 -115.8 1011.0 19730101 19960630 727840 94187 HANFORD AIRPORT US WA KHMS 46.567 -119.6 223.1 20060101 20130326 727840 99999 HANFORD US WA KHMS 46.567 -119.6 223.0 19730101 20071231 727845 24163 TRI-CITIES AIRPORT US WA KPSC 46.266999999999996 -119.117 124.1 19730101 20170924 727845 99999 TRI CITIES US WA KPSC 46.266999999999996 -119.117 124.0 20000101 20031231 727846 24160 WALLA WALLA REGIONAL ARPT US WA KALW 46.095 -118.287 355.4 19410901 20170924 727850 24157 SPOKANE INTERNATIONAL AIRPORT US WA KGEG 47.622 -117.52799999999999 717.2 19410811 20170924 727854 94119 DEER PARK ARPT US WA KDEW 47.974 -117.428 672.4 20060101 20100801 727854 99999 DEER PARK ARPT US WA 47.967 -117.417 672.0 20010811 20100818 727855 24114 FAIRCHILD AIR FORCE BASE US WA KSKA 47.633 -117.65 750.1 19400401 20170924 727855 99999 FAIRCHILD AFB US WA KSKA 47.617 -117.65 750.0 20000101 20071231 727856 94176 FELTS FIELD AIRPORT US WA KSFF 47.683 -117.321 595.3 20060101 20170924 727856 99999 FELTS FLD US WA KSFF 47.683 -117.31700000000001 595.0 19730101 20071231 727857 94129 PULLMAN/MOSCOW RGNL ARPT US WA KPUW 46.744 -117.109 777.5 20060101 20170924 727857 99999 PULLMAN MOSCOW RGNL US WA KPUW 46.75 -117.117 778.0 19730101 20071231 727860 99999 SPOKANE US WA 47.667 -117.617 728.9 20041004 20041004 727861 99999 SPOKANE NEXRAD US WA OTX 47.683 117.633 745.0 20000827 20000827 727870 94119 DEER PARK AIRPORT US WA KDEW 47.974 -117.428 667.8 20100801 20170924 727870 99999 DEER PARK US WA KDEW 47.967 -117.427 674.0 19730101 19760305 727871 99999 COLVILLE MUNICIPAL US WA 48.55 -117.883 572.0 19760305 19880404 727873 99999 COLVILLE MUNICIPAL US WA 48.55 -117.88 572.0 19890908 20040426 727883 24220 BOWERS FIELD AIRPORT US WA KELN 47.034 -120.53 538.3 19880106 20170924 727883 99999 BOWERS FLD US WA KELN 47.033 -120.531 537.0 20000101 20031231 727884 99999 RICHLAND AIRPORT US WA KRLD 46.306000000000004 -119.304 120.1 19810203 20170923 727885 94266 WILLIAM R FAIRCHILD INT AP US WA KCLM 48.12 -123.49799999999999 87.8 20060101 20170924 727885 99999 WILLIAM R FAIRCHILD US WA KCLM 48.117 -123.5 89.0 19810211 20071231 727890 94197 OMAK AIRPORT US WA KOMK 48.464 -119.51700000000001 396.2 20060101 20170924 727890 99999 OMAK US WA KOMK 48.417 -119.53299999999999 382.0 19730101 20071231 727900 24141 EPHRATA MUNICIPAL AIRPORT US WA KEPH 47.308 -119.515 381.6 20100801 20170924 727910 94224 ASTORIA REGIONAL AIRPORT US OR KAST 46.157 -123.883 2.7 19730101 20170924 727915 99999 CAPE DISAPPOINTMENT US WA 46.28 -124.05 55.0 19750911 19901117 727916 99999 GRAYS HARBOR COAST GUARD STATION US WA 46.92 -124.1 6.0 19750916 19901117 727917 99999 PACIFIC BEACH NF US WA NIX 47.217 -124.2 18.0 19780124 19870521 727918 94298 PEARSON FIELD AIRPORT US WA KVUO 45.621 -122.65700000000001 9.1 20060101 20170924 727918 99999 PEARSON FLD US WA KVUO 45.617 -122.65 8.0 19980201 20071231 727920 24227 OLYMPIA AIRPORT US WA KOLM 46.973 -122.90299999999999 57.3 19730101 20170924 727923 94225 BOWERMAN AIRPORT US WA KHQM 46.973 -123.93 3.7 19910108 20170924 727924 24223 KELSO-LONGVIEW AIRPORT US WA KKLS 46.117 -122.89399999999999 6.1 19900208 20170924 727924 99999 KELSO LONGVIEW US WA KKLS 46.118 -122.898 6.0 20000101 20031231 727925 94227 SANDERSON FIELD AIRPORT US WA KSHN 47.238 -123.141 82.6 19990101 20170924 727925 99999 SANDERSON FLD US WA KSHN 47.233000000000004 -123.15 83.0 19730102 19981231 727926 24241 TOLEDO-WINLOCK ED CARLSON MEMORIAL FIELD AIRPORT US WA KTDO 46.483000000000004 -122.81700000000001 115.5 20060101 20071001 727926 99999 ED CARLSON MEM FLD US WA KTDO 46.483000000000004 -122.8 114.0 19730101 20071001 727927 94225 HOQUIAM AP US WA KHQM 46.973 -123.93 4.6 19730101 19901218 727928 94263 BREMERTON NATIONAL AIRPORT US WA KPWT 47.483000000000004 -122.76700000000001 135.3 20060101 20170924 727928 99999 BREMERTON NATIONAL US WA KPWT 47.483000000000004 -122.75 135.0 19730101 20071231 727929 99999 WILLAPA HARBOR US WA 46.698 -123.823 4.0 19750916 19791001 727930 24233 SEATTLE-TACOMA INTERNATIONAL AIRPORT US WA KSEA 47.443999999999996 -122.314 112.8 19480101 20170924 727933 99999 AUBURN US WA KZSE 47.283 -122.18299999999999 99.0 19760607 19760607 727934 94248 RENTON MUNICIPAL AIRPORT US WA KRNT 47.493 -122.214 8.8 20060101 20170924 727934 99999 RENTON MUNI US WA KRNT 47.493 -122.21600000000001 10.0 19800216 20071231 727935 24234 BOEING FLD/KING CO INTL AP US WA KBFI 47.53 -122.301 5.5 19431001 20170924 727935 99999 BOEING FLD KING CO US WA KBFI 47.516999999999996 -122.3 6.0 20000101 20031231 727937 24222 SNOHOMISH CO (PAINE FD) AP US WA KPAE 47.908 -122.28 184.7 20060101 20170924 727937 99999 SNOHOMISH CO US WA KPAE 47.9 -122.28299999999999 185.0 19411001 20071231 727938 94274 TACOMA NARROWS AIRPORT US WA KTIW 47.268 -122.57600000000001 89.0 20060101 20170924 727938 99999 TACOMA NARROWS US WA KTIW 47.266999999999996 -122.56700000000001 91.0 19730101 20071231 727939 99999 ALKI POINT COAST GUARD LIGHT STA US 47.52 -122.42 1.0 19750911 19901206 727945 4205 ARLINGTON MUNICIPAL ARPT US WA KAWO 48.161 -122.15899999999999 41.8 20060101 20170924 727945 99999 ARLINGTON MUNI US WA KAWO 48.161 -122.15899999999999 42.0 19960221 20071231 727964 99999 OAK HARBOR US WA KOKH 48.25 -122.667 59.0 19810310 20081231 727965 99999 ARLINGTON (AWOS) US WA 48.167 -122.15 42.0 19810703 19941103 727970 94240 QUILLAYUTE AIRPORT US WA KUIL 47.938 -124.555 56.4 19730101 20170924 727973 99999 BANGOR CGS US WA NMI 47.733000000000004 -122.71700000000001 0.0 19850130 19880106 727974 99999 DESTRUCTION ISLAND US WA 47.67 -124.48 24.0 19790507 19860320 727975 24255 WHIDBEY ISLAND NAS US WA KNUW 48.35 -122.667 14.3 19730101 19891130 727976 24217 BELLINGHAM INTL AIRPORT US WA KBLI 48.794 -122.537 45.4 19480101 20170924 727977 99999 QUILLAYUTE RIVER COAST GUARD LIG US 47.9 -124.63 1.0 19750911 19901128 727978 24240 CAPE FLATTERY(CGLS) US WA K93S 48.383 -124.73299999999999 26.0 19750911 19860320 727979 99999 POINT WILSON COAST GUARD LIGHT S US 48.12 -122.75 1.0 19750911 19950327 727984 99999 NEAH BAY US WA 8S7 48.367 -124.6 3.0 19790507 19950929 727985 94276 FRIDAY HARBOR AIRPORT US WA KFHR 48.522 -123.023 33.2 20060101 20170924 727985 99999 FRIDAY HARBOR US WA KFHR 48.522 -123.024 34.0 19881014 20071231 727990 99999 VICTORIA INTL ARPT CA 48.65 -123.43299999999999 19.0 19730101 19770630 727995 99999 VICTORIA MARINE RAD CA 48.367 -123.75 31.0 19730101 19770630 727996 99999 NEW DUNGENESS COAST GUARD STATIO US 48.17 -123.1 12.0 19750911 19940221 728000 99999 CAPE RACE (MARS) CA 46.65 -53.067 27.0 19761101 19770120 728010 99999 ST JOHNS/TORBAY CA YYT 47.617 -52.75 141.0 19730101 19770630 728020 99999 SAINT LAWRENCE CA 46.883 -55.417 33.0 19730101 19770809 728030 99999 GANDER INTL AIRPORT CA 48.95 -54.567 150.0 19730101 19770815 728040 99999 SAGLEK (BAY) CA 49.217 -57.4 22.0 19730101 19770727 728045 99999 BADGER (MARS) CA 48.967 -56.067 105.0 19730101 19770630 728050 99999 ST. PIERRE CA 46.766999999999996 -56.167 3.0 19730101 19770819 728070 99999 ARGENTIA (MARS) CA YAR 47.283 -54.0 16.0 19730101 19770730 728080 99999 BLANC SABLON ARPT & CA 51.433 -57.217 19.0 19730101 19770802 728100 99999 PORT MENIER (MARS)& CA 49.85 -64.45 31.0 19730101 19770727 728105 99999 HAVRE ST PIERRE & CA 50.25 -63.6 6.0 19730101 19770630 728110 99999 SEPT-ILES AIRPORT CA 50.217 -66.267 55.0 19730101 19770804 728120 99999 LAKE EON CA 51.85 -63.283 593.0 19730101 19770720 728130 99999 NATASHQUAN AIRPORT CA 50.183 -61.8 11.0 19730101 19770630 728140 99999 CHEVERY (MARS) CA 50.533 -59.5 3.0 19730101 19770804 728150 99999 STEPHENVILLE ARPT CA 48.533 -58.55 26.0 19730101 19770730 728155 99999 STAR BROOK CA 48.583 -57.233000000000004 290.0 19920408 19930701 728160 99999 GOOSE BAY AIRPORT CA 53.317 -60.417 46.0 19730101 19770730 728170 99999 BATTLE HARBOUR CA UBF 52.25 -55.6 5.0 19730101 19770630 728180 99999 CARTWRIGHT CA 53.7 -57.033 1.0 19730101 19770804 728190 99999 SAINT ANTHONY CA 51.367 -55.633 105.0 19730101 19770817 728210 99999 MATAGAMI AIRPORT & CA 49.766999999999996 -77.8 277.0 19731213 19770630 728220 99999 CHIBOUGAMAU-CHAPAIS CA 49.817 -74.417 402.0 19730101 19770804 728225 99999 MATAGAMI AIRPORT & CA 49.766999999999996 -77.8 277.0 19730608 19731209 728240 99999 US 19730101 19750514 728241 99999 GAGNON CA 51.95 -68.133 566.0 19750515 19770531 728250 99999 WABUSH LAKE AIRPORT CA 52.933 -66.867 548.0 19730101 19770817 728260 99999 PANGNIRTUNG CA 53.2 -70.9 537.0 19730101 19770804 728270 99999 LA GRANDE RIVIERE CA 53.633 -77.7 191.0 19761007 19770630 728280 99999 SCHEFFERVILLE ARPT CA 54.8 -66.817 522.0 19730101 19770804 728310 99999 KAPUSKASING AIRPORT CA 49.417 -82.46700000000001 227.0 19730101 19770630 728340 99999 GERALDTON AIRPORT & CA 49.7 -86.95 331.0 19730101 19770630 728360 99999 MOOSONEE (SAWR) & CA 51.266999999999996 -80.65 9.0 19730101 19770711 728410 99999 ARMSTRONG (MARS) CA 50.283 -88.9 322.0 19730101 19770630 728420 99999 SIOUX LOOKOUT ARPT CA 50.117 -91.9 390.0 19730101 19770630 728425 99999 DRYDEN AIRPORT CA 49.833 -92.75 411.0 19730101 19770630 728450 99999 PICKLE LAKE CA 51.467 -90.2 367.0 19730102 19770630 728460 99999 LANSDOWNE HOUSE & CA 52.233000000000004 -87.883 255.0 19730101 19770630 728480 99999 BIG TROUT LAKE CA 53.833 -89.867 218.0 19730101 19770626 728500 99999 KENORA AIRPORT CA 49.8 -94.367 411.0 19730101 19770630 728510 99999 PORTAGE SOUTHPORT A CA 49.9 -98.26700000000001 270.0 19730101 19770630 728520 99999 WINNIPEG INTL ARPT CA 49.9 -97.23299999999999 239.0 19730101 19770630 728525 99999 VICTORIA BEACH(AUT) CA 49.033 -97.56700000000001 252.0 19730101 19770630 728526 99999 SAINT ANDREWS CA 50.05 -97.03299999999999 231.0 19760407 19770630 728530 99999 SHILO CA 49.817 -99.65 381.0 19750724 19750930 728540 99999 RED LAKE AIRPORT CA 51.067 -93.81700000000001 380.0 19730101 19770630 728550 99999 DAUPHIN AIRPORT CA 51.1 -100.05 305.0 19730101 19770630 728560 99999 GIMLI CA 50.617 -96.98299999999999 230.0 19730101 19770630 728565 99999 HECLA AMOS CA 51.167 -96.667 230.0 19750807 19770630 728575 99999 FLIN FLON AIRPORT CA 54.683 -101.68299999999999 304.0 19730101 19770630 728580 99999 GRAND RAPIDS (MARS) CA 53.183 -99.26700000000001 221.0 19730101 19770630 728610 99999 BROADVIEW & CA 50.383 -102.583 599.0 19730101 19770630 728620 99999 ESTEVAN AIRPORT CA 49.067 -103.0 571.0 19730101 19770630 728630 99999 REGINA AIRPORT CA 50.433 -104.667 577.0 19730101 19770630 728640 99999 MOOSE JAW (CAN-MIL) CA 50.333 -105.55 577.0 19730101 19770630 728645 99999 US 19761117 19770125 728650 99999 WYNYARD CA 51.766999999999996 -104.2 560.0 19730101 19770630 728660 99999 SASKATOON AIRPORT CA 52.167 -106.68299999999999 500.0 19730101 19770630 728665 99999 ELBOW (MARS) & CA 51.133 -106.583 594.0 19730101 19770630 728670 99999 THE PAS AIRPORT CA 53.967 -101.1 270.0 19730101 19770630 728680 99999 HUDSON BAY CA 52.867 -102.4 372.0 19730101 19770630 728690 99999 PRINCE ALBERT ARPT CA 53.217 -105.68299999999999 428.0 19730101 19770630 728700 99999 SWIFT CURRENT ARPT CA 50.283 -107.68299999999999 817.0 19730101 19770726 728710 99999 LLOYDMINSTER ARPT CA 53.35 -110.833 34.0 19730101 19770630 728720 99999 MEDICINE HAT ARPT CA 50.016999999999996 -110.71700000000001 717.0 19730101 19770630 728730 99999 CORONATION (MARS) & CA 52.1 -111.45 797.0 19730101 19770630 728735 99999 CORONATION(AUT) CA 52.1 -111.45 797.0 19770608 19770630 728740 99999 LETHBRIDGE AIRPORT CA 49.633 -112.8 929.0 19730101 19770630 728750 99999 PINCHER CREEK (AUT) CA 49.5 -113.95 1154.0 19730101 19770630 728760 99999 NORTH BATTLEFORD CA 52.766999999999996 -108.25 548.0 19730101 19770630 728770 99999 CALGARY INTNL ARPT CA 51.1 -114.01700000000001 1084.0 19730101 19770630 728775 99999 GOLDEN ARPT CA 51.3 -116.96700000000001 787.0 19730102 19770630 728780 99999 RED DEER AIRPORT CA 52.183 -113.9 905.0 19730101 19770630 728790 99999 EDMONTON MUNICIPAL CA 53.567 -113.51700000000001 671.0 19730101 19770630 728800 99999 CRANBROOK AIRPORT CA 49.6 -115.78299999999999 939.0 19730101 19770630 728810 99999 EDSON AIRPORT CA 53.583 -116.45 921.0 19730101 19770630 728820 99999 REVELSTOKE AIRPORT CA 50.967 -118.18299999999999 443.0 19730101 19770817 728830 99999 BLUE RIVER (MAN) CA 52.117 -119.3 683.0 19730101 19770630 728840 99999 CASTLEGAR AIRPORT CA 49.3 -117.633 495.0 19730101 19770630 728860 99999 PRINCETON ARPT & CA 49.467 -120.51700000000001 700.0 19730101 19770630 728870 99999 KAMLOOPS AIRPORT CA 50.7 -120.45 346.0 19730101 19770630 728880 99999 JASPER CA 52.883 -118.06700000000001 1064.0 19730101 19770630 728885 99999 JASPER-HINTON ARPT CA 53.317 -117.75 1227.0 19730111 19730630 728890 99999 PENTICTON AIRPORT CA 49.467 -119.6 344.0 19730101 19770630 728895 99999 KELOWNA APT CA 49.95 -119.383 429.0 19730101 19770630 728900 99999 NANAIMO AIRPORT CA 49.05 -123.867 30.0 19730101 19770630 728905 99999 BALLENAS IL AUTO8 & CA 49.25 -124.833 1.0 19730101 19770630 728910 99999 LYTTON (READAC) CA 50.233000000000004 -121.583 255.0 19730101 19770630 728915 99999 HOPE SLIDE CA 49.266999999999996 -121.21700000000001 678.0 19730101 19770630 728916 99999 CAPE MUDGE (LGT-H) CA 51.15 -121.5 1055.0 19730101 19770630 728920 99999 VANCOUVER INTL CA 49.183 -123.167 3.0 19730101 19770630 728925 99999 VANCOUVER HARBOUR & CA 49.3 -123.117 5.0 19760212 19770630 728930 99999 COMOX (CAN-MIL) CA 49.717 -124.9 24.0 19730101 19770630 728935 99999 POWELL RIVER ARPT & CA 49.817 -124.5 120.0 19730101 19770630 728936 99999 CAMPBELL RIVER ARPT CA 49.95 -125.26700000000001 105.0 19730101 19770630 728937 99999 CHATHAM POINT (LH) CA 50.333 -125.43299999999999 20.0 19730101 19770630 728940 99999 ESTEVAN PT. (MARS) CA 49.383 -126.53299999999999 5.0 19730101 19770630 728950 99999 BULL HARBOUR (DEAD) CA 50.917 -127.95 4.0 19730101 19770630 728955 25237 HOLBERG CA 50.65 -128.0 617.0 19730101 19770630 728956 99999 EGG ISLAND CA 51.25 -127.833 12.0 19760401 19770630 728960 99999 PRINCE GEORGE ARPT CA 53.883 -122.667 691.0 19730101 19770630 728970 99999 MCINNES ISLAND CA 52.266999999999996 -128.717 25.0 19730101 19770630 728980 99999 PRINCE RUPERT ARPT CA 54.3 -130.433 34.0 19730101 19770630 728985 99999 BONILLA ISLAND & CA 53.5 -130.63299999999998 18.0 19730101 19770419 728990 25343 LANGARA CA 54.25 -133.05 34.0 19730101 19770723 729000 99999 HOPEDALE (MAPS) CA 55.45 -60.233000000000004 10.0 19730101 19770804 729010 99999 BORDER (MAPS) CA 55.333 -63.217 486.0 19730101 19770630 729020 99999 US 19730719 19740919 729030 99999 US 19730101 19750904 729040 99999 QUAQTAQ AIRPORT CA 61.067 -69.683 27.0 19730101 19770804 729050 99999 KUUJJUARAPIK ARPT CA 55.283 -77.767 18.0 19730101 19770810 729060 99999 KUUJJUAQ AIRPORT CA 58.1 -68.417 31.0 19730101 19770630 729070 99999 INUKJUAK CA 58.45 -78.117 5.0 19730101 19770630 729080 99999 US 19730313 19740918 729085 99999 DECEPTION BAY CA 62.117 -74.617 30.0 19730104 19740102 729090 99999 IQALUIT CA 63.75 -68.55 34.0 19730101 19770819 729100 99999 CAPE DORSET AIRPORT CA 64.217 -76.533 9.0 19730101 19770804 729110 99999 SHEPHERD BAY ARPT CA 68.817 -93.43299999999999 51.0 19730608 19770630 729120 99999 GILLAM AIRPORT CA 56.35 -94.7 144.0 19730101 19770630 729130 99999 CHURCHILL AIRPORT CA 58.75 -94.06700000000001 30.0 19730101 19770804 729140 99999 NANISIVIK CA 72.967 -84.383 639.0 19750305 19770630 729150 99999 CORAL HARBOUR ARPT CA 64.2 -83.367 64.0 19730101 19770804 729160 99999 CHESTERFIELD INLET& CA 63.333 -90.71700000000001 6.0 19730101 19770804 729170 99999 EUREKA CA 80.0 -85.93299999999999 9.0 19730101 19770804 729180 99999 PELLY BAY 1 CA 73.033 -85.15 1.0 19730101 19770523 729190 99999 PELLY BAY CA 68.433 -89.71700000000001 323.0 19730101 19770630 729200 99999 CREE LAKE (MAPS) CA 57.35 -107.133 499.0 19730101 19770730 729210 99999 BROCHET & CA 57.883 -101.667 344.0 19730101 19770331 729220 99999 LA RONGE AIRPORT CA 55.1 -105.3 372.0 19730101 19770630 729230 99999 ENNADAI LAKE (MAPS) CA 61.133 -100.917 323.0 19730101 19770630 729240 99999 RESOLUTE AIRPORT CA 74.717 -94.98299999999999 67.0 19730101 19770701 729245 99999 REA POINT CA 75.35 -105.71700000000001 1.0 19730101 19770630 729250 99999 CAMBRIDGE BAY ARPT CA 69.1 -105.117 27.0 19730101 19770819 729260 99999 BAKER LAKE AIRPORT CA 64.3 -96.0 11.0 19730101 19770630 729270 99999 GLADMAN POINT ARPT CA 68.667 -97.8 23.0 19730101 19770817 729280 99999 ROCKY MTN HOUSE CA 52.383 -114.917 1001.0 19730101 19770630 729290 99999 BYRON BAY AIRPORT CA 68.75 -109.06700000000001 109.0 19730101 19770802 729300 99999 WHITECOURT AIRPORT CA 54.133 -115.667 740.0 19730101 19770630 729310 99999 LAC LA BICHE (MARS) CA 54.766999999999996 -112.01700000000001 568.0 19730101 19770630 729320 99999 FORT MCMURRAY ARPT CA 56.65 -111.21700000000001 369.0 19730101 19770630 729330 99999 FORT CHIPEWYAN ARPT CA 58.766999999999996 -111.117 232.0 19730101 19770630 729340 99999 FORT SMITH AIRPORT CA 60.016999999999996 -111.96700000000001 203.0 19730101 19770630 729350 99999 HAY RIVER AIRPORT CA 60.85 -115.76700000000001 166.0 19730101 19770727 729360 99999 YELLOWKNIFE AIRPORT CA 62.467 -114.45 205.0 19730101 19770630 729365 99999 MOUNT ARTHUR (AUT) CA WNG 62.4 -110.73299999999999 165.0 19730711 19730711 729370 99999 LADY FRANKLIN POINT CA 68.5 -113.21700000000001 21.0 19730608 19770811 729380 99999 COPPERMINE AIRPORT CA 67.833 -115.117 7.0 19730101 19770803 729385 99999 PORT RADIUM CA 66.083 -118.03299999999999 191.0 19730101 19760128 729390 26114 CAPE YOUNG AIRPORT CA 68.933 -116.917 18.0 19730620 19770630 729400 99999 GRANDE PRAIRE ARPT CA 55.183 -118.883 669.0 19730101 19770630 729410 99999 GERMANSEN LANDING CA 55.783 -124.7 746.0 19730101 19770818 729416 99999 US 19730918 19730918 729430 99999 FORT ST. JOHN ARPT CA 56.233000000000004 -120.73299999999999 695.0 19730101 19770630 729440 99999 MACKENZIE AIRPORT CA 55.3 -123.133 700.0 19730101 19770630 729450 99999 FORT NELSON AIRPORT CA 58.833 -122.583 382.0 19730101 19770630 729455 99999 LIARD RIVER CA 59.45 -126.15 427.0 19730109 19770630 729456 99999 MUNCHO LAKE CA 58.917 -125.76700000000001 840.0 19730616 19740329 729457 99999 FORT LIARD CA 60.233000000000004 -123.46700000000001 213.0 19730830 19770628 729460 99999 FORT SIMPSON ARPT CA 61.75 -121.23299999999999 177.0 19730101 19770630 729465 99999 WRIGLEY AIRPORT CA 63.2 -123.417 150.0 19730101 19770630 729466 99999 FT PROVIDENCE CA 61.333 -117.667 159.0 19731003 19731018 729480 27202 CAPE PARRY AIRPORT CA 70.167 -124.68299999999999 17.0 19730101 19770630 729490 99999 FARO (MARS) CA 62.233000000000004 -133.36700000000002 694.0 19750109 19770630 729500 99999 SMITHERS AIRPORT CA 54.817 -127.18299999999999 523.0 19730101 19770630 729510 99999 TERRACE AIRPORT CA 54.467 -128.583 217.0 19730101 19770630 729520 99999 BURNS LAKE & CA 54.233000000000004 -125.76700000000001 704.0 19730101 19770630 729530 99999 WATSON LAKE AIRPORT CA 60.117 -128.817 689.0 19730101 19770630 729550 99999 STEWART AIRPORT CA 55.933 -129.983 8.0 19750109 19770630 729560 99999 NICHOLSON PENINSUL& CA 69.9 -128.967 98.0 19730901 19770630 729570 99999 INUVIK AIRPORT CA 68.3 -133.483 68.0 19730101 19770630 729580 99999 DEASE LAKE CA 58.417 -130.0 815.0 19730101 19770630 729590 26394 TUKTOYAKTUK CA 69.45 -133.0 18.0 19730101 19770630 729595 99999 TUKTOYAKTUK & CA 69.433 -133.033 1.0 19730224 19770630 729640 99999 WHITEHORSE AIRPORT CA 60.717 -135.067 702.0 19730101 19770630 729650 99999 MAYO AIRPORT CA 63.617 -135.86700000000002 504.0 19730101 19770630 729660 99999 DAWSON AIRPORT CA 64.05 -139.13299999999998 369.0 19730101 19770630 729665 99999 OLD CROW AIRPORT CA 67.567 -139.833 253.0 19730106 19770630 729670 99999 BURWASH (AUTO8) CA 61.367 -139.05 786.0 19730101 19770630 729675 99999 BEAVER CREEK ARPT CA 62.383 -140.88299999999998 663.0 19730101 19770630 729676 99999 HAINES JUNCTION CA 60.766999999999996 -137.583 599.0 19740101 19770630 729680 99999 SHINGLE POINT ARPT CA 68.95 -137.217 53.0 19730809 19770630 729690 26463 KOMAKUK BEACH ARPT CA 69.583 -140.183 1.0 19730801 19770630 731010 99999 SYNOP82 REG1 KTS US 0.0 0.0 -999.0 20010823 20010823 732010 99999 SYNOP82 REG2 KTS US 0.0 0.0 -999.0 20010818 20010918 732020 99999 SYNOP82 REG2 MPS US 0.0 0.0 -999.0 20010815 20010927 734010 99999 SYNOP82 REG4 KTS US 0.0 0.0 -999.0 20010819 20010827 734020 99999 SYNOP82 REG4 KTS US 0.0 0.0 -999.0 20010823 20010826 735020 99999 SYNOP82 REG5 KTS US 0.0 0.0 -999.0 20010923 20021017 736010 99999 SYNOP82 REG6 KTS US 0.0 0.0 -999.0 20010818 20010917 736020 99999 SYNOP82 REG6 MPS US 0.0 0.0 -999.0 20010816 20010925 740001 54793 SUSSEX AIRPORT US NJ KFWN 41.2 -74.623 128.3 20060101 20170924 740001 99999 SUSSEX US NJ KFWN 41.2 -74.623 128.0 20040510 20071231 740002 3042 LA VETA PASS AWOS-3 ARPT US CO KVTP 37.5 -105.167 3114.1 20060101 20170924 740002 99999 LA VETA MOUNTAIN PAS US CO KVTP 37.5 -105.167 3114.0 20040510 20071231 740020 99999 ABERDEEN PROVING GROUNDS US MD 39.5 -76.167 5.0 19991031 19991031 740030 24103 MICHAEL AAF AIRPORT US UT KDPG 40.183 -112.93299999999999 1325.6 20060103 20170921 740030 99999 DUGWAY PROVING GROU US UT KDPG 40.167 -112.93299999999999 1325.0 19430614 20071221 740035 3145 YUMA MCAS US AZ KNYL 32.65 -114.617 64.9 20160125 20170511 740035 99999 YUMA MCAS US AZ KNYL 32.616 -114.6 65.0 20090120 20170923 740114 99999 PACIFIC BUOY US CA 39.2 -124.0 -999.0 19820311 19850426 740124 99999 PACIFIC BUOY US CA 38.2 -123.3 -999.0 19820107 19850426 740134 99999 ENVIRONM BUOY 46012 US 37.4 -122.7 0.0 19820107 19850426 740144 99999 PACIFIC BUOY US CA 34.9 -120.9 -999.0 19820107 19850426 740154 99999 PACIFIC BUOY US CA 40.8 -124.5 -999.0 19820625 19850426 740164 99999 PACIFIC BUOY US CA 37.8 -122.7 -999.0 19821019 19850426 740174 99999 PACIFIC BUOY US CA 35.8 -121.7 -999.0 19850118 19850123 740184 99999 PACIFIC BUOY US CA 40.4 -124.5 -999.0 19850118 20050630 740194 99999 PACIFIC BUOY US CA 41.8 -124.4 -999.0 19850629 19870701 740204 99999 ENVIRONM BUOY 46038 US 41.9 -122.4 3.0 19861016 19870518 740355 99999 KING POINT (MAPS) & CA 62.233000000000004 -133.36700000000002 694.0 19730101 19741231 740430 99999 NORMAN WELLS ARPT CA 65.283 -126.8 73.0 19430319 19770630 740435 99999 FORT GOOD HOPE ARPT CA 66.267 -128.63299999999998 53.0 19730101 19770630 740450 99999 TESLIN ARPT (AUT) CA 60.167 -132.75 705.0 19730101 19770630 740455 99999 TESLIN (MARS) CA 60.183 -132.75 701.0 19760723 19770217 740500 99999 PUNTZI MTN (MARS) CA 52.117 -124.083 911.0 19730101 19770630 740505 99999 PUNTZI MTN (MAN) CA 52.117 -124.083 0.0 19770608 19770630 740510 99999 SACHS HARBOUR(MAPS) CA 71.983 -125.28299999999999 83.0 19730101 19770630 740530 99999 CLINTON POINT CA 69.583 -120.75 98.0 19730101 19770711 740561 99999 DAWSON CREEK & CA 55.75 -120.18299999999999 655.0 19730101 19770630 740610 99999 PORT RADIUM CA 66.083 -117.93299999999999 438.0 19770101 19770626 740620 99999 BERNARD HARBOUR CA 65.483 -110.367 451.0 19730101 19770630 740630 99999 FORT RESOLUTION CA 61.183 -113.68299999999999 164.0 19430301 19770630 740660 99999 HIGH LEVEL AIRPORT CA 58.617 -117.167 338.0 19730101 19770630 740680 99999 PEACE RIVER AIRPORT CA 56.233000000000004 -117.43299999999999 571.0 19431222 19770630 740690 99999 SLAVE LAKE AIRPORT CA 55.3 -114.78299999999999 581.0 19730101 19770630 740700 99999 US 19730101 19760512 740710 99999 JENNY LIND ISL ARPT CA 68.65 -101.73299999999999 18.0 19731115 19770630 740720 99999 MOULD BAY AIRPORT CA 76.233 -119.333 18.0 19500101 19770630 740730 99999 FORT RELIANCE & CA 62.717 -109.167 160.0 19730101 19770630 740740 99999 ISACHSEN (MAPS) CA 78.783 -103.53299999999999 27.0 19500101 19770630 740750 99999 COLLINS BAY (AUTO8) CA 58.183 -103.68299999999999 490.0 19730104 19770630 740760 99999 URANIUM CITY(MARS)& CA 59.567 -108.48299999999999 318.0 19730104 19770630 740770 99999 BUFFALO NARROWS AUT CA 55.85 -108.46700000000001 421.0 19730101 19770630 740780 99999 LYNN LAKE AIRPORT CA 56.867 -101.06700000000001 357.0 19730101 19770630 740790 99999 THOMPSON AIRPORT CA 55.8 -97.867 222.0 19730101 19770630 740800 99999 MACKAR INLET CA 68.3 -85.68299999999999 399.0 19730101 19770802 740810 99999 HALL BEACH AIRPORT CA 68.783 -81.25 8.0 19730101 19770630 740820 99999 ALERT CA 82.5 -62.333 67.0 19510101 19770630 740900 99999 CYLDE AIRPORT & CA 70.45 -68.55 2.0 19450501 19770630 740910 99999 LONGSTAFF BLUFF CA 68.95 -75.3 159.0 19730101 19770630 740920 99999 DEWAR LAKES CA 68.65 -71.233 515.0 19730101 19770707 740930 99999 CAPE HOOPER & CA 68.433 -66.783 396.0 19730101 19770731 740940 99999 CAPE DYER AIRPORT CA 66.583 -61.617 393.0 19730101 19770809 740950 99999 POND INLET AIRPORT CA 72.667 -78.0 59.0 19750109 19770630 740960 99999 BROUGHTON ISLAND CA 67.55 -63.783 579.0 19730101 19770630 740970 99999 US 19730101 19751224 740980 99999 KILLINEK (MAPS) & CA 60.417 -64.85 38.0 19751003 19770630 741000 99999 TRIPLE ISLAND CA 54.3 -130.88299999999998 14.0 19730101 19770729 741010 99999 SANDSPIT AIRPORT CA 53.25 -131.817 6.0 19730101 19770630 741020 99999 ETHELDA BAY CA 53.05 -129.683 6.0 19730101 19770630 741030 99999 QUESNEL AIRPORT CA 53.033 -122.51700000000001 545.0 19730101 19770630 741040 99999 WILLIAMS LAKE ARPT CA 52.183 -122.06700000000001 940.0 19610101 19770630 741050 99999 PINE ISLAND (MAPS) CA 50.0 -127.417 9.0 19730101 19770630 741060 94234 TOFINO CA 49.083 -125.76700000000001 20.0 19730101 19770630 741070 25342 CAPE ST JAMES CA 51.933 -131.017 89.0 19730101 19770630 741080 99999 ABBOTSFORD AIRPORT CA 49.016999999999996 -122.367 58.0 19570101 19770630 741090 99999 PORT HARDY AIRPORT CA 50.683 -127.367 23.0 19730101 19770630 741100 99999 ALERT BAY CA 50.583 -126.93299999999999 50.0 19730101 19770630 741110 99999 CAPE SCOTT CA 50.783 -128.433 72.0 19730101 19770630 741130 99999 AGASSIZ (AUTO) CA 50.15 -122.95 668.0 19730101 19770630 741140 99999 HOPE AIRPORT (MAN) CA 49.367 -121.5 39.0 19730101 19770630 741145 99999 HOPE (AUTOB) CA 49.367 -121.48299999999999 38.0 19751204 19770630 741150 99999 VERNON (AUTO8) CA 50.233000000000004 -119.28299999999999 555.0 19730101 19770630 741200 99999 COLD LAKE (CAN-MIL) CA 54.417 -110.28299999999999 541.0 19570101 19770630 741210 99999 EDMONTON/NAMAO(MIL) CA 53.667 -113.46700000000001 688.0 19730101 19770630 741220 99999 BANFF CA 51.183 -115.56700000000001 1384.0 19730101 19770630 741230 99999 EDMONTON INTL ARPT CA 53.317 -113.583 723.0 19730101 19770630 741250 99999 MEADOW LAKE AIRPORT CA 54.117 -108.43299999999999 482.0 19730101 19770630 741260 99999 BROOKS CA 50.55 -111.9 755.0 19730101 19770816 741270 99999 PRIMROSE LAKE 2 CA 54.917 -109.96700000000001 625.0 19750401 19770630 741290 99999 KINDERSLEY ARPT & CA 51.467 -109.167 683.0 19730101 19770630 741300 99999 NIPAWIN AIRPORT CA 53.333 -104.0 374.0 19730921 19770630 741310 99999 EASTEND CYPRESS AUT CA 49.433 -108.98299999999999 1079.0 19770101 19770630 741350 99999 ROCKGLEN (MARS) CA 49.167 -105.96700000000001 915.0 19730101 19770630 741380 99999 YORKTON AIRPORT CA 51.266999999999996 -102.46700000000001 498.0 19730101 19770630 741400 99999 BRANDON AIRPORT CA 49.917 -99.95 409.0 19730101 19770630 741405 99999 BEAUSEJOUR CA 50.067 -96.51700000000001 274.0 19750401 19770630 741410 99999 NORWAY HOUSE ARPT CA 53.967 -97.833 224.0 19730314 19770630 741415 99999 IDA (AUTO) CA 51.667 -98.75 265.0 19750401 19770630 741430 99999 BACHELORS IL (AUT) CA 51.033 -95.667 256.0 19730101 19770630 741450 99999 ISLAND LAKE AIRPORT CA 53.867 -94.667 238.0 19730101 19770630 741480 99999 PILOT MOUND (MARS) CA 49.2 -98.883 474.0 19730101 19770630 741820 99999 CHURCHILL FALLS CA 53.55 -64.1 440.0 19730101 19770630 741830 99999 US 19761023 19770124 741850 99999 DANIELS HARBOUR CA YDH 50.233000000000004 -57.583 24.0 19730101 19770630 741870 99999 BAIE COMEAU AIRPORT CA 49.133 -68.2 53.0 19730101 19770630 741890 99999 PUINTE CLAVEAU CA 49.016999999999996 -64.4 39.0 19730101 19770814 741895 99999 GASPE AIRPORT & CA 48.766999999999996 -64.483 33.0 19730101 19770630 741930 99999 COMFORT COVE CA 49.266999999999996 -54.883 96.0 19730101 19770630 741940 99999 BUGEO CA 47.617 -57.617 11.0 19730101 19770630 741950 99999 SAINT ALBANS CA 47.867 -55.85 1.0 19730101 19770630 741960 99999 BONAVISTA CA 48.7 -53.083 21.0 19730101 19770630 741970 99999 PORT-AUX-BASQUES CA 47.567 -59.167 7.0 19730101 19770630 742000 99999 VICTORIA (AUTO8) CA 48.417 -123.31700000000001 67.0 19730101 19770630 742004 99999 BURROWS ISLAND US WA 48.08 -122.1 18.0 19790507 19870609 742005 99999 PATOS ISLAND (CGS) US WA 48.733000000000004 -122.96700000000001 1.0 19760209 19810711 742006 99999 BURLINGTON / MT VERN US WA 48.47 -122.42 43.0 19850618 20000104 742010 24228 PORT ANGELES CGAS US WA KNOW 48.133 -123.4 9.0 19730101 19901128 742010 99999 PORT ANGELES CGAS US WA KNOW 48.141000000000005 -123.414 4.0 20060619 20170923 742015 99999 SMITH ISLAND COAST GUARD LIGHT S US 48.32 -122.85 1.0 19750911 19860320 742016 99999 FRIDAY HARBOR US WA S19 48.5 -123.0 37.0 19760130 19880812 742060 24207 MCCHORD AFB AIRPORT US WA KTCM 47.15 -122.48299999999999 98.2 19400722 20170924 742060 99999 MC CHORD FIELD US WA KTCM 47.133 -122.48299999999999 98.0 20000101 20071231 742065 99999 POINT NO POINT COAST GUARD STATI US 47.92 -122.53 1.0 19750911 19950326 742066 99999 MULKITEO (CGS) US WA 47.95 -122.3 1.0 19781102 19781102 742070 24201 GRAY AAF US WA KGRF 47.083 -122.583 92.0 19390401 20101231 742070 99999 FORT LEWIS/GRAY AAF US WA 47.133 -122.6 87.0 20000101 20050303 742071 24201 GRAY AFF AIRPORT US WA KGRF 47.083 -122.583 91.4 20110101 20170924 742071 99999 GRAY AAF US WA 47.083 -122.583 92.0 20040713 20101231 742075 99999 POINT ROBINSON COAST GUARD LIGHT US WA 47.38 -122.37 0.0 19750911 19950326 742076 99999 WEST POINT COAST GUARD LIGHT STA US 47.67 -122.43 4.0 19750911 19860320 742077 3763 ROCKINGHAM COUNTY NC SHILOH AIRPORT US NC KSIF 36.437 -79.851 211.2 20061024 20170924 742078 64773 PLYMOUTH MUNICIPAL AIRPORT US NH K1P1 43.778999999999996 -71.75399999999999 153.9 20061012 20170925 742079 63876 MASON COUNTY AIRPORT US WV K3I2 38.915 -82.09899999999999 196.0 20061012 20170924 742300 24037 FRANK WILEY FIELD AIRPORT US MT KMLS 46.427 -105.883 799.8 19830531 20170924 742513 53937 EAKER FIELD AIRPORT US OK KDUA 33.942 -96.39399999999999 212.8 20060101 20170924 742513 99999 EAKER FLD US OK KDUA 33.942 -96.395 213.0 20020430 20071231 743312 53925 J.L. HELMS SEVIER CO ARPT US AR KDEQ 34.05 -94.40100000000001 108.2 20040101 20170924 743312 99999 J L HELMS SEVIER CO US AR KDEQ 34.047 -94.399 108.0 20020430 20031231 743680 99999 US 19730101 19750514 743681 99999 WATERLOO-WELLINGTON CA 43.45 -80.383 314.0 19750515 19770630 743700 14715 WHEELER-SACK AAF AIRPORT US NY KGTB 44.05 -75.733 209.7 20060101 20170924 743700 99999 FORT DRUM/WHEELER-S US NY KGTB 44.05 -75.733 207.0 19420101 20071231 743895 99999 US 19761023 19761231 743905 99999 AMHERST MET ST CA WAH 45.833 -64.2 0.0 19761023 19770217 743920 14611 NAVAL AIR STATION US ME KNHZ 43.9 -69.933 21.3 19520101 20100208 743925 99999 THE CUCKOLDS (CGS) US ME 43.783 -69.65 1.0 19760609 19840317 743926 99999 MONHEGAN / MANANA ISLAND US ME 43.77 -69.33 1.0 19750911 19881004 743927 99999 SEGUIN ISLAND COAST GUARD LIGHT US 43.67 -69.77 1.0 19750911 19851030 743941 99999 GRENIER AFB US NH 42.933 -71.433 71.0 19410922 19680624 743945 14710 MANCHESTER AIRPORT US NH KMHT 42.933 -71.438 68.6 19730101 20170924 743945 99999 MANCHESTER US NH KMHT 42.933 -71.433 81.0 20000101 20031231 743946 54754 BOIRE FIELD AIRPORT US NH KASH 42.783 -71.517 61.0 20060101 20170924 743946 99999 BOIRE FLD US NH KASH 42.783 -71.517 61.0 19830427 20071231 743950 99999 US 19730101 19750514 743951 99999 HALIFAX INTL & CA 44.883 -63.516999999999996 145.0 19750515 19770630 743970 99999 GREENWOOD (CAN-MIL) CA 44.983000000000004 -64.917 28.0 19540101 19770630 743980 99999 TRURO (MARS) & CA WTQ 45.367 -63.266999999999996 39.0 19730101 19770630 743985 99999 TRURO (MARS) & CA 45.367 -63.266999999999996 39.0 19770608 19770629 744104 14763 PITTSFIELD MUNICIPAL ARPT US MA KPSF 42.427 -73.289 363.9 20060101 20170924 744104 99999 PITTSFIELD MUNI US MA KPSF 42.433 -73.3 364.0 20010811 20071231 744130 99999 SAYLOR CREEK GUNNERY RANGE ID. US 42.533 -115.7 1108.0 19700302 19700826 744200 99999 ROOSEVELT UT US 40.3 -109.98299999999999 1556.0 19850423 19970303 744214 94852 MARION MUNICIPAL AP US IN KMZZ 40.483000000000004 -85.68299999999999 263.0 20130124 20170924 744214 99999 MARION MUNI US IN KMZZ 40.49 -85.68 261.8 19810805 20170922 744450 99999 NELIGH NE. US NE 42.2 -97.8 524.0 20050215 20051128 744550 94982 DAVENPORT MUNICIPAL AIRPT US IA KDVN 41.614 -90.59100000000001 228.6 19960702 20170924 744550 99999 DAVENPORT MUNI US IA KDVN 41.617 -90.583 230.0 20100305 20161102 744600 99999 MARSEILLES IL US 41.367 -88.68299999999999 225.0 19780310 20071128 744650 99999 DUNNE CRIB IL. US 41.783 -87.53299999999999 -999.9 19430927 19760130 744652 53897 HARRISBURG-RALEIGH AIRPORT US IL KHSB 37.811 -88.54899999999999 120.7 20060101 20170924 744652 99999 HARRISBURG RALEIGH US IL KHSB 37.817 -88.55 121.0 20020603 20071231 744653 63814 SPARTA COMMUNITY-HUNTER FIELD AIRPORT US IL KSAR 38.149 -89.699 164.0 20060101 20170924 744653 99999 SPARTA COMMUNITY HUN US IL KSAR 38.15 -89.7 164.0 20020603 20071231 744655 4808 AURORA MUNICIPAL AIRPORT US IL KARR 41.77 -88.48100000000001 216.4 20060101 20170924 744655 99999 AURORA MUNICIPAL US IL KARR 41.766999999999996 -88.46700000000001 217.0 19831103 20071231 744656 53891 FAIRFIELD MUNICIPAL ARPT US IL KFWC 38.379 -88.413 132.9 20060101 20170924 744656 99999 FAIRFIELD MUNI US IL KFWC 38.383 -88.417 133.0 20020603 20071231 744657 53887 CENTRALIA MUNICIPAL ARPT US IL KENL 38.515 -89.09200000000001 162.8 20060101 20170924 744657 99999 CENTRALIA MUNI US IL KENL 38.515 -89.09100000000001 163.0 20020603 20071231 744658 53889 FLORA MUNICIPAL AIRPORT US IL KFOA 38.665 -88.45299999999999 143.9 20060101 20170924 744658 99999 FLORA US IL KFOA 38.667 -88.45 144.0 20020603 20071231 744659 53822 OLNEY-NOBLE AIRPORT US IL KOLY 38.722 -88.176 146.9 20060101 20170924 744659 99999 OLNEY NOBLE US IL KOLY 38.717 -88.18299999999999 147.0 20020603 20071231 744660 388 JASPER COUNTY AIRPORT US IN KRZL 40.817 -87.05 212.1 20130101 20170924 744660 99999 WOLCOTT IN. US IN KRZL 40.817 -87.05 212.0 20110516 20160516 744661 99999 EFFINGHAM CO MEM US IL 39.07 -88.53399999999999 178.9 20020603 20130430 744662 63817 TAYLORVILLE MINICIPAL ARPT US IL KTAZ 39.534 -89.32799999999999 189.6 20060101 20170924 744662 99999 TAYLORVILLE MUNI US IL KTAZ 39.533 -89.333 190.0 20020603 20071231 744663 53950 PITTSFIELD-PENSTON MUNI AP US IL KPPQ 39.639 -90.77799999999999 216.4 20060101 20170924 744663 99999 PITTSFIELD PENSTONE US IL KPPQ 39.633 -90.78299999999999 216.0 20020603 20071231 744665 4838 PALWAUKEE MUNICIPAL ARPT US IL KPWK 42.121 -87.905 193.9 20060101 20170924 744665 99999 PALWAUKEE MUNI US IL KPWK 42.117 -87.9 197.0 19950708 20071231 744666 53944 JACKSONVILLE MUNICIPAL AIRPORT US IL KIJX 39.78 -90.238 190.2 20060101 20170924 744666 99999 JACKSONVILLE MUNI US IL KIJX 39.766999999999996 -90.23299999999999 190.0 20020603 20071231 744667 99999 RAY S MILLER AAF US MN KRYM 46.091 -94.361 350.5 20120713 20170923 744672 4862 LOGAN COUNTY AIRPORT US IL KAAA 40.158 -89.335 182.0 20060101 20170924 744672 99999 LOGAN CO US IL KAAA 40.167 -89.333 182.0 20020603 20071231 744680 99999 JEFFERSON PROVING GROUND MADISON US IN 38.833 -85.417 265.0 19920221 19950531 744714 99999 SMITHVILLE/WOOSTER US OH KSLW 40.883 -81.833 357.0 19850522 19940630 744830 99999 WILMINGTON VT. US 42.883 -72.883 482.0 19730101 19840529 744840 99999 WEST DOVER VT. US 42.933 -72.867 595.0 19730102 19770114 744859 99999 FREEPORT US NY 40.65 -73.583 9.0 19850522 19850531 744860 94789 JOHN F KENNEDY INTERNATIONAL AIRPORT US NY KJFK 40.639 -73.762 3.4 19730101 20170924 744864 54787 REPUBLIC AIRPORT US NY KFRG 40.734 -73.417 24.7 20060101 20170924 744864 99999 REPUBLIC US NY KFRG 40.717 -73.4 25.0 19430412 20071231 744865 14719 FRANCIS S GABRESKI AP US NY KFOK 40.844 -72.632 20.4 19430718 20170925 744865 99999 WESTHAMPTON BEACH US NY KFOK 40.85 -72.617 20.0 20000101 20031231 744900 14702 BEDFORD HANSCOM FIELD US MA KBED 42.47 -71.289 40.5 19430205 19921231 744900 99999 BEDFORD/HANSCOM AFB US MA 42.467 -71.283 41.0 19930101 19990204 744904 94723 LAWRENCE MUNICIPAL AIRPORT US MA KLWM 42.717 -71.124 45.4 20060101 20170924 744904 99999 LAWRENCE MUNI US MA KLWM 42.717 -71.117 45.0 19790122 20071231 744905 4779 FORT DEVENS/AYER US MA KAYE 42.567 -71.6 82.0 19601021 19930201 744907 14753 EAST MILTON US MA KMQE 42.211999999999996 -71.11399999999999 193.5 20000101 20170923 744910 14703 WESTOVER AFB/METROPOLITAN AIRPORT US MA KCEF 42.2 -72.533 73.5 19410401 20170924 744910 99999 CHICOPEE FALLS/WEST US MA KCEF 42.2 -72.533 75.0 20000101 20071231 744915 14775 BARNES MUNICIPAL AIRPORT US MA KBAF 42.158 -72.71600000000001 82.6 19730105 20170924 744915 99999 BARNES MUNI US MA KBAF 42.15 -72.717 83.0 20000101 20031231 744916 99999 PITTSFIELD MUNI US MA PSF 42.433 -73.3 364.0 19730122 19900118 744925 99999 CROWS LANDING CALIFORNIA NAAS US CA NRC 37.4 -121.1 50.0 19450301 19460601 744940 99999 CHATHAM US MA KCHH 41.667 -69.967 15.5 19730101 19950321 744975 99999 SHORT BEACH COAST GUARD STATION US NY 40.58 -73.55 1.0 19750915 19881024 744976 99999 NTPD AIR OPS HELIPORT US NY 40.6 -73.9 4.9 19750915 19960510 744989 14747 CHAUTAUQUA CO/DUNKIRK ARPT US NY KDKK 42.493 -79.27199999999999 203.0 19970102 20170924 744989 99999 CHAUTAUQUA CO DUNKIR US NY KDKK 42.493 -79.27199999999999 211.0 20000101 20031231 744994 4741 SCHENECTADY COUNTY AIRPORT US NY KSCH 42.85 -73.95 115.2 19810421 20170924 744994 99999 SCHENECTADY CO US NY KSCH 42.85 -73.917 115.0 20000101 20031231 745000 99999 SHERIDAN CA US 39.0 -121.333 60.0 20020226 20020226 745039 99999 GOLDEN GATE BRIDGE US CA KGGB 37.817 -122.46700000000001 81.0 19850522 19960701 745040 99999 PILAR POINT AFS CA. US 37.5 -122.5 49.0 19990704 19991029 745045 99999 POINT BONITA COAST GUARD LIGHT S US 37.8 -122.52 1.0 19750916 19960701 745046 93242 MADERA MUNICIPAL AIRPORT US CA KMAE 36.988 -120.111 77.1 20060101 20170924 745046 99999 MADERA MUNI US CA KMAE 36.986999999999995 -120.113 77.0 19990114 20071231 745048 93210 OROVILLE MUNICIPAL AIRPORT US CA KOVE 39.49 -121.618 57.9 20060101 20170924 745048 99999 OROVILLE MUNI US CA KOVE 39.483000000000004 -121.617 59.0 19990114 20071231 745054 99999 POINT SUR US CA 36.3 -121.883 34.0 19800227 20020802 745055 99999 POINT PINOS COAST GUARD LIGHT ST US 36.63 -121.93 6.0 19750916 19960701 745056 53120 RAMONA AIRPORT US CA KRNM 33.038000000000004 -116.916 424.6 20060101 20170924 745056 99999 RAMONA US CA KRNM 33.039 -116.915 425.0 19990114 20071231 745057 53130 WHITMAN AIRPORT US CA KWHP 34.259 -118.413 305.7 20060101 20170924 745057 99999 WHITEMAN US CA KWHP 34.266999999999996 -118.417 306.0 19990114 20071231 745058 23277 WATSONVILLE MUNICIPAL ARPT US CA KWVI 36.936 -121.789 48.8 20060101 20170924 745058 99999 WATSONVILLE MUNI US CA KWVI 36.933 -121.78299999999999 50.0 19990114 20071231 745060 23239 ALAMEDA(USN) US CA KNGZ 37.733000000000004 -122.31700000000001 4.0 19730101 19970102 745065 99999 POINT BLUNT COAST GUARD LIGHT ST US 37.85 -122.42 73.0 19750916 19960701 745090 23244 MOFFETT FEDERAL AIRFLD APT US CA KNUQ 37.406 -122.04799999999999 11.9 19730101 20170924 745090 99999 MOUNTAIN VIEW /SUNN US CA KNUQ 37.417 -122.05 12.0 20000323 20031226 745095 99999 SANTA CRUZ HARBOR US CA 36.97 -122.0 1.0 19760130 19960701 745096 99999 PIGEON POINT COAST GUARD LIGHT S US 37.18 -122.4 1.0 19430609 19960701 745097 99999 SAN FRANCISCO PBS US CA 37.75 -122.7 5.0 19760130 19960701 745160 23202 TRAVIS AIR FORCE BASE US CA KSUU 38.266999999999996 -121.93299999999999 18.9 19430811 20170924 745160 99999 FAIRFIELD/TRAVIS AF US CA KSUU 38.266999999999996 -121.95 22.0 20000101 20071231 745165 99999 RIO VISTA COAST GUARD LIGHT STAT US 38.15 -121.7 1.0 19750916 19960701 745200 23176 MILFORD MUNICIPAL AP US UT KMLF 38.417 -113.01700000000001 1534.1 19830501 19850531 745201 23176 MILFORD MUNICIPAL AP US UT KMLF 38.417 -113.01700000000001 1534.1 19850601 19890501 745310 93065 USAF ACADEMY AIRSTRIP AIRPORT US CO KAFF 38.967 -104.81700000000001 2003.2 19671127 20170924 745310 99999 AIR FORCE ACADEMY US CO KAFF 38.967 -104.81700000000001 1999.0 20000103 20071231 745430 93978 PRATT INDUSTRIAL AIRPORT US KS KPTT 37.702 -98.74700000000001 595.0 20060101 20170924 745430 99999 PRATT MUNICIPAL US KS KPTT 37.7 -98.75 595.0 19430801 20071231 745431 3998 TRI-CITY AIRPORT US KS KPPF 37.328 -95.50399999999999 264.9 20060101 20170924 745431 99999 TRI CITY US KS KPPF 37.333 -95.5 274.0 19961020 20071231 745700 13840 WRIGHT-PATTERSON AFB AIRPORT US OH KFFO 39.833 -84.05 250.9 19360501 20170924 745700 99999 DAYTON/WRIGHT-PATTE US OH KFFO 39.833 -84.05 251.0 20000101 20071231 745900 99999 BARNEGAT COAST GUARD STATION US NJ 39.77 -74.1 6.0 19760105 19820501 745940 13705 ANDREWS AIR FORCE BASE AIRPORT US MD KADW 38.817 -76.867 86.0 19430619 20170924 745940 99999 ANDREWS AFB/CAMP SP US MD KADW 38.817 -76.85 88.0 20000101 20071231 745944 93784 BALTIMORE DOWNTOWN US MD KDMH 39.281 -76.611 6.1 19990102 20170924 745945 99999 ANNAPOLIS COAST GUARD STATION US MD 38.92 -76.47 8.0 19750916 19830215 745946 93786 OCEAN CITY MUNICIPAL ARTP US MD KOXB 38.308 -75.124 3.7 20060101 20170924 745946 99999 OCEAN CITY MUNI US MD KOXB 38.317 -75.117 3.0 19991208 20071231 745950 99999 OCEAN CITY US MD 38.33 -75.08 4.0 19730101 19960629 745960 99999 FIVE FATHOM (LS) US NJ 38.783 -74.583 5.0 19780614 19780614 745965 13756 CAPE MAY (CGS) US NJ KN91 38.95 -74.883 2.0 19750915 19960127 745966 3726 CAPE MAY COUNTY AIRPORT US NJ KWWD 39.008 -74.908 7.0 20060101 20170924 745966 99999 CAPE MAY CO US NJ KWWD 39.0 -74.9 7.0 19920621 20071231 745980 13702 LANGLEY AFB AIRPORT US VA KLFI 37.083 -76.36 3.1 19361001 20170924 745980 99999 LANGLEY AFB/HAMPTON US VA KLFI 37.083 -76.35 6.0 20000101 20071231 745985 63806 BLUE RIDGE AIRPORT US VA KMTV 36.631 -80.018 286.8 20060101 20170924 745985 99999 BLUE RIDGE US VA KMTV 36.633 -80.017 287.0 19950708 20071231 746060 99999 SOUTH VANDENBERG AFB US CA 34.65 -120.56700000000001 112.0 19990822 19990822 746061 99999 VANDENBERG BOAT HOU US CA 34.55 -120.617 26.0 19660808 19690305 746110 3182 BICYCLE LAKE FORT IRWIN AAF US CA KBYS 35.283 -116.633 75.6 20130101 20170923 746110 99999 BICYCLE LAKE AAF US CA KBYS 35.281 -116.63 716.3 19840109 20170922 746120 93104 CHINA LAKE US CA KNID 35.688 -117.693 679.7 19730101 20170924 746140 99999 INDIAN SPRINGS GUNNERY RANGE US NV 36.533 -115.9 951.9 20000613 20040908 746141 23141 INDIAN SPRING AUX AIRFIELD US NV KINS 36.583 -115.68299999999999 954.9 20060101 20170924 746141 99999 INDIAN SPRINGS AF A US NV 36.583 -115.667 955.0 20040713 20071231 746180 3147 CUDDLEBACK GUNNERY US CA K4CB 35.266999999999996 -117.43299999999999 864.0 19770118 19820910 746180 99999 CUDDLEBACK GUNNERY RANGE CA. US 35.266999999999996 -117.43299999999999 864.0 20020603 20020603 746190 99999 SUPERIOR VALLEY GUNNERY RANGE US CA 36.33 -117.1 962.0 19820806 19920617 746300 99999 STALLION AAF NM US NM 33.817 -106.667 1506.0 19610301 19780728 746375 99999 CLINES CORNER US NM 34.933 -105.583 2109.0 19850207 19981013 746380 93064 MELROSE GUNNERY RAN US NM K4MR 34.3 -103.8 1326.0 19630701 19730629 746380 99999 MELROSE GUNNERY RANGE NM. US 34.3 -103.8 1326.0 20101213 20170923 746410 13975 GAGE AIRPORT US OK KGAG 36.297 -99.76899999999999 667.8 20100709 20170924 746410 99999 GAGE US OK KGAG 36.283 -99.76700000000001 669.0 19431201 19440922 746710 13806 CAMPBELL AAF AIRPORT US KY KHOP 36.667 -87.48299999999999 174.7 19430715 20170924 746710 99999 FORT CAMPBELL (AAF) US KY KHOP 36.667 -87.5 174.0 20000101 20071231 746715 3816 PADUCAH BARKLEY FIELD US KY KPAH 37.056 -88.774 125.9 19730101 19881231 746716 93808 BOW GRN-WARREN CO. RGNL AP US KY KBWG 36.965 -86.42399999999999 160.9 19730101 20170924 746720 99999 SABRE AHP US TN KEOD 36.568000000000005 -87.48100000000001 181.1 20010815 20170923 746925 3741 WARREN FIELD AIRPORT US NC KOCW 35.57 -77.05 11.6 20060101 20170924 746925 99999 WARREN FLD US NC KOCW 35.567 -77.05 12.0 20010811 20071231 746929 3702 DUPLIN COUNTY AIRPORT US NC KDPL 35.0 -77.982 41.8 20060101 20170925 746929 99999 DUPLIN CO US NC KDPL 35.0 -77.982 42.0 20010811 20071231 746930 93737 SIMMONS AAF AIRPORT US NC KFBG 35.133 -78.933 74.4 19610701 20170924 746930 99999 FORT BRAGG/SIMMONS US NC KFBG 35.133 -78.933 74.0 20000103 20071231 746934 99999 ASHEBORO ASHEBORO MUNICIPAL AIR US 35.65 -79.9 205.0 19990114 19990715 746935 3709 ASHEBORO MUNICIPAL AIRPORT US NC KHBI 35.654 -79.895 205.1 20060101 20170924 746935 99999 ASHEBORO RGNL US NC KHBI 35.65 -79.9 205.0 20010811 20071231 746936 3712 HARNETT COUNTY AIRPORT US NC KHRJ 35.379 -78.734 60.4 20060101 20170924 746936 99999 HARTNETT COUNTY US NC KHRJ 35.383 -78.733 61.0 20010811 20071231 746939 93785 HORACE WILLIAMS AIRPORT US NC KIGX 35.933 -79.064 156.1 20060101 20170924 746939 99999 HORACE WILLIAMS US NC KIGX 35.933 -79.067 156.0 20010811 20071231 746940 3708 GOLDSBORO-WAYNE MUNI ARPT US NC KGWW 35.46 -77.965 40.8 20060101 20170924 746940 99999 GOLDSBORO WAYNE MUNI US NC KGWW 35.467 -77.967 41.0 20020829 20071231 746941 13786 MONROE CO US MS KECG 36.260999999999996 -76.175 4.0 19490101 19900219 746941 99999 MONROE CO US MS KM40 33.874 -88.49 68.9 20120110 20161016 746943 13786 ELIZABETH CITY CGAS US NC KECG 36.260999999999996 -76.175 4.0 19900314 20100801 746943 99999 ELIZABETH CITY CGAS US NC 36.25 -76.167 4.0 19981223 20100817 746950 99999 DARE COUNTY GUNNERY RANGE NC. US 35.667 -75.9 3.0 19660502 20130430 746960 99999 DIAMOND SHOALS COAST GUARD STATI US 35.15 -75.3 1.0 19750916 19840929 746990 99999 FRYING PAN SHOALS NC. US 33.483000000000004 -77.583 0.0 19750916 19830309 747020 23110 NAVAL AIR STATION US CA KNLC 36.333 -119.95 70.7 19610701 20170924 747040 3102 ONTARIO INTERNATIONAL ARPT US CA KONT 34.056 -117.6 289.3 20060101 20170924 747040 99999 ONTARIO INTL ARPT US CA KONT 34.05 -117.56700000000001 287.0 19770705 20071231 747041 99999 EL MONTE EMSU US CA 34.083 -118.03299999999999 91.1 19850531 19900219 747043 3165 EL MONTE AIRPORT US CA KEMT 34.083 -118.03299999999999 90.2 20060101 20170924 747043 99999 EL MONTE US CA KEMT 34.086 -118.035 90.0 19900314 20071231 747185 3144 IMPERIAL COUNTY AIRPORT US CA KIPL 32.834 -115.579 -17.7 20060101 20170924 747185 99999 IMPERIAL CO US CA KIPL 32.834 -115.579 -16.0 19730101 20071231 747186 3164 CAMPO US CA KCZZ 32.626 -116.46799999999999 805.0 20060101 20170924 747186 99999 CAMPO US CA KCZZ 32.633 -116.46700000000001 807.0 19730101 20071231 747187 3104 DESERT RESORTS RGNL ARPT US CA KTRM 33.626999999999995 -116.15899999999999 -36.0 19430712 20170924 747188 23158 BLYTHE AIRPORT US CA KBLH 33.619 -114.714 120.4 19420613 20170924 747240 3148 GILA BEND AF AUX AIRPORT US AZ KGBN 32.883 -112.71700000000001 257.9 20060103 20130214 747240 23168 GILA BEND AF AUX US AZ KGXF 32.883 -112.71700000000001 269.0 19481101 19991231 747240 99999 GILA BEND AF AUX US AZ KGXF 32.883 -112.71700000000001 269.0 20000103 20071231 747255 99999 PAYSON US AZ 34.266999999999996 -111.35 1571.0 19950708 19960701 747300 99999 SANDERSON TX. US 30.166999999999998 -102.417 865.0 19780510 19991004 747320 23002 HOLLOMAN AFB AIRPORT US NM KHMN 32.85 -106.1 1267.4 20060103 20170924 747320 99999 HOLLOMAN AFB US NM KHMN 32.85 -106.1 1248.0 19420901 20071231 747330 99999 NORTHRUP LANDING STRIP US NM 33.9 -106.4 1193.0 19820318 19940818 747335 3059 SONORA MUNICIPAL AIRPORT US TX KSOA 30.586 -100.649 652.3 20060101 20170924 747335 99999 SONORA MUNI US TX KSOA 30.583000000000002 -100.65 652.0 20040824 20071231 747340 99999 WHITE SANDS MISSILE RANGE SITE NO.39 US 32.633 -106.4 1204.0 19470801 19861231 747350 99999 JAYTON TX. US TX 33.016999999999996 -100.98299999999999 707.0 20070126 20070126 747355 53997 COMANCHE COUNTY-CITY AIRPORT US TX KMKN 31.916999999999998 -98.6 423.1 20060101 20170924 747355 99999 COMANCHE CO CITY US TX KMKN 31.916999999999998 -98.6 423.0 20041123 20071231 747360 93042 MUNICIPAL AIRPORT US TX KDHT 36.016999999999996 -102.55 1216.2 20100801 20170924 747390 13961 FT WORTH MEACHAM INTL ARPT US TX KFTW 32.819 -97.361 209.4 20100801 20170924 747400 13973 KIMBLE COUNTY AIRPORT US TX KJCT 30.511 -99.766 533.1 19770827 20170924 747460 3904 EASTERWOOD FIELD AIRPORT US TX KCLL 30.589000000000002 -96.365 93.0 20100801 20170924 747540 13934 ALEXANDRIA INT US LA KAEX 31.316999999999997 -92.55 27.0 19430901 19991231 747540 93915 ALEXANDRIA INTL AIRPORT US LA KAEX 31.335 -92.559 25.6 20060101 20170924 747540 99999 ALEXANDRIA INT US LA KAEX 31.316999999999997 -92.55 27.0 20000101 20071231 747550 99999 CLAIBORNE RANGE LA. (AFS) US LA 31.133000000000003 -92.56700000000001 67.0 19630701 19910315 747560 12816 GAINESVILLE REGIONAL AIRPORT US FL KGNV 29.691999999999997 -82.27600000000001 37.5 20100801 20170924 747570 93874 GULFPORT-BILOXI INTL ARPT US MS KGPT 30.412 -89.081 12.8 20100801 20170924 747580 13978 GREENWOOD-LEFLORE AIRPORT US MS KGWO 33.496 -90.087 40.5 20100801 20170924 747590 13833 BOBBY L CHAIN MUNI AIRPORT US MS KHBG 31.281999999999996 -89.25299999999999 46.0 20100801 20170924 747680 13939 MID DELTA REGIONAL AIRPORT US MS KGLH 33.483000000000004 -90.985 39.0 20100801 20170924 747685 93874 GULFPORT BILOXI INT US MS KGPT 30.412 -89.081 8.5 20050101 20100731 747685 99999 GULFPORT BILOXI INT US MS 30.4 -89.06700000000001 9.0 19730101 20100818 747686 13820 KEESLER AIR FORCE BASE US MS KBIX 30.416999999999998 -88.917 10.1 19420509 20170924 747686 99999 KEESLER AFB US MS KBIX 30.416999999999998 -88.917 10.0 20000103 20071231 747688 53858 TRENT LOTT INTL AIRPORT US MS KPQL 30.464000000000002 -88.53200000000001 5.5 20040101 20170924 747688 99999 TRENT LOTT INTL US MS KPQL 30.467 -88.53299999999999 5.0 19680903 20031231 747750 13846 TYNDALL AFB AIRPORT US FL KPAM 30.066999999999997 -85.583 5.2 19420319 20170924 747750 99999 TYNDALL AFB US FL KPAM 30.066999999999997 -85.583 5.0 20000101 20071231 747756 99999 CAPE SAN BLAS COAST GUARD STATIO US 29.68 -85.37 2.0 19780619 19810811 747760 3818 MARIANNA MUNICIPAL AIRPORT US FL KMAI 30.836 -85.184 34.4 19970602 20170924 747760 99999 MARIANNA MUNI US FL KMAI 30.938000000000002 -85.182 34.0 20010811 20071231 747761 99999 TRI CO US FL 30.846 -85.601 25.9 20131115 20170921 747770 3852 HURLBURT FIELD AIRPORT US FL KHRT 30.416999999999998 -86.68299999999999 11.6 19550705 20170924 747770 99999 HURLBURT FIELD (AF) US FL KHRT 30.416999999999998 -86.68299999999999 11.0 20000101 20071231 747780 99999 EGLIN AFB RANGE NO.52 US FL 30.566999999999997 -86.31700000000001 48.0 19820723 19840204 747804 13824 HUNTER ARMY AIRFIELD US GA KSVN 32.016999999999996 -81.133 12.5 20060101 20170924 747804 99999 HUNTER AAF US GA KSVN 32.009 -81.146 13.0 19440301 20071231 747805 63818 STATESBORO-BULLOCK CO ARPT US GA KTBR 32.483000000000004 -81.737 57.0 20060101 20170925 747805 99999 STATESBORO BULLOCH US GA KTBR 32.482 -81.733 57.0 20020423 20071231 747806 63809 THOMASTON-UPSON CO AIRPORT US GA KOPN 32.955 -84.264 242.6 20060101 20170924 747806 99999 THOMASTON UPSON CO US GA KOPN 32.95 -84.26700000000001 243.0 20020423 20071231 747807 3821 LAGRANGE-CALLAWAY AIRPORT US GA KLGC 33.016999999999996 -85.06700000000001 207.9 20060101 20170925 747807 99999 LAGRANGE CALLAWAY US GA KLGC 33.016999999999996 -85.06700000000001 211.0 20020423 20071231 747808 63803 GWINNETT CO-BRISCOE FD APT US GA KLZU 33.98 -83.963 323.4 20060101 20170924 747808 99999 GWINNETT COUNTY ARPT US GA KLZU 33.978 -83.962 323.0 20020430 20071231 747809 3832 WINDER-BORROW AIRPORT US GA KWDR 33.983000000000004 -83.66799999999999 287.4 20060101 20170924 747809 99999 WINDER BARROW US GA KWDR 33.983000000000004 -83.667 287.0 20020430 20071231 747810 13857 MOODY AFB AIRPORT US GA KVAD 30.967 -83.2 71.0 20060103 20170924 747810 99999 MOODY AFB/VALDOSTA US GA KVAD 30.967 -83.2 71.0 19420401 20071231 747812 63813 COBB CO-MC COLLUM FLD ARPT US GA KRYY 34.013000000000005 -84.59899999999999 317.0 20060101 20170924 747812 99999 COBB CO MCCOLLUM FLD US GA KRYY 34.013000000000005 -84.59899999999999 317.0 20020430 20071231 747820 53860 CRAIG MUNICIPAL AIRPORT US FL KCRG 30.336 -81.515 12.5 20100801 20170924 747830 12849 FT LAUD/HOLLYWOOD INTL APT US FL KFLL 26.072 -80.154 3.4 20100801 20170924 747870 12834 DAYTONA BEACH INTERNATIONAL AIRPORT US FL KDAB 29.183000000000003 -81.048 9.5 20100801 20170924 747880 12810 MAC DILL AFB AIRPORT US FL KMCF 27.85 -82.51700000000001 4.3 19410501 20170924 747880 99999 MACDILL AFB/TAMPA US FL KMCF 27.85 -82.5 4.0 20000101 20071231 747900 13849 SHAW AIR FORCE BASE US SC KSSC 33.967 -80.467 73.5 19411222 20170924 747900 99999 SHAW AFB/SUMTER US SC KSSC 33.967 -80.483 73.0 20000103 20071231 747910 13717 MYRTLE BEACH INTL AIRPORT US SC KMYR 33.683 -78.933 7.6 19421101 20170924 747910 99999 MYRTLE BEACH CIV US SC KMYR 33.683 -78.933 8.0 20000101 20031231 747915 93718 GRAND STRAND AIRPORT US SC KCRE 33.812 -78.72399999999999 9.8 19730101 20170924 747915 99999 NORTH MYRTLE BEACH US SC KCRE 33.817 -78.717 10.0 20000101 20031231 747916 99999 GEORGETOWN COAST GUARD LIGHT STA US 33.22 -79.18 8.0 19750911 19850920 747917 390 MT PLEASANT REGIONAL AIRPORT FASION FIELD US SC KLRO 32.9 -79.783 4.3 20170519 20170924 747917 99999 MOUNT PLEASANT US SC KLRO 32.9 -79.783 3.7 20081208 20170922 747918 391 GEORGETOWN COUNTY AIRPORT US SC KGGE 33.317 -79.317 12.2 20170519 20170924 747918 99999 GEORGETOWN CO US SC KGGE 33.312 -79.32 11.9 20090601 20170922 747920 99999 POINSETT RANGE SUMPTER US SC 33.85 -80.48 68.0 19700615 19880923 747930 12843 VERO BEACH MUNICIPAL AIRPORT US FL KVRB 27.651 -80.42 8.5 20100801 20170924 747930 99999 VERO BEACH MUNI US FL KVRB 27.65 -80.417 12.0 20010811 20100731 747931 12876 WINTER HAVEN'S GILBERT APT US FL KGIF 28.061999999999998 -81.75399999999999 44.5 20100801 20170924 747940 12868 COCOA BEACH CAPE KENNEDY AFS US FL KXMR 28.483 -80.567 3.1 19500801 19780316 747940 99999 CAPE CANAVERAL AFS SKID STRIP US FL KXMR 28.468000000000004 -80.567 3.0 20020116 20170923 747945 99999 NASA SHUTTLE FCLTY US FL KSC 28.616999999999997 -80.7 3.0 19780317 19930617 747946 12886 KENNEDY SPACE CENTER US FL KTTS 28.616999999999997 -80.683 3.1 20060101 20170924 747946 99999 NASA SHUTTLE LANDING US FL KTTS 28.615 -80.694 3.0 19930701 20071231 747950 12867 PATRICK AFB AIRPORT US FL KCOF 28.233 -80.6 2.4 19450301 20170924 747950 99999 PATRICK AFB/COCOA B US FL KCOF 28.233 -80.6 3.0 20000102 20071231 747960 12804 AVON PARK GUNNERY R US FL KAGR 27.65 -81.333 20.0 19431201 19930929 747985 99999 DRY TORTUGAS (CGS) US FL 24.633000000000003 -82.917 1.0 19750916 19870705 747986 99999 MARATHON COAST GUARD STATION US FL 24.72 -81.12 1.0 19750916 19841015 747994 99999 BUTTE LA ROSE US LA KBCG 30.116999999999997 -91.55 10.0 19850701 19850706 749000 99999 ARNOLD AFB US TN KAYX 35.393 -86.086 324.6 19430101 19690801 749001 99999 RAF SPILSBURY UK 53.167 0.16699999999999998 11.0 19431001 19460531 749002 99999 ATTLEBOROUGH UK 52.5 0.95 32.0 19430901 19450831 749003 99999 DEENETHORPE UK 52.5 -0.6 105.0 19440701 19450630 749005 99999 TIBENHAM UK 52.467 1.15 48.0 19440701 19460430 749006 99999 HEMINGSTONE UK 52.133 1.1 58.0 19440601 19450630 749007 99999 RAF HOME-ON-SPALDING UK 53.8 -0.75 4.0 19410901 19451031 749008 99999 STURGATE AIRFIELD UK EGCS 53.381 -0.685 21.0 19430901 19570613 749009 99999 RAF BLYTON UK 53.467 -0.7 240.0 19430301 19430630 749010 99999 LAGUNA AAF US 32.85 -114.4 152.0 19470708 19470814 749011 99999 LA GRANGE GA/GALLOWAY APT FAA US GA GA33 33.016 -85.066 216.0 19530701 19550101 749012 99999 EGLIN TEST SITE C5 US FL 30.666999999999998 -86.367 73.0 19490915 19491029 749013 99999 EGLIN TEST SITE C3 US FL 30.583000000000002 -86.45 48.0 19490920 19551229 749014 99999 EGLIN SITE B6 US FL 30.616999999999997 -86.73299999999999 42.0 19490919 19491028 749015 99999 RICHMOND MUNI US IN 39.766999999999996 -84.833 348.0 19471107 19520401 749016 99999 LOMETTA AIRSTRIP US TX 31.25 -98.5 411.0 19520312 19520409 749017 99999 LONGHORN AUX STRIP US TX 31.366999999999997 -97.71700000000001 233.0 19520312 19520409 749018 99999 JOHNSON CITY US TX 30.25 -98.617 461.0 19631223 19690121 749019 99999 DEMPSEY ARMY HELI US TX 32.8 -98.26700000000001 354.0 19680103 19710327 749020 99999 LAC MEGANTIC CA CYXG 45.583 -70.867 415.0 19500101 19590101 749021 99999 STIRLING ONTARIO DOT CA CYQC 44.316 -77.633 139.0 19500101 19590101 749022 99999 BELMAR NJ/SIG CORPS EVANS LAB US NJ BLM 40.183 -74.066 26.0 19550101 19610801 749023 99999 FISHERMANS LAKE LI 6.75 -11.25 0.0 19430701 19450504 749024 99999 OYAPOCK BR SBVE 3.867 -51.817 0.0 19431007 19451021 749025 99999 CHAME PM 8.6 -79.917 37.0 19420714 19461024 749026 99999 REY ISLAND PM MPYI 8.232999999999999 -78.9 24.0 19430715 19470801 749027 99999 LA MITRA PM 8.85 -79.783 94.0 19420408 19451019 749028 99999 LA JOYA PM 9.133 -79.233 48.0 19420716 19450927 749029 99999 CALZADA LARGA PM MP23 9.166 -79.545 120.1 19420708 19441101 749030 99999 MANDINGA PM 9.45 -79.083 5.0 19430726 19440413 749031 99999 SAN JOSE ISLAND PM 8.25 -79.133 82.0 19440601 19480101 749032 99999 LAKE GATUN PM 9.117 -79.783 79.0 19450501 19460131 749033 99999 FINCA FAYORITA CS 9.517000000000001 -82.65 10.0 19431001 19440605 749034 99999 POCRI AIRFIELD PM MPCI 7.733 -80.133 14.0 19430615 19471223 749035 99999 AGUADULCE PM 8.25 -80.567 46.0 19420330 19460125 749036 99999 PARRITA CS MRPR 9.517000000000001 -84.333 6.0 19441001 19470731 749037 99999 BISSAU PU 11.867 -15.633 38.0 19430201 19430403 749038 99999 LOS MOLINOS RQ 18.483 -66.467 13.0 19430101 19431201 749039 99999 CAYEY RQ 18.117 -66.15 396.0 19430222 19430630 749040 99999 TOCO TD 10.833 -60.933 41.0 19420709 19421001 749041 99999 CHICKLAND TD 10.4 -61.4 19.0 19450715 19450927 749042 99999 ANTONIO RIVERA RODRIGUEZ RQ TJVQ 18.135 -65.494 14.9 19500224 19500312 749043 99999 EXUMA BF 23.5 -75.75 19.0 19450623 19451024 749044 99999 BOCA RATON FLORIDA AAF US FL BCT 26.366 -80.1 5.0 19421201 19471130 749045 99999 SEBRING RGNL US FL KSEF 27.456 -81.342 19.2 19420401 20170923 749046 99999 PUNTA GORDA FLORIDA AAF US FL PGD 26.916 -81.98299999999999 9.0 19440104 19450919 749047 99999 KISSIMMEE FLORIDA AAF US FL ISM 28.283 -81.416 25.0 19440301 19450811 749048 415 KEYSTONE AIRPARK US FL K42J 29.845 -82.04799999999999 60.1 20130101 20170923 749048 99999 KEYSTONE AIRPARK US FL K42J 29.845 -82.04799999999999 59.7 19431210 20170922 749049 99999 BROOKSVILLE FLORIDA AAF US FL BKV 28.483 -82.449 23.0 19431207 19440314 749050 99999 LEESBURG FLORIDA AAF US FL LEE 28.8 -81.8 23.0 19431221 19440312 749051 99999 DUNELLON US FL 29.066999999999997 -82.367 20.0 19431205 19440313 749053 99999 WILLISTON MUNI US FL 29.35 -82.46700000000001 22.0 19431207 19440322 749054 99999 BUSHNELL FIELD US FL 28.683000000000003 -82.083 27.0 19440515 19450901 749055 99999 MOORE FIELD US TX 26.4 -98.35 62.0 19420301 19451111 749056 99999 SAN MARCOS TX/EDWARD GARY AFB US TX SRO 29.883000000000003 -97.866 178.0 19430220 19560816 749057 99999 ALOE AAF US TX 28.767 -97.117 34.0 19440608 19450910 749058 99999 BROOKS AFB US TX 29.35 -98.45 182.0 19480122 19600622 749059 99999 FES MOROCCO/FES RAS ELMA FLD MO GFEZ 34.083 -4.916 401.0 19430108 19430731 749060 99999 GUERCIF MO 34.233000000000004 -3.4330000000000003 390.0 19430302 19430524 749061 99999 DEROUA MO 33.4 -7.5329999999999995 185.0 19430201 19430501 749062 99999 PORT LYAUTEY MOROCCO/CRAW FLD MO 34.3 -6.582999999999999 13.0 19421210 19430930 749063 99999 IJJOUKAK MO 31.0 -8.133 1202.0 19440901 19450614 749064 99999 TOUAHAR MO GMFT 34.2 -4.183 564.0 19430429 19460228 749065 99999 BOULHAUT MO 33.617 -7.117000000000001 171.0 19511218 19570313 749066 99999 LITTLE SOUND BD 32.266999999999996 -64.85 13.0 19450401 19631001 749067 99999 CONNELLSVILLE US PA 39.95 -79.65 383.0 19411020 19460131 749068 99999 MAXTON NC/LAURINBURG MAXTON US NC MEB 34.8 -79.366 69.0 19421204 19510902 749069 99999 CAMP DAVIS AAF US NC 34.5 -77.567 21.0 19431201 19450820 749070 99999 FREDERICK MD/CAMP DETRICK US MD FDK 39.433 -77.449 100.0 19460801 19550429 749071 99999 EDENTON NORTH CAROLINA MCALF US NC EDE 36.016 -76.566 6.0 19450318 19581016 749072 99999 WEEKSVILLE NAS US NC 36.233000000000004 -76.133 7.0 19450201 19570628 749073 99999 GUNTER ANNEX US AL 32.4 -86.25 67.0 19411222 19460101 749074 99999 FREEMAN MUNI US IN 38.933 -85.917 176.0 19430118 19461031 749075 99999 LAWERENCEVILLE IL US IL LMV 38.766 -87.6 131.0 19430111 19460201 749076 99999 MADISON AAF US IN 38.833 -85.417 268.0 19411103 19450907 749077 99999 STURGIS MUNI US KY KTWT 37.541 -87.95200000000001 113.4 19440306 19450916 749078 99999 BAINBRIDGE/AAF GA US GA BGE 30.983 -84.633 40.0 19420917 19450108 749079 99999 GRENADA US MS 33.783 -89.8 63.0 19430812 19451114 749080 99999 COURTLAND US AL 34.65 -87.333 176.0 19430201 19450701 749081 99999 AUGUSTA/DANIEL FIELD GA US GA DNL 33.466 -82.03299999999999 134.0 19420703 19430602 749082 99999 HENDERSONVILLE AAF US NC 35.433 -82.48299999999999 661.0 19430801 19460131 749083 99999 LEBANON US TN 36.183 -86.3 159.0 19440209 19440301 749084 99999 PERRY FLORIDA AAF US FL PRF 30.066 -83.583 15.0 19440416 19450930 749085 99999 HARRIS NECK AAF US GA 31.633000000000003 -81.267 6.0 19440501 19441214 749086 99999 MALDEN MISSOURI AAF US MO MAW 36.6 -89.98299999999999 91.0 19441201 19450322 749087 99999 MARIANNA FLORIDA AAF US FL MAI 30.833000000000002 -85.2 33.0 19421201 19451116 749088 99999 THOMASVILLE GEORGIA AAF US GA TVI 30.9 -83.85 74.0 19440216 20100621 749089 99999 TUSKEGEE/SHARPE FLD US AL 32.5 -85.76700000000001 76.0 19420419 19461004 749090 99999 WALTERBORO MUNI US SC 32.917 -80.65 29.0 19420928 19451102 749091 99999 VARISCO AIRFIELD US TX 30.666999999999998 -96.55 84.0 19430315 19580612 749092 99999 COFFEYVILLE KANSAS AAF US KS CFV 37.1 -95.583 227.0 19421202 19451017 749093 99999 FREDERICK OKLAHOMA AAF US OK FDR 34.366 -99.0 377.0 19430423 19451031 749094 99999 HERINGTON MUNI US KS 38.7 -96.81700000000001 455.0 19430601 19451001 749095 99999 NEWPORT ARKANSAS AAF US AR EWP 35.633 -91.166 74.0 19430101 19440726 749096 99999 STUTTGART ARKANSAS AAF US AR SGT 34.6 -91.583 68.0 19421101 19451211 749097 99999 WINFIELD KS/STROTNER FLD US KS WLD 37.166 -97.03299999999999 350.0 19421216 19450814 749098 99999 DE RIDDER LOUISIANA AAB US LA DRI 30.833000000000002 -93.366 61.0 19430117 19450324 749099 99999 INDEPENDENCE KANSAS AAF US KS IDP 37.166 -95.766 250.0 19430504 19471017 749100 99999 HOPE ARKANSAS AAF US AR IDP 33.733000000000004 -93.666 108.0 19450207 19451102 749102 99999 WESLEYVILLE DFS CA 49.15 -53.583 26.0 19431112 19451201 749103 99999 CAMPBELLTON CENTER CA 48.0 -66.683 5.0 19500101 19590101 749105 99999 MITCHEL FIELD US NY 40.733000000000004 -73.6 38.0 19370101 19610416 749108 99999 ELIZABETH AAF US NY 41.266999999999996 -72.017 15.0 19440501 19460101 749109 99999 EATONTOWN US NJ 40.3 -74.05 16.0 19471001 19481101 749110 99999 BRUNING AAF US NE 40.333 -97.417 471.0 19430101 19450101 749111 99999 HARVARD AAF US NE 40.65 -98.083 554.0 19430807 19460117 749112 99999 FAIRMONT AAF US NE 40.583 -97.56700000000001 500.0 19421218 19451031 749113 99999 ATLANTIC IOWA CAA US IA AIO 41.45 -95.066 353.0 19480601 19510101 749114 99999 RAF MOLESWORTH UK 52.383 -0.41700000000000004 74.0 19540301 19570531 749115 99999 RAF GROVE UK 51.617 -1.45 83.0 19450321 19451120 749116 99999 WARTON AERODROME UK 53.75 -2.883 11.0 19450205 19450809 749117 99999 PENKETH UK 53.383 -2.65 27.0 19450101 19590430 749118 99999 CAPE HARRISON NEWFOUNDLAND DO CA 54.766000000000005 -58.45 10.0 19431101 19500901 749119 99999 HEBRON CA 58.217 -62.583 8.0 19431101 19460123 749120 99999 QUEBEC ISLE CA 51.833 -62.883 524.0 19431023 19480918 749121 99999 INDIAN HOUSE LAKE CA 56.233000000000004 -64.733 311.0 19440901 19490814 749122 99999 CARIBOU EAST CA 59.367 -97.383 271.0 19430420 19450715 749123 99999 WABOWDEN MANITOBA DOT CA CYWB 54.916000000000004 -98.633 233.0 19430320 19450715 749124 99999 VIK IC 63.417 -18.9 30.0 19440301 19451224 749125 99999 GRUND IC 65.533 -18.067 35.0 19430510 19440122 749126 99999 KEFLAVIK /MEEKS FLD WBAS IC 63.95 -22.616 59.0 19470501 19510901 749127 99999 IKATEQ GL BIKA 65.933 -36.683 56.0 19421101 19471018 749128 99999 PANORAMANUNATAKKER GL 68.25 -36.5 2925.0 19560418 19560824 749129 99999 TREKANTNUNATTAKER GL 69.383 -35.917 2759.0 19560413 19560825 749130 99999 VALKYRIERNE GL 63.183 -41.333 91.0 19421205 19480920 749132 99999 SIMIUTAQ GL 60.683 -46.533 62.0 19420505 19570701 749133 99999 NANATAQ GL 65.067 -40.233000000000004 361.0 19440916 19451001 749134 99999 ICE CAP 559 GREENLAND GL 0.0 0.0 0.0 19440707 19440801 749135 99999 KOKLAPPERNE GL 65.333 -40.3 361.0 19421003 19440915 749136 99999 SNOWMAN GREENLAND GL 0.0 0.0 0.0 19470826 19470912 749137 99999 MINT JULEP GL 66.283 -47.766999999999996 829.0 19530527 19530821 749138 99999 ICE CAP GL 68.067 -42.333 593.0 19560412 19560823 749139 99999 ICE CAP SITE 2 GL 69.55 -43.167 2559.0 19560403 19560824 749140 99999 UNGUSIVIK GL 66.033 -53.567 13.0 19420916 19480809 749141 99999 MARRAK POINT GL BMKA 63.433 -51.183 41.0 19430119 19480929 749142 99999 PADLOPING ISLAND CA 67.1 -62.35 40.0 19411128 19530901 749143 99999 TAVANI CA 62.033 -93.06700000000001 0.0 19430506 19430824 749145 99999 ICE CAP SITE 3 GL 70.617 -36.167 3140.0 19560422 19560825 749146 99999 THULE STE 2 GL 76.533 -68.333 308.0 19520523 19520820 749147 99999 THULE GREENLAND/ORIGINAL SITE GL BGTL 76.5 -68.833 59.0 19510901 19511026 749148 99999 ICE CAP SITE 4 GL 78.133 -71.617 0.0 19530720 19561111 749149 99999 THULE SITE B GL 76.0 -56.083 1650.0 19530707 19570701 749150 99999 THULE GREENLAND/ALPHA GL 0.0 0.0 1356.0 19530729 19530903 749151 99999 THULE GREENLAND/NUNA LAKE GL 0.0 0.0 594.0 19530703 19530907 749152 99999 THULE MILE60 SIERRA GL 77.233 -62.333 1704.0 19530710 19540830 749153 99999 BAKER ISLAND FQ 0.217 -176.467 3.0 19431018 19451001 749154 99999 SOUTH POINT BEACH US HI 18.917 -155.683 12.0 19400129 19411223 749155 99999 RADAR BASE US TX 28.866999999999997 -100.51700000000001 70.0 19421008 19450515 749158 99999 FORT SUMNER MUNI US NM 34.483000000000004 -104.21700000000001 1263.0 19430101 19451116 749159 99999 PAMPA AAF US TX 35.533 -100.75 955.0 19430102 19451001 749160 99999 PECOS TEXAS AAF US TX PEQ 31.4 -103.516 95.0 19420910 19450530 749161 99999 PYOTE AFB US TX 31.517 -103.133 798.0 19430118 19460315 749162 99999 SWEETWATER TX/AVENGER FLD US TX SWW 32.466 -100.46600000000001 727.0 19450201 19451111 749163 99999 RODEO US NM 31.933000000000003 -108.98299999999999 1255.0 19460801 19540106 749164 99999 ELEPHANT BUTTE US NM 33.233000000000004 -107.01700000000001 1478.0 19460801 19500525 749165 99999 COLUMBUS MUNI US NM 31.833000000000002 -107.65 1223.0 19460801 19550101 749166 99999 DESERT CENTER AAF US CA 33.75 -115.333 165.0 19430601 19440305 749167 99999 PINAL AIRPARK US AZ KMZJ 32.510999999999996 -111.32799999999999 576.7 19420912 19550701 749168 99999 RICE AAF US CA 34.067 -114.833 269.0 19430601 19440302 749169 99999 PASADENA US CA 34.133 -118.133 231.0 19431115 19441011 749170 99999 GARDNER AAF US CA 35.117 -119.3 133.0 19411201 19450221 749171 479 TEHACHAPI MUNICIPAL AIRPORT US CA KTSP 35.135 -118.439 1219.5 20150317 20170922 749171 99999 TEHACHAPI MUNI US CA KTSP 35.135 -118.439 1219.5 19421113 20170923 749173 99999 COOLIDGE MUNI US AZ KP08 32.936 -111.427 479.8 19440711 20170923 749174 99999 PORTERVILLE CALIFORNIA AAF US CA PTV 36.033 -119.066 132.0 19450721 19451012 749175 99999 GOAT ROCK BEACH US CA 38.433 -123.133 72.0 19430607 19450526 749177 99999 SANTA ROSA ISLAND US CA 33.933 -120.117 455.0 19430611 19440301 749178 99999 MORRO BAY US CA 35.367 -120.85 20.0 19461001 19470101 749179 392 HOLLISTER MUNICIPAL AIRPORT US CA KCVH 36.9 -121.417 72.2 20170519 20170826 749179 99999 HOLLISTER MUNI US CA KCVH 36.9 -121.417 70.1 19450301 20170803 749180 99999 VERNALIS NAVAL AUX US CA 37.6 -121.3 59.0 19450401 19460116 749181 99999 WATSONVILLE CALIFORNIA NAAS US CA WVI 36.933 -121.78299999999999 44.0 19450301 19451015 749182 99999 JUDITH GAP US MT 46.7 -109.75 1416.0 19440715 19451101 749183 99999 FORT BENTON US MT 47.85 -110.65 880.0 19440226 19451101 749184 99999 CITY COUNTY AIRPORT US OR 44.667 -121.167 744.0 19430501 19440517 749185 99999 ARLINGTON WASHINGTON NAS US WA S88 48.199 -122.18299999999999 41.0 19450401 19451201 749186 99999 ISLAND FALLS SASKATCHEWAN DOT CA 55.533 -102.35 299.0 19430315 19450702 749187 99999 EMBARRAS ALBERTA DOT APT CA 58.199 -111.383 236.0 19430108 19441124 749188 99999 JARVIE WEST CA 54.467 -114.1 624.0 19430517 19450818 749189 99999 VALLEY VIEW ALBERTA CA 55.083 -117.25 738.0 19440222 19450818 749190 99999 TRIANGLE SOUTHWEST CA 55.317 -116.98299999999999 610.0 19431021 19440101 749191 99999 WONOWON SOUTHEAST CA 56.7 -121.75 905.0 19430708 19450818 749192 99999 SKOOKS LANDING CA 59.65 -127.06700000000001 507.0 19430801 19450818 749193 99999 SUMMIT LAKE CA 58.65 -124.65 1281.0 19430921 19450818 749194 99999 TROUT LIARD BRITISH COLUMBIA CA 59.383 -126.116 422.0 19430607 19450818 749195 99999 TRUTCH NORTHEAST CA 57.75 -122.9 857.0 19430720 19450818 749196 99999 TAKLA LANDING CA 55.467 -125.95 692.0 19441005 19450818 749197 99999 NELSON FORKS CA 59.5 -124.0 243.0 19450309 19450617 749198 99999 FRASER NORTHEAST CA 59.766999999999996 -134.983 884.0 19431201 19460131 749199 99999 GALBRAITH EAST CA 59.5 -131.767 1021.0 19450304 19450818 749200 99999 CHUGINADAK ISLAND SW US AK 52.833 -169.833 24.0 19430701 19440611 749203 99999 KAVALGA ISLAND US AK 51.55 -178.8 15.0 19430228 19440816 749204 99999 FINCH POINT US AK 52.383 -172.417 19.0 19430401 19450923 749205 99999 ATKA ALASKA US AK ATK 52.216 -174.2 11.0 19440208 19491119 749206 99999 MILLS LAKE SOUTH CA 61.25 -118.633 148.0 19440123 19440814 749207 99999 SAWMILL BAY CA 65.733 -118.917 171.0 19480201 19480901 749208 99999 TROUT LAKE N W T CA 60.266000000000005 -121.8 503.0 19440401 19451001 749210 99999 FISH LAKE CA 60.633 -132.05 867.0 19430420 19450818 749211 99999 LITTLE TESLIN LAKE CA 60.5 -133.4 782.0 19420901 19430401 749212 99999 SWIFT RIVER CA 60.0 -131.183 880.0 19431006 19460327 749214 99999 SQUANGA LAKE SW CA 60.417 -133.76 872.0 19430822 19440704 749215 99999 RANCHERIA EAST CA 60.083 -130.167 846.0 19430824 19450818 749216 99999 CAR FERRY ROSS RIVER CA 62.183 -131.75 819.0 19440813 19450331 749218 99999 KILAGMIOTAK SE CA 69.283 -133.933 28.0 19480501 19481001 749219 99999 KALTAG ALASKA US AK KAL 64.3 -158.716 48.0 19430701 19450927 749220 99999 EMERALD ISLAND SW US AK 64.9 -154.667 56.0 19430713 19460701 749221 99999 FIRE ISLAND US AK 61.15 -150.233 15.0 19480128 19480411 749222 99999 WISEMAN ALASKA WB US AK WSM 67.433 -150.216 393.0 19450101 19480701 749224 99999 KOYUK ALASKA US AK KKA 64.866 -161.1 13.0 19430501 19450914 749225 99999 QUARTZCREEK/KOUGAROK US AK 65.533 -164.2 76.0 19430914 19431101 749226 99999 BREVIG AIRPORT NE US AK 65.45 -165.767 36.0 19440401 19450825 749228 99999 LAVA LAKE US AK 65.583 -163.833 170.0 19450401 19451122 749229 99999 HUGGINS ISLAND US AK 65.9 -154.667 56.0 19460101 19460925 749230 393 TELLER AIRPORT US AK PATE 65.233 -166.35 89.0 20161005 20170923 749230 99999 TELLER AIRPORT US AK PATE 65.233 -166.35 90.0 19430801 20170922 749231 99999 ST. MATTHEW ISLAND US AK 60.35 -172.7 29.0 19421008 19451014 749233 99999 DEKEMHARE ER 15.033 39.05 1970.0 19430331 19431223 749234 99999 GUSKHARA SOUTHEAST IN 23.467 87.78299999999999 41.0 19431201 19441215 749235 99999 CHAKULIA IN 22.45 86.7 131.0 19421101 19450430 749238 99999 RANIGANJ EAST IN 23.616999999999997 87.2 86.0 19430531 19451229 749239 99999 SHERGHATI NORTHEAST IN 24.6 84.883 149.0 19431130 19440418 749240 99999 MALANDIGHI NORTHWEST IN 23.633000000000003 87.35 94.0 19431231 19441228 749241 99999 KHARAGPUR SOUTHEAST IN 22.3 87.333 41.0 19440103 19450903 749242 99999 BANKADAHA WEST IN 22.967 87.3 79.0 19440229 19450921 749243 99999 PANDAVESWAR SW IN 23.717 87.28299999999999 87.0 19450108 19450930 749244 99999 DOOM-DOOMA IN 27.566999999999997 95.56700000000001 130.0 19430331 19451015 749246 99999 BANSBERA NORTHEAST IN 26.8 92.617 98.0 19431130 19451018 749247 99999 JHANZI WEST IN 26.85 94.43299999999999 92.0 19431231 19440219 749249 99999 HAILAKANDI NORTHWEST IN 24.717 92.53299999999999 25.0 19440216 19440520 749250 99999 MORAN SOUTHWEST IN 27.15 94.9 100.0 19440220 19450228 749251 99999 SADIYA IN 27.85 95.667 130.0 19431231 19440430 749252 99999 DERGAON IN 26.717 93.95 91.0 19440131 19450531 749253 99999 TANAI AIRPORT BM VYTN 26.366999999999997 96.73299999999999 210.3 19440404 19440531 749254 99999 GUMSHEN SOUTHEAST BM 26.55 97.55 1053.0 19440429 19441006 749255 99999 HPAUCHYE SOUTHEAST BM 26.066999999999997 96.71700000000001 246.0 19440521 19450220 749256 99999 SHINGBWIYANG BM 26.683000000000003 96.21700000000001 208.0 19440531 19450831 749257 99999 TINGRING BM 25.8 96.65 187.0 19440602 19450910 749258 99999 SAHMAW BM 25.233 96.78299999999999 179.0 19441031 19450430 749259 99999 MANGSHI CH 24.45 98.583 922.0 19441231 19450828 749260 99999 DHOPACHARI NW BG 22.25 92.083 4.0 19450210 19450430 749261 99999 BAHE BM 23.383000000000003 96.56700000000001 126.0 19450131 19450228 749262 99999 PYINCHAUNG WEST BM 21.4 94.633 125.0 19450211 19450331 749263 99999 KUTKAI NORTHWEST BM 23.467 97.917 1372.0 19450301 19450331 749264 99999 KYI-EIK BM 21.633000000000003 96.03299999999999 77.0 19450401 19450422 749265 99999 KUAKATA SOUTHEAST BG 21.783 90.15 3.0 19450415 19450531 749267 99999 VILLACIDRO SOUTHEAST IT 39.433 8.75 81.0 19431210 19440930 749268 99999 BLIDA ALGERIA AG 36.499 2.8160000000000003 170.0 19430101 19431115 749269 99999 HASSI MESSAOUD NE AG 32.1 6.45 136.0 19430201 19430602 749270 99999 JEDEIDA NORTHWEST TS 36.867 9.9 19.0 19430708 19431026 749271 99999 LE KHROUB ALGERIA AG 36.3 6.7 559.0 19441205 19450131 749272 99999 EL BATHANE WEST TS 36.8 9.883 49.0 19430731 19431026 749273 99999 EL GUERRAH AG 36.133 6.617000000000001 770.0 19430206 19430930 749274 99999 DAWWAR AWLAD GANA NW TS 35.833 8.817 596.0 19430416 19430520 749275 99999 BORJ EL AMRI AIRPORT TS 36.717 9.933 32.0 19430702 19431203 749276 99999 MDAOUROUCH WEST AG 36.133 7.817 932.0 19430414 19430629 749277 99999 MECHTA BOU RZAM S AG 36.083 5.8 923.0 19430813 19431128 749278 99999 ER ROMRI SOUTHWEST AG 35.683 0.183 100.0 19430120 19430630 749279 99999 KASSERINE EAST TS 35.167 8.917 622.0 19430331 19430414 749280 99999 MECHTA MEHBOUB SE AG 36.2 5.9670000000000005 859.0 19430307 19430831 749282 99999 TELERGHMA AG 36.117 6.35 754.0 19430115 19440630 749284 99999 DEPIENNE SOUTHEAST TS 36.45 10.05 136.0 19430228 19431209 749286 99999 LA MARSA TS 36.883 10.333 57.0 19430628 19431130 749287 99999 TUNIS-CARTHAGE EAST TS 36.85 10.25 6.0 19430831 19430930 749288 99999 MAAFRINE SOUTHEAST TS 36.633 10.1 53.0 19430831 19431130 749289 99999 EL DJEM TS 35.333 10.667 110.0 19430815 19430827 749290 99999 AL ASHHAB SOUTHWEST LY 31.866999999999997 24.6 157.0 19431130 19440223 749292 99999 DOW RUD WEST IR 33.467 49.05 1408.0 19431026 19451209 749293 99999 HAMADAN IRAN/CAMP PARKS IR 34.849000000000004 48.533 1727.0 19440928 19450814 749294 99999 DOLOMIEU FR 45.6 5.5 762.0 19440906 19440918 749295 99999 MOBILE UNIT 2 ITALY IT 0.0 19440531 19450131 749297 99999 MASSERIA EPITAFFIO IT 40.95 16.1 437.0 19440318 19450530 749298 99999 PRESENZANO IT 41.367 14.067 198.0 19440301 19440331 749299 99999 TORREMAGGIORE IT 41.683 15.333 170.0 19440618 19450528 749300 99999 MEZZOMONTE IT 41.25 13.083 450.0 19440602 19440606 749301 99999 ANSEDONIA NW IT 42.433 11.267000000000001 19.0 19440622 19440719 749302 99999 GAUDIANO EAST IT 41.1 15.933 226.0 19440702 19450430 749303 99999 CASTELLO GARAGNONE S IT 40.95 16.233 435.0 19441101 19450430 749304 99999 TORTORELLA ITALY/MU 18 IT 0.0 19450331 19450522 749306 99999 SANGA SANGA RP RPMN 5.047 119.743 4.6 19450426 19450809 749307 99999 A.B.WON PAT AIRPORT PS 6.9 134.15 6.0 19441015 19450610 749308 99999 PULAU FANI ID 1.083 131.267 2.0 19441129 19450210 749309 99999 BLACKHORSE BASE VM 10.817 107.21700000000001 250.0 19661231 19690906 749310 99999 PLEI DJERENG /THREE TANGO VM 13.966 107.65 290.0 19661220 19670320 749311 99999 DUC CO FSB VM 13.833 107.68299999999999 402.0 19670331 19671023 749312 99999 EA HLEO VM 13.217 108.23299999999999 610.0 19671112 19671210 749313 99999 DAK TO VM 14.667 107.8 602.0 19671101 19690116 749314 99999 DUC AN VM 15.617 108.4 35.0 19671201 19680229 749315 99999 GUIUAN PHILIPPINES RP 11.033 125.71600000000001 8.0 19450116 19450822 749316 99999 SAIPAN MARIANA IS/KOBLER RM 15.116 145.7 32.0 19450131 19711231 749318 99999 RONGERIK ATOLL RM 11.3 167.483 3.0 19480310 19540301 749319 99999 RONGELAP RM 11.15 166.85 2.0 19580317 19580710 749320 99999 WOTHO RM 10.167 166.0 4.0 19580324 19580710 749321 99999 YANG-CHIEH CH 25.5 103.083 1955.0 19430217 19451031 749322 99999 YUN-NAN-I CH 25.416999999999998 100.73299999999999 1967.0 19430108 19451018 749323 99999 XIQIAO CH 25.0 103.583 1849.0 19440630 19451113 749324 99999 ZHE-SHANG EAST CH 23.75 106.083 162.0 19450123 19450831 749325 99999 LO-PING CH 24.95 104.35 1550.0 19450615 19451009 749327 99999 HSUPU CHINA AAB CH 27.866 110.566 152.0 19450731 19450831 749329 99999 XINGANG CH 29.75 116.133 30.0 19460721 19461002 749330 99999 KADENA SOUTHEAST JA 26.333000000000002 127.78299999999999 75.0 19450430 19460120 749331 99999 KADENA NORTHWEST JA 26.383000000000003 127.75 76.0 19510531 19540223 749333 99999 URASOE-SHI JA 26.25 127.7 25.0 19450725 19450930 749334 99999 OKINAWA RYUKYU IS/BOLO FLD JA 26.4 127.71600000000001 27.0 19450812 19450831 749335 99999 HAMA SOUTH JA 26.5 127.2 9.0 19450630 19450814 749336 99999 CHING-SHUI-PU NORTH CH 30.25 104.03299999999999 481.0 19431231 19461031 749337 99999 LIULIN SOUTHWEST CH 36.516999999999996 109.45 1196.0 19440831 19460331 749338 99999 AO-CHIA-CHANG NORTH CH 31.116999999999997 104.0 500.0 19450131 19450831 749339 99999 QIONGLAI NORTHEAST CH 30.45 103.53299999999999 539.0 19450131 19450228 749340 99999 GUANBA NORTH CH 30.583000000000002 107.833 501.0 19450228 19460430 749341 99999 ERH-LANG-PA NORTH CH 32.967 107.2 518.0 19450228 19451006 749342 99999 SIAN CHINA CH RSIA 34.25 108.916 416.0 19450314 19451031 749344 99999 LANCHOW CHINA CH RLHW 36.0 103.75 1543.0 19451031 19461231 749345 99999 HUA-CHIAO SOUTHEAST CH 30.416999999999998 103.917 486.0 19460430 19460831 749346 99999 LENG-CHI NORTHWEST CH 32.417 111.5 110.0 19450206 19450228 749347 99999 HSIA-KUAN SOUTHEAST CH 32.083 118.75 25.0 19450907 19481119 749348 99999 HANKOW CHINA CH 30.583000000000002 114.25 37.0 19450930 19480228 749350 99999 HANGCHOW CHINA CH 30.233 120.166 8.0 19451022 19460430 749351 99999 CHA-YIN-LU SOUTHWEST CH 31.316999999999997 121.5 6.0 19451031 19470331 749352 99999 PUSAN KOREA/PUSAN WEST AB KS 35.183 128.933 4.0 19500819 19531030 749355 99999 SOKCHORI KOREA KS 38.433 127.3 335.0 19510724 19520921 749356 99999 KAJU-DONG KS 37.8 124.68299999999999 203.0 19510509 19510915 749357 99999 HONGCHON KOREA KS 37.7 127.866 151.0 19510406 19510908 749358 99999 SOCHEONG-DO KS 37.766999999999996 124.73299999999999 0.0 19510323 19510509 749359 99999 SOKSA-RI KS 37.633 128.567 681.0 19510321 19510419 749360 99999 JUNMUJIN KS 37.883 128.817 6.0 19510416 19510517 749361 99999 CHONAN KOREA KS 36.816 127.25 48.0 19510131 19510204 749362 99999 P621 HELIPORT KS 36.2 127.083 6.0 19510607 19510724 749363 99999 R605 KS 37.15 128.25 82.0 19510324 19510404 749364 99999 YONPO AFLD KN 39.783 127.53299999999999 3.0 19501112 19501205 749365 99999 SEOUL-MULLAEDONG KS 37.516999999999996 126.9 12.0 19510321 19510430 749366 99999 YANGYANG KOREA KS 38.066 128.616 6.0 19510602 19510606 749367 99999 R239 KS 38.2 127.2 153.0 19520721 19521203 749368 99999 CHO DO KN 38.55 124.81700000000001 67.0 19520919 19530729 749369 99999 YO DO KN 39.233000000000004 127.617 69.0 19521228 19530612 749370 99999 R238 KS 38.167 127.1 87.0 19530501 19541003 749371 99999 R231 KS 38.033 127.367 159.0 19530501 19561010 749372 99999 R237 KS 38.133 127.3 156.0 19530430 19541004 749373 99999 R313 KS 38.133 127.68299999999999 145.0 19530430 19550329 749374 99999 KUMSAN TEAM 831 KN 38.367 127.617 283.0 19530430 19540219 749375 99999 SOHUI RI TEAM 842 KS 38.333 128.167 320.0 19530501 19530731 749376 99999 P434 HELIPORT KS 38.317 128.517 18.0 19520921 19541107 749378 99999 C316 HELIPORT KS 38.167 127.43299999999999 205.0 19531028 19540408 749379 99999 BANGMI KS 37.867 126.81700000000001 6.0 19531018 19540815 749380 99999 C 330 HELIPORT KS RK80 38.133 127.66799999999999 121.9 19531029 19540407 749383 99999 G 404 KS RK13 38.088 127.98700000000001 199.6 19531019 19540817 749385 99999 KAP YONG TEAM 824 KS 37.833 127.51700000000001 77.0 19541112 19561010 749386 99999 SOSAN KS 36.783 126.45 27.0 19540630 19551224 749388 99999 CHANGGAI GAP KS 36.083 129.567 21.0 19580515 19700930 749390 99999 OTA JA 36.266999999999996 139.417 27.0 19571027 19580430 749391 99999 RIPSAW RANGE JA 40.867 141.36700000000002 2.0 19690815 19710312 749392 99999 KISKA ISLAND US AK 51.983000000000004 177.55 91.0 19430905 19451020 749393 99999 COOPER ISLANDS WEST US AK 52.917 173.167 14.0 19430812 19431031 749394 99999 AMCHITKA ISLAND N US AK 51.65 178.667 307.0 19430422 19431008 749395 99999 BULDIR ISLAND US AK 52.175 175.967 15.0 19431016 19450814 749396 99999 SEMISOPOCHNOI ISLAND US AK 51.917 179.583 30.0 19440229 19440930 749399 99999 IGARAPE-ACU NORTH BR -1.067 -47.617 57.0 19450514 19450920 749400 99999 BOCAIUVA SOUTHEAST BR -17.2 -43.667 828.0 19470406 19470523 749401 99999 LEONE BAY AQ -14.367 -170.783 21.0 19620511 19620729 749402 99999 KAMERI ID -0.95 134.817 5.0 19440705 19450131 749403 99999 SANSAPOR ID -0.5 132.083 0.0 19440812 19450303 749404 99999 MAR NORTH ID -0.35 132.183 4.0 19450312 19450920 749405 99999 DEBOIN MISSION PP -8.067 148.167 107.0 19430418 19440310 749406 99999 NADZAB NEW GUINEA PP AYNZ -6.566 146.733 107.0 19430930 19450810 749407 99999 UKARUMPA PP -6.067 145.917 394.0 19431018 19440917 749408 99999 FORE SOUTH PP -5.667000000000001 145.3 131.0 19431207 19440506 749409 99999 PAIPA SOUTHWEST PP -5.75 145.667 305.0 19431110 19441031 749410 99999 TSILE TSILE PP -6.867000000000001 146.35 150.0 19430831 19431013 749411 99999 KORUNIAT SOUTH PP -2.0 147.35 4.0 19440315 19451016 749413 99999 EMIRAU ISLAND NORTH PP -1.65 149.967 33.0 19440531 19450817 749414 99999 LOS NEGROS ADMRTY IS/MOMOTE S PP -2.05 147.433 8.0 19470331 19480225 749415 99999 WATALUM MISSION PP -9.232999999999999 150.25 0.0 19430511 19430531 749416 99999 GUASAPA SOUTHWEST PP -9.2 152.95 7.0 19430731 19450209 749417 99999 KIRIWINA I TOBRIAND IS/S STRI PP -8.482999999999999 151.05 33.0 19430725 19431030 749419 99999 TOROKINA FLD BOUGAINVILLE IS BP -6.25 155.116 3.0 19440229 19440408 749420 99999 STIRLING ISLAND BP -7.417000000000001 155.583 23.0 19440204 19450126 749422 99999 BOUGAINVILLE AAF BP -6.233 155.11700000000002 40.0 19440408 19450927 749423 99999 BANIKA AAF BP -9.067 159.233 18.0 19440716 19450918 749425 99999 SOPANITOGHA SOUTH BP -9.433 160.183 7.0 19430731 19450519 749429 99999 NUKUFETAU SOUTHEAST TV -8.067 178.38299999999998 2.0 19431216 19440125 749430 99999 AIDELAIDE RIVER SE AS -13.3 131.13299999999998 131.0 19430228 19440821 749432 99999 BATCHELOR FIELD AUSTRALIA AS -13.049000000000001 131.066 107.0 19421231 19430610 749438 99999 IRON RANGE AUSTRALIA AS -12.7 143.3 18.0 19420917 19440930 749439 99999 MAREEBA AS/HOEVETT FIELD AS -17.05 145.4 443.0 19420630 19440630 749440 99999 REID EAST AS -19.767 146.85 122.0 19421012 19430405 749441 99999 TOWNSVILLE AUSTRALIA/GARBUTT AS ABTL -19.249000000000002 146.749 6.0 19421231 19450913 749442 99999 WOODSTOCK AS -19.6 146.833 64.0 19430204 19430930 749443 99999 JACKY JACKY AUSTRALIA/HIGGINS AS -10.933 142.483 14.0 19440930 19441231 749444 99999 FALL RIVER NEW GUINEA/GURNEY PP -10.315999999999999 150.333 27.0 19420801 19450731 749445 99999 ESPIRITU SANTO NH -15.5 167.25 9.0 19421231 19470131 749446 99999 MELE EAST NH -17.683 168.3 20.0 19430228 19441014 749447 99999 SAVU SAU FJ -16.633 178.533 79.0 19430630 19440229 749455 99999 LAKE BUCHANAN WEST AS -21.416999999999998 145.233 396.0 19420921 19421004 749459 99999 DALBY SOUTHEAST AS -27.25 151.417 413.0 19431231 19441211 749462 99999 OUA TOM SOUTHWEST NC -21.816999999999997 165.86700000000002 37.0 19430402 19431229 749463 99999 TARBEVILLE SOUTHEAST NC -21.267 164.917 14.0 19421031 19451115 749467 99999 NORTH PARRAMATTA AS -33.8 151.0 19.0 19420831 19420923 749471 99999 MOBILE WEATHER UNIT NO 01 10 MO 0.0 0.0 0.0 19450401 19450430 749473 99999 SUNSPOT SOLAR OBSV US NM 32.8 -105.81700000000001 2810.0 19480601 19480701 749475 99999 WHITE SANDS NORTH US NM 32.883 -106.35 1206.0 19630402 19741026 749476 99999 HOLTVILLE NAVAL AUX US CA 32.833 -115.26700000000001 17.0 19450301 19460301 749477 99999 SALTON SEA US CA 33.417 -115.833 0.0 19660101 19700101 749479 99999 VANDENBERG CA/SUDDEN RANCH AF US CA 34.583 -120.633 100.0 19690305 19690731 749483 99999 JACKSON CO US GA 34.174 -83.561 289.9 19450201 20170923 749484 395 SOUTH COUNTY AIRPORT OF SANTA CLARA COUNTY US CA KE16 37.082 -121.59700000000001 86.3 20150224 20170923 749484 99999 LORING INTL US ME 46.95 -67.88600000000001 227.4 19450501 20170803 749485 396 ROHNERVILLE AIRPORT US CA KFOT 40.554 -124.133 119.2 20120101 20170924 749485 99999 ROHNERVILLE US CA KFOT 40.554 -124.133 119.5 20110921 20111231 749486 99999 NEVADA CO AIR PARK US CA KGOO 39.224000000000004 -121.00299999999999 960.7 20110921 20170505 749487 99999 SHAWNEE OKLAHOMA NAS US OK -35.35 -96.949 329.0 19450301 19450601 749488 99999 PALESTINE TEXAS WBO US TX 31.75 -95.666 155.0 19480101 19490301 749495 99999 TWENTYNINE PALMS E US CA 34.133 -116.03299999999999 600.0 19420701 19430403 749496 99999 MOGUL US GA 32.833 -83.56700000000001 141.0 19480101 19481201 749497 99999 SALE MOROCCO AAB MO -34.05 -6.766 75.0 19430801 19430827 749498 99999 TANAPAG CQ 15.217 145.75 11.0 19450630 19510531 749499 99999 CERIGNOLA IT 41.266999999999996 15.917 123.0 19431204 19450624 749500 99999 US ARMY POSITION IT 41.233000000000004 15.8 167.0 19440831 19441130 749501 99999 SAN MARCOS EVANGELIS IT 41.033 14.333 40.0 19440910 19470508 749502 99999 FINOCCHIO IT 41.867 12.667 20.0 19440615 19441215 749503 99999 MIGLIACCIARO FR 42.0 9.4 18.0 19441020 19450407 749504 99999 RIONE TRIESTE IT 40.867 14.467 81.0 19440128 19440206 749505 99999 MASSERIA TORRETTA IT 41.183 15.767000000000001 223.0 19440630 19450131 749506 99999 FANDETTA IT 41.417 15.65 69.0 19440630 19450531 749507 99999 PONTEDERA IT 43.65 10.617 11.0 19441130 19450430 749508 99999 VADA EAST IT 43.35 10.482999999999999 14.0 19440901 19440930 749509 99999 HARMON AB GQ 13.517000000000001 144.817 54.0 19450630 19490927 749510 99999 MASSERIA TRENTANGELI IT 41.0 15.867 389.0 19441103 19450424 749511 99999 FIRENZE CENTER IT 43.766999999999996 11.25 67.0 19441001 19450922 749512 99999 MASSERIA FIGURELLA IT 41.6 15.3 97.0 19441031 19450531 749513 99999 LIVORNO IT 43.533 10.25 0.0 19441002 19450430 749514 99999 MASSERIA IL TORO IT 41.3 15.833 91.0 19440726 19450525 749515 99999 ROME ITALY/CIAMPINO AB IT 41.8 12.6 129.0 19441216 19470731 749516 99999 BROOKS BROOK/STP6 US -60.483000000000004 -133.45 804.0 19430801 19450601 749517 99999 NORTH FIELD CQ 15.267000000000001 145.817 47.0 19450731 19450831 749518 99999 CASTELLANA IT 40.917 14.433 27.0 19440321 19450831 749519 99999 SAN GIOVANNI FONTE IT 41.233000000000004 15.8 167.0 19440911 19450524 749520 99999 SOSSENHEIM GM 50.133 8.583 130.0 19460831 19470214 749521 99999 SAN SEVERO IT 41.7 15.433 50.0 19431231 19450524 749522 99999 MASSERIA CANTONE IT 41.55 15.55 62.0 19441018 19450114 749523 99999 LUCERA IT 41.5 15.333 125.0 19440204 19450524 749524 99999 KAGMAN POINT CQ 15.167 145.783 72.0 19450630 19450829 749525 99999 MASSERIA CATENACCIO IT 41.283 15.467 154.0 19440430 19450430 749526 99999 TRE CONI IT 41.75 12.683 374.0 19440607 19440621 749527 99999 VILLA MANZARI IT 41.283 15.717 124.0 19450203 19450519 749528 99999 TORRETTO ITALY IT 41.183 15.765999999999998 223.0 19440901 19450527 749529 99999 OROTE POINT GQ 13.433 144.63299999999998 30.0 19440816 19441031 749530 99999 PRUNELLI CORSICA IT 42.0 9.383 163.0 19440422 19441019 749531 99999 VALCACCIA FR 42.033 9.367 56.0 19440215 19440531 749532 99999 REVINCO FR 42.567 9.45 49.0 19440708 19450518 749533 99999 ORTALE FR 42.6 9.45 16.0 19440806 19440927 749534 99999 FRATTAMAGGIORE ITALY IT 40.883 14.283 43.0 19440229 19440531 749535 99999 QUERCIOLO FR 42.483000000000004 9.5 23.0 19440923 19441227 749536 99999 CASA DALFONSO IT 41.717 15.367 38.0 19431231 19450430 749537 99999 CALETTA IT 43.4 10.4 0.0 19450122 19450521 749538 99999 OBERPFAFFENHOFEN GERMANY AD GM 48.083 11.265999999999998 580.0 19460814 19490731 749539 99999 SERUMI ID -1.2329999999999999 136.2 23.0 19440630 19441001 749540 99999 SALAMAUA PP -7.05 147.05 3.0 19430930 19440123 749541 99999 BROOKS BROOK/STP6 US -60.483000000000004 -133.45 804.0 19450501 19450818 760011 99999 TIJUANA MX 32.533 -116.98299999999999 152.0 19730101 19900219 760013 99999 GENERAL ABELARDO L RODRIGUEZ INTL MX MMTJ 32.541 -116.97 149.0 19900314 20170923 760014 99999 TIJUANA MX 32.55 -117.0 153.0 19940119 19940824 760051 99999 MEXICALI MX 32.633 -115.21700000000001 22.0 19730101 19900219 760053 99999 GENERAL RODOLFO SANCHEZ TABOADA INTL MX MMML 32.631 -115.242 22.6 19900314 20170923 760054 99999 MEXICALI MX 32.633 -115.26700000000001 22.0 19940103 19940824 760400 99999 EJIDO NUEVO LEON BC. MX 32.4 -115.18299999999999 11.0 19911114 20170923 760500 99999 ENSENADA BC MX 31.666999999999998 -116.56700000000001 10.0 19490601 20080131 760550 99999 SAN FELIPE BCN MX 31.033 -114.85 15.0 19810601 20170922 760610 99999 PUERTO PENASCO SON. MX 31.3 -113.55 62.0 19490201 20170923 760620 99999 PUERTO PENASCO MX 31.333000000000002 -113.55 3.0 20050430 20050430 760751 99999 CIUDAD INTL MX 31.633000000000003 -106.43299999999999 1167.0 19730101 19900219 760753 99999 ABRAHAM GONZALEZ INTL MX MMCS 31.636 -106.429 1189.9 19900314 20170923 760754 99999 GENERAL DIV P A ANGEL H CORZO MOLINA MX MMTB 16.74 -93.17299999999999 581.9 19940108 20160526 760801 99999 NOGALES-IN-SONORA MX NOG 31.233 -110.98299999999999 1222.0 19730101 19771215 761130 99999 ALTAR SON. MX 30.717 -111.833 398.0 19490201 20170923 761180 99999 PILARES DE NACOZARI SON. MX 30.366999999999997 -109.68299999999999 1041.0 19490201 20170629 761220 99999 NUEVA CASAS GRANDES CHIH. MX 30.366999999999997 -107.95 1487.0 19490301 20170923 761300 99999 VILLA AHUMADA MX 30.616999999999997 -106.51700000000001 1181.0 19490109 19740709 761510 99999 ISLA GUADALUPE MX 29.17 -118.32 23.0 19490101 20021220 761600 99999 GENERAL IGNACIO P GARCIA INTL MX MMHO 29.096 -111.04799999999999 191.1 19490402 20170923 761601 99999 HERMOSILLO MX 29.066999999999997 -110.98299999999999 211.0 19940103 19940824 761610 99999 HERMOSILLO INTL & MX 29.083000000000002 -110.95 211.0 19730101 19880105 761613 99999 HERMOSILLO INTL MX 29.1 -111.05 187.0 19880105 19910806 762055 99999 SANTA ROSALIA MX 27.3 -112.28299999999999 103.0 19730101 19760806 762200 99999 TEMOSACHIC CHIH. MX 28.95 -107.81700000000001 1932.0 19490101 20170923 762250 99999 CHIHUAHUA CHIH. MX 28.633000000000003 -106.083 1433.0 19520301 20170923 762252 99999 CHIHUAHUA INTL & MX 28.7 -105.96700000000001 1354.0 19730101 19900109 762253 99999 GENERAL R FIERRO VILLALOBOS INTL MX MMCU 28.703000000000003 -105.965 1360.0 19900111 20170923 762254 99999 CHIHUAHUA MX 28.7 -105.98299999999999 1360.0 19940116 19940824 762430 99999 PIEDRAS NEGRAS INTL MX MMPG 28.627 -100.535 274.6 19730103 20170923 762530 99999 CIUDAD OBREGON INTL MX MMCN 27.393 -109.833 62.5 19790701 20170923 762533 99999 SANTA ROSALIA MX 27.316999999999997 -112.31700000000001 75.0 19940131 19940824 762550 99999 GUAYMAS-IN-SONORA MX 27.916999999999998 -110.883 4.0 19520301 19790402 762552 99999 19730101 19731231 762555 99999 GENERAL JOSE MARIA YANEZ INTL MX MMGM 27.969 -110.925 18.0 19750617 20170923 762556 99999 GUAYMAS INTL APT MX 27.967 -110.95 27.0 19940108 19940824 762560 99999 EMPALME SON. MX 27.95 -110.76700000000001 12.0 19770101 20170923 762580 99999 CIUDAD OBREGON SON MX 27.483 -109.917 38.0 19730101 20170923 762582 99999 19730101 19770208 762800 99999 SIERRA MOJADA MX 27.283 -103.667 1398.0 19490101 19511130 762861 99999 NUEVO LAREDO MX 27.433000000000003 -99.56700000000001 141.0 19730101 19900219 762863 99999 QUETZALCOATL INTL MX MMNL 27.444000000000003 -99.57 147.5 19900314 20170923 762864 99999 NUEVO LAREDO INTL MX 27.433000000000003 -99.583 148.0 19940116 19940824 763050 99999 LORETO INTL MX MMLT 25.989 -111.348 10.4 19801018 20170923 763110 99999 CHOIX SIN. MX 26.733 -108.28299999999999 238.0 19760317 20170923 763230 99999 HIDALGO DEL PARRAL CHIH. MX 26.933000000000003 -105.667 1661.0 19780301 20170923 763340 99999 TULANCINGO MX 20.083 -98.367 2181.0 20010817 20110622 763420 99999 MONCLOVA INTL MX MMMV 26.956 -101.47 568.1 19490108 20170923 763425 99999 MULEGE MX MMMG 26.906999999999996 -111.96799999999999 42.7 19730622 20101016 763490 99999 CAMARGO MX 26.316999999999997 -98.833 68.0 19490701 19520101 763501 99999 REYNOSA INTL MX 26.017 -98.23299999999999 39.0 19730101 19900219 763503 99999 GENERAL LUCIO BLANCO INTL MX MMRX 26.009 -98.229 42.4 19900314 20170923 763504 99999 REYNOSA INTL ARPT MX 26.017 -98.25 39.0 19940108 19940824 763610 99999 LOS MOCHIS (CITY) MX 25.8 -109.117 17.0 19730101 19750630 763615 99999 VALLE DEL FUERTE INTL MX MMLM 25.685 -109.081 4.9 19750701 20170923 763616 99999 LOS MOCHIS APT MX 25.683000000000003 -109.1 4.0 19940307 19940824 763730 99999 TEPEHUANES DGO. MX 25.35 -105.75 1967.0 19821001 20170919 763810 99999 LERDO-IN-DURANGO MX 25.533 -103.51700000000001 1140.0 19730112 19770224 763820 99999 TORREON INTL MX MMTC 25.568 -103.411 1124.1 19490101 20170923 763821 99999 TORREJON MX 25.533 -103.46700000000001 1124.0 19940108 19940824 763822 99999 19730101 19731231 763825 99999 TORREON AIRPORT & MX 25.533 -103.45 1150.0 19750618 19910320 763900 99999 PLAN DE GUADALUPE INTL MX MMIO 25.549 -100.929 1456.3 19730101 20170923 763930 99999 MONTERREY N.L. MX 25.733 -100.3 515.0 19730101 20170923 763940 99999 DEL NORTE INTL MX MMAN 25.866 -100.23700000000001 449.9 19730101 20170923 763943 99999 GENERAL MARIANO ESCOBEDO INTL MX MMMY 25.778000000000002 -100.10700000000001 389.5 19900601 20170923 763944 99999 MONTERREY/ESCOBEDO MX 25.767 -100.1 387.0 19870320 19940630 763990 99999 MATAMOROS (CITY) MX 25.866999999999997 -97.51700000000001 12.0 19730103 19780202 763991 99999 MATAMOROS INTL MX 25.767 -97.53299999999999 7.0 19730101 19900219 763993 99999 GENERAL SERVANDO CANALES INTL MX MMMA 25.77 -97.525 7.6 19900314 20170923 763994 99999 MATAMOROS INTL MX 25.767 -97.55 8.0 19940108 19940824 764010 99999 PUERTO CORTES MX 22.467 -111.53299999999999 5.0 19490212 20121002 764015 99999 LORETO & MX 26.0 -111.367 6.0 19730101 19910320 764020 99999 CIUDAD CONSTITUCION BCS MX 25.0 -111.633 48.0 19801011 20170923 764050 99999 LA PAZ BCS MX 24.166999999999998 -110.3 18.0 19520807 20170923 764054 99999 LA PAZ MX 24.066999999999997 -110.383 21.0 19940103 19940824 764055 99999 GENERAL MANUEL MARQUEZ DE LEON INTL MX MMLP 24.073 -110.36200000000001 21.0 19750618 20170923 764056 99999 LOS CABOS INTL MX MMSD 23.151999999999997 -109.721 114.0 19910321 20170923 764057 99999 SAN JOSE DEL CABO MX 23.15 -109.71700000000001 109.0 19940601 19940824 764120 99999 CULIACAN INTL MX MMCL 24.765 -107.475 32.9 19730101 20170923 764121 99999 CULIACAN MX 24.816999999999997 -107.43299999999999 39.0 19940108 19940824 764125 99999 CULIACAN (CITY) & MX 24.816999999999997 -107.4 53.0 19750618 19910806 764230 99999 DURANGO DGO. MX 24.05 -104.6 1872.0 19730101 20170923 764232 99999 19730101 19731231 764235 99999 DURANGO INTL MX MMDO 24.124000000000002 -104.52799999999999 1860.5 19750618 20170923 764236 99999 DURANGO APT MX 24.133000000000003 -104.55 1857.0 19940108 19940824 764580 99999 COLONIA JUAN CARRASCO MAZATLAN SIN. MX 23.2 -106.417 4.0 19730102 20170923 764590 99999 19730101 19750331 764591 99999 MAZATLAN/G.BUELNA I MX 23.15 -106.25 5.0 19750401 19900219 764593 99999 GENERAL RAFAEL BUELNA INTL MX MMMZ 23.160999999999998 -106.266 11.6 19900501 20170923 764594 99999 MAZATLAN/G. RAFAEL MX 23.166999999999998 -106.28299999999999 10.0 19900314 19940630 764710 99999 SOMBRERETE ZAC. MX 23.633000000000003 -103.65 2351.0 19780401 20170923 764900 99999 ISLA PEREZ MX 22.383000000000003 -89.68299999999999 1.5 19730919 20170923 764910 99999 CIUDAD VICTORIA TAMPS. MX 23.733 -99.133 355.0 19490101 20170923 764915 99999 GENERAL PEDRO JOSE MENDEZ INTL MX MMCV 23.704 -98.95700000000001 232.0 19750618 20170923 764916 99999 CIUDAD VICTORIA APT MX 23.717 -98.98299999999999 238.0 19940119 19940824 764990 99999 SOTO LA MARINA TAMPS. MX 23.767 -98.2 21.0 19491101 20170923 765180 99999 HUEJUCAR MX 22.383000000000003 -103.367 1932.0 19730110 19780302 765190 99999 COLOTLAN JAL. MX 22.1 -103.26700000000001 1673.0 19760401 20170923 765250 99999 ZACATECAS ZAC. (LA BUFA ZAC.) MX 22.783 -102.56700000000001 2612.0 19730109 20170923 765254 99999 ZACATECAS MX 22.9 -102.71700000000001 2140.0 19940103 19940824 765255 99999 GENERAL LEOBARDO C RUIZ INTL MX MMZC 22.897 -102.68700000000001 2176.6 19840908 20170923 765260 99999 ZACATECAS ZAC. MX 22.75 -102.5 -999.9 20051211 20140416 765390 99999 PONCIANO ARRIAGA INTL MX MMSP 22.254 -100.931 1839.5 19730101 20170923 765395 99999 SAN LUIS POTOSI MX 22.166999999999998 -101.0 1903.0 19940103 19940824 765411 99999 TAMUIN/VILLA TAMUIN MX 22.05 -98.8 50.0 19730101 19770216 765430 99999 TAMUIN S.L.P. MX 22.0 -98.76700000000001 104.0 19750814 20160419 765480 99999 TAMPICO TAMPS MX 22.2 -97.85 25.0 19730101 20170923 765490 99999 TAMPICO MX 22.283 -97.85 15.0 19730101 20100207 765491 99999 TAMPICO/GEN FJ MINA MX 22.283 -97.85 24.0 19750401 19900219 765493 99999 GENERAL FRANCISCO JAVIER MINA INTL MX MMTM 22.296 -97.866 24.4 19900503 20170923 765494 99999 TAMPICO INTL ARPT MX 22.283 -97.883 24.0 19900315 19940630 765510 99999 ISLAS MARIAS NAY MX 21.616999999999997 -106.55 2.0 19730103 20170621 765560 99999 TEPIC MX MMEP 21.419 -104.84299999999999 920.5 19730112 20170923 765563 99999 TEPIC MX 21.517 -104.917 922.0 19940306 19940824 765700 99999 ISLA LOBOS MX 21.467 -97.2 5.0 19790402 19800920 765710 99999 JESUS TERAN INTL MX MMAS 21.705 -102.318 1862.9 19730101 20170923 765713 99999 AGUASCALIENTES MX 21.883000000000003 -102.31700000000001 1885.0 19940124 19940824 765730 99999 LAGOS DE MORENO JAL. MX 21.35 -101.917 1942.0 19730109 20170923 765750 99999 LEON/SAN CARLOS MX 21.066999999999997 -101.53299999999999 1829.0 19730102 20130205 765752 99999 LEON/SAN CARLOS MX 21.066999999999997 -101.55 1829.0 19730101 19900109 765754 99999 LEON/SAN CARLOS MX LEN 21.066999999999997 -101.55 1829.0 19900111 19900316 765770 99999 GUANAJUATO GTO. MX 21.0 -101.28299999999999 1999.0 19730101 20170923 765773 99999 GUANAJUATO INTL MX MMLO 20.983 -101.48299999999999 1815.4 19900724 20170923 765774 99999 DEL BAJIO/LEON MX 21.0 -101.5 1819.0 19940306 19940824 765800 99999 CAYO ARENAS MX 22.133000000000003 -91.4 3.0 19730101 19830711 765810 99999 RIO VERDE S.L.P. MX 21.933000000000003 -99.98299999999999 983.0 19730101 20170923 765820 99999 GUTIERREZ ZAMORA MX 20.467 -97.083 20.0 19730103 19760108 765825 99999 POZA RICA/AIRPORT MX PZA 20.5 -97.46700000000001 62.0 19730719 19840701 765850 99999 MATLAPA S.L.P. MX 21.316999999999997 -98.81700000000001 132.0 19790701 20170923 765900 99999 CANCUN AIRPORT MX 21.017 -86.867 5.0 19790112 19790112 765905 99999 CANCUN INTL MX 21.017 -86.867 5.0 19730721 19940630 765906 99999 CANCUN INTL MX 21.033 -86.867 6.0 19900501 20111014 765930 99999 PROGRESO YUC. MX 21.3 -89.65 2.0 19730103 20170923 765950 99999 CANCUN INTL MX MMUN 21.037 -86.87700000000001 6.1 19990315 20170923 765990 99999 ISLA MUJERES MX 21.2 -86.71700000000001 7.0 19730104 19750711 766010 99999 PUERTO VALLARTA MX 20.683000000000003 -105.25 6.0 19800611 19880105 766011 99999 PUERTO VALLARTA MX PVR 20.683000000000003 -105.25 6.0 19730101 19800605 766013 99999 LICENCIADO GUSTAVO DIAZ ORDAZ INTL MX MMPR 20.68 -105.25399999999999 7.0 19900501 20170923 766014 99999 PUERTO VALLARTA MX 20.666999999999998 -105.26700000000001 6.0 19880105 19940630 766015 99999 ZAPOPAN MX MMZP 20.756 -103.465 1625.5 19960331 20160526 766110 99999 19490308 19511130 766120 99999 GUADALAJARA JAL. MX 20.666999999999998 -103.383 1551.0 19730101 20170923 766123 99999 GUADALAJARA INTL MX 20.517 -103.333 1528.0 19900314 19940630 766127 99999 TAJIN MX MMPA 20.603 -97.461 151.5 19990114 20170923 766130 99999 GUADALAJARA MX 20.6 -103.383 1526.0 19730101 19800128 766131 99999 GUADALAJARA INTL & MX 20.517 -103.31700000000001 1526.0 19750401 19900219 766133 99999 DON MIGUEL HIDALGO Y COSTILLA INTL MX MMGL 20.522 -103.311 1528.9 19900501 20170923 766134 99999 SAN JOSE DEL CABO & MX 22.666999999999998 -102.55 0.0 19771005 19910320 766250 99999 QUERETARO INTERCONTINENTAL MX MMQT 20.616999999999997 -100.186 1919.0 19730101 20170923 766320 99999 PACHUCA HGO. MX 20.133 -98.75 2435.0 19730101 20170923 766340 99999 TULANCINGO HGO. MX MMTL 20.083 -98.367 2181.0 19730106 20170923 766342 99999 TULANCINGO MX 20.083 -98.367 2181.0 19730101 19900109 766343 99999 TULANCINGO MX 20.083 -98.367 2181.0 19900111 19910320 766390 99999 19730101 19740429 766400 99999 TUXPAN.VER. MX 20.95 -97.4 28.0 19730101 20170923 766405 99999 AZCATLAN MX 20.283 -97.71700000000001 364.0 19730801 19740909 766420 99999 TRIANGULOS REEFS MX 20.967 -92.31700000000001 2.0 19730101 20120113 766421 99999 NAUTLA (RBN) MX 20.2 -96.76700000000001 3.0 19750701 19780311 766430 99999 CAYO ARCAS (ISLAND) MX 20.217 -91.96700000000001 3.0 20020122 20121028 766440 99999 LICENCIADO MANUEL CRESCENCIO REJON INT MX MMMD 20.936999999999998 -89.65799999999999 11.6 19730101 20170923 766443 99999 MERIDA/LICENCIADO MX 20.933000000000003 -89.667 10.0 19900501 19940927 766450 99999 19730101 19730410 766470 99999 VALLADOLID YUC. MX 20.683000000000003 -88.2 27.0 19730103 20170923 766480 99999 COZUMEL INTL MX MMCZ 20.522 -86.926 9.1 19730103 20170923 766483 99999 COZUMEL MX 20.517 -86.93299999999999 5.0 19900314 19910320 766490 99999 COZUMEL (FAM) Q ROC MX 20.517 -86.93299999999999 4.0 19730101 19980630 766491 99999 COZUMEL INTL ARPT & MX 20.517 -86.95 3.0 19750401 19900219 766493 99999 COZUMEL INTL MX 20.517 -86.917 5.0 19900508 20120323 766534 99999 PLAYA DE ORO INTL MX MMZO 19.145 -104.559 9.1 19780420 20170923 766535 99999 MANZANILLO MX 19.15 -104.583 8.0 19940108 19940824 766540 99999 MANZANILLO COL. MX 19.05 -104.31700000000001 3.0 19730102 20170923 766545 99999 MANZANILLO INTL & MX 19.15 -104.56700000000001 5.0 19730101 19810218 766546 99999 LICENCIADO Y GEN IGNACIO LOPEZ RAYON MX MMPN 19.397000000000002 -102.039 1602.6 19730101 20170923 766547 99999 URUAPAN/GEN RAYON MX 19.4 -102.05 1593.0 19730103 19940824 766560 99999 CIUDAD GUZMAN JAL. MX 19.717 -103.46700000000001 1515.0 19730804 20170923 766580 99999 COLIMA MX MMIA 19.277 -103.57700000000001 751.9 19730101 20170923 766581 99999 COLIMA & MX 19.233 -103.73299999999999 494.0 19881223 19890125 766583 99999 COLIMA MX MMIA 19.267 -103.6 723.0 19940306 19940823 766585 99999 COLIMA ARPT MX IMA 19.217 -103.71700000000001 457.0 19730101 19760925 766620 99999 ZAMORA MICH. MX 19.983 -102.31700000000001 1562.0 19740808 20170923 766650 99999 MORELIA MICH. MX 19.7 -101.18299999999999 1913.0 19730103 20170923 766655 99999 GENERAL FRANCISCO J MUJICA INTL MX MMMM 19.85 -101.02600000000001 1838.9 19730101 20170923 766656 99999 MORELIA NEW MX 19.85 -101.05 1833.0 19940108 19940824 766700 99999 FES CUAUTITLAN MX 19.683 -99.18299999999999 2251.0 20070228 20080910 766714 99999 NAME\LOCATION UNKN MX 0.0 0.0 -999.0 19830707 19840630 766724 99999 NAME0LOCATION UNKN MX ZCL 19840320 19840630 766750 99999 TOLUCA MEX. MX 19.283 -99.68299999999999 2720.0 19730101 20170923 766753 99999 LICENCIADO ADOLFO LOPEZ MATEOS INTL MX MMTO 19.337 -99.566 2580.4 19870320 20170923 766754 99999 TOLUCA/JOSE MARIA MX 19.35 -99.583 2576.0 19940127 19940824 766790 99999 AEROP INTERNACIONAL MEXICO D F MX 19.433 -99.133 2235.0 19730101 20130430 766792 99999 19730101 19731231 766793 99999 LICENCIADO BENITO JUAREZ INTL MX MMMX 19.436 -99.072 2229.9 19850719 20170923 766800 99999 MEXICO (CENTRAL) D.F. MX 19.4 -99.18299999999999 2303.0 19730101 20170923 766810 99999 GEOGRAFIA UNAM MX 19.317 -99.18299999999999 2278.0 20070503 20170922 766830 99999 TLAXCALA TLAX. MX 19.317 -98.25 2248.0 19730130 20170923 766850 99999 HERMANOS SERDAN INTL MX MMPB 19.158 -98.37100000000001 2243.6 19730102 20170923 766855 99999 PUEBLA MX 19.033 -98.21700000000001 2166.0 19940623 19940824 766870 99999 JALAPA VER. MX 19.55 -96.917 1389.0 19730101 20170923 766875 99999 LENCERO MX MMJA 19.475 -96.79799999999999 953.1 19750703 19770215 766890 99999 CAYO ARCAS MX 20.217 -92.01700000000001 3.0 19750109 19840702 766900 99999 TRIANGULOS REEFS & MX 20.95 -92.26700000000001 0.0 19730101 19820913 766910 99999 VERACRUZ/GEN JARA MX 19.2 -96.133 14.0 19730101 20050928 766913 99999 GENERAL HERIBERTO JARA INTL MX MMVR 19.146 -96.18700000000001 27.4 19900501 20170923 766920 99999 HACIENDA YLANG YLANG VERACRUZ VER. MX 19.15 -96.117 16.0 19730101 20170923 766950 99999 INGENIERO ALBERTO ACUNA ONGAY INTL MX MMCP 19.817 -90.5 10.4 19730101 20170923 766953 99999 CAMPECHE/IGNACIO MX 19.833 -90.5 10.0 19900314 19940824 766960 99999 19730101 19750630 766961 99999 CAMPECHE/IGNACIO & MX 19.833 -90.51700000000001 9.0 19750618 19900219 766980 99999 FELIPE CARRILLO PUERTO Q ROO MX 19.567 -88.05 10.0 19810101 20170923 767130 99999 CUIDAD DEL CARMEN MX 18.63 -91.83 2.0 20100313 20110118 767230 99999 ISLA SOCORRO COL. MX 18.717 -110.95 35.0 19730101 20090823 767260 99999 GENERAL MARIANO MATAMOROS MX MMCB 18.835 -99.262 1303.6 19801001 20170923 767270 99999 ZACATEPEC MOR MX 18.7 -99.167 995.8 19730104 20170530 767370 99999 ORIZABA VER. MX 18.85 -97.1 1259.0 19730103 20170923 767375 99999 TEHUACAN MX MMHC 18.497 -97.42 1679.1 19730101 19770824 767380 99999 CORDOBA-IN-VERACRUZ MX 18.9 -96.93299999999999 882.7 19730102 20160320 767383 99999 MINATITLAN MX MMMT 18.102999999999998 -94.581 11.0 19940314 20170923 767410 99999 COATZACOALCOS VER MX 18.183 -94.5 16.0 19730103 20170923 767430 99999 VILLAHERMOSA TAB. MX 17.983 -92.93299999999999 16.0 19750814 20170923 767433 99999 C P A CARLOS ROVIROSA INTL MX MMVA 17.983 -92.81700000000001 14.0 19900314 20170923 767434 99999 VILLAHERMOSA MX 18.0 -92.833 13.0 19940630 19940824 767441 99999 VILLAHERMOSA & MX 18.017 -92.95 33.0 19730101 19900219 767460 99999 VILLAHERMOSA MX 18.0 -92.883 -999.0 20020622 20060919 767473 99999 CIUDAD DEL CARMEN MX MMCE 18.65 -91.78299999999999 3.0 19880129 19880303 767490 99999 CIUDAD DEL CARMEN MX 18.65 -91.78299999999999 3.0 19730101 19880105 767493 99999 CIUDAD DEL CARMEN INTL MX MMCE 18.654 -91.79899999999999 3.0 19880303 20170923 767494 99999 CIUDAD DEL CAR MX 18.65 -91.833 2.0 19940108 19940824 767500 99999 CHETUMAL INTL MX MMCM 18.505 -88.32700000000001 11.9 19730101 20170923 767501 99999 CHICHEN ITZA INTL MX MMCT 20.641 -88.446 31.1 20040510 20170923 767502 99999 IXTEPEC MX MMIT 16.449 -95.094 50.0 19730101 20160526 767503 99999 CABO SAN LUCAS MX MMSL 22.948 -109.939 210.0 19940628 20170923 767510 99999 CHETUMAL Q ROO (FAM) MX 19.0 -86.31700000000001 13.0 19901120 20160505 767581 99999 ZIHUATANEJO MX ZIH 17.65 -101.45 6.0 19730101 19800605 767584 99999 IXTAPA ZIHUATANEJO INTL MX MMZH 17.602 -101.461 7.9 19800611 20170923 767585 99999 IXTAPA-ZIHUATANEJO MX 17.6 -101.48299999999999 6.0 19940116 19940824 767620 99999 CHILPANCINGO RO. MX 17.55 -99.5 1265.0 19730101 20170923 767730 99999 HUAJUAPAN DE LEON OAX. MX 17.8 -97.76700000000001 1650.0 19790501 20170923 767750 99999 OAXACA OAX. MX 17.05 -96.71700000000001 1518.0 19500401 20170923 767755 99999 XOXOCOTLAN INTL MX MMOX 17.0 -96.73299999999999 1520.6 19750618 20170923 767756 99999 OAXACA/XOXOCOTLAN MX 16.967 -96.75 1528.0 19940305 19940824 767810 99999 COATZACOALCOS & MX MTT 18.15 -94.417 14.0 19730101 19850401 767981 99999 TEQUESQUITENGO MX TEQ 18.617 -99.25 99.0 19730101 19811215 768050 99999 ACAPULCO GRO MX 16.75 -99.75 3.0 19730101 20170923 768053 99999 ACAPULCO/G. ALVAREZ MX 16.75 -99.75 5.0 19900501 19940927 768055 99999 PINOTEPA NATL MX 16.35 -98.06700000000001 76.0 19730102 19770126 768056 99999 GENERAL JUAN N ALVAREZ INTL MX MMAA 16.757 -99.75399999999999 4.0 19750618 20170923 768230 99999 SAN PEDRO POCHUTALA MX 15.732999999999999 -96.46700000000001 152.0 20080921 20080921 768235 99999 POCHUTALA MX PTL 15.732999999999999 -96.46700000000001 152.0 19730103 19760620 768300 99999 IXTEPEC MX 16.467 -95.1 61.0 19730101 19771201 768330 99999 SALINA CRUZ OAX. MX 16.167 -95.18299999999999 11.0 19730102 20170916 768400 99999 ARRIAGA CHIS. MX 16.233 -93.9 48.0 19730404 20170923 768420 99999 TUXTLA GUTIERREZ MX 16.75 -93.117 536.0 19730105 19760821 768430 99999 FRANCISCO SARABIA MX MMTG 16.77 -93.34100000000001 1051.9 19730101 20170923 768433 99999 TUXTLA GUTIERREZ MX 16.75 -93.133 528.0 19940630 19940824 768435 99999 PALIZADA MX 18.25 -92.083 15.0 19741208 19940920 768450 99999 SN. CRISTOBAL LAS CASAS CHIS. MX 16.75 -92.633 2116.0 19730102 20170923 768480 99999 COMITAN CHIS. MX 16.25 -92.133 1646.0 19730102 20170923 768485 99999 BAHIAS DE HUATULCO INTL MX MMBT 15.775 -96.26299999999999 141.4 19880725 20170923 768486 99999 BAHIAS DE HUATULCO MX 15.783 -96.28299999999999 143.0 19940124 19940824 768550 99999 PUERTO ANGEL OAX. MX 15.683 -96.48299999999999 46.0 19500516 20170923 768556 99999 PUERTO ESCONDIDO INTL MX MMPS 15.877 -97.089 89.6 19880810 20170923 768557 99999 PUERTO ESCONDIDO MX 15.867 -97.1 88.0 19940225 19940824 768560 99999 PUERTO ANGEL OAX. MX 15.667 -96.5 -999.9 19750816 20170923 769030 99999 TAPACHULA CHIS MX 14.917 -92.25 118.0 19730101 20170923 769040 99999 TAPACHULA/AIRPORT MX 14.883 -92.3 110.0 19730101 19880104 769043 99999 TAPACHULA INTL MX MMTP 14.794 -92.37 29.6 19880105 20170923 769045 99999 TAPACHULA INTL ARPT MX 14.8 -92.367 29.0 19931231 19940927 769995 99999 LAZARO CARDENAS MX MMLC 18.002 -102.221 11.9 19730219 19770209 769996 99999 19730401 19740131 769997 99999 PASTEJE MX 19.684 -99.77600000000001 2580.0 19730101 19761028 769998 99999 19730703 19730825 780160 13601 NAVAL ATLANTIC METEROLOGY & OCEANOGRAPHY FACILITY BD TXKF 32.367 -64.683 5.5 19411201 20170923 780160 99999 L F WADE INTL ARPT BD TXKF 32.363 -64.679 4.0 20000101 20071231 780610 99999 WEST END INTL ARPT BF MYGW 26.7 -78.967 4.0 19730101 20060107 780620 99999 GRAND BAHAMA INTL BF MYGF 26.559 -78.696 2.1 19730101 20170923 780630 99999 GRAND BAHAMA BF 26.666999999999998 -78.333 2.0 20040709 20091222 780631 99999 GRAND BAHAMA AUX AF BF MYGM 26.616999999999997 -78.367 2.0 19760101 19810507 780660 99999 GREEN TURTLE CAY ABACO BF 26.75 -77.333 15.0 19730101 20050820 780690 99999 SOUTH BIMINI BINIMI BF 25.7 -79.25 3.0 20090422 20090422 780700 99999 SOUTH BIMINI BF MYBS 25.7 -79.265 3.0 19730101 20021009 780730 99999 NASSAU INTL BF MYNN 25.039 -77.46600000000001 4.9 19730101 20170923 780750 99999 NORTH ELEUTHERA ELEUTHERA BF MYEH 25.483 -76.667 4.0 20070625 20080802 780760 99999 COFFIN HILLS/ELEUTH BF 25.267 -76.3 29.0 20011004 20170416 780770 99999 DUNMORE TOWN HARBOUR IS. ELEUTHERA BF 25.5 -76.633 16.0 19730101 19990818 780810 99999 NASSAU BF 25.083000000000002 -77.367 3.0 20080408 20100401 780830 99999 ANDROSTOWN BF 24.7 -77.767 3.0 20011017 20140119 780850 99999 MANGROVE CAY BF 24.25 -77.65 2.0 19730101 19781030 780860 99999 KEMP'S BAY ANDROS BF 24.083000000000002 -77.55 4.0 19780901 20060111 780870 99999 THE BIGHT CAT ISLAND BF 24.283 -75.417 3.0 19730101 20030902 780880 12716 COCKBURN/SAN SALVAD BF MYSM 24.05 -74.533 7.0 19730101 19990913 780880 99999 SAN SALVADOR BF MYSM 24.063000000000002 -74.524 7.3 20010624 20020424 780910 99999 MOSS TOWN EXUMA BF 23.55 -75.867 3.0 20090422 20090422 780920 99999 GEORGE TOWN BF MYEG 23.467 -75.782 1.5 19730101 20120614 780930 99999 EXUMA INTL BF MYEF 23.563000000000002 -75.878 2.7 20040928 20080619 780940 99999 DEADMAN'S CAY LONG ISLAND BF 23.1 -74.967 9.0 20090421 20090422 780950 99999 CLARENCE TOWN LONG ISLAND BF 23.1 -74.967 9.0 19730101 20140525 781010 99999 DUNCAN TOWN RAGGED ISLAND BF 22.2 -75.733 13.0 19730101 20040428 781030 99999 COLONEL HILL CROOKED ISLAND BF 22.75 -74.233 29.0 19730101 19810227 781040 99999 CHURCH GROVE CROOKED ISLAND BF 22.75 -74.233 29.0 19810101 20020224 781090 99999 ABRAHAM'S BAY MAYAGUANA BF 22.366999999999997 -72.967 3.0 19440605 20050218 781180 12714 TURKS ISLAND TK MBGT 21.45 -71.15 10.0 19440117 19810605 781180 99999 TURKS ISLAND TK MBGT 21.45 -71.15 10.0 20070724 20170906 781200 99999 MATTHEW TOWN INAGUA BF 20.95 -73.65 3.0 20070226 20070227 781210 99999 MATTHEW TOWN BF MYIG 20.975 -73.667 2.4 19730101 20010512 782210 99999 RAFAEL CABRERA CU MUNG 21.835 -82.78399999999999 24.1 19730101 20170328 782215 99999 PLAYA BARACOA CU MUPB 23.033 -82.579 31.1 20070722 20170328 782240 99999 JOSE MARTI INTL CU MUHA 22.989 -82.40899999999999 64.0 19390101 20170923 782250 99999 CASABLANCA CU 23.15 -82.35 51.0 20080721 20100810 782290 99999 JUAN GUALBERTO GOMEZ INTL CU MUVR 23.034000000000002 -81.435 64.0 19730101 20170923 782300 99999 JOVELLANOS CU 22.8 -81.183 25.0 20080721 20121020 782390 99999 CAYO COCO CU 22.533 -78.367 10.0 20080721 20170908 782430 99999 EL YABU CU 22.467 -79.983 116.0 20080721 20170923 782440 99999 JAIME GONZALEZ CU MUCF 22.15 -80.414 31.1 19390101 20170923 782550 99999 IGNACIO AGRAMONTE INTL CU MUCM 21.42 -77.848 125.9 19500101 20170923 782560 99999 MANZANILLO ORIENTE CU MUMZ 20.333 -77.117 60.0 19791207 20161011 782561 99999 JARDINES DEL REY CU MUCC 22.461 -78.328 4.0 20040713 20170908 782570 99999 LAS TUNAS CU 20.95 -76.95 106.0 20080801 20080906 782590 99999 MANZANILLO CU 20.183 -77.15 10.0 20080721 20131008 782591 99999 BAYAMO CU 20.4 -76.617 61.0 19791201 19900219 782593 99999 CARLOS MANUEL DE CESPEDES CU MUBY 20.396 -76.62100000000001 61.9 19300501 20161011 782623 99999 FRANK PAIS INTL CU MUHG 20.785999999999998 -76.315 110.0 19920408 20170923 782624 99999 MANAGUA CU MUMG 22.97 -82.275 114.9 20051218 20151119 782640 99999 ANTONIO MACEO INTL CU MUCU 19.97 -75.835 75.9 19390101 20170923 782650 99999 CABO LURECIA CU 21.066999999999997 -75.617 4.0 20080721 20170923 782670 99999 MARIANA GRAJALES CU MUGT 20.085 -75.158 17.1 19730101 20161011 782680 99999 GUSTAVO RIZO CU MUBA 20.365 -74.506 7.9 19390101 20140924 782684 99999 ORESTES ACOSTA CU MUMO 20.654 -74.922 4.9 19800427 20161011 782700 99999 GUARO CU 20.666999999999998 -75.783 20.0 20080906 20080906 782800 99999 ANTILLA CU 20.833000000000002 -75.717 3.0 19370715 20100313 783100 99999 CABO SAN ANTONIO PINAR DEL RIO CU 21.866999999999997 -84.95 8.0 19490122 20161011 783110 99999 LA BAJADA PINAR DEL RIO CU 21.916999999999998 -84.46700000000001 4.0 19780601 19900331 783120 99999 SANTA LUCIA PINAR DEL RIO CU 22.666999999999998 -83.96700000000001 24.0 20020909 20160113 783130 99999 ISABEL RUBIO PINAR DEL RIO CU 22.166999999999998 -84.1 28.0 19740419 20160113 783134 12857 SAN JULIAN CU MUSJ 22.066999999999997 -84.15 17.1 19361201 19810907 783140 99999 SAN JUAN Y MARTINEZ PINAR DEL RIO CU 22.283 -83.833 30.0 19761001 20160113 783150 99999 PINAR DEL RIO CU 22.416999999999998 -83.68299999999999 37.0 19730101 20161011 783160 99999 LA PALMA PINAR DEL RIO CU 22.767 -83.55 47.0 19761101 20160113 783170 99999 PASO REAL DE SAN DIEGO PINAR DEL RIO CU 22.55 -83.3 44.0 19730101 20160113 783180 99999 BAHIA HONDA PINAR DEL RIO CU 22.916999999999998 -83.167 3.0 19761101 20161011 783190 99999 ARTEMISA LA HABANA CU 22.8 -82.75 42.0 20020618 20160113 783200 99999 GUIRA DE MELENA LA HABANA CU 22.783 -82.51700000000001 10.0 19760302 20160113 783210 99999 LA FE ISLA DE LA JUVENTUD CU 21.733 -82.76700000000001 32.0 19730101 20160113 783220 99999 BATABANO LA HABANA CU 22.717 -82.28299999999999 7.0 20020610 20161011 783230 99999 GUINES LA HABANA CU 22.85 -82.03299999999999 55.0 19730101 20160113 783240 99999 PUNTA DEL ESTE ISLA DE LA JUVENTUD CU 21.55 -82.53299999999999 10.0 19790908 20161011 783250 99999 CASA BLANCA LA HABANA CU 23.166999999999998 -82.35 50.0 19490101 20161011 783260 99999 MATANZAS CU 23.017 -81.517 46.0 19730101 20160113 783270 99999 UNION DE REYES MATANZAS CU 22.767 -81.533 30.0 19790908 20160113 783280 99999 SAN ANTONIO DE LOS BANOS CU MUSA 22.872 -82.509 50.0 20040705 20170328 783284 99999 SAN ANTONIO BANOS CU MUSA 22.883000000000003 -82.5 50.0 19430411 19460516 783290 99999 INDIO HATUEY MATANZAS CU 22.816999999999997 -81.0 19.0 19930718 20160113 783300 99999 JOVELLANOS MATANZAS CU 22.783 -81.183 25.0 20020306 20160113 783310 99999 JAGUEY GRANDE MATANZAS CU 22.633000000000003 -81.267 5.0 20041007 20160113 783320 99999 COLON MATANZAS CU 22.683000000000003 -80.933 35.0 19730101 20160113 783330 99999 PLAYA GIRON MATANZAS CU 22.066999999999997 -81.033 5.0 19730227 20161011 783334 99999 VILO ACUNA INTL CU MUCL 21.616 -81.546 3.0 19830520 20170923 783350 99999 AGUADA DE PASAJEROS CIENFUEGOS CU 22.383000000000003 -80.85 27.0 19730101 20160113 783360 99999 PICO SAN JUAN CIENFUEGOS CU 21.916999999999998 -80.167 1140.0 19990831 19990831 783370 99999 TRINIDAD SANCTI SPIRITUS CU 21.783 -79.983 54.0 19741026 20160113 783380 99999 SAGUA LA GRANDE VILLA CLARA CU 22.816999999999997 -80.083 22.0 19730101 20160113 783390 99999 CAYO COCO CIEGO DE AVILA CU 22.517 -78.45 2.0 19730101 20160113 783400 99999 BAINOA LA HABANA CU 23.033 -81.917 80.0 20041007 20160113 783410 99999 EL JIBARO SANCTI SPIRITUS CU 21.717 -79.217 30.0 20041007 20160113 783420 99999 TOPES DE COLLANTES SANCTI SPIRITUS CU 21.916999999999998 -80.017 771.0 19750328 20160113 783430 99999 EL YABU VILLA CLARA CU 22.433000000000003 -79.983 116.0 20041007 20160113 783440 99999 CANTARRANA CIENFUEGOS CU 21.916999999999998 -80.167 42.0 19490101 20161011 783450 99999 JUCARO CIEGO DE AVILA CU 21.616999999999997 -78.85 1.0 19761001 20161011 783460 99999 MAXIMO GOMEZ CU MUCA 22.026999999999997 -78.79 102.1 19730101 20160113 783465 99999 ABEL SANTAMARIA CU MUSC 22.491999999999997 -79.944 103.0 20050723 20170923 783470 99999 CAMILO CIENFUEGOS CIEGO DE AVILA CU 22.15 -78.75 16.0 19730501 20160113 783480 99999 CAIBARIEN VILLA CLARA CU 22.517 -79.45 6.0 19730101 20161011 783490 99999 SANCTI SPIRITUS SANCTI SPIRITUS CU 21.933000000000003 -79.45 97.0 19730107 20161011 783500 99999 FLORIDA CAMAGUEY CU 21.517 -78.233 58.0 19730101 20160113 783510 99999 SANTA CRUZ DEL SUR CAMAGUEY CU 20.717 -78.0 2.0 19730101 20161011 783520 99999 ESMERALDA CAMAGUEY CU 21.85 -78.117 31.0 19780105 20160113 783530 99999 NUEVITAS CAMAGUEY CU 21.533 -77.25 4.0 19330102 20161011 783540 99999 PALO SECO CAMAGUEY CU 21.133000000000003 -77.317 96.0 19761001 20160113 783550 99999 CAMAGUEY CAMAGUEY CU 21.4 -77.85 122.0 19420701 20161011 783570 99999 HERMANOS AMEIJEIRAS CU MUVT 20.988000000000003 -76.936 100.0 19761101 20161011 783580 99999 PUERTO PADRE LAS TUNAS CU 21.2 -76.617 13.0 19730101 20161011 783590 99999 MANSANILLO GRANMA CU 20.333 -77.133 10.0 20000325 20160113 783600 99999 CABO CRUZ GRANMA CU 19.85 -77.233 10.0 19730101 20161011 783610 99999 JUCARITO GRANMA CU 20.666999999999998 -76.9 12.0 20041007 20160113 783620 99999 LA JIQUIMA HOLGUIN CU 20.933000000000003 -76.533 105.0 19730719 20160113 783630 99999 CONTRAMAESTRE SANTIAGO DE CUBA CU 20.283 -76.25 100.0 19780201 20161011 783640 99999 UNIVERSIDAD SANTIAGO DE CUBA CU 20.05 -75.817 38.0 19730904 20160113 783650 99999 PUNTA LUCRECIA HOLGUIN CU 21.066999999999997 -75.617 4.0 19740716 20161010 783660 99999 GRAN PIEDRA SANTIAGO DE CUBA CU 20.033 -75.633 1226.0 19730101 20160113 783670 11706 GUANTANAMO BAY NAVAL AIR STATION CU MUGM 19.9 -75.15 39.9 19450401 20170925 783680 99999 GUANTANAMO GUANTANAMO CU 20.133 -75.233 55.0 19730620 20160113 783690 99999 PUNTA DE MAISI GUANTANAMO CU 20.25 -74.15 10.0 19490222 20161011 783700 99999 GUARO HOLGUIN CU 20.666999999999998 -75.783 20.0 20041007 20160113 783710 99999 PINARES DE MAYARI HOLGUIN CU 20.483 -75.8 646.0 20041007 20160113 783730 99999 SANTIAGO DE LAS VEGAS CIUDAD HABANA CU 22.967 -82.383 78.0 20041007 20160113 783740 99999 TAPASTE LA HABANA CU 23.017 -82.133 120.0 20041007 20160113 783750 99999 MELENA DEL SUR LA HABANA CU 22.767 -82.133 25.0 20041007 20160113 783760 99999 BAUTA LA HABANA CU 22.967 -82.53299999999999 65.0 20041007 20160113 783770 99999 VEGUITAS GRANMA CU 20.317 -76.883 30.0 20041007 20160113 783780 99999 VELASCO HOLGUIN CU 21.083000000000002 -76.3 35.0 20040729 20160113 783790 99999 LOMA EL MANEY GRANMA CU 19.917 -77.417 900.0 19991129 20160402 783830 99999 CAYMAN BRAC CJ 19.683 -79.883 6.0 19730101 20170504 783840 11813 OWEN ROBERTS AIRPORT CJ MWCR 19.3 -81.367 3.1 19730101 20170923 783840 99999 OWEN ROBERTS AIRPOR CJ MWCR 19.283 -81.35 3.0 20000101 20071231 783841 99999 GERRARD SMITH INTL CJ MWCB 19.687 -79.883 2.4 20040930 20170923 783842 99999 MARCOS A GELABERT I PM 8.967 -79.55 10.0 20050611 20170923 783870 99999 NEGRIL POINT JM 18.25 -78.367 10.0 20010902 20170717 783880 99999 SANGSTER INTL JM MKJS 18.504 -77.913 1.2 19730101 20170923 783970 99999 NORMAN MANLEY INTL JM MKJP 17.936 -76.788 3.0 19411222 20170923 783990 99999 MORANT POINT JM 17.917 -76.183 2.0 19730101 19791022 784090 99999 CAP HAITIEN INTL HA MTCH 19.733 -72.195 3.0 19430801 20170921 784370 99999 PORT-AU-PRINCE (DAMIEN) HA 18.6 -72.283 15.0 19861221 19980303 784390 99999 TOUSSAINT LOUVERTURE INTL HA MTPP 18.58 -72.293 37.2 19370101 20170923 784395 99999 CAMP CANARGUS HA 18.567 -72.317 38.0 19960827 19971212 784510 99999 MONTE CRISTI DR 19.883 -71.65 2.0 20070724 20170922 784570 99999 GREGORIO LUPERON INTL DR MDPP 19.758 -70.57 4.6 19440101 20170923 784575 99999 SAMANA DR MDCY 19.267 -69.75 4.0 20070807 20170923 784580 99999 PUERTO PLATA DR 19.75 -70.55 5.0 19921001 20170923 784600 99999 CIBAO INTL DR MDST 19.406 -70.605 172.2 19730102 20170923 784640 99999 CABRERA DR 19.633 -69.883 14.0 19760710 20170920 784645 99999 COTUI/SAN MIGUEL DR 19.05 -70.15 -999.0 19841119 19880330 784660 99999 ARROYO BARRIL DR 19.2 -69.45 42.0 20021105 20170920 784670 99999 SABANA DE LA MAR DR 19.05 -69.383 10.0 19570901 20170923 784730 99999 BAYAGUANA DR 18.75 -69.633 76.0 20031102 20170129 784780 99999 CABO ENGANO DR 18.617 -69.317 2.0 19550801 20070928 784785 99999 CASA DE CAMPO INTL DR MDLR 18.451 -68.91199999999999 73.2 19991024 20170923 784786 99999 PUNTA CANA DR 18.883 -71.35 0.0 19871006 19880317 784790 99999 PUNTA CANA INTL DR MDPC 18.567 -68.363 14.3 19921001 20170923 784800 99999 JIMANI DR 18.333 -71.85 56.0 20010819 20170801 784820 99999 MARIA MONTEZ INTL DR MDBH 18.250999999999998 -71.12 3.0 19730103 20170923 784840 99999 HERRERA INTL DR MDHE 18.47 -69.969 60.4 19440412 20170825 784850 99999 LAS AMERICAS INTL DR MDSD 18.43 -69.669 18.0 19730102 20170923 784860 99999 SANTO DOMINGO DR 18.433 -69.883 14.0 19431101 20170923 784865 99999 DR JOAQUIN BALAGUER INTL DR MDJB 18.573 -69.986 29.9 20061010 20170923 784880 99999 DE LA ROMANA INTNAL DR 18.45 -68.92 94.0 20060201 20170923 785010 11807 ISLAS DEL CISNE HO MHIC 17.4 -83.93299999999999 11.0 19730101 20060516 785010 99999 ISLAS DEL CISNE HO MHIC 17.407 -83.93299999999999 2.0 20010502 20020812 785140 11603 RAFAEL HERNANDEZ AIRPORT US PR TJBQ 18.498 -67.12899999999999 66.5 20060101 20170920 785140 99999 AQUADILLA/BORINQUEN RQ TJBQ 18.5 -67.133 72.0 19400311 20071231 785141 99999 TRUJILLO HO 15.933 -85.93299999999999 3.0 20040706 20100407 785145 11653 EUGENIO MARIA DE HOSTOS AIRPORT US PR TJMZ 18.254 -67.149 11.6 20060101 20170810 785145 99999 EUGENIO MARIA DE HO RQ TJMZ 18.25 -67.15 9.0 19421101 20070630 785201 99999 PONCE/MERCEDITA RQ 18.017 -66.567 9.0 19410401 19900219 785203 398 MERCEDITA AIRPORT RQ TJPS 18.0 -66.55 9.1 20170523 20170919 785203 99999 MERCEDITA RQ TJPS 18.008 -66.563 8.8 19900314 20170803 785205 99999 PLAYA PORT PONCE RQ X69 17.967 -66.617 3.0 19790608 19830902 785260 11641 LUIS MUNOZ MARIN INTERNATIONAL AP RQ PR TJSJ 18.433 -66.01100000000001 2.7 20160101 20170923 785260 99999 SAN JUAN INTL ARPT RQ TJSJ 18.417 -66.0 4.0 19410617 20150602 785263 11641 LUIS MUNOZ MARIN IN RQ PR TJSJ 18.433 -66.01100000000001 2.4 19960101 20170924 785265 494 FERNANDO LUIS RIBAS DOMINICCI AIRPORT US PR TJIG 18.457 -66.098 3.1 20150227 20170919 785265 99999 FERNANDO LUIS RIBAS DOMINICCI RQ TJIG 18.457 -66.098 3.0 20110223 20150601 785350 11630 NAVAL STATION ROOSEVELT ROADS CEIBA US PR TJNR 18.255 -65.641 10.1 19730101 20170921 785355 99999 CAPE SAN JUAN(CGLS) RQ X93 18.383 -65.617 22.0 19760514 19840115 785356 99999 PT TUNA/MAUNABO RQ X92 17.983 -65.883 22.0 19760514 19861201 785359 99999 SAINT THOMAS (CGS) VQ X70 18.333 -64.917 2.0 19800611 19811002 785430 11640 CYRIL E KING AIRPORT US VI TIST 18.336 -64.98 6.1 19730101 20170921 785433 99999 POINT SALIMAS GJ 12.0 -61.783 12.0 19850405 19910806 785434 99999 BEEF ISLAND VQ 18.45 -64.55 5.0 19800611 19860729 785450 99999 HAM BLUFF LIGHT ST. CROIX RQ 17.767 -64.883 21.0 20041005 20041005 785470 11624 CHRISTIANSTED/ALEX. VQ VI TISX 17.7 -64.813 16.8 19410901 20101231 785474 99999 ANGUILLA VQ 18.2 -63.05 29.0 19920804 19940311 785500 99999 TERRANCE B LETTSOME INTL VI TUPJ 18.445 -64.543 4.6 19810801 20170905 785510 11624 HENRY E ROHLSEN AIRPORT US VI TISX 17.7 -64.813 18.6 20110101 20170920 785510 99999 CHRISTIANSTED HENRY VQ TISX 17.7 -64.783 13.0 20100818 20101231 785830 99999 PHILIP S W GOLDSON INTL BH MZBZ 17.539 -88.30799999999999 4.6 19590503 20170923 785840 99999 BELIZE/LANDIVAR BH 17.517 -88.2 1.0 19510102 20150401 785880 99999 HALF MOON CAYE BH 17.183 -87.5 -999.9 19940201 20121018 785960 99999 HUNTING CAYE BH 16.1 -88.25 -999.9 19940301 20000122 786150 99999 FLORES/SANTA ELENA GT MGFL 16.917 -89.883 115.0 19730101 20170923 786250 99999 POPTUN GT 16.317 -89.417 500.0 19730102 20100727 786260 99999 20030921 20030921 786270 99999 HUEHUETENANGO GT MGHT 15.317 -91.46700000000001 1901.0 19730102 20170923 786290 99999 QUETZALTENANGO GT 14.817 -91.5 950.0 19871002 20140302 786310 99999 COBAN GT MGCB 15.469000000000001 -90.40700000000001 1322.5 19831105 20170923 786311 99999 MUNDO MAYA INTL GT MGTK 16.914 -89.866 130.1 20040510 20160808 786350 99999 LA LIBERTAD GT 16.783 -90.133 180.0 19510101 19541218 786370 99999 PUERTO BARRIOS GT MGPB 15.731 -88.584 10.1 19430711 20170923 786372 99999 ESQUIPULAS GT MGES 14.57 -89.35 965.0 20051113 20170923 786374 99999 CHAMPERICO GT MGCP 14.3 -91.9 11.0 20090601 20151002 786375 99999 PASO CABALLOS GT MGPC 17.267 -90.25 61.0 20110330 20130915 786376 99999 MUNDO MAYA INTL ARPT GT MGMM 16.9 -89.867 117.7 20110922 20170923 786390 99999 RETALHULEU GT MGRT 14.520999999999999 -91.697 199.9 19730101 20170923 786400 99999 GUATEMALA (OBSERVATORIO NACIONAL) GT 14.583 -90.51700000000001 1502.0 20011026 20011026 786410 99999 LA AURORA GT MGGT 14.583 -90.527 1509.4 19420205 20170923 786445 99999 ZACAPA GT MGZA 14.967 -89.53299999999999 190.8 19840921 20170923 786470 99999 SAN JOSE GT MGSJ 13.936 -90.836 8.8 19420813 20170923 786475 99999 QUEZALTENANGO GT MGQZ 14.866 -91.50200000000001 2431.0 19841012 20170923 786490 99999 LA FRAGUA/ZACAPA GT 14.95 -89.53299999999999 470.0 19850307 19890505 786500 99999 ACAJUTLA/SONSONATE ES MSAC 13.567 -89.833 15.0 19620401 20170923 786520 99999 LOS ANDES ES 13.883 -89.65 1770.0 20130918 20130918 786550 99999 SANTA ANA/EL PALMAR ES MSSA 13.97 -89.53 660.0 19770304 20170923 786620 99999 SAN SALVADOR ES 13.717 -89.2 689.0 20040420 20070920 786630 99999 ILOPANGO INTL ES MSSS 13.699000000000002 -89.12 616.0 19510101 20170923 786634 99999 EL SALVADOR INTL ES 13.433 -89.05 30.0 19800423 19870114 786660 99999 EL SALVADOR INTL ES MSLP 13.440999999999999 -89.056 30.8 19870116 20170923 786700 99999 SAN MIGUEL/PAPALON ES MSSM 13.43 -88.12 80.0 19840109 20170923 786720 99999 LA UNION/CPI ES MSLU 13.317 -87.78299999999999 28.0 20021118 20170923 787000 99999 AMAPALA/LOS PELONAS HO MHAM 13.283 -87.667 5.0 19570701 20170923 787001 99999 AMAPALA/LOS PELONAS HO 13.3 -87.633 5.0 19810606 19831102 787010 99999 LA LAGUNA AIRPORT - GUANAJA HO MHNJ 16.445 -85.90700000000001 14.9 19570701 20160801 787013 99999 GUANAJA ISLAND HO 16.467 -86.06700000000001 2.0 19890616 20170923 787014 99999 MAPULACA AIRPORT HO MHLP 14.033 -88.633 51.8 20110626 20140623 787030 99999 JUAN MANUEL GALVEZ INTL HO MHRO 16.317 -86.523 5.5 19900105 20170923 787040 99999 TRUJILLO HONDURAS HO MHTR 15.93 -85.93 3.0 20060616 20170923 787050 99999 GOLOSON INTL HO MHLC 15.742 -86.853 14.9 19730214 20170923 787060 99999 TELA HO MHTE 15.776 -87.476 2.1 19510101 20170923 787070 99999 YORO HO MHYR 15.167 -87.117 670.0 19830812 20170923 787080 99999 LA MESA INTL HO MHLM 15.453 -87.92399999999999 27.7 19570701 20170923 787094 99999 YORO HO 15.133 -87.133 0.0 19830418 19830622 787110 99999 PUERTO LEMPIRA HO MHPL 15.261 -83.781 8.0 19610316 20170923 787140 99999 CATACAMAS HO MHCA 14.9 -85.93299999999999 442.0 19570701 20170923 787170 99999 SANTA ROSA DE COPAN HO MHSR 14.783 -88.78299999999999 1079.0 19570701 20170923 787180 99999 NUEVA OCOTEPEQUE HO 14.433 -89.18299999999999 626.0 19890401 20160127 787185 99999 CORONEL ENRIQUE SOT HO MHSC 14.383 -87.617 628.0 20050114 20080612 787190 99999 LA ESPERANZA HO MHLE 14.333 -88.167 1100.0 19890601 20170923 787200 99999 TONCONTIN INTL HO MHTG 14.061 -87.21700000000001 1004.0 19510101 20170923 787210 99999 SOTO CANO AB HO MHSC 14.382 -87.62100000000001 628.2 20070801 20170923 787240 99999 CHOLUTECA HO MHCH 13.3 -87.18299999999999 48.0 19630703 20170923 787250 99999 CABO GRACIAS A DIOS HO 15.0 -83.167 4.0 19510101 19541231 787300 99999 PUERTO CABEZAS NU MNPC 14.047 -83.387 15.8 19500614 20170923 787310 99999 NANDAIME NU 11.717 -86.05 95.0 20041008 20050907 787320 99999 MASATEPE NU 11.9 -86.15 150.0 20070226 20130802 787330 99999 RIVAS NU MNRS 11.417 -85.833 53.0 19750618 20170923 787340 99999 JINOTEGA NU MNJG 13.083 -85.98299999999999 985.0 19820801 20170923 787350 99999 JUIGALPA NU MNJU 12.1 -85.367 90.0 19730702 20170923 787353 99999 LEON NU MNLN 12.427999999999999 -86.902 100.0 19821019 19830822 787360 99999 POSOLTEGA NU 12.55 -86.98299999999999 80.0 20061106 20061106 787390 99999 CHINANDEGA NU MNCH 12.633 -87.133 53.0 19750618 20170923 787410 99999 MANAGUA INTL NU MNMG 12.140999999999998 -86.16799999999999 59.1 19421001 20170923 787421 99999 PROVIDENCIALES TK MBPV 21.774 -72.266 4.6 20040713 20170923 787440 99999 SAN CARLOS NU 11.133 -84.78299999999999 40.0 20040724 20170911 787450 99999 BLUEFIELDS NU MNBL 11.991 -83.774 6.1 19490301 20170923 787550 99999 NICOYA CS MRNC 10.15 -85.45 120.0 19730501 20030918 787600 99999 PUNTARENAS CS 9.967 -84.833 3.0 19490102 20160123 787605 99999 SAN JOSE/LA SABANA CS 9.933 -84.1 1132.0 19420409 19740821 787606 99999 PASO CANOAS CS 8.967 -83.53299999999999 10.0 19731204 19801112 787613 99999 CHACARITA CS MRCH 9.984 -84.772 2.1 19860918 20020227 787620 99999 JUAN SANTAMARIA INTL CS MROC 9.994 -84.209 920.8 19550704 20170923 787625 99999 TOBIAS BOLANOS INTL CS 9.95 -84.133 1019.0 19760305 20111201 787630 99999 AGROPECURARIA CS MRPT 9.97 -84.82 3.0 19490109 20051103 787640 99999 TOBIAS BOLANOS INTL CS MRPV 9.957 -84.14 994.0 20111105 20170923 787670 99999 LIMON INTL CS MRLM 9.958 -83.022 2.1 19490101 20170923 787720 99999 PALMAR SUR CS MRPM 8.951 -83.469 14.9 19801008 20110511 787740 99999 DANIEL ODUBER QUIROS INTL CS MRLB 10.593 -85.544 82.3 19780111 20170923 787804 99999 SAVANAH GA/HUNTER FLD US GA SVN -32.133 -81.2 13.0 19480101 19481201 787830 99999 ENRIQUE ADOLFO JIMENEZ PM MPEJ 9.357000000000001 -79.867 7.6 19510101 20170404 787833 99999 ENRIQUE ADOLFO JIME PM MPCF 9.367 -79.867 8.0 19820624 19950920 787834 99999 AUGUSTO VERGARA PM MPNU 7.832999999999999 -80.283 21.0 19880303 19910926 787835 99999 EL PORVENIR EAST PM 9.55 -78.95 2.0 19730620 19740429 787838 99999 CAPTAIN MANUEL NINO PM MPCH 9.467 -82.51700000000001 5.0 19730102 20050610 787880 99999 EL PORVENIR PM MPVR 9.567 -78.95 2.0 19441221 20161110 787885 99999 PUERTO OBALDIA PM MPOA 8.667 -77.417 1.0 19750716 20160501 787920 99999 TOCUMEN INTL PM MPTO 9.071 -79.383 41.1 19730101 20170923 787930 99999 ENRIQUE MALEK INTL PM MPDA 8.391 -82.435 27.1 19350101 20170923 787935 99999 BOCAS DEL TORO INTL PM MPBO 9.341000000000001 -82.251 3.0 19730102 20170923 787940 99999 COLON PM 9.35 -79.867 8.0 20051125 20110202 787945 99999 CAP MANUEL NINO INTL PM MPCH 9.459 -82.51700000000001 5.8 20050611 20160904 787950 99999 RUBEN CANTU PM MPSA 8.086 -80.945 82.9 19740101 20170923 787955 99999 PANAMA PACIFICO PM MPPA 8.917 -79.6 13.0 20061010 20170923 787956 99999 ALONSO VALDERRAMA / CHITRE PM MPCE 7.9879999999999995 -80.41 10.1 20080118 20150911 788010 99999 FT SHERMAN (ROCOB) PM MPFS 9.333 -79.983 52.0 19730102 20060102 788060 99999 HOWARD AFB PM 8.917 -79.6 16.0 19411001 20050614 788064 99999 HOWARD AFB PM MPHO 8.917 -79.6 16.0 19800420 19800809 788065 99999 CHIVA-CHIVA PM 9.033 -79.6 27.0 19830516 19851008 788067 99999 MARCOS A. GELABERT PM MPMG 8.982999999999999 -79.517 13.0 19730102 20010921 788070 99999 COROZAL OESTE PM 8.967 -79.567 7.0 20050427 20050427 788071 99999 ALBROOK AFB/BALBOA PM MPLB 8.967 -79.55 9.0 19361001 19710314 788075 99999 TOCUMEN/GEN. OMAR PM 9.083 -79.367 41.0 19730601 19730630 788076 99999 CAP RAMON XATRUCH PM MPLP 8.407 -78.142 9.0 19730102 19950920 788077 99999 SANTIAGO PM 8.083 -80.95 83.0 19730102 19740429 788078 99999 RIO HATO PM MPRH 8.367 -80.117 32.0 19390117 20060609 788079 99999 JAQUE PM MPJE 7.517 -78.15 9.0 19430813 20160501 788080 99999 ALBROOK PM MPAL 8.982999999999999 -79.55 66.0 20050809 20050812 788250 99999 CLIPPERTON 10.3 -109.21700000000001 -999.9 20050319 20160303 788460 99999 ANGUILLA AV 18.2 -63.05 29.0 19870302 20170923 788461 99999 WALLBLAKE AV TQPF 18.205 -63.055 38.7 20040713 20170923 788550 99999 ROSEAU DO TDPR 15.3 -61.4 72.0 20070822 20170429 788564 99999 BLACKBURNE/PLYMOUTH MH TRPM 16.75 -62.167 12.0 19810904 19970625 788570 99999 BASSETERRE SC 17.283 -62.733000000000004 9.0 19490101 19960607 788580 99999 ROBERT L BRADSHAW SC TKPK 17.311 -62.718999999999994 51.8 19730101 20170923 788590 99999 VANCE WINKWORTH AMORY INTL SC TKPN 17.206 -62.59 4.3 19811101 20170923 788610 99999 COOLIDGE FIELD ANTIGUA (AUX.AFB) AC 17.117 -61.783 10.0 19411101 20070818 788620 99999 V C BIRD INTL AC TAPA 17.137 -61.793 18.9 19730101 20170923 788625 99999 JOHN A OSBORNE AIRPORT MH TRPG 16.783 -62.193000000000005 168.0 20091009 20170905 788660 399 PRINCESS JULIANA INTERNATIONAL AIRPORT NT TNCM 18.046 -63.115 4.3 20150415 20170923 788660 99999 PRINCESS JULIANA INTL NT TNCM 18.041 -63.108999999999995 4.3 19580101 20150602 788730 99999 F D ROOSEVELT NT TNCE 17.496 -62.979 39.3 19510205 20170919 788900 99999 LA DESIRADE GP 16.333 -61.0 33.0 19510101 20101003 788910 99999 LE MOULE RADAR GP 16.317 -61.35 25.0 20040531 20050412 788940 99999 GUSTAVIA/ST.BARTHEL GP TFFJ 17.9 -62.85 52.0 19510101 20060614 788970 401 POINTE A PITRE INTERNATIONAL AIRPORT GP TFFR 16.267 -61.6 8.2 20150317 20170923 788970 99999 LE RAIZET GP TFFR 16.265 -61.532 11.0 19500701 20150602 789043 99999 BOGUS DOMINICAN DO 19880105 19880812 789050 402 MELVILLE HALL AIRPORT DO TDPD 15.533 -61.3 14.0 20170519 20170918 789050 99999 MELVILLE HALL DO TDPD 15.547 -61.3 22.3 19730810 20170803 789060 403 CANEFIELD AIRPORT DO TDCF 15.333 -61.383 5.2 20130101 20170803 789060 99999 CANEFIELD DO TDCF 15.337 -61.391999999999996 4.0 19860602 20170918 789070 99999 ROSEAU DO TDPR 15.3 -61.4 72.0 19730101 20060310 789220 99999 TRINITE CARAVELLE MB 14.767000000000001 -60.883 34.0 19730901 20170830 789240 99999 LE DIAMANT RADAR MB 14.5 -61.016999999999996 377.0 20040928 20041109 789250 404 MARTINIQUE CESAIRE INTERNATIONAL AIRPORT MB TFFF 14.6 -61.0 7.0 20130101 20170923 789250 99999 LE LAMENTIN MB TFFF 14.591 -61.003 4.9 19510601 20170922 789460 99999 CASTRIES ST 14.033 -61.016999999999996 55.0 19490101 20011123 789470 405 GEORGE F L CHARLES AIRPORT ST TLPC 14.017000000000001 -61.0 2.1 20130101 20170923 789470 99999 GEORGE F L CHARLES ST TLPC 14.02 -60.993 6.7 19730108 20170922 789480 406 HEWANORRA INTERNATIONAL AIRPORT ST TLPL 13.75 -60.95 10.1 20130101 20170923 789480 99999 HEWANORRA INTL ST TLPL 13.732999999999999 -60.953 4.3 19410808 20121231 789490 99999 J F MITCHELL VC TVSB 12.988 -61.262 4.6 20060530 20141023 789495 99999 UNION ISLAND VC TVSU 13.083 -61.0 3.0 20070402 20120225 789500 99999 CANOUAN VC TVSC 12.699000000000002 -61.342 3.4 20091205 20170120 789505 99999 MUSTIQUE VC TVSM 12.888 -61.18 2.4 20070702 20140710 789510 99999 E T JOSHUA VC TVSV 13.144 -61.211000000000006 20.1 19750808 20170215 789530 99999 19490101 19541201 789540 408 GRANTLEY ADAMS INTERNATIONAL AIRPORT BB TBPB 13.067 -59.483000000000004 52.1 20170519 20170923 789540 99999 GRANTLEY ADAMS INTL BB TBPB 13.075 -59.492 51.5 19430917 20170922 789543 99999 BRIDGETOWN (CITY) BB TBPO 13.1 -59.617 50.0 19850402 20001214 789550 99999 CARIBBEAN METEOROLOGICAL INSTITUTE BB 13.15 -59.617 113.0 19730201 20040914 789560 99999 PEARLS AIRPORT GJ 12.15 -61.617 6.0 19730103 20050807 789580 409 MAURICE BISHOP INTERNATIONAL AIRPORT GJ TGPY 12.0 -61.783 7.0 20130101 20150602 789580 99999 POINT SALINES INTL GJ TGPY 12.004000000000001 -61.786 12.5 19850701 20170923 789613 410 ARTHUR NAPOLEON RAYMOND ROBINSON INTERNATIONAL AIRPORT TD TTCP 11.15 -60.833 12.2 20130101 20170923 789613 99999 CROWN POINT TD 11.15 -60.833 11.0 19880105 20121231 789620 99999 CROWN POINT AIRPORT TOBAGO TD TTPT 11.15 -60.833 6.0 19730101 20130905 789700 11634 PIARCO INTL AP TD TTPP 10.583 -61.35 12.2 20130101 20170923 789700 99999 PIARCO TD TTPP 10.595 -61.336999999999996 17.7 19410715 20121231 789820 411 QUEEN BEATRIX INTERNATIONAL AIRPORT AA TNCA 12.5 -70.017 18.3 20150324 20170923 789820 99999 REINA BEATRIX INTL AA TNCA 12.501 -70.015 18.3 19421009 20150602 789880 99999 HATO NT TNCC 12.189 -68.96 8.8 19420901 20170923 789900 413 FLAMINGO INTERNATIONAL AIRPORT NT TNCB 12.15 -68.283 7.0 20150602 20170923 789900 99999 FLAMINGO NT TNCB 12.130999999999998 -68.26899999999999 6.1 19610426 20150602 789940 99999 BOGUS CARIBBEAN 19850824 20050224 800000 99999 BOGUS COLOMBIAN CO 0.0 0.0 -999.0 19830601 20050907 800010 99999 GUSTAVO ROJAS PINILLA CO SKSP 12.584000000000001 -81.711 5.8 19650101 20170923 800011 99999 EDUARDO FALLA SOLANO CO SKSV 2.1519999999999997 -74.766 280.4 20080504 20160430 800020 99999 EL EMBRUJO CO SKPV 13.357000000000001 -81.358 3.0 19781226 20170923 800050 99999 CAYOS ALBURQUERQUE? CO 0.0 0.0 -999.0 19830701 20010911 800070 99999 CAYOS E-SE(?) CO 0.0 0.0 -999.0 19830702 20020606 800080 99999 SANTA MARTA(?) CO 0.0 0.0 -999.0 19830701 20040509 800090 99999 SIMON BOLIVAR CO SKSM 11.12 -74.23100000000001 6.7 19520606 20170923 800220 99999 RAFAEL NUNEZ CO SKCG 10.442 -75.513 1.2 19490324 20170923 800280 99999 ERNESTO CORTISSOZ CO SKBQ 10.89 -74.781 29.9 19410501 20170923 800350 99999 ALMIRANTE PADILLA CO SKRH 11.526 -72.926 13.1 19730101 20170923 800360 99999 ALFONSO LOPEZ PUMAREJO CO SKVP 10.435 -73.25 147.2 19681004 20170923 800440 99999 COROZAL/LAS BRUJAS CO 9.333 -75.283 81.0 19500101 20120313 800480 99999 BARACOA CO SKMG 9.285 -74.846 54.3 19651120 19850103 800620 99999 TURBO/GONZALO MEJIA CO 8.117 -76.733 1.0 19490103 19840511 800630 99999 LOS GARZONES CO SKMR 8.824 -75.82600000000001 11.0 19500101 20170923 800700 99999 SAN MARC S CO 9.65 -74.833 41.1 19490412 19750702 800740 99999 EL BANCO/LAS FLORES CO 9.067 -73.983 34.0 19670508 19890921 800770 99999 OCANA/AGUAS CLARAS CO 8.317 -73.367 1435.0 19730201 20120313 800810 99999 ALTO CURICHE CO 7.05 -76.35 301.1 19670701 19690611 800840 99999 ANTONIO ROLDAN BETANCOURT CO SKLC 7.812 -76.71600000000001 14.0 19800327 20170923 800880 99999 ZARAGOZA CO 7.4670000000000005 -74.883 79.0 19500104 19521231 800890 99999 OTU CO SKOT 7.01 -74.715 609.6 19500101 20100806 800910 99999 YARIGUIES CO SKEJ 7.024 -73.807 125.6 19500101 20170923 800930 99999 BUCARAHALGA CO 7.1 -72.8 938.8 19500102 19750409 800940 99999 PALONEGRO CO SKBG 7.127000000000001 -73.185 1187.8 19750401 20170923 800970 99999 CAMILO DAZA CO SKCC 7.928 -72.512 334.1 19500101 20170923 800990 99999 SANTIAGO PEREZ CO SKUC 7.069 -70.737 128.0 19500101 20170923 801000 99999 BAHIA SOLANO / JOSE MUTIS CO 6.183 -77.4 24.0 19810101 20060323 801005 99999 MELGAR AB CO SKME 4.216 -74.635 313.3 20140424 20140923 801100 99999 OLAYA HERRERA CO SKMD 6.22 -75.59100000000001 1505.7 19490105 20170923 801103 99999 BAHIA SOLAND CHOCO CO MCBS 6.183 -77.4 24.0 19820707 19840226 801120 99999 JOSE MARIA CORDOVA CO SKRG 6.165 -75.423 2142.1 19851201 20170923 801140 99999 ANALEI CO 6.917000000000001 -74.933 1392.9 19500101 19521231 801320 99999 TAME/TAME CO 6.45 -71.75 350.0 19800301 20111011 801390 99999 PUERTO CARRENO CO SKPC 6.185 -67.493 53.9 19790409 20170923 801430 99999 CONDOTO/MANDINGA CO 5.083 -76.7 72.0 20020526 20020526 801440 99999 EL CARANO CO SKUI 5.691 -76.641 62.2 19490103 20170923 801480 99999 LA PLATA SOUTHEAST CO 5.033 -75.667 1030.0 19730101 19740517 801481 99999 MANIZALES/LA NUBIA& CO SKMZ 5.033 -75.467 2080.0 19820102 19830702 801490 99999 LA NUBIA CO SKMZ 5.03 -75.465 2094.3 19680104 20170923 801540 99999 MARIQUITA CO SKQU 5.2170000000000005 -74.883 467.0 20100619 20170702 801560 99999 PALANQUERO/GERMAN O CO MCPQ 5.483 -74.65 172.0 19630105 19810508 801580 99999 PERICO SOUTH CO 5.25 -74.733 183.0 19500104 19510526 801750 99999 TRINIDAD/TRINIDAD CO 5.433 -71.65 217.0 19800312 19830327 801753 99999 TRINIDAD CO 5.433 -71.667 198.0 19820625 19831025 801755 99999 RIONEGRO/JOSE MARI& CO 19860110 19861130 802030 99999 TULUA/FARFAN CO 4.1 -76.233 955.0 19500322 19810123 802090 99999 CANTAGU CO 4.7669999999999995 -74.067 900.1 19490103 19500804 802100 99999 MATECANA CO SKPE 4.813 -75.74 1346.0 19500101 20170923 802110 99999 EL EDEN CO SKAR 4.453 -75.766 1216.2 19500101 20170923 802130 99999 EL PASO/LA LINEA CO MCEP 4.5169999999999995 -75.517 3264.0 19630103 19801031 802140 99999 PERALES CO SKIB 4.422 -75.133 949.1 19730101 20170923 802190 99999 GIRARDOT/SANTIAGO VILLA CO 4.283 -74.8 286.0 19630103 20130220 802220 99999 ELDORADO INTL CO SKBO 4.702 -74.14699999999999 2548.4 19410301 20170923 802222 99999 JOSE CELESTINO MUTIS CO SKBS 6.202999999999999 -77.395 24.4 20080504 20170702 802223 99999 GUAYMARAL CO SKGY 4.812 -74.065 2557.3 20080504 20170702 802225 99999 LOS COLONIZADORES CO SKSA 6.95 -71.85 213.0 20080504 20170702 802226 99999 EL YOPAL CO SKYP 5.319 -72.384 313.3 20080504 20170822 802227 99999 SANTA ANA CO SKGO 4.758 -75.956 908.0 20100619 20170702 802340 99999 VANGUARDIA CO SKVV 4.168 -73.61399999999999 424.9 19500101 20170923 802410 99999 LAS GAVIOTAS CO 4.55 -70.917 171.0 19730518 20120115 802520 99999 GERARDO TOBAR LOPEZ CO SKBU 3.82 -76.99 14.6 19330103 20170212 802590 99999 ALFONSO BONILLA ARAGON INTL CO SKCL 3.543 -76.382 963.8 19490103 20170923 803000 99999 GUAPI CO 2.583 -77.9 54.0 19800301 20130404 803080 99999 GUILLERMO LEON VALENCIA CO SKPP 2.454 -76.609 1733.4 19490513 20170716 803150 99999 BENITO SALAS CO SKNV 2.95 -75.294 446.2 19640909 20170923 803180 99999 SAN VICENTE DEL CAGUAN. CO 2.15 -74.8 300.0 19800301 19840508 803220 99999 JORGE E GONZALEZ TORRES CO SKSJ 2.58 -72.639 184.4 19800803 20170702 803360 99999 TUMACO/LA FLORIDA CO 1.817 -78.75 3.0 19360916 20130131 803370 99999 TUMACO * CO 1.85 -78.767 -999.9 19741008 20021029 803390 99999 LA PINTADA SOUTHWEST CO 5.733 -75.617 915.0 19390401 19420831 803410 99999 DOS RIOS CO 1.95 -76.817 584.6 19380601 19521011 803420 99999 ANTONIO NARINO CO SKPS 1.393 -77.291 1813.9 19610102 20170923 803460 99999 PITALITO CO 1.867 -76.05 1320.0 19800401 20030901 803540 99999 FLORENCIA/CAPITOLIO CO SKFL 1.6 -75.533 244.0 19661201 20170716 803610 99999 FABIO ALBERTO LEON BENTLEY CO SKMU 1.254 -70.234 207.3 19500104 20170702 803700 99999 SAN LUIS CO SKIP 0.862 -77.672 2976.4 19490103 20170923 803720 99999 TRES DE MAYO CO SKAS 0.505 -76.501 248.4 19730101 20170616 803770 99999 20011116 20030625 803850 99999 PUERTO LEGUIZAMO CO -0.2 -74.767 147.0 19810101 19820504 803980 99999 ALFREDO VASQUEZ COBO CO SKLT -4.1930000000000005 -69.943 84.4 19670601 20170923 804000 99999 ISLA DE AVES (BASE CIENTIFICA NAVAL S. B) VE 15.7 -63.633 8.0 19800502 20100530 804020 99999 BOGUS VENEZUELAN VE 19490101 20011224 804025 99999 CAPITAN MANUEL RIOS GUARICO AIRBASE VE SVCZ 9.372 -66.923 160.0 20040908 20160823 804030 99999 JOSE LEONARDO CHIRINOS VE SVCR 11.415 -69.681 15.8 19500106 20170920 804043 99999 JOSEFA CAMEJO VE SVJC 11.780999999999999 -70.15100000000001 22.9 19900424 20170920 804050 99999 LA ORCHILA VE SVLO 11.809000000000001 -66.179 1.5 19590101 20160909 804070 99999 LA CHINITA INTL VE SVMC 10.558 -71.72800000000001 71.6 19500101 20170923 804100 99999 BARQUISIMETO INTL VE SVBM 10.043 -69.359 622.4 19500106 20170923 804103 99999 SUB TENIENTE NESTOR ARIAS VE SVSP 10.279000000000002 -68.755 232.0 19900724 20170810 804105 99999 CANAIMA VE SVCN 6.232 -62.854 442.0 20110326 20150910 804120 99999 GENERAL BARTOLOME SALOM INTL VE SVPC 10.481 -68.07300000000001 9.8 19620801 20161214 804130 99999 MARISCAL SUCRE VE SVBS 10.25 -67.649 407.8 19500101 20161007 804143 99999 OSCAR MACHADO ZULOAGA VE SVCS 10.287 -66.816 653.8 19900424 20071204 804150 99999 SIMON BOLIVAR INTL VE SVMI 10.603 -66.991 71.6 19730101 20170923 804160 99999 GENERALISIMO FRANCISCO DE MIRANDA AB VE SVFM 10.485 -66.844 856.0 19730206 20161024 804165 99999 CARACAS/LA CARLOTA& VE 10.5 -66.883 835.0 19760201 19830322 804173 99999 METROPOLITANO VE SVMP 10.133 -66.788 175.0 19900424 20070220 804190 99999 GENERAL JOSE ANTONIO ANZOATEGUI INTL VE SVBC 10.107000000000001 -64.689 7.9 19730207 20170921 804200 99999 ANTONIO JOSE DE SUCRE VE SVCU 10.45 -64.13 4.3 19840701 20161024 804203 99999 HIGUEROTE VE SVHG 10.462 -66.093 3.0 19900724 20090629 804210 99999 PORLAMAR (AEROPUERTO INT DEL CARIBE) VE 10.917 -63.967 24.0 19750807 20161007 804214 99999 DEL CARIBE INTL GEN SANTIAGO MARINO VE SVMG 10.913 -63.967 22.6 19800514 20170923 804215 99999 19750917 19751030 804223 99999 GENERAL JOSE FRANCISCO BERMUDEZ VE SVCP 10.66 -63.262 10.1 19900424 20131030 804230 99999 GUIRIA VE SVGI 10.574000000000002 -62.313 12.8 19730212 20161007 804233 99999 ZIM VALENCIA VE 10.15 -67.933 430.0 19900424 19900911 804235 99999 EL LIBERTADOR AB VE SVBL 10.183 -67.557 442.0 20120204 20120204 804250 99999 MENE GRANDE VE SVMN 9.817 -70.933 28.0 19730206 20161024 804255 99999 BOGUS VENEZUELAN VE MVSD 0.0 0.0 -999.0 19841118 19841119 804260 99999 DR ANTONIO NICOLAS BRICENO VE SVVL 9.34 -70.584 627.9 19821001 20161007 804270 99999 OSWALDO GUEVARA MUJICA VE SVAC 9.552999999999999 -69.238 195.1 19730226 20161024 804280 99999 GUANARE VE SVGU 9.027000000000001 -69.755 184.7 19730319 20161024 804310 99999 SAN JUAN DE LOS MORROS VE SVJM 9.907 -67.38 427.9 19861201 20161007 804320 99999 CARRIZAL VE 9.417 -66.917 160.0 19810601 20160819 804333 99999 VALLE DE LA PASCUA VE 9.232999999999999 -66.0 125.0 19900424 19910304 804340 99999 VALLE DE LA PASCUA VE SVVP 9.222000000000001 -65.994 125.0 19910321 20161006 804350 99999 MATURIN VE SVMT 9.749 -63.153 68.3 19730206 20161024 804370 99999 EL VIGIA VE 8.633 -71.65 103.0 19920901 20161005 804380 99999 ALBERTO CARNEVALLI VE SVMD 8.582 -71.161 1526.1 19730206 20170917 804400 99999 BARINAS VE SVBI 8.62 -70.221 203.0 19881101 20161024 804403 99999 JUAN PABLO PEREZ ALFONSO VE SVVG 8.624 -71.673 69.2 19900424 20170920 804413 99999 SAN TOME VE SVST 8.945 -64.15100000000001 262.4 19900424 20150929 804420 99999 CALABOZO VE SVCL 8.925 -67.417 100.0 19900918 20160820 804440 99999 CIUDAD BOLIVAR VE SVCB 8.122 -63.537 60.0 19730212 20160905 804453 99999 LA FRIA VE SVLF 8.238999999999999 -72.271 93.0 19900424 20170920 804463 99999 GENERAL MANUEL CARLOS PIAR VE SVPR 8.289 -62.76 143.9 19900424 20160405 804470 99999 SAN ANTONIO DEL TACHIRA VE SVSA 7.841 -72.44 399.9 19730212 20170922 804480 99999 GUASDUALITO VE SVGD 7.211 -70.756 129.8 19740301 20161024 804500 99999 SAN FERNANDO DE APURE VE SVSR 7.882999999999999 -67.444 46.9 19730207 20161231 804530 99999 TUMEREMO VE SVTM 7.249 -61.528999999999996 104.9 19730207 20141112 804570 99999 CASIQUE ARAMARE VE SVPA 5.62 -67.60600000000001 74.7 19730212 20161007 804620 99999 SANTA ELENA DE UAIREN VE SVSE 4.555 -61.145 895.8 19730226 20160709 804625 99999 19730512 19740303 804653 99999 PARAMILLO VE SVPM 7.801 -72.203 1010.1 19900424 20170920 804720 99999 ARTURO MICHELENA INTL VE SVVA 10.15 -67.928 430.1 19900913 20170923 804750 99999 MAYOR BUENAVENTURA VIVAS VE SVSO 7.565 -72.035 330.1 19820703 20161003 804760 99999 LA CANADA VE 10.517000000000001 -71.65 26.0 19831005 20161005 804763 99999 BARINAS & VE 8.617 -70.217 203.0 19900724 19900911 804773 99999 SANTA BARBARA DEL ZULIA VE SVSZ 8.974 -71.943 9.8 19900424 20160608 804780 99999 TEMBLADOR (PRIVATE) VE SVTR 9.017000000000001 -62.617 30.0 19821101 20151201 804790 99999 PALMICHAL VE 10.3 -68.233 1000.0 19920201 20150707 810010 99999 GEORGETOWN GY SYGT 6.8 -58.15 2.0 19410818 20170923 810020 10502 TIMEHRI/CHEDDI JAGA GY SYCJ 6.5 -58.25 30.0 19730101 20170923 810020 99999 CHEDDI JAGAN INTL GY SYCJ 6.499 -58.254 29.0 20000101 20071231 810025 99999 OGLE GY SYGO 6.8 -58.1 1.0 20041124 20160713 810030 99999 EUGENE F CORREIA INTL GY SYEC 6.817 -58.117 0.6 20160727 20170923 810050 99999 KAMARANG GY 5.882999999999999 -60.5 494.0 19730101 20170922 810060 99999 LETHEM GY 3.367 -59.8 82.0 19730101 20170922 810100 99999 EBINI GY 5.567 -57.783 29.0 19730402 20160726 810580 99999 NEW AMSTERDAM GY 6.25 -57.3 1.0 19860803 20170922 810800 99999 KAIETEUR ARPT GY SYKA 5.183 -59.5 456.9 19780901 20170810 811000 99999 MABARUMA GY 8.2 -59.783 50.0 19730101 20170920 812000 99999 ZORG EN HOOP NS SMZO 5.811 -55.191 10.0 19730410 20170923 812020 99999 NICKERIE NS SMNI 5.95 -57.03 2.0 19730416 20170923 812050 99999 CORONIE NS 5.85 -56.317 3.0 19730617 19790824 812060 99999 MOENGO NS 5.617000000000001 -54.4 12.0 19791105 19791119 812080 99999 ALBINA NS SMBN 5.5 -54.05 3.0 19740809 19810709 812090 99999 STOELMANSEILAND NS 4.35 -54.417 52.0 19730617 20170919 812250 99999 JOHAN A PENGEL INTL NS SMJP 5.452999999999999 -55.188 18.0 19420901 20170923 812253 99999 JOHAN A PENGEL INTL NS 5.45 -55.183 18.0 19910418 20100828 812500 99999 TAFELBERG NS 3.783 -56.15 323.0 19730730 20120212 812510 99999 SIPALIWINI NS 2.033 -56.117 265.0 19730512 20130611 812520 99999 KAYSERBERG NS 3.1 -56.483000000000004 210.0 20030216 20040117 812530 99999 COEROENI NS 3.367 -57.333 165.0 19730617 19861124 812540 99999 PALOEMUE/VINCEAT NS 3.35 -55.45 151.0 19810310 19840122 812600 99999 KABALEBO NS 4.4 -57.217 80.0 19780103 19861106 814010 99999 ST LAURENT DU MARON FG SOOM 5.5 -54.033 9.0 19730101 20170918 814020 99999 PORTAL FG 5.417000000000001 -54.103 8.0 19800514 19840525 814030 99999 KOUROU FG 5.2 -52.75 8.0 19790402 20050821 814050 99999 ROCHAMBEAU FG SOCA 4.82 -52.36 7.9 19430601 20170923 814080 99999 SAINT GEORGES FG SOOG 3.883 -51.8 7.0 19730102 20170911 814150 99999 MARIPASOULA FG SOOA 3.633 -54.033 106.0 19730103 20170918 814200 99999 20030624 20030624 816090 99999 OIAPOQUE BR 3.8139999999999996 -51.863 20.5 20160704 20170923 816150 99999 BOA VISTA BR 2.805 -60.647 95.5 20160704 20170923 816280 99999 TARTARUGALZINHO BR 1.4969999999999999 -50.917 22.5 20161021 20170923 816480 99999 BARCELOS BR -0.983 -62.917 18.5 20161104 20170814 816580 99999 SOURE BR -0.8170000000000001 -48.516999999999996 12.5 20160704 20170923 816600 99999 SALINOPOLIS BR -0.617 -47.35 22.5 20160704 20170923 816800 99999 BELEM BR -1.4169999999999998 -48.433 25.5 20160704 20170923 816820 99999 CASTANHAL BR -1.3 -47.95 66.5 20160704 20170923 816850 99999 BRAGANCA BR -1.05 -46.783 34.5 20160704 20170923 816870 99999 TURIACU BR -1.6669999999999998 -45.367 42.5 20160704 20170923 816990 99999 PRESIDENTE FIGUEIREDO BR -2.056 -60.026 93.5 20160704 20170923 817000 99999 RIO URUBU BR -2.4330000000000003 -59.567 60.5 20160704 20170923 817020 99999 URUCARA BR -2.533 -57.75 18.5 20160704 20170923 817030 99999 PARINTINS BR -2.639 -56.756 36.5 20160704 20170923 817100 99999 CAMETA BR -2.25 -49.5 23.5 20160704 20170923 817110 99999 TOME-ACU BR -2.6 -48.367 39.5 20160704 20170923 817150 99999 SAO LUIS BR -2.533 -44.217 57.5 20160704 20170923 817160 99999 SANTANA BR -2.267 -43.617 9.5 20160704 20170923 817170 99999 PREGUICAS BR -2.593 -42.707 1.6 20140410 20170816 817290 99999 PREGUICAS BR -3.3 -60.633 20.5 20160704 20170923 817300 99999 MANAUS BR -3.133 -59.95 68.5 20160704 20170923 817320 99999 AUTAZES BR -3.583 -59.129 29.5 20160704 20170923 817330 99999 ITACOATIARA BR -3.133 -58.483000000000004 38.5 20160704 20170923 817340 99999 MAUES BR -3.4 -57.667 36.5 20160704 20170923 817370 99999 PLACAS BR -3.867 -54.217 97.5 20160704 20170923 817390 99999 MEDICILANDIA BR -3.517 -52.967 252.5 20160704 20170923 817420 99999 PACAJA BR -3.85 -50.633 109.5 20160704 20170923 817430 99999 TUCURUI BR -3.8169999999999997 -49.683 149.5 20160712 20170923 817450 99999 PARAGOMINAS BR -3.017 -47.35 102.5 20160704 20170923 817490 99999 CHAPADINHA BR -3.75 -43.35 92.5 20160704 20170921 817510 99999 ESPERANTINA BR -3.9 -42.266999999999996 66.5 20160704 20170923 817520 99999 PARNAIBA BR -3.0669999999999997 -41.783 58.5 20160704 20170923 817540 99999 SOBRAL BR -3.75 -40.35 65.5 20160704 20170923 817550 99999 ACARAU BR -3.117 -40.083 77.5 20160704 20170923 817560 99999 ITAPIPOCA BR -3.483 -39.583 103.5 20160704 20170923 817580 99999 FORTALEZA BR -3.8 -38.533 42.5 20160704 20170923 817700 99999 COARI BR -4.1 -63.15 44.5 20160704 20170923 817740 99999 SAO GONCALO BR -6.836 -38.311 235.5 20160704 20170923 817780 99999 ITAITUBA BR -4.283 -56.0 14.5 20160704 20170923 817840 99999 NOVO REPARTIMENTO BR -4.25 -49.933 114.5 20160712 20170923 817860 99999 RONDON DO PARA BR -4.783 -48.067 222.5 20160704 20170923 817880 99999 BURITICUPU BR -4.317 -46.45 176.5 20160704 20170923 817900 99999 BACABAL BR -4.25 -44.8 29.5 20160704 20170923 817920 99999 CAXIAS BR -4.817 -43.35 77.5 20160705 20170923 817940 99999 PIRIPIRI BR -4.283 -41.8 162.5 20160918 20170701 817970 99999 GUARAMIRANGA BR -4.2669999999999995 -38.933 871.5 20160704 20170923 817980 99999 JUAGUARUANA BR -4.783 -37.783 13.5 20160704 20170923 818200 99999 MARABA BR -5.167000000000001 -49.383 117.5 20160704 20170923 818210 99999 ARAGUATINS BR -5.65 -48.117 118.5 20160704 20170923 818220 99999 IMPERATRIZ BR -5.55 -47.467 127.5 20160704 20170923 818230 99999 GRAJAU BR -5.817 -46.167 231.5 20160704 20170923 818250 99999 BARRA DO CORDA BR -5.5 -45.233000000000004 154.5 20160704 20170923 818270 99999 TERESINA BR -5.033 -42.8 75.9 20160704 20170923 818280 99999 SAO PEDRO DO PIAUI BR -5.917000000000001 -42.717 288.5 20160704 20170923 818290 99999 CASTELO DO PIAUI BR -5.35 -41.516999999999996 287.5 20160704 20170923 818300 99999 CRATEUS BR -5.186 -40.672 292.5 20160705 20170923 818310 99999 QUIXERAMOBIM BR -5.167000000000001 -39.283 219.5 20160704 20170923 818320 99999 MORADA NOVA BR -5.132999999999999 -38.35 45.1 20130405 20170923 818330 99999 JAGUARIBE BR -5.905 -38.628 185.5 20160704 20170923 818340 99999 MOSSORO BR -5.083 -37.367 37.5 20160730 20170923 818350 99999 APODI BR -5.627000000000001 -37.832 151.5 20160731 20170923 818360 99999 APODI BR -5.117 -36.717 5.5 20160704 20170923 818380 99999 CALCANHAR BR -5.167000000000001 -35.483000000000004 18.5 20160704 20170923 818390 99999 NATAL BR -5.832999999999999 -35.2 66.5 20160704 20170923 818460 99999 ALVORADA DO GURGUEIA BR -8.45 -43.867 271.5 20160704 20170923 818470 99999 CANTO DO BURITI BR -8.117 -42.983000000000004 309.5 20160704 20170923 818480 99999 SAO JOAO DO PIAUI BR -8.365 -42.251000000000005 236.5 20110926 20170923 818600 99999 SERRA DE CARAJAS BR -6.082999999999999 -50.15 720.5 20160704 20170923 818630 99999 ESTREITO BR -6.65 -47.417 181.5 20160704 20170923 818660 99999 COLINAS BR -6.0329999999999995 -44.233000000000004 180.5 20160704 20170923 818680 99999 FLORIANO BR -6.767 -43.016999999999996 124.8 20160704 20170923 818690 99999 OEIRAS BR -6.9670000000000005 -42.15 157.5 20160704 20170923 818700 99999 VALENCA DO PIAUI BR -6.4 -41.733000000000004 302.5 20160704 20170923 818720 99999 TAUA BR -6.017 -40.283 416.5 20160704 20170923 818730 99999 IGUATU BR -6.4 -39.266999999999996 234.5 20160704 20170923 818750 99999 CAICO BR -6.4670000000000005 -37.083 171.5 20160704 20170923 818760 99999 SANTA CRUZ BR -6.233 -36.033 238.5 20160704 20170923 818770 99999 AREIA BR -6.9670000000000005 -35.683 576.1 20160704 20170923 818780 99999 CAMARATUBA BR -6.617000000000001 -35.133 137.5 20160704 20170923 818880 99999 LABREA BR -7.267 -64.783 65.5 20160704 20170923 818900 99999 HUMAITA BR -7.55 -63.067 73.5 20160916 20170923 818930 99999 APUI BR -7.2 -59.883 169.5 20160704 20170923 819000 99999 ARAGUAINA BR -7.267 -48.2 227.5 20160704 20170923 819010 99999 CAROLINA BR -7.332999999999999 -47.467 193.5 20160704 20170923 819030 99999 BALSAS BR -7.45 -46.033 225.5 20160704 20170923 819050 99999 URUCUI BR -7.4670000000000005 -44.35 394.5 20160704 20170923 819080 99999 PICOS BR -7.071000000000001 -41.403999999999996 234.5 20160704 20170923 819090 99999 CAMPOS SALES BR -7.082999999999999 -40.367 573.5 20140410 20170923 819100 99999 OURICURI BR -7.5329999999999995 -40.033 465.5 20160704 20170923 819110 99999 BARBALHA BR -7.3 -39.266999999999996 410.5 20160704 20170920 819120 99999 SERRA TALHADA BR -7.95 -38.3 462.5 20160704 20170923 819130 99999 PATOS BR -7.082999999999999 -37.266999999999996 282.0 20160704 20170923 819140 99999 MONTEIRO BR -7.9 -37.117 606.5 20160704 20170923 819150 99999 CABACEIRAS BR -7.483 -36.283 437.5 20160704 20170923 819160 99999 CAMPNA GRANDE BR -7.233 -35.9 549.5 20160704 20170923 819170 99999 SURUBIM BR -7.85 -35.783 419.5 20160704 20170923 819180 99999 JOAO PESSOA BR -7.15 -34.85 45.5 20160704 20170923 819210 99999 PORTO WALTER BR -8.267000000000001 -72.75 205.5 20160704 20170923 819220 99999 MARECHAL THAUMATURGO BR -8.95 -72.78699999999999 231.5 20160705 20170923 819240 99999 FEIJO BR -8.142000000000001 -70.343 164.5 20160924 20170923 819270 99999 BOCA DO ACRE BR -8.777000000000001 -67.332 112.5 20160707 20170923 819320 99999 PORTO VELHO BR -8.8 -63.85 99.5 20160704 20170923 819400 99999 CONCEICAO DO ARAGUAIA BR -8.283 -49.266999999999996 181.5 20160704 20170923 819410 99999 PEDRO AFONSO BR -8.967 -48.183 190.5 20160704 20170923 819500 99999 PAULISTANA BR -8.133 -41.15 375.5 20120111 20170923 819510 99999 CABROBO BR -8.5 -39.317 343.5 20160704 20170923 819530 99999 ARCO VERDE BR -8.433 -37.083 682.0 20160704 20170923 819540 99999 IBIMIRIM BR -8.517000000000001 -37.717 449.5 20160704 20170923 819550 99999 GARANHUS BR -8.9 -36.5 823.5 20160704 20170923 819560 99999 CARUARU BR -8.232999999999999 -35.983000000000004 551.5 20160704 20170917 819570 99999 PALMARES BR -8.667 -35.567 181.5 20160704 20170923 819580 99999 RECIFE BR -8.05 -34.95 11.5 20160704 20170923 819630 99999 PARQUE ESTADUAL CHANDLESS BR -9.367 -69.933 207.5 20160704 20170923 819650 99999 RIO BRANCO BR -9.95 -68.167 221.5 20160925 20170923 819700 99999 ARIQUEMES BR -9.95 -62.967 141.5 20160704 20170923 819750 99999 COTRIGUACU BR -9.9 -58.567 262.5 20160704 20170923 819760 99999 APIACAS BR -9.567 -57.4 221.5 20160704 20170820 819770 99999 ALTA FLORESTA BR -10.067 -56.75 295.5 20160704 20170923 819780 99999 CARLINDA BR -9.967 -55.833 301.5 20160704 20170923 819790 99999 GUARANTA DO NORTE BR -9.95 -54.883 321.5 20160704 20170923 819820 99999 SANTANA DO ARAGUAIA BR -9.333 -50.35 169.5 20161008 20170514 819850 99999 ALTO PARNAIBA BR -9.1 -45.933 282.5 20160704 20170923 819860 99999 GILBUES BR -9.867 -45.35 426.5 20160704 20170923 819870 99999 BOM JESUS DO PIAUI BR -9.083 -44.333 298.5 20160704 20170923 819880 99999 CARACOL BR -9.283 -43.317 524.5 20160704 20170923 819890 99999 SAO RAIMUNDO NONATO BR -9.033 -42.7 403.5 20160704 20170923 819900 99999 REMANSO BR -9.617 -42.083 402.5 20160704 20170923 819910 99999 PETROLINA BR -9.383 -40.8 370.5 20160705 20170923 819920 99999 UAUA BR -9.833 -39.5 454.5 20160704 20170923 819930 99999 PAULO AFONSO BR -9.367 -38.217 254.2 20160704 20170420 819940 99999 PAO DE ACUCAR BR -9.767000000000001 -37.45 20.5 20160704 20170923 819950 99999 PALMEIRA DOS INDIOS BR -9.417 -36.617 276.5 20160704 20170923 819960 99999 ARAPIRACA BR -9.8 -36.617 242.5 20150830 20170923 819970 99999 SAO LUIS DO QU BR -9.283 -35.567 20.5 20160704 20170923 819980 99999 MACEIO BR -9.55 -35.766999999999996 66.0 20160704 20170923 820140 99999 NORMANDIA BR 3.5 -60.167 700.0 19930821 19940707 820170 99999 OIAPOQUE BR SBOI 3.855 -51.797 19.2 19380603 20170923 820220 99999 BOA VISTA BR SBBV 2.846 -60.69 84.1 19730101 20170923 820240 99999 BOA VISTA BR 2.8169999999999997 -60.65 90.0 19740610 20070925 820260 99999 TIRIOS BR 2.224 -55.946999999999996 325.0 19840403 20081112 820300 99999 AMAPA BR SBAM 2.0669999999999997 -50.85 10.0 19430601 20120202 820305 99999 MARILIA BR SBML -22.197 -49.926 646.8 20071016 20170922 820306 99999 SANTO ANGELO BR SBNM -28.281999999999996 -54.169 321.9 20071016 20170923 820420 99999 CARACARAI BR 1.8330000000000002 -61.133 95.0 19890208 20170923 820670 99999 IAUARETE BR SBYA 0.608 -69.186 105.2 19730101 20151106 820910 99999 MONTE DOURADO BR SBMD -0.89 -52.602 206.3 20090808 20170922 820940 99999 PONTA DO CEU BR 0.767 -50.1 4.0 19801005 19960517 820960 99999 CANIVETE BR 0.517 -50.417 3.0 20040919 20070402 820980 99999 MACAPA BR SBMQ 0.051 -51.071999999999996 17.1 19730101 20170923 820990 99999 MACAPA-AEROPORTO BR 0.05 -51.067 16.0 19430901 20070925 821000 99999 PARI-CACHOEIRA BR -0.16699999999999998 -69.967 115.0 19820105 20150605 821030 99999 TARACUA BR 0.067 -68.233 105.0 20040709 20040709 821060 99999 SAO GABRIEL DA CACH BR -0.133 -67.083 90.0 19730101 20090813 821070 99999 SAO GABRIEL DA CACHOEIRA AERO BR SBUA -0.11699999999999999 -66.967 79.0 20100506 20170923 821075 99999 UBERLANDIA BR -18.883 -48.233000000000004 943.1 20090811 20100527 821080 99999 HOTEL TRANSAMERICA BR SBTC -15.355 -38.999 6.1 19730101 20170923 821110 99999 EDUARDO GOMES INTL BR SBEG -3.0389999999999997 -60.05 80.5 19770501 20170923 821130 99999 BARCELOS BR SWBC -0.981 -62.92 34.1 19730101 20170923 821410 99999 SOURE BR -0.7170000000000001 -48.55 11.0 19381101 20170901 821430 99999 SALINOPOLIS BR -0.617 -47.383 14.0 19810201 20170923 821450 99999 TRACUATEUA (BRAGANCA) BR -1.083 -46.933 36.0 19900112 20170923 821780 99999 OBIDOS BR -1.9169999999999998 -55.516999999999996 37.0 19891117 20070925 821810 99999 MONTE ALEGRE BR -2.0 -54.083 146.0 19891114 20170923 821840 99999 PORTO DE MOZ BR SBMZ -1.733 -52.233000000000004 16.0 19730101 20170923 821880 99999 BREVES BR -1.6669999999999998 -50.483000000000004 15.0 19891201 20071219 821910 99999 BELEM BR -1.45 -48.467 10.0 19310104 20070925 821930 99999 VAL DE CANS INTL BR SBBE -1.379 -48.476000000000006 16.5 19421001 20170923 821980 99999 TURIACU BR -1.7169999999999999 -45.4 44.0 19761101 20170923 822000 99999 IPIRANGA(?) BR -2.983 -69.583 0.0 19830701 19841101 822120 99999 FONTE BOA BR -2.533 -66.167 56.0 19740610 20170923 822400 99999 PARINTINS BR -2.633 -56.733000000000004 29.0 19730101 20160805 822440 99999 SANTAREM BR SBSN -2.4219999999999997 -54.793 60.4 19730101 20170923 822460 99999 BELTERRA BR -2.633 -54.95 176.0 19740610 20170923 822630 99999 CAMETA BR -2.25 -49.5 24.0 19891114 20070925 822770 99999 FAROL SANTANA BR -2.267 -43.617 8.0 19801024 20040723 822800 99999 SAO LUIZ BR -2.533 -44.3 51.0 19310202 20070925 822810 99999 MARECHAL CUNHA MACHADO INTL BR SBSL -2.585 -44.233999999999995 54.3 19430501 20170923 822870 99999 PARNAIBA BR -3.083 -41.783 22.0 19760404 20170923 822880 99999 PARNAIBA PREFEITO DR JOAO SILVA FILHO BR SBPB -2.8939999999999997 -41.732 4.9 19430512 20170923 822940 99999 ARACHU BR -2.883 -40.133 16.0 19891201 20070417 823030 99999 S.PAULO DE OLIVENCA BR -3.467 -68.95 94.0 20010911 20010912 823170 99999 TEFE BR SBTF -3.383 -64.72399999999999 56.1 19730101 20170923 823260 99999 CODAJAS BR -3.833 -62.083 49.0 19891117 20090930 823310 99999 MANAUS BR -3.133 -60.016999999999996 72.0 19330806 20070925 823320 99999 PONTA PELADA BR SBMN -3.1460000000000004 -59.986000000000004 81.4 19730101 20170923 823360 99999 ITACOATIARA BR SBIC -3.127 -58.481 43.3 19730101 20170923 823365 99999 MONTE DOURADO BR -0.883 -52.6 206.0 20061026 20090808 823366 99999 TOCANTINS BR SBPJ -10.292 -48.357 235.9 20050903 20170923 823530 99999 ALTAMIRA BR SBHT -3.2539999999999996 -52.254 112.2 19730101 20170923 823600 99999 TUCURUI AERO BR -3.767 -49.717 253.0 19931113 20130518 823610 99999 TUCURUI BR SBTU -3.786 -49.72 253.0 19861004 20170923 823760 99999 ZE DOCA BR -3.717 -45.533 46.0 19900330 20070925 823820 99999 CHAPADINHA BR -3.733 -43.35 104.0 20020311 20070925 823920 99999 SOBRAL BR -3.7 -40.35 83.0 19310104 20170923 823970 99999 FORTALEZA BR -3.767 -38.6 26.0 19310104 20070925 823980 99999 PINTO MARTINS INTL BR SBFZ -3.7760000000000002 -38.533 25.0 19360824 20170923 824000 99999 FERNANDO DE NORONHA BR SBFN -3.855 -32.423 58.8 19310101 20170923 824100 99999 BENJAMIN CONSTANT BR SBBC -4.383 -70.033 65.0 19730101 20170923 824110 99999 TABATINGA BR SBTT -4.256 -69.936 85.0 19790606 20170923 824180 99999 CARAUARI BR SBUI -4.95 -66.9 66.0 19730101 20051011 824250 99999 COARI BR -4.083 -63.133 46.0 19740610 20160805 824440 99999 ITAITUBA BR SBIH -4.242 -56.001000000000005 33.5 19921001 20170923 824450 99999 ITAITUBA BR -4.2669999999999995 -55.983000000000004 45.0 19881103 20170923 824600 99999 BACABAL BR -4.25 -44.783 25.0 19890801 20170922 824760 99999 CAXIAS BR -4.867 -43.35 103.0 19380913 20170923 824800 99999 PIRIPIRI BR -4.2669999999999995 -41.783 161.0 19950101 20070925 824870 99999 GUARAMIRANGA BR -4.283 -39.0 870.0 19380203 20070417 824930 99999 JAGUARUANA BR -4.783 -37.766999999999996 12.0 19911101 20070925 825330 99999 MANICORE BR SBMY -5.811 -61.278 53.0 19740215 20170923 825620 99999 MARABA BR SBMA -5.369 -49.138000000000005 108.8 19730101 20170923 825640 99999 PREFEITO RENATO MOREIRA BR SBIZ -5.531000000000001 -47.46 131.4 19770601 20170923 825650 99999 IMPERATRIZ BR -5.5329999999999995 -47.45 131.0 19910927 20070925 825660 99999 IMPERATRIZ BR -5.5329999999999995 -47.5 123.0 19860701 20020410 825670 99999 CARAJAS BR SBCJ -6.117999999999999 -50.003 621.2 20111116 20170923 825680 99999 GRAJAU BR -5.8 -46.45 163.0 19380913 20031119 825710 99999 BARRA DO CORDA BR -5.5 -45.266999999999996 153.0 19310303 20170923 825780 99999 TERESINA BR -5.083 -42.817 74.0 19770201 20070925 825790 99999 SENADOR PETRONIO PORTELLA BR SBTE -5.06 -42.823 66.8 19310104 20170923 825830 99999 CRATEUS BR -5.167000000000001 -40.667 299.0 19730102 20170923 825860 99999 QUIXERAMOBIM BR -5.2 -39.3 212.0 19310104 20170923 825880 99999 MORADA NOVA BR -5.083 -38.383 44.0 19900107 19900309 825900 99999 APODI BR -5.65 -37.8 65.0 19900105 20070417 825910 99999 DIX SEPT ROSADO BR SBMS -5.202000000000001 -37.364000000000004 23.5 19730101 20170923 825940 99999 MACAU BR -5.117 -36.633 6.0 19730222 20170923 825950 99999 CALCANHAR BR -5.167000000000001 -35.483000000000004 14.0 19810205 20170413 825960 99999 CEARA-MIRIM BR -5.65 -35.417 61.0 19760404 20070925 825980 99999 NATAL BR -5.767 -35.2 45.0 19310104 20070925 825990 99999 AUGUSTO SEVERO BR SBNT -5.9110000000000005 -35.248000000000005 51.5 19430801 20170923 825991 99999 MINISTRO VICTOR KONDER INTL BR SBNF -26.88 -48.651 5.5 20050502 20170923 826100 99999 EIRUNEPE BR -6.667000000000001 -69.867 104.0 19730101 20170923 826400 99999 JACAREACANGA BR SBEK -6.233 -57.777 98.8 19730101 20170922 826590 99999 ARAGUAINA BR -7.2 -48.2 228.0 19891201 20100428 826680 99999 SAO FELIX DO XINGU BR -6.632999999999999 -51.983000000000004 150.0 19740610 19970109 826780 99999 FLORIANO BR -6.767 -43.016999999999996 127.0 19730101 20170923 826830 99999 TAUA BR -6.0 -40.417 399.0 19891201 20170923 826843 99999 CARAJAS/MARABA BR SBCJ -6.117000000000001 -50.0 618.0 19870117 19890215 826860 99999 IGUATU BR -6.367000000000001 -39.3 217.0 19310104 20070925 826890 99999 SAO GONCALO BR -6.75 -38.217 233.0 19891117 20070417 826900 99999 SERIDO / CAICO BR -6.4670000000000005 -37.083 170.0 19380913 19440331 826910 99999 FLORANIA BR -6.117000000000001 -36.817 324.0 19891201 20070417 826930 99999 CRUZETA BR -6.433 -36.583 226.0 19891117 20070925 827040 99999 CRUZEIRO DO SUL BR SBCZ -7.6 -72.76899999999999 194.2 19740201 20170923 827230 99999 LABREA BR -7.25 -64.833 60.0 19730101 20170923 827410 99999 ALTO TAPAJOS BR -7.35 -57.516999999999996 140.0 19730101 19771015 827530 99999 OURICURI BR -7.9 -40.05 459.0 19910823 20070925 827600 99999 BALSAS BR -7.05 -42.067 251.0 19951013 20011119 827640 99999 CAROLINA BR SBCI -7.32 -47.458999999999996 172.2 19380719 20170922 827641 99999 CARAJAS BR -6.117000000000001 -50.0 637.0 20040729 20111116 827650 99999 CAROLINA BR -7.332999999999999 -47.467 193.0 19730101 20170923 827680 99999 BALSAS / MARANHAO BR SNBS -7.517 -46.05 283.0 20010916 20070925 827710 99999 URUCUI BR -7.233 -44.55 187.0 19900320 19900320 827770 99999 CAMPOS SALES BR -7.0 -40.383 583.0 19891117 20070417 827800 99999 PICOS BR -7.067 -41.483000000000004 208.0 19891117 20170914 827840 99999 BARBALHA BR -7.317 -39.3 409.0 19740611 20170923 827890 99999 TRIUNFO BR -7.85 -38.133 1020.0 19900323 20170923 827910 99999 PATOS BR -7.017 -37.266999999999996 249.0 19860701 20170923 827920 99999 MONTEIRO BR -7.882999999999999 -37.067 599.0 19950201 20070925 827940 99999 MANAIRA BR -7.55 -34.817 15.0 19310104 19360714 827950 99999 PRESIDENTE JOAO SUASSUNA BR SBKG -7.27 -35.896 501.7 19310108 20170923 827960 99999 CAMPINAGRANDE BR -7.267 -35.883 500.0 19930101 20070925 827970 99999 SURUBIM BR -7.832999999999999 -35.717 418.0 19380503 20070925 827980 99999 JOAO PESSOA BR -7.1 -34.867 7.0 19310104 20170923 827981 99999 LAURO CARNEIRO DE LOYOLA BR SBJV -26.224 -48.797 4.6 20060625 20170923 828070 99999 TARAUACA BR -8.167 -70.767 190.0 19740610 20090811 828080 99999 TARAUACA BR SBTK -8.155 -70.783 196.9 20090811 20170922 828160 99999 BOCA DO ACRE BR SBBA -8.75 -67.4 119.0 19730101 19850715 828240 99999 GOVERNADOR JORGE TEIXEIRA DE OLIVEIRA BR SBPV -8.709 -63.902 89.6 19821101 20170923 828250 99999 PORTO VELHO BR -8.767000000000001 -63.917 95.0 19730101 20070925 828610 99999 CONCEICAO DO ARAGUAIA BR SBAA -8.347999999999999 -49.302 199.0 19730101 20170923 828630 99999 PEDRO AFONSO BR -8.967 -48.183 187.0 19890901 20170923 828790 99999 S.JOAO DO PIAUI BR -8.35 -42.25 235.0 19950401 20170923 828820 99999 PAULISTANA BR -8.133 -41.133 375.0 19910726 20070925 828860 99999 CABROBO BR -8.517000000000001 -39.333 341.0 19900105 20070417 828930 99999 GARANHUNS BR -8.883 -36.516999999999996 823.0 19310104 20170923 828950 99999 CARUARU BR -8.283 -35.967 529.0 20020912 20040728 828960 99999 PESQUEIRA SOUTHWEST BR -8.4 -36.766999999999996 705.0 19310108 19400301 828981 99999 RECIFE BRAZIL/IBURA FLD BR SBRF -8.116 -34.916 9.0 19430801 19460801 828990 99999 GUARARAPES GILBERTO FREYRE INTL BR SBRF -8.126 -34.924 10.1 19310104 20170923 829000 99999 RECIFE BR -8.05 -34.917 7.0 19730101 20070925 829150 99999 RIO BRANCO BR -9.967 -67.8 160.0 19380111 20070925 829170 99999 PRESIDENTE MEDICI BR SBRB -9.869 -67.89399999999999 193.2 19830702 20170923 829270 99999 COTRIGUACU * BR -9.917 -58.266999999999996 -999.9 19891117 20010306 829300 99999 CACHIMBO BR SBCC -9.334 -54.965 537.1 19610101 20170923 829650 99999 ALTA FLORESTA BR SBAT -9.866 -56.106 288.6 19880601 20170923 829654 99999 CACHIMBO BR -9.333 -54.967 551.0 19920626 20111116 829700 99999 ALTO PARNAIBA * BR -9.117 -45.95 -999.9 20010916 20070925 829750 99999 BOM JESUS DO PIAUI BR -9.067 -44.367 331.0 19740610 20070417 829760 99999 CARACOL BR -9.283 -43.333 523.0 19900323 20070925 829790 99999 REMANSO BR -9.633 -42.1 401.0 19360824 20170923 829830 99999 PETROLINA BR -9.383 -40.483000000000004 370.0 19730101 20170923 829840 99999 SENADOR NILO COELHO BR SBPL -9.362 -40.569 385.0 19430401 20170923 829860 99999 PAULO AFONSO BR SBUF -9.401 -38.251 269.1 19730501 20170923 829890 99999 AGUA BRANCA BR -9.283 -37.9 608.0 19360824 20070417 829900 99999 PAO DE ACUCAR BR -9.75 -37.433 20.0 19310104 20070417 829910 99999 PILAR EAST BR -9.583 -35.9 131.0 19380913 19440331 829920 99999 PALMEIRO DOS INDIOS BR -9.45 -36.7 275.0 19940401 20070925 829930 99999 ZUMBI DOS PALMARES BR SBMO -9.511000000000001 -35.792 118.0 19730101 20170923 829940 99999 MACEIO BR -9.667 -35.7 65.0 19310105 20060331 829960 99999 PORTO DE PEDRAS BR -9.183 -35.433 51.0 20130522 20131009 830100 99999 BRASILEIA BR -11.017000000000001 -68.733 260.0 20011014 20011014 830320 99999 LAMBARI BR -21.95 -45.317 879.0 20140614 20140614 830330 99999 PALMAS BR -10.183 -48.3 281.0 19940401 20100428 830360 99999 SAO SEBASTIAO BR -23.8 -45.4 5.0 19380913 19901218 830580 99999 SAO ROQUE/S. PAULO BR -23.517 -47.117 -999.9 19900506 19900829 830630 99999 PORTO NACIONAL BR SBPN -10.719000000000001 -48.4 265.2 19730101 20151111 830640 99999 PORTO NACIONAL BR -10.717 -48.583 239.0 19380205 20170923 830650 99999 PALMAS AERO BR -10.283 -48.35 236.0 20050628 20150305 830660 99999 SAO SEBASTIAO BR -23.8 -45.417 5.0 19790312 19900727 830750 99999 GUARULHOS BR SBGR -23.432 -46.47 749.5 20090811 20170923 830760 99999 IBIPETUBA BR -11.017000000000001 -44.516999999999996 450.0 19891117 20130630 830880 99999 SENAR DO BOMFMI BR -10.467 -40.183 558.0 19891117 20100428 830900 99999 MONTE SANTO BR -10.433 -39.3 464.0 19970901 20100428 830920 99999 FOZ DO SAO FRANCISCO BR -10.65 -36.167 11.0 19380913 19410930 830950 99999 SANTA MARIA BR SBAR -10.984000000000002 -37.07 7.0 19830401 20170923 830960 99999 ARACAJU BR -10.917 -37.05 5.0 19310104 20170923 830970 99999 PROPRIA BR -10.2 -36.867 19.0 19310104 20100428 831000 99999 SAN PEDRO BR -11.417 -61.583 305.0 19830701 19840930 831110 99999 RIO/JACAREPAGUA BR -22.983 -43.367 3.0 19770601 20170923 831170 99999 ILHA RASA BR -23.066999999999997 -43.15 75.0 20151014 20170923 831560 99999 SANTA ISABEL MORRO BR -11.567 -50.667 197.0 19730101 19901017 831790 99999 BARRA BR -11.083 -43.167 402.0 19900425 20170923 831820 99999 IRECE BR -11.3 -41.867 747.0 19740613 20100914 831840 99999 MORRO DO CHAPEU BR -11.217 -41.217 1005.0 19891117 20120102 831860 99999 JACOBINA BR -11.183 -40.467 485.0 19891117 20170923 831900 99999 SERRINHA BR -11.633 -38.967 359.0 20000330 20100428 831920 99999 CIPO * BR -11.083 -38.516999999999996 464.0 19891117 20170923 831950 99999 ITABAIANINHA BR -11.117 -37.817 208.0 19900501 20160904 832000 99999 FT PRINCIPE BEIRA BR -12.417 -64.383 180.0 19830701 19860928 832080 99999 VILHENA BR SBVH -12.694 -60.098 615.1 19730101 20170923 832140 99999 MATUPA * BR -10.25 -54.917 -999.9 19891117 20100914 832200 99999 RIO XINGU BR -12.0 -53.4 300.0 19730101 19820128 832210 99999 FEIRA DE SANTANA BR -12.183 -38.967 231.0 19940401 20100428 832220 99999 CRUZ DAS ALMAS BR -12.667 -39.083 227.0 20020311 20070925 832280 99999 PEIXE BR -12.05 -48.533 250.0 19890901 20170923 832290 99999 SALVADOR BR -13.017000000000001 -38.516999999999996 51.0 19310101 20100428 832310 99999 PARANA BR -12.55 -47.833 275.0 19900312 19970716 832315 99999 CHAPADA DIAMANTINA BR SBLE -12.482000000000001 -41.277 510.8 20101108 20170922 832350 99999 TAGUATINGA BR -12.4 -46.433 604.0 19890901 20170923 832360 99999 BARREIRAS BR -12.15 -45.0 439.0 19730102 20170923 832420 99999 LENCOIS BR -12.567 -41.383 439.0 19730809 20170923 832440 99999 ITABERABA BR -12.55 -40.433 249.0 19730128 20100428 832480 99999 DEPUTADO LUIS EDUARDO MAGALHAES BR SBSV -12.911 -38.330999999999996 19.5 19430809 20170923 832490 99999 ALAGOINHAS BR -12.283 -38.55 132.0 19900507 20100428 832620 99999 19380503 19390729 832640 99999 GLEBA CELESTE BR -12.2 -56.5 415.0 19740610 20161108 832700 99999 CANARANA BR -13.5 -52.5 430.0 19891117 20170923 832860 99999 CORRENTINA BR -13.467 -44.766999999999996 587.0 19900119 20100428 832880 99999 BOM JESUS DA LAPA BR SBLP -13.262 -43.408 443.2 19730101 20170923 832890 99999 BOM JESUS DA LAPA AEROPORTO BR -13.267000000000001 -43.417 441.0 19430401 20070925 832920 99999 ITUACU BR -13.817 -41.3 533.0 19900301 20100428 832950 99999 ITIRUCU (JAGUAQUARA) BR -13.367 -39.95 756.0 19900815 20100428 833020 99999 ALCOMAT * BR -14.25 -59.25 -999.9 19891117 20050730 833090 99999 DIAMANTINO BR -14.4 -56.45 286.0 19730101 20170923 833190 99999 NOVA XAVANTINA BR SBXV -14.7 -52.35 315.0 19730101 20170923 833320 99999 POSSE BR -14.1 -46.367 826.0 19890901 20170923 833340 99999 FORMOSO BR -14.933 -46.25 840.0 19900103 20070417 833380 99999 ESPINOSA * BR -14.967 -42.817 -999.9 19891117 20070925 833390 99999 CAETITE BR -14.05 -42.617 882.0 19310105 20170923 833440 99999 VITORIA DA CONQUISTA BR SBQV -14.863 -40.863 913.8 19740623 20170923 833470 99999 19740706 19740718 833480 99999 ILHEUS BR -14.8 -39.067 60.0 19310101 19980826 833490 99999 ILHEUS BR SBIL -14.815999999999999 -39.033 4.6 19830401 20170923 833520 99999 BOGUS BRAZILIAN BR 19880601 19891024 833580 99999 POXOREO (POXOREU) BR -15.833 -54.383 450.0 19790201 20170923 833590 99999 BARRA DO GARCAS BR SBBW -15.860999999999999 -52.388999999999996 349.6 19861101 20170922 833610 99999 CUIABA BR -15.55 -56.117 151.0 19310101 20070925 833620 99999 MARECHAL RONDON BR SBCY -15.652999999999999 -56.117 188.1 19730101 20170923 833640 99999 PADRE RICARDO REMETTER BR -15.783 -56.067 141.0 19891117 20070925 833650 99999 SANGRADOURO BR -15.633 -53.9 555.0 19740720 20041014 833680 99999 ARAGARCAS BR -15.9 -52.233000000000004 345.0 19730101 20170923 833700 99999 PRIMAVERA DO LESTE E BR -15.633 -53.917 480.0 19380801 19440330 833740 99999 GOIAS BR -15.917 -50.133 512.0 19310101 20170923 833750 99999 GAMA BR SBGA -16.05 -48.05 -999.9 19900313 19930217 833760 99999 PIRENOPOLIS BR -15.85 -48.967 730.0 19360824 20100428 833770 99999 BRASILIA BR -15.783 -47.933 1159.0 19730101 20070925 833780 99999 PRESIDENTE JUSCELINO KUBITSCHEK BR SBBR -15.863 -47.913000000000004 1060.4 19610101 20170923 833790 99999 FORMOSA BR -15.533 -47.333 912.0 19380403 20100428 833830 99999 BURITIS BR -15.617 -46.417 600.0 19891109 20040811 833840 99999 ARINOS BR -15.9 -46.05 519.0 19891117 20170923 833860 99999 JANUARIA BR -15.433 -44.367 474.0 19310101 20170923 833880 99999 MONTE AZUL BR -15.083 -42.75 603.0 19891117 20160101 833890 99999 MOCAMBINHO BR -15.05 -44.016999999999996 452.0 19891117 20070925 833930 99999 PEDRA AZUL BR -16.0 -41.283 649.0 19740720 20170923 833950 99999 JANAUBA BR -15.783 -43.3 516.0 19891117 20070925 833980 99999 CANAVIEIRAS BR -15.667 -38.95 5.0 19840107 20160905 834050 99999 CACERES BR -16.05 -57.683 118.0 19380201 20161108 834080 99999 CARINHANHA BR -14.167 -43.917 556.0 19891117 20100428 834100 99999 RONDONOPOLIS BR -16.45 -54.567 284.0 19930101 20070417 834190 99999 BASE AEREA BR SBAN -16.229 -48.964 1136.3 19770204 20170923 834230 99999 GOIANIA BR -16.667 -49.25 741.0 19380510 20170923 834240 99999 SANTA GENOVEVA BR SBGO -16.632 -49.221000000000004 746.8 19730101 20170923 834270 99999 LUZIANIA EAST BR -16.267 -47.883 910.0 19380403 19440331 834280 99999 UNAI BR -16.367 -46.55 460.0 19891201 20070925 834370 99999 MARIO RIBEIRO BR SBMK -16.707 -43.818999999999996 667.8 19360824 20170923 834410 99999 SALINAS BR -16.183 -42.283 472.0 19891117 20070925 834420 99999 ARACUAI BR -16.867 -42.067 284.0 19891117 20170923 834460 99999 GUARATINGUETA BR -16.733 -39.55 195.0 20020203 20100428 834600 99999 PORTO SEGURO BR SBPS -16.439 -39.080999999999996 51.2 20100428 20170923 834640 99999 JATAI * BR -17.883 -51.717 -999.9 20010916 20100428 834700 99999 RIO VERDE BR -17.917 -50.917 727.0 19740720 20170923 834790 99999 PARACATU BR -17.217 -46.867 711.0 19380503 20170923 834810 99999 JOAO PINHEIRO BR -17.7 -46.167 760.0 19891117 20141112 834830 99999 PIRAPORA BR -17.333 -44.95 505.0 19360824 20170923 834880 99999 ITAMARANDIBA BR -17.85 -42.85 1097.0 19891117 20070925 834920 99999 TEOFILO OTONI BR -17.85 -41.516999999999996 356.0 19310101 20080928 834970 99999 CARAVELAS BR SBCV -17.652 -39.253 11.0 19610101 20160109 834980 99999 CARAVELAS BR -17.733 -39.25 3.0 19320501 20170923 834990 99999 ABROLHOS BR -17.967 -38.7 38.0 19790112 20160322 835120 99999 COXIM BR -18.5 -54.766999999999996 287.0 19891117 19970524 835130 99999 NHUMIRIM BR -18.983 -56.65 89.0 19891201 20011009 835140 99999 CAPINOPOLIS BR -18.683 -49.567 621.0 19891118 20110718 835220 99999 IPAMERI BR -17.717 -48.167 752.0 19890901 20100428 835240 99999 19361001 19440331 835250 99999 UBERLANDIA AERO BR SBUL -18.883 -48.217 943.0 20100506 20170923 835253 99999 UBERLANDIA BR -18.883 -48.217 967.0 19910827 20090811 835255 99999 SAO GABRIEL DA CACHOEIRA BR -0.14800000000000002 -66.986 75.9 20090813 20100505 835260 99999 CATALAO BR -18.183 -47.95 840.0 19310101 20170923 835310 99999 PATOS DE MINAS BR -18.6 -46.516999999999996 940.0 19891117 20170923 835360 99999 CURVELO BR -18.767 -44.433 616.0 19900314 19950608 835380 99999 DIAMANTINA BR -18.25 -43.6 1297.0 19360824 20170923 835430 99999 GOVERNADOR VALADARES BR -18.85 -41.933 277.0 19891117 20070417 835500 99999 SAO MATEUS BR -18.7 -39.85 25.0 19360824 20170923 835520 99999 CORUMBA INTL BR SBCR -19.012 -57.673 140.5 19310101 20170923 835540 99999 CORUMBA (AEROPORTO) BR -19.0 -57.667 141.0 19770601 20071030 835650 99999 PARANAIBA BR -19.7 -51.183 331.0 19891117 20170923 835660 99999 CONFINS (AERO) BR -19.617 -43.967 827.0 20000828 20170923 835700 99999 POMPEU BR -19.217 -45.0 691.0 19891117 20070925 835740 99999 FRUTAL BR -20.033 -48.933 543.0 19970901 20130527 835760 99999 UBERABA BR SBUR -19.765 -47.965 809.2 19730101 20170923 835770 99999 UBERABA BR -19.75 -47.917 743.0 19360824 20110718 835790 99999 ARAXA BR -19.567 -46.933 1004.0 19380913 20170923 835810 99999 FLORESTAL BR -19.883 -44.417 753.0 19730313 19740503 835820 99999 BAMBUI BR -20.0 -45.983000000000004 661.0 19891201 20170923 835830 99999 PAMPULHA CARLOS DRUMMOND DE ANDRADE BR SBBH -19.851 -43.951 789.1 19510101 20170923 835860 99999 SETE LAGOAS BR -19.467 -44.25 732.0 19891117 20110718 835870 99999 TANCREDO NEVES INTL BR SBCF -19.634 -43.968999999999994 827.5 19310101 20170923 835880 99999 LAGOA SANTA AIRPORT BR SBLS -19.65 -43.883 852.0 19730101 20170923 835890 99999 CONCEICAO DO MATO DENTRO BR -19.033 -43.433 675.0 19891118 20070925 835920 99999 CARATINGA BR -19.8 -42.15 609.0 19360830 20170923 835950 99999 AIMORES BR -19.483 -41.067 83.0 19891117 20140709 835970 99999 LINHARES BR -19.4 -40.067 28.0 19891201 20090313 835990 99999 MOELA BR -24.05 -46.266999999999996 100.0 20100915 20170118 836050 99999 BOGUS BRAZILIAN BR 19891117 20010926 836080 99999 ANASTACIO BR -20.467 -55.8 156.0 19310102 19400301 836110 99999 CAMPO GRANDE BR -20.45 -54.617 530.0 19740913 20070925 836120 99999 CAMPO GRANDE BR SBCG -20.469 -54.673 558.7 19360824 20170923 836150 99999 AGUA CLARA BR -20.45 -52.883 365.0 19891117 20040423 836170 99999 URUBUPUNGA BR SBUP -20.776999999999997 -51.565 356.3 19730101 20071107 836180 99999 TRES LAGOAS BR -20.783 -51.7 313.0 19380804 20080928 836230 99999 VOTUPORANGA BR -20.417 -49.983000000000004 503.0 19880513 20170923 836250 99999 BARRETO BR -20.633000000000003 -48.567 0.0 19931007 20040914 836300 99999 FRANCA BR -20.55 -47.433 1026.0 19730104 20170923 836310 99999 S SEBASTIAO DO OARAISO BR -20.916999999999998 -47.117 820.0 20160704 20170923 836340 99999 FURNAS/PRIVATE BR -20.7 -46.333 735.0 19730101 19820609 836390 99999 CAPARAO BR -20.517 -41.867 843.0 19900714 20070925 836420 99999 VICOSA BR -20.75 -42.85 690.0 19360824 20070925 836440 99999 POCOS DE CALDAS BR SBPC -21.843000000000004 -46.568000000000005 1260.3 20090813 20170923 836460 99999 CACHOEIRO ITAPEMIRIM BR -20.85 -41.1 77.0 19310101 20040114 836480 99999 VITORIA BR -20.317 -40.333 36.0 19310101 20170419 836490 99999 GOIABEIRAS BR SBVT -20.258 -40.286 3.4 19730101 20170923 836500 99999 TRINDADE (ILHA) BR -20.5 -29.316999999999997 5.0 19430401 20170923 836520 99999 LEITE LOPES BR SBRP -21.134 -47.773999999999994 549.2 20090813 20170923 836540 99999 PORTO MURTINHO BR -21.717 -57.883 98.0 19891117 19901007 836590 99999 DOURADOS BR -22.233 -54.817 452.0 19891107 20011224 836600 99999 MARAMBAIA BR -23.05 -43.6 16.0 19840501 20000601 836630 99999 PONTA DA ARMACAO BR -22.883000000000003 -43.033 2.0 19790901 19840828 836690 99999 SAO SIMAO BR -21.483 -47.55 617.0 19880513 20100428 836710 99999 CAMPO FONTENELLE BR SBYS -21.985 -47.335 599.8 19730101 20170923 836720 99999 ARACATUBA BR -21.2 -50.433 397.0 20070717 20130430 836723 99999 PORTO SEGURO BR -16.433 -39.067 51.0 20070717 20110414 836724 99999 CARLOS PRATES BR SBPR -19.909000000000002 -43.99100000000001 927.8 20070717 20170923 836725 99999 ARARAQUARA BR SBAQ -21.811999999999998 -48.133 711.4 20070717 20170923 836726 99999 CASCAVEL BR SBCA -25.0 -53.501000000000005 753.8 20070717 20170923 836727 99999 CRICIUM/FORQUILHINHA BR SBCM -28.733 -49.417 28.3 20070717 20170719 836728 99999 GUAJARA MIRIM BR SBGM -10.786 -65.285 145.7 20070717 20170923 836729 99999 TANCREDO THOMAS DE FARIA BR SBGU -25.386999999999997 -51.52 1065.0 20070717 20150729 836740 99999 LINS BR -21.666999999999998 -49.75 426.0 20020415 20020415 836760 99999 CATANDUVA BR -21.133000000000003 -48.967 536.0 19880423 20170923 836790 99999 19310101 19440331 836793 99999 LEITE LOPES BR -21.133000000000003 -47.766999999999996 563.0 19920807 20100527 836810 99999 CALDAS BR -21.916999999999998 -46.383 1150.0 19310101 20130430 836820 99999 MUZAMBINHO BR -21.366999999999997 -46.516999999999996 1052.0 19360824 19400229 836830 99999 MACHADO BR -21.666999999999998 -45.917 873.0 19891117 20070925 836840 99999 CAMBUQUIRA BR -21.85 -45.3 960.0 19310101 19440331 836850 99999 ITAOCARA SOUTHEAST BR -21.816999999999997 -42.016999999999996 609.0 19360824 19400301 836860 99999 POCO FUNDO SOUTH BR -21.816999999999997 -45.95 917.0 19360824 19440321 836870 99999 LAVRAS BR -21.233 -45.0 919.0 19360824 20170923 836880 99999 SAO JOAO DEL REI BR -21.3 -44.266999999999996 991.0 19360824 19440331 836890 99999 MAJOR BRIGADEIRO DOORGAL BORGES BR SBBQ -21.267 -43.761 1114.7 19730101 20170923 836920 99999 FRANCISCO DE ASSIS BR SBJF -21.791999999999998 -43.387 911.0 19310101 20170923 836950 99999 ITAPERUNA BR -21.2 -41.883 123.0 19891110 20170923 836970 99999 19310101 19360724 836980 99999 BARTOLOMEU LISANDRO BR SBCP -21.698 -41.302 17.4 19310101 20170923 836990 99999 19360824 19400301 836993 99999 MACAE BR -22.333000000000002 -41.766999999999996 3.0 19900207 20110423 837000 99999 SAO TOME BR -22.05 -41.05 4.0 19790112 20140307 837020 99999 PONTA PORA BR -22.533 -55.7 650.0 19730101 20160201 837030 99999 PONTA PORA BR SBPP -22.55 -55.703 657.1 19730101 20170923 837040 99999 IVINHEMA BR -22.316999999999997 -53.933 369.0 19891117 20140615 837080 99999 GUARATINGUETA BR SBGW -22.791999999999998 -45.205 536.8 19770504 20170923 837085 99999 AIRPORT ESTADUAL ARTHUR SIQUEIRA BR SBBP -22.983 -46.533 880.2 20120622 20120622 837086 99999 JUNDIAI AIRPORT BR SBJD -23.183000000000003 -46.933 757.3 20120709 20161008 837140 99999 CAMPOS DO JORDAO BR -22.733 -45.583 1579.0 19880513 20100428 837160 99999 PRESIDENTE PRUDENTE BR SBDN -22.175 -51.425 450.2 19730101 20170923 837180 99999 CORDEIRO BR -22.033 -42.367 485.0 19890209 20170923 837190 99999 CABO FRIO BR -22.983 -42.033 7.0 19730101 19971105 837210 99999 VIRACOPOS BR SBKP -23.006999999999998 -47.135 661.4 19510120 20170923 837220 99999 BAURU BR SBBU -22.345 -49.053999999999995 617.2 19730101 20170923 837260 99999 SAO CARLOS BR SBSA -22.017 -47.883 856.0 19310101 20170923 837290 99999 CAMPINAS BR -22.9 -47.083 669.0 19310101 19810925 837320 99999 OURO FINO BR -22.283 -46.55 925.0 19360824 19901113 837360 99999 SAO LOURENCO BR -22.1 -45.016999999999996 900.0 19310101 20070925 837380 99999 RESENDE BR SBRS -22.483 -44.467 440.0 19310101 20170923 837390 99999 VOLTA REDONDA BR -22.483 -44.083 374.0 19730101 19870713 837410 99999 SANTA CRUZ BR SBSC -22.932 -43.718999999999994 3.0 19730101 20170923 837420 99999 VASSOURAS BR -22.4 -43.667 437.0 19360824 19900625 837430 99999 RIO DE JANEIRO BR -22.916999999999998 -43.167 5.0 19310101 20160925 837440 99999 ILHA RASA BR -23.066999999999997 -43.15 75.0 19790112 20010830 837450 99999 NOVA FRIBURGO BR -22.283 -42.533 856.0 19310101 20020129 837460 99999 GALEAO ANTONIO CARLOS JOBIM BR SBGL -22.809 -43.244 8.5 19310101 20170923 837470 99999 19310101 19440331 837480 99999 CAMPO DELIO JARDIM DE MATTOS BR SBAF -22.875 -43.385 33.5 19510101 20170923 837490 99999 MACAE AERO BR -22.333000000000002 -41.75 2.0 19360112 20071030 837500 99999 PETROPOLIS BR -22.517 -43.183 850.0 19320715 19440331 837550 99999 SANTOS DUMONT BR SBRJ -22.91 -43.163000000000004 3.4 19380913 20170923 837590 99999 SAO PEDRO DA ALDEIA BR SBES -22.813000000000002 -42.093 18.6 19730101 20170923 837660 99999 LONDRINA BR -23.383000000000003 -51.183 566.0 19730101 20170923 837670 99999 REGIONAL DE MARINGA SILVIO NAME JUNIOR BR SBMG -23.476 -52.016000000000005 545.0 19891117 20170923 837680 99999 LONDRINA BR SBLO -23.334 -51.13 569.1 19730101 20170923 837690 99999 JACAREZINHO BR -23.15 -49.967 471.0 19940503 19951231 837730 99999 AVARE BR -23.1 -48.917 793.0 19360824 20070925 837740 99999 ITAPEVA BR -23.95 -48.883 647.0 19310101 19970609 837750 99999 GUAIRA BR -24.083000000000002 -54.25 230.0 19730101 19970823 837753 99999 GUARULHOS BR -23.433000000000003 -46.467 768.0 19880621 20100527 837780 99999 CABO FRIO BR SBCB -22.921999999999997 -42.074 4.3 19730101 20170923 837790 99999 MARTE BR SBMT -23.509 -46.638000000000005 721.8 19730101 20170923 837800 99999 CONGONHAS BR SBSP -23.627 -46.655 801.9 19310101 20170923 837810 99999 SAO PAULO BR -23.5 -46.617 792.0 19730101 20100428 837820 99999 SANTOS BR -23.933000000000003 -46.317 14.0 19310101 20040311 837830 99999 CAMPO MOURAO BR -24.05 -52.367 616.0 19891117 20100914 837840 99999 TAUBATE BR SBTA -23.017 -45.567 577.0 19360824 20170923 837860 99999 UBATUBA BR -23.45 -45.067 8.0 19891117 20070417 837870 99999 MOELA BR -24.05 -46.266999999999996 101.0 19790112 20020113 837880 99999 ANGRA DOS REIS BR -23.017 -44.317 2.0 19310101 19951026 838000 99999 BOGUS BRAZILIAN BR 19861025 20050107 838090 99999 SAO JOSE DOS CAMPOS BR SBSJ -23.233 -45.833 625.0 19730101 19780813 838093 99999 PROFESSOR URBANO ERNESTO STUMPF BR SBSJ -23.229 -45.861999999999995 646.2 19900207 20170923 838110 99999 IVAI BR -24.4 -50.833 808.0 19360824 20170923 838130 99999 CASTRO BR -24.783 -50.0 1009.0 19360829 20070925 838140 99999 JAGUARIAIVA BR -24.25 -49.7 923.0 19380621 19440331 838180 99999 BASE AEREA DE SANTOS BR SBST -23.925 -46.288000000000004 3.0 19730101 20170923 838210 99999 IGUAPE BR -24.717 -47.55 3.0 19970910 20091218 838250 99999 ILHA DO MEL BR -25.483 -48.317 4.0 20101228 20101228 838260 99999 FOZ-DO-IGUACU(DEAD) BR -25.533 -54.6 226.0 19740730 19820525 838270 99999 CATARATAS INTL BR SBFI -25.596 -54.486999999999995 239.9 19530301 20170923 838280 99999 TOLEDO BR -24.733 -53.733000000000004 550.0 19900519 19970914 838290 99999 SAO JOSE DOS CAMPOS AERO BR -23.217 -45.867 646.0 19770501 20071030 838310 99999 S.MIGUEL IGUACU BR -25.333000000000002 -54.25 290.0 19810601 19941111 838340 99999 GUARAPUAVA BR -25.4 -51.467 609.0 19310101 20030206 838345 99999 EMBRAER UNIDADE GAVIAO PEIXOTO BR SBGP -21.774 -48.405 609.0 20130125 20130125 838360 99999 IRATI BR -25.467 -50.633 837.0 19771216 20170923 838370 99999 PONTA GROSSA BR -25.1 -50.167 868.0 19360824 20011108 838400 99999 AFONSO PENA BR SBCT -25.528000000000002 -49.176 910.7 19610101 20170923 838420 99999 BACACHERI BR SBBI -25.405 -49.232 931.8 19310101 20170923 838440 99999 PARANAGUA BR SBPG -25.517 -48.516999999999996 5.0 19310101 20170923 838510 99999 SOROCABA BR -23.483 -47.433 645.0 19891118 20100428 838570 99999 TREMEMBE BR -23.967 -45.55 547.0 19360824 19950727 838600 99999 PALMAS BR -26.483 -51.983000000000004 1090.0 19310101 19991202 838620 99999 19310814 19440331 838640 99999 PORTO UNIAO BR -26.233 -51.067 778.0 19900901 19970425 838670 99999 RIO NEGRO BR -26.1 -49.8 824.0 19360824 20040128 838690 99999 IRINEOPOLIS BR -26.25 -50.8 783.0 19380407 19400301 838710 99999 19360826 19440331 838720 99999 INDAIAL BR -26.9 -49.217 68.0 19891201 20070925 838740 99999 SAO FRANCISCO DO SUL BR -26.25 -48.65 72.0 19310101 20050829 838810 99999 IRAI BR -27.183000000000003 -53.233000000000004 247.0 19730101 20170923 838830 99999 CHAPECO BR SBCH -27.116999999999997 -52.617 679.0 19891117 20170923 838850 99999 BELA VISTA DE GOIAS BR -16.967 -48.95 152.0 19310814 19391125 838870 99999 CAMPOS NOVOS BR -27.4 -51.2 947.0 19310101 20170801 838890 99999 IMARIBO BR -27.2 -50.95 982.0 19841001 19900831 838910 99999 LAGES BR -27.816999999999997 -50.333 937.0 19310101 20070925 838930 99999 PARAIBA DO SUL SW BR -22.233 -43.333 377.0 19310101 19320407 838950 99999 ARVOREDO BR -27.3 -48.35 20.0 19790115 20030304 838970 99999 FLORIANOPOLIS BR -27.583000000000002 -48.567 2.0 19310101 20070925 838990 99999 HERCILIO LUZ BR SBFL -27.67 -48.547 6.1 19730101 20170923 839070 99999 SAO LUIZ GONZAGA BR -28.4 -55.016999999999996 245.0 19310101 20170923 839120 99999 CRUZ ALTA BR -28.633000000000003 -53.6 464.0 19891117 20070925 839140 99999 LAURO KURTZ BR SBPF -28.244 -52.327 724.2 19360824 20170923 839160 99999 LAGOA VERMELHA BR -28.416999999999998 -51.583 806.0 19880917 20070417 839180 99999 VACARIA BR -28.55 -50.867 955.0 19900305 20031226 839190 99999 BOM JESUS BR -28.666999999999998 -50.433 1048.0 19820701 20170923 839200 99999 S. JOAQUIM BR -28.283 -49.917 1402.0 19891117 20070925 839230 99999 URUSSANGA BR -28.517 -49.317 49.0 19360903 19400301 839240 99999 LAGUNA BR -28.483 -48.8 31.0 19360826 19901009 839250 99999 SANTA MARTA BR -28.6 -48.817 45.0 19400309 20170923 839260 99999 NAVEGANTES AERO BR -26.866999999999997 -48.633 5.0 19360904 19440331 839270 99999 URUGUAIANA BR -29.75 -57.083 62.0 19740612 20170923 839280 99999 RUBEM BERTA BR SBUG -29.781999999999996 -57.038000000000004 78.0 19310102 20170923 839310 99999 ALEGRETE BR -29.683000000000003 -55.516999999999996 121.0 19360824 19900124 839360 99999 SANTA MARIA BR -29.7 -53.7 95.0 19740730 20170923 839370 99999 SANTA MARIA BR SBSM -29.711 -53.688 87.5 19360829 20170923 839420 99999 CAXIAS DO SUL BR SBCX -29.166999999999998 -51.2 759.0 19891117 20170923 839480 99999 TORRES BR -29.333000000000002 -49.733000000000004 31.0 19730101 20170923 839520 99999 CANOAS BR -29.933000000000003 -51.133 8.0 19840601 20071030 839530 99999 SANTANA DO LIVRAMENTO BR -30.883000000000003 -55.533 231.0 19891122 20070925 839640 99999 ENCRUZILHADA DO SUL BR -30.533 -52.516999999999996 428.0 19730101 20170923 839670 99999 CANOAS BR SBCO -29.945999999999998 -51.144 7.9 19310101 20170923 839700 99999 MOSTARDAS BR -31.25 -50.9 5.0 19790112 20170923 839710 99999 SALGADO FILHO BR SBPA -29.994 -51.17100000000001 3.4 19730101 20170923 839730 99999 SANTANA DO IPANEMA E BR -9.367 -37.2 429.0 19310101 19310926 839750 99999 GENERAL CARNEIRO BR -15.717 -52.75 416.0 19330802 19380731 839800 99999 BAGE BR -31.333000000000002 -54.1 242.0 19360824 20170923 839810 99999 COMANDANTE GUSTAVO KRAEMER BR SBBG -31.391 -54.111999999999995 182.9 19610101 20170922 839820 99999 BOGUS BRAZILIAN BR 19890401 19891030 839850 99999 PELOTAS BR SBPK -31.718000000000004 -52.328 18.0 19730101 20170923 839950 99999 RIO GRANDE BR -32.016999999999996 -52.083 2.0 19310107 20150119 839970 99999 ST.VITORIA DO PALMAR BR -33.516999999999996 -53.35 24.0 19310101 20170923 839980 99999 CHUI BR -33.75 -53.367 13.0 19790112 20140312 839985 99999 ITAITUBA BR -4.25 -56.0 34.0 19870629 19920930 839995 99999 MONTE DOURADO BR SBMD -0.883 -52.6 200.0 19870629 19880509 840010 99999 SEYMOUR EC SEGS -0.45399999999999996 -90.266 63.1 19420801 20170923 840050 99999 LOS PERALES EC -0.6 -80.4 3.0 20040824 20060325 840051 99999 SEBASTIAN EC SESB -2.642 -77.157 274.3 20110628 20110628 840052 99999 SAN CARLOS ORIENTE EC SESS -2.056 -77.157 518.2 20110627 20110627 840060 99999 RIO AMAZONAS EC -1.5 -78.067 1043.0 20120211 20170923 840070 99999 SAN CRISTOBAL EC -0.433 -90.26700000000001 16.0 19741127 19771103 840080 99999 SAN CRISTOBAL EC SEST -0.917 -89.617 18.9 19730616 20170923 840090 99999 PUERTO VILLAMIL EC -1.0 -91.083 6.0 20031001 20100301 840100 99999 SAN CRISTOBAL AEROPUERTO EC -0.9 -89.617 18.0 20100901 20170923 840120 99999 MANTA/ELOY ALFARO EC -0.95 -80.7 6.0 19730101 19771025 840122 99999 BAHIA DE CARAQUEZ EC -0.583 -80.4 3.0 19730101 19740203 840130 99999 ESMERALDAS LAS PALMAS EC 0.9329999999999999 -79.667 -999.9 20040605 20060310 840150 99999 CHONE EC -0.7 -80.117 69.0 20020514 20020514 840180 99999 ESMERALDAS AEROPUERTO (TACHINA) EC SEES 0.9670000000000001 -79.617 7.0 19730101 20130902 840250 99999 LAGO AGRIO EC -0.083 -76.867 299.0 20120208 20170923 840260 99999 GENERAL RIVADENEIRA EC -0.983 -79.633 10.0 20040902 20170923 840270 99999 TENIENTE CORONEL LUIS A MANTILLA EC SETU 0.81 -77.708 2941.0 19380902 20170922 840320 99999 TULCAN EC 0.8170000000000001 -77.7 2950.0 20110402 20110611 840340 99999 LAGO AGRIO EC SELA 0.1 -76.883 351.0 19751104 19771103 840350 99999 EL ANGEL EC 0.617 -77.933 3000.0 20010921 20170508 840360 99999 SAN GABRIEL EC 0.6 -77.817 2860.0 20030404 20170923 840430 99999 ATAHUALPA EC SEIB 0.33799999999999997 -78.13600000000001 2226.3 19800401 20170922 840450 99999 INGUINCHO EC SEAS 0.25 -78.733 3185.0 19380603 20170923 840480 99999 LATACUNGA/COTOPAXI& EC -0.917 -78.6 2784.0 19381201 19420831 840500 99999 LA CONCORDIA EC 0.017 -79.367 360.0 20030404 20170923 840510 99999 OTAVALO EC 0.217 -78.25 2550.0 19730101 20090414 840515 99999 SAN CRISTOBAL ISL & EC -0.433 -90.26700000000001 16.0 19730620 19730728 840560 99999 TOMALON EC 0.033 -78.233 2790.0 20020924 20170923 840630 99999 NUEVA LOJA AEROPUER EC SELA 0.1 -76.883 297.0 19771101 20130904 840690 99999 SANTO DOMINGO LOS COLORADOS EC SESD -0.248 -79.214 522.4 19800728 20170922 840710 99999 MARISCAL SUCRE INTL EC SEQU -0.141 -78.488 2812.7 19770701 20170918 840720 99999 INAQUITO EC -0.16699999999999998 -78.483 2812.0 20030404 20170923 840725 99999 MARISCAL SUCRE INTERNATIONAL AIRPORT EC SEQM -0.11699999999999999 -78.367 2400.0 20130219 20170923 840750 99999 LIMONCOCHA EC -0.4 -76.6 221.0 20130222 20170923 840760 99999 LA TOLA EC -0.217 -78.367 2480.0 20031001 20170923 840880 99999 IZOBAMBA EC -0.35 -78.55 3058.0 20010921 20170923 840990 99999 COCA EC SECP -0.45 -76.95 300.0 20010921 20160602 841000 99999 FRANCISCO DE ORELLANA EC SECO -0.46299999999999997 -76.987 254.2 20120209 20170923 841010 99999 SAN VICENTE AEROPUERTO EC SEBC -0.583 -80.417 3.0 19771001 20170920 841020 99999 CHONE EC SECH -0.7170000000000001 -80.133 69.0 20060306 20170128 841050 99999 PUERTO ILA EC -0.467 -79.333 260.0 20100901 20170923 841110 99999 PORTOVIEJO/REALES EC -1.033 -80.467 44.0 19420413 19771101 841115 99999 PORTOVIEJO/REALES EC -1.033 -80.467 44.0 19741127 19840207 841170 99999 ELOY ALFARO INTL EC SEMT -0.95 -80.683 14.6 19770701 20170923 841200 99999 SAN JUAN LA MANA EC -0.9 -78.6 223.0 19750122 20120801 841230 99999 COTOPAXI INTL EC SELT -0.907 -78.616 2805.7 19800420 20170923 841290 99999 GUAYAQUIL/SIMON BOL EC -2.15 -79.883 4.0 19330801 19771024 841310 99999 TIPUTINI EC SETI -0.7829999999999999 -75.517 220.0 19790401 20020315 841320 99999 NUEVO ROCAFUERTE EC -0.917 -75.417 265.0 20010921 20170923 841350 99999 PORTOVIEJO EC -1.033 -80.45 60.0 20010921 20170923 841370 99999 REALES TAMARINDOS EC SEPV -1.042 -80.472 39.6 19771001 20111208 841380 99999 CUENCA EC -1.133 -78.967 2539.9 19410601 19420831 841390 99999 CUENCA/MARISCAL LA. EC -2.883 -78.967 2532.0 19420401 20140910 841400 99999 PICHILINGUE EC -1.1 -79.483 120.0 20010921 20170923 841420 99999 CORAZON EC -1.133 -79.083 1478.0 20080721 20170923 841430 99999 RUMIPAMBA EC -1.0170000000000001 -78.583 2628.0 20050917 20170923 841470 99999 CHACHOAN EC SEAM -1.212 -78.575 2591.4 19800401 20170923 841490 99999 TENA AEROPUERTO EC -0.983 -77.817 520.0 20080721 20111101 841600 99999 QUEROCHACA EC -1.35 -78.6 2940.0 20010921 20170923 841630 99999 SHELL MERA AEROPUERTO EC SEPA -1.5 -78.05 1054.0 19790224 20130904 841760 99999 CHIMBORAZO EC SERB -1.653 -78.656 2789.2 19800401 20170922 841770 99999 GUASLAN EC -1.75 -78.667 2729.0 20080721 20090330 841790 99999 PUYO EC -1.5 -77.9 960.0 20080503 20170923 841890 99999 CHILLANES EC -1.983 -79.067 2330.0 20080504 20090413 841900 99999 BABAHOYA EC -1.883 -79.517 11.0 20080721 20170321 841980 99999 MONTALVO EC SEMO -2.0669999999999997 -76.976 292.6 20020621 20031106 842000 99999 GENERAL ULPIANO PAEZ EC SESA -2.205 -80.98899999999999 5.5 19770701 20170923 842020 99999 MILAGRO EC -2.117 -79.6 13.0 19990405 20170923 842030 99999 SIMON BOLIVAR INTL EC SEGU -2.157 -79.884 5.8 19770701 20170923 842040 99999 GUAYAQUIL-INAMHI EC -2.15 -79.883 5.0 20050917 20170224 842044 99999 PATUCA EC SEPC -2.752 -78.264 542.8 19970423 19990618 842051 99999 MACARA/J.M.VELASCOI EC -4.383 -79.967 430.0 19730102 19741218 842140 99999 LA TRONCAL EC -2.367 -79.367 465.0 20090201 20090414 842170 99999 CORONEL E CARVAJAL EC SEMC -2.299 -78.12100000000001 1052.2 20030527 20170923 842190 99999 SUCUA EC SESC -2.483 -78.183 949.0 20100928 20100928 842200 99999 TAISHA EC -2.383 -77.467 510.0 20010906 20060331 842260 99999 CANAR EC -2.55 -78.933 3083.0 19730101 20170923 842290 99999 LAS PALMAS EC -2.717 -78.617 2400.0 20080721 20090414 842350 99999 PAUTE EC -2.767 -78.75 2289.0 19730101 20090414 842355 99999 LOJA/CAMILO PONCE EC -4.0 -79.367 1238.0 19730101 19901114 842390 99999 MARISCAL LAMAR EC SECU -2.889 -78.984 2531.7 19770701 20170923 842400 99999 GUALACEO EC -2.883 -78.767 2360.0 20080721 20090414 842480 99999 GENERAL MANUEL SERRANO EC SEMH -3.2689999999999997 -79.962 3.4 19771001 20100219 842520 99999 SANTA ROSA AEROPUERTO EC -3.4330000000000003 -79.983 7.0 20100901 20160519 842530 99999 GUALAQUIZA EC SEGZ -3.423 -78.567 804.7 20020216 20151005 842550 99999 MACARA/J.M.VELASCOI EC -4.383 -79.933 430.0 19730102 20140115 842570 99999 ZARUMA EC -3.7 -79.617 1279.0 20080721 20090414 842590 99999 SARAGURO EC -3.7 -79.3 2359.0 20080721 20090414 842650 99999 CAMILO PONCE ENRIQUEZ EC SETM -3.9960000000000004 -79.372 1236.3 19770701 20160322 842700 99999 LOJA/LA ARGELIA EC -4.033 -79.2 2160.0 20010921 20170922 842780 99999 CARIAMANGA EC -4.333 -79.617 1407.0 20080721 20110813 842790 99999 JOSE MARIA VELASCO IBARRA EC SEMA -4.378 -79.941 459.6 19771001 20030725 843010 99999 GUEPPI PE -0.11699999999999999 -75.25 300.0 19810724 19820131 843100 99999 ESTRECHO PE -2.583 -72.75 0.0 19811009 19811009 843310 99999 ALFEREZ VLADIMIR SARA BAUER PE SPAS -2.7960000000000003 -76.467 221.9 19810724 19810827 843470 99999 HUAMBOS PE -6.45 -78.967 2200.0 20011217 20011217 843700 99999 PEDRO CANGA PE SPME -3.553 -80.381 35.1 19740315 20170923 843710 99999 ZORRITOS PE -3.667 -80.667 49.0 20061111 20061111 843770 99999 CORONEL FRANCISCO SECADA VIGNETTA INTL PE SPQT -3.785 -73.309 93.3 19730101 20170923 843900 99999 CAPITAN MONTES PE SPYL -4.577 -81.25399999999999 86.0 19330209 20170923 843903 99999 CIRO ALEGRIA PE SPAC -4.567 -77.917 168.0 19821016 19840905 844000 99999 PAITA PE SPIT -5.117 -81.117 27.0 19830802 19890326 844010 99999 CAPITAN FAP GUILLERMO CONCHA IBERICO PE SPUR -5.206 -80.616 35.4 19570701 20170923 844050 99999 HUANCABAMBA PE SPAB -5.233 -79.45 1552.0 20020809 20020809 844100 99999 JAEN PE SPJE -5.582999999999999 -78.767 755.0 20110211 20170917 844160 99999 PIURA GRUP7 PE -5.183 -80.6 52.0 20040814 20050511 844250 99999 MOISES BENZAQUEN RENGIFO PE SPMS -5.894 -76.118 178.9 19490114 20170923 844350 99999 MOYOBAMBA PE SPBB -6.0329999999999995 -76.967 833.0 19600101 20011008 844355 99999 RIOJA PE -6.05 -77.15 792.0 19800423 19920404 844400 99999 JUAN SIMONS VELA PE SPJA -6.068 -77.16 825.1 19940401 20170317 844440 99999 CHACHAPOYAS PE SPPY -6.202000000000001 -77.85600000000001 2539.9 19600101 20170923 844520 99999 CAPT JOSE A QUINONES GONZALES INTL PE SPHI -6.787000000000001 -79.828 29.6 19330102 20170923 844550 99999 CADETE GUILLERMO DEL CASTILLO PAREDES PE SPST -6.5089999999999995 -76.373 274.3 19500104 20170923 844720 99999 GEN FAP ARMANDO REVOREDO IGLESIAS PE SPJR -7.138999999999999 -78.48899999999999 2676.4 19570701 20170923 844740 99999 JUANJUI PE SPJI -7.169 -76.729 349.9 19501028 20170923 845010 99999 CAPITAN CARLOS MARTINEZ DE PINILLOS PE SPRU -8.081 -79.109 32.3 19490102 20170923 845050 99999 SANTIAGO DE CHUCO PE -8.133 -78.167 3129.0 19870628 19880214 845150 99999 CAP FAP DAVID ABENZUR RENGIFO INTL PE SPCL -8.378 -74.574 156.4 19490102 20170923 845310 99999 TENIENTE JAIME A DE MONTREUIL MORALES PE SPEO -9.15 -78.524 21.0 19600702 20170923 845340 99999 TINGO MARIA PE SPGM -9.133 -75.95 665.0 19490222 20170923 845420 99999 COMANDANTE FAP GERMAN ARIAS GRAZIANI PE SPHZ -9.347000000000001 -77.598 2749.9 19730101 20170923 845600 99999 PUERTO ESPERANZA PE SPEP -9.767999999999999 -70.706 221.0 19811231 19820515 845640 99999 ALFEREZ FAP D F FERNANDINI PE SPNC -9.879 -76.205 1850.1 19600307 20170923 845645 99999 HUANUCO/ALFEREZ FAP PE -9.9 -76.233 1859.0 19740218 19740318 845720 99999 PARAMONGA PE -10.667 -77.833 46.0 19600705 20060211 845800 99999 MAZAMARI PE SPMF -11.333 -74.55 685.0 20090922 20170916 845805 99999 ECHARATE PE SPWT -11.85 -72.933 384.0 20120101 20130110 845820 99999 PARANONGA PE -9.333 -76.183 14.9 19490101 19531112 845930 99999 ATALAYA PE SPAY -10.729000000000001 -73.767 228.9 19570701 20170923 846030 99999 LA MERCED PE -11.083 -75.283 801.0 19570701 19661230 846130 99999 LA OROYA PE -11.482999999999999 -75.9 3632.0 19600701 19661231 846230 99999 JAUJA PE -11.783 -75.467 3322.0 19570701 19661231 846231 99999 FRANCISCO CARLE PE SPJJ -11.783 -75.473 3363.2 20010925 20170922 846280 99999 JORGE CHAVEZ INTL PE SPIM -12.022 -77.11399999999999 34.4 19601106 20170708 846285 99999 LAS PALMAS PE -12.15 -77.0 78.0 20030924 20030924 846300 99999 HUAYAO PE -12.033 -75.317 3350.0 19600808 20040902 846310 99999 LINATAKBC PE -11.9 -76.967 155.1 19360826 19641231 846330 99999 HUANCAYO PE -12.067 -75.233 3350.0 19600701 19661231 846580 99999 PADRE ALDAMIZ PE SPTU -12.614 -69.229 200.9 19471108 20170923 846655 99999 PATRIA PE SPIR -13.033 -71.267 678.0 19730804 19740122 846730 99999 CORONEL FAP ALFREDO MENDIVIL DUARTE PE SPHO -13.155 -74.204 2717.9 19660104 20170923 846770 99999 QUINCEMIL PE SPIL -13.267000000000001 -70.667 634.0 19600101 19881114 846860 99999 TENIENTE ALEJANDRO VELASCO ASTETE INTL PE SPZO -13.536 -71.939 3310.1 19490303 20170923 846865 99999 ANDAHUAYLAS PE -13.7 -73.35 3444.0 19741112 19940405 846880 99999 ANDAHUAYLAS PE SPHY -13.706 -73.35 3444.2 19940401 20170923 846910 99999 PISCO INTL PE SPSO -13.745 -76.22 11.9 19350415 20170923 847050 99999 PUQUIO PE -14.7 -74.133 3213.0 19810801 20020621 847200 99999 MARIA REICHE NEUMAN PE SPZA -14.854000000000001 -74.962 566.9 20010915 20170923 847210 99999 SAN JUAN DE MARCONA PE SPJN -15.383 -75.167 60.0 19570701 20020225 847310 99999 PUERTO DE LOMAS NW PE -15.533 -74.917 10.0 19490102 19531231 847350 99999 JULIACA PE SPJL -15.467 -70.158 3825.8 19610308 20170923 847465 99999 CARAVELI PE SPVL -15.767000000000001 -73.417 1833.0 19730802 19740730 847520 99999 RODRIGUEZ BALLON PE SPQU -16.340999999999998 -71.583 2561.8 19420101 20170923 847570 99999 OCONA PE -16.433 -73.1 0.0 19810708 19810708 847600 99999 MAZO CRUZ PE -16.733 -69.717 4045.0 19810724 19810829 847610 99999 MOLLENDO PE SPDO -17.033 -72.017 13.0 20020209 20020209 847615 99999 CESAR TORKE PODESTA PE SPEQ -17.179000000000002 -70.931 1365.5 19840713 19841003 847710 99999 ILO PE -17.7 -71.35 9.0 20011007 20011007 847730 99999 ILO PE SPLO -17.695 -71.344 21.9 20010915 20170923 847750 99999 PUNTA COLES PE -17.7 -71.383 50.0 19810701 19810907 847820 99999 CORONEL CARLOS CIRIANI SANTA ROSA INTL PE SPTN -18.053 -70.27600000000001 468.8 19570701 20170923 847826 99999 PLAYA POINT PONCE PE X69 17.967 -66.617 0.0 19790508 19790517 847920 99999 RUTEROS EAST CI -18.65 -70.233 780.0 19491016 19531231 850330 99999 GUAYARAMERIN BL SLGY -10.817 -65.35 130.0 19430202 20110610 850335 99999 GUAYARAMERIN INTERNATIONAL BL SLGM -10.533 -65.233 140.0 20110327 20170907 850410 99999 HEROES DEL ACRE BL SLCO -11.04 -68.783 271.9 19430201 20170923 850430 99999 RIBERALTA BL SLRI -11.017000000000001 -66.117 135.0 19430301 20170923 851040 99999 SAN JOAQUIN BL SLJO -13.067 -64.667 140.0 19421102 20170923 851090 99999 SAN RAMON BL SLRA -13.3 -64.7 140.0 19830401 20170923 851140 99999 MAGDALENA BL SLMG -13.333 -64.15 141.0 19730103 20170923 851160 99999 BAURES BL -13.75 -65.433 143.9 20120102 20170923 851175 99999 SANTA ANA BL SLSA -13.767000000000001 -65.45 220.0 19730120 19750224 851230 99999 SANTA ANA DEL YACUMA BL SLSA -13.762 -65.435 143.9 19870102 20170923 851390 99999 SANTA ROSA BL SLSR -14.067 -66.783 224.9 20111201 20170923 851400 99999 REYES BL SLRY -14.3 -67.367 280.0 19730103 20170923 851410 99999 RURRENABAQUE BL SLRQ -14.482999999999999 -67.483 202.0 19451010 20170923 851510 99999 APOLO BL SLAP -14.732999999999999 -68.417 1415.0 19421001 20080910 851515 99999 BAURES BL SLBU -13.583 -63.583 385.0 20091004 20170907 851516 99999 SANTA ROSA BL -14.067 -66.783 224.9 20100112 20120121 851520 99999 SAN BORJA/CAPT GERM BL SLSB -14.867 -66.75 194.0 19730101 20170923 851530 99999 SAN IGNACIO DE MOXO BL SLSM -14.967 -65.633 241.0 19730103 20170923 851540 99999 TTE AV JORGE HENRICH ARAUZ BL SLTR -14.819 -64.918 155.1 19430101 20170923 851710 99999 TIPUANI BL SLTP -15.533 -68.0 560.0 19870510 19870803 851750 99999 ASCENCION GUARAYOS BL SLAS -15.717 -63.1 247.0 19460902 20170923 851950 99999 SAN JAVIER BL SLJV -16.267 -62.467 520.0 19750620 20170923 851960 99999 CONCEPCION BL SLCP -16.25 -62.1 497.0 19420801 20170923 852000 99999 LAJA BL -16.517 -68.3 3959.0 19830701 19891012 852010 99999 EL ALTO INTL BL SLLP -16.512999999999998 -68.192 4061.5 19360401 20170923 852030 99999 OVEJUYO BL -16.517 -68.05 4320.0 19520901 19601231 852050 99999 TODOS SANTOS BL SLTS -16.767 -65.183 335.0 19790319 19790410 852070 99999 SAN IGNACIO VELASCO BL SLSI -16.367 -60.95 413.0 19430101 20170923 852100 99999 SAN MATIAS BL SLTI -16.333 -58.383 124.0 19860802 20170923 852150 99999 BOGUS BOLIVIAN BL 19881113 20021208 852224 99999 SANTIAGO BL SLTG 0.0 0.0 -999.0 19850831 19891215 852230 99999 JORGE WILSTERMAN BL SLCB -17.421 -66.17699999999999 2548.1 19420201 20170923 852300 99999 CHARANA BL SLCN -17.583 -69.45 4057.0 19380101 20080129 852420 99999 JUAN MENDOZA BL SLOR -17.963 -67.07600000000001 3702.1 19380301 20170923 852440 99999 VIRU VIRU INTL BL SLVR -17.645 -63.135 373.4 19840701 20170923 852450 99999 EL TROMPILLO BL SLET -17.812 -63.17100000000001 417.9 19421001 20170923 852470 99999 SAN JOSE BL SLJE -17.833 -60.75 284.0 19420801 20170923 852640 99999 VALLEGRANDE BL SLVG -18.467 -64.1 1998.0 19420701 20170923 852680 99999 ROBORE (CIV/MIL) BL SLRB -18.317 -59.75 284.0 19430101 20170923 852830 99999 JUANA AZURDUY DE PADILLA BL SLSU -19.007 -65.289 2903.8 19440301 20160513 852890 99999 TTE DE AV SALVADOR OGAYA G BL SLPS -18.975 -57.821000000000005 133.8 19420601 20170923 852930 99999 CAPITAN NICOLAS ROJAS BL SLPO -19.543 -65.72399999999999 3935.9 19471101 20170923 853000 99999 RIO MULATOS BL -19.7 -66.783 3815.0 19830701 19850106 853005 99999 LA INDIA BL 0.0 0.0 -999.0 19840911 19840911 853120 99999 MONTEAGUDO BL SLAG -19.783 -63.917 992.0 19901005 20170223 853150 99999 CAMIRI BL SLCA -20.05 -63.567 792.0 19460117 20170923 853220 99999 UYUNI BL -20.583000000000002 -66.8 3670.0 19380106 19500603 853450 99999 TCNL RAFAEL PABON BL SLVM -21.255 -63.406000000000006 398.1 19800501 20170923 853640 99999 CAPITAN ORIEL LEA PLAZA BL SLTJ -21.555999999999997 -64.70100000000001 1854.4 19440401 20170923 853645 99999 COLLPANI BL 0.0 0.0 -999.0 19850129 19850129 853650 99999 YACUIBA BL SLYA -21.961 -63.652 645.0 19440601 20170923 853730 99999 VILLAZON BL -22.083000000000002 -65.6 3451.0 19380101 19410731 853940 99999 BERMEJO BL -22.767 -64.317 381.0 19860304 20170923 854050 99999 CHINCHORRO CI -18.467 -70.317 29.0 19491201 20100121 854060 99999 CHACALLUTA CI SCAR -18.349 -70.339 50.9 19350414 20170923 854100 99999 CHORRILLOS CI -26.467 -69.433 3200.0 19350501 19430130 854170 99999 IQUIQUE CI -20.533 -70.183 52.0 19350103 20170614 854180 99999 DIEGO ARACENA INTL CI SCDA -20.535 -70.181 47.2 19730101 20170923 854320 99999 CALAMA CI -22.5 -68.9 2320.0 19370324 20170923 854420 99999 CERRO MORENO INTL CI SCFA -23.444000000000003 -70.445 138.7 19350101 20170923 854425 99999 CALAMA/EL LOA & CI SCCF -22.433000000000003 -68.917 2270.0 19730313 19900401 854480 99999 LA SERENA CI -29.916999999999998 -71.2 146.0 19491201 19551231 854520 99999 ISLA SAN FELIX CI SCFX -26.294 -80.096 50.3 20080301 20170921 854590 99999 CANAL BAJO CARLOS HOTT SIEBERT CI SCJO -40.611 -73.061 57.0 20040904 20170923 854591 99999 AD MELINKA CI SCMK -43.894 -73.74 11.0 20091031 20170919 854595 99999 DESIERTO DE ATACAMA CI SCAT -27.261 -70.779 204.2 20060710 20170923 854600 99999 CHANARAL CI SCRA -26.333000000000002 -70.607 29.6 19630101 20021018 854640 99999 EL JUNCAL CI -32.85 -70.15 2251.0 19350121 19391207 854660 99999 CALDERA CI -27.066999999999997 -70.8 55.0 19350103 19541224 854670 99999 DESIERTO DE ATACMA CI -27.25 -70.77 204.0 20050724 20170413 854680 99999 HANGOA-ROA CI -27.15 -109.417 20.0 19490207 19531231 854690 99999 MATAVERI INTL CI SCIP -27.165 -109.42200000000001 69.2 19570630 20170923 854700 99999 CHAMONATE CI SCHA -27.296 -70.414 298.0 19350104 20090916 854705 99999 COPIAPO/CHAMONATE & CI SCHA -27.35 -70.333 370.0 19730313 19900329 854800 99999 BOGUS CHILEAN CI 19890112 20031026 854860 99999 VALLENAR CI SCLL -28.596 -70.756 525.8 19360514 20111031 854880 99999 LA FLORIDA CI SCSE -29.916 -71.2 146.6 19350102 20170923 854990 99999 LA SERNA CI -28.083000000000002 -70.75 32.0 19491201 19551223 855000 99999 COQUIMBO/PT TORTUGA CI -29.95 -71.367 25.0 19350101 19900401 855080 99999 OVALLE/TUQUI CI SCOV -30.566999999999997 -71.183 305.0 19350102 19840511 855410 99999 EL CRISTO/RENDENTOR CI -32.833 -70.083 3830.0 19340101 19420831 855420 99999 PORTILLO CI -32.833 -70.133 2888.0 19811103 19820310 855430 99999 QUINTERO CI SCER -32.79 -71.52199999999999 3.7 19350101 20110330 855436 99999 ISLA ROBINSON CRUSOE/AD ROBINSON CRUSOE CI -33.667 -78.929 43.3 20120106 20120315 855450 99999 CARACOLES CI -32.8 -70.083 3851.0 19491201 19551231 855480 99999 LOS ANDES CI -32.817 -70.6 816.0 19350501 19520130 855560 99999 BOGUS CHILEAN CI 19890203 20051001 855580 99999 PUNTA ANGELES CI -33.033 -71.633 41.0 19350101 20170923 855600 99999 19750807 19750919 855610 99999 VINA DEL MAR CI SCRD -33.05 -71.583 342.0 19730219 20170919 855620 99999 EL BELLOTO(CAFB) CI -33.05 -71.417 123.0 19730101 20020204 855740 99999 ARTURO MERINO BENITEZ INTL CI SCEL -33.393 -70.786 474.0 19730101 20170923 855770 99999 QUINTA NORMAL CI -33.433 -70.683 520.0 19350101 20170923 855780 99999 INFIERNILLO CI -33.167 -70.283 4300.0 19350813 19351029 855790 99999 LOS CERRILLOS AR SCTI -33.493 -70.69800000000001 524.0 19630101 20060207 855800 99999 EULOGIO SANCHEZ CI SCTB -33.455999999999996 -70.547 648.9 19370316 20170919 855810 99999 EL BOSQUE(CAFB) CI -33.567 -70.683 573.0 19630101 19900801 855850 99999 JUAN FERNANDEZ CI SCIR -33.633 -78.833 29.0 19350101 20170923 855860 99999 SANTO DOMINGO CI SCSN -33.65 -71.617 75.0 19730102 20170923 856040 99999 SEWELL CI -34.083 -70.367 2155.0 19630103 19750831 856050 99999 PARRON CI -34.233000000000004 -70.667 692.0 19730102 19750811 856080 99999 DE LA INDEPENDENCIA CI -34.167 -70.767 441.0 19730101 20100927 856200 99999 TALCA CI -35.417 -71.65 97.0 19350311 19470110 856210 99999 SAN FERNANDO CI -34.583 -71.0 302.0 19380505 19521209 856290 99999 CURICO/GEN FREIRE CI SCIC -34.967 -71.217 242.0 19350101 20170923 856300 99999 CURICO CI -33.016999999999996 -70.75 210.9 19491202 19551231 856310 99999 ROBLEDAL NORTHWEST CI -35.016999999999996 -70.5 2156.0 19400501 19420831 856400 99999 CONSTITUCION/QUIVOL CI -35.3 -72.4 14.0 19350102 20021212 856480 99999 BOGUS CHILEAN CI 19860102 20070825 856570 99999 LINARES CI SCLN -35.85 -71.55 156.0 19350103 19741214 856720 99999 GENERAL BERNARDO O HIGGINS CI SCCH -36.582 -72.031 150.9 19380602 20170923 856725 99999 19750227 19750425 856770 99999 PUNTA TUMBES (LH) CI -36.617 -73.1 100.0 19730102 19880919 856790 99999 BOGUS CHILEAN CI 19860501 20070825 856800 99999 BOGUS CHILEAN CI -35.283 -72.883 84.1 19350101 19551231 856820 99999 CARRIEL SUR INTL CI SCIE -36.773 -73.063 7.9 19730101 20170923 856830 99999 CONCEPCION CI -36.817 -73.033 10.0 19570701 19681231 856840 99999 CONCEPCION CI -35.167 -72.95 14.9 19350101 19551231 857030 99999 MARIA DOLORES CI SCGE -37.402 -72.425 114.0 19350813 20170923 857040 99999 LOS ANGELES CHILI CI -36.533 -71.65 130.1 19491202 19551231 857250 99999 VICTORIA CI -38.233000000000004 -72.35 350.0 19730101 19741101 857270 99999 TRAIGUEN CI -38.25 -72.683 248.0 19350102 19541223 857320 99999 ISLA MOCHA CI -38.367 -73.9 23.0 19350101 19900323 857420 99999 TENUCO CI -38.25 -71.417 114.0 19491201 19551231 857430 99999 MAQUEHUE CI SCTC -38.766999999999996 -72.637 92.7 19350102 20140814 857440 99999 ARAUCANIA CI -38.933 -72.65 45.0 19350102 20160312 857490 99999 PUERTO DOMINQUEZ CI -37.1 -72.767 4.9 19491201 19530911 857571 99999 PUCON CI SCPC -39.293 -71.916 260.0 20091221 20160429 857580 99999 LONCOCHE CI -39.35 -72.633 111.0 19730101 19850228 857660 99999 PICHOY CI SCVD -39.65 -73.086 18.0 19730101 20170923 857670 99999 CAUCAU CI -39.783 -73.217 13.0 19431113 19681231 857820 99999 OSORNO CI -40.6 -73.05 58.0 19730101 20170923 857825 99999 MOCOPULLI ARPT CI SCPQ -42.333 -73.717 160.0 20130202 20170923 857990 99999 EL TEPUAL INTL CI SCTE -41.43899999999999 -73.094 89.6 19350102 20170923 858000 99999 PUERTO MONTT CI -40.533 -71.067 3.0 19491201 19581231 858010 99999 PUERTO MONTT/LA CH CI -41.467 -72.817 5.0 20020615 20020615 858120 99999 BOGUS CHILEAN CI 19841103 20070825 858180 99999 ANCUD/PUPELDE CI SCAC -41.9 -73.8 114.0 19630102 20090702 858190 99999 ANCUD/PUPELDE & CI -41.9 -73.8 11.0 19730206 19740214 858200 99999 SEGUNDO CORRAL ALTO CI -42.083 -71.867 366.0 19630128 19900405 858203 99999 SEGUNDO CORRAL ALTO CI SCSR -42.083 -71.933 0.0 19841018 19900405 858250 99999 CASTRO/GAMBOA CI -42.483000000000004 -73.767 44.0 19730101 20020101 858300 99999 CHAITEN CI -42.917 -72.7 4.0 19630211 20080505 858310 99999 QUELLON CI -43.117 -73.633 4.0 19570630 20100924 858320 99999 FUTALEUFU CI SCFT -43.2 -71.817 350.0 19730101 20170919 858325 99999 GUARDIAMARINA ZANARTU CI SCGZ -54.933 -67.633 26.8 20100927 20170919 858326 99999 QUELLON CI SCON -43.117 -73.633 4.0 20100927 20170910 858327 99999 DE LA INDEPENDENCIA CI SCRG -34.167 -70.783 440.7 20100928 20170830 858340 99999 ISLA HUAFO CI -43.567 -74.833 45.0 19350101 20170923 858360 99999 ALTO PALENA CI SCAP -43.617 -71.817 280.0 19630102 20170910 858450 99999 RIO CISNES CI -44.55 -71.4 700.0 19630101 19731216 858610 99999 AYSEN CI -48.6 -71.3 10.1 19491201 19551231 858620 99999 PUERTO AYSAN CI SCAS -45.4 -72.7 10.0 19350101 20170830 858640 99999 TENIENTE VIDAL CI SCCY -45.593999999999994 -72.10600000000001 310.9 19630101 20170923 858740 99999 BALMACEDA CI SCBA -45.916000000000004 -71.689 524.9 19730101 20170923 858860 99999 CHILE CHICO CI SCCC -46.583 -71.687 326.1 19630101 20170830 858890 99999 FARO RAPER CI -46.8 -75.633 46.0 19630102 20170923 858920 99999 COCHRANE CI SCHR -47.244 -72.58800000000001 196.0 19630101 20170922 858960 99999 ISLOTES EVANGELISTAS CI -52.383 -75.117 56.0 19360603 20170922 859070 99999 PUERTO EDEN CI -49.133 -74.45 6.0 19630102 19730430 859150 99999 CERRO GUIDO CI -50.95 -72.417 152.0 19630102 19681231 859200 99999 19350424 19430331 859210 99999 TENIENTE JULIO GALLARDO CI SCNT -51.67100000000001 -72.528 66.1 19840115 20170922 859211 99999 EL LOA CI SCCF -22.498 -68.904 2299.1 20040706 20170923 859212 99999 VINA DEL MAR CI SCVM -32.95 -71.479 140.5 20091031 20170923 859300 99999 ISLOTES EVANGELISTAS CI -52.4 -75.1 52.0 19370528 20170923 859310 99999 PUNTA DUNGENESS CI -52.4 -68.433 18.0 19730101 19900730 859340 99999 CARLOS IBANEZ DEL CAMPO INTL CI SCCI -53.003 -70.855 42.4 19350101 20170923 859350 99999 DESTACAMENTO CI -53.15 -70.9 8.0 19350813 19900403 859360 99999 PORVENIR/CAPT FUE CI -53.25 -70.333 30.0 19590101 19640328 859363 99999 CAPITAN FUENTES MARTINEZ CI SCFM -53.254 -70.319 31.7 19860507 20170916 859370 99999 BOGUS CHILEAN CI 19350102 19890526 859410 99999 PUNTA ARENAS EAST CI -53.15 -70.883 8.0 19491201 19581231 859670 99999 PUERTO WILLIAMS CI -54.933 -67.633 23.0 19370303 20100927 859680 99999 PUERTO WILLIAMS CI -54.933 -67.617 26.8 19491201 20160120 859690 99999 CALETA PERON CI -54.933 -68.533 0.0 19840102 19900511 859700 99999 ISLA HORNOS CI -55.95 -67.283 11.0 19840115 20170917 859720 99999 ISLA DIEGO RAMIREZ CI -56.475 -68.73 11.0 19630102 20170921 859840 99999 FREI CHI-BASE CI -62.25 -58.933 10.0 19730101 19850808 859860 99999 PRAT CHI-BASE CI -62.5 -59.683 5.0 19491201 19850908 859880 99999 BERNARDO O`HIGGINS CI -63.317 -57.9 10.0 19491201 19850630 859950 99999 VIDELA AY -64.817 -62.867 10.0 19520404 19840101 860040 99999 MAYOR LAGERENZA PA -19.917 -60.766999999999996 61.0 19790806 19900203 860110 99999 ADRIAN JARA PA -19.533 -59.367 150.0 19730719 20130223 860170 99999 NUEVA ASUNCION PA SGNA -20.717 -61.917 315.0 19730102 20030227 860330 99999 BAHIA NEGRA PA SGBN -20.233 -58.167 96.0 19570701 20140207 860335 99999 CARLOS MIGUEL GIMENEZ PA SGPI -26.881 -58.318000000000005 75.9 20090511 20170731 860336 99999 DR AUGUSTO ROBERTO FUSTER INTL PA SGPJ -22.642 -55.83 570.9 20090511 20170731 860337 99999 SILVIO PETTIROSSI INTL PA SGAJ -25.24 -57.519 89.0 20090511 20120715 860380 99999 LA PATRIA PA -21.333000000000002 -61.5 190.0 19860625 20050911 860650 99999 PELAYO PRAT GILL PA SGPG -22.55 -61.55 220.0 19730102 20140710 860680 99999 DR LUIS MARIA ARGANA INTL PA SGME -22.045 -60.622 168.6 19490315 20170923 860700 99999 FILADELFIA PA -22.366999999999997 -60.05 139.0 20040817 20050612 860860 99999 PUERTO CASADO PA SGLV -22.283 -57.933 87.0 19490401 20170923 860880 99999 PUERTO PINASCO BR -21.267 -56.183 79.9 19600202 19640413 860970 99999 PEDRO JUAN CABALLERO PA -23.633000000000003 -55.833 563.0 19590913 20170923 861070 99999 FORTINGRAL DIAZ PA -23.566999999999997 -60.567 155.0 19751003 19780819 861250 99999 POZO COLORADO PA -23.383000000000003 -58.9 100.0 19730102 19781105 861280 99999 POZO COLORADO PA SGPC -23.5 -58.783 99.0 20010901 20170923 861340 99999 TENIENTE COL CARMELO PERALTA PA SGCO -23.441999999999997 -57.427 77.1 19590215 20170923 861350 99999 PASO BARRETO PA -23.05 -56.983000000000004 95.0 19730102 19840518 861700 99999 GRAL. BRUGUEZ PA -24.75 -58.833 86.0 20010915 20170923 861840 99999 PUERTO ANTEQUERA PA -24.1 -57.167 64.0 19761001 19880607 861850 99999 SAN PEDRO PA SGSP -24.066999999999997 -57.083 80.0 20010915 20170923 861920 99999 SAN ESTANISLAO PA -24.666999999999998 -56.433 192.0 19750401 20170923 862000 99999 IGATIMI PA -24.133000000000003 -55.65 202.0 19830701 19870223 862100 99999 SALTOS DEL GUAIRA PA SGGR -24.033 -54.35 265.0 19790404 20170923 862170 99999 ASUNCION CIUDAD PA -24.717 -56.35 116.1 19490315 19640415 862180 99999 SILVIO PETTIROSSI INTL PA SGAS -25.24 -57.519 89.0 19490101 20170923 862182 99999 AEROPUERTO GUARANY PA SGES -25.45 -54.85 19960321 19960410 862183 99999 GUARANI INTL PA -25.45 -54.833 264.0 19960403 20170923 862200 99999 CAACUPE PA -25.4 -57.1 228.0 20051005 20051005 862210 99999 PARAGUARI PA -25.633000000000003 -57.133 116.0 20080721 20170923 862230 99999 CARAPEGUA PA -25.8 -57.217 116.0 19730102 20071218 862280 99999 PONTE DA FRONTEIRA AR -25.583000000000002 -54.55 125.0 19590101 19640415 862330 99999 VILLARRICA PA SGVR -25.767 -56.433 161.0 19590101 20170923 862340 99999 CORONEL OVIEDO PA -25.467 -56.4 163.0 20000330 20170923 862400 99999 QUIINDY PA -25.967 -57.217 181.0 20050405 20050806 862460 99999 AEROPUERTO INT. GUARANI PA -25.45 -54.833 236.0 20010915 20131103 862470 99999 VIVERO FORESTAL PA -25.517 -54.783 200.0 20021119 20031222 862480 99999 CIUDAD DEL ESTE PA -25.533 -54.6 196.0 19730104 20081014 862510 99999 QUYQUYHAT PA -26.217 -56.983000000000004 101.2 20120101 20170923 862550 99999 PILAR PA -26.85 -58.317 56.0 19590211 20170923 862600 99999 SAN JUAN BAUTISTA PA SGSJ -26.666999999999998 -57.15 126.0 19570701 20170923 862680 99999 CAAZAPA PA -26.183000000000003 -56.367 140.0 20000331 20170923 862750 99999 PASTOREO ITAPUA PA -26.916999999999998 -55.667 205.0 19750625 20040924 862850 99999 CAPITAN MEZA PA -26.833000000000002 -55.333 263.0 20000330 20170923 862880 99999 ITA-CORA PA -27.217 -58.266999999999996 -999.9 20010816 20031115 862940 99999 CAPT MIRANDA PA -27.2 -55.783 223.0 20010131 20010131 862960 99999 YASI-RETA PA -27.4 -56.45 86.0 19730102 19840217 862970 99999 ENCARNACION PA SGEN -27.316999999999997 -55.833 91.0 19490401 20170923 863150 99999 BELLA UNION UY -30.267 -57.583 53.0 19811101 20161006 863300 99999 ARTIGAS INTL UY SUAG -30.401 -56.508 128.0 19490102 20170923 863500 99999 PRESIDENTE GENERAL DON OSCAR D GESTIDO UY SURV -30.975 -55.476000000000006 223.0 19490101 20170923 863600 99999 NUEVA HESPERIDES INTL UY SUSO -31.433000000000003 -57.983000000000004 57.0 19490101 20170923 863700 99999 TACUAREMBO UY SUTB -31.749000000000002 -55.926 138.0 19790601 20170922 864250 99999 PAYSANDU UY -32.367 -58.05 52.0 19490102 19780315 864300 99999 TYDEO LARRE BORGES INTL UY SUPU -32.365 -58.06100000000001 55.0 19730101 20170923 864400 99999 CERRO LARGO UY SUMO -32.338 -54.217 114.0 19490101 20170923 864500 99999 YOUNG UY -32.683 -57.633 80.0 19780801 20170923 864600 99999 PASO DE LOS TOROS UY -32.8 -56.516999999999996 75.0 19501010 20170923 864805 99999 CAPT CURBELO UY -34.867 -55.1 30.0 19730102 19740210 864900 99999 MERCEDES/RICARDO DE UY SUME -33.25 -58.067 22.0 19490101 20170923 865000 99999 TREINTA Y TRES UY SUTR -33.217 -54.383 46.0 19490101 20170923 865300 99999 SANTA BERNARDINA INTL UY SUDU -33.359 -56.498999999999995 93.0 19490101 20170923 865450 99999 FLORIDA UY -34.083 -56.233000000000004 68.0 19950401 20170923 865500 99999 SAN JOSE UY -34.35 -56.717 41.0 19491103 19531224 865550 99999 MINAS UY -34.333 -55.217 133.0 19490102 19531230 865600 99999 LAGUNA DE LOS PATOS INTL UY SUCA -34.455999999999996 -57.771 21.0 19490101 20170923 865650 99999 ROCHA UY -34.483000000000004 -54.3 18.0 19490101 20170923 865750 99999 ANGEL S ADAMI UY SUAA -34.789 -56.265 53.0 19750401 20170923 865800 99999 CARRASCO INTL UY SUMU -34.838 -56.031000000000006 32.0 19490101 20170923 865820 99999 CAPT CURBELO UY -34.867 -55.1 30.0 19740429 19780715 865823 99999 CAPITAN CORBETA C A CURBELO INTL UY SULS -34.855 -55.093999999999994 29.0 19901018 20170923 865850 99999 PRADO UY -34.85 -56.2 16.0 19310102 20170923 865860 99999 LAGUNA DEL SAUCE UY -34.867 -55.1 35.0 20010915 20170923 865950 99999 PUNTA DEL ESTE UY -34.967 -54.95 24.1 19490101 20170923 865955 99999 EL JAGUEL INTL UY SUPE -34.914 -54.92100000000001 21.0 19751118 20031120 866060 99999 CONFRESA BR -10.65 -51.567 238.5 20160704 20170213 866070 99999 PALMAS BR -10.183 -48.3 281.5 20160704 20170923 866090 99999 BURITIRAMA BR -10.717 -43.65 503.5 20160704 20170923 866100 99999 DELFINO BR -10.45 -41.2 638.5 20160704 20170923 866110 99999 SENHOR DO BONFIM BR -10.45 -40.15 549.5 20160721 20170923 866120 99999 QUEIMADAS BR -10.982999999999999 -39.617 316.5 20160704 20170923 866130 99999 EUCLIDES DA CUNHA BR -10.533 -39.0 433.5 20160709 20170923 866140 99999 POCO VERDE BR -10.732999999999999 -38.1 363.5 20160704 20170923 866150 99999 CARIRA BR -10.4 -37.75 309.5 20160704 20170923 866160 99999 ARACAJU BR -10.95 -37.05 6.2 20160704 20170923 866180 99999 BREJO GRANDE BR -10.467 -36.483000000000004 11.5 20160706 20170923 866190 99999 CORURIPE BR -10.133 -36.283 75.5 20160704 20170923 866200 99999 EPITACIOLANDIA BR -11.017000000000001 -68.733 218.5 20160704 20170923 866220 99999 CACOAL BR -11.45 -61.433 211.5 20160704 20170923 866240 99999 JUINA BR -11.383 -58.783 375.5 20160704 20170923 866250 99999 JUARA BR -11.283 -57.533 261.5 20160704 20170923 866260 99999 SINOP BR -11.982999999999999 -55.567 372.5 20160704 20170923 866280 99999 SAO FELIX DO ARAGUAIA BR -11.617 -50.733000000000004 219.5 20160704 20170529 866290 99999 FORMOSO DO ARAGUAIA BR -11.883 -49.6 221.5 20160704 20170923 866300 99999 GURUPI BR -11.75 -49.05 288.5 20160704 20170923 866320 99999 DIANOPOLIS BR -11.6 -46.85 733.5 20160704 20170923 866330 99999 SANTA RITA DE CASSIA BR -11.017000000000001 -44.533 451.5 20160704 20170923 866340 99999 BARRA BR -11.083 -43.133 404.5 20160704 20170923 866350 99999 IRECE BR -11.333 -41.867 756.5 20160704 20170923 866360 99999 JACOBINA BR -11.2 -40.467 454.5 20160704 20170923 866370 99999 SERRINHA BR -11.667 -39.016999999999996 340.5 20160704 20170923 866380 99999 ITABAIANINHA BR -11.267000000000001 -37.8 209.5 20160704 20170923 866390 99999 CONDE BR -11.817 -37.617 15.5 20160704 20170628 866420 99999 VILHENA BR -12.732999999999999 -60.15 591.5 20160704 20170923 866430 99999 NOVO MUNDO BR -12.517000000000001 -58.233000000000004 432.5 20160704 20170923 866450 99999 SORRISO BR -12.55 -55.717 381.5 20160704 20170923 866470 99999 QUERENCIA BR -12.633 -52.217 383.5 20160704 20170923 866490 99999 PEIXE BR -12.017000000000001 -48.55 243.5 20160704 20170709 866500 99999 PARANA BR -12.617 -47.983000000000004 276.5 20160704 20170923 866510 99999 LUIS EDUARDO MAGALHAES BR -12.15 -45.817 755.5 20160704 20170923 866520 99999 BARREIRAS BR -12.15 -45.0 471.9 20160704 20170923 866530 99999 IBOTIRAMA BR -12.2 -43.217 431.5 20160704 20170923 866540 99999 LENCOIS BR -12.567 -41.383 440.5 20160704 20170923 866550 99999 MACAJUBA BR -12.117 -40.35 381.5 20160704 20170903 866560 99999 ITABERABA BR -12.517000000000001 -40.283 251.4 20160704 20170923 866570 99999 CRUZ DAS ALMAS BR -12.667 -39.15 227.4 20160704 20170923 866580 99999 FEIRA DE SANTANA BR -12.2 -38.967 232.5 20160704 20170923 866610 99999 COMODORO BR -13.717 -59.766999999999996 592.5 20160704 20170923 866620 99999 CAMPO NOVO DOS PARECIS BR -13.783 -57.833 571.5 20160704 20170923 866630 99999 NOVA MARINGA BR -13.033 -57.1 354.5 20160704 20170923 866640 99999 SAO JOSE DO RIO CLARO BR -13.45 -56.667 351.5 20110213 20170923 866650 99999 NOVA UBIRATA BR -13.417 -54.75 519.5 20160704 20170923 866660 99999 GAUCHA DO NORTE BR -13.183 -53.25 380.5 20160704 20170923 866700 99999 MONTE ALEGRE DE GOIAS BR -13.25 -46.883 1254.5 20160704 20170920 866710 99999 CORRENTINA BR -13.333 -44.617 550.5 20160911 20170923 866720 99999 BOM JESUS DA LAPA BR -13.267000000000001 -43.417 441.5 20160704 20170923 866730 99999 PIATA BR -13.15 -41.766999999999996 1291.5 20160704 20170923 866740 99999 ITIRUCU BR -13.533 -40.117 757.1 20160704 20170923 866750 99999 AMARGOSA BR -13.017000000000001 -39.617 408.5 20160704 20170923 866770 99999 MARAU BR -13.907 -38.972 11.5 20160704 20170923 866780 99999 SALVADOR BR -13.0 -38.5 52.9 20160704 20170923 866820 99999 TANGARA DA SERRA BR -14.65 -57.433 323.0 20160704 20170923 866840 99999 PARANATINGA BR -14.417 -54.033 475.5 20160704 20170613 866850 99999 SANTO ANTONIO DO LESTE BR -14.933 -53.883 649.5 20160704 20170923 866860 99999 AGUA BOA BR -14.017000000000001 -52.217 433.5 20160704 20170923 866890 99999 ITAPACI BR -14.982999999999999 -49.533 523.5 20160704 20170923 866900 99999 NIQUELANDIA BR -14.467 -48.45 584.5 20160704 20170923 866910 99999 ALTO PARAISO DE GOIAS BR -14.133 -47.516999999999996 1261.5 20160704 20170923 866920 99999 POSSE BR -14.083 -46.367 835.5 20160704 20170923 866930 99999 MONTALVANIA BR -14.4 -44.4 513.5 20160704 20170923 866940 99999 GUANAMBI BR -14.2 -42.75 552.5 20160704 20170923 866950 99999 ESPINOSA BR -14.917 -42.8 571.5 20160704 20170923 866960 99999 BRUMADO BR -14.183 -41.667 471.5 20160704 20170923 866970 99999 VITORIA DA CONQUISTA BR -14.883 -40.8 874.0 20160704 20170923 866980 99999 IPIAU BR -14.167 -39.7 126.5 20160704 20170923 866990 99999 ILHEUS BR -14.65 -39.167 79.5 20160704 20170923 867010 99999 VILA BELA DA S TRINDADE BR -15.067 -59.867 223.5 20160704 20170923 867020 99999 PONTES E LACERDA BR -15.25 -59.35 257.5 20160704 20170923 867030 99999 SALTO DO CEU BR -15.125 -58.128 304.5 20160704 20170923 867040 99999 PORTO ESTRELA BR -15.325 -57.226000000000006 146.5 20160704 20170923 867050 99999 CUIABA BR -15.617 -56.1 152.8 20160704 20170923 867070 99999 CAMPO VERDE BR -15.533 -55.133 750.5 20160829 20170923 867090 99999 ARAGARCAS BR -15.9 -52.25 348.5 20160704 20170923 867120 99999 GOIAS BR -15.933 -50.133 513.5 20160704 20170923 867125 99999 CALDAS NOVAS AIRPORT BR SBCN -17.733 -48.6 684.9 20140211 20140211 867130 99999 GOIANESIA BR -15.217 -48.983000000000004 668.5 20160704 20170923 867140 99999 FACULDADE DA TERRA BR -15.9 -48.117 1153.5 20160704 20170923 867150 99999 BRASILIA BR -15.783 -47.933 1161.0 20160704 20170923 867160 99999 AGUAS EMENDADAS BR -15.6 -47.633 1201.5 20160704 20170923 867180 99999 BURITIS BR -15.517000000000001 -46.433 895.5 20160704 20170918 867190 99999 CHAPADA GAUCHA BR -15.3 -45.617 881.5 20160704 20170923 867200 99999 MOCAMBINHO BR -15.083 -44.016999999999996 461.5 20160704 20170923 867210 99999 RIO PARDO DE MINAS BR -15.717 -42.433 854.5 20160704 20170923 867220 99999 AGUAS VERMELHAS BR -15.75 -41.45 751.5 20160704 20170923 867230 99999 ITAPETINGA BR -15.25 -40.233000000000004 270.5 20160704 20170918 867280 99999 RONDONOPOLIS BR -16.45 -54.567 285.5 20160704 20170923 867290 99999 GUIRATINGA BR -16.35 -53.766999999999996 527.5 20160704 20170923 867300 99999 CAIPONIA BR -16.967 -51.817 738.5 20160704 20170923 867320 99999 PARAUNA BR -16.963 -50.425 679.5 20160704 20170824 867340 99999 GOIANIA BR -16.65 -49.217 771.5 20160704 20170923 867350 99999 SILVANIA BR -16.683 -48.617 950.5 20160704 20170923 867360 99999 LUZIANIA BR -16.267 -47.967 959.5 20160704 20170923 867370 99999 CRISTALINA BR -16.783 -47.617 1203.5 20160704 20170923 867380 99999 UNAI BR -16.55 -46.883 632.5 20160704 20170923 867390 99999 SAO ROMAO BR -16.367 -45.117 461.5 20160704 20170923 867400 99999 MONTES CLAROS BR -16.717 -43.867 647.8 20160704 20170923 867410 99999 SALINAS BR -16.167 -42.317 496.5 20160704 20170923 867420 99999 ITAOBIM BR -16.583 -41.483000000000004 267.5 20160704 20170923 867430 99999 ALMENARA BR -16.167 -40.683 209.5 20160704 20170923 867440 99999 BELMONTE BR -16.083 -39.217 89.5 20160704 20170923 867450 99999 PORTO SEGURO BR -16.383 -39.183 86.5 20160704 20170923 867480 99999 ITIQUIRA BR -17.183 -54.5 586.5 20160704 20170923 867500 99999 ALTO TAQUARI BR -17.817 -53.283 876.5 20160704 20170923 867510 99999 MINEIROS BR -17.567 -52.6 707.5 20160704 20170815 867520 99999 JATAI BR -17.917 -51.717 583.5 20160728 20170923 867530 99999 RIO VERDE BR -17.783 -50.967 783.5 20160704 20170923 867550 99999 MORRINHOS BR -17.717 -49.1 772.9 20160704 20170923 867560 99999 PIRES DO RIO BR -17.3 -48.283 753.5 20160704 20170923 867570 99999 GUARDA-MOR BR -17.567 -47.2 1001.5 20160704 20170923 867580 99999 JOAO PINHEIRO BR -17.783 -46.117 871.5 20160704 20170923 867590 99999 PIRAPORA BR -17.25 -44.833 504.5 20160704 20170923 867610 99999 CAPELINHA BR -17.7 -42.383 933.5 20160912 20170923 867620 99999 TEOFILO OTONI BR -17.9 -41.516999999999996 476.5 20160704 20170923 867630 99999 SERRA DOS AIMORES BR -17.8 -40.25 209.5 20160704 20170919 867640 99999 CARAVELAS BR -17.733 -39.25 4.4 20160704 20170923 867650 99999 ABROLHOS BR -17.967 -38.7 26.5 20160704 20170923 867670 99999 CORUMBA BR -19.0 -57.633 127.5 20160704 20170923 867680 99999 NHUMIRIM BR -18.983 -56.617 105.5 20160704 20170923 867720 99999 CHAPADAO DO SUL BR -18.8 -52.6 819.5 20160826 20170623 867730 99999 SAO SIMAO BR -18.967 -50.633 490.0 20160704 20170915 867740 99999 ITUMBIARA BR -18.417 -49.2 489.5 20160704 20170923 867750 99999 ITUIUTABA BR -18.95 -49.533 561.5 20160704 20170923 867760 99999 UBERLANDIA BR -18.917 -48.25 870.5 20160704 20170923 867770 99999 CATALAO BR -18.15 -47.933 891.5 20160707 20170923 867780 99999 PATROCINIO BR -19.0 -46.983000000000004 964.5 20160704 20170923 867790 99999 TRES MARIAS BR -18.2 -45.467 922.5 20160911 20170922 867800 99999 CURVELO BR -18.75 -44.45 671.5 20160704 20170923 867810 99999 DIAMANTINA BR -18.233 -43.65 1357.5 20160704 20170923 867820 99999 GUANHAES BR -18.783 -42.95 861.5 20160704 20170923 867830 99999 GOVERNADOR VALADARES BR -18.783 -41.983000000000004 264.5 20160704 20170923 867840 99999 MANTENA BR -18.783 -40.983000000000004 271.5 20160704 20170923 867850 99999 NOVA VENECIA BR -18.7 -40.383 155.5 20160704 20170923 867860 99999 SAO MATEUS BR -18.717 -39.85 40.5 20160704 20170923 867890 99999 SAO GABRIEL DO OESTE BR -19.417 -54.55 648.5 20160704 20170923 867910 99999 CASSILANDIA BR -19.117 -51.717 517.5 20160704 20170923 867920 99999 PARANAIBA BR -19.7 -51.183 425.5 20160704 20170923 867930 99999 CAPINA VERDE BR -19.533 -49.533 548.5 20160704 20170923 867940 99999 CONCEICAO DAS ALAGOAS BR -19.986 -48.153 569.5 20160704 20170923 867950 99999 SACRAMENTO BR -19.883 -47.433 913.5 20160704 20170923 867960 99999 ARAXA BR -19.6 -46.933 1021.5 20160704 20170923 867980 99999 FLORESTAL BR -19.883 -44.417 743.5 20160704 20170816 868000 99999 BELO HORIZONTE - PAMPULHA BR -19.883 -43.967 870.5 20160704 20170923 868010 99999 TIMOTEO BR -19.583 -42.633 334.5 20160704 20170923 868020 99999 CARATINGA BR -19.733 -42.133 616.5 20160704 20170923 868030 99999 AIMORES BR -19.5 -41.067 194.5 20160704 20170923 868040 99999 SANTA TEREZA BR -19.983 -40.583 989.5 20160704 20170923 868050 99999 LINHARES BR -19.35 -40.067 41.5 20160704 20170923 868070 99999 MIRANDA BR -20.4 -56.433 141.5 20160704 20170923 868080 99999 AQUIDAUANA BR -20.483 -55.783 156.5 20160704 20170923 868090 99999 SIDROLANDIA BR -20.983 -54.967 465.5 20160704 20170814 868100 99999 CAMPO GRANDE BR -20.45 -54.617 531.5 20160704 20170923 868120 99999 AGUA CLARA BR -20.417 -52.883 339.5 20160704 20170923 868130 99999 TRES LAGOAS BR -20.783 -51.7 314.5 20160704 20170713 868140 99999 JALES BR -20.167 -50.6 458.5 20160704 20170923 868150 99999 VOTUPORANGA BR -20.417 -49.967 487.5 20160704 20170923 868160 99999 BARRETOS BR -20.566999999999997 -48.55 534.5 20160704 20170923 868170 99999 ITUVERAVA BR -20.359 -47.775 601.5 20160704 20170923 868180 99999 FRANCA BR -20.583000000000002 -47.383 1027.5 20160704 20170923 868190 99999 PASSOS BR -20.75 -46.633 785.5 20160704 20170923 868200 99999 FORMIGA BR -20.45 -45.45 879.5 20160704 20170923 868210 99999 IBIRITE (ROLA MOCA) BR -20.033 -44.016999999999996 1209.5 20160704 20170923 868230 99999 OURO BRANCO BR -20.55 -43.75 1062.5 20160704 20170923 868240 99999 VICOSA BR -20.767 -42.867 713.7 20160704 20170923 868250 99999 MANHUACU BR -20.267 -42.183 837.5 20160704 20170628 868280 99999 ALEGRE BR -20.75 -41.483000000000004 139.5 20160704 20170923 868290 99999 ALFREDO CHAVES BR -20.633000000000003 -40.733000000000004 36.5 20160704 20170923 868300 99999 VITORIA BR -20.317 -40.317 10.5 20160704 20170923 868330 99999 PORTO MURTINHO BR -21.7 -57.55 86.5 20160704 20170923 868340 99999 MARACAJU BR -21.616999999999997 -55.183 403.0 20160704 20170923 868360 99999 RIO BRILHANTE BR -21.783 -54.533 330.5 20160704 20170923 868380 99999 VALPARAISO BR -21.316999999999997 -50.933 375.5 20160704 20170923 868390 99999 JOSE BONIFACIO BR -21.083000000000002 -49.917 406.5 20160704 20170923 868400 99999 LINS BR -21.666999999999998 -49.733000000000004 461.0 20160704 20170923 868410 99999 ARIRANHA BR -21.133000000000003 -48.833 526.5 20160704 20170923 868420 99999 PRADOPOLIS BR -21.338 -48.114 545.5 20160704 20170923 868430 99999 IBITINGA BR -21.855999999999998 -48.8 493.5 20160704 20170923 868440 99999 CASA BRANCA BR -21.783 -47.083 731.5 20160704 20170923 868450 99999 SAO CARLOS BR -21.983 -47.883 864.5 20160704 20170923 868460 99999 CALDAS BR -21.916999999999998 -46.383 1151.5 20160704 20170923 868480 99999 VARGINHA BR -21.566999999999997 -45.4 926.5 20160704 20170923 868490 99999 SAO JOAO DEL-REI BR -21.1 -44.25 992.5 20160704 20170923 868500 99999 BARBACENA BR -21.217 -43.766999999999996 1156.5 20160704 20170923 868510 99999 JUIZ DE FORA BR -21.767 -43.367 951.5 20160704 20170923 868520 99999 MURIAE BR -21.1 -42.383 271.5 20160704 20170923 868530 99999 PRESIDENTE KENNEDY BR -21.1 -41.033 81.5 20160704 20170923 868540 99999 CAMBUCI BR -21.583000000000002 -41.95 36.5 20160704 20170923 868550 99999 CAMPOS BR -21.717 -41.35 26.5 20160704 20170627 868570 99999 PONTA PORA BR -22.533 -55.533 651.5 20160704 20170923 868580 99999 DOURADOS BR -22.2 -54.917 470.5 20160704 20170923 868590 99999 JUTI BR -22.85 -54.6 380.5 20160704 20170923 868600 99999 IVINHEMA BR -22.3 -53.817 374.8 20160704 20170901 868610 99999 DIAMANTE DO NORTE BR -22.633000000000003 -52.883 363.5 20160704 20170923 868620 99999 PARANAPOEMA BR -22.65 -52.133 312.5 20160704 20170923 868630 99999 PRESIDENTE PRUDENTE BR -22.116999999999997 -51.4 437.1 20160704 20170923 868640 99999 RANCHARIA BR -22.366999999999997 -50.967 351.5 20160704 20170923 868650 99999 BAURU BR -22.316999999999997 -49.067 551.5 20160704 20170923 868660 99999 OURINHOS BR -22.95 -49.9 449.5 20160704 20170923 868670 99999 BARRA BONITA BR -22.467 -48.55 544.5 20160704 20170923 868680 99999 PIRACICABA BR -22.7 -47.45 572.5 20160905 20170923 868690 99999 ITAPIRA BR -22.416999999999998 -46.8 634.5 20160704 20170923 868700 99999 MONTE VERDE BR -22.866999999999997 -46.05 661.5 20160704 20170923 868710 99999 MARIA DA FE BR -22.316999999999997 -45.367 1277.5 20160704 20170923 868720 99999 CAMPOS DO JORDAO BR -22.75 -45.6 1581.5 20160704 20170923 868730 99999 PASSA QUATRO BR -22.4 -44.967 1041.5 20160704 20170923 868740 99999 RESENDE BR -22.451 -44.445 453.5 20160704 20170923 868760 99999 PICO DO COUTO BR -22.467 -43.283 1778.5 20160704 20170923 868770 99999 XEREM BR -22.583000000000002 -43.266999999999996 34.5 20160704 20170923 868780 99999 SEROPEDICA-ECOLOGIA AGRICOLA BR -22.8 -43.683 35.5 20160704 20170923 868790 99999 RIO DE JANEIRO-VILA MILITAR BR -22.861 -43.411 46.5 20160704 20170923 868870 99999 RIO DE JANEIRO-FORTE DE COPACABANA BR -22.983 -43.183 46.5 20160704 20170923 868880 99999 TERESOPOLIS BR -22.449 -42.986999999999995 981.5 20160704 20170923 868890 99999 NOVA FRIBURGO BR -22.333000000000002 -42.677 1047.5 20160704 20170923 868900 99999 SAO TOME BR -22.041999999999998 -41.052 5.5 20130109 20170923 868905 99999 ALBACORA P25 OIL PLATFORM BR SBLB -22.1 -39.917 10.1 20130109 20170923 868910 99999 MACAE BR SBME -22.343000000000004 -41.766000000000005 2.4 20110423 20170923 868920 99999 ARRAIAL DO CABO BR -22.976 -42.021 5.5 20160704 20170923 868940 99999 AMAMBAI BR -23.0 -55.333 432.5 20160704 20170923 868950 99999 SETE QUEDAS BR -23.967 -55.023999999999994 403.5 20160704 20170923 868960 99999 ITAQUIRAI BR -23.45 -54.183 337.5 20160704 20170923 868970 99999 ICARAIMA BR -23.39 -53.66 386.5 20160704 20170923 868980 99999 CIDADE GAUCHA BR -23.359 -52.931999999999995 382.5 20160704 20170917 868990 99999 MARINGA BR -23.405 -51.933 543.5 20160704 20170923 869010 99999 NOVA FATIMA BR -23.416999999999998 -50.583 669.5 20160704 20170923 869020 99999 IBAITI BR -23.767 -50.183 931.5 20160704 20170923 869030 99999 JOAQUIM TAVORA BR -23.505 -49.946000000000005 523.5 20160704 20170923 869040 99999 AVARE BR -23.1 -48.95 726.5 20160704 20170923 869050 99999 ITAPEVA BR -23.983 -48.883 708.5 20160704 20170923 869060 99999 SAO MIGUEL ARCANJO BR -23.85 -48.167 645.5 20160704 20170923 869070 99999 SOROCABA BR -23.433000000000003 -47.583 610.5 20160704 20170923 869100 99999 SAO PAULO-MIRANTE DE SANTANA BR -23.496 -46.62 793.6 20160704 20170923 869110 99999 TAUBATE BR -23.041999999999998 -45.52 572.5 20160704 20170923 869120 99999 SAO LUIS DO PARAITINGA BR -23.233 -45.417 875.5 20160704 20170923 869130 99999 PARATI BR -23.223000000000003 -44.727 5.5 20160704 20170923 869140 99999 RIO DE JANEIRO-MARAMBAIA BR -23.05 -43.6 11.2 20160704 20170923 869160 99999 MARECHAL CANDIDO RONDON BR -24.533 -54.016999999999996 393.5 20160704 20170923 869170 99999 GOIOERE BR -24.183000000000003 -53.033 469.5 20160704 20170105 869190 99999 NOVA TEBAS BR -24.433000000000003 -51.967 655.5 20160704 20170923 869210 99999 CASTRO BR -24.783 -49.983000000000004 1008.9 20160704 20170923 869220 99999 BARRA DO TURVO BR -24.967 -48.417 668.5 20160704 20170923 869230 99999 IGUAPE BR -24.666999999999998 -47.55 4.5 20160704 20170923 869250 99999 FOZ DO IGUACU BR -25.6 -54.483000000000004 232.5 20160704 20170923 869260 99999 PLANALTO BR -25.717 -53.75 347.5 20160704 20170923 869270 99999 DOIS VIZINHOS BR -25.7 -53.1 521.5 20160704 20170923 869290 99999 INACIO MARTINS BR -25.566999999999997 -51.083 1261.5 20160704 20170724 869300 99999 IVAI BR -25.017 -50.85 809.5 20160704 20170923 869330 99999 CURITIBA BR -25.449 -49.23 925.0 20160704 20170914 869340 99999 MORRETES BR -25.517 -48.817 60.5 20160704 20170923 869350 99999 ILHA DO MEL BR -25.494 -48.326 2.5 20160704 20170923 869360 99999 DIONISIO CERQUEIRA BR -26.283 -53.633 811.5 20160704 20170923 869370 99999 SAO MIGUEL DO OESTE BR -26.783 -53.5 666.5 20160704 20170923 869380 99999 NOVO HORIZONTE BR -26.4 -52.85 961.5 20160704 20170923 869390 99999 CLEVELANDIA BR -26.416999999999998 -52.35 981.5 20160704 20170923 869400 99999 XANXERE BR -26.933000000000003 -52.4 890.5 20160704 20170923 869410 99999 GEN CARNEIRO BR -26.4 -51.35 1019.5 20160704 20170923 869420 99999 MAJOR VIEIRA BR -26.4 -50.367 809.5 20160704 20170923 869430 99999 CACADOR BR -26.816999999999997 -50.833 953.5 20160704 20170923 869440 99999 RIO DO CAMPO BR -26.933000000000003 -50.15 593.5 20160704 20170923 869450 99999 RIO NEGRINHO BR -26.25 -49.583 870.5 20160704 20170923 869460 99999 INDAIAL BR -26.916999999999998 -49.266999999999996 88.2 20160704 20170923 869470 99999 ITAPOA BR -26.083000000000002 -48.65 3.5 20160704 20170923 869480 99999 ITAJAI BR -26.951 -48.762 19.5 20160704 20170923 869500 99999 SANTA ROSA BR -27.883000000000003 -54.483000000000004 277.5 20160706 20170923 869510 99999 FREDERICO WESTPHALEN BR -27.396 -53.428999999999995 491.5 20160704 20170923 869520 99999 SANTO AUGUSTO BR -27.85 -53.783 551.5 20160704 20170923 869530 99999 PALMEIRA DAS MISSOES BR -27.916999999999998 -53.317 643.5 20160704 20170923 869540 99999 ERECHIM BR -27.666999999999998 -52.3 766.5 20160708 20170923 869550 99999 JOACABA BR -27.169 -51.559 777.5 20160704 20170923 869560 99999 CURITIBANOS BR -27.283 -50.6 983.5 20160704 20170923 869570 99999 ITUPORANGA BR -27.418000000000003 -49.647 485.5 20160704 20170923 869580 99999 FLORIANOPOLIS-SAO JOSE BR -27.6 -48.617 3.3 20160704 20170923 869600 99999 SAO BORJA BR -28.65 -56.016999999999996 84.5 20160704 20170923 869610 99999 SAO LUIZ GONZAGA BR -28.416999999999998 -54.967 246.5 20160705 20170923 869620 99999 CRUZ ALTA BR -28.6 -53.667 433.5 20160704 20170923 869630 99999 PASSO FUNDO BR -28.229 -52.403999999999996 685.5 20160704 20170923 869640 99999 SOLEDADE BR -28.854 -52.542 668.5 20160704 20170923 869650 99999 LAGOA VERMELHA BR -28.221999999999998 -51.512 843.5 20160704 20170923 869660 99999 VACARIA BR -28.514 -50.883 987.5 20160704 20170923 869670 99999 SAO JOSE DOS AUSENTES BR -28.750999999999998 -50.058 1245.5 20160704 20170923 869680 99999 URUBICI BR -28.125999999999998 -49.479 1811.5 20160704 20170923 869690 99999 SAO JOAQUIM BR -28.283 -49.933 1411.5 20160704 20170923 869700 99999 URUSSANGA BR -28.533 -49.317 49.5 20160704 20170715 869710 99999 ARARANGUA BR -28.933000000000003 -49.5 13.5 20160704 20170923 869720 99999 SANTA MARTA BR -28.6 -48.817 54.0 20160704 20170717 869730 99999 URUGUAIANA BR -29.85 -57.083 63.8 20160728 20170923 869750 99999 ALEGRETE BR -29.717 -55.533 122.5 20160704 20170923 869760 99999 SANTIAGO BR -29.183000000000003 -54.883 395.5 20160704 20170923 869770 99999 SANTA MARIA BR -29.7 -53.7 96.5 20160704 20170923 869780 99999 RIO PARDO BR -29.866999999999997 -52.383 112.5 20160704 20170923 869790 99999 BENTO GONCALVES BR -29.166999999999998 -51.535 641.5 20160704 20170923 869800 99999 CANELA BR -29.369 -50.828 831.5 20160704 20170923 869810 99999 TORRES BR -29.35 -49.733000000000004 6.2 20160704 20170923 869820 99999 QUARAI BR -30.369 -56.437 125.5 20160704 20170911 869830 99999 SANTANA DO LIVRAMENTO BR -30.833000000000002 -55.6 329.5 20160805 20170923 869840 99999 SAO GABRIEL BR -30.340999999999998 -54.31100000000001 127.5 20160704 20170923 869850 99999 DOM PEDRITO BR -30.983 -54.817 171.5 20160727 20170923 869860 99999 CACAPAVA DO SUL BR -30.548000000000002 -53.468 451.5 20160704 20170923 869880 99999 PORTO ALEGRE BR -30.05 -51.167 48.5 20160704 20170923 869890 99999 CAMAQUA BR -30.811 -51.835 109.5 20160704 20170923 869900 99999 TRAMANDAI BR -30.01 -50.135 2.5 20160704 20170923 869920 99999 BAGE BR -31.348000000000003 -54.013000000000005 231.5 20160727 20170923 869930 99999 CANGUCU BR -31.406 -52.701 465.5 20160704 20170923 869940 99999 MOSTARDAS BR -31.248 -50.906000000000006 11.5 20160704 20170923 869950 99999 RIO GRANDE BR -32.033 -52.1 4.0 20160725 20170730 869960 99999 JAGUARAO BR -32.554 -53.376000000000005 48.5 20160704 20170923 869980 99999 CHUI BR -33.742 -53.371 27.5 20160704 20170717 870070 99999 LA QUIACA AR SASQ -22.151 -65.578 3479.0 19390201 20170923 870160 99999 ORAN AR SASO -23.153000000000002 -64.329 356.0 19600101 20170923 870210 99999 TABACALO AR -23.25 -64.3 307.0 19400301 19420831 870220 99999 GENERAL ENRIQUE MOSCONI TARTAGAL AR SAST -22.62 -63.794 449.0 19730101 20170923 870221 99999 RECONQUISTA AR SATR -29.21 -59.68 49.1 20040713 20170918 870320 99999 LA CASUALIDAD AR -25.217 -68.217 4040.0 19730102 19731016 870460 99999 JUJUY AR SASJ -24.393 -65.098 920.2 19730101 20170923 870470 99999 SALTA AR SASA -24.855999999999998 -65.486 1246.0 19390201 20170923 870475 99999 VAQUEROS SOUTH AR -24.75 -65.433 1261.0 19740419 19741010 870520 99999 ROSARIO DE LA FRO & AR -25.783 -64.983 779.0 19730102 19781031 870650 99999 RIVADAVIA AR SASR -24.166999999999998 -62.9 205.0 19390201 20170302 870780 99999 ALFEREZ ARMANDO RODRIGUEZ AR SATK -24.721 -60.549 129.8 19570630 20170923 870970 99999 CATARATAS DEL IGUAZU AR SARI -25.737 -54.473 279.2 19390102 20170923 871160 99999 TUCUMAN OBSERVATORY AR -26.8 -65.2 481.0 20030304 20030430 871200 99999 TUCUMAN/TENIENTE BE AR -26.833000000000002 -65.2 422.0 19390201 20030203 871210 99999 TENIENTE BENJAMIN MATIENZO AR SANT -26.840999999999998 -65.105 455.7 19811101 20170923 871270 99999 RIO HONDO/LAS TERMA AR -27.45 -64.883 281.0 19730101 19780401 871271 99999 TERMAS DE RIO HONDO ARPT AR SANR -27.5 -64.933 280.1 20161017 20170923 871290 99999 SANTIAGO DEL ESTERO AR SANE -27.766 -64.31 199.9 19390201 20170923 871460 99999 VILLA ANGELA AR -27.566999999999997 -60.733000000000004 75.0 19740821 19900621 871480 99999 PRESIDENCIA ROQUE SAENZ PENA AERO AR -26.733 -60.483000000000004 91.0 20010916 20170923 871490 99999 PRESIDENCIA ROQUE SAENZ PENA AR SARS -26.756999999999998 -60.493 93.6 19390201 20091206 871550 99999 RESISTENCIA AR SARE -27.45 -59.056000000000004 52.7 19590101 20170923 871570 99999 RESISTENCIA EAST AR -27.45 -58.967 52.0 19390201 19660710 871610 99999 FORMOSA NORTH PA -26.15 -58.183 65.0 19390201 19450930 871620 99999 FORMOSA AR SARF -26.213 -58.228 59.1 19730101 20170923 871630 99999 BERNARDO DE IRIGOYE AR SATI -26.25 -53.817 815.0 20020311 20170302 871660 99999 CORRIENTES AR SARC -27.445999999999998 -58.762 61.9 19730101 20170923 871710 99999 GENERAL PAZ AR -27.75 -57.633 74.0 19730102 20040804 871730 99999 ITUZAINGO AR -27.583000000000002 -56.667 72.0 19831201 20170302 871780 99999 POSADAS AR SARP -27.386 -55.971000000000004 131.1 19390101 20170923 871870 99999 OBERA AR -27.483 -55.133 303.0 19770510 20170302 871960 99999 ANDALGALA AR -27.583000000000002 -66.317 1068.0 19400910 19450930 872000 99999 FRIAS AR -28.633000000000003 -65.117 330.0 19400701 19420831 872110 99999 TINOGASTA AR SANI -28.038 -67.58 1209.4 19730101 20170302 872130 99999 CHILECITO AERO AR -29.233 -67.433 945.0 19840612 20170302 872140 99999 CHILECITO AR SANO -29.224 -67.439 950.1 19740517 20030320 872170 99999 LA RIOJA AR SANL -29.381999999999998 -66.796 437.7 19390201 20170923 872200 99999 CATAMARCA(OLD SITE) AR -28.45 -65.767 537.0 19730101 19740618 872220 99999 CATAMARCA AR SANC -28.596 -65.752 463.9 19730701 20170923 872440 99999 VILLA MARIA DEL RIO AR SACV -29.9 -63.683 341.0 19730101 20170923 872570 99999 CERES AR SANW -29.883000000000003 -61.95 88.0 19390202 20170923 872700 99999 RECONQUISTA AERO AR -29.183000000000003 -59.7 48.0 19730101 20170923 872730 99999 GOYA AIRPORT AR -29.1 -59.217 38.0 19730101 20040803 872731 99999 GOYA AIRPORT AR SATG -29.116999999999997 -59.217 39.0 19800506 19800607 872733 99999 GOYA & AR SATG -29.1 -59.217 38.0 19390201 19450930 872810 99999 VILLA MERCEDES/AAFB AR -29.217 -58.083 107.0 19730113 19730927 872814 99999 MERCEDES (RCE) AR SATM -29.217 -58.1 107.0 19800606 19840821 872860 99999 CURUZU CUATIA AR SATU -29.771 -57.979 70.1 19730101 20100916 872890 99999 PASO DE LOS LIBRES AR SARL -29.689 -57.152 70.1 19390201 20170923 873050 99999 JACHAL AR SAMJ -30.25 -68.75 1165.0 19730101 20170302 873110 99999 SAN JUAN AR SANU -31.570999999999998 -68.418 597.1 19730101 20170923 873120 99999 SAN JUAN SOUTH AR -31.583000000000002 -68.533 630.0 19390201 19661029 873200 99999 CHAMICAL AERO AR -30.366999999999997 -66.283 467.0 19730102 20170923 873205 99999 CHAMICAL AR SACT -30.345 -66.294 458.1 19940719 20001101 873220 99999 CHEPES AR SACP -31.333000000000002 -66.6 658.0 19730101 20170302 873280 99999 VILLA DOLORES AR SAOD -31.945 -65.146 583.7 19730101 20170923 873290 99999 VALLE DEL CONLARA AR SAOS -32.385 -65.187 616.0 20040803 20170418 873360 99999 LA CUMBRE AR -31.0 -64.533 1138.0 19740813 19750513 873440 99999 AMBROSIO L V TARAVELLA AR SACO -31.324 -64.208 488.9 19390201 20170923 873450 99999 CORDOBA OBSERVATORIO AR -31.4 -64.183 426.0 20080915 20170302 873470 99999 ESCUELA DE AVIACION MILITAR AR SACE -31.445 -64.283 502.0 20010927 20170920 873490 99999 PILAR OBSERVATORIO AR SACI -31.666999999999998 -63.883 338.0 19730101 20170923 873590 99999 RAFAELA INTA AR -31.183000000000003 -61.55 100.0 19730102 19791226 873710 99999 SAUCE VIEJO AR SAAV -31.712 -60.812 17.1 19730101 20170923 873740 99999 GENERAL URQUIZA AR SAAP -31.795 -60.48 74.1 19390201 20170923 873850 99999 VILLAGUAY AR SAAU -31.85 -59.083 43.0 19730101 20031122 873870 99999 SAUCE AR -30.083000000000002 -58.766999999999996 68.0 19730102 19900606 873930 99999 MONTE CASEROS AR SARM -30.272 -57.64 53.0 19650307 20170923 873950 99999 COMODORO PIERRESTEGUI AR SAAC -31.296999999999997 -57.997 34.1 19390201 20170923 874000 99999 CRISTO REDENTOR AR SAMC -32.833 -70.083 3829.0 19570630 19860507 874020 99999 PUENTE DAL INCA AR -32.817 -69.9 2726.0 19730102 19781007 874050 99999 USPALLATA AR SAMU -32.6 -69.333 1844.0 19730101 20170302 874120 99999 SAN CARLOS AR SAMS -33.766999999999996 -69.033 940.0 19730101 20170302 874125 99999 20040727 20050607 874160 99999 SAN MARTIN AR SAMI -33.083 -68.417 653.0 19730101 20170923 874180 99999 EL PLUMERILLO AR SAME -32.832 -68.793 704.1 19390201 20170923 874185 99999 19730101 19741023 874200 99999 MENDOZA OBSERVATORIO AR -32.883 -68.85 827.0 19730101 20170302 874270 99999 LA PAZ AR SAMP -33.467 -67.55 504.0 19730102 19761112 874360 99999 SAN LUIS AR SAOU -33.273 -66.35600000000001 709.9 19570630 20170923 874440 99999 SANTA ROSA DE CONLARA AR -32.383 -65.183 615.0 20070621 20170302 874480 99999 VILLA REYNOLDS AR SAOR -33.73 -65.387 484.9 19390201 20170923 874500 99999 EMBALSE RIO TERCERO AR -32.183 -64.383 547.0 19730104 19840728 874530 99999 RIO CUARTO AREA DE MATERIAL AR SAOC -33.085 -64.26100000000001 420.9 19730101 20170923 874600 99999 19740824 19741109 874670 99999 MARCOS JUAREZ AR SAOM -32.684 -62.158 110.0 19730101 20170923 874680 99999 VENADO TUERTO AERO AR -33.667 -61.967 112.0 19890501 20170302 874700 99999 EL TREBOL AR -32.5 -61.667 96.0 20030729 20170302 874780 99999 VICTORIA AR -32.617 -60.183 29.0 19730101 19770326 874800 99999 ROSARIO AR SAAR -32.904 -60.785 25.9 19390201 20170923 874970 99999 GUALEGUAYCHU AR SAAG -33.01 -58.613 22.9 19650307 20170923 874980 99999 MAZARUCA AR SAAM -33.583 -59.266999999999996 4.0 19730101 19840124 875000 99999 BOGUS ARGENTINEAN AR 0.0 0.0 -999.0 19390601 20011224 875020 99999 VALLE HERMOSA AR -35.15 -70.2 2293.0 19750305 19750505 875060 99999 MALARGUE AR SAMM -35.494 -69.574 1430.1 19390202 20170923 875090 99999 SAN RAFAEL AR SAMR -34.588 -68.403 752.9 19730101 20170923 875120 99999 COLONIA ALVEAR AR -35.0 -67.65 464.0 19730105 19800125 875320 99999 GENERAL PICO AR SAZG -35.696 -63.758 139.9 19390201 20170923 875340 99999 LABOULAYE AR SAOL -34.135 -63.361999999999995 136.9 19570630 20170923 875440 99999 COMODORO P ZANNI AR SAZP -35.845 -61.858000000000004 85.0 19730101 20170302 875480 99999 JUNIN AR SAAJ -34.546 -60.931000000000004 79.9 19390201 20170923 875485 99999 19740302 19740729 875486 99999 19740331 19740331 875500 99999 NUEVE DE JULIO AR -35.45 -60.883 76.0 19730104 20090429 875530 99999 SAN FERNANDO AR SADF -34.453 -58.59 3.0 20020201 20170923 875630 99999 LAS FLORES AR -36.067 -59.1 38.0 19730102 20170923 875680 99999 DON TORCUATO AR SADD -34.501 -58.604 5.0 19730101 20051208 875690 99999 SAN MIGUEL AR -34.55 -58.733000000000004 26.0 19730101 20170302 875710 99999 EL PALOMAR AR SADP -34.61 -58.613 18.0 19730101 20170923 875720 99999 MARIANO MORENO(AAFB) AR -34.567 -58.783 28.0 19730702 20011208 875740 99999 MORON(AAFB) AR -34.683 -58.65 30.0 19340102 20100126 875760 99999 MINISTRO PISTARINI AR SAEZ -34.821999999999996 -58.536 20.4 19570630 20170923 875800 99999 ISLA MARTIN GARCIA AR -34.183 -58.266999999999996 36.0 19730101 19910221 875820 99999 AEROPARQUE JORGE NEWBERY AR SABE -34.559 -58.416000000000004 5.5 19730101 20170923 875850 99999 BUENOS AIRES (OBS) AR SABA -34.583 -58.483000000000004 25.0 19310101 20170923 875890 99999 PONTON INTERSECTION AR -34.667 -57.983000000000004 11.0 19740925 19800120 875930 99999 LA PLATA AR SADL -34.972 -57.895 21.9 19730101 20170923 875960 99999 PUNTA INDIO B.A. AR -35.367 -57.283 16.0 19570630 20170302 875970 99999 19740604 19740731 875980 99999 FARO PONTON RECALAD AR -35.167 -56.25 11.0 19730101 19951226 876160 99999 VICTORICA AR -36.217 -65.433 312.0 19390201 20040629 876190 99999 GENERAL ACHA AR -37.367 -64.583 219.0 19750426 20040311 876230 99999 SANTA ROSA AR SAZR -36.588 -64.27600000000001 192.0 19570630 20170923 876370 99999 CORONEL SUAREZ AERO AR -37.433 -61.883 233.0 19390201 20090429 876390 99999 BOLIVAR AR SAZI -36.187 -61.076 93.9 19730101 20151206 876400 99999 BOLIVAR AERO AR -36.2 -61.067 94.0 19890401 20170923 876410 99999 AZUL AERO AR -36.833 -59.883 146.0 19970101 20170923 876420 99999 AZUL AIRPORT AR SAZA -36.75 -59.833 132.0 19570630 20170920 876430 99999 OLAVARRIA AERO AR -36.883 -60.217 165.0 19871002 20170302 876450 99999 TANDIL AR SAZT -37.236999999999995 -59.228 175.0 19730101 20170923 876460 99999 LOPEZ/JUAREZ AR -37.533 -59.567 232.0 19730101 19800118 876480 99999 DOLORES AIRPORT AR SAZD -36.35 -57.733000000000004 9.0 19390306 20170923 876490 99999 BENITO JUAREZ AR -37.717 -59.783 207.0 19810101 20100715 876570 99999 20031130 20031130 876580 99999 SANTA TERESITA AERO AR -36.55 -56.683 3.0 19920901 20090429 876630 99999 VILLA GESELL AR SAZV -37.235 -57.028999999999996 9.8 19761001 20100301 876730 99999 PUELCHES AR -38.133 -65.917 231.0 19730125 19740620 876790 99999 PIGUE AIRPORT AR SAZE -37.6 -62.383 304.0 19730101 20120409 876880 99999 TRES ARROYOS AR SAZH -38.387 -60.33 121.9 19730101 20170923 876920 99999 MAR DEL PLATA AR SAZM -37.934 -57.573 21.6 19390201 20170923 876960 99999 MAR DEL PLATA ANB AR -38.05 -57.55 4.0 19730501 19740815 877150 99999 PRESIDENTE PERON AR SAZN -38.949 -68.156 272.8 19390201 20170923 877330 99999 19390201 19450930 877360 99999 RIO COLORADO AR SAZQ -39.016999999999996 -64.083 79.0 19730102 20090429 877430 99999 FARO EL RINCON AR -39.383 -62.016999999999996 6.0 19740629 19740706 877480 99999 COMANDANTE ESPORA AR -38.733000000000004 -62.167 74.0 19740610 20000302 877500 99999 COMANDANTE ESPORA AR SAZB -38.725 -62.169 75.0 19390410 20170923 877580 99999 NECOCHEA AIRPORT AR -38.483000000000004 -58.833 32.0 19730101 19901130 877590 99999 ZAPALA AR -38.9 -70.05 1015.0 19390201 19450930 877610 99999 AVIADOR C CAMPOS AR SAZY -40.075 -71.137 783.0 19810601 20170822 877630 99999 CATEDRAL 2000 AR -41.25 -71.617 1955.0 19570630 20040311 877650 99999 SAN CARLOS DE BARILOCHE AR SAZS -41.151 -71.158 846.1 19390201 20170923 877680 99999 PIEDRA DEL AGUILA AR SAVA -40.033 -70.05 466.0 19730102 19771216 877681 99999 PIEDRA DEL AGUILA AR SAVA -40.033 -70.05 466.0 20051123 20051123 877740 99999 MAQUINCHAO AR -41.25 -68.733 888.0 19570630 20170923 877744 99999 EL BOLSON AR SAVB -41.967 -71.517 330.0 19800319 19840927 877750 99999 NAME AND LOC UNKN AR 0.0 0.0 -999.0 19760602 19800315 877840 99999 SAN ANTONIO OESTE AERO AR SAVO -40.783 -65.1 20.0 19390201 20170923 877895 99999 EL TEHUELCHE AR SAVY -42.75899999999999 -65.10300000000001 129.8 20040913 20170811 877900 99999 PATAGONES -39.217 -61.016999999999996 39.9 19390201 19670412 877910 99999 GOBERNADOR CASTELLO AR SAVV -40.869 -63.0 6.1 19730101 20170923 878000 99999 EL BOLSON AR SAVB -41.943000000000005 -71.532 344.7 19830701 20170923 878030 99999 ESQUEL AR SAVE -42.908 -71.139 798.9 19570630 20170923 878034 99999 EL MAITEN AR SAVD -42.033 -71.167 720.0 19800320 19840927 878070 99999 JOSE DE SAN MARTIN AR -44.05 -70.433 720.0 19390201 20030828 878074 99999 JOSE SN MARTIN(JSM) AR -44.033 -70.467 800.0 19800310 19840828 878140 99999 PASO DE INDIOS AR SAVP -43.817 -68.883 460.0 19730921 20140823 878230 99999 P.MADRYN AERO AR -42.733000000000004 -65.067 136.0 20080314 20170302 878250 99999 GOLFO NUEVO (ARG-NA AR -42.766999999999996 -65.033 6.0 19730519 19810114 878280 99999 ALMIRANTE ZAR AR SAVT -43.211000000000006 -65.27 43.0 19390202 20170923 878520 99999 PERITO MORENO ARPT AR SAWP -46.516999999999996 -71.017 429.0 19390218 20170923 878523 99999 EL DORADO (ELD) AR -46.583 -70.017 201.0 19800506 19840712 878524 99999 RIO MAYO (RMY) AR SAWM -45.717 -70.233 545.0 19800310 19840921 878525 99999 ALTO RIO SENGUERR AR SAVR -45.016999999999996 -70.817 697.0 19800424 19840927 878526 99999 LAGO MUSTER (LGM) AR SAVM -45.567 -69.067 850.0 19800826 19810129 878527 99999 PERITO MORENO (PTM) AR -46.533 -71.0 430.0 19800423 19840827 878600 99999 COMODORO RIVADAVIA AR SAVC -45.785 -67.46600000000001 57.9 19570630 20170923 878690 99999 NAME AND LOC UNKN AR 0.0 0.0 -999.0 19741206 20050417 878710 99999 CAMARONES AR -44.766999999999996 -65.7 34.0 19730621 19751121 878800 99999 GOBERNADOR GREGORES AR SAWR -48.783 -70.167 356.0 19730101 20170302 878900 99999 STANLEY-IN-MALVINAS FK -51.7 -57.867 51.0 19740720 20020210 878960 99999 PUERTO DESEADO AR SAWD -47.735 -65.904 81.1 19390201 20170923 879030 99999 LAGO ARGENTINO ARPT AR SAWA -50.333 -72.3 220.0 19390201 20040719 879035 99999 EL CALAFATE AR SAWC -50.28 -72.053 203.9 20020202 20170920 879040 99999 EL CALAFATE AERO AR -50.266999999999996 -72.05 199.0 20030330 20170923 879090 99999 SAN JULIAN AR SAWJ -49.306999999999995 -67.803 57.9 19730101 20170923 879120 99999 SANTA CRUZ AR SAWU -50.016999999999996 -68.579 110.9 19390201 20150609 879170 99999 EL TURBIO AIRPORT AR -51.6 -72.217 273.0 19790102 19790122 879174 99999 EL TURBIO / AIRPORT AR SAWT -51.6 -72.217 273.0 19800319 20170922 879250 99999 RIO GALLEGOS AR SAWG -51.608999999999995 -69.313 18.6 19590107 20170923 879260 99999 RIO GALLEGOS/ARG-NA AR -51.633 -69.217 20.0 19570630 20021119 879280 99999 FARO CABO VIRGENES AR -52.333 -68.35 24.0 19390201 20050828 879290 99999 BOGUS ARGENTINEAN AR 19840504 20010816 879340 99999 RIO GRANDE AR SAWE -53.778 -67.749 19.8 19730101 20170923 879360 99999 TOLHUIN AR -54.7 -67.25 105.0 19780520 20090608 879380 99999 USHUAIA MALVINAS ARGENTINAS AR SAWH -54.843 -68.296 21.6 19390201 20170923 879460 99999 BOGUS ARGENTINEAN AR 19840501 19840510 879490 99999 PUERTO PARRY AR -54.8 -64.367 8.0 19810126 19810909 879520 99999 19740720 19740929 879580 99999 19740807 19740929 880220 99999 19740613 19740929 888700 99999 MOUNT BYRON FK -51.417 -60.567 480.0 20140513 20170923 888780 99999 PEBBLE ISLAND UK -51.317 -59.6 16.0 19920301 20170923 888800 99999 WEST POINT ISLAND FK -51.35 -60.683 26.0 19530410 20011105 888810 99999 MOUNT KENT FK -51.667 -58.1 458.0 20140513 20170813 888820 99999 WEDDELL ISLAND FK -51.9 -60.9 7.0 19530101 20060607 888830 99999 WEDDELL ISLAND FK -51.9 -60.917 17.0 19910712 20170923 888840 99999 FOX BAY FK -51.95 -60.05 21.0 19530101 19740912 888860 99999 PEBBLE I FLAKLAND IS FK -50.7 -58.4 19530101 19570831 888880 99999 DARWIN FK -51.817 -58.967 4.0 19530201 20030730 888890 99999 MOUNT PLEASANT FK EGYP -51.823 -58.446999999999996 74.4 19850606 20170923 888900 99999 STANLEY FK -51.7 -57.867 51.0 19490101 20011121 888910 99999 STANLEY FK SFAL -51.68600000000001 -57.778 22.9 19840605 20170922 888920 99999 STANLEY FK -51.683 -57.867 10.0 20070822 20090117 888940 99999 MOUNT ALICE FK -52.15 -60.6 361.0 20140513 20170922 888970 99999 SEA LION ISLAND UK -52.433 -59.083 15.0 19910507 20170922 889000 99999 BIRD ISLAND SX -54.0 -38.05 2.0 20030330 20170923 889020 99999 GRYTVIKEN/FLAT BLUF SX -54.266999999999996 -36.5 10.0 19880601 20011105 889030 99999 GRYTVIKEN SX -54.283 -36.5 3.0 19490101 20170923 889250 99999 SIGNY ISLAND UK -60.717 -45.6 7.0 19490126 19850630 889340 99999 ADMIRALTY BAY AY -62.067 -58.4 9.0 19490111 19580630 889380 99999 DECEPTION IS S SMET IS -61.016999999999996 -59.433 7.9 19490101 19580630 889400 99999 HOPE BAY ANTARCTICA AY -62.6 -55.016999999999996 19520501 19580630 889420 99999 CAPE CRYSTAL AY -63.516999999999996 -57.383 0.0 19550608 19560925 889460 99999 CORBETA URUGUAY DN UK -59.45 -27.267 15.0 19790401 19840522 889490 99999 PORT LOCKROY AY -64.817 -63.5 10.0 19490105 19531130 889520 99999 ARGENTINE ISLAND UK -65.25 -64.267 9.0 19490101 19850827 889560 99999 ADELAIDE ISLANDS EST AY -66.883 -66.95 0.0 19560701 19580630 889580 99999 ADELAIDE ISLAND UK -67.767 -67.917 13.0 19730101 19770115 889590 99999 ADELAIDE ISLANDS SE AY -67.65 -67.233 939.0 19550901 19580630 889610 99999 STONINGTON BRI-BASE UK -68.183 -67.017 14.0 19490101 19831128 889620 99999 FOSSIL BLUFF UK -71.333 -68.35 55.0 19730101 19850802 889630 99999 BASE ESPERANZA AY -63.4 -56.983000000000004 24.0 19730101 20170923 889650 99999 MELCHIOR S OFKNEY IS ARG N BASE AY -63.683 -61.033 7.9 19490501 19531231 889670 99999 BELGRANO 1 ARG-BASE AR -77.967 -38.8 32.0 19730101 19801212 889680 99999 BASE ORCADAS AR -60.733000000000004 -44.733000000000004 8.0 19490501 20170923 889700 99999 MATIENZO ARG-BASE AR -64.967 -60.05 32.0 19731008 19870328 889710 99999 BROWN ARG-BASE AR -64.883 -62.883 1.0 19730518 19840412 889740 99999 DECEPTION ISLAND AR -62.983000000000004 -60.567 8.0 19490501 19800310 889810 99999 ZAVODOVSKI IS. UK -56.283 -27.583000000000002 113.0 19950207 19990106 889860 99999 SOUTH THULE IS. UK -59.45 -27.316999999999997 268.0 19950207 20130802 890010 99999 SANAE SAF-BASE AY -70.3 -2.35 62.0 19730101 19970129 890020 99999 NEUMAYER AY -70.667 -8.25 50.0 19811101 20170923 890030 99999 HALVFARRYGGEN (EP11) AY -71.15 -6.683 694.0 20080331 20150602 890040 99999 S.A.N.A.E. AWS AY -71.7 -2.8 817.0 19970101 20170923 890090 90001 AMUNDSEN-SCOTT AY NZSP -90.0 0.0 2830.0 19570109 20170923 890090 99999 AMUNDSEN-SCOTT AY NZSP -90.0 0.0 2835.0 20000101 20071231 890130 99999 BALDRICK AWS AY -82.76700000000001 -13.05 1968.0 20080229 20170923 890140 99999 NORDENSKIOLD BASE AY -73.05 -13.383 497.0 19940301 20170923 890160 99999 WASA EPS AY -73.117 -13.15 363.0 20080115 20141201 890180 99999 ZVEA EP6 AY ZVEA -74.483 -11.517000000000001 1160.0 20070919 20131022 890200 99999 BRUNT AWS AY -75.58 -26.17 10.0 20060710 20121111 890220 99999 HALLEY AY -75.61 -26.272 30.0 19560615 20170923 890240 99999 NAVY OPERATED(AMOS) AY -77.517 -23.733 1545.0 19910924 19960929 890270 99999 PRINCESS ELISABETH AY -71.95 23.35 1397.0 19570301 19571225 890340 99999 BASE BELGRANO II AY -77.867 -34.617 256.0 19560601 20170923 890420 99999 SIGNY ISLAND AY -60.717 -45.6 6.0 19850704 19951231 890430 99999 N.CENTRAL ANTARCTICA AY -77.7 -41.1 42.0 19570318 19580630 890440 99999 DRUZHNAYA AY -77.567 -40.217 35.0 19760202 19960404 890450 99999 BELGRANO 3 ARG-BASE AY -77.9 -45.983000000000004 243.0 19810601 19990130 890490 99999 AGO-2 AY -85.667 -46.383 1860.0 20080606 20110816 890500 99999 BELLINGSHAUSEN AWS AY -62.183 -58.883 14.0 19730101 20170923 890510 99999 PETREL ARG-BASE AY -63.467 -56.283 20.0 19730101 19781130 890520 99999 ARCTOWSKI AY -62.167 -58.467 2.0 19780919 19900415 890530 99999 BASE CARLINI AY -62.233000000000004 -58.633 11.0 19800208 20170923 890540 99999 DINAMET-URUGUAY AY -62.183 -58.85 17.0 19850301 20161211 890550 99999 BASE MARAMBIO (CENTRO MET. ANTARTICO) AY -64.233 -56.717 208.0 19730101 20170923 890560 99999 CENTRO MET. ANTARTICO PDTE. EDUARDO FREI AY SCRM -62.183 -58.983000000000004 48.0 19850408 20170923 890570 99999 BASE ARTURO PRAT AY -62.5 -59.683 5.0 19470802 20170923 890580 99999 GREAT WALL AY -62.217 -58.967 10.0 19851101 20170923 890590 99999 BASE BERNARDO O'HIGGINS AY -63.317 -56.683 10.0 19850701 20170923 890600 99999 PRIMAVERA ARG-BASE AY -64.15 -60.95 50.0 19770524 20011106 890610 89061 PALMER STATION AY -64.766 -64.083 8.0 19760601 20170923 890610 99999 PALMER STATION AY -64.767 -64.083 8.0 20010123 20071231 890620 99999 ROTHERA AY -67.567 -68.117 33.0 19770201 20170923 890630 99999 VERNADSKY AY -65.25 -64.267 11.0 19850528 20170923 890640 99999 JUAN CARLOS I AWS AY -62.667 -60.383 12.0 19890103 20160218 890650 99999 FOSSIL BLUFF AY -71.317 -68.283 69.0 19850906 20160222 890660 99999 BASE SAN MARTIN AY -68.117 -67.133 7.0 19761001 20170923 890810 99999 PATRIOT HILLS AWS AY -80.3 -81.333 905.0 20080303 20100125 890830 57801 SIPLE STATION AY -75.917 -83.917 914.0 19730204 19900404 890870 99999 THIEL MTNS AWS AY -85.2 -87.883 1634.0 20090113 20160218 891080 99999 HENRY AY -89.0 -1.0170000000000001 2755.0 19940601 20170529 891250 68201 BYRD USA BASE AY -80.017 -119.53299999999999 1515.0 19730101 19960208 891320 99999 RUSSKAJA AY -74.767 -136.8 141.5 19800401 20170415 891750 99999 BROCKTON AY -78.8 -174.667 15.0 20030224 20030224 892080 99999 UNIV. WI ID 8987 (CLEAN AIR) AY -90.0 0.0 2835.0 19900501 20060830 892140 99999 DRESCHER AY -72.87 -19.03 20.0 20010702 20031231 892500 99999 KING GEORGE ISLAND AY -62.083 -58.4 267.0 20010711 20041024 892510 99999 KING SEJONG AY -62.217 -58.75 11.0 19910201 20170921 892520 99999 COMANDANTE FERRAZ AY -62.083 -58.383 18.0 20080314 20110205 892530 99999 JOINVILLE ISLAND AY -63.183 -55.4 75.0 20070423 20130725 892570 99999 UNIV. WI ID 8925 (LIMBERT AWS) AY -75.867 -59.15 40.0 19980301 20160221 892580 99999 FILCHNER AY -77.083 -51.217 20.0 20080918 20080918 892590 99999 FICHNER-RONNE SCHELFICE AY -83.167 -59.583 165.0 20110620 20110620 892610 99999 UNIV. WI ID 8947 (RACER ROCK) AY -64.067 -61.617 17.0 19910924 20060830 892620 99999 UNIV. WI ID 8926 (LARSEN ICE SHELF) AY -67.017 -61.467 45.0 19900501 20160222 892640 99999 UNIV. WI ID 8920 (URANUS) AY -71.433 -68.933 780.0 19900501 20060625 892660 99999 UNIV. WI ID 8902 (BUTLER ISLAND) AY -72.2 -60.167 115.0 19900501 20160222 892680 99999 NAVY OPERATED(AMOS) AY -75.017 -62.533 25.0 19900501 20080228 892690 99999 BONAPARTE POINT AY -64.783 -64.067 8.0 19960506 20160221 892720 99999 UNIV. WI ID 8917 (SKI-BLU) AY -74.8 -71.483 1589.0 19970101 20160222 892840 99999 SIPLE AY -75.917 -83.917 1054.0 19900501 19961115 893140 99999 THERESA AY -84.6 -115.81700000000001 1463.0 19970101 20170923 893240 99999 BYRD STATION AY -80.0 -119.4 1530.0 19900501 20160924 893270 99999 MOUNT SIPLE AY -73.2 -127.05 230.0 19940601 20170921 893290 99999 HARRY AY -83.0 -121.383 945.0 20070605 20170810 893320 99999 ELIZABETH AY -82.617 -137.083 549.0 19970301 20170313 893450 99999 SIPLE DOME AY -81.65 -148.783 620.0 19970601 20160221 893710 99999 UNIV. WI ID 8983 (SCOTT ISLAND) AY -67.367 -179.967 30.0 19900501 19991208 893740 99999 MARTHA II AY -78.35 -173.36700000000002 18.0 19900501 20041020 893760 99999 GILL AY -79.983 -178.6 55.0 19970101 20160222 893770 99999 LETTAU AY -82.51700000000001 -174.45 55.0 19900501 20170729 894540 99999 AY 19870511 19870511 895040 99999 TROLL IN ANTARKTIS AY -72.017 2.533 1277.0 19940801 20170923 895070 99999 KOHNEN / EP9 AY -75.0 0.0 2892.0 20070822 20170712 895100 99999 DAKSHIN GANGOTRI AY -70.133 12.0 27.0 19870301 19900414 895120 99999 NOVOLAZAREVSKAJA AY -70.767 11.833 119.0 19730101 20170923 895140 99999 MAITRI AY -70.767 11.75 -999.9 19900201 20170801 895240 99999 ASUKA JAPAN-BASE AY -71.533 24.133000000000003 931.0 19870301 20121212 895280 99999 AGO-3 AY -82.76700000000001 28.583000000000002 2912.0 20010707 20130515 895320 99999 SYOWA AY -69.0 39.583 21.0 19730101 20170923 895360 99999 PLATEAU STATION B EP12 AY -78.65 35.633 3620.0 20150709 20160909 895420 99999 MOLODEZNAJA AY -67.667 45.85 50.0 19730101 20170923 895440 99999 MIZUHO AY -70.7 44.333 2230.0 19771126 19861010 895580 99999 POLE OF INACCESSIBILITY EP13 AY -82.117 55.033 3730.0 20150709 20160909 895640 99999 MAWSON AY -67.6 62.867 16.0 19850701 20170923 895650 99999 RUMDOODLE AIRFIELD AY -67.717 62.8 430.0 20010811 20080327 895670 99999 DOVERS AY -70.233 65.85 1100.0 19890101 19931202 895680 99999 DAVIS LGB 35 AWS AY -76.05 65.017 2342.0 19960201 20080702 895700 99999 DAVIS (WHOOP WHOOP) AY -68.467 78.817 546.5 20110826 20170226 895710 99999 DAVIS AY -68.583 77.967 23.0 19730101 20170923 895720 99999 RAUER PLATEAU AIRFI AY -68.85 78.033 363.0 20010914 20050429 895730 99999 ZHONGSHAN AY -69.367 76.367 18.0 19900308 20170923 895740 99999 PROGRESS AY -69.383 76.383 64.0 19880401 20170923 895750 99999 DRUZHNAJA-4 AY -69.75 73.7 46.0 20100202 20161225 895760 99999 DAVIS (LGB 69) AY -70.833 77.067 1850.0 20030211 20090312 895770 99999 DOME PLATEAU DOME A AY -80.37 77.37 4084.0 19960201 20170923 895780 99999 DOME PLATEAU EAGLE AY -76.42 77.02 2830.0 20050303 20170923 895860 99999 MOUNT BROWN AY -69.117 85.98299999999999 2078.0 20040224 20111010 895920 99999 MIRNYJ AY -66.55 93.01700000000001 40.0 19730101 20170923 895980 99999 AGO-4 AY -82.01700000000001 96.76700000000001 3565.0 20130221 20160221 896000 99999 EDGEWORTH DAVID AY -66.25 100.6 6.0 20160503 20170610 896010 99999 OAZIC BANGERA AY -66.267 100.75 42.0 20140314 20170415 896060 99999 VOSTOK AY -78.45 106.867 3488.0 19730101 20170923 896100 99999 CAPE POINSETT AY -65.85 113.06700000000001 90.0 20040608 20170923 896110 99999 CASEY AY -66.283 110.53299999999999 42.0 19730101 20170923 896120 99999 CASEY SKIWAY AY -66.283 110.8 390.0 20010811 20090509 896140 99999 CASEY (UPPER PETERSON RUNWAY) AY -66.7 111.5 727.0 20030211 20170923 896150 99999 WILKINS RUNWAY EAST AY YWKS -66.683 111.53299999999999 755.0 20071016 20170408 896180 99999 CASEY (HALFWAY) AY -66.667 112.01700000000001 1074.0 20030211 20070112 896200 99999 EAST LAW DOME AWS AY -66.733 114.499 910.0 20050723 20140131 896250 99999 CONCORDIA AY -75.1 123.4 3233.0 20060207 20170923 896270 99999 AGO-5 AY -77.233 123.51700000000001 3084.0 20010730 20010924 896280 99999 AGO-1 AY -83.867 129.61700000000002 2865.0 20080605 20121218 896370 99999 AGO-6 AY -69.517 130.017 2560.0 20010812 20030825 896420 99999 DUMONT D'URVILLE AY -66.667 140.017 43.0 19850701 20170923 896430 99999 PORT MARTIN AY -66.817 141.38299999999998 39.0 19910924 20090131 896440 99999 STILLWELL ISLANDS(A AY -66.95 143.933 52.0 20041017 20120202 896460 99999 SITRY POINT AY -71.65 148.65 2094.0 20100310 20170922 896480 99999 MID POINT AY -75.533 145.86700000000002 2509.0 20060207 20170923 896570 99999 LENINGRADSKAYA AY -69.5 159.38299999999998 291.0 19730101 20161225 896590 99999 PRIESTLEY GLACIER AY -73.633 160.65 1924.0 20060207 20170923 896600 99999 YOUNG ISLAND AY -66.283 162.333 30.0 19910924 20010909 896610 99999 CAPE PHILLIPS AY -73.517 169.75 568.0 19950403 20170923 896620 99999 BASE BAIA TERRA NOVA AY -74.7 164.1 92.0 19950403 20170923 896630 99999 LAKE VANDA NZL-BASE AY -77.533 161.667 15.0 19730101 19970516 896640 87601 NSFA MCMURDO SOUND AY NZCM -77.883 166.733 24.1 20020901 20170923 896640 99999 MCMURDO AY NZCM -77.85 166.667 24.0 19730101 20111231 896650 99999 SCOTT BASE AY -77.85 166.75 94.0 20071228 20080201 896660 99999 CAPE ROSS AY -76.717 162.967 150.0 19950403 20170923 896670 99999 PEGASUS NORTH AY -77.95 166.5 10.0 19900501 20160424 896680 414 PEGASUS FIELD AY NZPG -77.95 166.517 5.2 20130101 20170116 896680 99999 MCMURDO STATION PEGASUS FIELD AY NZPG -77.96300000000001 166.525 5.5 20010819 20121230 896690 99999 MCMURDO STATION ICE RUNWAY AY NZIR -77.854 166.46900000000002 0.3 20011001 20131129 896700 99999 WILLIAMS FIELD AY -77.867 167.05700000000002 20.7 20011207 20101025 896710 99999 SOUTH POLE STATION AY -89.98299999999999 0.0 2835.0 19730101 20120609 896740 99999 WILLIAMS FIELD AY NZWD -77.867 167.05700000000002 20.7 19801106 20170220 897050 99999 AGO-A81 AY -81.5 3.733 2410.0 19950701 19960612 897340 99999 DOME FUJI AY -77.317 39.7 3810.0 19970101 20170211 897440 99999 RELAY STAT AY -74.017 43.05 3353.0 19970101 20170521 897570 99999 MAWSON (LGB 20 AWS) AY -73.833 55.667 2741.0 19930801 20060428 897580 99999 MAWSON (LGB10 AWS) AY -71.3 59.217 2620.0 19960201 20060508 897620 99999 MAWSON (LGB 00 GE 03 AWS) AY -68.65 61.117 1830.0 19930801 20090815 897670 99999 G3 AY -70.9 69.867 84.0 20010811 20170923 897680 99999 MINNA BLUFF AY -78.55 166.65 920.0 19941207 20170821 897690 99999 LINDA AY -78.467 168.38299999999998 50.0 19940605 20160222 897740 99999 DAVIS (LGB 59 AWS) AY -73.45 76.783 2537.0 19960201 20040626 897990 99999 NICO AY -89.0 89.667 2935.0 19940601 20160221 898030 99999 CASEY (TRAVERSE GF08) AY -68.5 102.18299999999999 2123.0 19930801 20070711 898050 99999 CASEY (GC 46 AWS) AY -74.133 109.833 3070.0 19930801 20010430 898070 99999 SNYDER ROCKS AY -66.55 107.75 42.0 19960901 20170110 898090 99999 CASEY SKIWAY SOUTH AY -66.283 110.76700000000001 375.0 20080429 20170908 898100 99999 CASEY AIRSTRIP(AWS) AY -66.283 110.78299999999999 390.0 19930801 20020122 898110 99999 LAW DOME SUMMIT AY -66.733 112.833 1368.0 19930801 20170923 898120 99999 AO28 AWS SOUTH OF LAW DOME AY -68.4 112.21700000000001 1622.0 20010811 20060602 898130 99999 CASEY (TRAVERSE GC41) AY -71.6 111.26700000000001 2761.0 19930801 20051117 898140 99999 CASEY BALAENA ISLAN AY -66.017 111.083 8.0 19950101 20040910 898150 99999 HAUPT NUNATAK AY -66.583 110.7 63.0 20040405 20170812 898160 99999 LAW DOME SUMMIT SOUTH AWS AY -66.767 112.81700000000001 1376.0 20010811 20050302 898280 99999 DOME C II AY -75.117 123.367 3250.0 19900501 20170923 898320 99999 D-10 AY -66.717 139.833 243.0 19900501 20160221 898340 99999 D-47 AY -67.4 138.733 1560.0 19900501 20160222 898360 99999 D-85 AY -70.433 134.15 2651.0 19900501 19990727 898470 99999 UNIV. WI ID 8929 (PENGUIN POINT) AY -67.617 146.183 30.0 19970101 20090203 898600 99999 LYNN AY -74.233 160.283 1772.0 19900501 19980104 898610 99999 SANDRA AY -74.483 160.483 1525.0 19900501 19990623 898620 99999 SHRISTI AY -74.7 161.567 1200.0 19900501 19960930 898630 99999 GILL AY -80.033 -178.63299999999998 55.0 19900619 19970828 898640 99999 MANUELA AY -74.95 163.683 80.0 19900501 20160221 898650 99999 WHITLOCK AY -76.133 168.38299999999998 274.0 19900501 20160221 898660 99999 MARBLE POINT AY -77.433 163.75 84.0 19900501 20170923 898670 99999 UNIV. WI ID 8911 AY -77.5 167.15 3700.0 19900501 19910821 898680 99999 SCHWERDTFEGER AY -79.9 169.983 60.0 19900501 20160702 898690 99999 MARILYN AY -79.95 165.11700000000002 75.0 19900513 20160811 898720 99999 FERRELL AY -77.9 170.817 45.0 19900501 20161017 898730 99999 ELAINE AY -83.133 174.167 60.0 19940601 20170923 898790 99999 POSSESSION IS AY -71.883 171.2 30.0 19940601 20170923 899610 99999 STONINGTON AY -68.183 -67.017 14.0 19760303 19780706 899700 99999 AY 19760302 19760319 899710 99999 BROWN ARG-BASE AY -64.867 -62.867 7.0 19810601 19860619 899790 99999 NAME AND LOC UNKN US 0.0 0.0 -999.0 19760601 19760713 910660 22701 HENDERSON FIELD AIRPORT MQ UM PMDY 28.2 -177.38299999999998 5.5 19450401 20170924 910660 99999 MIDWAY ISLAND MQ HI PMDY 28.217 -177.36700000000002 3.0 20000101 20071231 911170 99999 KIPAPA FIELD HAWAII US HI PHHI 21.483 -158.033 256.0 19420617 19450927 911310 99999 MARCUS ISLAND 24.283 153.967 16.8 19510301 19551231 911550 99999 FRENCH FRIGATE SHOALS US 23.866999999999997 -166.283 2.0 19620918 20020519 911580 99999 PRINCEVILLE KAUAI HAWAII US 22.217 -159.45 98.0 19940902 20060321 911610 99999 KOKEE KAUAI HAWAII US 22.15 -159.65 1280.0 19730101 19910519 911620 22501 BARKING SANDS PACIFIC MISSILE RANGE FAC ARPT US HI PHBK 22.033 -159.783 7.0 19420422 20170924 911630 22526 PORT ALLEN ARPT US HI 21.9 -159.6 7.0 19740316 19991231 911630 99999 PORT ALLEN AIRPORT KAUAI HAWAII US 21.9 -159.6 7.0 20000101 20010102 911649 99999 LIHUE KAUAI ISL US HI 21.983 -159.333 31.0 19990114 19990930 911650 22536 LIHUE AIRPORT US HI PHLI 21.984 -159.341 30.5 19730101 20170924 911660 99999 MAKAHUENA POINT KAUAI HAWAII US 21.883000000000003 -159.417 16.0 19730101 19970604 911665 99999 KOLOA (CGS) US HI 21.866999999999997 -159.45 15.0 19400201 19411201 911670 99999 HANAPEPE KAUAI US 21.916999999999998 -159.65 52.0 19741008 19771008 911680 99999 KAPAA KAUAI HAWAII US 22.083000000000002 -159.317 88.0 19740316 19961204 911681 99999 WAIALUA-ON-OAHU US HI 21.583000000000002 -158.11700000000002 5.0 19420617 19451201 911690 99999 WAIALEE OAHU HAWAII US 21.683000000000003 -158.033 10.0 19411002 20000229 911700 22508 WHEELER ARMY AIRFIELD US HI PHHI 21.487 -158.028 257.9 19390601 20170924 911700 99999 WAHIAWA /WHEELER/SC US HI PHHI 21.483 -158.033 255.0 20000103 20071231 911720 99999 LUALUALEI OAHU US 21.433000000000003 -158.13299999999998 35.0 20090519 20090520 911760 22519 KANEOHE MCAS US HI PHNG 21.45 -157.768 7.3 19730101 20170924 911780 22514 KALAELOA ARPT US HI PHNA 21.316999999999997 -158.067 10.1 19730101 19991231 911780 22551 KALAELOA AIRPORT (JOHN RODGERS FIELD) US HI PHJR 21.316999999999997 -158.067 10.1 20060101 20170924 911780 99999 KALAELOA ARPT US HI PHJR 21.316999999999997 -158.067 15.0 20000101 20071231 911800 99999 HICKAM AFB/OAHU US HI 21.333000000000002 -157.95 4.0 19390601 19490801 911803 99999 HICKAM AFB US HI PHIK 21.316 -157.92700000000002 4.0 20010518 20160303 911810 99999 MAKIKI/MANOA/OAHU US HI 21.316999999999997 -157.817 67.0 20020616 20020616 911820 22521 HONOLULU INTERNATIONAL AIRPORT US HI PHNL 21.324 -157.929 2.1 19390601 20170924 911840 99999 WAIMANALO OAHU US 21.333000000000002 -157.717 18.0 19420218 20040930 911860 22534 MOLOKAI AIRPORT US HI PHMK 21.155 -157.096 135.0 20060101 20170924 911860 99999 MOLOKAI (AMOS) US HI PHMK 21.15 -157.1 137.0 19400129 20071231 911880 99999 PUKALANI FIRE STN US HI 20.833000000000002 -156.333 500.0 19740730 19760911 911890 99999 KAANAPALI MAUI HAWAII US 20.916999999999998 -156.683 -999.9 19730101 19860126 911900 22516 KAHULUI AIRPORT US HI PHOG 20.9 -156.429 15.5 19730101 20170924 911903 22516 KAHULUI AIRPORT US HI PHOG 20.9 -156.429 15.2 19450401 19721231 911904 22552 KAPTALUA AIRPORT US HI PHJH 20.963 -156.675 73.2 20060101 20170924 911904 99999 KAPALUA US HI PHJH 20.95 -156.667 78.0 19870326 20071231 911905 22524 LANAI AIRPORT US HI PHNY 20.79 -156.94899999999998 396.2 20060101 20170924 911905 99999 LANAI US HI PHNY 20.783 -156.95 399.0 19730101 20071231 911907 99999 HANA US HI PHHN 20.796 -156.014 23.8 19980201 20060116 911910 99999 KEAWAKAPU BEACH MAUI HAWAII US 20.7 -156.45 3.0 19730101 19820301 911940 99999 KAHOOLAWE HAWAII US 20.55 -156.583 366.0 19730101 19860729 911950 99999 UPOLU POINT (CG) HAWAII HAWAII US 20.25 -155.88299999999998 19.0 19730101 19810523 911961 99999 UPOLU ARPT/HAWAII US HI UPP 20.267 -155.86700000000002 31.0 19400807 19410501 911975 21510 KONA INTL AT KEAHOLE ARPT US HI PHKO 19.736 -156.049 13.1 20060101 20170924 911975 99999 KONA INTL AT KEAHOL US HI PHKO 19.733 -156.033 14.0 19730101 20071231 911976 99999 WAIMEA KOHALA US HI PHMU 20.000999999999998 -155.668 814.1 19410714 20071123 911977 21508 BRADSHAW ARMY AIRFIELD US HI PHSF 19.76 -155.554 1798.3 20060103 20170924 911977 99999 BRADSHAW AAF US HI PHSF 19.75 -155.55 1887.0 19730102 20071229 911978 99999 BRADSHAW AAF US HI 19.767 -155.55 1890.0 19770216 19780222 911990 99999 HAINA HAWAII HAWAII US 20.1 -155.467 140.0 19730101 19840107 912020 99999 ULITHI AWS CAROLINE IS. FM 10.2 139.8 2.0 20040608 20151123 912030 99999 FALALOP ISLAND (CG) ULITHI ATOLL FM 10.033 139.8 5.0 19450630 20170922 912040 99999 ULITHI ULITHI ATOLL CAROLINE IS. FM 10.033 139.8 2.0 19940719 20160124 912113 99999 WEST TINIAN CQ PGTI 15.0 145.63299999999998 82.0 19880106 19920623 912120 41415 GUAM INTERNATIONAL AIRPORT GQ GU PGUM 13.482999999999999 144.8 77.4 19730101 20170924 912170 99999 GUAM/MARIANA IS CQ PGAC 13.55 144.833 111.0 19730101 20010823 912180 41414 ANDERSEN AFB AIRPORT GQ GU PGUA 13.583 144.917 186.5 20060102 20170924 912180 99999 ANDERSEN AFB GQ PGUA 13.567 144.917 162.0 19480501 20071231 912210 41419 ROTA INTERNATIONAL AIRPORT CQ MP PGRO 14.172 145.243 179.2 20060101 20170924 912210 99999 ROTA INTL/ROTA ISL CQ PGRO 14.167 145.25 179.0 19930115 20071231 912213 99999 ROTA INTL/ROTA ISL CQ 14.167 145.233 185.0 19870219 19930111 912220 99999 PAGAN ISLAND AWS MARIANA IS. CQ 18.9 145.6 2.0 19730101 20061012 912310 41413 TINIAN CQ PGWT 15.0 145.63299999999998 82.0 19930717 19960630 912310 41420 TINIAN INTERNATIONAL AIRPORT CQ MP PGWT 14.999 145.621 82.6 20160101 20170923 912320 41408 SAIPAN/ISLEY (CGS) CQ PGSN 15.117 145.733 4.0 19440710 19991231 912320 41418 FRANCISCO C. ADA/SAIPAN INTERNATIONAL ARPT CQ MP PGSN 15.117 145.717 65.5 20060101 20170924 912320 99999 SAIPAN/ISLEY (CGS) CQ PGSN 15.117 145.733 4.0 20000101 20071231 912324 99999 SAIPAN (CIVILIAN) CQ PGSF 15.117 145.733 3.0 19801130 19831014 912330 99999 SABANETTAN/TINIAN CQ PGNT 14.967 145.6 80.0 20030507 20030507 912333 41420 WEST TINIAN CQ MP PGWT 14.999 145.621 82.6 20060101 20170924 912333 99999 WEST TINIAN CQ 15.0 145.61700000000002 85.0 19910822 20071231 912340 99999 MAUG AWS MARIANA IS. CQ 20.05 145.217 50.0 20100323 20151125 912450 41606 WAKE ISLAND AIRFLD WQ PC PWAK 19.283 166.65 3.7 19451231 20100731 912450 99999 WAKE ISLAND AIRFLD WQ 19.283 166.65 4.0 20000101 20100818 912460 41606 WAKE ISLAND AIRFIELD WQ UM PWAK 19.283 166.65 7.0 20100801 20170924 912500 99999 ENEWETAK MARSHALL IS RM 11.35 162.35 5.0 19450630 20050204 912510 99999 ENIWETAK ATOLL AWS MARSHALL IS. RM 11.367 162.35 2.0 19910411 20090215 912540 99999 BIKINI ATOLL RM 11.517000000000001 165.55 3.0 19520926 19580727 912580 99999 UTIRIK ATOLL MARSHALL IS. RM 11.232999999999999 169.85 2.0 19580326 20170409 912590 99999 UTIRIK ATOLL AWS MARSHALL IS. RM 11.232999999999999 169.683 3.0 20040927 20160329 912750 21603 JOHNSTON ATOLL AIRPORT JQ UM PJON 16.733 -169.517 3.1 19450401 20041231 912750 99999 JOHNSTON ISLAND JQ PJON 16.733 -169.517 2.0 20000101 20040614 912760 99999 MAJURO MY PMAJ 7.067 171.267 2.0 20060303 20070725 912810 99999 KONA HAWAII IS. HAWAII US 19.65 -156.0 9.0 19730620 19961009 912830 99999 WAIKII HAWAII US 19.867 -155.65 1432.0 20020808 20020808 912834 99999 KAILUA HEIGHTS US HI 19.617 -155.967 -999.0 19801015 19831031 912840 99999 WAIKOLOA MAUKA HAWAII US 19.9 -155.75 480.0 20010930 20010930 912850 21504 HILO INTERNATIONAL AIRPORT US HI PHTO 19.719 -155.053 11.6 19730101 20170924 912853 21504 HILO GENERAL LYMAN ARPT US HI PHTO 19.719 -155.053 11.0 19430415 19451228 912870 99999 CAPE KUMUKAHI HAWAII US 19.517 -154.817 15.0 19940710 20010506 912890 99999 HALEMAUMAU CRATER HAWAII US 19.4 -155.283 1112.0 19730104 20020107 912910 99999 MAUNA LOA STRIP ROAD HAWAII US 19.467 -155.35 1645.0 20010902 20010902 912930 99999 SOUTH KONA HAWAII HAWAII US PHWH 19.1 -155.75 808.0 19731108 19831231 912940 99999 SOUTH POINT HAWAII US 19.0 -155.667 290.0 19930715 20020804 912944 99999 PAHALA-ON-HAWAII US HI 19.2 -155.483 -999.0 19801015 19831201 913140 99999 SONSOROL CAROLINE IS. PS 5.332999999999999 132.38299999999998 3.0 19730101 20140121 913150 99999 EAURIPIK CAROLINE IS. FM 6.683 143.083 3.0 19940227 20020404 913170 99999 WOLEAI ATOLL CAROLINE IS. FM 7.382999999999999 143.917 4.0 19730101 20170923 913200 99999 ONOUN FM 8.583 149.65 0.0 20111204 20170627 913240 99999 PULUWAT ATOLL AWS CAROLINE IS. FM 7.35 149.2 2.0 19730101 20170922 913250 99999 PULUSUK CAROLINE IS. FM 6.7 149.3 3.0 19921224 20150813 913280 99999 ULUI ATOLL (AMOS) FM 8.583 149.65 2.0 19920401 20070611 913290 99999 FANANU ISLAND FM 8.55 151.9 1.0 20040715 20170923 913340 40505 CHUUK INTERNATIONAL AIRPORT FM FM PTKK 7.45 151.833 1.5 19451231 20170923 913360 99999 LOSAP ISLAND FM 6.882999999999999 152.717 2.0 20040714 20170603 913380 99999 SATAWAN ATOLL AWS CAROLINE ISLANDS FM 5.332999999999999 153.733 2.0 19730101 20011007 913390 99999 LUKUNOR ATOLL CAROLINE ISLANDS FM 5.5 153.817 3.0 19820101 20170920 913430 99999 OROLUK ATOLL AWS CAROLINE ISLANDS FM 7.632999999999999 155.167 3.0 19730101 20160720 913480 99999 POHNPEI INTL FM PTTP 6.985 158.209 3.0 20161023 20170923 913481 99999 POHNPEI WEATHER CENTER FM 6.9670000000000005 158.217 39.0 20040713 20170923 913500 99999 MWOAKILLO CAROLINE IS FM 6.667000000000001 159.783 2.0 20040715 20170923 913520 99999 PINGELAP ATOLL AWS CAROLINE IS. FM 6.2170000000000005 160.7 4.0 19920904 20050108 913530 99999 PINGELAP ATOLL CAROLINE IS. FM 6.2170000000000005 160.7 4.0 19730101 20170923 913540 99999 UJELANG CAROLINE IS. RM 9.767000000000001 160.983 3.0 19960126 19970309 913550 99999 KOSRAE ATOLL AWS CAROLINE IS. FM PTTK 5.35 162.95 2.0 19920301 20040307 913560 493 KOSRAE FM FM PTSA 5.354 162.953 2.6 20150324 20161010 913560 99999 KOSRAE FM PTSA 5.357 162.958 3.4 19510221 20170923 913570 99999 YAP FM 9.5 138.083 28.0 20110423 20110423 913640 99999 ROI-NAMUR RM 9.4 167.467 4.0 20161204 20161204 913650 99999 UJAE ATOLL AWS MARSHALL IS. RM 8.9 165.733 2.0 19910325 20020820 913660 40604 BUCHOLZ AAF KWAJALEIN KMR ATOL AP RM MH PKWA 8.732999999999999 167.733 2.1 19440214 20170923 913670 99999 AILINGLAPALAP ATOLL MARSHALL IS. RM 7.267 168.833 3.0 19730101 20170923 913680 99999 AILINGLAPLAP MARSHALL IS. RM 7.267 168.833 2.0 19930209 20150930 913690 99999 JALUIT ATOLL MARSHALL IS. RM 5.917000000000001 169.65 3.0 19730111 20170923 913691 99999 MAJURO ATOLL WEATHER CENTER RM PKMR 7.082999999999999 171.13299999999998 4.0 20040713 20170923 913710 99999 WOTJE ATOLL MARSHALL IS. RM 9.467 170.25 3.0 19730102 20170923 913740 99999 MALEOLAP ATOLL AWS MARSHALL IS. RM 8.9 170.85 3.0 19960812 20040403 913750 99999 MAJURA MARSHALL IS. RM 7.117000000000001 171.35 0.0 19930116 20121206 913760 492 MARSHALL ISLANDS INTERNATIONAL AIRPORT RM MH PKMJ 7.065 171.27200000000002 1.8 20161010 20170923 913770 99999 MILI ATOLL AWS MARSHALL IS. RM 6.1 171.4 2.0 19910501 19980831 913780 99999 MILI ATOLL MARSHALL IS. RM 6.082999999999999 171.733 4.0 19730101 20170320 913850 99999 PALMYRA ISLAND LQ PLPA 5.882999999999999 -162.05 2.0 19450201 19990804 914080 40309 BABELTHUAP/KOROR AIR PS PC PTKR 7.332999999999999 134.483 33.2 19470630 20101231 914080 40310 BABELTHUAP/KOROR AIRPORT PS PW PTRO 7.367000000000001 134.54399999999998 53.6 20130101 20170923 914081 40309 WEST CAROLINE ISLANDS PACIFIC PS PW PTKR 7.332999999999999 134.483 32.2 20110101 20170923 914081 99999 KOROR PALAU / NWS PS PTKR 7.33 134.483 30.0 20100408 20101231 914100 99999 TOBI ISLAND CAROLINE IS. PS 3.017 131.183 5.0 19730124 20030123 914110 99999 NGULU CAROLINE IS. FM 8.3 137.483 3.0 19930214 19990705 914130 40308 YAP INTERNATIONAL AIRPORT FM FM PTYA 9.482999999999999 138.083 13.4 19480902 20170923 914240 99999 MIDDLE PT(RESEARCH) AS -12.567 131.3 10.0 19961123 20021009 914250 99999 NUKUORO ATOLL CAROLINE IS. FM 3.85 155.017 4.0 19730102 20170923 914340 99999 KAPINGAMARANGI ATOLL CAROLINE IS. FM 1.083 154.767 3.0 19580401 20170923 914420 99999 EBON ATOLL AWS MARSHALL IS. RM 4.6 168.683 3.0 19730130 19980831 914870 99999 FANNING ISLAND KR PLFA 3.85 -159.36700000000002 5.0 19430421 20150621 914900 99999 CHRISTMAS ISLAND KT PLCH 1.986 -157.35 1.5 19411103 20170923 914920 99999 CHRISTMAS ISLAND KT 2.0 -157.4 3.0 20010630 20041115 915020 99999 TARO ISLAND BP -6.7 156.38299999999998 3.0 19751201 20170923 915030 99999 MUNDA BP AGGM -8.328 157.263 3.0 19431130 20170923 915070 99999 AUKI BP -8.783 160.733 11.0 19730101 20170923 915170 99999 HONIARA BP -9.417 159.967 56.0 19491115 20170923 915190 99999 HONIARA/NTF/AWS BP -9.43 159.97 0.0 20050419 20111128 915200 99999 HONIARA INTL BP AGGH -9.427999999999999 160.055 8.5 19430316 20170923 915270 99999 KIRA KIRA BP -10.417 161.917 3.0 19730102 20080127 915300 99999 NAURU NR ANAU -0.5 166.917 6.0 19510101 20091214 915310 99999 NAURU NR -0.531 166.917 0.0 19980301 20130724 915320 99999 NAURU ARC-2 NR -0.517 166.917 7.0 20030210 20130917 915330 99999 BANABA KR -0.9 169.533 66.0 19730101 20151009 915410 99999 SANTA CRUZ ISLAND BP AGGL -10.7 165.8 24.0 19730101 20170923 915500 99999 LINUA AIRPORT AWS (TORRES IS.) NH -13.317 166.61700000000002 5.0 19910701 20170923 915510 99999 SOLA/VANUA LAVA ISL NH NVSC -13.85 167.55 18.0 19481201 20170923 915515 99999 LONGANA AIRPORT NH NVSG -15.3 167.967 51.0 20130730 20170923 915530 99999 SARATMATA NH -15.283 167.983 27.0 20100901 20150313 915540 99999 SANTO PEKOA INTL NH NVSS -15.501 167.22299999999998 56.1 19730101 20170923 915550 99999 LAMAP/MALEKOULA ISL NH NVSL -16.417 167.8 26.0 19730101 20170923 915570 99999 PORT VILA BAUERFIELD NH NVVV -17.699 168.32 21.3 19850701 20170923 915580 99999 PORT VILA/BAUERFLD NH NVVV -17.75 168.3 18.0 19470831 19900112 915590 99999 POINT VITA/NTF/AWS NH -17.757 168.3 0.0 20050419 20120514 915600 99999 LENAKEL NH NVVK -19.5 169.233 70.0 19990623 19990725 915620 99999 ERROMANGO ISLAND NH -18.783 168.817 198.0 19480501 20170923 915650 99999 TANNA NH NVVW -19.455 169.22400000000002 5.8 19730101 20170923 915680 99999 ANEITYUM NH -20.233 169.767 7.0 19480801 20170923 915700 99999 ILE SURPRISE NC -18.483 163.083 5.0 19730101 20170923 915710 99999 TIEBAGHI RADAR NC -20.46 164.215 595.0 20160112 20170923 915730 99999 ILE ART (BELEP) NC -19.717 163.65 84.0 20010915 20170923 915740 99999 ILE LOOP (CHESTERFIELD) NC -19.967 158.483 4.0 19730812 20170103 915770 99999 KOUMAC NC NWWK -20.546 164.25599999999997 12.8 19430331 20170711 915790 99999 OUVEA NC NWWV -20.641 166.57299999999998 7.0 19730101 20170923 915820 99999 LIFOU NC NWWL -20.775 167.24 28.0 19730101 20170923 915830 99999 POINDIMIE (NLLE-CALEDONIE) NC -20.933000000000003 165.317 13.0 19730101 20170913 915870 99999 MARE NC NWWR -21.482 168.03799999999998 43.0 19730101 20170923 915900 99999 LA TONTOUTA NC NWWW -22.015 166.213 15.8 19421231 20170923 915915 99999 MAGENTA NC NWWM -22.258000000000003 166.47299999999998 3.0 20060710 20101001 915920 99999 NOUMEA NC NWWN -22.267 166.45 72.0 19450831 20170731 915925 99999 TOUHO NC NWWU -20.79 165.25900000000001 3.0 20061010 20101001 915960 99999 ILE DES PINS NC NWWE -22.589000000000002 167.456 96.0 19730101 20170923 915980 99999 MATTHEW (ILOT) NC -22.333000000000002 171.333 27.0 19800301 20130211 916010 99999 BUTARITARI ATOLL KR NGTU 3.033 172.783 1.0 19431207 20170923 916020 99999 TARAWA / BETIO KR NGTT -0.883 169.533 3.0 20040817 20170818 916090 99999 TARAWA/BONRIKI AI KR 1.35 172.917 4.0 20040716 20040716 916100 99999 BONRIKI INTL KR NGTA 1.382 173.14700000000002 2.7 19440227 20170923 916110 99999 TARAWA TIDE AWS KR 1.35 172.933 -999.9 19971001 20110928 916120 99999 BONRIKI AIRPORT KR 1.383 173.15 2.0 20010915 20170923 916230 99999 BERU ISLAND KR NGBR -1.35 176.0 3.0 19730101 20170923 916290 99999 ARORAE ISLAND KR NGTR -2.667 176.833 7.0 19730101 20170821 916310 99999 NANUMEA ISLAND TV NGFO -5.667000000000001 176.13299999999998 3.0 19431112 20170923 916360 99999 NUI TV -7.233 177.15 2.0 19730102 20170922 916420 99999 FUNAFUTI TV -8.5 179.217 -999.9 19971001 20130809 916430 80705 FUNAFUTI INTL ARPT TV NGFU -8.517000000000001 179.217 2.0 19430720 20170923 916430 99999 FUNAFUTI INTL ARPT TV NGFU -8.517000000000001 179.217 2.0 20000101 20071231 916440 99999 FUNAFUTI TV -8.517000000000001 179.233 0.0 19940301 20020426 916480 99999 NIULAKITA TV -10.75 179.5 3.0 19730101 20170923 916500 99999 ROTUMA ISLAND FJ NFNR -12.5 177.05 26.0 19730101 20170923 916520 99999 UDU POINT AWS FJ -16.133 -179.983 63.0 19730101 20170923 916560 99999 LABASA AWS FJ -16.433 179.417 2.0 20040713 20141213 916570 99999 LABASA FJ NFNL -16.467 179.34 15.2 20020909 20170903 916590 99999 NABOUWALU FJ -17.0 178.7 36.0 19730101 20170923 916600 99999 YASAWA-I-RARA AWS FJ -16.7 177.583 50.0 19430731 20170919 916630 99999 SAVUSAVU / AIRPORT FJ NFNS -16.817 179.35 4.0 20030514 20170812 916650 99999 MATEI FJ NFNM -16.683 -179.86700000000002 21.0 20020909 20170606 916690 99999 RAKIRAKI AWS FJ -17.35 178.217 15.0 20010829 20170923 916700 99999 VIWA AWS FJ -17.15 176.9 5.0 19801001 20170920 916760 99999 VANUA BALAVU AWS FJ -17.233 -178.95 52.0 19851209 20160219 916780 99999 LEVUKA FJ -17.683 178.833 3.0 19730101 20030510 916790 99999 LAUTOKA QUEENS WHARF FJ -17.6 177.45 0.0 19980301 20110616 916800 99999 NADI INTL FJ NFFN -17.755 177.44299999999998 18.0 19420413 20170923 916820 99999 SIGATOKA AWS FJ -18.15 177.417 8.0 20010808 20170923 916830 99999 NAUSORI INTL FJ NFNA -18.043 178.55900000000003 5.2 19730101 20170923 916890 99999 SUVA KINGS WHARF FJ -18.133 178.433 0.0 20010706 20120216 916900 99999 LAUTHALA FJ NFLB -18.15 178.45 6.0 19800403 20170621 916910 99999 LAKEMBA ISLAND FJ NFNK -18.233 -178.8 3.0 19730101 20170923 916930 99999 VUNISEA FJ NFKD -19.05 178.167 33.0 19730101 20170923 916970 99999 MATUKU AWS FJ -19.133 179.75 5.0 19730101 20170923 916990 99999 ONO-I-LAU AWS FJ -20.666999999999998 -178.717 28.0 19730101 20170923 917000 99999 CANTON ISLAND CT PCIS -2.767 -171.717 3.0 19420502 19790711 917001 99999 CANTON ISL/TOPHAM CT -2.767 -171.717 3.0 19750414 19750414 917010 99999 KANTON ISLAND KR -2.767 -171.717 2.0 19840101 20170923 917200 99999 ATAFU TL -8.533 -172.517 3.0 19730101 19990928 917230 99999 NUKUNONU AWS TL -9.2 -171.9 3.0 19901201 20100518 917240 99999 NUKUNONO TL -9.2 -171.917 3.0 19730101 19970204 917270 99999 FENUAFALA/FAKAOFO TL -9.383 -171.267 4.0 19810828 20020929 917280 99999 FAKAOFO ATOLL TL -9.383 -171.25 3.0 19730101 19820516 917350 99999 LE PIU TAI WS -13.45 -172.4 121.0 20120501 20170923 917360 99999 MAOTA INT WS -13.75 -172.25 23.0 20120501 20170923 917370 99999 MT TALU WS -13.533 -172.717 236.0 20130710 20170202 917380 99999 FALEOLO INT EAST WS -13.833 -172.0 10.0 20120501 20170923 917390 99999 FALEOLO INT WEST WS -13.833 -172.017 10.0 20120501 20170923 917400 99999 MANONO WS -13.85 -172.11700000000002 46.0 20140711 20170923 917410 99999 LUFI-LUFI WS -13.883 -171.6 48.0 20120501 20170923 917420 99999 TOGITOGIGA WS -14.033 -171.767 4.0 20120501 20170923 917430 99999 LE MAFA WS -13.95 -171.6 292.0 20120501 20170923 917530 99999 WALLIS WF NLWW -13.238 -176.199 24.1 19430809 20170923 917540 99999 FUTUNA ISL/MAOPOOPO WF NLWF -14.317 -178.11700000000002 36.0 19730101 20170923 917550 99999 AVATA WS -13.482999999999999 -172.767 200.0 19940601 20010102 917560 99999 APIA WHARF WS -13.817 -171.75 -999.9 19980301 20110823 917570 99999 AVAVO WS -13.6 -172.217 11.0 19940601 20010102 917580 99999 FALEOLO ARPT WS -13.817 -171.983 18.0 19940601 20010102 917590 99999 FALEOLO INTL WS NSFA -13.83 -172.00799999999998 17.7 19800701 20170923 917600 99999 ASAU WS -13.5 -172.63299999999998 4.0 19730612 20170315 917620 99999 APIA/UPOLU ISLAND WS NSAP -13.8 -171.783 2.0 19730101 20170923 917630 99999 CAPE TAPAGA WS -14.05 -171.45 46.0 19940902 20010102 917640 99999 CAPE TAPUTAPU AWS AMERICAN SAMOA * AQ -14.333 -170.833 -999.9 19940902 20020914 917650 61705 TAFUNA/PAGO PAGO INTERNATIONAL AP AQ AS NSTU -14.331 -170.71400000000003 3.7 19450801 20170923 917660 99999 CAPE MATATULA AWS AMERICAN SAMOA * AQ -14.317 -170.567 -999.9 19940905 20010724 917680 99999 TA'U AWS AMERICAN SAMOA * AQ -14.183 -169.5 -999.9 19940902 20170317 917720 99999 NIUAFOOU TN -15.567 -175.61700000000002 61.0 19750618 20170923 917760 99999 KEPPEL TN -15.95 -173.767 3.0 19730101 20170923 917790 99999 LUPEPAU'U TN -18.583 -173.967 70.0 19950401 20170923 917800 99999 VAVAU TN -18.65 -173.983 10.0 19730101 19951003 917830 99999 VAVAU INTL TN NFTV -18.585 -173.96200000000002 71.9 20040912 20170923 917840 99999 HAAPAI TN NFTL -19.777 -174.34099999999998 9.4 19730101 20170923 917850 99999 HA'AFEVA TN -19.95 -174.7 4.0 19860601 20030701 917860 99999 NOMUKA TN -20.25 -174.8 36.0 19861203 20030319 917880 99999 NUKUALOFA TN NFTN -21.133000000000003 -175.183 2.0 19430101 19800903 917890 99999 NUKU'ALOFA TN -21.133000000000003 -175.183 -999.9 19971001 20170923 917920 487 FUA AMOTU TONGA FJ NFTF -21.23 -175.15 38.1 20130101 20170923 917920 99999 FUA AMOTU INTL TN NFTF -21.241 -175.15 38.4 19800301 20161107 918000 99999 PENRHYN ISLAND CW -9.017000000000001 -158.067 2.0 19430801 19960809 918010 99999 PENRHYN CW -9.033 -158.05 1.0 19990508 20100921 918020 99999 PENRHYN AWS CW -9.033 -158.05 1.0 19970201 20170923 918040 99999 RAKAHANGA ATOLL CW -10.05 -161.1 5.0 19730101 19960909 918080 99999 MANIHIKI CW -10.4 -161.05 4.0 19730101 19860224 918090 99999 MANIHIKI (HUMPHREY ISLAND) CW NCMH -10.377 -161.002 1.8 19970401 20170829 918110 99999 PUKAPUKA CW -10.883 -165.817 3.0 19730101 20020529 918120 99999 PUKAPUKA AWS * CW -10.883 -165.817 -999.9 20010701 20130130 918190 99999 SUWARROW CW -13.232999999999999 -163.083 3.0 19901201 19941116 918220 99999 NIUE INTL NE NIUE -19.08 -169.926 63.7 19730101 20170923 918240 99999 HANAN AIRPORT NE -19.083 -169.933 59.0 20010915 20170923 918260 99999 PALMERSTON * CW -18.067 -163.183 4.0 19730101 19960913 918300 99999 AITUTAKI CW NCAI -18.831 -159.764 4.3 19430801 20170923 918310 99999 AITUTAKI AWS CW -18.833 -159.767 5.0 19970201 20170923 918400 99999 MAUKE ISLAND CW -20.133 -157.35 9.0 19730101 19961216 918410 99999 MAUKE AWS CW -20.167 -157.35 25.0 19970201 20130912 918430 99999 RAROTONGA INTL CW NCRG -21.203000000000003 -159.806 5.8 19730101 20170923 918440 99999 RAROTONGA CW -21.2 -159.783 -999.9 19971001 20120404 918470 99999 MANGAIA ISLAND CW -21.916999999999998 -157.95 15.0 19851201 19961016 918480 99999 MANGAIA AWS CW -21.916999999999998 -157.95 41.0 19970201 20170610 919010 99999 JARVIS ISLAND US -0.38299999999999995 -160.017 2.0 20020916 20020916 919020 99999 MALDEN ISLAND (NORPAX) KR -4.05 -155.0 2.0 19620320 19811226 919030 99999 MALDEN ISLAND (UNIV. OF HAWAII) KR -4.05 -155.0 2.0 19740907 19820609 919120 99999 20020602 20020602 919200 99999 TAIOHOE FP -8.917 -140.1 12.0 19740730 19740825 919250 99999 HIVA-OA FP -9.8 -139.033 53.0 19730101 20170923 919280 99999 PUKA-PUKA ATOLL FP NTGP -14.8 -138.817 2.0 19730101 19870610 919290 99999 BORA-BORA FP -16.433 -151.75 3.0 19980301 20170923 919300 99999 BORA BORA FP NTTB -16.444000000000003 -151.751 3.0 19430804 20170112 919310 99999 MOPELIA FP -16.767 -153.95 2.0 19730101 19900728 919360 99999 TAIARAPU-EST FP -17.75 -149.167 2.0 20170510 20170922 919380 99999 TAHITI FAAA FP NTAA -17.554000000000002 -149.607 1.5 19730101 20170923 919410 99999 RANGIROA FP NTTG -14.954 -147.661 3.0 19801001 20110821 919430 99999 TAKAROA FP -14.482999999999999 -145.033 3.0 19730101 20170922 919440 99999 HAO FP NTTO -18.075 -140.946 3.0 19730101 20170923 919450 99999 HEREHERETUE FP -19.9 -144.94899999999998 3.0 19730101 20161103 919480 99999 MANGAREVA FP -23.133000000000003 -134.967 89.0 19730101 20170923 919483 99999 TOTEGEGIE FP NTGJ -23.08 -134.89 2.1 20100427 20100427 919500 99999 RURUTU ISLAND FP -22.433000000000003 -151.36700000000002 3.0 19771116 19960714 919510 99999 RIMATARA FP -22.65 -152.783 4.0 19740801 19830730 919520 99999 MUROROA ATOLL (MIL) FP NTTX -21.816999999999997 -138.8 3.0 19741008 19980520 919530 99999 MARUTEA PF FP -21.483 -135.45 3.0 19740902 20011009 919540 99999 TUBUAI FP NTAT -23.365 -149.524 2.1 19730101 20170923 919550 99999 MATUREI VAVAO FP -21.45 -136.417 2.0 19741017 19820201 919580 99999 RAPA FP -27.616999999999997 -144.333 2.0 19730101 20170923 919600 99999 PITCAIRN PC -25.066999999999997 -130.1 265.0 19730101 19940311 919610 99999 PITCAIRN ISLAND AWS A PC -25.066999999999997 -130.1 265.0 20010822 20100305 919620 99999 PITCAIRN ISLAND AWS B PC -25.066999999999997 -130.1 265.0 20040406 20170923 919640 99999 PITCAIRN ISLAND AWS PC -25.066999999999997 -130.1 265.0 20050208 20151202 920010 99999 KIUNGA W.O. PP -6.082999999999999 141.183 35.0 19970101 20170922 920030 99999 DARU W.O. PP -9.083 143.2 9.0 19970101 20111110 920040 99999 WEWAK INTL PP AYWK -3.5839999999999996 143.66899999999998 5.8 19970101 20170921 920050 99999 MT HAGEN ATS PP -5.832999999999999 144.3 1631.0 20090806 20170321 920060 99999 KOINAMBE PP -5.483 144.6 884.0 20011001 20121031 920100 99999 GOROKA ATS PP -6.067 145.38299999999998 1587.0 20010915 20170923 920140 99999 MADANG PP AYMD -5.207000000000001 145.789 6.1 19970101 20170812 920145 99999 MOUNT HAGEN PP AYMH -5.827000000000001 144.296 1642.3 20010201 20070704 920147 99999 GOROKA PP AYGA -6.082000000000001 145.392 1610.0 20000206 20010312 920148 99999 MOMOTE PP AYMO -2.062 147.424 3.7 20040713 20170923 920220 99999 VANIMO PP -2.7 141.317 3.0 20010915 20170911 920350 99999 PORT MORESBY JACKSONS INTL PP AYPY -9.443 147.22 44.5 19970101 20170923 920360 99999 LOMBRUM MANUS ISLAND PP -2.417 147.38299999999998 1.0 20010911 20130918 920400 99999 BIPI PP -2.017 146.983 4.0 20040714 20100412 920440 99999 MOMOTE W.O. PP -2.05 147.417 4.0 19970101 20170923 920470 99999 NADZAB PP AYNZ -6.57 146.726 72.8 19970101 20170923 920510 99999 ERAVE PP -6.65 143.88299999999998 1036.0 20010917 20030110 920680 99999 AGAUN PP -9.967 149.38299999999998 1005.0 20010916 20130222 920690 99999 KURADA PP -10.05 151.0 3.0 20010915 20090306 920700 99999 SIDEIA PP -10.617 150.667 3.0 20010917 20040505 920720 99999 HOSKINS W.O. PP -5.4670000000000005 150.4 8.0 20010916 20150107 920750 99999 DAMI PP -5.483 150.4 5.0 20070914 20070914 920760 99999 KAVIENG W.O. PP -2.5669999999999997 150.817 4.0 19970101 20170923 920770 99999 GURNEY W.O. PP -10.317 150.333 23.0 20010915 20170911 920800 99999 SALAMO PP -9.667 150.783 15.0 20040505 20061108 920820 99999 NUGURIA PP -3.3169999999999997 154.667 3.0 20010915 20080531 920840 99999 FENI PP -4.0169999999999995 153.667 2.0 20030331 20080520 920870 99999 MISIMA W.O. PP -10.683 152.833 7.0 19970101 20170731 920900 99999 JINJO PP -11.317 154.233 10.0 19990823 20040730 920920 99999 NIMOWA PP -11.3 153.267 3.0 20010915 20090317 921000 99999 TOKUA W.O. PP -4.333 152.36700000000002 13.0 20010915 20170923 921030 99999 BROOSE ISL AWS AUT& AS -14.117 123.53299999999999 5.0 19990922 20010716 921200 99999 DARWIN (CIV/MIL) AS -12.433 130.86700000000002 29.0 19970115 19970204 921240 99999 20020927 20020927 930030 99999 CAPE REINGA NZ -34.433 172.683 189.0 19490101 19900326 930040 99999 CAPE REINGA AWS NZ -34.433 172.683 216.0 19840401 20170923 930110 99999 KAITAIA AERODROME NZ NZKT -35.067 173.283 82.0 19490101 19860614 930120 99999 KAITAIA OBSERVATORY NZ -35.133 173.267 85.0 19850501 19950929 930230 99999 PURERUA NZ -35.117 174.017 84.0 19840215 20170923 930250 99999 CAPE BRETT NZ -35.167 174.333 41.0 19490101 19541231 930640 99999 TINOPAI NZ -36.233000000000004 174.25 20.0 19490101 19500731 930690 99999 MOKOHINAU AWS NZ -35.9 175.1 60.0 19940901 20170923 930750 99999 LITTLE BARRIER ISL NZ -36.217 175.05 2.0 20011110 20021203 931100 99999 AUCKLAND AERO AWS NZ -37.0 174.8 7.0 19940801 20170923 931120 99999 WHENUAPAI NZ NZWP -36.788000000000004 174.63 30.5 19591231 20170909 931150 99999 AUCKLAND NZ -36.85 174.767 44.0 19490101 19570930 931190 99999 AUCKLAND INTL NZ NZAA -37.008 174.792 7.0 19651231 20170923 931290 99999 WHITIANGA AERODROME AWS NZ -36.867 175.667 6.0 20060223 20060223 931360 99999 ARDMORE NZ -37.033 174.967 42.0 20020628 20030823 931670 99999 RAGLAN NZ -37.8 174.85 12.0 20041212 20041212 931840 99999 TAURANGA HARBOUR NZ -37.65 176.183 4.0 19730101 19950529 931850 99999 TAURANGA AERODROME NZ -37.667 176.2 5.0 19490101 20030214 931860 99999 TAURANGA NZ NZTG -37.672 176.196 4.0 19900601 20170923 931960 99999 HICKS BAY AWS NZ -37.55 178.3 46.0 19910725 20170923 931980 99999 EAST CAPE (MAN) NZ -37.683 178.55 17.0 19490101 20021108 931990 99999 EAST CAPE (AUT) NZ -37.7 178.55 22.0 19800404 19900817 932010 99999 PORT TAHAROA NZ -38.167 174.7 28.0 20170918 20170923 932450 99999 TAUPO AWS NZ -38.733000000000004 176.067 401.0 19960901 20170923 932460 99999 ROTORUA NZ NZRO -38.109 176.317 285.0 20020707 20020707 932910 99999 GISBORNE AERODROME NZ -38.667 177.983 8.0 19490101 19940530 932920 99999 GISBORNE NZ NZGS -38.663000000000004 177.97799999999998 4.6 19811101 20170923 933050 99999 MAUI A PLATFORM NZ -39.533 173.433 36.6 19780802 20110406 933080 99999 NEW PLYMOUTH AERODR NZ -39.016999999999996 174.183 36.0 19490101 19930403 933090 99999 NEW PLYMOUTH AWS NZ -39.016999999999996 174.183 32.0 19830201 20170923 933210 99999 WAIPIPI IRONSANDS NZ -39.817 174.6 27.0 20030630 20030630 933340 99999 WAIOURU AWS NZ -39.467 175.683 823.0 19790701 20120201 933360 99999 WAIOURU AERODROME NZ -39.45 175.667 823.0 19990421 20020701 933370 99999 WAIOURU NZ -39.467 175.683 823.0 19730101 19890222 933390 99999 WAIOURU AIRSTRIP NZ -39.433 175.65 819.0 20110719 20170923 933469 99999 LONGREACHAMO. AS -23.43 144.28 193.0 19570426 19821031 933720 99999 NAPIER/AIRPORT NZ -39.467 176.86700000000002 5.0 19730101 19930905 933730 99999 NAPIER AERODROME AWS NZ -39.467 176.86700000000002 3.0 19920301 20170923 933740 99999 NAPIER HARBOUR NZ -39.483000000000004 176.917 15.0 19490101 19940321 934010 99999 OHAKEA NZ NZOH -40.205999999999996 175.388 50.0 19490101 20170921 934040 99999 PALMERSTON NORTH AWS NZ -40.317 175.6 39.0 19920901 20170923 934170 99999 PARAPARAUMU NZ NZPP -40.905 174.989 6.7 19870901 19950531 934200 99999 PARAPARAUMU AWS NZ -40.9 174.983 7.0 19950801 20170923 934310 99999 OUTLOOK HILL RADAR NZ -41.317 174.65 548.0 20040311 20040311 934340 99999 WELLINGTON NZ -41.283 174.767 127.0 19490101 19890227 934360 488 WELLINGTON INTL NZ NZWN -41.3 174.8 7.0 20150317 20170922 934360 99999 WELLINGTON INTL NZ NZWN -41.327 174.805 12.5 19591231 20170923 934390 99999 WELLINGTON AERO AWS NZ -41.333 174.8 12.0 19950701 20170923 934710 99999 EAST TARATAHI NZ -41.083 175.61700000000002 93.0 19780215 20020115 934980 99999 CASTLEPOINT NZ -40.9 176.2 120.0 19950606 20170923 935150 99999 WESTPORT AERODROME NZ -41.733000000000004 171.567 5.0 19911211 20170923 935160 99999 WESTPORT HARBOUR NZ -41.75 171.6 4.0 19490101 19950530 935260 99999 FAREWELL SPIT NZ -40.55 173.0 3.0 19490101 19841102 935270 99999 FAREWELL SPIT AWS NZ -40.55 173.0 3.0 19790701 20170923 935450 99999 NELSON AERODROME NZ -41.3 173.217 7.0 19490101 19940427 935460 99999 NELSON AERODROME AWS NZ NZNS -41.3 173.2 6.0 19801015 20170923 935570 99999 MOLESWORTH NZ -42.083 173.25 883.0 20020401 20020401 935610 99999 STEPHENS ISLAND NZ -40.667 174.0 187.0 20030111 20030111 935730 99999 BELVUE BAY NZ -41.283 173.817 12.0 20050127 20050127 935740 99999 PICTON NZ -41.283 174.0 5.0 19771003 19780502 935770 99999 BLENHEIM AERODROME NZ -41.516999999999996 173.86700000000002 32.0 20020322 20020322 935970 99999 CAPE CAMPBELL AWS NZ -41.717 174.267 32.0 19870301 20170923 935980 99999 CAPE CAMPBELL NZ -41.733000000000004 174.2 5.0 19490101 19861018 936140 99999 HOKITIKA AERODROME NZ -42.717 170.983 44.0 19490101 20170923 936150 99999 HOKITIKA AERODROME AWS NZ -42.717 170.983 40.0 19801015 20140509 936580 99999 CULVERDEN AIRFIELD NZ -42.766999999999996 172.88299999999998 174.0 20020315 20020315 936780 99999 KAIKOURA NZ -42.417 173.7 101.0 19970101 20170923 937080 99999 HAAST NZ NZHT -43.867 169.0 4.0 19491002 19790706 937090 99999 HAAST AWS NZ -43.867 169.0 5.0 19790606 20170923 937130 99999 SOUTH ISLAND NZ -47.98 168.62 0.0 20050507 20120103 937470 99999 TARA HILLS NZ -44.516999999999996 169.9 488.0 20170828 20170923 937510 99999 AVIEMORE NZ -44.667 170.35 241.0 19780303 19780805 937550 99999 FAIRLIE NZ -44.1 170.817 300.0 19880104 19890428 937610 99999 HORORATA NZ -43.516999999999996 171.933 196.0 20011027 20011027 937720 99999 TIMARU AERODROME NZ -44.3 171.217 27.0 19921012 20050524 937730 99999 TIMARU AERODROME AWS NZ -44.3 171.233 27.0 19920301 20170923 937750 99999 TIMARU HARBOUR NZ -44.4 171.25 8.0 19490101 19970316 937800 99999 CHRISTCHURCH INTL NZ NZCH -43.489 172.532 37.5 19530707 20170923 937810 99999 CHRISTCHURCH AERO AWS NZ -43.483000000000004 172.517 37.0 19940801 20170923 937830 99999 WIGRAM NZ -43.55 172.55 30.0 19490101 19530706 937960 99999 OAMARU AIRPORT AWS NZ -44.967 171.083 31.0 20020531 20020531 938000 99999 SECRETARY ISLAND AWS NZ -45.217 166.88299999999998 19.0 19940901 20170923 938050 99999 PUYSEGUR POINT AWS NZ -46.15 166.6 44.0 19850109 20170923 938060 99999 PUYSEGUR PT (LGT-H) NZ -46.167 166.63299999999998 41.0 19490102 19890822 938310 99999 QUEENSTOWN AERODROME NZ -45.016999999999996 168.733 358.0 19950606 20170923 938400 99999 CENTRE ISL (LGT-H) NZ -46.467 167.85 61.0 20020809 20020809 938440 99999 INVERCARGILL NZ NZNV -46.412 168.313 1.5 19490101 19950531 938450 99999 INVERCARGILL AIRPORT AWS NZ -46.417 168.333 2.0 19890516 20170923 938630 99999 GORE NZ -46.1 168.933 70.0 19870317 20020117 938870 99999 NUGGET POINT AWS NZ -46.45 169.817 130.0 20121207 20121207 938910 99999 DUNEDIN AERODROME AWS NZ -45.917 170.183 2.0 20030330 20170923 938960 99999 TAIAROA HEAD NZ -45.766999999999996 170.733 76.0 19490101 20020901 939090 99999 SOUTH WEST CAPE AWS NZ -47.266999999999996 167.45 102.0 19910703 20170923 939290 99999 ENDERBY ISLAND AWS NZ -50.483000000000004 166.3 40.0 19920401 20170923 939440 99999 CAMPBELL ISLAND NZ -52.55 169.15 19.0 19490101 19950831 939450 99999 CAMBELL ISLAND AWS NZ -52.55 169.167 19.0 19910725 20170621 939470 99999 CAMBELL ISLAND AWS NZ -52.55 169.15 19.0 19970101 20170923 939840 99999 CHATHAM ISL (RADIO) NZ -43.95 -176.567 49.0 19730101 19861130 939850 99999 CHATHAM ISLAND AERODROME AWS NZ -43.817 -176.483 13.1 20121001 20170923 939860 99999 CHATHAM ISLANDS NZ NZCI -43.81 -176.457 13.1 19490101 19940731 939870 99999 CHATHAM ISLANDS AWS NZ -43.95 -176.567 49.0 19910725 20120401 939940 99999 RAOUL ISLAND AWS NZ -29.25 -177.933 49.5 19891114 20170923 939950 99999 949950 AS -31.533 159.083 46.0 19490101 19541231 939960 99999 949960 AS -29.05 167.933 109.0 19490101 19541231 939970 99999 RAOUL ISLAND KERMADEC ISLANDS NZ NZRN -29.25 -177.933 49.5 19490101 19981109 939980 99999 949980 AS -54.5 158.95 6.0 19520203 19760727 940010 99999 KIUNGA SOUTH PP -6.132999999999999 141.3 35.0 19940501 19970205 940020 99999 AITAPE PP -3.15 142.35 3.0 19440423 19450820 940030 99999 DARU W.O. PP -9.067 143.2 4.0 19910301 19990612 940040 99999 WEWAK W.O. PP -3.5669999999999997 143.63299999999998 5.0 19730514 19970104 940050 99999 MOUNT HAGEN PP -5.817 144.283 1631.0 20040616 20040616 940080 99999 MOREHEAD PP -8.717 141.63299999999998 31.0 20030310 20030310 940120 99999 KEREMA PP -7.95 145.767 6.0 20010915 20020929 940140 99999 MADANG W.O. PP -5.2170000000000005 145.8 4.0 19440823 19970104 940200 99999 MENYAMYA PP -7.167000000000001 146.0 1127.0 20011009 20011009 940220 99999 VANIMO I.P.PDTE. ED PP -2.7 141.317 3.0 20011029 20011029 940270 99999 LAE PP -6.733 147.0 9.0 19430930 20050127 940310 99999 LAKE KUTUBU PP -6.367000000000001 143.3 807.0 20010909 20021018 940320 99999 AIOME PP -5.117 144.75 107.0 20020417 20020417 940350 99999 PORT MORESBY W.O. PP -9.433 147.217 28.0 19421223 19970105 940440 99999 MOMOTE/MANUS ISLAND PP -2.0669999999999997 147.433 4.0 19500331 19970101 940470 99999 NADZAB W.O. PP -6.567 146.717 70.0 19880601 20010422 940481 99999 FINSCHAFEN PP -6.617000000000001 147.85 8.0 19431130 19450930 940500 99999 GIZARUM/UMBOI ISL PP -5.65 147.8 43.0 20011029 20011116 940510 99999 ERAVE PP -6.65 143.88299999999998 1036.0 20010906 20021101 940560 99999 POPONDETTA PP -8.75 148.25 91.0 19421031 19450815 940691 99999 KANDRIAN-ON-NU-BRIT PP -6.2 149.55 91.0 19431231 19440923 940760 99999 KAVIENG W.O. PP -2.5669999999999997 150.817 7.0 19750130 20020702 940820 99999 NUGURIA PP -3.3169999999999997 154.667 3.0 20020124 20020124 940830 99999 NAMATANAI PP -3.667 152.45 42.0 19740110 19740110 940850 99999 RABAUL PP -4.2 152.183 9.0 19460401 19940918 940870 99999 MISIMA W.O. PP -10.7 152.833 6.0 19730101 19970107 940890 99999 PANASESA PP -10.75 151.733 2.0 19750929 19750930 940900 99999 JINJO/ROSSEL ISLAND PP -11.317 154.233 20.0 19930201 19940328 940970 99999 KIETA PP -6.317 155.717 3.0 19741113 19750503 941000 99999 KALUMBURU AS -14.3 126.633 24.0 20010912 20170923 941010 99999 KALUMBURU MISSION AS -14.3 126.65 24.0 19570101 20050325 941020 99999 TROUGHTON ISLAND AS -13.75 126.15 8.0 19730101 20170923 941030 99999 BROWSE ISLAND AWS AS -14.117 123.53299999999999 5.0 19730101 20170923 941049 99999 MITCHELL PLATEAU AS -14.82 125.83 269.0 19820101 19821031 941050 99999 NOONAMAH AIRSTRIP AS -12.617 131.05 17.5 19750729 20170923 941060 99999 NGUKURR AIRPORT AS -14.717 134.75 14.0 20010922 20170923 941080 99999 CROKER ISLAND AIRPORT AS -11.167 132.483 15.5 20140508 20170923 941090 99999 MURGANELLA AIRSTRIP AS -11.55 132.92700000000002 11.5 20140508 20170923 941100 99999 OENPELLI AIRPORT AS -12.333 133.007 9.1 20010914 20170923 941110 99999 PORT KEATS AWS AUT AS -14.232999999999999 129.45 18.0 19730101 20020418 941160 99999 DUM IN MIRRIE AS -12.633 130.36700000000002 4.0 19970102 20170923 941170 99999 MANGO FARM AS -13.732999999999999 130.683 16.0 19810101 20151225 941180 99999 PINE CREEK COUNCIL AS -13.817 131.833 207.0 20010815 20110630 941190 99999 PIRLANGIMPI AS -11.4 130.417 19.0 19730101 20170923 941200 99999 DARWIN INTL AS YPDN -12.415 130.877 31.4 19410131 20170923 941205 99999 DARWIN (CIV/MIL) AS -12.4 130.88299999999998 30.0 19931112 19940824 941210 99999 CHANNEL POINT AS -13.167 130.11700000000002 4.0 19970101 20170922 941220 99999 CAPE FOURCROY AS -11.783 130.017 7.0 19741222 20170923 941230 99999 GUNPOINT AS -12.232999999999999 131.033 15.0 19870625 20020819 941240 99999 MIDDLE PT RESEARCH AS -12.567 131.3 10.0 19961201 19961230 941250 99999 BATCHELOR AERO AS -13.05 131.017 105.0 19941001 20170923 941270 99999 POINT STUART AS -12.232999999999999 131.88299999999998 1.0 19930101 20170923 941280 99999 DOUGLAS RIVER AS -13.833 131.183 44.0 19901024 20170923 941290 99999 CAPE DON AWS AS -11.317 131.767 20.0 19561231 20150821 941300 99999 BRADSHAW AS -14.95 130.8 76.0 20010815 20170923 941310 99999 TINDAL AS YPTN -14.520999999999999 132.378 135.0 19900904 20170923 941320 99999 KATHERINE COUNTRY CLUB AS -14.467 132.267 106.0 19421130 20170922 941325 99999 KATHERINE/TINDAL AS -14.45 132.283 109.0 19940123 19940123 941330 99999 MINJILANG AS -11.15 132.583 24.0 19611231 19910920 941340 99999 BLACK POINT (PORT ESSINGTON) AS -11.15 132.13299999999998 5.0 19900903 20170921 941350 99999 MCCLUER ISLAND AWS AS -11.05 132.983 2.0 19941001 20170923 941370 99999 JABIRU AIRPORT AS -12.667 132.9 28.0 19910203 20170923 941380 99999 OENPELLI AS -12.333 133.05 9.0 19561231 20140505 941390 99999 WARRUWI AS -11.65 133.38299999999998 20.0 19561231 20170923 941400 99999 MILINGIMBI AWS AS -12.117 134.9 16.0 19611231 20170923 941410 99999 CENTRAL ARNHEM PLATEAU AS -13.333 133.083 416.0 20040608 20170923 941420 99999 MANINGRIDA AS -12.05 134.217 16.0 19711231 20070825 941430 99999 BULMAN AWS AS -13.667 134.333 105.0 20040608 20170923 941440 99999 ROPER BAR AS -14.75 134.533 19.0 19730820 20010824 941450 99999 ROPER VALLEY AS -14.917 134.0 70.0 19970501 20021020 941460 99999 ELCHO ISLAND AS -12.033 135.567 30.0 19611231 20050228 941470 99999 CAPE WESSEL AWS AS -11.017000000000001 136.75 19.0 19730101 20170923 941480 99999 NGUKURR AS -14.732999999999999 134.733 34.0 20030330 20130128 941490 99999 ALYANGULA POLICE AS -13.85 136.417 22.0 19611231 20120620 941500 99999 GOVE AIRPORT AS YDGV -12.283 136.817 53.0 19851201 20170923 941510 99999 NORTH EAST ISLAND AS -13.65 136.933 18.0 19731024 20140827 941520 99999 BORROLOOLA AS -16.083 136.3 17.0 19941001 20170923 941530 99999 GROOTE EYLANDT AS YGTE -13.975 136.46 16.2 20010915 20170923 941700 99999 WEIPA AERO AS -12.683 141.917 19.0 19930101 20170923 941710 99999 WEIPA AS YBWP -12.679 141.925 19.2 19590101 20170923 941713 99999 WEIPA ARPT(PRIVATE) AS ABWP -12.683 141.933 19.0 19850531 19870309 941740 99999 HORN ISLAND AS YHID -10.583 142.283 5.0 19970101 20170923 941750 99999 THURSDAY ISLAND AS -10.567 142.217 8.0 19500903 20021222 941820 99999 COCONUT ISLAND AS -10.05 143.067 4.0 19880801 20170923 941830 99999 COEN AIRPORT AS -13.767000000000001 143.11700000000002 160.0 20030330 20170923 941840 99999 COEN AIRPORT AS -13.75 143.11700000000002 162.0 19700101 20030618 941850 99999 COEN CITY AS -13.95 143.2 194.0 19561231 20020423 941860 99999 LOCKHART RIVER AIRPORT AS -12.783 143.3 20.0 19700831 20170923 941870 99999 MUSGRAVE AS -14.783 143.5 82.0 19920501 20120831 941880 99999 CAPE FLATTERY AS -14.967 145.317 19.0 20040608 20170923 942000 99999 MANDORA AS -19.733 120.85 8.0 19620101 20170923 942010 99999 CYGNET BAY AS -16.45 123.0 9.0 19900201 20170923 942020 99999 BIDYADANGA AS -18.683 121.78299999999999 12.0 19570102 20170923 942030 99999 BROOME INTL AS YBRM -17.945 122.23200000000001 17.1 19390810 20170923 942040 99999 CURTIN AERO AS -17.583 123.81700000000001 78.0 19730101 20170923 942050 99999 DERBY AS YPDB -17.3 123.617 8.0 19640101 20020423 942060 99999 FITZROY CROSSING AERO AS -18.183 125.56700000000001 115.0 19900206 20170923 942070 99999 ROWLEY SHOALS AS -17.533 118.95 8.0 19730124 20170923 942080 99999 KURI BAY AS -15.482999999999999 124.51700000000001 17.0 19871207 20120128 942090 99999 FITZROY CROSSING CA AS -18.717 125.96700000000001 202.0 19730101 20031024 942100 99999 ADELE ISLAND AS -15.517000000000001 123.15 5.0 19730921 20170923 942110 99999 MOUNT ELIZABETH AS -16.417 126.1 547.0 19841101 20170923 942120 99999 HALLS CREEK AIRPORT AS -18.233 127.667 424.0 19440101 20170923 942130 99999 WARMUN AS -17.017 128.217 205.0 19620101 20170923 942140 99999 WYNDHAM AS -15.482999999999999 128.11700000000002 16.0 19730101 20150109 942150 99999 DOONGAN AS -15.383 126.31700000000001 386.0 19900206 20170923 942160 99999 KUNUNURRA AS YPKU -15.777999999999999 128.708 44.2 19900201 20170923 942170 99999 ARGYLE AERODROME AS -16.633 128.45 165.0 19941001 20170923 942180 99999 INVERWAY AS -17.85 129.63299999999998 403.0 19900204 20020513 942200 99999 TIMBER CREEK AS -15.65 130.467 23.0 19900201 20150101 942250 99999 DELAMERE WEAPONS RANGE AS -15.75 131.917 222.0 20010815 20170923 942290 99999 WAVE HILL AS -17.383 131.11700000000002 198.0 19900201 20170922 942300 99999 KIDMAN SPRINGS AS -16.117 130.95 100.0 20010915 20120814 942310 99999 LAJAMANU AS -18.333 130.63299999999998 317.0 20010915 20170923 942320 99999 VICTORIA RIVER DOWNS AS -16.4 131.017 90.0 19731231 20170923 942340 99999 DALY WATERS AWS AS -16.25 133.36700000000002 211.0 19471231 20170923 942360 99999 ELLIOTT AS -17.55 133.533 223.0 19800816 20170922 942370 99999 LARRIMAH AS -15.583 133.217 186.0 19730103 20120630 942380 99999 TENNANT CREEK AIRPORT AS YDTC -19.633 134.183 377.0 19690724 20170923 942390 99999 MCARTHUR RIVER MINE AS -16.433 136.067 41.0 19681231 20170923 942420 99999 BRUNETTE DOWNS AS -18.65 135.95 219.0 19561231 20170922 942480 99999 CENTRE ISLAND AS -15.75 136.8 13.0 19730128 20170923 942550 99999 CAMOOWEAL TOWNSHIP AS -19.917 138.11700000000002 232.0 19561231 20170923 942560 99999 MORNINGTON ISLAND AS -16.667 139.167 9.0 19641231 20131016 942570 99999 SWEERS ISLAND AS -17.117 139.6 4.0 20030330 20170922 942580 99999 WOLLOGORANG AS -17.2 137.933 61.0 19900202 20150822 942590 99999 BURKETOWN POST OFFICE AS -17.75 139.55 8.0 19561231 20090630 942600 99999 BURKETOWN AIRPORT AS -17.75 139.533 6.0 20030330 20170923 942610 99999 CENTURY MINE AS -18.75 138.7 127.0 20040608 20170923 942660 99999 NORMANTON AIRPORT AS -17.683 141.067 19.0 19471231 20170923 942670 99999 NORMANTON AS -17.667 141.083 10.0 19561231 20021013 942680 99999 KOWANYAMA AIRPORT AS -15.482999999999999 141.75 11.0 19730111 20170923 942690 99999 CROYDON TOWNSHIP AS -18.2 142.233 119.0 19611231 20140303 942700 99999 TOORAK RESEARCH STATION AS -21.033 141.8 149.0 20030330 20080912 942740 99999 GEORGETOWN AIRPORT AS -18.3 143.533 302.0 20040921 20170923 942750 99999 GEORGETOWN POST OFFICE AS -18.3 143.55 295.0 19570101 20071009 942760 99999 PALMERVILLE AS -16.0 144.067 205.0 19561231 20170923 942770 99999 MOUNT SURPRIZE AS -18.15 144.317 453.0 20011013 20020520 942830 99999 COOKTOWN MISSION AS -15.433 145.183 9.0 19421013 20040722 942840 99999 ARLINGTON REEF AS -16.717 146.11700000000002 8.0 19900201 20170923 942850 99999 LOW ISLES LIGHTHOUSE AS -16.383 145.567 4.0 19670930 20170923 942860 99999 MAREEBA AIRPORT AS -17.067 145.417 476.0 19920501 20021108 942870 99999 CAIRNS INTL AS YBCS -16.886 145.755 3.0 19421231 20170923 942875 99999 CAIRNS AIRPORT AS -16.883 145.767 7.0 19410504 19940824 942880 99999 CAIRNS RACECOURSE AS -16.95 145.75 401.0 19900201 20081023 942890 99999 HOLMES REEF AS -16.467 147.86700000000002 8.0 19741229 20170923 942900 99999 FLINDERS REEF AS -17.717 148.45 7.0 19731101 20170923 942910 99999 INNISFAIL AS -17.517 146.033 8.0 19561231 20170922 942920 99999 CARDWELL STONEY CREEK AS -18.3 146.033 7.0 19561231 20170921 942930 99999 LIHOU REEF LIGHTHOUSE AS -17.133 152.15 9.8 20010715 20170923 942940 99999 TOWNSVILLE AS YBTL -19.253 146.765 5.5 19470101 20170923 942945 99999 TOWNSVILLE(CIV/MIL) AS -19.25 146.767 6.0 19390407 19940824 942950 99999 LUCINDA POINT AWS AS -18.517 146.38299999999998 10.0 19810101 20170923 942960 99999 LIHOU REEF AS -17.117 152.0 9.0 19730101 20130214 942970 99999 CAPE CLEVELAND (LH) AS -19.183 147.0 59.0 20010815 20030106 942979 99999 CAPE CLEVELAND LIGHT HOUSE AS -19.18 147.02 57.6 19561231 19821031 942980 99999 MARION REEF AS -19.083 152.38299999999998 8.0 19730101 20170923 942990 99999 WILLIS ISLAND AS -16.288 149.965 9.0 19471231 20170923 943000 99999 CARNARVON AIRPORT AS -24.883000000000003 113.667 8.0 19450109 20170923 943020 99999 LEARMONTH AS YPLM -22.236 114.089 5.8 19750228 20170923 943025 99999 LEARMONTH (CIV/MIL) AS -22.233 114.1 6.0 19931129 19940317 943030 99999 THEVENARD ISLAND AS -21.45 115.01700000000001 6.0 19900308 20170923 943040 99999 BARROW IL (PRIVATE) AS -20.816999999999997 115.383 63.0 19780701 20040701 943050 99999 ONSLOW AS -21.633000000000003 115.117 4.0 19471231 20120719 943060 99999 MARDIE AS -21.183000000000003 115.96700000000001 12.0 19570101 20170923 943070 99999 LEGENDRE ISLAND AS -20.367 116.85 29.0 19930101 20170923 943080 99999 ROEBOURNE AERO AS -20.75 117.15 11.0 19900201 20170923 943090 99999 ROEBOURNE AS -20.783 117.15 13.0 19570101 20150110 943100 99999 BEDOUT ISLAND AS -19.583 119.1 10.0 19941001 20130224 943110 99999 PARDOO STATION AS -20.1 119.583 10.0 19900201 20170923 943120 99999 PORT HEDLAND INTL AS YPPD -20.378 118.626 10.1 19420718 20170923 943130 99999 WITTENOOM AS -22.25 118.333 464.0 19580701 20170923 943140 99999 PANNAWONICA AS -21.633000000000003 116.333 200.0 19900206 20050916 943150 99999 BALGO HILLS ASA AS -20.133 127.98299999999999 421.1 19570101 20060823 943160 99999 PARABURDOO AERO AS -23.166999999999998 117.75 424.0 19900613 20170923 943170 99999 NEWMAN AERO AS -23.416999999999998 119.8 524.0 19730101 20170923 943180 99999 EMU CREEK STATION AS -23.033 115.03299999999999 112.0 19790601 20170923 943190 99999 TELFER AERO AS -21.717 122.21700000000001 292.0 19900206 20170923 943200 99999 BALGO HILLS AS -20.15 127.98299999999999 421.0 19900207 20160219 943210 99999 WULUNGURRU AS -23.267 129.36700000000002 455.0 19900623 20170923 943220 99999 PAPUNYA AS -23.2 131.917 609.0 19750730 20141009 943230 99999 WATARRKA AS -24.3 131.55 613.0 19760202 20170920 943240 99999 YUENDUMU AS -22.25 131.8 668.0 19730212 20170528 943250 99999 ALI CURUNG AS -21.0 134.4 376.0 19900401 20150823 943260 99999 ALICE SPRINGS AS YBAS -23.807 133.90200000000002 545.3 19421216 20170923 943265 99999 ALICE SPRINGS ARPT AS -23.8 133.917 541.0 19401130 19940824 943270 99999 JERVOIS AS -22.95 136.15 329.0 19711231 20170923 943280 99999 TERRITORY GRAPE FARM AS -22.45 133.63299999999998 567.0 19970301 20170923 943290 99999 URANDANGI AS -21.6 138.3 175.0 19561231 20120816 943320 99999 MOUNT ISA AS YBMA -20.664 139.489 341.7 19661130 20170923 943330 99999 BOULIA AIRPORT AS -22.916999999999998 139.9 158.0 19561231 20170719 943340 99999 BEDOURIE POLICE STATION AS -24.366999999999997 139.467 93.0 20030330 20170922 943350 99999 CLONCURRY AIRPORT AS -20.666999999999998 140.5 187.0 19390401 20170923 943360 99999 THE MONUMENT AIRPORT AS -21.8 139.917 289.0 20030330 20170923 943370 99999 JULIA CREEK AS -20.666999999999998 141.733 124.0 19900201 20170923 943380 99999 TREPELL AIRPORT AS -21.833000000000002 140.88299999999998 267.0 20030331 20170923 943390 99999 WINTON POST OFFICE AS -22.383000000000003 143.033 184.0 19561231 20120520 943400 99999 RICHMOND POST OFFICE AS -20.733 143.13299999999998 214.0 19570918 20170922 943410 99999 RICHMOND AS YRMD -20.701999999999998 143.115 206.0 20010907 20170923 943420 99999 WINTON AIRPORT AS -22.366999999999997 143.083 193.0 20030330 20170923 943430 99999 HUGHENDEN AIRPORT AS -20.816999999999997 144.233 316.0 19711231 20170923 943440 99999 URANDANGI AERODROME AS -21.6 138.36700000000002 75.0 20140508 20170923 943450 99999 ISISFORD POST OFFICE AS -24.267 144.433 205.0 19970101 20170922 943460 99999 LONGREACH AERO AS YBLR -23.433000000000003 144.283 192.0 19420801 20170923 943500 99999 BARCALDINE POST OFFICE AS -23.55 145.283 267.0 19611231 20170923 943510 99999 BLACKALL AS -24.416999999999998 145.467 285.0 19561231 20020104 943549 99999 TWINHILLS POST OFFICE AS -21.95 146.95 198.0 19711231 19821031 943550 99999 TAMBO POST OFFICE AS -24.883000000000003 146.25 397.0 19561231 20170922 943560 99999 CHARTERS TOWERS AIRPORT AS -20.033 146.267 292.0 19420531 20170923 943580 99999 MORANBAH WATER TRE AS -22.0 148.033 233.0 19900201 20120326 943590 99999 CLERMONT POST OFFICE AS -22.816999999999997 147.63299999999998 269.0 19620101 20110912 943600 99999 COLLINSVILLE POST OFFICE AS -20.55 147.833 187.0 19561231 20170922 943620 99999 BLACKWATER AS -23.6 148.86700000000002 200.0 19960201 20080714 943630 99999 EMERALD AIRPORT AS -23.566999999999997 148.183 190.0 19561231 20170923 943640 99999 ROLLESTON AS -24.45 148.61700000000002 219.0 19900201 20100531 943650 99999 PROSERPINE WHITSUNDAY COAST AS YBPN -20.495 148.55200000000002 25.0 19890110 20170923 943660 99999 BOWEN AIRPORT AS -20.017 148.2 6.0 19690101 20150630 943670 99999 MACKAY MO AS -21.116999999999997 149.217 33.0 19430515 20170923 943680 99999 HAMILTON ISLAND AIRPORT AS -20.35 148.95 59.0 19900201 20170923 943690 99999 ST LAWRENCE POST OFFICE AS -22.35 149.533 18.0 19561231 20120831 943700 99999 SAMUEL HILL AERO AS -22.733 150.65 32.0 20030330 20170923 943710 99999 CREAL REEF AS -20.533 150.38299999999998 6.0 19900201 20170923 943720 99999 MIDDLE PERCY ISLAND AS -21.666999999999998 150.267 209.0 19561231 20170923 943730 99999 YEPPOON THE ESPLANADE AS -23.133000000000003 150.75 6.0 19941001 20170923 943740 99999 ROCKHAMPTON AS YBRK -23.381999999999998 150.475 10.4 19390331 20170923 943750 99999 BARALABA POST OFFICE AS -24.183000000000003 149.817 94.0 19900201 20120819 943760 99999 THANGOOL AIRPORT AS -24.483 150.567 199.0 19631231 20170923 943770 99999 MONTO AIRPORT AS -24.9 151.1 231.0 19611231 20170922 943780 99999 RUNDLE ISLAND AS -23.533 151.283 20.0 19561231 20170923 943790 99999 GANNET CAY AS -21.967 152.467 8.0 19741203 20170923 943800 99999 GLADSTONE RADAR AS YBGL -23.85 151.267 75.0 19571201 20170923 943810 99999 GLADSTONE AIRPORT AS -23.866999999999997 151.217 17.0 19941001 20170923 943840 99999 SEVENTEEN SEVENTY AS -24.15 151.88299999999998 47.0 19641231 20170922 943860 99999 HERON ISLAND RES STN AS -23.45 151.917 6.0 19810101 20170923 943870 99999 BUNDABERG AERO AS -24.9 152.317 28.0 19561231 20170923 943880 99999 LADY ELLIOT ISLAND AS -24.116999999999997 152.717 4.0 19561231 20170923 943900 99999 SANDY CAPE LIGHTHOUSE AS -24.717 153.2 101.0 19540306 20170921 943930 99999 FREDERICK REEF AS -20.933000000000003 154.4 13.0 19730101 20170923 943940 99999 CATO ISLAND AS -23.25 155.533 7.0 19730101 20170923 943950 99999 CLERMONT AIRPORT AS -22.783 147.61700000000002 272.0 20140508 20170923 943960 99999 ROLLESTON AIRPORT AS YRLL -24.467 148.63299999999998 220.0 20100728 20170923 943990 99999 LOCHINGTON AS -23.933000000000003 147.517 267.0 20101105 20170923 944010 99999 KALBARRI AS -27.717 114.167 7.0 19791101 20170923 944020 99999 DENHAM AS -25.916999999999998 113.51700000000001 10.0 19800801 20170923 944030 99999 GERALDTON AS YGEL -28.796 114.708 36.9 19410818 20170923 944040 99999 PAYNES FIND AS -29.267 117.68299999999999 340.0 19900201 20170923 944050 99999 NORTH ISLAND AS -28.3 113.6 11.0 19861003 20141114 944100 99999 GASCOYNE JUNCTION AS -25.05 115.21700000000001 145.0 19900206 20170428 944110 99999 MULLEWA AS -28.533 115.51700000000001 268.0 19900206 20170923 944140 99999 ENEABBA AS -29.816999999999997 115.26700000000001 100.0 19900206 20170323 944150 99999 CARNAMAH POST OFFICE AS -29.683000000000003 115.883 268.0 19900207 20170922 944160 99999 MORAWA AS -29.217 116.0 274.0 19900206 20050311 944170 99999 MORAWA AIRPORT AS -29.2 116.01700000000001 272.0 19980301 20170923 944220 99999 MURCHISON AS -26.883000000000003 115.95 289.0 19900206 20170923 944230 99999 BOGUS AUSTRALIAN AS 19900602 20020803 944280 99999 MOUNT MAGNET AS -28.05 117.833 426.0 19730101 20050814 944290 99999 MOUNT MAGNET AERO AS -28.116999999999997 117.833 408.0 19980301 20170923 944300 99999 MEEKATHARRA AIRPORT AS YPMR -26.614 118.537 519.0 19471231 20170923 944310 99999 ERRABIDDY AS -25.45 117.117 428.0 19900215 19910418 944390 99999 WILUNA AS -26.583000000000002 120.21700000000001 519.0 19570101 20170923 944400 99999 YEELIRRIE AS -27.283 120.1 488.0 19820101 20170923 944440 99999 BULGA DOWNS AS -28.5 119.75 440.0 19900205 20170923 944450 99999 LAVERTON/YAMARNA AS -28.15 123.65 442.0 19720101 19980322 944460 99999 MENZIES AS -29.683000000000003 121.01700000000001 427.0 19570101 19961213 944470 99999 DIEMALS AS -29.666999999999998 119.26700000000001 434.0 19900201 20020722 944480 99999 LEONORA AS -28.883000000000003 121.333 380.0 19570101 20140501 944490 99999 LAVERTON AERO AS -28.616999999999997 122.417 465.0 19920501 20170923 944500 99999 LEONORA AERO AS -28.883000000000003 121.31700000000001 370.0 20070228 20170923 944510 99999 CARNEGIE (CARNEGIE) AS -25.783 122.96700000000001 449.0 19890701 20170923 944570 99999 WARBURTON AIRFIELD AS -26.133000000000003 126.583 460.0 20010915 20170923 944580 99999 COOBER PEDY (PVT) AS -29.0 134.75 215.0 19900201 19950510 944610 99999 GILES METEOROLOGICAL OFFICE AS -25.033 128.3 599.0 19560801 20170923 944620 99999 YULARA AERO AS YDYL -25.2 130.983 492.0 19711231 20130906 944630 99999 CURTIN SPRINGS AS -25.316999999999997 131.75 491.0 19900202 20170923 944640 99999 ERNABELLA AS -26.283 132.13299999999998 676.0 19611231 19831011 944660 99999 KULGERA AS -25.85 133.3 510.0 19810430 20170922 944740 99999 PUKATJA AS -26.267 132.183 704.0 20010701 20170923 944750 99999 WITJIRA NATIONAL AS -26.066999999999997 135.25 150.0 19980301 20000426 944760 99999 OODNADATTA AIRPORT AS -27.55 135.45 117.0 19390304 20170923 944770 99999 MARLA POLICE STATION AS -27.3 133.61700000000002 324.0 19850808 20150731 944800 99999 MARREE COMPARISON AS -29.65 138.067 51.0 19561231 20150108 944810 99999 MOOMBA (PRIVATE) AS -28.1 140.2 40.0 19721118 19950729 944820 99999 BIRDSVILLE POLICE S AS -25.9 139.35 48.0 19561231 20050315 944850 99999 TIBOOBURRA POST OFFICE AS -29.433000000000003 142.0 184.0 19561231 20150109 944880 99999 WINDORAH POST OFFICE AS -25.416999999999998 142.65 129.0 19720101 20140930 944920 99999 THARGOMINDAH POST O AS -28.0 143.817 130.0 19561231 20050314 944940 99999 QUILPIE AIRPORT AS -26.616999999999997 144.25 198.0 19561231 20140328 944970 99999 WANAARING POST OFFICE AS -29.7 144.15 108.0 19920801 20170921 944980 99999 LIGHTNING RIDGE CENTRAL SCOOL AS -29.433000000000003 147.983 154.0 20010915 20170922 945000 99999 CUNNAMULLA POST OFFICE AS -28.066999999999997 145.683 197.0 19561231 20170922 945100 99999 CHARLEVILLE AS YBCV -26.413 146.263 305.7 19420630 20170923 945110 99999 INJUNE POST OFFICE AS -25.85 148.567 392.0 19900604 20170922 945130 99999 BOLLON MARY ST AS -28.033 147.483 185.0 19561231 20170922 945140 99999 MITCHELL (POST OFFICE) AS -26.483 147.967 338.0 19720101 20170922 945150 99999 ROMA AIRPORT AS -26.55 148.783 304.0 19561231 20170923 945160 99999 SAINT GEORGE AS -28.033 148.583 201.0 19611231 20030119 945170 99999 ST GEORGE AIRPORT AS -28.05 148.6 199.0 20010914 20170923 945200 99999 MUNGINDI POST OFFICE AS -28.983 148.983 160.0 19650101 20170922 945210 99999 SURAT AS -27.15 149.067 246.0 19611231 20170922 945250 99999 TAROOM POST OFFICE AS -25.633000000000003 149.783 200.0 19561231 20170922 945270 99999 MOREE AS -29.467 149.85 212.0 19640325 20020901 945290 99999 MILES POST OFFICE AS -26.65 150.183 307.0 19720103 20050314 945300 99999 GOONDIWINDI AIRPORT AS -28.517 150.317 219.0 19561231 20150730 945410 99999 INVERELL RESEARCH CENTRE AS -29.783 151.083 664.0 19561231 20170923 945420 99999 DALBY AIRPORT AS -27.15 151.267 348.0 19561231 20170923 945430 99999 GAYNDAH POST OFFICE AS -25.633000000000003 151.61700000000002 108.0 19561231 20090630 945440 99999 PINDARI DAM AS -29.4 151.233 462.0 20010915 20170921 945450 99999 BRIAN PASTURES AS -25.65 151.733 120.0 20030330 20071223 945470 99999 MALENY TAMARIND ST AS -26.75 152.85 411.0 20030330 20160601 945480 99999 BAROON POCKET DAM AS -26.717 152.86700000000002 230.0 20010915 20101102 945490 99999 KINGAROY AIRPORT AS YKRY -26.566999999999997 151.833 434.0 19561231 20170923 945500 99999 STANTHORPE LESLIE PARADE AS -28.666999999999998 151.933 787.0 19561231 20170923 945510 99999 TOOWOOMBA AS -27.583000000000002 151.933 676.0 19561231 20120503 945520 99999 OAKEY AS YBOK -27.410999999999998 151.735 406.9 19730430 20170923 945530 99999 APPLETHORPE AS -28.616999999999997 151.95 873.0 19980301 20170923 945550 99999 WARWICK AS -28.2 152.1 476.0 19941001 20170923 945560 99999 TENTERFIELD (FEDERATION PARK) AS -29.05 152.017 838.0 19900201 20170922 945570 99999 JIMNA FORESTRY AS -26.666999999999998 152.467 517.0 20010701 20170307 945580 99999 TOOLARA (KELLY) AS -25.967 152.86700000000002 80.0 20010701 20150221 945620 99999 UNIVERSITY OF QUEENSLAND GATTON AS -27.55 152.333 94.0 20030330 20170923 945640 99999 RAINBOW BEACH AS -25.9 153.083 46.0 19920801 20170922 945650 99999 HERVEY BAY/PIALBA AS -25.3 152.817 17.0 19910101 20100412 945660 99999 GYMPIE AS -26.183000000000003 152.63299999999998 65.0 19720103 20170923 945670 99999 MARYBOROUGH AS -25.517 152.717 11.0 19561231 20170923 945680 99999 BAMAGA INJINOO AS YBAM -10.950999999999999 142.459 10.4 19430228 20170923 945690 99999 SUNSHINE COAST AIRPORT AS YBMC -26.6 153.1 4.0 19941001 20170923 945700 99999 TEWANTIN RSL PARK AS -26.383000000000003 153.033 7.0 19980301 20170923 945710 99999 GRAFTON OLYMPIC POOL AS -29.683000000000003 152.917 9.0 19900201 20150108 945720 99999 LISMORE AIRPORT AWS AS -28.833000000000002 153.26 9.8 20030330 20170923 945730 99999 CASINO AIRPORT AWS AS -28.883000000000003 153.05 22.0 19970101 20170923 945740 99999 CASINO AIRPORT AS -28.883000000000003 153.05 26.0 19900201 20120731 945750 99999 BRISBANE ARCHERFIELD AS YBAF -27.57 153.00799999999998 19.2 19430519 20170923 945760 99999 BRISBANE AS -27.483 153.033 8.0 19501231 20170923 945770 99999 HINZE DAM AS -28.05 153.283 110.0 19970101 20110815 945780 99999 BRISBANE AIRPORT AS YBBN -27.416999999999998 153.067 6.0 19441001 20170923 945785 99999 BRISBANE INTL ARPT AS -27.383000000000003 153.11700000000002 5.0 19491231 19940824 945790 99999 BRISBANE ARPT02 AWS AS -27.383000000000003 153.11700000000002 4.0 19941001 20000206 945800 99999 GOLD COAST SEAWAY AS -27.933000000000003 153.433 3.0 19910101 20170923 945810 99999 SPITFIRE CHANNEL BEACON AS -27.05 153.267 7.0 19920801 20170923 945820 99999 MURWILLUMBAH (BRAY PARK) AS -28.35 153.38299999999998 18.0 19900201 20170920 945830 99999 ALSTONWILLE TROPICAL FRUIT RESEARCH STN AS -28.85 153.45 140.0 20010815 20110630 945840 99999 DOUBLE ISLAND POINT LIGHTHOUSE AS -25.933000000000003 153.183 95.0 19561231 20170923 945850 99999 GLEN INNES AG RESEARCH STN AS -29.7 151.7 1060.0 19900201 20170921 945860 99999 LISMORE (RICHMOND HILL) AS -28.8 153.333 105.0 19561231 20150109 945870 99999 TABULAM AS -28.75 152.45 555.0 19900202 20170922 945880 99999 GLEN INNES AIRPORT AS -29.683000000000003 151.7 1045.0 19980301 20170923 945890 99999 YAMBA PILOT STATION AS -29.433000000000003 153.36700000000002 30.0 19561231 20170923 945920 99999 GOLD COAST AS YBCG -28.164 153.505 6.4 19900201 20170923 945930 99999 POINT LOOKOUT AS -27.433000000000003 153.55 50.0 19900201 20170922 945940 99999 CAPE MORETON LIGHTHOUSE AWS AS -27.033 153.467 101.0 19561231 20170923 945950 99999 CAPE BYRON LIGHTHOUSE AS -28.633000000000003 153.63299999999998 98.0 19561231 20070815 945951 99999 AMBERLEY AS YAMB -27.641 152.71200000000002 27.7 20040706 20170923 945952 99999 HAMILTON ISLAND AS YBHM -20.358 148.952 4.6 20040706 20170923 945953 99999 CURTIN AS YCIN -17.581 123.82799999999999 91.4 20040706 20170923 945954 99999 FORREST AS -30.833000000000002 128.11700000000002 160.0 20040706 20120807 945955 99999 GOVE AS YPGV -12.269 136.81799999999998 58.5 20040706 20170923 945956 99999 TELFER AS YTEF -21.715 122.229 295.7 20040706 20170923 945957 99999 TENNANT CREEK AS YTNK -19.634 134.183 376.7 20040706 20170923 945958 99999 TAREE AS YTRE -31.889 152.514 11.6 20040706 20170923 945959 99999 WANGARATTA AS YWGT -36.416 146.30700000000002 153.6 20040706 20170923 945960 99999 BALLINA AIRPORT AWS AS -28.833000000000002 153.55 2.0 19970101 20170923 945970 99999 REDLANDS HRS AS -27.533 153.25 16.0 20070228 20130318 945980 99999 EVANS HEAD RAAF BOMBING RANGE AS -29.183000000000003 153.4 63.0 20010915 20170923 945990 99999 CAPE BYRON AWS AS -28.633000000000003 153.63299999999998 98.0 20030211 20170923 946000 99999 CAPE NATURALISTE AS -33.533 115.01700000000001 110.0 19570101 20170923 946010 99999 CAPE LEEUWIN AS -34.367 115.133 14.0 19570101 20170923 946020 99999 ROTTNEST ISLAND AS -32.016999999999996 115.5 43.0 19900201 20170923 946030 99999 BADGINGARRA RESEARCH STN AS -30.333000000000002 115.53299999999999 275.0 19900206 20170923 946040 99999 BUNBURY AS -33.35 115.65 6.0 19650101 20170923 946050 99999 MANDURAH AS -32.516999999999996 115.71700000000001 4.0 19900201 20170923 946060 99999 GARDEN ISLAND AS -32.217 115.68299999999999 10.0 19900301 20011114 946070 99999 WANNEROO (OCEAN REEF AWS) AS -31.75 115.71700000000001 10.0 20150311 20170923 946080 99999 PERTH METRO AS -31.916999999999998 115.867 25.0 19420101 20170923 946090 99999 JANDAKOT AERO AS YPJT -32.1 115.883 31.0 19900206 20170923 946100 99999 PERTH INTL AS YPPH -31.94 115.96700000000001 20.4 19471231 20170923 946105 99999 PERTH INTL/BELMONT AS -31.933000000000003 115.96700000000001 29.0 19440430 19940320 946110 99999 MOORA AS -30.633000000000003 116.0 203.0 19900206 20040229 946120 99999 PEARCE AS YPEA -31.668000000000003 116.015 45.4 19401101 20170923 946130 99999 WINDY HARBOUR AS -34.833 116.03299999999999 6.0 19900206 19991118 946140 99999 SWANBOURNE AS -31.95 115.76700000000001 41.0 19940301 20170923 946150 99999 GOOSEBERY HILL AS -31.95 116.05 220.0 19950101 20170923 946160 99999 BRIDGETOWN POST OFFICE AS -33.95 116.133 151.0 19570101 20120816 946170 99999 MANJIMUP AS -34.25 116.15 287.0 19900203 20170923 946190 99999 DALWALLINU COMPARISON AS -30.283 116.667 338.0 19570101 20011212 946200 99999 DWELLINGUP AS -32.717 116.05 268.0 19570101 20170923 946210 99999 NORTHAM AS -31.65 116.667 155.0 19900206 20170923 946220 99999 WONGAN HILLS AS -30.9 116.71700000000001 284.0 19900203 20170922 946230 99999 YORK AS -31.9 116.76700000000001 198.0 19900206 20170923 946240 99999 WANDERING COMPARISO AS -32.683 116.667 250.0 19570101 20010916 946250 99999 BROOKTON AS -32.367 117.0 250.0 19900206 20170923 946260 99999 CUNDERDIN AS -31.65 117.25 236.0 19570101 20070301 946270 99999 NARROGIN AS -32.933 117.167 338.0 19720101 20170923 946280 99999 NEWDEGATE RES. STATION AS -33.117 118.833 321.0 19980301 20170923 946290 99999 KATANNING COMPARISON AS -33.683 117.55 311.0 19570101 20120822 946300 99999 MOUNT BARKER AS -34.633 117.633 300.0 19900206 20170921 946310 99999 ROCKY GULLY AS -34.567 117.01700000000001 251.0 19980301 20170923 946320 99999 BENCUBBIN AS -30.816999999999997 117.867 359.0 19570101 20170923 946330 99999 CORRIGIN AS -32.333 117.867 296.0 19570101 20170922 946340 99999 SOUTHERN CROSS AS -31.233 119.333 356.0 19570101 20071130 946350 99999 LAKE GRACE COMPARISON AS -33.117 118.46700000000001 287.0 19640101 20120822 946360 99999 RAVENSTHORPE AS -33.583 120.05 233.0 19620101 20170923 946370 99999 KALGOORLIE BOULDER AS YPKG -30.789 121.462 366.7 19390321 20170923 946380 99999 ESPERANCE AS -33.833 121.89299999999999 27.0 19690628 20170923 946390 99999 NORSEMAN AS -32.2 121.78299999999999 278.0 19570101 20120821 946400 99999 WINDY HARBOUR AS -34.833 116.03299999999999 3.0 20010915 20170923 946410 99999 KATANNING AS -33.683 117.6 321.0 19740801 20170923 946420 99999 BALLADONIA AS -32.45 123.867 149.0 19740401 20170922 946430 99999 BALGAIR AS -31.083000000000002 125.65 163.0 19570101 20160901 946440 99999 RED ROCKS POINT AS -32.2 127.53299999999999 3.0 20010711 20170923 946450 99999 EYRE AS -32.233000000000004 126.3 6.0 19510721 20170923 946460 99999 FORREST AIRPORT AS -30.833000000000002 128.1 160.0 19400708 19990806 946470 99999 EUCLA AS -31.68 128.879 102.3 19570101 20170923 946490 99999 COOK AS -30.616999999999997 130.4 120.0 19561231 19970115 946510 99999 NULLARBOR AS -31.45 130.9 65.0 19900201 20170923 946530 99999 CEDUNA AMO AS YPCD -32.133 133.7 16.0 19390320 20170923 946540 99999 STREAKY BAY AS -32.8 134.217 14.0 19561231 20170922 946550 99999 TARCOOLA AS -30.717 134.583 124.0 19611231 20170923 946560 99999 ELLISTON AS -33.65 134.88299999999998 5.0 19620108 20170922 946570 99999 KYANCUTTA AS -33.133 135.55 58.0 19561231 20170923 946580 99999 COLES POINT AS -34.383 135.36700000000002 29.0 19910401 20170523 946590 99999 WOOMERA AS YPWR -31.144000000000002 136.817 167.0 19490331 20170923 946600 99999 MOUNT IVE AS -32.433 136.067 213.0 19561231 20020317 946610 99999 CLEVE AS -33.7 136.483 194.0 19561231 20170922 946620 99999 CLEVE AERODROME AS -33.717 136.5 176.0 19820508 20170923 946630 99999 WAROOKA AS -34.983000000000004 137.4 54.0 19900201 20170922 946640 99999 WHYALLA AS -33.016999999999996 137.517 15.0 19561231 20010713 946650 99999 MAITLAND AS -34.383 137.667 186.0 19561231 20170921 946660 99999 WARBURTO POINT AS -34.0 137.533 1.0 19730101 20170923 946670 99999 KADINA AS -33.95 137.7 44.0 19561231 20050731 946680 99999 KIMBA AS -33.15 136.417 263.0 19900201 20170922 946690 99999 PORT PIRIE NYRSTAR COMPARISON AS -33.183 138.017 4.0 19561231 20120831 946700 99999 SNOWTOWN AS -33.783 138.217 103.0 19561231 20010630 946710 99999 VIRGINIA AS -34.65 138.533 3.0 19920801 20021130 946720 99999 ADELAIDE INTL AS YPAD -34.945 138.531 6.1 19550215 20170923 946723 99999 ADELAIDE AS APAD -34.95 138.533 6.0 19550215 19900919 946725 99999 ADELAIDE INTL ARPT AS -34.933 138.533 4.0 19931112 19940824 946730 99999 HAWKER AS -31.883000000000003 138.433 316.0 19900201 20170922 946740 99999 PORT LINCOLN AS YPLC -34.605 135.88 11.0 19510102 20170923 946750 99999 KENT TOWN AS -34.917 138.61700000000002 51.0 19541231 20170923 946760 99999 ARKAROOLA AS -30.316999999999997 139.333 318.0 19900308 20170923 946770 99999 HINDMARSH ISLAND AWS AS -35.516999999999996 138.817 10.0 19471231 20170923 946780 99999 MT CRAWFORD AWS AS -34.733000000000004 138.933 525.0 19970101 20170923 946790 99999 YONGALA AS -33.033 138.75 515.0 19561231 20170922 946800 99999 EUDUNDA AS -34.183 139.083 416.0 19771001 20170922 946810 99999 NURIOOTPA VITICULTURAL AS -34.483000000000004 139.0 276.0 19561231 20170923 946820 99999 LOXTON RESEARCH CENTRE AS -34.433 140.6 30.0 19711231 20170923 946830 99999 KUITPO FOREST RESERVE AS -35.167 138.667 365.0 20010701 20170923 946840 99999 YUNTA AIRSTRIP AS -32.567 139.567 300.0 19611231 20170923 946850 99999 KADINA AS -33.97 137.67 42.0 19900201 20170923 946860 99999 FOWLERS GAP AWS AS -31.083000000000002 141.7 182.0 19900308 20170923 946870 99999 RENMARK AS -34.167 140.75 21.0 19570511 20020630 946880 99999 LAMEROO COMPARISON AS -35.333 140.517 100.0 19561231 20150108 946890 99999 BROKEN HILL (PATTON STREET) AS -31.983 141.467 315.0 19730101 20150831 946900 99999 AUSTIN PLAINS AS -35.378 140.53799999999998 110.8 20040921 20170923 946910 99999 BROKEN HILL AIRPORT AWS AS -32.0 141.467 282.0 19900401 20170923 946920 99999 LAKE VICTORIA STORAGE AS -34.05 141.267 43.0 20030330 20170922 946930 99999 MURRIN MURRIN AS YMMI -28.705 121.891 467.9 19460101 20140610 946940 99999 MENINDEE POST OFFICE AS -32.4 142.417 61.0 19650101 20170921 946950 99999 WILCANNIA (REID ST) AS -31.566999999999997 143.36700000000002 75.0 19561231 20150110 946960 99999 BALRANALD AS -34.633 143.55 61.0 19650101 20170922 946970 99999 IVANHOE POST OFFICE AS -32.9 144.283 86.0 19590101 20120814 946980 99999 HAY (MILLER STREET) AS -34.516999999999996 144.85 94.0 19561231 20150109 946990 99999 WHITE CLIFFS AS -30.85 143.083 151.0 19611231 20111229 947000 99999 HILLSTON AIRPORT AS -33.483000000000004 145.517 120.0 19561231 20170922 947010 99999 HAY AWS AS -34.533 144.86700000000002 90.0 19910101 20070902 947020 99999 HAY AIRPORT AWS AS -34.533 144.833 92.0 20071016 20170923 947030 99999 BOURKE AIRPORT AWS AS -30.033 145.95 108.0 19561231 20170923 947040 99999 QUANDIALLA POST OFFICE AS -34.016999999999996 147.783 250.0 19980301 20141230 947050 99999 GRIFFITH AWS AS -34.317 146.067 125.0 19900401 20031001 947060 99999 NARRANDERA GOLF CLUB AS -34.733000000000004 146.567 174.0 19700131 20140925 947070 99999 CONDOBLIN AG RESEARCH STN AS -33.067 147.233 195.0 19650101 20170921 947080 99999 NYNGAN AIRPORT AS -31.55 147.183 173.0 19581231 20170921 947090 99999 WYALONG AS -33.917 147.233 245.0 19900201 20150110 947100 99999 COBAR AIRPORT AWS AS -31.533 145.8 218.0 19941001 20170923 947110 99999 COBAR MO AS -31.483 145.833 263.6 19631231 20170923 947120 99999 YOUNG AIRPORT AS -34.25 148.25 381.0 19900201 20170923 947130 99999 FORBES AS -33.383 148.0 240.0 19561231 19980519 947140 99999 COOTAMUNDRA AIRPORT AS -34.633 148.033 338.0 19561231 20170922 947150 99999 FORBES AIRPORT AS -33.367 147.917 231.0 19741118 20170923 947160 99999 GOULBURN (PROGRESS ST) AS -34.717 149.733 650.0 19780531 20170922 947170 99999 PARKES (MACARTHUR STREET) AS -33.133 148.167 324.0 19561231 20120722 947180 99999 COONAMBLE COMPARISON AS -30.983 148.38299999999998 180.0 19900201 19991111 947190 99999 DUBBO AS YSDU -32.217 148.575 285.0 19561231 20170923 947200 99999 COWRA AIRPORT COMPARISON AS -33.85 148.65 294.0 19691031 20110720 947210 99999 PEAK HILL POST OFFICE AS -32.717 148.183 285.0 19960201 20170922 947220 99999 TEMORA AGRICULTURAL AS -34.4 147.533 270.0 20030330 20050113 947230 99999 WELLINGTON (AGROWPLOW) AS -32.567 148.95 305.0 19641231 20170917 947240 99999 WELLINGTON RESEARCH AS -32.5 148.967 390.0 20030330 20050223 947250 99999 GRENFELL (MANGANESE RD) AS -33.9 148.15 390.0 20010915 20170922 947260 99999 ORANGE AIRPORT COMPARISON AS -33.383 149.11700000000002 951.0 19691231 19970924 947270 99999 MUDGEE AIRPORT AWS AS -32.567 149.61700000000002 472.0 19900201 20170923 947280 99999 COONABARABRAN (NAMOI STREET) AS -31.267 149.267 510.0 19561231 20170922 947290 99999 BATHURST AIRPORT AWS AS -33.417 149.65 745.0 19900201 20170923 947300 99999 BATHURST AGRICULTURAL STATION AS -33.433 149.567 713.0 19561231 20170923 947310 99999 MUDGEE AS -32.583 149.583 454.0 19611231 20020814 947320 99999 GULGONG POST OFFICE AS -32.367 149.533 475.0 19900202 20170922 947330 99999 SINGLETON STP AS -32.583 151.167 45.0 19920801 20170923 947340 99999 NARRABRI WEST AS -30.333000000000002 149.75 212.0 19611231 20020731 947350 99999 TARALGA (P.O.) AS -34.4 149.817 845.0 19561231 20170922 947360 99999 PROSPECT DAM AS -33.817 150.917 61.0 19980301 20170922 947380 99999 SCONE SCS AS -32.067 150.933 216.0 20010916 20170921 947390 99999 JERRYS PLAINS AS -32.483000000000004 150.9 90.0 19561231 20140416 947400 99999 GUNNEDAH SCS AS -31.033 150.267 307.0 20010915 20170922 947410 99999 LITHGOW AS -33.483000000000004 150.13299999999998 950.0 19900201 20170922 947420 99999 GUNNEDAH POOL AS -30.983 150.25 285.0 19650101 20111227 947430 99999 MOUNT BOYCE AS -33.617 150.267 1080.0 19611231 20170923 947440 99999 KATOOMBA (NARROW NECK RD) AS -33.717 150.283 1030.0 19900201 20170922 947460 99999 MOSS VALE AWS AS -34.516999999999996 150.417 679.0 20010816 20170923 947470 99999 BOWRAL (PARRY DRIVE) AS -34.483000000000004 150.4 690.0 19680930 20150109 947480 99999 WOLLONGONG UNIVERSITY AS -34.4 150.88299999999998 25.0 19720331 20080604 947490 99999 BELLAMBI AWS AS -34.383 150.933 10.0 19900504 20170923 947500 99999 NOWRA AS YSNW -34.949 150.537 121.9 19551130 20170923 947520 99999 BADGERY'S CREEK AIRPORT AS -33.9 150.733 82.0 19960201 20170923 947530 99999 RICHMOND AS YSRI -33.601 150.781 20.4 19391130 20170923 947540 99999 NULLO MOUNTAIN AWS AS -32.733000000000004 150.233 1130.0 19900901 20170923 947550 99999 CAMDEN AS YSCN -34.04 150.687 70.1 19421231 20170923 947560 99999 MURRURUNDI POST OFFICE AS -31.767 150.833 466.0 19900201 20170920 947570 99999 CAMBELL TOWN / MOUNT ANNAN AS -34.067 150.767 112.0 20070605 20170923 947580 99999 SCONE AS -32.05 150.86700000000002 208.0 19900201 19940128 947590 99999 TERREY HILLS AWS AS -33.683 151.233 199.0 20041109 20170923 947600 99999 HORSLEY EQUESTRIAN CENTRE AS -33.85 150.85 100.0 20010701 20170923 947610 99999 BARRABA AS -30.383000000000003 150.61700000000002 500.0 19900202 20170921 947620 99999 HOLSWORTHY CONTROL RANGE AS -33.983000000000004 150.917 40.0 19730331 20170923 947630 99999 PENRITH AS -33.717 150.683 25.0 19960201 20170923 947640 99999 PARRAMATTA NORTH AS -33.8 151.017 55.0 19970101 20170922 947650 99999 SYDNEY BANKSTOWN AS YSBK -33.924 150.988 8.8 19680701 20170922 947660 99999 CANTERBURY RACECOURSE AS -33.9 151.11700000000002 3.0 19960201 20170923 947670 99999 SYDNEY INTL AS YSSY -33.946 151.17700000000002 6.4 19430923 20170923 947675 99999 SYDNEY INTL AIRPORT AS -33.95 151.2 3.0 19390331 19940824 947680 99999 SYDNEY (OBSERVATORY HILL) AS -33.85 151.2 40.0 19541231 20170923 947700 99999 NORAH HEAD LIGHTHOU AS -33.283 151.567 24.0 19690710 20041026 947710 99999 CESSNOCK AS -32.8 151.333 62.0 19730531 20120814 947720 99999 GUYRA HOSPITAL AS -30.217 151.683 1332.0 19980301 20170922 947730 99999 ARMIDALE (TREE GROUP NURSERY) AS -30.533 151.667 987.0 19561231 20170922 947740 99999 NEWCASTLE NOBBYS SIGNAL STATION AS -32.917 151.783 33.0 19561231 20170923 947750 99999 TOCAL AWS AS -32.633 151.583 30.0 19960201 20170923 947760 99999 WILLIAMTOWN AS YWLM -32.795 151.834 9.4 19420909 20170923 947770 99999 GOSFORD (NARARA RESEARCH STATION) AS -33.4 151.333 20.0 19980301 20121231 947780 99999 GLEN INNES POST OFFICE AS -29.733 151.733 1062.0 19611231 20120814 947790 99999 PEATS RIDGE WARATAH ROAD AS -33.317 151.25 280.0 19980301 20120814 947800 99999 LITTLE BAY (THE COAST GOLF CLUB) AS -33.983000000000004 151.25 22.0 20010701 20170923 947810 99999 NEWCASTLE UNIVERSITY AS -32.9 151.7 21.0 20010915 20170922 947820 99999 GOSFORD AWS AS -33.433 151.36700000000002 7.0 20130101 20170923 947830 99999 YARRAS MOUNT SEAVIEW AS -31.383000000000003 152.25 155.0 19980301 20170923 947840 99999 TAREE /RADIO STATIO AS -31.9 152.483 7.0 19711231 20050315 947850 99999 KEMPSEY AIRPORT AWS AS -31.066999999999997 152.767 14.0 20030330 20170923 947860 99999 PORT MACQUARIE AIRPORT AWS AS -31.433000000000003 152.85 5.0 19960201 20170923 947870 99999 PORT MACQUARIE AS -31.433000000000003 152.917 9.0 19561231 20031026 947880 99999 KEMPSEY AS -31.083000000000002 152.817 10.0 19900201 20150109 947890 99999 DORRIGO OLD CORAMBA RD AS -30.35 152.717 746.0 19980301 20170922 947900 99999 SMOKY CAPE LIGHTHOUSE AS -30.916999999999998 153.083 120.0 19561231 20170919 947910 99999 COFFS HARBOUR AS YCFS -30.320999999999998 153.116 5.0 19421201 20170923 947920 99999 WOOLBROOK DANGLEMAH ROAD AS -30.967 151.35 910.0 19980301 20170922 948010 99999 ALBANY AS -35.033 117.883 3.0 20030330 20170923 948020 99999 ALBANY AIRPORT AS YPAL -34.941 117.802 69.0 19650411 20170923 948030 99999 ALLENDALE AS -35.783 137.033 23.0 19930101 20020407 948040 99999 NEPTUNE ISLAND AS -35.333 136.11700000000002 32.0 19611231 20170923 948050 99999 CAPE BORDA AS -35.75 136.583 144.0 19611231 20070801 948060 99999 MOUNT BARKER AS -35.067 138.85 360.0 19900201 20170922 948070 99999 PARDANA CFS AWS AS -35.8 137.25 165.0 19561231 20170923 948080 99999 NOARLUNGA AS -35.167 138.5 55.0 20010701 20170923 948090 99999 EDITHBURGH AWS AS -35.117 137.733 7.0 19900201 20170923 948100 99999 STRATHALBYN P. O. AS -35.25 138.88299999999998 70.0 19900201 20160806 948110 99999 SECOND VALLEY FOREST AS -35.567 138.283 342.0 19941001 20170923 948120 99999 ROBE AS -37.167 139.75 4.0 19561231 20170923 948130 99999 THE LIMESTONE AS -36.967 139.717 18.0 19910401 20170923 948140 99999 STRATHALBYN RACECOURSE AS -35.283 138.9 58.0 19980301 20170923 948150 99999 VICTOR HARBOUR P.O. AS -35.55 138.61700000000002 5.0 19900201 20020331 948160 99999 KEITH AS -36.1 140.35 31.0 19611231 20170922 948170 99999 COONAWARRA AS -37.3 140.817 58.0 19980301 20170923 948180 99999 CAPE NORTHUMBERLAND AS -38.05 140.667 6.0 19561231 20050316 948190 99999 NARACOORTE AS -36.95 140.733 58.0 19620228 20010630 948200 99999 NARACOORTE AERODROME AS -36.983000000000004 140.733 50.0 19900201 20170923 948210 99999 MOUNT GAMBIER AERO AS YMMG -37.733000000000004 140.783 69.0 19410831 20170923 948220 99999 CAPE WILLOUGHBY AS -35.85 138.13299999999998 59.0 19670913 20170923 948240 99999 HEYWOOD FORESTRY AS -38.133 141.63299999999998 27.0 19900201 20090328 948250 99999 CASTERTON SHOWGROUNDS AS -37.6 141.417 73.0 19561231 20110207 948260 99999 CAPE NELSON LIGHTHOUSE AS -38.433 141.55 47.0 19561231 20170923 948270 99999 NHILL AERODROME AS -36.317 141.63299999999998 140.0 19500630 20170923 948280 99999 PORTLAND CASHMORE AIRPORT AS -38.317 141.467 82.0 19900201 20170923 948290 99999 HAMILTON AIRPORT AS -37.65 142.067 242.0 19561231 20170923 948300 99999 PORT FAIRY AWS AS -38.4 142.233 10.0 19910601 20170923 948310 99999 OUYEN AS -35.067 142.317 50.0 19561231 20170922 948320 99999 WARRNAMBOOL AIRPORT AS -38.283 142.433 68.0 19561231 20000630 948330 99999 MOUNT WILLIAM AS -37.3 142.6 1150.0 19900202 20170923 948340 99999 ARARAT PRISON AS -37.283 142.983 296.0 19900201 20170923 948350 99999 BEN NEVIS AS -37.233000000000004 143.2 875.0 19920801 20170923 948360 99999 STAWELL AERODROME AS YSWL -37.067 142.733 235.0 19980301 20170923 948370 99999 WARRNAMBOOL AIRPORT NDB AS -38.283 142.45 71.0 20010915 20170923 948380 99999 HOPETOUN AIRPORT AS -35.717 142.35 78.0 20010830 20170923 948390 99999 CHARLTON AS -36.283 143.35 132.0 20040824 20170923 948400 99999 MORTLAKE RACECOURSE AS -38.067 142.767 131.0 19900401 20170923 948410 99999 WARRACKNABEAL AS -36.25 142.4 113.0 19900201 20170922 948420 99999 CAPE OTWAY LIGHTHOUSE AS -38.85 143.517 83.0 19561231 20170923 948430 99999 SWAN HILL AERODROME AS -35.383 143.533 71.0 19591231 20170923 948440 99999 KERANG AS -35.733000000000004 143.917 78.0 19611231 20170923 948450 99999 ELLIMINYT AS -38.383 143.6 248.0 19900201 20000831 948460 99999 AIREYS INLET AS -38.45 144.1 95.0 19910101 20170923 948470 99999 POINT WILSON AS -38.1 144.533 18.0 19941001 20170923 948490 99999 MARYBOROUGH AS -37.05 143.733 249.0 19900201 20170921 948500 99999 KING ISLAND AIRPORT AS -39.883 143.88299999999998 38.0 19960201 20170923 948510 99999 KING ISLAND CURRIE AS -39.933 143.85 24.0 19561231 20011115 948520 99999 BALLARAT AERODROME AS -37.516999999999996 143.783 436.0 19561231 20170923 948530 99999 SOUTH CHANNEL IS. AS -38.3 144.8 5.0 19781215 20020724 948540 99999 AVALON AIRPORT AS -38.033 144.467 11.0 19970101 20170923 948550 99999 BENDIGO AIRPORT AWS AS -36.733000000000004 144.317 209.0 19561231 20170923 948560 99999 GEELONG CITY AS -38.083 144.333 55.0 19900201 19960914 948570 99999 GEELONG RACECOURSE AS -38.167 144.36700000000002 35.0 19881102 20170923 948590 99999 REDESDALE AS -37.016999999999996 144.533 290.0 19941001 20170923 948600 99999 KILMORE GAP AS -37.383 144.967 528.0 19941001 20170923 948610 99999 ECHUCA AERODROME AS -36.15 144.767 97.0 19591231 20170922 948620 99999 YARRAWONGA AS -36.016999999999996 146.033 129.0 19970101 20170923 948630 99999 SHEOAKS AWS AS -37.9 144.11700000000002 237.0 19910101 20170922 948640 99999 MELBOURNE ESSENDON AS YMEN -37.728 144.90200000000002 86.0 19471231 20170923 948650 99999 LAVERTON RAAF AS YMLV -37.867 144.75 20.0 19410824 20170923 948660 99999 MELBOURNE INTL AS YMML -37.673 144.843 132.3 19730101 20170923 948665 99999 MELBOURNE INTL ARPT AS -37.667 144.85 141.0 19700630 19940824 948670 99999 TRAINING ANNEX AS -37.683 144.95 110.0 19900610 19911003 948680 99999 MELBOURNE REGIONAL OFFICE AS -37.817 144.967 32.0 19541231 20150106 948690 99999 DENILIQUIN POST OFF AS -35.55 144.933 93.0 19630430 20030630 948700 99999 MELBOURNE MOORABBIN AS YMMB -37.976 145.102 15.2 19710731 20170923 948710 99999 FRANKSTON AWS AS -38.15 145.11700000000002 6.0 19941001 20170923 948720 99999 FERNY CREEK AS -37.867 145.333 561.0 19941001 20170923 948740 99999 MANGALORE AIRPORT AS -36.883 145.183 141.0 19581231 20170923 948750 99999 SHEPPARTON AIRPORT AS -36.433 145.4 114.0 19980301 20170923 948760 99999 FINLEY AWS AS -35.667 145.61700000000002 110.0 19901205 20031001 948770 99999 TOCUMWAL AIRPORT AS -35.817 145.6 114.0 19420908 20170922 948780 99999 HUNTERS HILL AS -36.217 147.533 981.0 19970101 20170923 948790 99999 CRANBOURNE BOTANIC GARDENS AS -38.133 145.267 85.0 20010815 20170922 948800 99999 NOOJEE (SLIVAR) AS -37.9 145.967 275.0 19811026 20120418 948810 99999 EILDON FIRE TOWER AS -37.217 145.833 638.0 19561231 20170923 948820 99999 LAKE EILDON AS -37.233000000000004 145.917 230.0 19700311 20170922 948830 99999 PHILLIP ISLAND PENGUIN RESERVE AS -38.5 145.15 7.0 20010916 20170923 948840 99999 BENALLA (SHADFORTH STREET) AS -36.55 145.967 170.0 19561231 20170923 948860 99999 POUND CREEK AS -38.633 145.811 3.6 20071016 20170923 948880 99999 DARTMOUTH RESERVOIR AS -36.533 147.5 350.0 20030330 20170922 948890 99999 WANGARATTA AERO AS -36.417 146.3 153.0 19561231 20170923 948900 99999 GUNDAGAI AS -35.05 148.1 250.0 19970101 20170921 948910 99999 LATROBE VALLEY AIRPORT AS -38.217 146.467 56.0 19900201 20170923 948920 99999 RHYLL (AWS) AS -38.45 145.3 14.0 19910101 20170923 948930 99999 WILSONS PROMONTORY LIGHTHOUSE AS -39.117 146.417 97.0 19561231 20170923 948940 99999 MOUNT BULLER AWS AS -37.15 146.433 1707.0 19900201 20170923 948950 99999 BEECHWORTH WOOLSHED AS -36.317 146.667 330.0 19561231 20120430 948955 99999 AVALON AS YMAV -38.039 144.469 10.7 20040713 20170923 948960 99999 ALBURY AS YMAY -36.068000000000005 146.958 164.3 19900201 20170923 948980 99999 CERBERUS AWS AS -38.35 145.167 14.0 19870604 20170923 948990 99999 CORRYONG (PARISH LANE) AS -36.2 147.88299999999998 314.0 19721231 20170916 949000 99999 BLUE ROCK RESERVOIR AS -38.083 146.217 161.0 19750929 20170910 949010 99999 HUME RESERVOIR AS -36.1 147.033 182.0 19641231 20170922 949030 99999 FALLS CREEK AWS AS -36.867 147.267 1767.0 19900201 20170923 949040 99999 MOUNT BEAUTY AS -36.75 147.167 366.0 19900401 20040914 949050 99999 MT HOTHAM AIRPORT AS -37.05 147.333 1293.0 20030330 20170923 949060 99999 MOUNT HOTHAM AS -36.967 147.13299999999998 1849.0 19781028 20170923 949070 99999 EAST SALE AS YMES -38.099000000000004 147.149 7.0 19440101 20170923 949080 99999 OMEO AS -37.1 147.6 690.0 20041109 20170923 949090 99999 BURRINJUCK DAM AS -35.0 148.6 390.0 20010915 20170922 949100 99999 WAGGA WAGGA AS YSWG -35.165 147.466 220.7 19410817 20170923 949110 99999 YANAKIE AS -38.8 146.2 13.9 19561231 20170923 949120 99999 BAIRNSDALE AIRPORT AS -37.883 147.567 50.0 19900201 20170923 949130 99999 GELANTIPY AS -37.217 148.267 756.0 19930201 20170923 949140 99999 COMBIENBAR AS -37.333 149.017 641.0 19941001 20170923 949150 99999 PERISHER VALLEY AWS AS -36.4 148.4 1735.0 19900201 20170923 949160 99999 CABRAMURRA AS -35.933 148.38299999999998 1475.0 19620103 20020807 949170 99999 ORBOST (COMPARISON) AS -37.683 148.45 42.0 19561231 19990321 949180 99999 TUMBARUMBA POST OFFICE AS -35.766999999999996 148.0 645.0 19900201 20170922 949190 99999 KHANCOBAN AS -36.233000000000004 148.13299999999998 340.0 19980301 20170923 949210 99999 COOMA AIRPORT AWS AS -36.3 148.967 931.0 19910101 20170923 949220 99999 TINDBINBILLA NATURE RESERVE AS -35.433 148.95 700.0 19910101 20120825 949230 99999 COOMA VISITORS CENTRE AS YSCM -36.233000000000004 149.11700000000002 778.0 19730930 20170923 949240 99999 HOLT (PINE RIDGE) AS -35.233000000000004 149.0 605.0 20010916 20041024 949250 99999 TUGGERANONG ISABELLA PLAINS AS -35.417 149.1 588.0 19741201 20170923 949260 99999 CANBERRA AS YSCB -35.306999999999995 149.195 574.9 19390228 20170923 949270 99999 BRAIDWOOD RACECOURSE AWS AS -35.433 149.783 666.0 19750930 20170922 949280 99999 BOMBALA (THREEY STREET) AS -36.917 149.233 705.0 19900201 20170922 949290 99999 BOMBALA AWS AS -37.0 149.233 762.0 19900201 20170923 949300 99999 MT NOWA NOWA AS -37.7 148.083 350.0 19980301 20170923 949310 99999 BEGA AS -36.667 149.817 11.0 19900201 20040829 949320 99999 POINT HICKS (LIGHTHOUSE) AS -37.8 149.267 27.0 19660630 20170923 949330 99999 GABO ISLAND LIGHTHOUSE AS -37.567 149.9 15.0 19561231 20170923 949340 99999 GREEN CAPE AWS AS -37.25 150.05 20.0 19920801 20170923 949350 99999 MALLACOOTA AS -37.6 149.733 22.0 19941001 20170923 949370 99999 MORUYA HEADS PILOT STATION AS -35.917 150.15 17.0 19561231 20170923 949380 99999 ULLADULLA AWS AS -35.35 150.483 37.0 19901201 20170923 949390 99999 MONTAGUE ISLAND LIGHHOUSE AS -36.25 150.217 54.0 19611231 20170923 949400 99999 JERVIS BAY AS -35.083 150.8 85.0 19561231 20040630 949410 99999 BATEMANS BAY (CATALINA COUNTRY CLUB) AS -35.733000000000004 150.183 11.0 19920501 20170920 949420 99999 NERRIGA COMPOSITE AS -35.117 150.083 630.0 19980301 20111031 949430 99999 NERRIGA AWS AS -35.117 150.083 625.6 20140508 20170923 949490 99999 HOGAN ISLAND AS -39.217 146.983 117.0 19920301 20170923 949500 99999 MARRAWAH AS -40.917 144.7 108.0 19810101 20170922 949510 99999 DUNALLEY (STROUD POINT) AS -42.9 147.783 12.7 19611231 20170923 949520 99999 SMITHTON AS -40.833 145.1 8.0 19620331 19980613 949530 99999 SMITHTON AERODROME AS -40.833 145.083 9.0 19730101 20170923 949540 99999 CAPE GRIM BAPS AS -40.667 144.683 92.0 19880601 20170923 949550 99999 SHEFFIELD SCHOOL FARM AS -41.383 146.317 295.0 19900401 20170923 949560 99999 STRAHAN AERODROME AS -42.15 145.283 22.0 19760918 20170923 949570 99999 OUSE FIRE STATION AS YMWY -42.483000000000004 146.717 91.0 19900201 20170923 949580 99999 BURNIE (ROUND HILL) AS -41.083 145.95 6.0 19650101 20170922 949590 99999 BUTLERS GORGE AS -42.283 146.283 667.0 19901102 20170923 949600 99999 TUNNAK FIRE STATION AS YMDV -42.45 147.467 462.0 19900201 20170923 949610 99999 DOVER AS -43.317 147.017 16.0 19900401 20170922 949620 99999 MAATSUYKER ISLAND LIGHTHOUSE AS -43.65 146.267 148.0 19561231 20170923 949630 99999 MAYDENA POST OFFICE AS -42.75 146.61700000000002 281.0 19681231 20170923 949640 99999 BUSHY PARK (BUSHY PARK ESTATES) AS -42.717 146.9 27.0 19900201 20170923 949650 99999 LOW HEAD (LGT-H) AS -41.05 146.8 30.0 19561231 19971210 949660 99999 GEEVESTON (FORESTRY CEMETERY RD) AS -43.167 146.917 55.0 19720217 20150731 949670 99999 CAPE BRUNY LIGHTHOUSE AS -43.5 147.15 53.0 19561231 20170923 949680 99999 LAUNCESTON AS YMLT -41.545 147.214 171.3 19390331 20170923 949690 99999 LAUNCESTON (TI TREE BEND) AS -41.417 147.11700000000002 5.0 19900201 20170923 949700 99999 HOBART (ELLERSLIE ROAD) AS -42.883 147.333 51.0 19440101 20170923 949710 99999 MELTON MOWBRAY (NORTH STOCKMAN) AS -42.5 147.2 238.0 19561231 20170922 949720 99999 SCOTTSDALE ( WEST MINSTONE ROAD) AS -41.167 147.483 198.0 19710302 20170923 949730 99999 MOOGARA (UXBRIDGE BACK ROAD AS -42.783 146.9 532.0 19970101 20080630 949740 99999 CAPE SORELL AS -42.2 145.167 20.0 19480504 20170923 949750 99999 HOBART AS YMHB -42.836000000000006 147.51 4.0 19580531 20170923 949760 99999 LAKE ST. CLAIR (NATIONAL PARK) AS -42.117 146.167 750.0 19561231 20170919 949770 99999 HARTZ MOUNTAINS AS -43.2 146.767 830.0 19900201 20170923 949780 99999 PORT ARTHUR /PALMER AS -43.167 147.833 193.0 19900201 20050316 949790 99999 LAKE LEAKE (ELIZABETH RIVER) AS -42.0 147.783 575.0 19750929 20170922 949800 99999 FLINDERS ISLAND AIRPORT AS -40.1 148.0 10.0 19611231 20170923 949810 99999 SWANSEA (FRANCIS ST) AS -42.133 148.067 11.0 19561231 20170922 949820 99999 SAINT HELENS AS -41.317 148.233 5.0 19561231 20010502 949830 99999 LARAPUNA (EDDYSTONE POINT) AS -41.0 148.35 21.0 19601231 20170923 949840 99999 WHITEMARK AS -40.117 148.017 6.0 19631231 19970730 949850 99999 ROSS (THE BOULEVARDS) AS -42.033 147.5 186.0 19720531 20170922 949860 99999 MAWSON AUS-BASE & AS -67.6 62.883 15.0 19730101 19850706 949870 99999 FRIENDLY BEACHES AS -42.0 148.283 56.0 19980301 20170923 949880 99999 DENNES POINT AS -43.067 147.35 6.5 20140508 20170923 949950 99999 LORD HOWE ISLAND AERO AS -31.541999999999998 159.079 7.0 19471231 20170923 949960 99999 NORFOLK ISLAND INTL NF YSNF -29.041999999999998 167.93900000000002 113.1 19471201 20170923 949970 99999 HEARD ISLAND (THE SPIT) AS -53.1 73.717 12.0 19861201 20151118 949980 99999 MACQUARIE ISLAND AS YMMQ -54.498999999999995 158.937 8.3 19730101 20170923 949999 1 WYNDHAM POST OFFICE AS -15.45 128.12 16.8 19570101 19641231 949999 2 TROUGHTON ISLAND AS -13.75 126.15 7.9 19570101 19731031 949999 3 HALLS CREEK POST OFFICE AS -18.23 127.67 409.7 19571130 19731212 949999 4 KUNUNURRA (KIMBERLEY RESEARCH STATION) AS -15.65 128.7 45.7 19650101 19821031 949999 5 CAPE LEVEQUE LIGHT HOUSE AS -16.4 122.93 26.0 19650101 19821031 949999 6 FITZROYCROSSING AS -18.18 125.6 112.0 19570101 19641231 949999 7 YAMPISOUND (COCKATOO ISLAND) AS -16.08 123.6 13.0 19650101 19820629 949999 8 DERBY AIRPORT AS -17.37 123.67 12.0 19720417 19811130 949999 9 CAMBALLIN AS -17.98 124.18 45.0 19730601 19770630 949999 10 TALGARNOAMO/MO1959-1961 AS -19.28 121.5 21.0 19590831 19631231 949999 11 KOOLAN ISLAND AS -16.13 123.78 140.0 19820701 19821031 949999 12 SHAYGAP AS -20.5 120.17 166.0 19730911 19751129 949999 13 ONSLOWAMO AS -21.67 115.12 4.6 19400731 19750228 949999 14 VLAMINGHEAD AS -21.82 114.1 65.0 19650101 19670329 949999 15 DAMPIER (HAMERSLEY IRON) AS -20.65 116.72 20.7 19580903 19691231 949999 16 DAMPIER (SALT) AS -20.72 116.75 12.0 19691104 19820930 949999 17 NORTHWEST CAPE (NAVY ALPHA) AS -21.82 114.17 8.0 19711130 19760630 949999 18 GASCOYNE JUNCTION POLICE STATION AS -25.05 115.22 114.8 19620108 19631231 949999 19 HAMELINPOOL AS -26.42 114.18 4.0 19570101 19791231 949999 20 BRICKHOUSE WOOLSHED AS -24.82 113.83 16.8 19660601 19770324 949999 21 CAPE CUVIER AS -24.22 113.38 46.0 19720628 19750731 949999 22 COODARDY AS -27.25 117.65 500.0 19580327 19580712 949999 23 CUE AS -27.43 117.9 454.0 19570101 19631231 949999 24 MEEKATHARRA POST OFFICE AS -26.6 118.48 511.0 19440101 19500424 949999 25 MOUNT MAGNET AS -28.07 117.83 427.0 19570101 19751128 949999 26 MUNDIWINDI AS -23.8 120.25 572.0 19570101 19641231 949999 27 MURGOO STATION AS -27.37 116.42 304.0 19620101 19821031 949999 28 YALGOO POST OFFICE AS -28.35 116.68 318.0 19570101 19751128 949999 29 GERALDTON WATER SUPPLY AS -28.78 114.62 34.0 19410731 19550531 949999 30 MOORA COMPOSITE AS -30.65 116.0 203.6 19720101 19751130 949999 31 MULLEWA AS -28.53 115.5 282.9 19570101 19631231 949999 32 WONGANHILLS RESEARCH STATION AS -30.83 116.72 304.8 19810101 19820930 949999 33 NORTHAMPTON (NOKANENA) AS -28.35 114.58 150.0 19740214 19820930 949999 34 PERTH (NEDLANDS) AS -31.9 115.9 19.5 19670501 19740329 949999 35 ROTTNEST ISLAND AS -32.0 115.5 47.0 19650101 19821031 949999 36 UPPERSWAN RESEARCH STATION AS -31.77 116.02 15.0 19650101 19820630 949999 37 LANCELIN AS -31.02 115.33 5.0 19651007 19821031 949999 38 BENTLEY SOUTH AS -32.0 115.88 19.0 19751001 19820930 949999 39 ALBANYTOWN AS -35.02 117.88 13.0 19591231 19650901 949999 40 BUSSELTON POST OFFICE AS -33.65 115.33 4.0 19570101 19631231 949999 41 DONNYBROOK POST OFFICE AS -33.57 115.82 63.0 19570101 19631231 949999 42 ESPERANCE POST OFFICE AS -33.85 121.88 4.3 19570101 19690628 949999 43 MANJIMUP POST OFFICE AS -34.23 116.15 280.1 19570101 19631231 949999 44 MOUNT BARKER POST OFFICE AS -34.63 117.67 253.0 19570101 19631231 949999 45 COLLIE POST OFFICE AS -33.37 116.15 190.0 19570101 19631231 949999 46 ESPERANCE DOWNS RESEARCH STATION AS -33.62 121.8 158.5 19650102 19821031 949999 47 WOKALUP RESEARCH STATION AS -33.13 115.88 116.0 19720102 19820930 949999 48 DENMARK (KORDABUPDOWNS) AS -34.93 117.13 190.0 19690731 19700609 949999 49 ECLIPSEISL. LIGHT HOUSE AS -35.18 117.88 118.0 19570101 19730419 949999 50 JARRAHWOOD AS -33.8 115.67 130.0 19750801 19821031 949999 51 FRANKLAND VINEYARDS AS -34.45 116.98 300.0 19751202 19820930 949999 52 KELLERBERRIN POST OFFICE AS -31.63 117.72 248.1 19570101 19641231 949999 53 MERREDIN RESEARCH STATION AS -31.52 118.2 317.6 19720501 19821031 949999 54 YORK POST OFFICE AS -31.88 116.75 175.0 19570102 19641231 949999 55 MURESK AGRICULTURAL AS -31.75 116.68 166.0 19570101 19811218 949999 56 BAKERSHILLCSIROYALANBEEE AS -31.75 116.47 305.0 19660101 19821031 949999 57 GLENLOSSIE FIELD STATION AS -33.82 117.17 329.8 19650101 19650630 949999 58 KOJONUP POST OFFICE AS -33.83 117.15 304.8 19750501 19821031 949999 59 LAVERTON AS -28.63 122.4 461.0 19570101 19641231 949999 60 SALMONGUMS RESEARCH STATION AS -32.98 121.62 249.0 19730601 19821031 949999 61 TELFER AS -21.72 122.2 303.0 19741101 19820930 949999 62 MIDDLEPOINT RESEARCH STATION AS -12.58 131.32 10.0 19711231 19821030 949999 63 SNAKE BAY AS -11.42 130.67 15.0 19650101 19791029 949999 64 MILTON SPRINGS AS -13.22 131.0 152.0 19701231 19740519 949999 65 DARWIN UNIVERSITY OFFICE AS -12.47 130.83 40.2 19661231 19731231 949999 66 GROSE ISLAND AS -12.65 130.37 2.7 19691007 19711231 949999 67 JABIRU AIRPORT AS -12.67 132.9 25.0 19771031 19821031 949999 68 YIRRKALA MISSION AS -12.25 136.88 9.1 19611231 19750430 949999 69 GOVE AIRPORT AS -12.28 136.82 50.0 19681231 19730629 949999 70 NHULUNBUY (WALLABY BEACH) AS -12.2 136.72 7.0 19790430 19820929 949999 71 NGUKURR (ROPER RIVER) AS -14.73 134.73 32.9 19611231 19711031 949999 72 DALYWATERS POLICE STATION AS -16.27 133.38 214.0 19700430 19820630 949999 73 DALYWATERSAMO AS -16.27 133.38 214.3 19390430 19700430 949999 74 BULMAN AS -13.67 134.33 192.0 19701104 19710930 949999 75 BORROLOOLA AS -16.07 136.3 18.0 19561231 19641231 949999 76 VANDERLINISMIMETS AS -15.83 137.05 3.7 19661231 19730331 949999 77 HOOKER CREEK AS -18.33 130.63 320.0 19711231 19740628 949999 78 KEEPRIVERNTA AS -15.42 129.17 21.3 19701211 19740623 949999 79 DOUGLAS EXPERIMENTAL SITE AS -13.8 131.2 42.8 19671231 19770929 949999 80 KATHERINEAERO AS -14.45 132.27 110.0 19440101 19730207 949999 81 DALY RIVER (WOOLIANNA) AS -13.68 130.63 16.0 19711231 19791231 949999 82 TIPPERARY AS -13.73 131.03 73.0 19690430 19710731 949999 83 PINE CREEK POST OFFICE AS -13.82 131.83 189.0 19561231 19641231 949999 84 WONARAH AS -19.9 136.33 242.0 19561231 19641231 949999 85 TENNANTCRK POST OFFICE AS -19.63 134.18 277.0 19561231 19641231 949999 86 NEWCASTLE WATERSP.O. AS -17.38 133.4 212.0 19561231 19791231 949999 87 BARROWCRK POST OFFICE AS -21.53 133.88 512.0 19631231 19821031 949999 88 FINKE POST OFFICE AS -25.58 134.57 267.0 19561231 19641231 949999 89 RABBIT FLAT AS -20.22 130.02 339.5 19690820 19821031 949999 90 LAKE TORRENS AS -31.88 137.72 31.0 19730610 19791231 949999 91 LEIGH CREEK AERO AS -30.47 138.42 193.0 19520101 19820630 949999 92 LEIGH CREEK SOUTHAERO AS -30.6 138.43 259.0 19820531 19820930 949999 93 FOWLERS BAY AS -31.98 132.45 4.9 19570101 19670512 949999 94 MINNIPA RESEARCH CENTRE AS -32.83 135.15 168.0 19641231 19821031 949999 95 MARALINGA AS -30.15 131.58 290.0 19550508 19671219 949999 96 POLDABASIN AS -33.5 135.33 37.0 19711231 19821031 949999 97 TOD RIVER RESERVOIR EWS AS -34.48 135.85 113.0 19730123 19821030 949999 98 PORT AUGUSTA POST OFFICE AS -32.5 137.77 6.0 19561231 19690204 949999 99 PORT AUGUSTA POWER STATION AS -32.53 137.78 8.0 19620630 19821031 949999 100 BUNDALEER FOREST RESERVE AS AR KM89 34.1 -93.066 0.0 19720103 19820930 949999 101 CLARE POST OFFICE AS -33.83 138.62 398.0 19561231 19641231 949999 102 GEORGETOWN POST OFFICE AS -33.37 138.4 273.0 19561231 19631231 949999 103 PRICE (OCEANSALT) AS -34.3 137.98 18.0 19720103 19820929 949999 104 ALTHORPE ISLAND LIGHT HOUSE AS -35.37 136.87 89.0 19680525 19811031 949999 105 TROUBRIDGE SHOAL LIGHT HOUSE AS -35.12 137.83 4.0 19690131 19810120 949999 106 CAPE DECOUEDIC AS -36.07 136.72 88.7 19671031 19730731 949999 107 PARNDANA EAST RESEARCH STATION AS -35.8 137.33 156.0 19611231 19821031 949999 108 ADELAIDE (WEST TERRACE) AS -34.93 138.58 40.0 19541231 19790227 949999 109 PENFIELD WEAPONS RESEARCH AS -34.73 138.65 26.0 19570131 19790430 949999 110 ROSEWORTHY AGRICULTURAL AS -34.53 138.68 114.0 19561231 19821031 949999 111 GLENOSMONDWAITE INSTITUTE AS -34.97 138.63 121.9 19671231 19820929 949999 112 PARAFIELD PLANT INTRODUCTION AS -34.78 138.63 16.0 19561231 19821030 949999 113 NORTHFIELD RESEARCH CENTRE AS -34.85 138.65 77.0 19711231 19821030 949999 114 MALLALAAMO AS -34.42 138.5 44.0 19420120 19531231 949999 115 KAPUNDA POST OFFICE AS -34.35 138.92 245.0 19561231 19631231 949999 116 TURRET FIELD RESEARCH CENTRE AS -34.55 138.83 116.0 19611231 19821031 949999 117 BELAIR (KALYRA) AS -35.0 138.62 304.8 19620101 19631231 949999 118 MOUNT BARKER POST OFFICE AS -35.07 138.87 330.0 19561231 19631231 949999 119 MYPONGA POST OFFICE AS -35.4 138.47 226.0 19561231 19631231 949999 120 STIRLING AS -35.03 138.72 496.2 19561231 19640630 949999 121 STRATHALBYN POST OFFICE AS -35.27 138.88 71.0 19561231 19631230 949999 122 LENSWOOD RESEARCH CENTRE AS -34.95 138.82 457.0 19711231 19821030 949999 123 BERRI IRRIGATION AS -34.28 140.6 65.5 19611231 19631231 949999 124 WAIKERIE (E&WS) AS -34.18 140.0 30.0 19570101 19720428 949999 125 BERRI POST OFFICE AS -34.28 140.6 31.7 19611231 19641231 949999 126 WAIKERIEAERO AS -34.18 140.02 54.9 19700111 19711201 949999 127 WAIKERIE (GOLDEN HEIGHTS)WAS AS -34.2 139.95 58.0 19720103 19820929 949999 128 TAILEMBEND AS -35.25 139.45 21.0 19610203 19641231 949999 129 CALIPHCSIRO AS -34.63 140.25 61.0 19740731 19820929 949999 130 KYBYBOLITE AS -36.88 140.93 91.0 19711231 19821030 949999 131 LUCINDALE POST OFFICE AS -36.98 140.37 31.0 19611231 19631231 949999 132 MOUNT BURR FOREST RESERVE AS -37.57 140.43 64.0 19561231 19820930 949999 133 CAPE JAFFA LIGHT HOUSE AS -36.95 139.58 14.0 19641231 19730228 949999 134 KONETTAEWS AS -37.27 140.12 11.0 19701202 19810629 949999 135 STRUAN RESEARCH CENTRE AS -37.1 140.8 37.0 19740331 19820930 949999 136 PADTHAWAY (LINDEMANS) AS -36.6 140.48 37.0 19820430 19821031 949999 137 KARUMBA FLYING BASE AS -17.47 140.83 9.0 19401130 19501231 949999 138 TOORAKFIELD STATION AS -21.03 141.8 144.0 19680630 19820629 949999 139 MOUNT ISA POST OFFICE AS -20.73 139.48 357.5 19561231 19641231 949999 140 MOUNT ISAMINES AS -20.73 139.5 386.6 19641231 19820930 949999 141 MOUNT SURPRISE AS -18.15 144.32 453.0 19561231 19780910 949999 142 COOKTOWNAMO AS -15.47 145.25 5.5 19390331 19460617 949999 143 HERBERTON POST OFFICE AS -17.38 145.38 899.0 19561231 19631231 949999 144 KAIRI RESEARCH STATION AS -17.2 145.57 715.0 19641231 19820929 949999 145 MAREEBAQWRC AS -17.0 145.43 335.0 19561231 19820830 949999 146 PARADA RESEARCH STATION AS -17.15 145.25 484.6 19641231 19760629 949999 147 KOOMBOOLOOMBADAM AS -17.83 145.6 732.0 19650731 19821030 949999 148 FITZROY ISLAND AS -16.93 146.0 106.7 19680630 19821031 949999 149 WALKAMINDPI AS -17.13 145.43 591.0 19680630 19821030 949999 150 SOUTH JOHNSTON EEXP STATION AS -17.6 146.0 180.0 19730831 19820530 949999 151 PIN-GINHILL AS -17.53 145.8 39.6 19641231 19661231 949999 152 TOWNSVILLE (ROSS RIVER) AS -19.3 146.78 19390331 19401031 949999 153 AYRDPI RESEARCH STATION AS -19.62 147.38 10.0 19641231 19821030 949999 154 HAYMAN ISLAND AS -20.05 148.88 3.4 19790930 19821031 949999 155 MACKAY AIRPORT /MO1943-1945 AS -21.17 149.18 6.0 19561231 19591225 949999 156 MACKAY (TEKOWAI SUGAR EXP.STATION) AS -21.17 149.12 14.0 19681130 19820930 949999 157 MILLAROO AS -20.07 147.28 44.0 19711231 19820830 949999 158 THEODORE (BRIGALOWRES.STN.N AS -24.83 149.8 155.0 19680630 19821030 949999 159 ISISFORD POST OFFICE AS -24.27 144.43 205.0 19561231 19820929 949999 160 LONGREACH POST OFFICE AS -23.45 144.25 191.4 19561231 19641231 949999 161 BILOELADPI RESEARCH STATION AS -24.4 150.52 173.0 19661231 19840730 949999 162 BULBURIN FORESTRY AS -24.53 151.47 602.0 19561231 19631231 949999 163 KALPOWAR FORESTRY AS -24.7 151.32 339.0 19611231 19631231 949999 164 THEODOREQWRC AS -24.95 150.08 141.0 19750101 19840430 949999 165 HERON ISLAND AS -23.45 151.92 5.0 19611231 19791231 949999 166 BUNDABERGAERO AS -24.9 152.32 31.4 19420208 19710104 949999 167 NORTH REEF LIGHT HOUSE AS -23.18 151.9 3.0 19641231 19771217 949999 168 NARAYEN (SPEARGRASS) AS -25.68 150.85 280.0 19700403 19840429 949999 169 CALOUNDRA SIGNAL STATION AS -26.8 153.15 57.0 19700906 19840630 949999 170 GATTON (LAWES) AS -27.55 152.33 29.0 19711231 19840429 949999 171 IMBIL FORESTRY AS -26.47 152.67 105.0 19680101 19840629 949999 172 SOMERSET DAM AS -27.12 152.55 110.0 19561231 19631231 949999 173 SOUTHPORT AS -27.95 153.4 21.0 19561231 19631231 949999 174 MOUNT TAMBORINE AS -27.98 153.2 525.0 19561231 19631231 949999 175 ARCHER FIELD AIRPORT AS -27.57 153.0 11.0 19390331 19491117 949999 176 SAMFORDCSIRO AS -27.37 152.88 53.0 19710519 19840430 949999 177 ORMISTON (REDLANDS)H.R.S. AS -27.53 153.25 11.0 19730228 19840430 949999 178 COOLANGATTAAERO AS -28.17 153.5 6.0 19611231 19711231 949999 179 KIRKLEAGH AS -27.03 152.57 104.0 19711231 19840430 949999 180 MOGGILLVET. RESEARCH FARM AS -27.53 152.92 39.6 19691130 19760129 949999 181 COOLUMBOWLS CLUB AS -26.53 153.08 10.0 19690603 19811229 949999 182 GAYNDAH (BRIAN PASTURES) AS -25.65 151.75 107.0 19680630 19840629 949999 183 GATTONDPI RESEARCH STATION AS -27.53 152.33 95.0 19831130 19840629 949999 184 JIMBOOMBA (GLEN LOGAN FIELD ST AS -27.83 153.0 20.0 19711231 19840630 949999 185 WACOLDPI AS -27.58 152.9 17.0 19760930 19791231 949999 186 WARWICK (HERMITAGE) AS -28.2 152.1 480.0 19641231 19840629 949999 187 APPLETHORP EGBH RESEARCH STATION AS -28.62 151.95 870.0 19660630 19840531 949999 188 INGLEWOOD TOBACCO RESEARCH AS -28.5 150.93 265.0 19730331 19840429 949999 189 ADAVALE POST OFFICE AS -25.92 144.6 229.0 19611231 19631231 949999 190 FOWLERS GAP RURAL INVESTIGATION AS -31.08 141.7 213.4 19730102 19731224 949999 191 BROKENHILLP.O. (RLY STATION AS -31.97 141.45 305.0 19590430 19790228 949999 192 LAKE VICTORIA STORAGE AS -34.05 141.27 42.7 19701231 19840629 949999 193 BROKENHILLAERO AS -32.0 141.47 287.0 19451231 19670318 949999 194 WENTWORTH POST OFFICE AS -34.12 141.92 37.0 19561231 19631231 949999 195 COBAR POST OFFICE AS -31.5 145.8 250.5 19561231 19641231 949999 196 GOODOOGA POST OFFICE AS -29.12 147.45 137.0 19701231 19811231 949999 197 EUSTON POST OFFICE AS -34.58 142.73 61.0 19641231 19700130 949999 198 CONDOBOLIN AGRICULTUAL RESEARCH STATION AS -33.07 147.23 189.0 19740131 19840731 949999 199 CONDOBOLIN SOIL CONSERVATION AS -33.1 147.15 199.0 19691231 19840530 949999 200 GILGANDRA POST OFFICE AS -31.72 148.67 27.8 19660102 19751231 949999 201 TRANGIEAGRIC. RESEARCH STATION AS -31.98 147.95 215.0 19691231 19840629 949999 202 NARROMINE AIRPORT AS -32.22 148.23 236.5 19700228 19740629 949999 203 WARREN (AUSCOTT) AS -31.78 147.77 198.0 19681130 19751230 949999 204 WALGETT POST OFFICE AS -30.02 148.12 133.0 19561231 19840630 949999 205 MOREE POST OFFICE AS -29.5 149.9 207.3 19561231 19641231 949999 206 BINGARA POST OFFICE AS -29.87 150.57 296.0 19650101 19751230 949999 207 PINDARIDAM AS -29.4 151.23 472.0 19710802 19840730 949999 208 GUNNEDAH SOIL CONSERVATION RESEARCH STATION AS -31.03 150.27 307.0 19641231 19840429 949999 209 TAMWORTHAMO/MO.FROM1966 AS -31.08 150.85 411.0 19561231 19840731 949999 210 BUNDARRA POST OFFICE AS -30.18 151.07 656.0 19670102 19691230 949999 211 GLENINNES AGRICULTURAL RESEARCH STATION AS -29.7 151.7 1060.0 19700607 19840730 949999 212 INVERELL SOIL CONSERVATION SERVICES AS -29.78 151.08 676.0 19641231 19840629 949999 213 URBENVILLE STATE FOREST AS -28.47 152.55 365.8 19561231 19631231 949999 214 TYALGUMCOODGEE STREET AS -28.37 153.22 61.0 19701231 19840630 949999 215 ALSTONVILLE TROPICAL FRUIT RESEARCH AS -28.85 153.45 152.0 19671231 19840629 949999 216 BELLINGEN POST OFFICE AS -30.45 152.9 22.9 19561231 19631231 949999 217 BROOKLANA (BOBO NURSERY) AS -30.25 152.82 1097.3 19650201 19650225 949999 218 SOUTH SOLITARY ISLAND AS -30.2 153.27 40.0 19680930 19751130 949999 219 YARRAS (MOUNT SEAVIEW) AS -31.38 152.25 146.0 19711231 19840531 949999 220 KULNURA (WILLIAM ROAD) AS -33.23 151.2 312.0 19700331 19810831 949999 221 MUSWELLBROOK COUNCIL AS -32.25 150.88 144.2 19681231 19720630 949999 222 RATHMINESAMO AS -33.05 151.6 9.0 19401231 19500730 949999 223 SCONE SOIL CONSERVATION SERVICE AS -32.07 150.93 216.0 19641231 19840531 949999 224 MARYVILLEHVRF AS -32.92 151.75 8.0 19681231 19840731 949999 225 PATERSONTOCAL AGRIC AS -32.63 151.58 30.0 19711231 19840630 949999 226 MAITLAND WEST AERO AS -32.7 151.47 24.7 19691231 19740630 949999 227 CESSNOCKAERO AS -32.8 151.33 64.0 19710630 19730430 949999 228 LOSTOCK DAM SITE AS -32.33 151.47 199.9 19711231 19840429 949999 229 PEATSRIDGE (WARATAH ROAD) AS -33.32 151.25 280.0 19811002 19840531 949999 230 BATHURST AGRICULTURAL RESEARCH STATION AS -33.43 149.57 713.0 19660103 19821031 949999 231 COWRA POST OFFICE AS -33.9 148.7 19561231 19700430 949999 232 COWRA SOIL CONSERVATION SERVICE AS -33.82 148.7 385.9 19641231 19820929 949999 233 KATOOMBA COMPOSITE AS -33.72 150.3 1030.0 19561231 19631231 949999 234 ORANGE POST OFFICE AS -33.28 149.1 864.4 19561231 19631231 949999 235 ORANGE AGRICULTRAL RESEARCH STATION AS -33.33 149.07 929.9 19751231 19821030 949999 236 BLACKHEATH M.C.A. AS -33.63 150.28 1052.0 19811231 19820131 949999 237 CANOWINDRA POST OFFICE AS -33.57 148.67 300.0 19650101 19820129 949999 238 MOLONG POST OFFICE AS -33.1 148.87 529.1 19561231 19631231 949999 239 WELLINGTON (SCS RESEARCH STATION) AS -32.52 148.97 390.0 19641231 19820929 949999 240 LUCASHTS (AUST ATOMIC ENERGY) AS -34.05 150.98 140.0 19611231 19821031 949999 241 RIVERVIEW OBSERVATORY AS -33.83 151.17 22.9 19620326 19631230 949999 242 HOLDSWORTHY AIR CAVALRY AS -33.95 150.95 19700215 19741130 949999 243 MARSFIELDMACQUARIEUNI AS -33.78 151.12 46.0 19811231 19820930 949999 244 PROSPECTDAMSEE AS -33.82 150.92 61.0 19740228 19821031 949999 245 RICHMOND (HAWKESBURYAGRIC. AS -33.62 150.75 18.3 19711231 19750630 949999 246 BADGERYS CREEK RESEARCH STATION AS -33.87 150.73 69.0 19711231 19820929 949999 247 SCHOFIELDSAMO AS -33.77 150.87 19611231 19631231 949999 248 MOSSVALE POST OFFICE AS -34.55 150.37 686.0 19561231 19760319 949999 249 PORT KEMBLA SIGNAL STATION AS -34.48 150.92 11.0 19611231 19631231 949999 250 CAMPBELLTOWN SWIMMING CENTRE AS -34.12 150.82 65.0 19720630 19751231 949999 251 NAROOMA COMPOSITE AS -36.22 150.12 10.0 19680821 19700518 949999 252 ULLADULLA AS -35.37 150.48 9.1 19561231 19791031 949999 253 CANBERRA FORESTRY AS -35.3 149.1 581.0 19611231 19641231 949999 254 GOULBURN AS -34.75 149.87 701.6 19581231 19701222 949999 255 COOMA NORTH SMHEC AS -36.22 149.13 839.4 19691231 19710730 949999 256 GOULBURN AEROCLUB AS -34.82 149.73 642.2 19590101 19730630 949999 257 COOMA NORTH (GERINGAA VENUE) AS -36.22 149.13 860.0 19710630 19730530 949999 258 URIARRA FOREST2 AS -35.3 148.92 625.0 19561231 19631231 949999 259 KIANDRA CHALET AS -35.88 148.5 1395.4 19611231 19670331 949999 260 SPENCERS CREEK AS -36.43 148.35 1767.8 19680801 19680831 949999 261 GUTHEGA POWER STATION AS -36.35 148.4 1341.1 19620228 19631231 949999 262 ALBURY GRAMMAR SCHOOL AS -36.07 146.93 182.9 19681231 19820929 949999 263 BURRINJUCK DAM AS -35.0 148.6 398.0 19780531 19820929 949999 264 TEMORA EXPERIMENTAL FARM AS -34.42 147.53 292.0 19671130 19710228 949999 265 GUNDAGAISHIRE OFFICE AS -35.07 148.1 215.8 19401031 19421231 949999 266 COOTAMUNDRAAERO AS -34.63 148.05 337.7 19710228 19760731 949999 267 GUNDAGAI (OTWAYST) AS -35.07 148.1 289.9 19701231 19751030 949999 268 WAGGAWAGGA EXPERIMENTAL FARM AS -35.05 147.35 219.2 19760731 19820930 949999 269 GUNDAGAI (RIDGEST) AS -35.08 148.1 232.9 19720831 19720930 949999 270 COROWA COMPOSITE AS -36.0 146.37 137.0 19561231 19771129 949999 271 DENILIQUIN (FALKINERMEMORIA AS -35.37 145.05 91.4 19570101 19631231 949999 272 LEETON BOWLING CLUB AS -34.55 146.42 152.0 19561231 19631231 949999 273 MATHOURA STATE FOREST AS -35.82 144.9 76.0 19611231 19700205 949999 274 NARRANDERA POST OFFICE AS -34.75 146.55 153.0 19641231 19821030 949999 275 WAGGAWAGGA SOIL CONSERVATION SERVICE AS -35.13 147.32 222.0 19410820 19450930 949999 276 DENILIQUINAMO AS -35.53 144.97 96.0 19440101 19470212 949999 277 TOCUMWALAMO AS -35.78 145.57 114.0 19420101 19451130 949999 278 URANQUINTYAMO AS -35.2 147.22 217.3 19611231 19820830 949999 279 GRIFFITHCSIRO AS -34.32 146.07 127.1 19701231 19751230 949999 280 MOULAMEIN POST OFFICE AS -35.08 144.03 71.6 19711231 19820930 949999 281 NARADHAN POST OFFICE AS -33.62 146.33 192.0 19810531 19810630 949999 282 YENDA POST OFFICE AS -34.25 146.2 129.0 19641231 19751030 949999 283 MERBEINCSIRO RESEARCH STATION AS -34.17 142.07 56.4 19711231 19821030 949999 284 WALPEUP RESEARCH AS -35.12 142.0 107.0 19561231 19641231 949999 285 BEULAH POST OFFICE AS -35.95 142.42 89.0 19561231 19631231 949999 286 SERVICETON AS -36.37 140.98 118.9 19700115 19821031 949999 287 LONGERENONG AGRICULTURE COLLEGE AS -36.67 142.3 91.0 19561231 19820228 949999 288 STARNAUD FORESTRY AS -36.62 143.27 239.0 19641231 19750730 949999 289 ROCHESTER AS -36.35 144.7 104.9 19641231 19821031 949999 290 KYABRAM RESEARCH STATION AS -36.33 145.07 104.0 19770630 19820929 949999 291 NUMURKAH IRRIGATION RESEARCH AS -36.07 145.45 110.0 19731031 19751030 949999 292 DOOKIEAG. AS -36.38 145.7 183.0 19650103 19720629 949999 293 SHEPPARTONSRWSC AS -36.38 145.4 113.0 19641231 19821031 949999 294 TATURAIRRIG RESEARCH INSTITUTE AS -36.43 145.27 114.0 19740731 19821031 949999 295 WANALTA (DAEN STATION) AS -36.63 144.87 114.0 19711231 19821030 949999 296 RUTHERGLEN RESEARCH AS -36.08 146.48 168.0 19731231 19821031 949999 297 STRATHBOGIE AS -36.87 145.73 506.0 19561231 19641231 949999 298 WODONGA EXPRESS AS -36.12 146.9 152.0 19750109 19820929 949999 299 DARTMOUTH RESERVOIR AS -36.57 147.62 360.0 19611231 19631231 949999 300 BOGONG AS -36.8 147.23 731.5 19561231 19631231 949999 301 WOODS POINT AS -37.58 146.25 685.2 19561231 19700331 949999 302 BAIRNSDALE POST OFFICE AS -37.82 147.62 18.0 19740331 19791031 949999 303 TABBERABBERA (THE PINES) AS -37.58 147.37 116.0 19420701 19451130 949999 304 BAIRNSDALEAERO AS -37.87 147.57 19611231 19631231 949999 305 WARRAGUL POST OFFICE AS -38.17 145.93 116.0 19561231 19821031 949999 306 YALLOURNSEC AS -38.18 146.37 155.1 19731231 19821030 949999 307 MOONDARRA RESERVOIR AS -38.1 146.38 190.0 19741231 19821031 949999 308 EASTTARWINNO.10 (MIRBOOPA AS -38.52 146.2 240.0 19720430 19741231 949999 309 EASTTARWINNO.18 AS -38.52 146.25 365.8 19780719 19811025 949999 310 NOOJEE PEARCE AS -37.88 146.02 261.0 19810731 19820228 949999 311 DARRIMAN (OMEGA) AS -38.48 146.93 34.0 19641231 19730629 949999 312 KEW AS -37.82 145.03 60.7 19611231 19631231 949999 313 MORNINGTON POST OFFICE AS -38.23 145.03 46.0 19730228 19750630 949999 314 POWELLTOWN AS -37.87 145.75 189.1 19711231 19821030 949999 315 SCORESBY AS -37.87 145.23 62.0 19561231 19741030 949999 316 TOORADIN AS -38.17 145.4 3.0 19641231 19820929 949999 317 MOUNT STLEONARD POTATO FARM AS -37.57 145.5 603.0 19641231 19820629 949999 318 ASPENDALECSIRO AS -38.03 145.1 6.0 19671130 19751031 949999 319 FRANKSTONDEPT AGRICULTURE AS -38.12 145.18 27.0 19790831 19821030 949999 320 BUNDOORA (LATROBE UNIVERSITY) AS -37.72 145.05 90.0 19561231 19631231 949999 321 BALLAN (FISKVILLE) AS -37.6 144.2 442.0 19711231 19821030 949999 322 DURDIDWARRAH AS -37.82 144.22 366.0 19561231 19631227 949999 323 QUEENS CLIFF AS -38.27 144.67 15.2 19721231 19791231 949999 324 WERRIBEE RESEARCH FARM AS -37.9 144.68 24.0 19651031 19700929 949999 325 AVALON AIRPORT AS -38.03 144.47 11.0 19741130 19821031 949999 326 BLACKWOOD ARMSTRONG AS -37.47 144.32 533.0 19730131 19750929 949999 327 CRESWICK FORESTRY SCHOOL AS -37.43 143.9 452.0 19561231 19631231 949999 328 KYNETON POST OFFICE AS -37.25 144.45 509.0 19650101 19651230 949999 329 SEYMOUR AS -37.02 145.15 142.0 19731130 19821031 949999 330 SPRING CREEK BASIN TWO AS -37.1 145.7 360.0 19611231 19631231 949999 331 ARARAT POST OFFICE AS -37.28 142.95 332.2 19561231 19641231 949999 332 LISMORE POST OFFICE AS -37.97 143.35 160.0 19820602 19821031 949999 333 WARRAMBINENO2 (PARKER) AS -37.88 143.9 238.0 19720229 19820531 949999 334 WARRAMBINEBASINNO3 AS -37.83 143.88 311.0 19561231 19631231 949999 335 COLAC AS -38.33 143.6 134.1 19650103 19821030 949999 336 HAMILTON RESEARCH STATION AS -37.82 142.07 205.0 19730930 19820606 949999 337 PORTLANDAERO AS -38.38 141.63 38.0 19820607 19820930 949999 338 PORTLAND (CASHMORE) AS -38.32 141.48 81.0 19690724 19781113 949999 339 BRIDPORT POST OFFICE AS -41.0 147.4 14.0 19641231 19821031 949999 340 CRESSY RESEARCH AS -41.72 147.08 150.0 19641231 19821030 949999 341 ELLIOTT RESEARCH AS -41.08 145.77 152.0 19710414 19821031 949999 342 PREOLENNA AS -41.08 145.55 251.0 19561231 19821031 949999 343 QUOIBA AS -41.22 146.35 11.0 19561231 19641231 949999 344 REDPA AS -40.93 144.83 82.0 19561231 19760229 949999 345 STANLEY POST OFFICE AS -40.77 145.3 4.9 19730831 19821030 949999 346 TEWKESBURY RESEARCH AS -41.23 145.7 460.0 19601231 19730331 949999 347 WYNYARD AIRPORT AS -41.0 145.73 20.0 19561231 19641231 949999 348 DEVONPORT AS -41.18 146.37 14.0 19601231 19820929 949999 349 WYNYARDWEST (JACKSON STREET) AS -40.98 145.72 11.0 19681031 19710228 949999 350 SCOTTSDALE KRAFT FOODS AS -41.15 147.52 199.9 19681231 19821030 949999 351 FORTHSIDE AGRICULTURAL RESEARCH STATION AS -41.2 146.27 130.0 19610831 19620328 949999 352 ROWELLA AS -41.18 146.92 20.1 19610831 19620328 949999 353 SMITHTONAERO AS -40.83 145.08 19810101 19821031 949999 354 GUNNS PLAINS AS -41.3 145.98 80.0 19710331 19821031 949999 355 LAKE LEAKE CHALET AS -42.02 147.8 580.0 19440316 19580531 949999 356 CAMBRIDGEAEROAMO AS -42.83 147.48 10.0 19561231 19820930 949999 357 HASTINGS CHALET AS -43.42 146.88 40.0 19561231 19631231 949999 358 RISDON AS -42.83 147.32 31.7 19500201 19500509 949999 359 ROSNY AS -42.87 147.37 12.2 19641231 19770430 949999 360 TASMAN LIGHT HOUSE AS -43.25 148.0 239.9 19711231 19720217 949999 361 GEEVESTON FORESTRY AS -43.17 146.93 59.7 19561231 19631231 949999 362 BUSHYPARK HOPS RESEARCH AS -42.72 146.88 76.2 19561231 19631230 949999 363 BRONTEPARK AS -42.13 146.5 675.1 19561231 19631231 949999 364 BUTLERS GORGE AS -42.28 146.27 666.0 19561231 19631231 949999 365 SHANNONHEC AS -42.05 146.75 940.0 19561231 19710202 949999 366 CAPE SORELL LIGHT HOUSE AS -42.2 145.17 22.3 19561231 19631231 949999 367 WARATAH POST OFFICE AS -41.43 145.52 623.9 19611231 19631231 949999 368 ZEEHAN POST OFFICE AS -41.88 145.33 172.2 19681231 19820930 949999 369 SAVAGE RIVER AS -41.5 145.18 352.0 19670330 19691217 949999 370 STRATHGORDON (THEKNOB) AS -42.73 145.98 304.8 19690911 19770131 951000 99999 NORTHERN ENDEAVOUR AS -10.617 125.98299999999999 37.0 20010705 20120310 951010 99999 TRUSCOTT AS -14.083 126.383 52.0 20040824 20170923 951110 99999 PORT KEATS AIRPORT AS -14.25 129.533 29.0 20010915 20170923 951200 99999 DARWIN AP COMPARISON AS -12.42 130.88 30.0 20041123 20070613 951210 99999 MIDDLE POINT AWS AS -12.6 131.3 15.0 20030330 20170923 951420 99999 MANINGRIDA AERO AS -12.05 134.233 29.0 20040608 20170923 951460 99999 NGAYAWILI AS -12.0 135.567 9.0 20010915 20170923 951809 99999 MORETONTELE GRAPHIC OFFICE AS -12.45 142.63 40.0 19680531 19821030 951810 99999 EDWARD RIV. MISSION AS -14.9 141.6 5.0 19860713 19870707 952040 99999 WEST ROEBUCK AS -17.9 122.31700000000001 32.0 19980301 20170923 952050 99999 DERBY AERO AS -17.367 123.667 7.0 19970101 20170923 952140 99999 WYNDHAM AERO AS -15.5 128.15 4.0 20010815 20170923 952150 99999 KIMBERLEY RES. STATION AS -15.65 128.717 31.0 20030331 20100831 952830 99999 COOKTOWN AIRPORT AS -15.45 145.183 6.0 20010915 20170923 952840 99999 WALKAMIN DPI AS -17.133 145.433 594.0 20010915 20170921 952850 99999 KAIRI RESEARCH STATION AS -17.217 145.567 714.0 20040713 20111024 952860 99999 MAREEBA AIRPORT AWS AS -17.067 145.433 473.0 20010915 20170923 952870 99999 NORMAN REEF AS -16.433 145.983 2.0 19971201 20130925 952880 99999 BOUGAINVILLE REEF AS -15.5 147.11700000000002 13.0 19930101 20170923 952890 99999 GREEN ISLAND AS -16.767 145.967 3.0 19930501 20100616 952900 99999 MOORE REEF AS -16.85 146.233 2.0 19971201 20130916 952910 99999 INGHAM COMPOSITE AS -18.65 146.183 12.0 19970101 20170922 952920 99999 SOUTH JOHNSTONE EXP STN AS -17.6 146.0 19.0 20010715 20170923 952930 99999 WOOLSHED AS -19.417 146.533 559.0 20010915 20170923 952950 99999 AYR DPI RESEARCH STN AS -19.617 147.38299999999998 12.0 19970101 20170923 952960 99999 AYR ALVA BEACH AS -19.45 147.483 8.0 19980301 20170923 952970 99999 HOOK REEF\AWS PO -19.733 149.167 3.0 19971205 20020512 952990 99999 WILLIS ISLAND COIMP AS -16.29 149.96 8.0 20041207 20060914 953030 99999 VARANUS ISLAND AS -20.65 115.56700000000001 24.0 20010915 20170923 953040 99999 BARROW ISLAND AIRPORT AS -20.883000000000003 115.4 7.0 20010915 20170923 953050 99999 ONSLOW AIRPORT AS -21.666999999999998 115.117 11.0 20010915 20170923 953070 99999 KARRATHA AERO AS -20.717 116.76700000000001 6.0 19941001 20170923 953080 99999 KARRATHA (KING BAY) AS -20.616999999999997 116.75 16.0 19910801 20010901 953100 99999 PARABURDOO AS -23.2 117.667 391.0 19810101 20021127 953120 99999 REDMONT AS -21.983 119.0 387.0 19900206 19950825 953139 99999 SANDHILL AS -22.78 119.62 433.7 19810901 19810930 953140 99999 NEWMAN AS -23.35 119.71700000000001 545.0 19831013 19971231 953150 99999 MOUNT PHILLIP AS -24.4 116.3 300.0 19900206 20130224 953160 99999 TOM PRICE AS -22.7 117.76700000000001 746.0 20010916 20110428 953170 99999 MARBLE BAR AS -21.183000000000003 119.75 183.0 20010915 20170923 953180 99999 MOUNT AUGUSTUS AS -24.3 116.917 337.0 20011007 20030912 953220 99999 RABBIT FLAT AS -20.183 130.017 339.0 20010915 20170923 953230 99999 ARLTUNGA AS -23.467 134.683 664.0 20010915 20170923 953510 99999 BLACKALL AIRPORT AS -24.416999999999998 145.433 282.0 20030330 20170923 953620 99999 SPRINGSURE DAME ST AS -24.116999999999997 148.083 345.0 19920801 20170922 953660 99999 TE KOWAI EXP STN AS -21.166999999999998 149.11700000000002 14.0 20030330 20120604 953670 99999 MACKAY AERO AS -21.166999999999998 149.183 6.0 19960201 20170501 953690 99999 ST LAWRENCE AS -22.35 149.517 10.0 20041123 20170923 953700 99999 WILLIAMSON AS -22.47 150.18 28.0 20050722 20170923 953760 99999 BRIGALOW RESEARCH STN AS -24.833000000000002 149.8 168.0 20030330 20110405 954000 99999 THREE RIVERS AS -25.116999999999997 119.15 522.0 19900216 20041101 954020 99999 SHARK BAY AIRPORT AS -25.9 113.583 34.0 20010915 20170923 954450 99999 NAME AND LOC UNKN AS 19740501 19780808 954480 99999 LEINSTER AERO AS -27.85 120.7 498.0 19941001 20170923 954580 99999 COOBER PEDY AIRPORT AS -29.033 134.717 226.0 19970101 20170923 954620 99999 ULURU RANGERS AS -25.366999999999997 131.017 530.0 20010915 20030409 954800 99999 MARREE AERO AS -29.666999999999998 138.067 51.0 20010709 20170923 954810 99999 MOOMBA AIRPORT AS -28.1 140.2 38.0 19960201 20170923 954820 99999 BIRDSVILLE AS YBDV -25.898000000000003 139.34799999999998 47.9 20010915 20170923 954850 99999 TIBOOBURRA AS YTIB -29.451 142.058 178.0 20010915 20170923 954870 99999 BALLERA GAS FIELD AS -27.416999999999998 141.817 115.0 20030330 20170923 954920 99999 THARGOMINDAH AS YTGM -27.986 143.811 132.0 20010705 20170923 955020 99999 DUMONT FRE-BASE AY -66.667 140.017 41.0 19730101 19850630 955120 99999 BREWARRINA HOSPITAL AS -29.95 146.85 115.0 19650101 20170916 955200 99999 COLLARENBRI (ALBERT STREET) AS -29.55 148.583 145.0 19660102 20170922 955270 99999 MOREE AERO AS -29.491 149.846 218.5 19950701 20170923 955290 99999 MILES CONSTANCE STREET AS -26.65 150.183 305.0 20010705 20170923 955330 99999 TEXAS POST OFFICE AS -28.85 151.167 297.0 19921201 20170922 955410 99999 INVERELL (RAGLAN ST) AS -29.783 151.11700000000002 636.0 19980301 20170923 955430 99999 GAYNDAH AIRPORT AS -25.616999999999997 151.61700000000002 112.0 20030330 20170923 955510 99999 TOOWOOMBA AIRPORT AS -27.55 151.917 642.0 19980301 20170923 955550 99999 WARWICK AS -28.217 152.017 477.0 19900201 20100210 955650 99999 HERVEY BAY AIRPORT AS -25.316999999999997 152.88299999999998 15.0 20010915 20170923 955660 99999 BEERBURRUM FOREST STATION AS -26.95 152.967 36.0 20010701 20170923 955700 99999 GRAFTON AIRPORT AS -29.75 153.033 26.0 20070228 20170923 955710 99999 GRAFTON RESEARCH STN AS -29.616999999999997 152.967 26.0 20030330 20170923 955720 99999 NAMBOUR DPI-HILLSIDE AS -26.65 152.933 33.0 19650103 20170923 955730 99999 IGLEVOOD FOREST AS -28.35 150.95 384.0 19920901 20141211 955740 99999 TEWANTIN AS -26.383000000000003 153.033 8.0 19900201 19960306 955750 99999 BEAUDESERT DRUMLEY ST AS -27.967 152.983 48.0 20080429 20170923 955810 99999 LONGAN CITY WATER TREATMENT AS -27.7 153.2 10.0 19970101 20170922 955900 99999 REDCLIFFE AS -27.25 153.1 2.0 19860411 20040204 955910 99999 REDCLIFFE AS -27.217 153.1 13.0 19900201 20170923 956000 99999 JURIEN BAY AS -30.3 115.03299999999999 5.0 19691021 20170922 956010 99999 WONGAN HILLS RES. STATION AS -30.833000000000002 116.73299999999999 305.0 20030331 20131001 956020 99999 BUSSELTON JETTY AS -33.633 115.333 3.0 20010701 20170923 956030 99999 KELLERBERRIN AS -31.616999999999997 117.71700000000001 250.0 20030331 20170921 956040 99999 GOSNELLS CITY AS -32.05 115.98299999999999 10.0 19970101 20170923 956050 99999 FREMANTLE EAST AS -32.05 115.76700000000001 4.0 19910201 19990531 956060 99999 LANCELIN AS -31.017 115.31700000000001 5.0 19900201 20170923 956070 99999 GARDEN ISLAND HSF AS -32.233000000000004 115.68299999999999 6.0 19851128 20170923 956080 99999 MEDINA RESEARCH CENTRE AS -32.217 115.8 14.0 19950101 20170921 956100 99999 KALAMUNDA BICKLEY AS -32.016999999999996 116.133 385.0 19910601 20170923 956110 99999 BUSSELTON AERO AS -33.683 115.4 17.0 19900206 20170923 956120 99999 GINGIN AERO AS -31.467 115.867 75.0 19980301 20170923 956130 99999 PEMBERTON AS -34.45 116.03299999999999 175.0 19570101 20170922 956140 99999 KARNET AS -32.433 116.06700000000001 286.0 19730101 20170923 956150 99999 BEVERLEY AS -32.1 116.917 199.0 20010916 20170923 956160 99999 PINGELLY AS -32.533 117.083 297.0 20010916 20170923 956170 99999 SHANNON AS -34.583 116.35 191.0 19980301 20170923 956180 99999 WAGIN AS -33.3 117.333 256.0 19900206 20170922 956190 99999 KOJUNUP AS -33.833 117.15 305.0 19910101 19980415 956210 99999 COLLIE EAST AS -33.367 116.167 200.0 20030211 20170923 956220 99999 DONNYBROOK AS -33.567 115.81700000000001 63.0 20010916 20170923 956230 99999 JARRAHWOOD AS -33.8 115.65 130.0 20030330 20170923 956240 99999 MERREDIN AS -31.467 118.26700000000001 315.0 19660101 20170923 956250 99999 CUNDERDIN AIRFIELD AS -31.616999999999997 117.21700000000001 217.0 19980301 20170923 956260 99999 NAREMBEEN AS -32.067 118.4 276.0 19900207 20170923 956270 99999 HYDEN COMPOSITE AS -32.45 118.9 299.0 19900206 20170922 956280 99999 ONGERUP AS -33.95 118.48299999999999 288.0 19720101 20170923 956290 99999 DALWALLINU AS -30.283 116.667 326.0 19980301 20170923 956300 99999 BUSSELTON AS -33.65 115.31700000000001 4.0 20010701 20111123 956310 99999 GOOMALLING AS -31.3 116.833 239.0 20030331 20170922 956320 99999 BRIDGETOWN AS -33.95 116.133 179.0 20010818 20170923 956330 99999 SOUTHERN CROSS MT AS -30.383000000000003 120.15 501.0 19980301 20010430 956340 99999 SOUTHERN CROSS AIRFIELD AS -31.233 119.35 348.0 19980301 20170923 956350 99999 HOPETOWN NORTH AS -33.933 120.133 27.0 19980301 20170923 956360 99999 JACUP AS -33.883 119.1 306.0 19941001 20170923 956370 99999 LAKE GRACE AS -33.1 118.46700000000001 286.0 20010915 20170923 956380 99999 ESPERANCE AERO AS -33.683 121.833 144.0 19910501 20170923 956390 99999 SALMON GUMS RES. STN AS -32.983000000000004 121.617 249.0 20010701 20170923 956400 99999 WANDERING AS -32.667 116.667 275.0 20010701 20170923 956410 99999 WITCHCLIFFE AS -34.033 115.1 81.0 20010915 20170923 956420 99999 NORSEMAN AERO AS -32.217 121.75 263.0 20010814 20170923 956430 99999 HARVEY AS -33.083 115.883 40.0 20010916 20140530 956440 99999 MUNGLINUP WEST AS -33.55 120.7 220.0 20030330 20170923 956450 99999 CAIGUNA ASA AS -32.265 125.48899999999999 110.0 19750429 20010309 956460 99999 FORREST AS YFRT -30.833000000000002 128.11700000000002 160.0 19930501 20170923 956470 99999 NORTH WALPOLE AS -34.95 116.71700000000001 74.0 20040706 20170923 956540 99999 WUDINNA AERO AS -33.05 135.45 87.0 20010901 20170923 956550 99999 NONNING AS -32.516999999999996 136.483 200.0 19900201 20121203 956560 99999 GUM VIEW AS -33.516999999999996 135.283 37.0 20010922 20050924 956570 99999 PORT PIRIE AERODROME AS -33.233000000000004 138.0 12.0 20070228 20150109 956580 99999 OLYMPIC DAM AERODROME AS -30.483 136.88299999999998 100.0 20010915 20170923 956590 99999 MINLATON AERO AS -34.75 137.517 32.0 19920801 20170923 956600 99999 ANDAMOOKA AS -30.45 137.167 76.0 19900201 20170922 956610 99999 PORT LINCOLN AERO AS -34.6 135.88299999999998 8.0 19920801 20150122 956620 99999 MINNIPA DPI AS -32.85 135.15 166.0 19980301 20170923 956630 99999 CUMMINS AERO AS YCMM -34.25 135.717 58.0 20071016 20170923 956640 99999 WHYALLA AS YWHA -33.059 137.514 12.5 19920801 20170923 956660 99999 PORT AUGUSTA ARID LANDS AS -32.516999999999996 137.717 14.0 19970101 20170923 956670 99999 CLARE HIGH SCHOOL AS -33.817 138.6 396.0 19941001 20170923 956680 99999 GLUEPOT AS -33.766999999999996 140.11700000000002 55.0 20010915 20170922 956690 99999 PRICE AS -34.3 138.0 7.0 20010916 20170919 956700 99999 RAYVILLE PARK AS -33.783 138.217 109.0 20010914 20170923 956710 99999 ROSEWORTHY AG COLLEGE AS -34.516999999999996 138.683 65.0 20010701 20170923 956720 99999 ADELAIDE AIRPORT OL AS -34.95 138.533 6.0 20041109 20050130 956740 99999 TURRETFIELD RESEARCH CENTRE AS -34.55 138.833 116.0 20030330 20170922 956750 99999 BLACK POLE AS -34.733000000000004 138.467 8.0 20020102 20170923 956760 99999 EDINBURGH AS YPED -34.703 138.621 20.4 19721117 20170923 956770 99999 ADELAIDE PARAFIELD AS YPPF -34.793 138.63299999999998 17.4 19390331 20170923 956780 99999 MOUNT LOFTY AS -34.967 138.7 730.0 19860108 20170923 956870 99999 RENMARK AERO AS -34.2 140.683 32.0 19960201 20170923 956889 99999 WANBI RESEARCH CENTRE AS -34.78 140.28 77.0 19681231 19820930 956920 99999 POONCARIE MAIL AGENCY AS -33.383 142.567 53.0 20030330 20170922 956950 99999 WILCANNIA AERODROME AWS AS -31.517 143.38299999999998 95.0 20010915 20170923 956970 99999 IVANHOE AERODROME AWS AS -32.883 144.317 100.0 20010915 20170923 956990 99999 WHITE CLIFFS AWS AS -30.85 143.07 158.0 20050722 20170923 957030 99999 BOURKE ARPT AS -30.033 145.95 108.0 19970101 19990131 957040 99999 GRIFFITH AIRPORT AWS AS -34.25 146.067 135.0 19700821 20170923 957050 99999 YANCO AGRICULTURAL INSTITUTE AS -34.617 146.433 164.0 20010824 20170923 957060 99999 NARRANDERA AS YNAR -34.702 146.512 144.5 19691231 20170923 957070 99999 LAKE CARGELLIGO AIRPORT AS -33.283 146.36700000000002 169.0 19820630 20170922 957080 99999 CONDOBOLIN AIRPORT AS -33.067 147.217 194.0 19941001 20170923 957090 99999 WEST WYALONG AIRPORT AWS AS -33.933 147.2 258.0 20010915 20170923 957100 99999 TRANGIE RESEARCH STATION AS -31.983 147.95 216.0 20010915 20170923 957119 99999 WEST WYALONG AIRPORT AS -33.93 147.2 262.0 19651231 19840629 957130 99999 BARADINE FORESTRY AS -30.95 149.067 302.0 20030330 20120726 957150 99999 WALGETT AIRPORT AS -30.033 148.11700000000002 134.0 19941001 20170923 957160 99999 GOULBURN AIRPORT AWS AS -34.817 149.733 641.0 19900201 20170923 957170 99999 PARKES AIRPORT AS -33.133 148.233 324.0 19691231 20170923 957180 99999 COONAMBLE AIRPORT AS -30.983 148.38299999999998 182.0 20010915 20170923 957190 99999 DUBBO AIRPORT AWS AS -32.217 148.567 285.0 19970101 20170923 957200 99999 COWRA RESEARCH STN AS -33.817 148.7 386.0 19900201 20110114 957210 99999 COWRA AIRPORT AWS AS -33.85 148.65 297.0 20040824 20170923 957220 99999 TEMORA AIRPORT AS -34.433 147.517 281.0 19750705 20170923 957230 99999 YASS (RURAL FIRE SERVICE) AS -34.817 148.9 520.0 19900201 20170907 957250 99999 ORANGE AGRICULTURAL INSTITUTE AS -33.317 149.083 922.0 20030330 20170921 957260 99999 ORANGE AIRPORT AS -33.383 149.13299999999998 948.0 19980301 20170923 957270 99999 DUNEDOO AS -32.016999999999996 149.38299999999998 388.0 19900202 20170921 957280 99999 COONABARABRAN AIRPORT AWS AS -31.316999999999997 149.267 646.0 20030330 20170923 957340 99999 NARRABRI AIRPORT AWS AS -30.316999999999997 149.817 230.0 20030330 20170923 957350 99999 OBERON-SPRINGBANK AS -33.683 149.833 1190.0 19900201 20170922 957400 99999 GUNNEDAH AIRPORT AWS AS -30.95 150.25 263.0 20030330 20170923 957440 99999 SPRINGWOOD (VALLEY HEIGHTS) AS -33.7 150.567 362.0 20070228 20170922 957460 99999 QUIRINDI AS -31.5 150.667 390.0 19900202 20170922 957470 99999 MURRURUNDI GAP AWS AS -31.733 150.8 730.0 20040608 20170923 957480 99999 WOLLONGONG AIRPORT AS -34.567 150.783 8.0 20010915 20170923 957490 99999 KIAMA (BOMBO HEADLAND) AS -34.65 150.85 16.0 20040510 20170923 957500 99999 LIVERPOOL WHITLAM CENTRE AS -33.933 150.88299999999998 20.0 19810531 20130228 957520 99999 WATTAMOLLA AWS AS -34.133 151.11700000000002 44.0 20101007 20170923 957530 99999 RICHMOND RAAF AS -33.6 150.783 20.0 19970301 20170923 957540 99999 MERRIWA (ROSCOMMON) AS -32.183 150.167 376.0 20071016 20170923 957560 99999 KURNELL AWS AS -34.0 151.2 4.0 20101012 20170923 957580 99999 SCONE AIRPORT AS -32.033 150.833 223.0 19900201 20170923 957620 99999 TAMWORTH AIRPORT AWS AS -31.066999999999997 150.833 396.0 19921201 20140619 957640 99999 RIVERVIEW OBSERVATORY AS -33.833 151.15 40.0 19970101 20150109 957650 99999 SYDNEY OLYMPIC PARK AWS (ARCHERY CENTRE) AS -33.833 151.067 4.0 19960201 20170923 957660 99999 WEDDING CAKE WEST AS -33.83 151.267 6.0 19980301 20061212 957670 99999 LAKE MACQUARIE AWS AS -33.083 151.467 6.0 20080801 20170923 957680 99999 NORTH HEAD AS -33.817 151.3 90.0 19900201 19990831 957700 99999 NORAH HEAD LIGHTHOUSE AS -33.266999999999996 151.567 20.0 19950315 20170923 957710 99999 CESSNOCK AIRPORT AS -32.783 151.333 62.0 19970101 20170923 957720 99999 LOSTOCK DAM SITE AS -32.333 151.45 200.0 20010916 20170921 957730 99999 ARMIDALE AIRPORT AWS AS -30.533 151.61700000000002 1081.0 19970101 20170923 957740 99999 MANGROVE MOUNTAIN AWS AS -33.283 151.217 305.0 19970101 20170923 957750 99999 MAITLAND VISITORS CENTRE AS -32.75 151.567 5.0 20010915 20160707 957780 99999 FORSTER BEACH CARAVAN PARK AS -32.183 152.5 5.0 20010915 20170923 957790 99999 NELSON BAY (NELSON HEAD) AS -32.7 152.15 25.0 20030330 20170923 957840 99999 TAREE AIRPORT AWS AS -31.883000000000003 152.517 9.0 20010915 20170923 958050 99999 CAPE BORDA AWS AS -35.75 136.6 158.0 19750706 20170923 958060 99999 STENHOUSE BAY AS -35.283 136.933 44.0 19980301 20170923 958070 99999 KINGSTONE AERO AS -35.717 137.517 6.0 19970101 20170923 958100 99999 MOUNT CRAWFORD AS -34.7 138.933 395.0 19711231 20010905 958110 99999 ENCOUNTER BAY AS -35.55 138.6 8.0 20030401 20170922 958120 99999 MURRAY BRIDGE AS -35.117 139.267 33.0 19900201 20170922 958130 99999 KAROONDA AS -35.083 139.88299999999998 72.0 20030401 20170922 958140 99999 MENINGIE AS -35.7 139.333 3.0 19900201 20170922 958150 99999 MUNKORA AS -36.1 140.317 28.0 20030401 20170923 958160 99999 ROBE AIRFIELD AS -37.183 139.8 4.0 20040608 20170923 958170 99999 PENOLA AS -37.483000000000004 140.817 65.0 19900201 19940629 958180 99999 PALLAMANA AERODROME AS -35.067 139.233 46.0 20070228 20170923 958220 99999 DARTMOOR AS -37.917 141.267 51.0 20090801 20170923 958230 99999 PADTHAWAY SOUTH AS -36.65 140.517 35.0 20030401 20170922 958250 99999 CASTERTON AS -37.583 141.333 131.0 20050719 20170923 958270 99999 KANAGULK AS -37.117 141.8 189.0 20040824 20170923 958290 99999 NHILL AS -36.333 141.63299999999998 133.0 20040406 20081230 958310 99999 WALPEUP RESEARCH AS -35.117 142.0 105.0 20010915 20170923 958320 99999 EDENHOPE AIRPORT AS -37.016999999999996 141.267 155.0 20050719 20170923 958330 99999 KYABRAM (INST SUSTAINABLE AG) AS -36.333 145.067 104.0 19980302 20170923 958340 99999 HORSHAM POLKEMMET RD AS -36.65 142.067 141.0 19561231 20120407 958350 99999 LONGERENONG AS -36.667 142.3 133.0 19980301 20170923 958360 99999 TATURA INST SUSTAINABLE AG AS -36.433 145.267 114.0 20010701 20170923 958370 99999 RUTHERGLEN RESEARCH AS -36.1 146.5 175.0 19980301 20170923 958380 99999 EDI UPPER VINEYARD AS -36.733000000000004 146.467 365.0 19980301 20170920 958390 99999 HORSHAM AERODROME AS -36.667 142.167 134.0 20010810 20170923 958400 99999 WESTMERE AS -37.7 142.933 227.0 20070228 20170923 958420 99999 DONALD AS -36.383 143.0 118.0 19900201 20010414 958430 99999 STRATHBOGIE AS -36.85 145.733 502.0 20010921 20170922 958450 99999 MT GELLIBRAND AS -38.233000000000004 143.783 262.0 20010918 20170923 958509 99999 NEWBURY AS -37.42 144.28 768.1 19721231 19740831 958530 99999 CASTLEMAINE PRISON AS -37.067 144.233 330.0 19900201 20170921 958540 99999 ELLINBANK DAIRY AS -38.25 145.933 167.0 19980301 20000926 958550 99999 WEEAPROINAH AS -38.633 143.517 492.0 19900201 20120201 958569 99999 LORNEPIERHEAD AS -38.53 143.98 4.0 19691130 19821031 958589 99999 POINTLONSDALE LIGHT HOUSE AS -38.3 144.62 12.0 19611231 19821031 958629 99999 CAPE SCHANCK LIGHT HOUSE AS -38.5 144.88 79.3 19611231 19820929 958640 99999 ST KILDA HARBOUR (RMYS) AS -37.867 144.967 6.0 20110506 20170923 958660 99999 ESSENDON AIRPORT AS -37.733000000000004 144.9 79.0 19390331 20170923 958670 99999 SCORESBY RESEARCH INSTITUTE AS -37.867 145.25 80.0 19980301 20170923 958690 99999 DENILIQUIN AIRPORT AWS AS -35.567 144.95 95.0 20010918 20170923 958710 99999 LEMNOS AS -36.367 145.467 113.0 19900201 19960130 958720 99999 FAWKNER BEACON AS -37.95 144.933 17.0 20010701 20170923 958730 99999 LATROBE UNIVERSITY AS -37.717 145.05 83.0 20040422 20170922 958740 99999 VIEWBANK (ARPNSA) AS -37.733000000000004 145.1 66.0 20010715 20170923 958760 99999 TARRAWARRA AS -37.65 145.433 100.0 19900201 20030918 958810 99999 WONTHAGGI AS -38.6 145.583 42.0 19820805 20170922 958840 99999 OLSENS BRIDGE AS -38.483000000000004 146.317 183.0 19611231 19980225 958900 99999 YARRAM AIRPORT AS -38.567 146.75 18.0 20080429 20170923 958950 99999 COROWA AIRPORT AS -35.983000000000004 146.35 143.0 20010918 20170922 958960 99999 ALBURY AEROPORT AS -36.067 146.95 165.0 19941001 20170923 959010 99999 MT BAW BAW AS -37.833 146.267 1520.0 20010701 20170923 959040 99999 LAKES ENTRANCE AS -37.867 148.0 43.0 19650831 20170922 959060 99999 ADELONG AS -35.317 148.067 333.0 19900201 19950804 959070 99999 KHANCOBAN AS -36.217 148.13299999999998 337.0 19611231 20010515 959080 99999 THREDBO AS -36.5 148.3 1380.0 19940510 20170923 959090 99999 THREDBO AWS AS -36.5 148.283 1368.0 19900701 20170923 959110 99999 WAGGA WAGGA SCS AS -35.133 147.3 213.0 20030401 20040412 959120 99999 CHARLOTTE PASS (KOSCIUSKO CHALET) AS -36.433 148.333 1755.0 19970101 20150224 959130 99999 MT MOORNAPA AS -37.75 147.13299999999998 480.0 19941001 20170923 959160 99999 CABRAMURRA SMHEA AS -35.933 148.38299999999998 1483.0 19980301 20170923 959180 99999 ORBOST AS -37.683 148.467 63.0 20030401 20170923 959250 99999 MOUNT GININI AS -35.533 148.767 1760.0 20040921 20170923 959290 99999 MERIMBULA AIRPORT AS -36.917 149.9 2.0 20010918 20170923 959300 99999 MERIMBULA AIRPORT AS -36.9 149.9 2.0 19690731 19991020 959310 99999 BEGA AWS AS -36.667 149.817 42.0 19920801 20170923 959350 99999 NAROOMA RVCP AS -36.217 150.13299999999998 25.0 19930501 20170923 959360 99999 MELBOURNE (OLYMPIC PARK) AS -37.833 144.983 7.5 19661231 20170923 959370 99999 MORUYA AIRPORT AS -35.9 150.15 4.0 20010918 20170923 959400 99999 PT PERPENDICULAR AWS AS -35.083 150.8 84.0 20030401 20170923 959500 99999 WARATAH AS -41.45 145.517 615.0 19920930 20040330 959510 99999 QUEENSTOWN SOUTH AS -42.083 145.533 129.0 19681231 20021009 959520 99999 MOUNT READ AS -41.85 145.533 1120.0 19980301 20170923 959530 99999 STRATHGORDON VILLAGE AS -42.766999999999996 146.05 322.0 19691218 20151228 959540 99999 CAPE GRIM AS -40.667 144.683 561.0 19900201 20170923 959550 99999 LIAWENEE AS -41.883 146.667 1060.0 19860705 20030621 959560 99999 LUNCHERON HILL FORESTRY AS -41.15 145.15 340.0 19901210 20170923 959570 99999 WYNYARD AIRPORT AS -41.0 145.733 12.0 19910103 20170923 959580 99999 SCOTTS PEAK DAM AS -43.05 146.267 408.0 20010701 20170923 959590 99999 LIAWENEE AWS AS -41.9 146.667 1056.0 20030401 20170923 959600 99999 DEVONPORT AIRPORT AS -41.167 146.417 10.0 19910101 20170923 959610 99999 LOW ROCKY POINT (AWS) AS -42.983000000000004 145.5 35.0 19921001 20170923 959620 99999 WARRA AS -43.067 146.7 495.0 20041123 20170923 959640 99999 LOW HEAD AS -41.05 146.783 4.0 20010918 20170923 959650 99999 DEAL ISLAND AS -39.467 147.3 85.0 19900201 20010630 959660 99999 LAUNCESTON AIRPORT AS -41.55 147.217 168.0 20040824 20170923 959670 99999 CAPE BRUNY (CAPE BRUNY) AS -43.483000000000004 147.15 60.0 20010918 20170923 959680 99999 POWRANNA (TASMANIA FEEDLOT) AS -41.683 147.283 173.0 19920802 20081218 959690 99999 CRESSY RESEARCH STATION AS -41.733000000000004 147.083 150.0 19900401 20170923 959700 99999 TARRALEAH VILLAGE AS -42.3 146.45 585.0 19900401 20120831 959710 99999 GROVE RESEARCH STATION AS -42.983000000000004 147.067 63.0 19561231 20100209 959720 99999 CAMPANIA (KINKORA) AS -42.683 147.417 45.0 19900201 20170923 959730 99999 BRIDPORT (SEA VIEW VILLAS) AS -41.0 147.38299999999998 53.0 19970101 20170922 959740 99999 FINGAL (LEGGE STREET) AS -41.633 147.967 237.0 19900201 20170923 959750 99999 BULL BAY (LAURISTON) AS -43.1 147.36700000000002 46.0 19920801 20140712 959770 99999 GROVE (RESEARCH STATION) AS -42.983000000000004 147.067 65.0 20040824 20170923 959780 99999 LADY BARRON AERO AS -40.2 148.233 12.0 19941001 19960629 959790 99999 MT WELLINGTON AS -42.9 147.233 1260.5 19900501 20170923 959800 99999 SWAN ISLAND LIGHTHO AS -40.733000000000004 148.11700000000002 9.0 19900201 20011022 959810 99999 ST HELENS AERODROME AS -41.333 148.267 49.0 20010918 20170923 959820 99999 STORYS CREEK AWS AS -41.617 147.733 781.0 19900201 19980601 959830 99999 SCAMANDER AS -41.467 148.267 3.0 19740228 20130328 959840 99999 ORFORD AS -42.55 147.86700000000002 15.0 19900201 20170922 959850 99999 SWAN ISLAND AWS AS -40.717 148.11700000000002 15.0 20030401 20170923 959860 99999 TASMAN ISLAND AS -43.233000000000004 148.0 241.0 20030401 20170923 959880 99999 MARIA ISLAND (POINT LESUEUR) AS -42.667 148.017 28.0 20040824 20170923 959890 99999 BICHENO (COUNCIL DEPOT) AS -41.867 148.3 11.0 19650101 20170922 959950 99999 LORD HOWE ISLAND WINDY POINT AS -31.533 159.067 4.0 20120920 20170923 959970 99999 HEARD ISLAND (ATLAS COVE) AS -53.016999999999996 73.4 4.0 19980301 20121220 960010 99999 MAIMUN SALEH ID WIAA 5.874 95.34 113.0 19490101 20170923 960011 99999 SRI AMAN / SIMANGGAN MY WBGY 1.217 111.45 11.0 20040706 20170923 960090 99999 MALIKUS SALEH ID WITM 5.227 96.95 27.4 19770901 20170923 960110 99999 SULTAN ISKANDARMUDA ID WITT 5.524 95.42 19.8 19600201 20170923 960150 99999 MEULABOH/CUT NYAK ID WITC 4.25 96.117 90.0 19810201 20170923 960330 99999 MEDAN/BELAWAN ID 3.8 98.7 3.0 19840501 20170923 960350 99999 POLONIA ID WIMM 3.5580000000000003 98.67200000000001 34.7 19460201 20170923 960390 99999 TEBINGTINGGI ID 3.367 99.117 90.0 19490701 20011108 960450 99999 TAPAK TUAN TEUKU ID 3.467 97.3 75.0 19990402 19990602 960550 99999 PENATANG SIANTAR ID 2.95 99.06700000000001 400.0 20030721 20030721 960650 99999 TARUTUNG ID 2.017 98.95 1076.0 20010827 20020603 960730 99999 PINANG SORE ID WIMS 1.556 98.889 13.1 19530101 20170923 960750 99999 BINAKA ID WIMB 1.166 97.705 6.1 19790601 20170923 960870 99999 BATAM/HANG NADIM ID 1.117 104.117 24.0 19860103 20170923 960910 99999 KIJANG ID WIKN 0.9229999999999999 104.53200000000001 18.0 19570630 20170923 961090 99999 SULTAN SYARIF KASIM II ID WIBB 0.461 101.445 31.1 19560103 20170923 961450 99999 TAREMPA ID 3.2 106.25 3.0 19510101 20170923 961470 99999 RANAI ID WION 3.909 108.38799999999999 2.1 19730109 20170923 961630 99999 TABING ID WIMG -0.875 100.352 2.7 19480101 20170923 961635 99999 MINANGKABAU ID WIPT -0.787 100.281 5.5 20060710 20150307 961710 99999 RENGAT/JAPURA ARPT ID WIBJ -0.35 102.333 18.6 19570630 20170923 961790 99999 DABO ID WIKS -0.479 104.579 30.0 19570630 20170923 961950 99999 SULTAN THAHA ID WIPA -1.6380000000000001 103.64399999999999 25.0 19511113 20170923 962070 99999 KERINCI/DEPATI PARB ID WIPH -2.767 101.367 782.0 19801001 20170923 962210 99999 SULTAN MAHMUD BADARUDDIN II ID WIPP -2.898 104.70100000000001 14.9 19480201 20170923 962215 99999 DEPATI AMIR ID WIPK -2.162 106.139 33.2 20070812 20080426 962370 99999 PANGKALPINANG ID WIKK -2.17 106.13 34.0 19520901 20170923 962490 99999 H AS HANANDJOEDDIN ID WIKD -2.7460000000000004 107.755 51.0 19490106 20170923 962530 99999 FATMAWATI SOEKARNO ID WIPL -3.864 102.339 15.2 19570630 20170923 962730 99999 MENGGALA/ASTRA KSET ID WIAG -4.45 105.18299999999999 19.0 19491201 20050219 962950 99999 RADIN INTEN II ID WIIT -5.242000000000001 105.179 88.0 19730101 20170923 963150 99999 BRUNEI INTL BX WBSB 4.944 114.928 22.3 19810101 20170923 963154 99999 BRUNEI INTL BX 4.95 114.917 22.0 19771108 19820828 963230 99999 KUALA BELAIT BX 4.583 114.2 3.0 19960801 20170120 964130 99999 KUCHING INTL MY WBGG 1.485 110.34700000000001 27.1 19490112 20170923 964210 99999 SIBU MY WBGS 2.262 111.985 37.2 19610831 20170923 964410 99999 BINTULU MY WBGB 3.1239999999999997 113.02 22.6 19490108 20170923 964490 99999 MIRI MY WBGR 4.322 113.98700000000001 18.0 19490111 20170923 964650 99999 LABUAN MY WBKL 5.301 115.25 30.8 19490329 20170923 964710 99999 KOTA KINABALU INTL MY WBKK 5.937 116.051 3.0 19490120 20170923 964770 99999 KUDAT MY WBKT 6.917000000000001 116.833 5.0 19890614 20170923 964810 99999 TAWAU MY WBKW 4.313 118.12200000000001 17.4 19790702 20170923 964910 99999 SANDAKAN MY WBKS 5.901 118.059 14.0 19490112 20170923 965050 99999 LONGBAWAN/JUVAI ID WRLB 3.733 115.68299999999999 550.0 19821001 20170923 965070 99999 BOGUS INDONESIA ID 19930501 19960909 965090 99999 TARAKAN/JUWATA ID WAQQ 3.333 117.56700000000001 6.0 19480101 20170923 965250 99999 TANJUNG SELOR ID WRLG 2.85 117.333 50.0 19881001 20170923 965290 99999 KALIMARU ID WRLK 2.155 117.432 18.0 19950801 20160325 965330 99999 SINGKAWANG II ID WIOI 1.083 109.667 38.0 19520114 20050217 965350 99999 PALOH ID 1.767 109.3 15.0 19830401 20170923 965570 99999 NANGAPINOH ID -0.35 111.78299999999999 37.0 19821101 20170923 965590 99999 SUSILO ID WIOS 0.064 111.473 29.9 19510101 20170923 965650 99999 PUTUSSIBAU/PAGSUMA ID 0.883 112.93299999999999 0.0 19990314 20170923 965810 99999 SUPADIO ID WIOO -0.151 109.404 3.0 19480101 20170923 965830 99999 PONTIANAK CQ 0.0 109.333 4.0 19490103 19650930 965950 99999 MUARATEWE/BERINGIN ID WRBM -0.95 114.9 60.0 19510101 20170923 965970 99999 LONGIRAM ID -1.633 114.833 25.0 20020604 20020604 966070 99999 TEMINDUNG ID WRLS -0.485 117.15700000000001 10.0 19790601 20170923 966150 99999 RAHADI USMAN ID WIOK -1.817 109.963 14.0 19801001 20170923 966330 99999 SEPINGGAN ID WALL -1.268 116.89399999999999 3.7 19471101 20170923 966334 99999 ACHMAD YANI ID WARS -6.973 110.375 3.0 20070704 20150304 966335 99999 ADI SUTJIPTO ID WARJ -7.787999999999999 110.432 106.7 20061121 20120924 966336 99999 ADISUMARMO INTL ID WAHQ -7.5 110.75 127.4 20061122 20170923 966450 99999 ISKANDAR ID WRBI -2.705 111.67299999999999 25.0 19520101 20170923 966510 99999 SAMPIT/HAJI HASAN ID -2.517 112.95 27.0 19460101 20020531 966550 99999 TJILIK RIWUT ID WRBP -2.225 113.943 26.0 19771001 20170923 966850 99999 SYAMSUDIN NOOR ID WAOO -3.4419999999999997 114.76299999999999 20.1 19490103 20170923 966950 99999 KOTABARU/SETAGEN ID WRBK -3.4 116.21700000000001 18.0 19460801 20170923 967370 99999 SERANG ID -6.117000000000001 106.133 40.0 19420101 20170923 967390 99999 TANGERANG/BUDIARTO ARPT ID WIRR -6.3 106.56700000000001 46.0 19521101 20170923 967410 99999 JAKARTA/TANJUNG PRIOK ID -6.1 106.867 2.0 19730104 20170923 967429 99999 SOEKARNO HATA INTL ID WIII -6.15 106.71700000000001 0.0 19851201 19900701 967430 99999 JAKARTA/KEMAYORAN ID WIID -6.15 106.85 5.0 19490101 19870330 967450 99999 JAKARTA/OBSERVATORY ID -6.183 106.833 8.0 19420101 20170923 967470 99999 HALIM PERDANAKUSUMA INTL ID WIIH -6.267 106.891 26.0 19460101 20060718 967490 99999 SOEKARNO HATTA INTL ID WIII -6.126 106.656 10.4 19850402 20170923 967495 99999 HALIM PERDANAKUSUMA INTL ID WIHH -6.267 106.891 25.6 20050105 20170923 967510 99999 BOGOR/CITEKO ID -6.7 106.93299999999999 -999.9 19930401 20170923 967530 99999 BOGOR/DERMAGA ID -6.5 106.75 250.0 19730313 20050219 967550 99999 BOGOR/ATANG SANJAYA ID -6.55 106.9 171.0 19500401 20050218 967730 99999 KALIJATI ID WIIK -6.55 107.667 110.0 19510208 20050219 967810 99999 HUSEIN SASTRANEGARA ID WIIB -6.901 107.57600000000001 740.0 19500403 20170923 967815 99999 HUSEIN SASTRANEGARA ID WICC -6.901 107.57600000000001 742.5 20071016 20130224 967830 99999 BANDUNG ID -6.882999999999999 107.6 791.0 19740801 20050219 967910 99999 CIREBON/JATIWANGI ID -6.75 108.26700000000001 50.0 19420101 20170923 967970 99999 TEGAL ID -6.85 109.15 10.0 19510101 20170923 968010 99999 CIBEUREUM ID WIAM -7.346 108.24700000000001 359.0 19420101 20050219 968050 99999 CILACAP ID WAHL -7.733 109.01700000000001 6.0 19510301 20170923 968370 99999 SEMARANG ID -6.9670000000000005 110.417 3.0 19760302 20170923 968390 99999 ACHMAD YANI ID WIIS -6.973 110.375 3.0 19490101 20160325 968450 99999 ADI SUMARMO WIRYOKUSUMO ID WRSQ -7.516 110.757 132.0 19610106 20050219 968530 99999 ADI SUTJIPTO ID WIIJ -7.787999999999999 110.432 109.0 19490101 20050219 968570 99999 PACITAN ID -8.2 111.05 1.0 19810501 20050219 968810 99999 ISWAHYUDI ID WIAR -7.6160000000000005 111.434 113.0 19560102 20050218 969250 99999 SANGKAPURA (BAWEAN IS.) ID -5.85 112.633 3.0 19530101 20170923 969330 99999 SURABAYA/PERAK ID WRSP -7.2170000000000005 112.71700000000001 3.0 19490101 20170923 969350 99999 SURABAYA JUANDA ID WRSJ -7.38 112.787 3.0 19640909 20170923 969355 99999 JUANDA ID WARR -7.38 112.787 2.7 20050228 20170923 969370 99999 SURABAYA/GEDANGAN ID WRSS -7.2170000000000005 113.71700000000001 3.0 19801001 20170923 969470 99999 ABDUL RACHMAN SALEH ID WIAS -7.926 112.714 539.0 19491001 20050219 969730 99999 KALIANGET (MADURA IS) ID -7.05 113.96700000000001 3.0 19750918 20170923 969870 99999 BANYUWANGI ID -8.217 114.383 5.0 19560101 20170923 969950 99999 CHRISTMAS ISLAND KT YPXM -10.450999999999999 105.69 279.2 19521001 20170923 969960 99999 COCOS KEELING ISLAND CK YPCC -12.187999999999999 96.834 3.0 19490103 20170923 970080 99999 NAHA ID WAMH 3.6830000000000003 125.52799999999999 4.9 19460601 20170923 970100 99999 ULU SIAU ID 2.667 125.333 50.0 19510101 19621231 970140 99999 SAM RATULANGI ID WAMM 1.5490000000000002 124.926 80.5 19471001 20170923 970160 99999 BITUNG ID 1.433 125.18299999999999 3.0 19790601 20170923 970280 99999 TOLI-TOLI/LALOS ID WAMI 1.0170000000000001 120.8 2.0 19490301 20170923 970480 99999 JALALUDDIN ID WAMG 0.637 122.85 32.0 19510101 20170923 970720 99999 PALU/MUTIARA ID -0.6829999999999999 119.73299999999999 6.0 19460601 20170923 970860 99999 BUBUNG ID WAMW -1.0390000000000001 122.772 17.1 19460701 20170923 970960 99999 KASIGUNCU ID WAMP -1.4169999999999998 120.65799999999999 53.0 19490301 20170923 971000 99999 KOLONDALE ID -2.0 121.31700000000001 2.0 19981225 20020420 971140 99999 SOROAKO ID WAAS -2.529 121.35700000000001 434.0 19990103 20050915 971200 99999 MAJENE ID -2.5 119.0 8.0 19830701 20170923 971260 99999 MASAMBA/ANDI JEMMA ID WAWM -2.55 120.367 50.0 19830701 20170923 971420 99999 KOLAKA/POMALA ID -4.3 121.53299999999999 3.0 20010816 20170923 971460 99999 WOLTER MONGINSIDI ID WAAU -4.082 122.417 51.0 19461101 20170923 971800 99999 HASANUDDIN ID WAAA -5.062 119.554 14.3 19470201 20170923 971820 99999 UJANG PANDANG/PAOTERE ID -5.067 119.55 -999.9 19840901 20170923 971840 99999 PANAKUKANG ID -5.183 119.48299999999999 15.0 19910801 20120426 971920 99999 BAU-BAU/BETO AMBIRI ID WAAB -5.4670000000000005 122.617 2.0 19800501 20170923 971925 99999 BALI INTL ID WADD -8.748 115.167 4.3 20050104 20170923 972200 99999 SINGARADJA ID -8.117 115.1 40.0 19520101 19640430 972300 99999 DENPASAR NGURAH RAI ID WRRR -8.749 115.167 1.0 19490101 20170923 972400 99999 MATARAM-LOMBOK INTL AIRPORT ID WADL -8.75 116.26700000000001 96.0 19621004 20170923 972600 99999 SUMBAWA BESAR ID WRRS -8.488999999999999 117.412 5.0 19620201 20170923 972700 99999 MUHAMMAD SALAHUDDIN ID WRRB -8.54 118.68700000000001 22.0 19820101 20170923 972840 99999 RUTENG/SATAR TACIK ID -8.633 120.45 1170.0 20011108 20170923 972900 99999 ENDEH/IPI ID -8.8 121.6 3.0 20020101 20020609 973000 99999 WAI OTI ID WRKC -8.641 122.23700000000001 3.0 19750701 20170923 973100 99999 LARANTUKA/GEWAYENTA ID WRKL -8.267000000000001 122.96700000000001 9.0 19830502 20170923 973200 99999 ALOR/MALI/KALABAHI ID WRKM -8.217 124.56700000000001 12.0 19460101 20170923 973300 99999 WONRELI ID -8.067 127.2 22.0 19480101 19640531 973400 99999 MAU HAU ID WRRW -9.669 120.302 12.0 19470101 20170923 973720 99999 EL TARI ID WRKK -10.172 123.671 105.0 19461101 20170923 973725 99999 EL TARI ID WATT -10.172 123.671 102.1 20080713 20170923 973780 99999 ROTE/BAA/LEKUNIK ID WRKR -10.732999999999999 123.06700000000001 1.0 19460601 20170923 973785 99999 GEWAYENTANA ID WATL -8.267000000000001 123.0 3.1 20120625 20140905 973800 99999 SABU/TARDAMU ID WRKS -10.5 121.833 26.0 19801001 20170923 973850 99999 OE-CUSSE/TIMOR ISL ID WPOC -9.2 124.367 5.0 19601003 20000229 973880 99999 DILLI/COMORO TT -8.55 126.56700000000001 0.0 19821101 19990902 973900 99999 PRESIDENTE NICOLAU LOBATO INTL TT WPDL -8.547 125.525 7.6 19570630 20110419 973940 99999 VIQUEQUE TT -8.867 126.367 47.0 19611101 19960911 973950 99999 CAKUNG TT WPEC -8.486 126.399 541.6 19601003 19990905 974040 99999 MOROTAI/PITU ID 2.05 129.317 15.0 19440916 19950401 974060 99999 GALELA/GAMARMALAMU ID WAMA 1.817 127.833 8.0 19830502 20170923 974080 99999 TOBELO ID 1.7169999999999999 128.0 2.0 19510101 19641231 974100 99999 KAU ID 1.167 127.883 5.0 20020612 20020612 974280 99999 SAHU SOUTHEAST ID 1.133 127.5 16.0 19510201 19651231 974300 99999 BABULLAH ID WAMT 0.831 127.381 14.9 19510101 20170923 974500 99999 MAPIA ISLAND ID 0.833 134.3 3.0 19441127 19630331 974600 99999 LABUHA/TALIABU ID WAPH -1.617 124.55 3.0 19510101 20170923 975000 99999 SORONG EAST ID -0.867 131.267 27.0 19490106 19531121 975020 99999 JEFMAN ID WASS -0.9259999999999999 131.121 3.0 19570630 20170923 975300 99999 RENDANI ID WASR -0.892 134.049 7.0 19570630 20170923 975600 99999 FRANS KAISIEPO ID WABB -1.19 136.108 14.0 19441104 20170923 975700 99999 SERUI/YENDOSA ID WABO -1.867 136.233 3.0 19770521 20170923 975800 99999 SARMI/ORAI ID WAJI -1.8330000000000002 138.717 3.0 19440517 20170923 976000 99999 SANANA ID WAPN -2.083 126.0 2.0 19510101 20170923 976300 99999 FAK-FAK/TOREA ID WASF -2.883 132.25 130.0 19570630 20170923 976820 99999 NABIRE ID WABI -3.3680000000000003 135.496 6.1 19741202 20170923 976860 99999 WAMENA ID WAJW -4.103 138.957 1549.9 19570630 20170923 976900 99999 SENTANI ID WAJJ -2.577 140.516 88.1 19440531 20170923 976980 99999 JAYAPURA/DOK II ID -2.367 140.717 3.0 19781102 20170923 977000 99999 NAMLEA/BURU ISLAND ID WAPR -3.25 127.083 20.0 19830701 20170923 977220 99999 AMAHAI ID WAPA -3.35 128.88299999999998 10.0 19801001 20170923 977240 99999 PATTIMURA ID WAPP -3.71 128.089 10.1 19490101 20170923 977480 99999 GESER ID -3.8 130.833 3.0 19830201 20170923 977600 99999 KAIMANA ID WASK -3.645 133.696 5.8 19570630 20170923 977800 99999 ENAROTALI ID WABT -3.917 136.36700000000002 1770.0 19570702 20170923 977895 99999 20040713 20040715 977900 99999 NEIRA ID -4.533 129.9 4.0 19860501 20170923 977960 99999 KOKONAO/TIMUKA ID WABN -4.717 136.433 3.0 19570701 20170923 978100 99999 TUAL/DUMATUBUN ID -5.683 132.75 12.0 19570630 20170923 978760 99999 TANAH MERAH ID WAKT -6.1 140.3 16.0 19440424 20170923 979000 99999 SAUMLAKI ID WAPI -7.983 131.3 24.0 19540401 20170923 979800 99999 MOPAH ID WAKK -8.52 140.418 3.0 19421121 20170923 981320 99999 ITBAYAT RP 20.8 121.85 124.0 19730101 20170923 981330 99999 CALAYAN RP 19.267 121.46700000000001 13.0 19490826 20170923 981340 99999 BASCO RADAR RP 20.433 121.96700000000001 167.0 20020201 20170923 981350 99999 BASCO RP RPUO 20.451 121.98 88.7 19490101 20070202 981360 99999 BASCO RADAR RP 20.433 121.95 167.0 19990419 20020513 982220 99999 VIGAN RP RPUQ 17.555 120.35600000000001 4.9 19490101 20170923 982230 99999 LAOAG INTL RP RPLI 18.178 120.53200000000001 7.6 19450331 20170923 982310 99999 APARRI RADAR RP 18.367 121.617 -999.9 19990327 20000512 982320 99999 APARRI RP RPUA 18.367 121.633 3.0 19450804 20170923 982330 99999 TUGUEGARAO RP RPUT 17.637999999999998 121.73100000000001 21.3 19490101 20170923 983210 99999 STO. TOMAS RP 16.35 120.56700000000001 2256.0 19800818 20020803 983220 99999 CROW VALLEY GUNNERY RANGE RP 15.317 120.383 161.0 19750212 20030102 983230 99999 NAULA POINT RP 15.7 119.96700000000001 5.0 19730608 20050615 983240 99999 IBA/LUZON ISLAND RP RPUI 15.333 119.96700000000001 5.0 19490104 20170923 983250 99999 DAGUPAN RP RPUG 16.083 120.35 2.0 19450119 20170923 983260 99999 BASA AB RP RPUF 14.982999999999999 120.48299999999999 46.0 19450419 20030222 983270 99999 CLARK INTL RP RPLC 15.186 120.56 147.5 19450214 20170923 983275 99999 CLARK INTL RP 15.183 120.55 151.0 20001119 20120418 983280 99999 BAGUIO RP RPUB 16.375 120.62 1295.7 19490101 20170923 983290 99999 MUNOZ RP 15.732999999999999 120.93299999999999 76.0 19490101 20041210 983300 99999 CABANATUAN RP 15.467 120.95 32.0 19900901 20170923 983330 99999 BALER RP RPUR 15.73 121.5 32.9 19490101 20051007 983340 99999 BALER RADAR RP 15.75 121.633 178.0 19950402 20170923 983360 99999 CASIGURAN RP 16.267 122.133 4.0 19490101 20170923 984235 99999 MAMBURAO RP RPUM 13.217 120.6 4.0 19841128 19850111 984250 99999 MANILA RP 14.583 120.98299999999999 13.0 19780705 20170923 984260 41231 SUBIC BAY WEATHER RP RPLB 14.8 120.26700000000001 19.0 19450209 20170923 984260 99999 SUBIC BAY INTL RP RPLB 14.794 120.271 19.5 20000101 20071231 984270 99999 TAYABAS RP 14.017000000000001 121.6 158.0 19730101 20170923 984280 41224 SANGLEY POINT RP RPLS 14.5 120.9 4.0 19460930 19991231 984280 99999 SANGLEY POINT AB RP RPLS 14.495 120.904 2.4 20000101 20170923 984290 99999 NINOY AQUINO INTL RP RPLL 14.509 121.02 22.9 19450331 20170923 984295 99999 NICHOLS AB RP RPAF 14.517000000000001 121.01700000000001 23.0 19730620 19850916 984300 99999 SCIENCE GARDEN RP 14.65 121.05 46.0 19450228 20170923 984310 99999 CALAPAN/MINDORO ISL RP RPUK 13.417 121.18299999999999 41.0 19490112 20170923 984320 99999 AMBULONG RP 14.083 121.05 11.0 19490205 20170923 984330 99999 TANAY RP 14.583 121.367 651.0 19490101 20170923 984340 99999 INFANTA RP 14.75 121.65 7.0 19490101 20170923 984350 99999 ALABAT RP 14.1 122.01700000000001 5.0 19730113 20170923 984360 99999 FERNANDO AB RP RPUL 13.955 121.125 371.9 20020601 20020601 984370 99999 SAN FRANCISCO RP 13.367 122.51700000000001 45.0 19490102 20020801 984375 99999 MARINDUQUE RP RPUW 13.360999999999999 121.82600000000001 9.8 19450725 19910314 984380 99999 JOMALIG / QUEZON RP RPLJ 14.7 122.333 -999.9 20020721 20050225 984390 99999 DAET/BAGASBAS RP 14.117 122.95 10.0 19490101 19830309 984400 99999 DAET RP RPUD 14.129000000000001 122.98 3.0 19740201 20170923 984420 99999 PILI RP 13.583 123.26700000000001 35.0 19911201 20081128 984425 99999 NAGA RP RPUN 13.585 123.27 43.3 19840924 19910106 984430 99999 20040826 20040826 984440 99999 LEGAZPI RP RPLP 13.157 123.74600000000001 20.1 19450503 20170923 984460 99999 VIRAC RP RPUV 13.575999999999999 124.206 36.9 19490102 20170923 984470 99999 CATANDUANES RADAR RP 13.654000000000002 124.34100000000001 233.0 19730101 20120228 985241 99999 BUSUANGA RP RPVV 12.120999999999999 120.1 45.1 20161113 20161113 985260 99999 CORON RP 12.217 120.2 60.0 19490121 20170923 985310 99999 SAN JOSE RP RPUH 12.362 121.04700000000001 4.3 19450717 20170923 985360 99999 ROMBLON RP 12.583 122.28299999999999 47.0 19490101 20170923 985361 41231 CUBI POINT NAVAL AIR STATION RP RPMB 14.8 120.26700000000001 18.3 20160517 20160517 985370 99999 KALIBO/AKLAN RP RPVK 11.683 122.383 6.0 20050914 20170213 985375 99999 KALIBO/PANAY ISLAND RP RPVK 11.683 122.367 7.0 19841210 19850111 985380 99999 ROXAS RP RPVR 11.597999999999999 122.75200000000001 3.0 19490126 20170923 985430 99999 MASBATE RP RPVJ 12.369000000000002 123.62899999999999 7.9 19490104 20170923 985450 99999 CALBAYOG/WESTERN RP RPVC 12.067 124.53299999999999 3.0 20101030 20161225 985455 99999 CALBAYOG/SAMAR ISL RP RPVC 12.083 124.55 3.0 19841210 19850111 985460 99999 CATARMAN RP RPVF 12.502 124.63600000000001 1.8 19490101 20170923 985480 99999 CATBALOGAN RP RPVY 11.783 124.883 5.0 19730101 20170923 985500 99999 DANIEL Z ROMUALDEZ RP RPVA 11.228 125.02799999999999 3.0 19441022 20170915 985530 99999 BORONGAN RP RPVW 11.667 125.45 3.0 19590101 20170923 985580 99999 GUIUAN RP RPVG 11.036 125.742 2.1 19740103 20170923 986020 99999 NANSHAN ISLAND RP 10.72 115.82 0.0 19830813 20101103 986180 99999 PUERTO PRINCESA RP RPVP 9.742 118.759 21.6 19450331 20170923 986300 99999 CUYO RP RPLO 10.85 121.0 4.0 19490106 20170923 986370 99999 ILOILO RP RPVI 10.713 122.541 8.2 19450602 20160509 986395 99999 BACOLOD/NEGROS ISL RP RPVB 10.65 122.93299999999999 6.0 19840926 19850111 986420 99999 DUMAGUETE RP RPVD 9.334 123.3 4.6 19490101 20170923 986440 99999 TAGBILARAN RP RPVT 9.664 123.853 11.6 19730101 20170923 986445 99999 MEDILLIN-CEBU RP RPVN 11.16 123.95 15.0 20110404 20170602 986450 99999 LAHUG RP 10.333 123.9 35.0 19490101 19780802 986460 99999 MACTAN CEBU INTL RP RPVM 10.308 123.979 9.4 19650731 20170923 986480 99999 MAASIN RP RPSM 10.133 124.867 72.0 19730727 20170923 986530 99999 SURIGAO RP RPMS 9.783 125.48299999999999 55.0 19490102 20170923 986545 99999 TANDAG RP RPMW 9.072000000000001 126.171 4.9 19841210 19850111 987410 99999 DIPOLOG RP RPMG 8.601 123.334 3.7 19590101 20170923 987420 99999 PAGADIAN RP RPMP 7.827000000000001 123.458 1.5 20050726 20050726 987425 99999 PAGADIAN/MINDANAO RP RPWP 7.832999999999999 123.45 2.0 19840926 19900921 987430 99999 ILIGAN RP RPMI 8.13 124.215 396.2 20050203 20050203 987445 99999 OZAMIS/MISAMIS RP RPWI 8.167 123.85 10.0 19840926 19850111 987455 99999 MALABANG RP RPWM 7.617000000000001 124.05 8.0 19440914 19840926 987460 99999 COTOBATO RP RPMC 7.167000000000001 124.21700000000001 62.0 19490101 20170923 987461 99999 COTABATO/MINDANAO RP RPWC 7.233 124.25 17.0 19840912 19850111 987470 99999 LUMBIA AIRPORT RP 8.417 124.617 188.0 19770401 20170915 987480 99999 CAGAYAN DE ORO RP RPML 8.482999999999999 124.65 6.0 19490101 20160215 987510 99999 MALAYBALAY RP RPMY 8.15 125.133 627.0 19490101 20170923 987520 99999 BUTUAN RP RPME 8.95 125.48299999999999 46.0 19810101 20170923 987530 99999 FRANCISCO BANGOY INTL RP RPMD 7.126 125.646 29.3 19740601 20170923 987540 99999 DAVAO RP 7.067 125.6 19.0 19490101 19751111 987550 99999 HINATUAN RP 8.367 126.333 3.0 19491001 20170923 987560 99999 SURIGAO DEL SUR RP 9.217 126.31700000000001 3.0 20050312 20050312 988300 99999 JOLO RP RPMJ 6.05 121.0 13.0 19490101 19900921 988360 99999 ZAMBOANGA INTL RP RPMZ 6.922000000000001 122.06 10.1 19450312 20170923 988485 99999 ALLAH VALLEY RP RPMA 6.367000000000001 124.751 200.9 19840926 19850111 988510 41231 CUBI POINT NAVAL AIR STATION RP RPMB 14.8 120.26700000000001 18.3 20160706 20170803 988510 99999 GEN. SANTOS RP RPMB 6.05 125.1 133.0 19730101 20170923 990010 99999 CARRIZAL 10.35 -65.017 19600101 19661231 990046 99999 ENVIRONM BUOY 62063 FR 46.12 -2.07 0.0 20050814 20060611 990048 99999 ENVIRONM BUOY 62059 FR 49.117 -1.1 0.0 20060111 20060111 990055 99999 BUOY 32321 / ARGOS 11116 0.0 -94.98299999999999 3.0 20130404 20170923 990056 99999 BUOY 32323 / ARGOS 11120 0.0 -109.9 3.0 20130331 20170922 990058 99999 BUOY 51011 / ARGOS 17652 -0.183 -124.4 3.0 20140908 20170923 990060 99999 BUOY 51311 / ARGOS 6471 0.1 -140.0 3.0 20130501 20170923 990061 99999 BUOY 52079 / ARGOS 3781 0.1 147.0 3.0 19291001 20161102 990062 99999 ENVIRONM BUOY 52081 US 0.0 138.0 0.0 20041227 20041227 990063 99999 BUOY 52085 / ARGOS 7883 0.0 156.0 3.0 20130501 20170923 990065 99999 BUOY 52321 / ARGOS 989 0.0 165.0 3.0 20130819 20170923 990066 99999 ENVIRON BUOY 52303 0.0 170.0 0.0 20041103 20051219 990067 99999 ENVIRON BUOY 52304 0.0 161.0 0.0 20050905 20051011 990068 99999 ENVIRON BUOY 52305 0.0 154.0 0.0 20050228 20050706 990074 99999 ATLAS BUOY 15002 / JAVA 0.0 -10.0 3.0 20130501 20170923 990075 99999 ENVIRON BUOY 15004 0.0 -23.0 0.0 20041001 20041001 990076 99999 ENVIRON BUOY 31001 0.0 -35.0 0.0 20041110 20100128 990077 99999 MOORED BUOY 23001 / ARGOS 2315 0.1 80.5 3.0 20130711 20170923 990080 99999 MOORED BUOY 43011 12.0 -95.0 0.0 19730102 19960304 990093 99999 ENVIRONM BUOY 52001 US 2.0 165.0 0.0 20050130 20170923 990095 99999 BUOY 52077 / ARGOS 9793 2.0 147.0 3.0 20130501 20161101 990096 99999 BUOY 52080 / ARGOS 27389 2.1 138.1 3.0 20130501 20161207 990097 99999 BUOY 52082 / ARGOS 9426 2.0 156.0 3.0 20130501 20161212 990100 99999 ENVIRONM BUOY 52301 2.0 147.0 0.0 20040909 20111007 990110 99999 BUOY 52088 / ARGOS 9771 -2.0 156.0 3.0 20130501 20161216 990113 99999 ENVIRON BUOY 15005 -2.0 -10.0 0.0 20040923 20040923 990115 99999 ATLAS BUOY / FREVO US 4.0 -38.0 0.0 20041016 20160811 990116 99999 ENVIRON BUOY 32303 5.0 -95.0 0.0 20050813 20050813 990123 99999 BUOY 52073 / ARGOS 27394 4.9 137.2 3.0 20130501 20161102 990125 99999 BUOY 52078 / ARGOS 7898 5.0 147.0 3.0 20130501 20140217 990126 99999 BUOY 52084 / ARGOS 3595 5.0 156.0 3.0 20130501 20150101 990131 99999 ENVIRON BUOY 32304 -5.0 -95.0 0.0 20050705 20050705 990138 99999 BUOY 52086 / ARGOS 3593 -5.0 156.0 3.0 20130501 20170406 990142 99999 ATLAS BUOY 15006 / VALSE -6.0 -10.0 3.0 20130501 20170923 990153 99999 BUOY 52083 / ARGOS 28868 8.0 155.9 3.0 20130501 20140311 990154 99999 BUOY 52087 / ARGOS 1132 7.6 136.7 3.0 20130501 20170923 990157 99999 ATLAS BUOY 13009 / LAMBADA 8.0 -38.0 3.0 20130501 20160513 990158 99999 BUOY 32305 / ARGOS 15809 -7.983 -95.26700000000001 3.0 20170624 20170923 990166 99999 BUOY 62094 / M5 SOUTH EAST US 51.65 -6.7 5.0 20050228 20151110 990170 99999 SHIP C7L/LIMA US 57.0 -20.0 0.0 19750716 20020601 990173 99999 DATA BUOY 46032 US 54.2 -165.8 3.0 20050227 20051014 990174 99999 BUOY 51028 KR 0.0 -153.91299999999998 0.0 20040907 20090311 990177 99999 DATA BUOY 46017 US 60.3 -172.3 3.0 20050221 20050727 990179 99999 NORTH MID GULF 110NM SOUTH OF GRAND ISLE US 27.5 -90.46 0.0 20040907 20050316 990180 99999 SHIP C7M/MIKE US 66.0 2.0 10.0 19730101 20060207 990181 99999 DATA BUOY 46008 US 57.1 -151.7 10.0 20041129 20050812 990182 99999 DATA BUOY 46040 US 44.8 -124.3 3.0 20050619 20050619 990200 99999 AMI -RESEARCH VESSE 71.5 19.0 0.0 20160202 20160212 990210 99999 DISCONTINUED 810622 CA C7P 50.0 -145.0 0.0 19730101 19810624 990230 99999 SHIP C7R/ROMEO US 47.0 -17.0 0.0 19750716 20020303 990250 99999 SHIP C7T/TANGO US 29.0 135.017 0.0 19750822 19970607 990900 99999 FORMER MIKE 66.0 2.0 0.0 20160202 20160212 990920 99999 FIXED US 9.2 101.4 0.0 20010123 20130430 991180 99999 RUSSIAN ICE ISLAND US 0.0 0.0 0.0 20011104 20011104 991190 99999 RUSSIAN ICE ISLAND US 0.0 0.0 0.0 20020329 20020329 991200 99999 RUSSIAN ICE ISLAND US 0.0 0.0 0.0 20020516 20020516 992000 99999 DATA BUOY 42037 US 24.5 -81.4 3.0 19950114 19961119 992010 99999 DRIFTING NOMAD BUOY 41001 19771002 20170825 992011 99999 WILMINGTON HARBOR US NC 33.721 -78.015 3.0 20130207 20170923 992012 99999 OREGON INLET US NC 35.75 -75.33 3.0 20130206 20170923 992013 99999 HILO US HI 19.78 -154.97 3.0 20130206 20170923 992014 99999 CAPE CHARLES US VA 37.023 -75.81 3.0 20130206 20170714 992015 99999 SOUTH OF ST THOMAS VQ 18.257 -65.00399999999999 3.0 20130311 20160812 992016 99999 RINCON RQ 18.375999999999998 -67.28 3.0 20130206 20170921 992017 99999 RITIDIAN POINT GQ 13.683 144.812 3.0 20130206 20170923 992020 99999 NW HAWAII 170 NM WEST NORTHWEST OF KAUAI US 23.43 -162.21 0.0 19810625 20170923 992022 99999 CARR INLET US WA 47.28 -122.73 3.0 20130218 20170923 992023 99999 TANAPAG CQ 15.267000000000001 145.662 3.0 20130206 20160824 992024 99999 WEST INDIES 15.85 -57.467 3.0 20130206 20170923 992025 99999 PAUWELA MAUI US HI 21.019000000000002 -156.42700000000002 3.0 20130206 20170923 992026 99999 BUOY 48400 50.06100000000001 -144.90200000000002 3.0 20130413 20140619 992027 99999 BUOY 53005 -8.017999999999999 80.45 3.0 20130413 20161102 992028 99999 BUOY 53006 -11.981 80.546 3.0 20130413 20150811 992029 99999 BUOY 62170 51.4 2.0 3.0 20130423 20170923 992030 99999 GULF OF AK 88NM SOUTH OF KODIAK AK US 56.3 -148.17 0.0 19760916 20170923 992031 99999 BUOY 63056 59.7 1.6 3.0 20130206 20170923 992032 99999 BUOY 63057 59.2 1.5 3.0 20130206 20170923 992033 99999 BUOY 41060 14.7 -50.9 3.0 20130206 20170904 992034 99999 BUOY 41061 24.6 -38.0 3.0 20130206 20131002 992035 99999 BUOY 51207 21.483 -157.75 0.0 20130206 20170817 992036 99999 BUOY 55085 -49.668 178.81 3.0 20130413 20140105 992037 99999 BUOY 62149 53.7 1.3 3.0 20130206 20170923 992039 99999 BUOY 62153 57.3 2.0 3.0 20130206 20170923 992040 99999 MID GULF 180 NM SOUTH OF SOUTHWEST PASS US 25.84 -89.66 0.0 19771021 20170923 992041 99999 BUOY 62154 56.4 2.2 3.0 20130206 20170923 992042 99999 BUOY 62155 57.7 0.7 3.0 20130206 20170923 992043 99999 BUOY 64041 60.7 -2.6 3.0 20130206 20170923 992044 99999 BUOY 66021 54.9 13.9 3.0 20130206 20170806 992050 99999 CALIFORNIA - 357NM WEST OF SAN FRANCISCO US 37.98 -130.0 0.0 19771026 20170923 992060 99999 ENVIRONM BUOY 46041 US DB20 47.4 -124.5 3.0 19790914 19970303 992070 99999 HOTEL 200NM EAST OF CAPE MAY NJ US 38.47 -70.56 0.0 19771026 20090518 992080 99999 BUZZARD'S BAY US 41.4 -71.08 12.0 19800120 20060226 992090 99999 MID SUPERIOR 60NM NORTH NORTHEAST HANCOC US 48.07 -87.78 183.0 19790815 20170923 992100 99999 DATA BUOY 44019 US 36.4 -75.2 3.0 19810630 20050607 992110 99999 E SUPERIOR 200NM EAST NORTHEAST OF HANCO US 47.57 -86.55 183.0 19801029 20170923 992120 99999 BILOXI 22 NM SOUTH-SOUTHEAST OF BILOXI US 30.09 -88.77 0.0 19810214 20091209 992130 99999 W SUPERIOR 48NM NORTH OF IRONWOOD MI US 47.35 -89.83 183.0 19820330 20170923 992140 99999 S MICHIGAN 43NM EAST SOUTHEAST OF MILWAU US 42.68 -87.03 176.4 19810715 20170923 992150 99999 S HATTERAS - 250 NM EAST OF CHARLESTON US 32.0 -75.083 0.0 19771004 20170923 992160 99999 OREGON - 275NM WEST OF COOS BAY OR. US 42.58 -130.36 0.0 19780201 20170923 992170 99999 S ALEUTIANS US 51.83 -155.85 3.0 19780101 20020618 992180 99999 N MICHIGAN- HALFWAY BETWEEN NORTH MANITO US 45.33 -86.42 176.4 19791016 20170923 992190 99999 MIDDLE NOMAD CA 50.93 -136.1 3.0 19771112 20170923 992200 99999 SE PAPA - 600NM WEST OF EUREKA CA. US 40.8 -137.48 0.0 19780201 20170923 992210 99999 WASHINGTON 315NM WEST OF ABERDEEN WA US 46.05 -131.02 0.0 19771210 20170923 992220 99999 S HURON 43NM EAST OF OSCODA MI US 44.28 -82.42 177.0 19820419 20170923 992230 99999 N HURON 37NM NORTHEAST OF ALPENA MI. US 45.35 -82.84 177.0 19810913 20170923 992240 99999 W ERIE 28NM NORTHWEST OF CLEVELAND OH US 41.68 -82.4 173.9 19800906 20170923 992250 99999 DATA BUOY 42011 US 29.6 -93.5 3.0 19820701 20011202 992260 99999 MOORED BUOY 21002 US 37.7 134.3 0.0 19821209 20030330 992270 99999 MOORED BUOY 21003 US 34.7 139.5 0.0 19830625 19890309 992280 99999 MOORED BUOY 21004 US 29.0 135.0 1.0 19821209 20000713 992290 99999 ST GEORGES - 8NM WEST NORTHWEST OF CRESC US 41.85 -124.38 0.0 19820914 20170923 992300 99999 MOORED BUOY 22001 28.3 126.0 0.0 19830308 20040216 992310 99999 PT. SAN LUIS CA - 18 NM SOUTH SOUTHWEST US 35.1 -121.01 0.0 19830811 20041121 992320 99999 ENVIRONM BUOY 42008 US 28.7 -95.3 10.0 19820208 19950404 992330 99999 DATA BUOY 42009 US 29.3 -87.5 10.0 19820330 20020510 992340 99999 ENVIRONM BUOY 44002 US 40.1 -73.0 1.0 19780201 20050508 992350 99999 DATA BUOY 44010 US 36.9 -75.7 3.0 19780210 20080113 992360 99999 GEORGES BANK 170 NM EAST OF HYANNIS MA US 41.11 -66.62 0.0 19850312 20170923 992370 99999 COL RIVER BAR - 78NM SOUTH SOUTHWEST OF US 46.144 -124.51 0.0 19841011 20170923 992380 99999 CAPE SAN MARTIN - 55NM WEST NORTHWEST OF US 35.74 -121.89 0.0 19850507 20170923 992390 99999 DATA BUOY 41018 US 15.0 -75.0 3.0 19780306 20011221 992400 99999 DELAWARE BAY 26 NM SOUTHEAST OF CAPE MAY US 38.46 -74.7 0.0 19850312 20170923 992410 99999 MONTEREY - 27NM WEST OF MONTEREY BAY CA US 36.75 -122.42 0.0 19771027 20170923 992420 99999 BOSTON 16 NM EAST OF BOSTON MA US 42.35 -70.69 0.0 19850312 20170923 992430 99999 SW HAWAII 215 NM SOUTH SOUTHWEST OF HILO US 17.14 -157.79 0.0 19780626 20170923 992440 99999 E GULF 260 NM SOUTH OF PANAMA CITY FL US 26.01 -85.91 0.0 19780201 20170602 992450 99999 ENVIRONM BUOY 32301 US -10.0 -105.0 3.0 19780201 19960305 992460 99999 DATA BUOY 46010 US 46.2 -124.2 12.0 19800115 19990123 992470 99999 ENVIRONM BUOY 41021 US 31.9 -80.9 3.0 19820310 19940913 992480 99999 HALF MOON BAY - 24NM SOUTH SOUTHWEST OF US 37.36 -122.88 0.0 19810103 20170923 992490 99999 BODEGA BAY - 48NM NORTH NORTHWEST OF SAN US 38.23 -123.32 0.0 19810717 20170923 992500 99999 PT ARENA - 19NM NORTH OF POINT ARENA CA US 39.22 -123.97 0.0 19820208 20170923 992510 99999 ENVIRONM BUOY 46015 US 62.033 -168.983 3.0 19920305 19950408 992520 99999 DATA BUOY 46016 US 63.3 -170.3 3.0 19821209 19940709 992530 99999 DATA BUOY 51027 US 20.4 -157.1 3.0 19821209 19921105 992540 99999 DATA BUOY 46018 US 60.3 -177.0 3.0 19820312 20050421 992550 99999 DATA BUOY 46019 US 57.2 -170.3 3.0 19821209 19970406 992560 99999 DATA BUOY 46020 US 55.9 -168.0 3.0 19821209 20040926 992570 99999 DATA BUOY 46021 US 57.7 -160.0 3.0 19820712 19940905 992580 99999 PT ARGUELLO - 17NM WEST NORTHWEST OF POI US 34.71 -120.97 0.0 19821209 20100908 992590 99999 ENVIRONM BUOY 46024 US 32.8 -119.5 3.0 19821209 19960314 992600 99999 SANTA MONICA BASIN - 33NM WEST SOUTHWEST US 33.75 -119.08 0.0 19821209 20170923 992610 99999 W HAWAII 205 NM SOUTHWEST OF HONOLULU H US 19.16 -160.74 0.0 19780821 20170923 992620 99999 SE HAWAII 185 NM SOUTHEAST OF HILO HI US 17.52 -152.48 0.0 19850312 20170923 992630 99999 DATA BUOY 44003 US 40.8 -68.5 3.0 19780206 20080830 992640 99999 SAN FRANCISCO - 18NM WEST OF SAN FRANCIS US 37.75 -122.82 0.0 19780429 20170923 992650 99999 BLUNTS REEF US 40.42 -124.53 3.0 19841018 20041209 992660 99999 DATA BUOY 46031 US 55.5 -161.7 3.0 19850312 19950119 992670 99999 ENVIRONM BUOY 62106 US 56.983000000000004 -9.883 0.0 19850312 20080815 992680 99999 DATA BUOY 46033 US 55.8 -159.8 3.0 19850312 20050122 992690 99999 ENVIRONM BUOY 46034 US 55.1 -163.1 3.0 19850312 19950403 992700 99999 BUOY 62107 / SEVENSTONES LIGHTSHIP UK 50.1 -6.1 0.0 19780619 20170923 992710 99999 W GULF 240 NM SOUTH-SOUTHEAST OF SABINE US 25.17 -94.42 0.0 19771002 20170923 992720 99999 DATA BUOY 42015 US 30.1 -88.2 3.0 19780201 19960316 992730 99999 BUOY 41004 / EDISTO - 41 NM SOUTHEAST OF CHARLESTON US 32.5 -79.1 0.0 19790213 20170923 992740 99999 EEL RIVER - 17NM WEST-SOUTHWEST OF EUREK US 40.78 -124.54 0.0 19821209 20170923 992750 99999 DATA BUOY 46043 US 46.9 -124.2 12.0 19871110 20031210 992760 99999 GULF OF MAINE 78 NM EAST OF PORTSMOUTH N US 43.20399999999999 -69.128 0.0 19820208 20170923 992770 99999 ENVIRONM BUOY 44006 US 36.3 -75.4 3.0 19820208 19950201 992780 99999 PORTLAND 12 NM SOUTHEAST OF PORTLAND ME US 43.531000000000006 -70.14399999999999 0.0 19820514 20170923 992790 99999 NANTUCKET 54NM SOUTHEAST OF NANTUCKET US 40.5 -69.43 0.0 19821209 20170923 992800 99999 ENVIRONM BUOY 45009 US 41.1 -82.0 3.0 19861002 20020530 992810 99999 ENVIRONM BOUY 46027 US 41.833 -124.4 3.0 19850404 19970509 992820 99999 BERING SEA 310 NM NORTH OF ADAK AK US 57.05 -177.58 0.0 19860117 20170923 992830 99999 DATA BUOY 51005 US 20.4 -156.1 3.0 19860117 20011029 992840 99999 DATA BUOY 32302 US -18.0 -85.1 3.0 19860616 19950403 992850 99999 WEST ORCA BAY 36NM SOUTH SOUTHWEST OF VA US 60.58 -146.83 0.0 19871118 20170923 992860 99999 MOORED BUOY 62027 49.1 -2.2 3.0 19860804 20170923 992870 99999 ENVIRONM BUOY 62028 US 48.7 -8.9 0.0 19860605 20121108 992880 99999 K1 BUOY UK 48.7 -12.4 0.0 19870319 20170923 992890 99999 ENVIRONM BUOY 62109 US 57.0 0.0 0.0 19870126 20060113 992900 99999 DATA BUOY 62164 UK 57.2 0.5 30.0 19870126 20170923 992910 99999 ENVIRONM BUOY 62026 US 55.3 1.1 0.0 19870126 20050425 992920 99999 ENVIRONM BUOY 23002 US 22.5 -59.5 0.0 19870514 19991120 992930 99999 SOUTH NOMAD CA 48.35 -133.94 3.0 19861001 20170923 992940 99999 DATA BUOY 46038 US 41.9 -124.4 3.0 19870126 19961102 992950 99999 PT.CONCEPTION CA - 50NM WEST OF SANTA B US 34.27 -120.66 0.0 19880208 20090522 992960 99999 SANTA MARIA - 21 NM NORTHWEST OF POINT A US 34.88 -120.87 0.0 19870405 20170923 992970 99999 ENVIRONM BOUY 46039 US 48.2 -123.4 3.0 19880311 19960312 992980 99999 TAIL OF THE BANK CA 43.75 -51.74 3.0 19870624 20131022 992990 99999 DATA BUOY 45010 US 43.0 -87.8 180.0 19870404 20020419 993194 99999 SHIP BLOCK 19 US 0.0 0.0 0.0 19780315 19780315 993711 99999 SEWELLS POINT VA US VA 36.95 -76.33 10.0 20050218 20170923 994006 99999 BIG CARLOS PASS US FL 26.4 -81.88 3.0 20051020 20160711 994007 99999 HONOLULU US HI 21.3 -157.87 3.0 20051010 20170923 994008 99999 FRED HOWARD PARK US FL 28.12 -82.8 6.0 20051020 20170923 994009 99999 ANCLOTE GULF PARK US FL 28.18 -82.78 6.0 20051020 20130423 994010 99999 SOUTHWEST PASS LA US 28.9 -89.43 0.0 19420901 20170923 994011 99999 ASTORIA US OR 46.208 -123.76700000000001 2.0 20050419 20170923 994012 99999 CRESCENT CITY US CA 41.745 -124.18299999999999 4.8 20050419 20170923 994013 99999 CHEERY POINT US WA 48.863 -122.758 5.0 20050419 20170923 994014 99999 SEATTLE US WA 47.605 -122.338 2.0 20050419 20170923 994015 99999 FRIDAY HARBOR US WA 48.547 -123.01 2.0 20050419 20170923 994016 99999 SAN FRANCISCO US CA 37.806999999999995 -122.465 2.0 20050419 20170923 994017 99999 NORTH SPIT US CA 40.766999999999996 -124.21700000000001 2.0 20050419 20170923 994018 99999 LA JOLLA US CA 32.867 -117.258 2.0 20050419 20170923 994019 99999 MONTEREY US CA 36.605 -121.88799999999999 2.0 20050419 20160615 994020 99999 CHESAPEAKE LIGHT VA US VA 36.91 -75.71 0.0 19850501 20160623 994021 99999 NEAH BAY US WA 48.368 -124.617 5.0 20050419 20170923 994022 99999 POINT REYES US CA 37.99 -122.975 2.0 20050419 20170923 994023 99999 PORT SAN LUIS US CA 35.177 -120.76 2.0 20050419 20170923 994024 99999 PORT ANGELES US WA 48.125 -123.44 5.0 20050419 20170923 994025 99999 PORT TOWNSEND US WA 48.111999999999995 -122.758 5.0 20050419 20170923 994026 99999 SOUTH BEACH US OR 44.625 -124.04299999999999 2.0 20050419 20170923 994027 99999 SAN DIEGO US CA 32.713 -117.17299999999999 2.0 20050419 20170923 994028 99999 SANTA MONICA PIER US CA 34.008 -118.5 2.0 20050419 20170923 994029 99999 TOKE POINT US WA 46.708 -123.965 5.0 20050419 20170923 994030 99999 DIAMOND SHLS LT. NC US 35.15 -75.3 0.0 19850501 20030729 994031 99999 PORT ORFORD US OR 42.74 -124.49700000000001 8.0 20050419 20170923 994032 99999 CHARLESTON US OR 43.345 -124.322 2.0 20050419 20170923 994033 99999 ALAMEDA US CA 37.772 -122.29799999999999 2.0 20050419 20170923 994034 99999 PORT CHICAGO US CA 38.056999999999995 -122.038 2.0 20050419 20170923 994035 99999 LOS ANGELES US CA 33.72 -118.272 2.0 20050419 20170923 994036 99999 RICHMOND US CA 37.928000000000004 -122.4 5.6 20050419 20170923 994037 99999 PHILLIPS OILPLATFOR US TX 26.95 -94.68299999999999 10.0 20050419 20100521 994040 99999 FRYING PAN SHOALS NC US 33.49 -77.59 0.0 19850509 20080912 994041 99999 REDWOOD CITY US CA 37.507 -122.2 6.0 20050503 20170923 994042 99999 CHARLOTTE AMALIE VQ 18.33 -64.92 5.0 20050503 20170906 994043 99999 SAN JUAN RQ 18.47 -66.12 5.0 20050503 20170923 994044 99999 ARENA COVE US CA 38.92 -123.7 2.0 20050503 20170923 994045 99999 APPALACHICOLA US FL 29.73 -84.98 2.0 20050503 20170923 994046 99999 NANTUCKET ISLAND US MA 41.28 -70.1 0.0 20050503 20170923 994047 99999 PENSACOLA US FL 30.4 -87.22 3.0 20050503 20170923 994048 99999 TACOMA US WA 47.266999999999996 -122.413 5.0 20050503 20170923 994050 99999 LAKE WORTH FL US 26.61 -80.03 0.0 19850501 20170923 994060 99999 MT DESERT ROCK ME US ME 43.97 -68.13 9.1 19850121 20170923 994061 99999 CHEYBOGAN GLOS WEATHER STATION US MI 45.651 -84.47200000000001 177.7 20100407 20151028 994062 99999 GREEN BAY ENTRANCE LIGHT US WI 44.655 -87.902 176.0 20100523 20120628 994063 99999 PRESQUE ISLE LIGHT GLOS WEATHER STATION US MI 45.356 -83.492 184.4 20100325 20151028 994064 99999 STURGEON POINT LIGHT GLOS WEATHER STATION US MI 44.713 -83.273 184.4 20100407 20151028 994065 99999 TAWAS CITY GLOS WEATHER STATION US MI 44.256 -83.443 171.6 20100325 20170923 994066 99999 WHITEFISH POINT GLOS WEATHER STATION US MI 46.762 -84.96600000000001 185.9 20100325 20170923 994070 99999 DESTRUCTION IS. WA US WA 47.68 -124.49 21.3 19850501 20170923 994080 99999 FIVE FINGER AK US 57.27 -133.63 6.7 19850501 20170923 994081 99999 EAST AMATULI STATION LIGHT AK US 58.92 -151.95 33.2 20040713 20170923 994082 99999 APK - ARIPEKA FL US 28.43 -82.66 0.0 20040713 20170923 994083 99999 NFB - NORTHWEST FLORIDA BAY FL US 25.08 -81.09 0.0 20040713 20160116 994084 99999 PILOT ROCK AK US 59.74 -149.47 24.0 20040713 20170923 994085 99999 PAS -PORT RICHEY FL US 28.28 -82.73 0.0 20040713 20100820 994086 99999 SHP - SHELL POINT FL US 30.06 -84.29 0.0 20040713 20170923 994090 99999 PASSAGE ISLAND MI US MI 48.22 -88.37 195.4 19850528 20170923 994100 99999 AMBROSE LIGHT NY US NY 40.46 -73.83 0.0 19850330 20080728 994110 99999 PORT ARANSAS TX US 27.83 -97.05 0.0 19850501 20170826 994120 99999 POINT ARENA CA US CA 38.96 -123.74 17.4 19850501 20121017 994130 99999 ROCK OF AGES MI US MI 47.87 -89.31 183.5 19850402 20170923 994140 99999 BUZZARDS BAY MA US MA 41.4 -71.03 0.0 19850712 20170923 994150 99999 ST. JOHN'S LIGHT US 30.4 -81.4 30.0 19850501 19910709 994160 99999 CAPE LOOKOUT NC US NC 34.62 -76.52 4.6 19850120 20170923 994170 99999 DEERFIELD BEACH US FL 26.316999999999997 -80.083 2.0 19850116 20020601 994180 99999 SMITH ISLAND WA US 48.32 -122.84 15.2 19850411 20170923 994190 99999 DEVILS ISLAND WI US WI 47.08 -90.73 191.7 19850501 20170923 994200 99999 STANNARD ROCK MI US MI 47.18 -87.22 182.9 19850501 20170923 994210 99999 POINT ARGUELLO CA US 34.58 -120.65 32.3 19430618 20170923 994220 99999 VENICE FL US FL 27.07 -82.45 0.0 19850622 20170923 994230 99999 FOLLY ISLAND SC US 32.68 -79.89 3.0 19850501 20170923 994240 99999 CAPE ARAGO OR US 43.34 -124.38 18.0 19850501 20121227 994250 99999 DUNKIRK NY US 42.49 -79.35 182.9 19850501 20170923 994260 99999 SABINE TX US 29.67 -94.05 0.9 19850501 20170923 994270 99999 ISLE OF SHOALS NH US NH 42.97 -70.62 13.1 19850501 20170923 994280 99999 NEWPORT OR US 44.61 -124.07 9.1 19850501 20170923 994290 99999 GRAND ISLE LA US 29.27 -89.96 1.8 19850501 20050919 994300 99999 TATOOSH ISLAND WA US 48.39 -124.74 30.8 19850501 20170923 994310 99999 ALLIGATOR REEF US 24.9 -80.6 0.0 19850123 20020118 994320 99999 GALLOO ISLAND NY US 43.89 -76.45 105.0 19850501 20020930 994330 99999 SHEBOYGAN WI US 43.75 -87.69 175.9 19850501 20170923 994340 99999 SOUTH BASS ISLAND OH US OH 41.63 -82.84 176.8 19850501 20170923 994350 99999 WEST POINT WA US 47.66 -122.44 3.0 19850501 20170923 994360 99999 CAPE SAN BLAS FL US 29.67 -85.36 1.8 19850501 20050303 994370 99999 MATINICUS ROCK ME US 43.78 -68.86 16.2 19850302 20170923 994380 99999 SAVANNAH LIGHT GA US 31.95 -80.68 30.0 19850517 20020525 994390 99999 SETTLEMENT POINT GBI US 26.7 -79.0 1.5 19851203 20170923 994400 99999 THOMAS POINT MD US 38.9 -76.44 0.0 19851205 20170923 994410 99999 ST. AUGUSTINE FL US 29.86 -81.26 0.0 19870122 20170923 994420 99999 DAUPHIN ISLAND AL US 30.25 -88.07 0.0 19870219 20170923 994430 99999 MOLASSES REEF FL US 25.01 -80.38 0.0 19880929 20170923 994440 99999 MAIN PASS US 29.4 -88.6 10.0 19880929 20010813 994450 99999 SOMBRERO KEY FL US FL 24.63 -81.11 0.0 19880929 20150810 994460 99999 SOUTHERN OPEN SOUND NY US 41.0 -73.1 0.0 19891108 20100625 994470 99999 GARDEN BANKS US 27.8 -93.1 10.0 19900112 19920720 994480 99999 ENEWETAK/MARSHALLS RM 11.367 162.36700000000002 2.0 19900322 19950604 994490 99999 UJAE ATOLL MARSHALL US 8.93 165.75 10.0 19900322 19950530 994500 99999 MILI MARSHALLS IS. US 6.1 172.1 10.0 19901214 19970830 994510 99999 SABINE US TX 29.666999999999998 -94.05 5.0 19900913 20020219 994530 99999 EBON ATOLL CAROLINE US 4.6 168.7 10.0 19900914 20000229 994540 99999 KOSRAE CAROLINE FM 5.36 162.96 10.0 19901018 19920131 994550 99999 ALEXANDRIA BAY NY US 44.33 -75.93 76.2 19950103 20090928 994560 99999 FOWEY ROCKS FL US 25.59 -80.1 0.0 19940901 20170923 994570 99999 SAND KEY FL US 24.46 -81.88 0.0 19941007 20170923 994580 99999 SUPERIOR SHOALS NY US 44.47 -75.8 77.4 19941007 20091116 994590 99999 THOUSAND I. BRDG. NY US NY 44.3 -75.98 75.6 19941007 20090502 994610 99999 DUCK PIER NC US NC 36.18 -75.75 0.0 20020219 20080731 994620 99999 LONG KEY FL US FL 24.84 -80.86 0.0 20020219 20170730 994630 99999 DRY TORTUGAS FL US FL 24.64 -82.86 0.0 20020219 20050921 994640 99999 CEDAR KEY US FL 29.14 -83.03 1.8 20020222 20170923 994650 99999 KEATON BEACH US FL 29.82 -83.59 1.8 20020219 20170923 994660 99999 POTATO POINT US AK 61.06 -146.7 7.0 20020219 20170923 994670 99999 MIDDLE ROCK LIGHT US AK 61.08 -146.66 0.0 20020219 20170923 994680 99999 BLIGH REEF LIGHT US AK 60.84 -146.88 0.0 20020219 20170923 994690 99999 DRIFT RIVER TERMINAL US AK 60.55 -152.14 15.9 20020219 20170923 994700 99999 AUGUSTINE ISLAND US AK 59.38 -153.35 9.1 20020703 20170923 994710 99999 068: BAFFIN BAY; POINT OF ROCKS TX US TX 27.3 -97.42 0.0 20040608 20170923 994720 99999 FLAT ISLAND LIGHT US AK 59.33 -151.99 17.9 20040608 20170923 994730 99999 GALVESTON PLEASURE PIER; GULF OF ME US TX 29.29 -94.79 0.0 20040608 20041214 994740 99999 HOM - HOMOSASSA FL US 28.77 -82.71 0.0 20040608 20090803 994750 99999 NEW LONDON LEDGE - LEDGE LIGHT WEATHER S US CT 41.31 -72.08 20.0 20040608 20170914 994760 99999 WESTERN LAKE PONCHARTRAIN LA US LA 30.31 -90.28 0.0 20040608 20120820 994770 99999 LAKE ST CLAIR MI US MI 42.47 -82.76 178.5 20040608 20120808 994780 99999 LUMCON MARINE CENTER LA US LA 29.25 -90.66 0.0 20040608 20130521 994790 99999 MATAGORDA BAY; PORT O'CONNOR US TX 28.45 -96.4 9.0 20040608 20170923 994800 99999 RINCON DEL SAN JOSE; POTRERO LOPENO US TX 26.8 -97.47 0.0 20040608 20170923 994810 99999 100: RTNS OFFSHORE TX US 27.76 -96.98 0.0 20040729 20050813 994820 99999 TYNDALL AFB TOWER C (N4) FL US 29.41 -84.86 0.0 20040608 20170923 994830 99999 U.S. NAVY TOWER R2 US GA 31.38 -80.57 50.0 20040608 20091001 994840 99999 TAMBOUR BAY LA US 29.19 -90.67 0.0 20040608 20111003 994850 99999 TERREBONNE BAY LA US 29.17 -90.58 0.0 20080606 20121229 994860 99999 U.S. NAVY TOWER R8 US GA 31.633000000000003 -79.917 34.0 20040608 20080415 994870 99999 EGK - EGMONT KEY FL US 27.6 -82.76 0.0 20040803 20131231 994880 99999 ANM - ANNA MARIA FL US 27.54 -82.74 0.0 20040803 20130430 994890 99999 BRIDGEPORT TERMINAL US CT 41.183 -73.183 16.0 20040803 20100625 994900 99999 NORTH MIDDLE SOUND US CT 41.07 -73.13 16.0 20040803 20100625 994910 99999 FAYERWEATHER ISLAND US CT 41.15 -73.17 16.0 20040803 20100625 994920 99999 NORTH CENTRAL SOUND US CT 41.1 -73.15 16.0 20040803 20100625 994930 99999 SOUTH MIDDLE SOUND US NY 41.05 -73.12 16.0 20040803 20100625 994940 99999 OLD FIELD ISLAND NY US 40.97 -73.08 0.0 20040803 20100625 994950 99999 NORTHERN OPEN SOUND CT US CT 41.12 -73.16 16.0 20040803 20100625 994951 99999 SEBASTIAN INLET STATE PARK US FL 27.862 -80.445 10.0 20130401 20170809 994960 99999 PORT JEFFERSON NY US 40.95 -73.07 0.0 20040803 20100625 994970 99999 SOUTH CENTRAL SOUND NY US 41.02 -73.11 0.0 20040803 20100625 994971 99999 BOSTON US MA 42.35 -71.05 0.0 20060403 20170923 994972 99999 ALGOMA CITY MARINA US WI 44.6 -87.43 185.0 20060403 20170529 994973 99999 N PIER DEATHS DOOR US WI 45.28 -86.98 188.0 20060403 20170923 994974 99999 YACHT WORKS SISTER US WI 45.2 -87.12 181.0 20060403 20170530 994975 99999 BEAUFORT NC US NC 34.2 -76.67 10.0 20050517 20170923 994976 99999 GB ENTRANCE LIGHT US WI 44.65 -87.9 201.0 20061107 20091101 994977 99999 GRAND ISLE US LA 29.27 -89.95 10.0 20060403 20170923 994978 99999 SEA GIRT US NJ 40.12 -74.03 10.0 20060403 20060930 994979 99999 GRAVELLY SHOALS US MI 44.02 -83.53 204.0 20060403 20170923 994980 99999 CAPE ELIZABETH- 45NM WEST OF ABERDEEN W US 47.34 -124.75 0.0 20040907 20170821 994990 99999 DATA BUOY 62145 UK 53.1 2.8 30.0 20020409 20170923 995000 99999 MOBILE SOUTH 64 NM SOUTH OF DAUPHIN ISLA US 29.18 -88.21 0.0 20020409 20170923 995001 99999 BUOY 14040 -8.902000000000001 66.945 3.0 20130306 20141128 995002 99999 BUOY 15007 -6.002000000000001 8.001 3.0 20130611 20170319 995003 99999 BUOY 22183 37.73 126.24 3.0 20130621 20170923 995004 99999 BUOY 23010 -3.9930000000000003 80.498 3.0 20130306 20150830 995005 99999 BUOY 23016 -1.614 66.794 3.0 20130724 20170923 995006 99999 BUOY 23017 -4.013 67.215 3.0 20130306 20160909 995007 99999 BUOY 23092 17.862000000000002 89.665 3.0 20130329 20170923 995008 99999 BUOY 41099 14.172 -60.946000000000005 3.0 20130306 20170923 995009 99999 BUOY 41109 34.5 -77.3 3.0 20130206 20140709 995010 99999 PLATFORM NO. 62126 UK 53.8 -3.6 0.0 19880612 20120928 995011 99999 BUOY 41139 20.004 -37.845 3.0 20130306 20170316 995012 99999 BUOY 42375 28.5 -88.3 3.0 20130423 20170305 995013 99999 BUOY 42392 27.2 -90.0 3.0 20130206 20170305 995014 99999 BUOY 44050 46.7 -56.183 3.0 20130306 20170923 995015 99999 BUOY 45163 44.0 -83.6 179.0 20130603 20170923 995016 99999 BUOY 45165 41.8 -83.3 176.0 20130514 20170923 995017 99999 BUOY 45166 45.0 -73.0 33.0 20130726 20170923 995018 99999 BUOY 45170 41.8 -87.0 179.0 20130602 20170923 995019 99999 BUOY 46114 36.7 -122.3 3.0 20130619 20170923 995020 99999 PLATFORM NO. 62101 UK 50.6 -2.9330000000000003 0.0 19880915 20060413 995021 99999 BUOY 48213 71.758 -167.952 3.0 20130805 20150810 995022 99999 BUOY 48214 70.87100000000001 -165.24599999999998 3.0 20130802 20151014 995030 99999 PLATFORM NO. 63111 UK 59.5 1.5 0.0 19880812 20070302 995040 99999 PLATFORM NO. 62137 UK 57.6 1.8 0.0 19890311 20090922 995050 99999 PLATFORM NO. 62138 UK 58.4 -0.1 0.0 19890814 19960310 995060 99999 PLATFORM NO. 62116 US 57.7 1.4 0.0 19890510 20170923 995070 99999 PLATFORM NO. 62115 US 58.05 -3.05 0.0 19890504 20170923 995080 99999 PLATFORM NO. 63137 UK 57.8 1.8 0.0 19940409 20020513 995090 99999 PLATFORM NO. 62142 UK 56.8 1.7 0.0 19910830 19980408 995100 99999 PLATFORM NO. 62147 UK 58.0 1.1 0.0 19890213 19960420 995110 99999 PLATFORM NO. 62125 US 53.8 -3.5 0.0 19890317 20120928 995120 99999 PLATFORM NO. 62111 UK 58.1 0.4 0.0 19890814 20130430 995130 99999 PLATFORM NO. 62123 US 56.4 2.2 0.0 19890318 20161201 995140 99999 PLATFORM 62121 UK 53.6 2.8 0.0 19890814 20170923 995150 99999 PLATFORM NO. 62127 UK 53.5 2.2 0.0 19890814 20130430 995160 99999 SEAL ROCKS 55NM SOUTH OF VALDEZ AK US 60.22 -146.83 0.0 19900821 20170923 995170 99999 PLATFORM NO. 63109 US 59.35 1.3 0.0 19900712 20170923 995180 99999 PLATFORM NO. 62141 US 60.38 1.05 0.0 19890814 20170922 995190 99999 PLATFORM NO. 62118 UK 57.7 0.9 0.0 19890814 20130430 995200 99999 ENVIRONM BUOY 62133 US 57.1 1.0 0.0 19890814 20170923 995210 99999 PLATFORM NO. 62129 US 53.05 2.117 0.0 19890814 20170923 995220 99999 PLATFORM 62120 UK 56.4 2.1 0.0 19890815 20170923 995230 99999 PLATFORM NO. 62122 US 56.3 2.01 0.0 19890814 20170923 995240 99999 PLATFORM NO. 62130 UK 53.0 1.7 0.0 19890804 20120629 995250 99999 PLATFORM NO. 63108 UK 60.133 1.7 0.0 19890814 20130430 995260 99999 ENVIRONM BUOY 62138 US 58.3 -1.7 0.0 19891121 20170923 995270 99999 DATA BUOY 63104 UK 61.2 1.6 30.0 19890814 20170923 995280 99999 PLATFORM NO. 63101 UK 61.117 0.9 0.0 19890814 20130430 995290 99999 DATA BUOY 63110 UK 59.5 1.5 30.0 19890814 20170923 995300 99999 PLATFORM NO. 62114 US 58.3 1.0 0.0 19890808 20170923 995310 99999 PLATFORM NO. 63102 UK 61.2 1.1 0.0 19890324 20070531 995320 99999 PLATFORM NO. 62113 UK 58.4 0.3 0.0 19880904 20130430 995330 99999 PLATFORM NO. 62117 US 57.92 0.0 0.0 19890112 20170809 995340 99999 NICKERSON BANK CA 46.44 -53.39 3.0 19880915 20170405 995350 99999 PLATFORM NO. 44172 CA 46.5 -48.4 0.0 19910813 20120528 995360 99999 ENVIRONM BUOY 62162 UK 57.4 -0.5 0.0 19901017 20110423 995370 99999 MOORED BUOY 20106 PO 41.7 -31.9 0.0 19890816 19940928 995380 99999 BUOY 62163 / BRITTANY UK 47.5 -8.5 0.0 19890305 20170923 995390 99999 HALIFAX HARBOR CA 44.5 -63.4 3.0 19890814 20170923 995400 99999 PLATFORM NO. 62150 US 59.5 1.4 0.0 19900921 20170923 995410 99999 MOORED BUOY 45134 CA 42.4 -80.5 3.0 19920315 20020127 995420 99999 PLATFORM NO. 63106 UK 53.5 2.0 0.0 19890416 20130430 995430 99999 PLATFORM NO. 62143 UK 58.3 0.4 0.0 19900405 20130430 995440 99999 DATA BUOY 63105 UK 61.0 1.7 30.0 19880925 20170923 995450 99999 CANAVERAL 20 NM EAST OF CAPE CANAVERAL US 28.519000000000002 -80.166 0.0 19890814 20170923 995460 99999 CANAVERAL EAST 120NM EAST OF CAPE CANAVE US 28.9 -78.55 0.0 19890814 20170923 995470 99999 PENSACOLA - 115NM EAST SOUTHEAST OF PENS US 28.8 -86.06 0.0 19890211 20170923 995480 99999 EAST SCOTIA SLOPE CA 42.26 -62.0 3.0 19890814 20170923 995490 99999 SW GRAND BANKS CA 44.26 -53.62 3.0 19891101 20130926 995500 99999 BANQUREAU BANKS CA 44.26 -57.08 3.0 19890814 20170923 995510 99999 PLATFORM NO. 62560 US 43.0 -79.3 0.0 19890626 20170420 995520 99999 PLATFORM NO. 62561 FR 29.2 -13.4 0.0 19890418 20090525 995530 99999 PLATFORM NO. 62562 FR 48.033 -17.5 0.0 19890404 20100201 995540 99999 PLATFORM NO. 62563 US 55.12 -6.6 0.0 19890125 20050927 995550 99999 PLATFORM NO. 62565 FR 28.1 -15.1 0.0 19890609 20080112 995560 99999 PLATFORM NO. 62566 FR 57.7 -15.0 0.0 19890407 20051206 995570 99999 PLATFORM NO. 62567 US 42.4 -15.2 0.0 19890326 20060829 995580 99999 PLATFORM NO. 62568 FR 30.3 -28.2 0.0 19910921 20060207 995590 99999 PLATFORM NO. 62569 FR 30.4 -11.2 0.0 19890115 20080809 995600 99999 PLATFORM NO. 62570 US 29.0 -14.117 0.0 19891104 20060130 995610 99999 PLATFORM NO. 62572 FR 28.3 -15.2 0.0 19940827 20080312 995620 99999 PLATFORM NO. 62573 FR 28.3 -14.6 0.0 19890103 20071004 995630 99999 ENVIRONM BUOY 62169 UK 58.2 0.033 0.0 19891003 20130411 995640 99999 PLATFORM NO. 62575 FR 27.6 -16.1 0.0 19900728 20070907 995650 99999 PLATFORM NO. 62576 FR 27.3 -18.1 0.0 19890304 20040704 995660 99999 PLATFORM NO. 62578 FR 28.2 -15.1 0.0 19911229 20081210 995670 99999 PLATFORM NO. 62581 FR 30.2 -13.0 0.0 19881221 20071203 995680 99999 PLATFORM NO. 62582 FR 28.2 -15.0 0.0 19910104 20050810 995690 99999 PLATFORM NO. 62584 FR 29.3 -14.2 0.0 19901115 19950401 995700 99999 GASCOGNE BUOY 62001 UK 45.2 -5.0 0.0 19881211 20170923 995710 99999 ENVIRONM BUOY 44231 CA 45.1 -55.8 0.0 19940406 20050323 995720 99999 ENVIRONM BUOY 62102 UK 53.5 -19.4 0.0 19890814 20130430 995730 99999 ENVIRONM BUOY 62112 UK 58.7 1.3 0.0 19890903 20130430 995740 99999 ENVIRONM BUOY 62119 US 57.0 2.0 0.0 19890709 20170923 995750 99999 ENVIRONM BUOY 62128 UK 53.4 2.3 0.0 19890814 20130430 995760 99999 DATA BUOY 62166 UK 57.2 0.5 30.0 19890901 20160426 995770 99999 ENVIRONM BUOY 62414 UK 53.833 2.917 0.0 19890713 20080322 995780 99999 ENVIRONM BUOY 63103 UK 61.1 1.1 0.0 19890721 20130430 995790 99999 ENVIRONM BUOY 62551 24.3 -39.2 0.0 19920216 20090624 995800 99999 ENVIRONM BUOY 62552 24.2 -51.4 0.0 19910512 20090624 995810 99999 ENVIRONM BUOY 62553 22.4 -55.4 0.0 19890728 20090525 995820 99999 ENVIRONM BUOY 62554 SC 17.5 -62.5 0.0 19930824 20120902 995830 99999 ENVIRONM BUOY 62555 31.2 -37.1 0.0 19951220 20120902 995840 99999 ENVIRONM BUOY 62556 US 29.4 -25.92 0.0 19901107 20170418 995850 99999 DATA BUOY 62142 UK 53.0 2.1 30.0 19910730 20140205 995860 99999 ENVIRONM BUOY 62558 25.4 -37.6 0.0 19940801 20090525 995870 99999 DATA BUOY 62052 FR 48.5 -5.6 3.0 19900117 20160122 995880 99999 ENVIRONM BUOY 62590 CF -4.5 11.5 3.0 19890907 20031208 995890 99999 ENVIRONM BUOY 62051 US 53.5 -5.4 0.0 19910716 20081219 995900 99999 MOORED BUOY 44233 CA 44.0 -50.0 0.0 19890723 19960813 995910 99999 W. TAMPA 106NM WEST NORTHWEST OF TAMPA US 28.51 -84.51 0.0 19890808 20170923 995920 99999 BUOY 62103 / CHANNEL LIGHTSHIP UK 49.9 -2.9 0.0 19911214 20170923 995930 99999 ENVIRONM BUOY 62104 US 50.417 0.233 0.0 19900103 20170923 995940 99999 DATA BUOY 62144 UK 53.4 1.7 30.0 19901117 20170923 995950 99999 ENVIRONM BUOY 63115 UK 58.4 -5.6 0.0 19900331 20130430 995960 99999 PRINCE EDWARD PT CA 43.79 -76.87 3.0 19911018 20170923 995970 99999 SLATE ISLAND CA 48.53 -86.95 3.0 19960723 20170923 995980 99999 GEORGIAN BAY CA 45.54 -81.01 180.0 19940404 20170923 995990 99999 PORT STANLEY CA 42.783 -81.367 3.0 19900115 20121120 996000 99999 MOORED BUOY 40503 20.2 -67.4 0.0 19901003 20040906 996010 99999 MOORED BUOY 40605 15.1 -79.9 0.0 19920829 19930927 996020 99999 ENVIRONM BUOY 50806 PO 39.5 -27.7 0.0 19900124 19970530 996030 99999 ENVIRONM BUOY 62136 UK 60.6 1.0 0.0 19900115 20090622 996040 99999 ENVIRONM BUOY 63119 US 56.3 2.1 0.0 19920416 20170606 996050 99999 K2 BUOY 62081 UK 51.0 -13.3 0.0 20011129 20160912 996060 99999 ENVIRONM BUOY 62135 UK 58.7 1.4 0.0 19900305 20120928 996070 99999 DATA BUOY 63113 UK 61.0 1.7 30.0 19930908 20170923 996080 99999 NICE BUOY 61001 FR 43.4 7.8 3.0 19920701 20170923 996090 99999 ENVIRONM BUOY 62146 UK 58.1 1.1 0.0 19920416 20130430 996100 99999 ENVIRONM BUOY 62571 UY -34.6 -54.6 0.0 19891215 20060814 996110 99999 K3 BUOY 62108 UK 53.5 -19.5 0.0 19920416 20081021 996120 99999 K4 BUOY 62105 UK 54.54 -12.36 0.0 19921207 20170923 996130 99999 ENVIRONM BUOY 62550 PO 42.3 -11.2 0.0 19901126 20040510 996140 99999 ENVIRONM BUOY 62583 PO 42.0 -11.3 0.0 19900203 19950516 996150 99999 ENVIRONM BUOY 62586 PO 41.6 -11.5 0.0 19900114 20011119 996160 99999 ENVIRONM BUOY 62587 PO 42.2 -11.2 0.0 19941230 20061229 996170 99999 LION BUOY 61002 FR 42.1 4.7 3.0 19900207 20170923 996180 99999 FREEPORT TX. 60 NM SOUTH OF FREEPORT T US 27.91 -95.36 0.0 19910515 20170923 996190 99999 CORPUS CHRISTI TX. 50NM SOUTHEAST OF CO US 26.95 -96.7 0.0 19920416 20170923 996200 99999 ENVIRONM BUOY 62124 UK 54.6 1.4 0.0 19960226 20030423 996210 99999 NORTH NOMAD CA 53.91 -138.85 3.0 19900917 20170923 996220 99999 FAIRWEATHER GROUNDS 92NM SOUTHEAST OF YA US 58.25 -138.0 0.0 19920416 20170923 996230 99999 ENVIRONM BUOY 64043 FO 61.6 -13.4 0.0 19960802 20041117 996240 99999 ENVIRONM BUOY 62413 UK 60.7 1.0 0.0 20020205 20020205 996250 99999 LA HAVE BANK CA 42.5 -64.02 3.0 19911102 20060130 996260 99999 LAURENTIAN FAN CA 43.0 -58.0 3.0 19900922 20170105 996280 99999 DATA BUOY 44001 US 38.7 -73.6 3.0 20011215 20060411 996290 99999 BUOY 41100 / LESSER ANTILLES FR 15.9 -57.9 3.0 19910101 20090109 996300 99999 VIRGINIA BEACH 64 NM EAST OF VIRGINIA BE US 36.61 -74.84 0.0 19911211 20170923 996310 99999 MOORED BUOY 46046 US 46.3 -124.2 0.0 19930906 20030913 996320 99999 ENVIRONM BUOY 62157 US 58.117 0.11699999999999999 0.0 19901019 20170923 996330 99999 23 NAUTICAL MILES SOUTHWEST OF MONTAUK P US 40.7 -72.0 0.0 19910405 20170923 996340 99999 SE CAPE COD 30NM EAST OF NANTUCKET MA US 41.26 -69.29 0.0 19911003 20170428 996350 99999 ST. AUGUSTINE FL 40NM ENE OF ST AUGUSTI US 30.0 -80.6 0.0 20020626 20140219 996360 99999 DATA BUOY 44023 US 37.5 -74.4 3.0 19930825 20070622 996370 99999 REDONDO BEACH US 33.84 -118.45 3.0 19910503 20021202 996380 99999 ENVIRONM BUOY 63116 UK 57.883 0.033 0.0 19930218 20120614 996390 99999 ENVIRONM BUOY 62148 US 53.6 1.05 0.0 19991229 20170923 996400 99999 SANTA BARB E - 12NM SOUTHWEST OF SAN BAR US 34.24 -119.85 0.0 19931227 20170923 996410 99999 CENTRAL DIXON ENTRANCE BUOY CA 54.38 -132.45 3.0 19920416 20170923 996420 99999 LONG ISLAND 33 NM SOUTH OF ISLIP NY US 40.25 -73.17 0.0 19920416 20170923 996430 99999 MOUNT LOUIS CA 49.54 -65.77 3.0 19920416 20170923 996440 99999 DATA BUOY 63117 UK 58.0 1.1 30.0 19910606 20170923 996450 99999 ENVIRONM BUOY 63118 UK 58.9 -7.5 0.0 19930620 20130430 996460 99999 NORTH HECATE STRAIT CA 53.62 -131.1 3.0 19930727 20170923 996470 99999 SANTA BARBARA W 38 NM WEST OF SANTA BARB US 34.27 -120.45 0.0 19910722 20170923 996480 99999 BUOY 62304 / SANDETTIE LIGHTSHIP UK 51.1 1.8 0.0 20011129 20170923 996490 99999 WEST DIXON ENTRANCE CA 54.16 -134.28 3.0 19960226 20170923 996500 99999 LA PEROUSE BANK CA 48.84 -126.0 3.0 19960311 20170923 996510 99999 WEST MORESBY CA 52.52 -132.68 3.0 19980624 20170923 996520 99999 NANAKWA SHOAL CA 53.83 -128.83 3.0 20011129 20170923 996530 99999 SOUTH HECATE STRAIT CA 52.42 -129.81 3.0 19940113 20170923 996540 99999 WEST SEA OTTER CA 51.37 -128.75 3.0 19930526 20170923 996550 99999 WEST LAKE ONTARIO CA 43.4 -79.45 78.0 19920825 20170923 996560 99999 MOORED BUOY 23051 MU 23.7 58.5 0.0 19940804 19980304 996570 99999 BUOY 62305 / GREENWICH LIGHTSHIP UK 50.4 0.0 0.0 20011129 20170923 996580 99999 ENVIRONM BUOY 63114 UK 61.1 1.083 0.0 19911114 20130430 996590 99999 DATA BUOY 41017 US 35.4 -75.1 3.0 19940131 20021109 996600 99999 ENVIRONM BUOY 55011 AS -40.8 144.3 0.0 19930221 19970403 996610 99999 S ALEUTIANS 380NM SOUTHWEST OF KODIAK A US 52.7 -154.98 0.0 19951220 20170923 996620 99999 EAST DELLWOOD CA 50.87 -129.92 3.0 20011129 20170912 996630 99999 ENVIRONM BUOY 62134 UK 57.2 1.2 0.0 19911002 20130430 996640 99999 ENVIRONM BUOY 62023 US 51.4 -7.92 0.0 19920926 20170923 996650 99999 MOORED BUOY 23052 MU 22.6 59.5 0.0 19931208 19931208 996660 99999 ENVIRONM BUOY 62411 NL 52.2 4.2 0.0 19920116 20011117 996670 99999 ENVIRONM BUOY 62403 NL 53.2 3.2 0.0 19960908 19960908 996680 99999 ENVIRONM BUOY 62415 NL 51.9 3.6 0.0 19960930 20050814 996690 99999 ENVIRONM BUOY 62404 NL 53.8 4.3 0.0 20030809 20050317 996700 99999 ENVIRONM BUOY 62405 NL 53.5 4.2 0.0 19920729 20040426 996710 99999 ENVIRONM BUOY 62425 NL 53.8 5.8 0.0 19990526 20020524 996720 99999 MOORED BUOY 44143 CA 45.9 -50.0 0.0 19940828 20011201 996730 99999 MOORED BUOY 44144 CA 43.8 -60.7 0.0 19920521 20020330 996740 99999 TANNER BANKS - 121NM WEST OF SAN DIEGO US 32.43 -119.53 0.0 20011129 20170923 996750 99999 ENVIRONM BUOY 62090 US 53.12 -11.2 0.0 19960314 20070905 996760 99999 STONEWALL BANKS - 20NM WEST OF NEWPORT US 44.62 -124.53 0.0 19930207 20170923 996770 99999 K5 BUOY 64045 UK 59.1 -11.4 0.0 20011129 20170923 996780 99999 BARREN ISLAND US 59.05 -152.23 3.0 19930912 19951115 996790 99999 ENVIRONM BUOY 62132 US 56.4 2.0 0.0 20011129 20170923 996800 99999 ENVIRONM BUOY 62402 NL 53.5 3.15 0.0 19940907 20080220 996810 99999 HARVEST EXPERIMENT PLATFORM US 34.48 -120.69 3.0 19930830 19990217 996820 99999 ENVIRONM BUOY 62407 US 52.9 4.0 0.0 20011207 20080229 996830 99999 BUOY 62091 / M2 20NM EAST OF LAMBAY US 53.47 5.42 0.0 20020219 20160225 996840 99999 K7 BUOY UK 60.7 -4.5 0.0 20020219 20170923 996850 99999 BUOY 62301 / ABERPORTH (CARDIGAN BAY) UK 52.3 -4.5 0.0 19940420 20160404 996860 99999 BUOY 62303 / TURBOT BANK UK 51.6 -5.1 0.0 20011129 20160321 996870 99999 HALIBUT BANK CA 49.34 -123.73 3.0 19951105 20170923 996880 99999 ENVIRONM BUOY 62151 UK 54.0 0.7 0.0 19940219 20101104 996890 99999 ENVIRONM BUOY 62302 UK 54.1 -3.6 0.0 19930414 20060122 996900 99999 ENVIRONM BUOY 64050 UK 60.1 -4.0 0.0 19950425 20030702 996910 99999 ENVIRONM BUOY 62409 NL 52.7 3.7 0.0 19940119 20050320 996920 99999 DATA BUOY 63112 UK 61.1 1.0 30.0 19970509 20170923 996930 99999 SENTRY SHOAL CA 49.91 -124.99 3.0 19940214 20170923 996940 99999 ENVIRONM BUOY 62152 US 54.2 2.4 0.0 20011129 20130430 996950 99999 ENVIRONM BUOY 62410 US 53.2 3.6 0.0 19960331 20070814 996960 99999 SOUTH BROOKS CA 49.74 -127.93 3.0 19930626 20170923 996970 99999 GALVESTON 22NM EAST OF GALVESTON TX. US 29.25 -94.41 0.0 20011129 20170923 996980 99999 SOUTH MORESBY CA 51.83 -131.22 3.0 19940617 20170923 996990 99999 OLYMPIC NORTHEAST US 31.92 -80.85 3.0 19940908 20020517 997000 99999 OLYMPIC SOUTHWEST US 31.89 -80.86 3.0 20010621 20020526 997001 99999 FLETCHER ICE ISLAND T-3 (ARCTIC) US 6.0 19520401 19550924 997010 99999 BUOY 41008 / GRAYS REEF - 40 NM SOUTHEAST OF SAVANNAH US 31.4 -80.87 0.0 20020409 20170923 997012 99999 BUOY 31003 / SW EXTENSION PIRATA ATLAS BUOY -8.0 -30.0 3.0 20130331 20161102 997020 99999 ENVIRONM BUOY 44145 CA 46.7 -48.7 0.0 20020411 20050406 997030 99999 BUOY 41013 / FRYING PAN SHOALS NC BUOY US 33.48 -77.58 3.0 20050208 20170923 997040 99999 DIAMOND SHOALS US NC 35.06 -75.38 5.0 20050320 20170923 997050 99999 BUOY 41101 / EAST OF MARTINIQUE FR 14.6 -56.2 3.0 20050209 20121217 997060 99999 NA2 - NAVY-2 US 27.16 -82.95 0.0 20050201 20170923 997070 99999 CMP4 - PASCO COUNTY BUOY FL US 28.3 -83.3 0.0 20050201 20121030 997071 99999 URSA-MISS CANYON US 28.2 -89.117 5.0 20130206 20170923 997072 99999 MAD DOG-GREEN CANYON US 27.183000000000003 -90.26700000000001 18.3 20130206 20170305 997073 99999 PERDIDO HOST-ALAMINOS CANYON US 26.133000000000003 -94.9 10.0 20130206 20170923 997074 99999 FIRST LANDING US 36.983000000000004 -76.05 3.0 20130206 20170923 997077 99999 SUNSET BEACH NEARSHORE WAVES US NC 33.842 -78.476 3.0 20120404 20170923 997078 99999 LITTLE PORT WALTER US AK 56.388000000000005 -134.637 2.5 20120913 20150416 997079 99999 THUNDER BAY ISLAND US MI 45.035 -83.194 175.9 20121015 20170923 997080 99999 CMP24 - WEST FLORIDA CENTRAL BUOY US 27.5 -83.72 0.0 20050929 20170923 997090 99999 MOORED BUOY 42023 26.05 -83.06700000000001 0.0 20050201 20130430 997100 99999 NORTH MID GULF OF MEXICO US 27.42 -92.57 3.0 20050201 20060509 997110 99999 GA-252 TABS B US 28.99 -94.9 3.0 20050222 20170822 997120 99999 MOORED BUOY 42046 27.517 -94.03299999999999 0.0 20050201 20130108 997130 99999 JONESPORT MAINE US 44.27 -67.31 0.0 20050201 20170923 997140 99999 BUOY A0102 - MASS. BAY/STELLWAGEN US 42.52 -70.57 0.0 20050201 20170923 997150 99999 BUOY B0102 - WESTERN MAINE SHELF US 43.18 -70.43 0.0 20050201 20170923 997160 99999 BUOY C0201 - CASCO BAY US 43.57 -70.06 0.0 20050201 20090323 997170 99999 BUOY E0104 - CENTRAL MAINE SHELF US 43.72 -69.36 0.0 20050201 20170923 997171 99999 SITKA US AK 57.052 -135.342 1.0 20121106 20170923 997172 99999 LAMESHUR BAY ST JOHN VQ 18.317999999999998 -64.72399999999999 1.0 20121106 20170923 997173 99999 KAWAIHAE US HI 20.037 -155.829 1.0 20121106 20170923 997174 99999 CHARLESTON US SC 32.782 -79.925 6.0 20121106 20170923 997175 99999 PORT MOLLER US AK 66.986 -160.57399999999998 12.0 20121106 20170816 997176 99999 HOMER SPIT US AK 59.602 -151.417 15.0 20121126 20170206 997177 99999 ICY BAY US AK 59.923 -141.359 15.0 20121126 20170206 997178 99999 MARMION ISLAND US AK 58.198 -134.257 3.0 20121126 20170206 997179 99999 MARY ISLAND US AK 55.099 -131.18200000000002 4.0 20121126 20170206 997180 99999 BUOY F0103 - WEST PENOBSCOT BAY US 44.06 -69.0 0.0 20050201 20170923 997181 99999 BUOY I0103 - EASTERN MAINE SHELF US 44.11 -68.11 0.0 20050201 20170923 997182 99999 BUOY J0201 - COBSCOOK BAY US 44.89 -67.02 0.0 20050201 20090129 997183 99999 BUOY M0102 - JORDAN BASIN US 43.49 -67.88 0.0 20050201 20170923 997184 99999 SCOTIAN SHELF US ME 43.62 -66.55 4.0 20050202 20081117 997185 99999 CENTRAL LONG ISLAND SOUND US 41.14 -72.66 0.0 20050201 20170923 997186 99999 WESTERN LONG ISLAND SOUND US 40.96 -73.58 0.0 20050201 20170914 997187 99999 POINT SAPIN CA 46.85 -64.64 3.0 20050505 20170923 997189 99999 NE BURGEO BANK CA 47.28 -57.35 3.0 20050216 20161201 997190 99999 LAKE ONTARIO BUOY - 20NM NORTH NORTHEAST US 43.62 -77.41 74.7 20050401 20170923 997191 99999 LAKE WINNIPEG S. BASIN CA 50.79 -96.73 217.0 20050524 20170923 997192 99999 SOUTH GEORGIAN BAY CA 44.94 -80.63 176.0 20050422 20170923 997193 99999 LAKE WINNIPEG NORTH CA 53.2 -98.83 217.0 20060606 20170923 997194 99999 LAKE OF THE WOODS CA 49.7 -94.52 323.0 20050429 20170923 997195 99999 SOUTHERN LAKE HURON CA 43.54 -82.07 176.0 20050419 20170923 997196 99999 LAKE SIMCOE CA 44.5 -79.37 180.0 20050507 20170923 997197 99999 LAKE NIPISSING CA 46.23 -79.72 176.0 20050507 20170923 997198 99999 PORT ORFORD - 16 NM WEST OF PORT ORFORD US 42.75 -124.85 0.0 20050201 20170923 997199 99999 SOUTH SANTA ROSA ISLAND CA US 33.65 -120.2 3.0 20050201 20170923 997200 99999 MOORED BUOY 46072 51.617 -172.017 0.0 20050201 20130430 997201 99999 SHUMAGIN ISLANDS US 53.93 -160.81 3.0 20050201 20170923 997202 99999 ALBATROSS BANKS US 56.05 -152.45 3.0 20050201 20170923 997203 99999 WESTERN PRINCE WILLIAM SOUND US 60.8 -148.28 3.0 20050201 20170923 997204 99999 CAPE SUCKLING 84NM SOUTHEAST OF CORDOVA US 59.69 -143.42 0.0 20050201 20170923 997205 99999 CAPE EDGECUMBE BUOY US 56.59 -136.16 0.0 20050201 20170523 997206 99999 SAN CLEMENTE BASIN US 32.5 -118.0 3.0 20050201 20170923 997207 99999 NEW DUNGENESS WA (HEIN BANK) US 48.33 -123.17 3.0 20050201 20170922 997209 99999 ATLANTIC CITY MARINA NJ US 39.38 -74.42 0.0 20040803 20111002 997210 99999 AVALON NJ US 39.09 -74.72 0.0 20040803 20110704 997211 99999 TAS - TARPON SPRINGS FL US 28.15 -82.75 0.0 20040904 20150122 997212 99999 BRANT BEACH NJ US 39.61 -74.2 0.0 20040803 20110321 997213 99999 NORTH CHANNEL EAST CA 46.05 -82.64 180.0 20050609 20170923 997214 99999 PI-745 TABS K US 26.13 -96.31 3.0 20040907 20170923 997215 99999 MOORED BUOY 43110 59.5 -1.5 0.0 20041220 20050206 997216 99999 BUOY N - NORTHEAST CHANNEL US 42.31 -65.93 0.0 20040907 20170715 997217 99999 MOORED BUOY 44546 50.3 -74.2 0.0 20040908 20090624 997218 99999 PORT COLBORNE CA 42.74 -79.35 180.0 20040907 20170923 997219 99999 LAKE ST CLAIR CA 42.43 -82.68 178.0 20040907 20170923 997220 99999 MOORED BUOY 46779 55.417 -15.232999999999999 0.0 20040907 20041210 997222 99999 MOORED BUOY 52531 22.0 125.0 0.0 20050417 20050417 997223 99999 MOORED BUOY 52535 22.366999999999997 -136.05 0.0 20060415 20061207 997224 99999 30NM SOUTHWEST OF MIZEN HEAD EI 51.277 -10.55 2.5 20040907 20151110 997225 99999 DONEGAL BAY EI 55.0 -10.0 4.5 20040907 20160225 997226 99999 MOORED BUOY 62131 58.1 0.1 0.0 20040908 20130430 997227 99999 MOORED BUOY 62140 57.4 1.3 0.0 20041002 20130430 997228 99999 MOORED BUOY 62168 53.417 2.917 0.0 20040908 20091201 997229 99999 MOORED BUOY 62202 52.2 3.8 0.0 20040908 20070814 997230 99999 MOORED BUOY 62206 53.3 2.917 0.0 20040907 20080222 997232 99999 MOORED BUOY 63055 60.6 1.7 0.0 20041002 20130430 997233 99999 MOORED BUOY 64049 UK 57.1 2.2 0.0 20040907 20160110 997234 99999 LAKE WINNIPEG NARROWS CA 51.45 -96.7 217.0 20050614 20170923 997235 99999 ISLE DERNIERES LA / CSI05 US 29.05 -90.53 0.0 20040921 20120626 997236 99999 MARSH ISLAND LA / CSI03 US 29.44 -92.06 0.0 20040922 20170923 997237 99999 SHIP ISLAND PASS MS / CSI13 US 30.27 -89.02 0.0 20050219 20050708 997238 99999 SALT POINT LA / CSI14 US 29.52 -91.55 0.0 20040921 20051001 997239 99999 SOUTH TIMBALIER BLOCK 52 LA / CSI06 US 28.87 -90.48 0.0 20040921 20170923 997241 99999 PLATFORM NO. 63106 US 61.016999999999996 1.117 3.0 20050201 20170923 997242 99999 NORTHWEST GULF 57NM EAST OF KODIAK AK US 58.0 -150.0 0.0 20050609 20170923 997243 99999 NEAH BAY WA (TRAFFIC SEPARATION LIGHTED US 48.49 -124.73 3.0 20050201 20170923 997245 99999 MOORED BUOY 48613 75.5 -14.4 0.0 20051206 20060116 997246 99999 MOORED BUOY 62159 58.2 0.017 0.0 20050202 20130430 997247 99999 MOORED BUOY 41545 24.2 -72.1 0.0 20050216 20170427 997248 99999 MOORED BUOY 13600 21.9 -44.2 0.0 20060201 20170923 997249 99999 MOORED BUOY 41542 26.9 -69.1 0.0 20050202 20170317 997250 99999 MOORED BUOY 41543 23.3 -71.0 0.0 20050221 20170427 997251 99999 MOORED BUOY 41539 24.116999999999997 -76.05 0.0 20050213 20170427 997252 99999 DATA BUOY 62147 UK 57.6 1.7 30.0 20050202 20150412 997253 99999 U.S. NAVY TOWER M2R6 US 31.53 -80.24 0.0 20041109 20091001 997254 99999 9063020 - BUFFALO NY US 42.88 -78.89 178.3 20041122 20170923 997255 99999 9087044 - CALUMET IL US 41.73 -87.54 179.4 20041122 20170923 997256 99999 DESDEMONA SANDS LIGHT OR US 46.23 -123.96 10.0 20041122 20150401 997257 99999 9075099 - DE TOUR VILLAGE MI US 45.99 -83.9 179.6 20041122 20170923 997258 99999 9014098 - FORT GRATIOT MI US 43.01 -82.42 180.1 20041122 20170923 997259 99999 9099090 - GRAND MARAIS MN US 47.75 -90.34 186.2 20041122 20170923 997260 99999 9075014 - HARBOR BEACH MI US 43.85 -82.64 179.2 20041122 20170923 997261 99999 9087023 - LUDINGTON MI US 43.95 -86.44 179.4 20041122 20170923 997262 99999 9099018 - MARQUETTE C.G. MI US 46.55 -87.38 187.5 20041122 20170923 997263 99999 MARSH ISLAND OR US 46.21 -123.62 7.0 20041122 20061012 997264 99999 9052030 - OSWEGO NY US 43.46 -76.51 78.0 20041122 20170923 997265 99999 9099004 - POINT IROQUOIS MI US 46.49 -84.63 186.1 20041122 20170923 997266 99999 9076024 - ROCK CUT MI US 46.27 -84.19 179.6 20041122 20170923 997267 99999 U.S. NAVY TOWER R4 US 30.8 -80.32 0.0 20041122 20051116 997268 99999 9076070 - S.W. PIER MI US 46.5 -84.37 185.7 20041122 20170923 997269 99999 DULUTH US 46.78 -92.09 185.4 20050104 20121231 997270 99999 ATLANTIC CITY US NJ 39.35 -74.42 10.0 20050104 20170923 997271 99999 THE BATTERY US NY 40.701 -74.014 10.0 20050104 20170923 997272 99999 BERGEN POINT US NY 40.639 -74.146 10.0 20050104 20170923 997273 99999 BORDEN FLATS LIGHT US MA 41.7 -71.17 10.0 20050104 20170923 997274 99999 WOODS HOLE US MA 41.52 -70.67 10.0 20050104 20170923 997275 99999 PORTLAND US ME 43.65 -70.25 10.0 20050104 20170923 997276 99999 CAPE MAY US NJ 38.97 -74.97 10.0 20050104 20130430 997277 99999 CONIMUCUT LIGHT US RI 41.72 -71.33 10.0 20050104 20170923 997278 99999 PROVIDENCE US RI 41.8 -71.4 10.0 20050104 20170923 997279 99999 FALL RIVER US MA 41.7 -71.0 10.0 20050104 20170923 997280 99999 KINGS POINT US NY 40.8 -73.77 10.0 20050104 20170923 997281 99999 LEWES US DE 38.78 -75.12 10.0 20050104 20170923 997282 99999 MONTAUK US NY 41.05 -71.97 10.0 20050104 20170923 997283 99999 NEW LONDON US CT 41.35 -72.08 8.5 20050104 20170923 997284 99999 NEW HAVEN US CT 41.28 -72.88 10.0 20050104 20170923 997285 99999 NEWPORT US RI 41.5 -71.32 10.0 20050104 20170923 997286 99999 PHILADELPHIA US PA 39.93 -75.0 20.0 20050104 20170923 997287 99999 EASTPORT US ME 44.9 -66.98 10.0 20050104 20170923 997288 99999 QUONSET POINT US RI 41.58 -71.4 10.0 20050111 20170923 997289 99999 SANDY HOOK US NJ 40.47 -74.0 10.0 20050104 20170923 997290 99999 BRIDGEPORT US CT 41.17 -73.18 10.0 20050215 20170923 997291 99999 FOREST OIL HIGH ISLA US LA 28.12 -93.67 34.0 20050201 20101217 997292 99999 LA JOLLA US CA 32.87 -117.25 20.0 20050201 20170923 997293 99999 MARBLEHEAD US OH 41.55 -82.9 190.0 20050201 20170923 997294 99999 POTTER COVE - PRUDENCE ISLAND US RI 41.637 -71.339 3.0 20050201 20170923 997295 99999 TOLEDO US OH 41.68 -83.4 184.0 20050201 20170923 997296 99999 BALTIMORE MD US MD 39.27 -76.57 10.0 20050217 20170923 997297 99999 CAMBRIDGE MD US MD 38.57 -76.07 6.0 20050217 20170923 997298 99999 CHEASAPEAKE BIO LAB US VA 38.317 -76.45 10.0 20050217 20081002 997299 99999 CHEASAPEAKE BRIDGE US VA 36.97 -76.12 16.0 20050217 20170923 997300 99999 CHEASAPEAKE CITY US MD 39.52 -75.8 10.0 20050217 20170923 997301 99999 FT PALASKI US GA 32.03 -80.9 6.0 20050217 20170923 997302 99999 FRANCIS SCOTT KEY BR US MD 39.22 -76.52 10.0 20050217 20170923 997303 99999 HORN POINT WX STN US MD 38.58 -76.08 10.0 20050217 20070827 997304 99999 LEWISETTA VA US VA 37.98 -76.47 10.0 20050218 20170923 997305 99999 MONEY POINT VA US VA 36.77 -76.3 10.0 20050217 20170923 997306 99999 SPRINGMAID PIER US SC 33.65 -78.92 10.0 20050217 20170923 997307 99999 OREGON INLET MARINA US NC 35.8 -75.53 10.0 20050217 20170923 997308 99999 RAPPAHANNOCK LGT US VA 37.53 -76.02 10.0 20050217 20170923 997309 99999 SOLOMONS ISLAND US MD 38.32 -76.45 10.0 20050218 20170923 997310 99999 SUNSET BEACH NC US NC 33.87 -78.5 10.0 20050217 20080317 997312 99999 TOLCHESTER BEACH US MD 39.2 -76.23 10.0 20050218 20170923 997313 99999 WACHAPREAGUE US VA 37.6 -75.68 10.0 20050217 20170923 997314 99999 WASHINGTON US DC 38.87 -77.02 10.0 20050217 20170923 997315 99999 YORKTOWN VA US VA 37.22 -76.48 10.0 20050217 20170923 997316 99999 GRAYS HARBOR WA (036) US 46.86 -124.24 0.0 20050228 20170923 997317 99999 HUMBOLDT BAY SOUTH SPIT CA (128) US 40.75 -124.31 0.0 20050228 20130403 997318 99999 CAPE MENDOCINO CA (094) US 40.29 -124.74 0.0 20050228 20170923 997319 99999 POINT REYES CA (029) US 37.57 -123.28 0.0 20050228 20170923 997320 99999 DIABLO CANYON CA (076) US 35.21 -120.86 0.0 20050228 20170923 997321 99999 GOLETA POINT CA (107) US 34.33 -119.8 0.0 20050228 20161031 997322 99999 ANACAPA PASSAGE CA (111) US 34.17 -119.43 0.0 20050228 20170923 997323 99999 HARVEST CA (071) US 34.45 -120.78 0.0 20050228 20170923 997324 99999 SAN NICOLAS ISLAND CA (067) US 33.22 -119.88 0.0 20050228 20170923 997326 99999 SANTA MONICA BAY CA (028) US 33.85 -118.63 0.0 20050228 20170923 997327 99999 SAN PEDRO CA (092) US 33.62 -118.32 0.0 20050228 20170923 997328 99999 DANA POINT CA (096) US 33.46 -117.77 0.0 20050228 20160309 997329 99999 OCEANSIDE OFFSHORE CA (045) US 33.18 -117.47 0.0 20050228 20170923 997330 99999 TORREY PINES OUTER CA (100) US 32.93 -117.39 0.0 20050228 20170923 997331 99999 POINT LA JOLLA CA (095) US 32.85 -117.35 0.0 20050228 20051004 997332 99999 POINT LOMA CA (091) US 32.63 -117.44 0.0 20050228 20050826 997333 99999 BUOY 46228 / PITAS POINT WAVERIDER US CA 34.317 -119.417 3.0 20050228 20050829 997334 99999 WAIMEA BAY HI (106) US 21.67 -158.12 0.0 20050228 20170923 997335 99999 MOKAPU POINT HI (098) US 21.42 -157.68 0.0 20050228 20170923 997336 99999 IPAN GUAM (121) US 13.54 144.79 0.0 20050228 20170923 997337 99999 CALCASIEU PASS US LA 29.768 -93.34299999999999 3.0 20050322 20170923 997338 99999 CHICAGO US IL 42.0 -87.5 202.0 20050322 20170923 997339 99999 MICHIGAN CITY US IN 41.73 -86.93 197.0 20050322 20170923 997340 99999 KENOSHA US WI 42.58 -87.8 196.0 20050322 20170923 997341 99999 MUSKEGON US MI 43.23 -86.33 185.0 20050322 20170923 997342 99999 MILWAUKEE US WI 43.05 -87.88 188.0 20050322 20170923 997343 99999 SOUTH HAVEN US MI 42.4 -86.28 193.0 20050322 20170923 997344 99999 TOLEDO LIGHT 2 US OH 41.82 -83.18 188.0 20050322 20170923 997345 99999 CLEARWATER BEACH US FL 27.97 -82.83 10.0 20050429 20170923 997346 99999 FT MYERS US FL 26.65 -81.87 6.0 20050322 20170923 997347 99999 FERNANDINA BEACH US FL 30.67 -81.47 7.0 20050322 20170923 997348 99999 KEY WEST US FL 24.55 -81.8 7.0 20050322 20170923 997349 99999 LIME TREE BAY VQ 17.7 -64.75 10.0 20050322 20170920 997350 99999 MAGUESYES ISLANDS RQ 17.97 -67.05 5.0 20050322 20170923 997351 99999 NAPLES US FL 26.12 -81.8 10.0 20050322 20170923 997352 99999 PANAMA CITY BEACH US FL 30.22 -85.88 10.0 20050322 20170923 997353 99999 ST PETERSBURG US FL 27.75 -82.62 10.0 20050322 20170923 997354 99999 TRIDENT PIER US FL 28.42 -80.58 10.0 20050322 20170923 997355 99999 VIRGINIA KEY US FL 25.73 -80.15 10.0 20050322 20170923 997356 99999 VACA KEY US FL 24.72 -81.1 10.0 20050322 20170923 997357 99999 MCKAY BAY ENTRANCE US FL 27.913 -82.425 2.0 20050322 20170923 997358 99999 MAYPORT US FL 30.397 -81.43 2.0 20050322 20170923 997359 99999 ALPENA US MI 45.067 -83.417 179.0 20050322 20170923 997360 99999 BAYOU GAUCHE US LA 29.77 -90.42 10.0 20050322 20170923 997361 99999 EAGLE POINT US TX 29.48 -94.92 10.0 20050322 20170923 997362 99999 FREEPORT US TX 28.95 -95.3 0.0 20050322 20080319 997363 99999 GALVESTON PLEASURE US TX 29.28 -94.78 17.0 20050322 20110720 997364 99999 GALVESTON PIER 21 US TX 29.3 -94.78 0.0 20050322 20170923 997365 99999 BAYOU LABRANCH US LA 30.05 -90.37 10.0 20050507 20120829 997366 99999 MALAQUITE BEACH US TX 27.58 -97.22 10.0 20050405 20170923 997367 99999 WAVELAND US MS 30.283 -89.367 10.0 20050405 20050829 997368 99999 SABINE PASS NORTH US TX 29.73 -93.87 3.0 20050410 20170923 997369 99999 PORT ISABEL US TX 26.05 -97.22 10.0 20050405 20170923 997370 99999 MORGANS POINT US TX 29.68 -94.98 10.0 20050405 20170923 997371 99999 KIPTOPEKE US VA 37.17 -75.98 7.0 20050405 20170923 997372 99999 REEDY POINT US DE 39.9 -75.57 0.0 20050405 20170923 997373 99999 WESTERN ALEUTIANS US 51.32 179.1 3.0 20050419 20170901 997374 99999 MOORED BUOY 46089 US 45.88 -125.77 4.0 20050419 20170923 997375 99999 MOORED BUOY 46092 US CA 36.75 -122.02 4.0 20050419 20170923 997376 99999 MOORED BUOY 46093 US CA 36.68 -122.4 4.0 20050419 20110929 997377 99999 FRIPP NEARSHORE (FRP 2) US 32.28 -80.41 3.0 20050517 20170923 997378 99999 CAPERS MID-SHELF (CAP 3) US 32.52 -79.34 3.0 20050517 20080428 997379 99999 SAND ISLAND MIDWAY US 28.2 -117.35 4.0 20050809 20170923 997380 99999 ADAK ISLAND US AK 51.87 -176.63 7.0 20050517 20170923 997381 99999 ANCHORAGE US AK 61.23 -149.88 3.0 20050517 20170923 997382 99999 NIKISKI AK US AK 60.68 -151.4 8.0 20050517 20170923 997383 99999 NOME NORTON SOUND US AK 64.5 -165.42 8.0 20050517 20170923 997384 99999 MOLUOLOE US HI 20.9 -156.47 4.0 20050517 20170923 997385 99999 KWAJALEIN ISLAND US 8.73 167.73 3.0 20050517 20170923 997386 99999 PRUDHOE BAY US AK 70.4 -148.52 5.0 20050517 20170923 997387 99999 WAKE ISLAND WQ 19.28 166.62 5.0 20050517 20170923 997388 99999 CAPERS NEARSHORE (CAP 2) US 32.81 -79.63 3.0 20050524 20170923 997389 99999 SUNSET NEARSHORE US NC 33.848 -78.48899999999999 3.0 20050524 20170923 997390 99999 FLORIPA BRAZIL (109) US -27.7 -48.13 0.0 20050802 20050819 997391 99999 W. FL SEA-COOS US 25.25 -82.21 0.0 20050524 20080113 997392 99999 MOORED BUOY 46091 US CA 36.83 -121.9 3.0 20050524 20111109 997393 99999 BUOY 44044 / PATUXENT RIVER BUOY US MD 38.389 -76.52600000000001 3.0 20050524 20071205 997394 99999 MOORED BUOY 46229 US CA 43.4 -124.65 0.0 20050524 20170923 997395 99999 YUCATAN BASIN MX 19.874000000000002 -85.059 0.0 20050524 20170923 997396 99999 MOORED BUOY 41040 US 14.5 -53.02 3.0 20050719 20170923 997397 99999 MOORED BUOY 41041 US 14.5 -46.0 3.0 20050719 20170923 997398 99999 BUOY 42055 / BAY OF CAMPECHE US 22.02 -94.05 3.0 20050719 20170923 997399 99999 BUOY 42057 / WESTERN CARIBBEAN US 14.98 -79.98 3.0 20050719 20170923 997400 99999 BUOY 42058 / CENTRAL CARIBBEAN US 14.98 -74.98 3.0 20050719 20170923 997401 99999 MOORED BUOY 42067 US 30.0 -88.6 3.0 20050719 20170706 997402 99999 ALASKA BUOY 46073 US 54.93 -172.02 3.0 20140704 20170419 997404 99999 BUOY25521 (ICEXAIR) US 83.7 -140.27 3.0 20050720 20151121 997405 99999 BUOY48542 (ICEXAIR) US 71.25 -151.82 3.0 20050720 20140331 997408 99999 BUOY48618 (ICEXAIR) 79.083 -160.11700000000002 3.0 20050720 20081101 997409 99999 BUOY48544 (ICEXAIR) US 81.32 -139.2 3.0 20050720 20080405 997410 99999 BUOY 47538 (EC) US 81.82 -115.08 3.0 20050720 20070327 997411 99999 BUOY48551 (ICE MASS 74.25 -142.3 3.0 20060914 20090215 997412 99999 BUOY26501 (ICE MASS) US 89.37 20.73 3.0 20050724 20070123 997413 99999 MOORED BUOY 25524 / ICEXAIR 86.25 -16.233 3.0 20050731 20150218 997414 99999 BUOY48582 (ICEXAIR) 84.93299999999999 -50.35 3.0 20050721 20050827 997415 99999 BUOY48543 (ICEXAIR) 78.917 -135.017 3.0 20080807 20090215 997416 99999 BUOY48536 (ICEXAIR) 81.9 -94.417 3.0 20050726 20100201 997417 99999 BUOY25529 (ICEXAIR) US 78.18 -167.33 3.0 20050720 20151129 997418 99999 BUOY25530 (ICEXAIR) US 80.13 -179.63 3.0 20050720 20160831 997419 99999 BUOY25531 (ICEXAIR) US 80.85 -160.88 3.0 20050720 20070618 997422 99999 BUOY48547 (ICEXAIR) US 72.9 165.12 3.0 20050721 20140531 997423 99999 BUOY 47501 (CES) US 78.37 -127.55 3.0 20050721 20140914 997424 99999 BUOY 47503 (CES) 81.017 -112.48299999999999 3.0 20050722 20050907 997425 99999 MOORED BUOY 47504 / ICE MASS 81.817 -115.81700000000001 3.0 20050724 20070424 997427 99999 BUOY65564 (METOCEAN) US 83.73 -65.97 3.0 20050720 20071022 997428 99999 BUOY65565 (METOCEAN 83.76700000000001 -78.367 3.0 20050720 20050920 997429 99999 MOORED BUOY 25574 / AWI 84.583 134.017 3.0 20050722 20050828 997430 99999 BUOY48586 (ICEXAIR) 77.533 -152.88299999999998 3.0 20050720 20051103 997431 99999 AARI/NAVO BUOY 2554 85.583 25.416999999999998 3.0 20050721 20051019 997432 99999 BUOY48583 (ICEXAIR) 85.56700000000001 -135.517 3.0 20050720 20051029 997433 99999 ONSLOW BAY INNER US NC 34.476 -77.28 3.0 20051010 20110822 997434 99999 MOORED BUOY 41038 US 34.0 -77.72 3.0 20051010 20170923 997435 99999 HI-A389 TABS V US 27.54 -93.36 3.0 20080714 20170923 997439 99999 MOORED BUOY 44022 US 40.88 -73.73 4.0 20051010 20170923 997440 99999 MOORED BUOY 46230 US 33.62 -118.02 0.0 20051010 20061116 997441 99999 DATA BUOY 13534 US 32.8 -27.4 3.0 20051011 20081022 997443 99999 MOORED BUOY 21636 US 27.9 128.2 3.0 20060724 20140806 997444 99999 DRIFTING BUOY 21637 20060518 20170314 997445 99999 MOORED BUOY 21639 41.0 150.8 3.0 20070724 20090927 997447 99999 MOORED BUOY 25522 84.3 70.4 3.0 20060923 20060924 997448 99999 MOORED BUOY 25573 85.0 151.8 3.0 20070619 20070619 997449 99999 MOORED BUOY 41525 26.5 -72.0 3.0 20051021 20061207 997450 99999 MOORED BUOY 41544 US 19.8 -61.7 3.0 20051011 20170427 997451 99999 MOORED BUOY 41550 25.7 -88.5 3.0 20051012 20051016 997452 99999 MOORED BUOY 41645 US 23.9 -68.7 3.0 20051027 20151118 997453 99999 MOORED BUOY 41646 US 23.4 -71.17 3.0 20051027 20160212 997454 99999 MOORED BUOY 44549 US 54.9 -22.9 3.0 20051015 20160203 997455 99999 MOORED BUOY 44550 50.4 -29.5 3.0 20051010 20100201 997456 99999 MOORED BUOY 44601 51.5 -30.9 3.0 20051028 20160524 997457 99999 MOORED BUOY 44607 40.3 -33.7 3.0 20051015 20100201 997458 99999 MOORED BUOY 44608 US 40.0 -32.0 3.0 20051015 20141020 997459 99999 MOORED BUOY 44609 47.9 -25.8 3.0 20051015 20100201 997460 99999 MOORED BUOY 44610 53.4 -37.7 3.0 20051016 20090624 997461 99999 MOORED BUOY 44611 55.0 -25.7 3.0 20051016 20100201 997462 99999 MOORED BUOY 44612 US 60.1 15.3 3.0 20051014 20150603 997463 99999 MOORED BUOY 44615 US 46.2 -48.0 3.0 20051011 20150202 997464 99999 MOORED BUOY 44616 58.0 -23.9 3.0 20071120 20100201 997465 99999 MOORED BUOY 44723 US 58.5 -42.0 3.0 20051011 20130731 997466 99999 MOORED BUOY 44725 US 55.5 -43.9 3.0 20051012 20151107 997467 99999 MOORED BUOY 44726 50.1 -47.3 3.0 20080314 20140122 997468 99999 MOORED BUOY 44727 US 43.6 -34.6 3.0 20051015 20120902 997469 99999 MOORED BUOY 44728 US 48.8 -28.4 3.0 20051016 20130731 997470 99999 MOORED BUOY 44729 US 46.4 -55.1 3.0 20051011 20090408 997471 99999 MOORED BUOY 44743 US 39.7 -11.5 3.0 20051014 20090519 997472 99999 MOORED BUOY 44744 US 36.9 -14.8 3.0 20051104 20160907 997473 99999 MOORED BUOY 44775 US 58.1 -15.9 3.0 20051010 20170116 997474 99999 MOORED BUOY 44831 US 54.2 -43.7 3.0 20051014 20160614 997475 99999 MOORED BUOY 44832 US 56.5 -40.5 3.0 20051014 20160114 997476 99999 MOORED BUOY 44833 US 44.2 -63.5 3.0 20060218 20130613 997477 99999 MOORED BUOY 44842 US 61.8 -25.4 3.0 20051023 20151118 997478 99999 MOORED BUOY 44843 US 64.0 -30.5 3.0 20051014 20170923 997479 99999 MOORED BUOY 44844 US 56.7 -33.8 3.0 20051014 20160115 997480 99999 MOORED BUOY 44845 US 44.1 -49.3 3.0 20051011 20170316 997481 99999 MOORED BUOY 44846 US 44.6 -31.6 3.0 20051019 20170314 997482 99999 MOORED BUOY 44849 43.5 -44.9 3.0 20051012 20071214 997483 99999 MOORED BUOY 44850 US 44.4 -40.6 3.0 20051013 20141110 997484 99999 MOORED BUOY 44901 US 42.7 -42.0 3.0 20051013 20170816 997485 99999 MOORED BUOY 46518 29.6 -151.3 0.0 20130501 20170404 997486 99999 MOORED BUOY 46539 50.4 -134.4 3.0 20051016 20090104 997487 99999 MOORED BUOY 46562 US 47.7 -145.0 3.0 20051014 20160326 997488 99999 MOORED BUOY 46635 47.7 -142.1 3.0 20051011 20080803 997489 99999 MOORED BUOY 46637 60.5 -145.7 3.0 20051011 20080216 997490 99999 DRIFTING BUOY CA 20051014 20090102 997491 99999 MOORED BUOY 46702 50.3 -166.2 3.0 20051014 20080908 997492 99999 MOORED BUOY 46707 49.7 -135.3 3.0 20051011 20090215 997494 99999 MOORED BUOY 47506 US 83.7 -63.6 3.0 20130602 20130819 997497 99999 MOORED BUOY 61501 US 41.3 7.0 3.0 20051014 20071126 997499 99999 MOORED BUOY 62502 46.4 -5.3 3.0 20051012 20090105 997500 99999 MOORED BUOY 62503 45.7 -4.9 3.0 20051012 20120902 997501 99999 MOORED BUOY 62504 US 46.8 -8.2 3.0 20051012 20141127 997502 99999 MOORED BUOY 62510 US 35.2 -23.0 3.0 20051018 20081221 997503 99999 MOORED BUOY 62512 39.4 -16.5 3.0 20090408 20100201 997504 99999 MOORED BUOY 62513 52.8 -16.1 3.0 20090410 20120902 997505 99999 MOORED BUOY 62514 US 62.9 -41.6 3.0 20051014 20150820 997506 99999 MOORED BUOY 62515 US 44.3 -5.5 3.0 20051012 20140122 997507 99999 MOORED BUOY 62557 US 29.3 -22.8 3.0 20051011 20160902 997508 99999 MOORED BUOY 62564 US 41.5 -24.0 3.0 20051011 20061208 997509 99999 MOORED BUOY 62901 US 53.6 -17.3 3.0 20051010 20081215 997510 99999 MOORED BUOY 62926 45.1 -6.5 3.0 20080915 20081121 997511 99999 MOORED BUOY 62936 US 47.9 -26.7 3.0 20051015 20140908 997512 99999 MOORED BUOY 64609 62.8 -37.6 3.0 20051012 20051221 997513 99999 MOORED BUOY 64612 US 61.0 -25.1 3.0 20051011 20130911 997514 99999 MOORED BUOY 13518 26.9 -66.3 3.0 20130501 20150615 997515 99999 MOORED BUOY 13524 30.4 -17.1 3.0 20130501 20150519 997517 99999 MOORED BUOY 13622 24.5 -44.167 3.0 20140422 20140602 997520 99999 MOORED BUOY 21917 28.1 179.0 3.0 20070928 20160224 997521 99999 MOORED BUOY 22571 1.0170000000000001 104.05 0.0 20140325 20150603 997522 99999 MOORED BUOY 22576 29.7 177.017 3.0 20140713 20150424 997523 99999 MOORED BUOY 22578 36.016999999999996 -174.9 3.0 20140521 20150515 997524 99999 MOORED BUOY 22581 18.8 -110.5 3.0 20130502 20150421 997525 99999 DATA BUOY 22594 US 16.3 -111.8 3.0 20140611 20150828 997527 99999 MOORED BUOY 22925 9.9 107.0 3.0 20131204 20140321 997529 99999 MOORED BUOY 41560 16.8 -56.5 3.0 20130514 20150430 997530 99999 MOORED BUOY 41566 30.6 -68.9 3.0 20080930 20150714 997531 99999 MOORED BUOY 41578 32.833 -56.6 3.0 20130501 20130831 997532 99999 MOORED BUOY 41613 24.1 -46.167 3.0 20140321 20150603 997533 99999 MOORED BUOY 41616 25.7 -76.3 3.0 20130501 20150519 997534 99999 MOORED BUOY 41909 30.9 -70.4 3.0 20051021 20130723 997535 99999 MOORED BUOY 41910 26.4 -68.1 3.0 20081214 20141122 997536 99999 MOORED BUOY 41912 30.3 -60.7 3.0 20051026 20151224 997537 99999 MOORED BUOY 41927 24.9 -70.1 3.0 20051019 20141007 997538 99999 MOORED BUOY 41929 28.9 -67.6 3.0 20130605 20140806 997539 99999 MOORED BUOY 41931 34.7 -70.1 3.0 20051019 20080916 997540 99999 MOORED BUOY 41934 24.9 -69.4 3.0 20051019 20170923 997541 99999 MOORED BUOY 41935 27.9 -69.5 3.0 20130501 20131118 997542 99999 MOORED BUOY 43566 8.6 -83.1 3.0 20140610 20151005 997545 99999 DATA BUOY 46538 US 49.4 -136.8 3.0 20051023 20170923 997546 99999 DATA BUOY 46559 US 41.7 -142.4 3.0 20051018 20161228 997547 99999 DATA BUOY 46560 US 48.5 -159.0 3.0 20051023 20151020 997548 99999 DATA BUOY 46561 US 47.17 -168.7 3.0 20051021 20170503 997549 99999 DATA BUOY 46565 US 44.9 -163.7 3.0 20051021 20170923 997550 99999 DATA BUOY 46566 51.4 -160.7 3.0 20070817 20090105 997551 99999 DATA BUOY 46567 US 49.5 -178.5 3.0 20051019 20150406 997552 99999 DATA BUOY 46568 US 50.3 -174.0 3.0 20051018 20160307 997553 99999 DATA BUOY 46632 53.6 -134.5 3.0 20051018 20080320 997554 99999 DATA BUOY 46657 53.3 -143.7 3.0 20051018 20071117 997555 99999 DATA BUOY 46698 CA 52.1 -154.0 3.0 20051018 20081214 997556 99999 DATA BUOY 48584 US 80.7 -156.3 3.0 20051018 20060712 997561 99999 DATA BUOY 51659 US 29.3 -164.9 3.0 20060124 20170401 997575 99999 DATA BUOY 51943 US 29.4 126.17 3.0 20060201 20060201 997581 99999 DATA BUOY 52520 US 23.8 145.5 3.0 20051027 20060114 997582 99999 DATA BUOY 52610 29.6 174.6 3.0 20070326 20070326 997583 99999 DATA BUOY 52688 28.6 154.7 3.0 20051018 20051018 997587 99999 DATA BUOY 53570 US 29.7 -152.8 3.0 20060725 20150511 997590 99999 DATA BUOY 53574 US 25.5 164.1 3.0 20060112 20131024 997595 99999 DATA BUOY 62931 42.7 -10.1 3.0 20051021 20081216 997596 99999 DATA BUOY 62935 US 45.0 -31.3 3.0 20051018 20150319 997597 99999 DATA BUOY 21522 US 20.0 142.1 3.0 20060114 20161102 997598 99999 DATA BUOY 21641 36.8 152.6 3.0 20051109 20090927 997599 99999 MOORED BUOY 21908 26.7 140.1 3.0 20071206 20151119 997600 99999 DATA BUOY 21910 US 37.0 134.4 3.0 20060909 20170721 997601 99999 MOORED BUOY 21915 38.5 134.2 3.0 20070919 20170923 997602 99999 MOORED BUOY 21919 41.7 149.7 3.0 20130501 20150606 997604 99999 MOORED BUOY 21929 36.2 -179.5 3.0 20051021 20160322 997605 99999 DATA BUOY 21933 37.7 135.6 3.0 20061005 20090408 997606 99999 DATA BUOY 21935 US 31.8 170.7 3.0 20051019 20150830 997607 99999 DATA BUOY 21939 US 38.0 157.7 3.0 20051019 20090105 997609 99999 DATA BUOY 21945 US 43.0 155.7 3.0 20051021 20141017 997610 99999 MOORED BUOY 21948 44.2 166.2 3.0 20071209 20160724 997611 99999 MOORED BUOY 21949 43.1 155.5 3.0 20051023 20160519 997612 99999 MOORED BUOY 21950 43.3 156.2 3.0 20150930 20170923 997613 99999 DRIFTER / ARGOS 90124 20051105 20170923 997614 99999 DRIFTER / ARGOS 90120 20051022 20170329 997615 99999 DATA BUOY 21958 US 44.6 175.2 3.0 20051021 20090101 997616 99999 DATA BUOY 21961 38.6 154.3 3.0 20051206 20051206 997617 99999 DRIFTER / ARGOS 90128 20051119 20170923 997618 99999 MOORED BUOY 22583 29.3 124.0 3.0 20130502 20150714 997620 99999 MOORED BUOY 22609 22.0 118.0 3.0 20140612 20150131 997621 99999 MOORED BUOY 22617 32.5 152.1 3.0 20141004 20160502 997622 99999 MOORED BUOY 22908 26.8 124.4 3.0 20131204 20140228 997624 99999 MOORED BUOY 22933 22.4 118.0 3.0 20070601 20070601 997625 99999 MOORED BUOY 22935 27.2 134.5 3.0 20131204 20140224 997626 99999 MOORED BUOY 22936 22.4 118.1 3.0 20131204 20140826 997627 99999 MOORED BUOY 22937 25.4 126.2 3.0 20140108 20140130 997628 99999 MOORED BUOY 31507 18.7 -84.2 3.0 20131203 20150613 997629 99999 MOORED BUOY 32560 25.1 166.8 3.0 20140410 20161023 997630 99999 MOORED BUOY 21903 40.8 154.8 3.0 20051105 20170304 997631 99999 DATA BUOY 21905 39.2 151.1 3.0 20051021 20090627 997632 99999 DATA BUOY 21906 40.2 157.6 3.0 20051105 20051215 997633 99999 DATA BUOY 21911 US 38.1 157.8 3.0 20051105 20170923 997634 99999 MOORED BUOY 21913 38.5 151.8 3.0 20070508 20150510 997636 99999 MOORED BUOY 21931 30.4 160.9 3.0 20140909 20160519 997637 99999 MOORED BUOY 21932 37.9 -179.0 3.0 20140915 20160208 997638 99999 MOORED BUOY 21934 41.4 150.2 3.0 20140930 20170531 997639 99999 MOORED BUOY 21937 38.0 138.7 3.0 20071120 20160926 997640 99999 MOORED BUOY 21943 34.8 161.9 3.0 20051228 20051228 997641 99999 MOORED BUOY 21946 38.5 148.9 3.0 20141014 20170415 997642 99999 MOORED BUOY 21947 39.6 154.5 3.0 20051024 20150920 997643 99999 DATA BUOY 21955 US 46.0 164.9 3.0 20051024 20170923 997644 99999 DATA BUOY 21959 US 43.9 169.9 3.0 20051105 20060927 997645 99999 DRIFTER / ARGOS 90129 20051023 20160613 997647 99999 MOORED BUOY 41553 29.3 -39.2 3.0 20051030 20151002 997648 99999 DATA BUOY 41555 US 38.9 -47.8 3.0 20060325 20130716 997649 99999 MOORED BUOY 41556 27.7 -72.0 3.0 20131018 20131224 997650 99999 DATA BUOY 41557 35.8 -62.6 3.0 20070822 20090419 997651 99999 MOORED BUOY 41561 40.0 -53.3 3.0 20131223 20151204 997652 99999 MOORED BUOY 41563 34.4 -68.2 3.0 20130501 20130618 997653 99999 MOORED BUOY 41567 38.8 -46.2 3.0 20130501 20150714 997654 99999 DATA BUOY 41568 US 38.0 -46.5 3.0 20051030 20130731 997655 99999 DATA BUOY 41571 25.6 -73.6 3.0 20091204 20091204 997656 99999 MOORED BUOY 41621 32.2 -76.8 3.0 20150601 20150608 997657 99999 MOORED BUOY 41901 23.4 -71.3 3.0 20080904 20080924 997658 99999 MOORED BUOY 41907 35.6 -43.1 3.0 20060104 20060104 997659 99999 DATA BUOY 41913 US 45.7 -34.0 3.0 20060218 20140224 997660 99999 MOORED BUOY 41917 32.9 -71.1 3.0 20070821 20140817 997661 99999 MOORED BUOY 43555 30.6 -113.8 3.0 20140527 20170923 997662 99999 MOORED BUOY 43558 30.2 -113.7 3.0 20140602 20170102 997663 99999 MOORED BUOY 43561 20.9 -105.6 3.0 20140602 20150714 997664 99999 MOORED BUOY 43568 29.4 -112.9 3.0 20160202 20160330 997667 99999 MOORED BUOY 44506 45.0 -54.0 0.0 20130501 20170717 997668 99999 MOORED BUOY 44514 27.1 -36.9 3.0 20131001 20150814 997669 99999 DATA BUOY 44636 US 44.0 -60.7 3.0 20051021 20090927 997670 99999 DATA BUOY 44637 US 44.6 -62.1 3.0 20051122 20090627 997671 99999 DATA BUOY 44847 US 41.5 -29.6 3.0 20051018 20160613 997672 99999 DATA BUOY 46563 US 40.9 -142.5 3.0 20051023 20160718 997674 99999 DATA BUOY 46652 31.0 -130.3 3.0 20051020 20080714 997677 99999 MOORED BUOY 13530 29.2 -15.5 3.0 20130501 20160822 997678 99999 MOORED BUOY 13587 33.9 -32.9 3.0 20130807 20160322 997681 99999 MOORED BUOY 22585 22.3 118.6 3.0 20140521 20151030 997686 99999 FRIPPS INLET US SC 32.33 -80.45 3.0 20060710 20080313 997687 99999 BURLINGTON DEL RIVER US NJ 40.08 -74.88 9.0 20060710 20170923 997688 99999 BISHOPS HEAD US MD 38.22 -76.03 3.0 20060710 20170923 997689 99999 BRANDYWINE SHOAL LGT US DE 38.98 -75.1 3.0 20060710 20170923 997691 99999 CAPE HENRY US VA 36.93 -76.02 3.0 20060710 20170923 997692 99999 CLEVELAND US OH 41.53 -81.63 210.0 20060710 20170923 997693 99999 S CRANEY ISLAND US VA 36.88 -76.33 3.0 20060710 20170923 997694 99999 DELAWARE CITY US DE 39.58 -75.58 8.0 20060817 20170923 997695 99999 JOHN MERCER PIER US NC 34.2 -77.83 3.0 20060710 20170923 997696 99999 LA PUSH US WA 47.92 -124.63 3.0 20060726 20170923 997697 99999 LITTLE RAPIDS US MI 46.48 -84.3 185.0 20060710 20170923 997698 99999 NEWBOLD US PA 40.8 -74.75 18.0 20060711 20170923 997699 99999 PAGO PAGO AQ -14.28 -170.7 3.0 20060726 20170923 997701 99999 PORT MANATEE US FL 27.63 -82.57 3.0 20060710 20170923 997702 99999 PINEY POINT US MD 38.13 -76.53 3.0 20060711 20170923 997703 99999 PILOT STATION EAST US LA 28.92 -89.4 3.0 20060711 20170923 997704 99999 RED DOG DOCK US AK 67.57 -164.65 3.0 20060711 20170923 997705 99999 OLD PORT TAMPA US FL 27.85 -82.55 9.0 20060710 20170923 997706 99999 GARIBALDI TILLAMOOK US OR 45.55 -123.9 3.0 20060711 20170923 997707 99999 WELLS US ME 43.32 -70.55 6.0 20060711 20170923 997708 99999 YORK RIVER E RANGE US VA 37.25 -76.33 10.0 20060710 20170923 997709 99999 S CAPERS ISLAND US SC 32.85 -79.7 10.0 20060710 20080309 997711 99999 DRIFTING BUOY 21540 US 20060728 20160519 997712 99999 DATA BUOY 21907 30.9 153.4 3.0 20070913 20160201 997713 99999 DATA BUOY 41027 US 33.3 -78.13 3.0 20060711 20080211 997714 99999 DRIFTING BUOY 41625 US 20060726 20070131 997715 99999 DATA BUOY 41630 30.7 -71.6 3.0 20060726 20070216 997716 99999 DRIFTING BUOY 41643 US 20060727 20070202 997718 99999 DRIFTING BUOY 41940 US 20060726 20170923 997722 99999 DRIFTING BUOY 44722 US 20060726 20081018 997723 99999 DATA BUOY 44730 61.4 -37.3 3.0 20080313 20140110 997724 99999 DRIFTING BUOY 44742 US 20060727 20090105 997725 99999 DRIFTING BUOY 44745 US 20060727 20170923 997726 99999 DATA BUOY 44746 41.3 -43.4 3.0 20070504 20170923 997727 99999 DRIFTING BUOY 44747 US 20060726 20160825 997729 99999 GALVESTON BAY N JETY US TX 29.35 -94.72 3.0 20061024 20170923 997731 99999 GRAND TRAVERSE LIGHT US MI 45.2 -85.55 184.0 20061024 20170923 997732 99999 PORTAGE CANAL US MI 47.27 -88.53 198.0 20061024 20170923 997733 99999 PULASKI SHOAL LIGHT US FL 24.68 -82.77 16.0 20061024 20170923 997734 99999 TIBURON PIER US CA 37.92 -122.45 3.0 20061024 20170922 997735 99999 WAUKEGAN HARBOR US IL 42.35 -87.82 188.0 20061024 20170923 997736 99999 PORT WASHINGTON US WI 43.38 -87.87 180.0 20061003 20170923 997737 99999 SILVER BAY US MN 47.27 -91.08 198.0 20061024 20170923 997738 99999 SAXON HARBOR US WI 46.57 -90.43 186.0 20061024 20170923 997739 99999 GRAND MARAIS US MI 46.667 -85.96700000000001 191.0 20061024 20170923 997741 99999 KEWAUNEE US WI 44.45 -87.48299999999999 178.0 20061024 20170923 997742 99999 MIDDLE BAY LIGHT US AL 30.433000000000003 -88.0 14.0 20061024 20170923 997743 99999 ROBINS REEF US NJ 40.65 -74.067 72.0 20061024 20170923 997779 99999 SHIP JOHN SHOAL US NJ 39.3 -75.367 3.0 20061121 20170923 997781 99999 COVE POINT US MD 38.717 -76.65 2.0 20061121 20170923 997782 99999 DOMINION TERMINAL ASSOCIATION US VA 36.967 -76.417 2.0 20061121 20170923 997783 99999 GODWIN ISLAND MET STATION US VA 37.217 -76.4 4.0 20061121 20090117 997784 99999 MEAHER PARK US AL 30.65 -87.93299999999999 10.0 20061121 20170923 997785 99999 MENOMINEE US MI 45.1 -87.583 178.0 20061121 20170923 997786 99999 VIMS PIER US VA 37.25 -76.5 5.0 20061121 20090117 997787 99999 BURNS HARBOR US IN 41.65 -87.15 182.0 20070105 20170923 997788 99999 CAPE DECISION US AK 56.0 -134.13299999999998 17.0 20070127 20170923 997789 99999 ELDRED ROCK US AK 58.967 -135.217 19.0 20070116 20170923 997791 99999 BERTH 223 MET US FL 27.916999999999998 -82.43299999999999 14.0 20070105 20140414 997792 99999 FAIRPORT US MI 45.617 -86.65 186.0 20070105 20170923 997793 99999 NAUBINWAY US MI 46.083 -85.43299999999999 180.0 20070105 20170923 997794 99999 OCEAN CREST PIER US NC 33.9 -78.15 12.0 20070109 20150625 997795 99999 ONTONAGON US MI 46.867 -89.333 186.0 20070105 20110707 997796 99999 POINT BISHOP US AK 58.2 -134.13299999999998 5.0 20070105 20170923 997797 99999 POINT RETREAT US AK 58.4 -134.95 32.0 20070116 20170923 997798 99999 SOUTH DOUGLAS US AK 58.266999999999996 -134.433 4.0 20070105 20170923 997799 99999 SISTERS ISLAND US AK 58.167 -135.25 51.0 20070206 20170923 997801 99999 LONGVIEW US WA 46.1 -122.95 3.0 20070105 20170923 997802 99999 BIG SABLE POINT US MI 44.05 -86.51700000000001 186.0 20070105 20170923 997803 99999 PORT WING US MI 46.783 -91.383 186.0 20070105 20170923 997804 99999 CAPE SPENCER US AK 58.2 -136.63299999999998 26.0 20070116 20170923 997805 99999 WAVERIDER BUOY US 30.717 -81.283 0.0 20070401 20170923 997806 99999 CDIP BUOY US FL 28.4 -80.533 0.0 20070401 20170923 997807 99999 FORT PIERCE US FL 27.55 -80.217 0.0 20070417 20170923 997808 99999 M6-WEST COAST EI 53.056000000000004 -15.924000000000001 3.0 20070401 20170923 997809 99999 CORONADO ISLAND MX 32.417 -117.31700000000001 3.0 20070401 20170923 997810 99999 BRUTUS GREEN CANYON 158 US LA 27.8 -90.667 37.0 20070401 20170216 997811 99999 ONSLOW BAY US NC 34.2 -76.95 3.0 20090801 20150107 997813 99999 SW BERING SEA US AK 55.0 175.283 3.0 20070401 20170320 997814 99999 SHELIKOF STRAIT US AK 57.917 -154.25 3.0 20070401 20170923 997815 99999 DRIFTING BUOY 13516 US 20130401 20170923 997816 99999 DRIFTING BUOY 13525 US 20130422 20151124 997817 99999 DRIFTING BUOY 13595 US 20130725 20160620 997818 99999 DRIFTING BUOY 13601 US 20131209 20170923 997819 99999 DRIFTING BUOY 13603 US 20130307 20170923 997820 99999 DRIFTING BUOY 13606 US 20130308 20170801 997821 99999 DRIFTING BUOY 13612 US 20130308 20130515 997822 99999 DRIFTING BUOY 13613 US 20130308 20130408 997823 99999 DRIFTING BUOY 13635 US 20140418 20160110 997824 99999 DRIFTING BUOY 13640 US 20140425 20151229 997825 99999 DRIFTING BUOY 13909 US 20140606 20170923 997828 99999 DRIFTING BUOY 15633 US 20130307 20170213 997831 99999 DRIFTING BUOY 21539 US 20090427 20161206 997832 99999 DRIFTING BUOY 21596 US 20080725 20170912 997833 99999 DRIFTING BUOY 22588 US 20081121 20160320 997834 99999 DRIFTING BUOY 25534 US 20080727 20150322 997835 99999 DRIFTING BUOY 25535 US 20140925 20150327 997838 99999 DRIFTING BUOY 25581 US 20130930 20140331 997840 99999 DRIFTING BUOY 41558 US 20131211 20170923 997841 99999 DRIFTING BUOY 41576 US 20131223 20150822 997842 99999 DRIFTING BUOY 41577 US 20130308 20130801 997843 99999 DRIFTING BUOY 41614 US 20130308 20150713 997844 99999 DRIFTING BUOY 41618 US 20130331 20150606 997845 99999 DRIFTING BUOY 41620 US 20140322 20150710 997846 99999 DRIFTING BUOY 41624 US 20130401 20160328 997848 99999 DATA BUOY 42361 US 27.55 -92.48299999999999 37.0 20080724 20170923 997849 99999 DATA BUOY 44021 US ME 43.783 -69.883 2.0 20121211 20130109 997852 99999 DATA BUOY 44053 US VA 37.233000000000004 -76.5 3.0 20080724 20090117 997853 99999 DATA BUOY 44054 US DE 38.883 -75.183 0.0 20080801 20100603 997854 99999 DRIFTING BUOY 41669 US 20130401 20161017 997855 99999 DRIFTING BUOY 41677 US 20130401 20160523 997856 99999 DRIFTING BUOY 41681 US 20080913 20160614 997857 99999 DRIFTING BUOY 41682 US 20140404 20160926 997858 99999 DRIFTING BUOY 41683 US 20080913 20160620 997859 99999 DRIFTING BUOY 41685 US 20130401 20161209 997861 99999 DRIFTING BUOY 41687 US 20130401 20160706 997862 99999 DRIFTING BUOY 41976 US 20130918 20150430 997863 99999 DRIFTING BUOY 41978 US 20130918 20141212 997864 99999 DRIFTING BUOY 41979 US 20130918 20131001 997865 99999 DRIFTING BUOY 41902 US 20080901 20080906 997866 99999 DRIFTING BUOY 41903 US 20140324 20140702 997867 99999 DRIFTING BUOY 41906 US 20080918 20080918 997868 99999 DRIFTING BUOY 41916 US 20130521 20131001 997869 99999 DRIFTING BUOY 41966 US 20130812 20131128 997871 99999 DRIFTING BUOY 41969 US 20130812 20160416 997872 99999 DRIFTING BUOY 42535 US 20160126 20160203 997873 99999 DRIFTING BUOY 42538 US 20160123 20160123 997874 99999 DRIFTING BUOY 42539 US 20161201 20170423 997876 99999 DRIFTING BUOY 43518 US 20131024 20160311 997877 99999 DRIFTING BUOY 43529 US 20080918 20150714 997879 99999 DRIFTING BUOY 44501 US 20130523 20170828 997881 99999 DRIFTING BUOY 44502 US 20140403 20170717 997882 99999 DRIFTING BUOY 44503 US 20140403 20170828 997883 99999 DRIFTING BUOY 44504 US 20140403 20170606 997884 99999 DRIFTING BUOY 44613 US 20090624 20160629 997885 99999 DRIFTING BUOY 44614 US 20100201 20161102 997886 99999 DRIFTING BUOY 44617 US 20080724 20131130 997887 99999 DRIFTING BUOY 44620 US 20080724 20151227 997888 99999 DRIFTING BUOY 44621 US 20080724 20150908 997889 99999 DRIFTING BUOY 44622 US 20090104 20150708 997891 99999 DRIFTING BUOY 44624 US 20090519 20170723 997892 99999 DRIFTING BUOY 44625 US 20080724 20160612 997893 99999 DRIFTING BUOY 44626 US 20090519 20130624 997894 99999 DRIFTING BUOY 44761 US 20080724 20161229 997895 99999 DRIFTING BUOY 44762 US 20080724 20160103 997896 99999 DRIFTING BUOY 44763 US 20080725 20160216 997897 99999 DRIFTING BUOY 44765 US 20080910 20170923 997898 99999 DRIFTING BUOY 44769 US 20120902 20160706 997899 99999 DRIFTING BUOY 44770 US 20080919 20151130 997901 99999 DRIFTING BUOY 44771 US 20080918 20151022 997902 99999 DRIFTING BUOY 44772 US 20081204 20170327 997903 99999 DRIFTING BUOY 44774 US 20081204 20160120 997904 99999 DRIFTING BUOY 44776 US 20081208 20170923 997905 99999 DRIFTING BUOY 44778 US 20090104 20170923 997906 99999 DRIFTING BUOY 44779 US 20090104 20170923 997907 99999 DRIFTING BUOY 44780 US 20090104 20131106 997908 99999 DRIFTING BUOY 44835 US 20130308 20170416 997909 99999 DRIFTING BUOY 44848 US 20080802 20170923 997911 99999 DRIFTING BUOY 44903 US 20080724 20160226 997913 99999 DRIFTING BUOY 44910 US 20081012 20090419 997914 99999 DRIFTING BUOY 44914 US 20081010 20081010 997915 99999 DRIFTING BUOY 44918 US 20080923 20081217 997916 99999 DRIFTING BUOY 44919 US 20080802 20081230 997917 99999 DRIFTING BUOY 44920 US 20081001 20090927 997919 99999 DRIFTING BUOY 44922 US 20081204 20090104 997921 99999 DRIFTING BUOY 44923 US 20130308 20130412 997922 99999 DRIFTING BUOY 44924 US 20130531 20140308 997923 99999 DRIFTING BUOY 44925 US 20130506 20130506 997924 99999 DRIFTING BUOY 44928 US 20130726 20160115 997925 99999 DRIFTING BUOY 44929 US 20130308 20130412 997928 99999 DRIFTING BUOY 44932 US 20130620 20140524 997933 99999 DRIFTING BUOY 46517 US 20130903 20170329 997934 99999 DRIFTING BUOY 46532 US 20130307 20170402 997935 99999 DRIFTING BUOY 46589 US 20130401 20161207 997936 99999 DRIFTING BUOY 46605 US 20130308 20150919 997938 99999 DRIFTING BUOY 47559 US 20130307 20130810 997939 99999 DRIFTING BUOY 48522 US 20080724 20090927 997940 99999 DRIFTING BUOY US 20170426 20170912 997941 99999 DRIFTING BUOY 48523 US 20080724 20131222 997942 99999 DRIFTING BUOY 48524 US 20131010 20140112 997944 99999 DRIFTING BUOY 48592 US 20080724 20090927 997945 99999 DRIFTING BUOY 48621 US 20080725 20140830 997946 99999 DRIFTING BUOY 48622 US 20140526 20140603 997947 99999 DRIFTING BUOY 48626 US 20130331 20140502 997949 99999 DRIFTING BUOY 48636 US 20080725 20150803 997951 99999 DRIFTING BUOY 51666 US 20131021 20160101 997952 99999 DRIFTING BUOY 51802 US 20160404 20170923 997953 99999 DRIFTING BUOY 51809 US 20160805 20170923 997957 99999 DRIFTING BUOY 52620 US 20080911 20151215 997958 99999 DRIFTING BUOY 52666 US 20080724 20170923 997963 99999 DRIFTING BUOY 61689 US 20130307 20130822 997964 99999 DRIFTING BUOY 61691 US 20130925 20140311 997973 99999 DRIFTING BUOY 62508 US 20081122 20140814 997976 99999 DRIFTING BUOY 62934 US 20080816 20160425 997977 99999 DRIFTING BUOY 64615 US 20131112 20151127 997978 99999 DRIFTING BUOY 64616 US 20131112 20141007 997981 99999 FOLLY BEACH PIER US SC 32.65 -79.933 3.0 20071017 20100916 997982 99999 PORT INLAND US MI 45.967 -85.867 180.0 20071016 20170923 997983 99999 DATA BUOY 41037 US NC 33.983000000000004 -77.35 3.0 20080724 20170923 997984 99999 DATA BUOY 46094 US OR 44.633 -124.3 3.0 20080724 20161014 997985 99999 DATA BUOY 46270 US AK 55.0 175.283 3.0 20091002 20091115 997986 99999 DATA BUOY 41043 US 20.983 -65.017 3.0 20080724 20170923 997987 99999 DATA BUOY 42059 US 15.0 -67.483 3.0 20090801 20170923 997988 99999 BIG BAY US MI 46.817 -87.71700000000001 185.0 20071016 20170923 997989 99999 OLCOTT HARBOR US NY 43.333 -78.717 83.0 20071016 20170923 997990 99999 ACE BASIN RESERVE US SC 32.55 -80.45 5.0 20071016 20170923 997991 99999 HUDSON RIVER RESERVE US NY 42.016999999999996 -73.917 12.0 20071016 20170923 997992 99999 APALACHICOLA RESERVE US FL 29.783 -84.883 5.0 20071016 20170923 997993 99999 GREAT BAY RESERVE US NH 43.05 -70.833 3.0 20071016 20170923 997994 99999 CHESAPEAKE BAY US MD 38.766999999999996 -76.7 3.0 20071016 20170923 997995 99999 SOUTH SLOUGH RESERVE US OR 43.35 -124.31700000000001 13.0 20071016 20161022 997996 99999 ST CLAIR SHORES US MI 42.467 -82.867 180.0 20071016 20170923 997997 99999 ELKHORN SLOUGH RESERVE US CA 36.817 -121.73299999999999 3.0 20071016 20170923 997999 99999 GENEVA ON THE LAKE US OH 41.85 -80.967 186.0 20071016 20170923 998000 99999 GUANA TOLOMATO MATANZAS US FL 29.65 -81.217 4.0 20071016 20170923 998001 99999 HURON LIGHT US OH 41.4 -82.55 184.0 20071016 20170923 998002 99999 JACQUES COUSTEAU RESERVE US NJ 39.533 -74.45 12.0 20071016 20170923 998003 99999 JOBOS BAY RESERVE RQ 17.95 -66.233 15.0 20071016 20170923 998004 99999 NARRAGANSETT BAY RESERVE US RI 41.633 -71.333 13.0 20071016 20170923 998005 99999 NORTH INLET-WINYAH BAY US SC 33.35 -79.183 4.0 20071016 20170923 998006 99999 NORTH CAROLINA RESERVE US NC 34.15 -77.85 5.0 20071016 20170923 998007 99999 PADILLA BAY RESERVE US WA 48.467 -122.46700000000001 3.0 20071016 20170923 998008 99999 ROOKERY BAY RESERVE US FL 26.033 -81.7 20.0 20071016 20170923 998009 99999 ROCHESTER US NY 43.25 -77.583 83.0 20071016 20170923 998010 99999 SAPELO ISLAND RESERVE US GA 31.416999999999998 -81.283 5.0 20071016 20170923 998011 99999 SAN FRANCISCO BAY RESERVE US CA 38.217 -122.01700000000001 3.0 20071016 20170923 998012 99999 ST JOSEPH US MI 42.1 -86.48299999999999 184.0 20071016 20170923 998013 99999 TIJUANA RIVER RESERVE US CA 32.575 -117.12700000000001 4.0 20071016 20170923 998014 99999 WAQUIOT BAY RESERVE US MA 41.583 -70.517 10.0 20071016 20170923 998015 99999 WELLS RESERVE US ME 43.333 -70.55 19.0 20071016 20170923 998016 99999 WEEKS BAY RESERVE US AL 30.416999999999998 -87.833 0.0 20071016 20170923 998017 99999 CHESAPEAKE BAY US VA 37.417 -76.717 11.0 20071016 20170923 998153 99999 DATA BUOY 42099 US FL 27.333000000000002 -84.23299999999999 3.0 20090801 20170923 998154 99999 DATA BUOY 44055 US DE 39.117 -75.25 3.0 20080724 20120223 998155 99999 DATA BUOY 44060 US CT 41.266999999999996 -72.067 4.0 20080724 20160902 998157 99999 DATA BUOY 46076 US AK 59.5 -148.0 5.0 20080724 20170923 998158 99999 DATA BUOY 46085 US AK 55.85 -142.55 5.0 20080724 20170923 998159 99999 DATA BUOY 46231 US CA 32.75 -117.367 3.0 20080724 20160109 998160 99999 DATA BUOY 46234 US CA 34.1 -119.167 3.0 20080724 20090228 998161 99999 DATA BUOY 46235 US CA 32.567 -117.167 3.0 20080724 20100114 998162 99999 DATA BUOY 46236 US CA 36.766999999999996 -121.95 3.0 20080724 20160525 998163 99999 DATA BUOY 46237 US CA 37.783 -122.6 3.0 20080724 20170923 998164 99999 DATA BUOY 51203 US HI 30.783 -157.017 3.0 20080724 20170504 998165 99999 MISSION ARANASAS RESERVE US TX 28.133000000000003 -97.03299999999999 5.0 20071203 20170826 998166 99999 CONNEAUT BREAKWATER US OH 41.983000000000004 -80.55 189.0 20071203 20170923 998167 99999 KACHEMAK BAY RESERVE US AK 59.6 -151.417 10.0 20071204 20170915 998168 99999 NIAGARA CG STATION US NY 43.266999999999996 -79.067 243.0 20071203 20170923 998169 99999 DELAWARE RESERVE US DE 39.083 -75.433 5.0 20071204 20170923 998170 99999 BERMUDA ESSO PIER BD 32.367 -64.7 2.0 20071204 20170923 998171 99999 GRAND BAY RESERVE US MS 30.35 -88.417 5.0 20090701 20170923 998172 99999 LINCOLN ROCK US AK 56.05 -132.7 12.0 20090701 20170923 998173 99999 MOSS LANDING S HARBOR US CA 36.8 -121.78299999999999 22.0 20071204 20161201 998174 99999 PORT INGLESIDE US TX 27.816999999999997 -97.2 10.0 20080115 20140812 998175 99999 CAL POLY PIER US CA 35.167 -120.73299999999999 16.0 20080130 20170923 998176 99999 SUPERIOR GRAND TRAVERSE BAY US MI 47.183 -88.23299999999999 191.0 20080115 20170923 998177 99999 LAKE MURRAY US SC 34.1 -81.267 109.0 20080116 20170923 998178 99999 BARTLET COVE US AK 58.45 -135.88299999999998 5.0 20080115 20170923 998179 99999 OLD WOMEN CREEK US OH 41.383 -82.5 182.0 20080115 20170923 998180 99999 PORT SANILAC US MI 43.417 -82.53299999999999 191.0 20080115 20170923 998181 99999 CLEAR LAKE US TX 29.55 -95.06700000000001 10.0 20080115 20080913 998182 99999 ROLLOVER PASS US TX 29.517 -94.5 10.0 20080115 20170923 998183 99999 SOUTH BIRD ISLAND US TX 27.483 -97.31700000000001 10.0 20080115 20170923 998184 99999 PORT ARANSAS US TX 27.833000000000002 -97.06700000000001 10.0 20090701 20170923 998185 99999 SEADRIFT US TX 28.4 -96.71700000000001 10.0 20080115 20170923 998186 99999 SPRINGMAID PIER US SC 33.65 -78.917 3.0 20090701 20101129 998187 99999 LAKE MARION US SC 33.55 -80.5 25.0 20080529 20170401 998188 99999 ALPENA US MI 45.067 -83.417 179.0 20100527 20100527 998189 99999 USGC FREEPORT US TX 28.933000000000003 -95.3 4.0 20080721 20170923 998191 99999 HILO US HI 19.717 -155.05 0.0 20080721 20170923 998192 99999 COAST GUARD SECTOR US AL 30.65 -88.05 10.0 20080721 20170923 998193 99999 MOKUOLOE US HI 21.433000000000003 -157.783 3.0 20080721 20170923 998194 99999 NEW CANAL US LA 30.017 -90.117 4.0 20080721 20170923 998195 99999 NAWILIWILI US HI 21.95 -159.35 0.0 20080721 20170923 998196 99999 MOBILE STATE DOCKS US AL 30.7 -88.03299999999999 0.0 20080721 20170923 998197 99999 OAKLAND MIDDLE HARBOR MET US CA 37.8 -122.31700000000001 7.0 20080721 20170923 998198 99999 SELDOVIA US AK 59.433 -151.717 0.0 20080721 20170923 998199 99999 PANAMA CITY US FL 30.15 -85.667 5.0 20080721 20170923 998201 99999 PASCAGOULA NOAA LAB US MS 30.35 -88.56700000000001 0.0 20080721 20170923 998202 99999 DOCK E PORT OF PASCAGOULA US MS 30.35 -88.5 0.0 20080721 20170923 998203 99999 WEST NEEBISH US MI 46.283 -84.2 177.0 20080721 20170923 998204 99999 WESTPORT US WA 46.917 -124.117 8.0 20080721 20170923 998205 99999 STROM THURMOND DAM US 33.667 -82.2 89.0 20080811 20170923 998206 99999 ELFIN COVE US AK 58.183 -136.333 0.0 20080811 20170923 998207 99999 SHELL WEST DELTA 143 OIL PLATFORM US 28.65 -89.55 41.0 20081218 20170923 998208 99999 LAKE WATEREE US SC 34.333 -80.7 87.0 20080811 20170923 998209 99999 DUCK PIER US NC 36.183 -75.75 7.0 20090701 20170923 998211 99999 OCEAN CITY INLET US MD 38.317 -75.083 0.0 20080915 20170923 998212 99999 CAMPBELL PARK US FL 27.767 -82.65 15.0 20080915 20141229 998213 99999 MIDDLE TAMPA BAY US FL 27.65 -82.583 10.0 20131207 20170923 998214 99999 MEDIA LUNA / LA PARGUERA RQ 17.933 -67.05 7.0 20080915 20130317 998215 99999 SALT RIVER BAY / ST CROIX VQ 17.783 -64.767 7.0 20080915 20131201 998216 99999 CHAMBERS ISLAND US WI 45.2 -87.35 181.0 20080917 20170808 998217 99999 AMERADA PASS US LA 29.45 -91.333 5.0 20081022 20170923 998218 99999 SHELL BEACH US LA 29.866999999999997 -89.667 5.0 20081022 20170923 998219 99999 BAY WAVELAND YACHT CLUB US MS 30.316999999999997 -89.31700000000001 5.0 20081022 20170923 998221 99999 ALITAK US AK 56.9 -154.25 0.0 20081022 20170923 998222 99999 KILO NALU OBS (WAVE SENSOR) US HI 21.283 157.86700000000002 -11.0 20081022 20120118 998223 99999 ALEXANDRIA BAY US NY 44.333 -75.933 0.0 20091111 20170923 998224 99999 ATKA US AK 52.233000000000004 -174.167 0.0 20081022 20170923 998225 99999 PORT ARTHUR US TX 29.866999999999997 -93.93299999999999 11.0 20081022 20170923 998226 99999 ROCKPORT US TX 28.017 -97.05 4.0 20081022 20170826 998227 99999 ATLANTIC CITY US NJ 39.35 -74.433 0.0 20090701 20170923 998228 99999 C-CUT ST PETERSBURG US FL 27.666999999999998 -82.617 3.0 20081114 20120109 998229 99999 CHRISTIANSTED HARBOR VQ 17.75 -64.7 3.0 20081114 20170923 998231 99999 DOCK C PASCAGOULA US MS 30.35 -88.56700000000001 3.0 20081114 20170923 998232 99999 FORT MORGAN US AL 30.217 -88.01700000000001 33.0 20090120 20121231 998233 99999 GULFPORT OUTER RANGE US MS 30.233 -88.98299999999999 13.0 20081114 20130120 998234 99999 WEST PIER GULFPORT US MS 30.35 -89.083 7.0 20081114 20121117 998235 99999 NIAGRA INTAKE US NY 43.067 -79.017 179.0 20081114 20170923 998236 99999 PACKERY CHANNEL US TX 27.633000000000003 -97.23299999999999 11.0 20081114 20170923 998237 99999 PAGO BAY GQ 13.417 144.8 7.0 20081114 20170923 998238 99999 PETITS BOIS ISLAND US 30.217 -88.5 6.0 20081114 20170923 998239 99999 RANGE A REAR PASCAGOULA US MS 30.333000000000002 -88.51700000000001 5.0 20081114 20170923 998241 99999 SEABULK TAMPA US FL 27.916999999999998 -82.45 0.0 20081114 20141229 998242 99999 SAGINAW BAY LIGHT 1 US MI 43.8 -83.71700000000001 188.0 20081114 20170923 998243 99999 SAND POINT US AK 55.333 -160.5 10.0 20090701 20170923 998244 99999 TPA CRUISE TERMINAL 2 TAMPA US FL 27.933000000000003 -82.43299999999999 15.0 20081114 20170923 998245 99999 WILLOUGHBY DEGUASSING STATION US VA 36.983000000000004 -76.317 3.0 20081114 20170923 998246 99999 ARECIBO RQ 18.483 -66.7 3.0 20090120 20170923 998247 99999 FAJARDO RQ 18.333 -65.633 3.0 20090120 20170920 998248 99999 MAYAGUEZ RQ 18.217 -67.15 3.0 20090120 20170920 998249 99999 PENUELAS RQ 17.967 -66.767 3.0 20090120 20130318 998251 99999 YABUCOA HARBOR RQ 18.05 -65.833 3.0 20090120 20170920 998252 99999 BAR HARBOR US ME 44.4 -68.2 3.4 20090417 20170923 998253 99999 CUTLER US ME 44.65 -67.3 4.9 20090417 20101111 998254 99999 KING COVE US AK 55.067 -162.333 5.0 20090701 20170923 998255 99999 MACKINAW CITY US MI 45.783 -84.71700000000001 178.5 20090417 20170923 998256 99999 TACOMA MET US WA 47.276 -122.41799999999999 11.0 20090417 20170923 998257 99999 ISABEL SEGUNDA / VIEQUES RQ 18.15 -65.433 6.0 20090402 20170920 998258 99999 KETCHIKAN US AK 55.333 -131.625 3.0 20090507 20170923 998259 99999 SKAGWAY US AK 59.45 -135.31799999999998 3.0 20090507 20170923 998261 99999 JUNEAU US AK 58.298 -134.412 3.0 20090507 20170923 998262 99999 AQUADILLA RQ 18.45 -67.167 3.4 20090609 20151105 998263 99999 CULEBRA RQ 18.3 -65.3 3.1 20090609 20170923 998264 99999 LAKE CHARLES US LA 30.217 -93.21700000000001 8.1 20090528 20170923 998265 99999 MARCUS HOOK US PA 39.817 -75.417 3.0 20090401 20170923 998266 99999 STURGEON POINT US NY 42.683 -79.05 4.2 20090605 20170923 998267 99999 ROCHESTER US NY 43.266999999999996 -77.617 3.0 20090609 20170923 998268 99999 TENAKEE SPRINGS US AK 57.783 -135.217 5.0 20090617 20161118 998269 99999 EAST BAY CAUSEWAY US FL 27.933000000000003 -82.43299999999999 5.0 20090520 20170923 998271 99999 VALDEZ US AK 61.133 -146.36700000000002 3.0 20090604 20170923 998274 99999 BROAD RIVER US FL 25.483 -80.983 3.0 20090701 20170923 998275 99999 BOB ALLEN US FL 28.017 -80.683 3.0 20090701 20170923 998276 99999 BLACKWATER SOUND US FL 25.183000000000003 -80.433 3.0 20090701 20170923 998277 99999 CANE PATCH US FL 25.416999999999998 -80.95 3.0 20090701 20170923 998278 99999 CANNON BAY US FL 25.7 -81.183 3.0 20090701 20170923 998279 99999 DUCK KEY US FL 25.183000000000003 -80.483 3.0 20090701 20170923 998281 99999 FAIRPORT US OH 41.766999999999996 -81.283 176.0 20090623 20170923 998282 99999 FRESH WATER CANAL LOCKS US LA 29.55 -92.3 10.0 20090519 20170923 998283 99999 GARFIELD BRIGHT US FL 25.166999999999998 -80.8 3.0 20090701 20170923 998284 99999 HIGHWAY CREEK US FL 25.25 -80.45 3.0 20090701 20170923 998285 99999 JOHNSON KEY US FL 25.05 -80.9 3.0 20090701 20170923 998286 99999 BROAD RIVER LOWER US FL 25.483 -81.117 3.0 20090701 20170906 998287 99999 LITTLE BLACKWATER US FL 25.217 -80.433 3.0 20090701 20170923 998288 99999 LITTLE MADEIRA US FL 25.166999999999998 -80.633 3.0 20090701 20170923 998289 99999 LOSTMANS RIVER US FL 25.55 -81.183 3.0 20090701 20170923 998291 99999 LITTLE RABBIT KEY US FL 24.983 -80.833 3.0 20090701 20170906 998292 99999 LONG SOUND US FL 25.233 -80.45 3.0 20090701 20170923 998293 99999 MURRAY KEY US FL 25.1 -80.95 3.0 20090701 20170923 998294 99999 PETERSON KEY US FL 24.916999999999998 -80.75 3.0 20090701 20170906 998295 99999 TROUT COVE US FL 25.217 -80.533 3.0 20090701 20170906 998296 99999 TARPON BAY EAST US FL 25.416999999999998 -80.967 3.0 20090701 20170923 998297 99999 TAYLOR RIVER US FL 25.217 -80.65 3.0 20090701 20170923 998298 99999 WATSON PLACE US FL 25.7 -81.25 3.0 20090701 20090918 998299 99999 WHIPRAY BASIN US FL 25.083000000000002 -80.733 3.0 20090701 20170818 998300 99999 BUTTERNUT KEY US FL 25.087 -80.51899999999999 3.0 20090701 20170923 998301 99999 ESPERANZA RQ 18.094 -65.471 3.4 20090721 20170920 998302 99999 GUNBOAT ISLAND US FL 25.375999999999998 -81.029 3.0 20090701 20170923 998303 99999 LITTLE CAYMAN CJ 19.699 -80.061 5.9 20090731 20121023 998304 99999 MONA ISLAND RQ 18.09 -67.939 3.0 20090727 20170923 998305 99999 PORT EVERGLADES CHANNEL US FL 26.092 -80.109 3.5 20090701 20170923 998306 99999 WILLY WILLY US FL 25.619 -81.044 3.0 20090722 20170923 998307 99999 WATSON PLACE US FL 25.708000000000002 -81.248 3.0 20090918 20170923 998308 99999 DATA BUOY 42012 US 30.065 -87.555 3.0 20130206 20170923 998310 99999 BUOY 32012 / WOODS HOLE STRATUS WAVE STATION CI -19.613 -85.585 3.0 20130206 20170923 998312 99999 BUOY 41044 / S. ATLANTIC 21.651999999999997 -58.695 3.0 20130206 20170923 998313 99999 BUOY 41046 / E BAHAMAS US 23.866999999999997 -70.87 3.0 20130206 20170923 998314 99999 BUOY 41047 / NE BAHAMAS US 27.469 -71.491 3.0 20130206 20170923 998315 99999 BUOY 41048 / W. BERMUDA US 31.978 -69.649 3.0 20130206 20170923 998316 99999 BUOY 41049 / ATLANTIC SOUTH US 27.5 -63.0 3.0 20130206 20170923 998317 99999 BUOY 41110 / MASONBORO INLET US NC 34.141 -77.709 3.0 20130206 20170923 998319 99999 42364 / RAM POWELL / VIOSCA KNOLL 936 / DRILLING PLATFORM US 29.06 -88.09 122.0 20130206 20170923 998321 99999 BUOY 44020 / NANTUCKET SOUND US MA 41.443000000000005 -70.186 3.0 20130206 20170923 998322 99999 BUOY 44056 / DUCK FRF US NC 36.2 -75.714 3.0 20130206 20170923 998323 99999 BUOY 44057 / SUSQUEHANNA US MD 39.544000000000004 -76.075 3.0 20130323 20170923 998324 99999 BUOY 44058 / STRINGRAY POINT US VA 37.552 -76.251 3.0 20130206 20170923 998325 99999 BUOY 44059 / NORFOLK US VA 36.846 -76.298 3.0 20130206 20160515 998327 99999 BUOY 44098 / JEFFREYS LEDGE US NH 42.801 -70.169 3.0 20130206 20170923 998328 99999 BUOY 44099 / CAPE HENRY US VA 36.908 -75.775 3.0 20130206 20170923 998329 99999 BUOY 44100 / DUCK FRF 26M US NC 36.258 -75.59100000000001 3.0 20130206 20170923 998332 99999 BUOY 46238 / SAN NICOLAS ISLAND NORTH US CA 33.405 -119.46700000000001 3.0 20130206 20130913 998333 99999 BUOY 46239 / POINT SUR US CA 36.338 -122.101 3.0 20130206 20170923 998334 99999 BUOY 46240 / CABRILLO POINT MONTEREY BAY US CA 36.626 -121.90700000000001 3.0 20130206 20170923 998335 99999 BUOY 46242 / CAMP PENDLETON NEARSHORE US CA 33.22 -117.44 3.0 20130206 20170923 998336 99999 BUOY 51100 / NORTHERN HAWAII US HI 23.558000000000003 -153.9 3.0 20130206 20150428 998337 99999 BUOY 51101 / NW HAWAII US HI 24.320999999999998 -162.058 3.0 20130206 20170923 998338 99999 BUOY 45159 / NW LAKE ONTARIO AJAX CA 43.77 -79.98 180.0 20130419 20170903 998339 99999 MOUTH OF BLACK RIVER US MI 42.975 -82.419 180.0 20090925 20170923 998340 99999 SANTA BARBARA US CA 34.408 -119.65799999999999 6.0 20090926 20170923 998341 99999 PORT ALEXANDER US AK 56.247 -134.64700000000002 7.0 20090919 20170923 998342 99999 TACONY/PALMYRA BRIDGE US NJ 40.012 -75.042 20.0 20091007 20150224 998345 99999 BUOY 42060 / E CARIBBEAN US 16.5 -63.5 3.0 20130206 20170923 998346 99999 BUOY 42085 / SE OF PONCE RQ 17.86 -66.524 3.0 20130206 20170923 998347 99999 OIL PLATFORM 42887 / MISSISSIPPI CANYON 778 US 28.191 -88.49600000000001 30.0 20130307 20170305 998348 99999 BUOY 44041 / JAMESTOWN US VA 37.204 -76.777 3.0 20130206 20170923 998349 99999 BUOY 44042 / POTOMAC US MD 38.033 -76.336 3.0 20130206 20170923 998350 99999 BUOY 44043 / PATAPSCO US MD 39.152 -76.391 3.0 20130206 20170923 998351 99999 BUOY 44066 / TX TOWER 4 US TX 39.583 -72.601 3.0 20130223 20170923 998352 99999 BUOY 44097 / BLOCK ISLAND US RI 40.981 -71.117 3.0 20130206 20170817 998353 99999 BUOY 46243 / CLATSOP SPIT US OR 46.216 -124.13 3.0 20130206 20170918 998354 99999 BUOY 51000 / N HAWAII US HI 23.546 -154.06 3.0 20130206 20170923 998405 99999 MANISTEE HARBOR US MI 44.248000000000005 -86.346 179.5 20091114 20170923 998406 99999 HUMBOLDT BAY WAVERIDER BUOY US CA 40.888000000000005 -124.35700000000001 0.0 20130206 20170923 998407 99999 HOLLAND US MI 42.768 -86.20100000000001 178.0 20100707 20170923 998408 99999 USS MIDWAY S NAVY PIER US CA 32.714 -117.175 35.0 20100707 20170711 998409 99999 ANNAPOLIS US MD 38.983000000000004 -76.48 0.0 20100714 20170923 998410 99999 BUOY 61213 IT 40.549 8.107000000000001 3.0 20130925 20141120 998414 99999 BUOY 61211 IT 39.451 15.917 3.0 20130511 20150101 998415 99999 BUOY 61216 IT 42.133 11.689 3.0 20130408 20141223 998416 99999 BUOY 61210 IT 39.024 17.22 3.0 20130604 20141210 998418 99999 BUOY 61208 IT 37.518 12.533 3.0 20130829 20141022 998419 99999 BUOY 61215 IT 40.975 17.378 3.0 20130424 20150101 998421 99999 BUOY 61209 IT 38.258 13.333 3.0 20130331 20141030 998425 99999 CORDOVA US AK 60.556999999999995 -145.755 12.5 20100729 20170923 998426 99999 HATTERAS US NC 35.208 -75.703 5.6 20100820 20170923 998427 99999 KODIAK ISLAND US AK 57.73 -152.514 6.7 20100729 20170923 998428 99999 OCEAN GROVE US NJ 40.209 -74.00399999999999 5.0 20100806 20110518 998429 99999 NOKOLSKI US AK 52.941 -168.87099999999998 5.0 20100821 20170923 998430 99999 SEWARD US AK 60.12 -149.42700000000002 4.7 20100729 20170923 998431 99999 UNALASKA US AK 53.879 -166.54 5.7 20100729 20170923 998432 99999 YAKUTAT US AK 59.548 -139.733 13.6 20100729 20170923 998433 99999 SACRIFICE ISLAND MX 19.174 -96.09299999999999 0.0 20100916 20170613 998434 99999 VERACURZ HARBOR MX 19.202 -96.113 0.0 20100916 20161113 998435 99999 OGDENSBURG US NY 44.703 -75.495 10.0 20101031 20170923 998436 99999 BARCELONA HARBOR US NY 42.346000000000004 -79.596 174.0 20110124 20150922 998437 99999 LA MANCHA BEACH MX 19.6 -96.383 9.1 20110227 20170923 998438 99999 TESORO MARINE TERMINAL US LA 29.666999999999998 -91.23299999999999 3.0 20110322 20170923 998439 99999 CEDAR POINT US AL 30.308000000000003 -88.14 4.0 20110609 20170923 998440 99999 KATRINA CUT US AL 30.258000000000003 -88.213 3.5 20110609 20170923 998441 99999 BARBUDA AC 17.590999999999998 -61.821000000000005 5.0 20110630 20170923 998442 99999 CUTLER FARRIS WHARF US ME 44.657 -67.21 10.0 20110613 20170923 998443 99999 BUOY 42360 / WALKER RIDGE 249 US 26.7 -90.46700000000001 3.0 20130206 20170923 998445 99999 BUOY 44061 US 38.783 -77.033 0.0 20130228 20170814 998446 99999 BUOY 44062 / GROVES REEF US 38.55 -76.417 0.0 20130206 20170923 998447 99999 BUOY 44063 / ANNAPOLIS US 38.967 -76.45 0.0 20130206 20170923 998448 99999 BUOY 44067 / POTOMAC RIVER US 38.367 -77.0 2.8 20130206 20130304 998449 99999 BUOY 45015 / CALUMET BEACH US 41.717 -87.53299999999999 0.0 20140714 20160920 998450 99999 BUOY 45016 / 63RD ST BEACH US 41.783 -87.56700000000001 0.0 20140714 20150914 998453 99999 BUOY 45022 / LITTLE TRAVERSE BAY US 45.4 -85.083 178.0 20130521 20170923 998454 99999 BUOY 45023 / PORTAGE CANAL US 47.283 -88.617 186.0 20130602 20170923 998455 99999 BUOY 45025 / S ENTRANCE US 46.95 -88.417 185.0 20130528 20170923 998456 99999 BUOY 45026 / ST JOSEPH US 41.983000000000004 -86.617 185.0 20130710 20170923 998457 99999 BUOY 45027 / N OF DULUTH US 46.867 -91.93299999999999 186.0 20130509 20170923 998458 99999 BUOY 45028 / W LAKE SUPERIOR US 46.817 -91.833 186.0 20130509 20170923 998459 99999 BUOY 46108 / CENTRAL COOK INLET US 59.766999999999996 -152.083 0.0 20130722 20170923 998460 99999 BUOY 46109 / PORT ANGELES US 48.117 -123.4 2.1 20130206 20130304 998462 99999 BUOY 46111 / FT WORDEN US 48.133 -122.75 2.7 20130206 20130304 998464 99999 BUOY 46246 / OCEAN STATION PAPA US 49.983000000000004 -145.083 0.0 20130206 20170923 998466 99999 BUOY 46248 / ASTORIA CANYON US 46.133 -124.667 0.0 20130216 20170923 998471 99999 BUOY 51204 / BARBERS PT US 21.283 -158.11700000000002 0.0 20130206 20170220 998472 99999 BUOY 52201 / KALO MAJURO RM 7.1 171.4 0.0 20130206 20170923 998473 99999 LOUISIANA OFFSHORE OIL PORT US LA 28.885 -90.024 40.5 20110831 20170923 998474 99999 DAVIS POINT SAN PABLO BAY US CA 38.056999999999995 -122.259 10.0 20110909 20170923 998475 99999 MARTINEZ-AMORCO US CA 38.033 -122.125 10.0 20110909 20170923 998476 99999 OAKLAND (BERTH 34) US CA 37.811 -122.333 10.0 20110909 20170923 998477 99999 RICHMOND (POINT POTRERO) US CA 37.906 -122.365 10.0 20110909 20170923 998478 99999 PITTSBURG (SUISUN BAY) US CA 38.042 -121.887 10.0 20110909 20170923 998479 99999 SAN FRANCISCO (PIER 1) US CA 37.798 -122.39299999999999 10.0 20110909 20170923 998480 99999 LAO LAO BAY - SAIPAN CQ 15.157 145.77 605.0 20110914 20140731 998481 99999 MANCHESTER US TX 29.726 -95.266 10.0 20111006 20170923 998482 99999 TEXAS STATE AQUARIUM US TX 27.811999999999998 -97.39 8.0 20111006 20170923 998483 99999 S PADRE ISLAND CGS US TX 26.076999999999998 -97.177 10.0 20111006 20170923 998484 99999 COPANO BAY US TX 28.118000000000002 -97.022 10.0 20111006 20170923 998485 99999 BON SECOUR US AL 30.329 -87.829 3.0 20111007 20170923 998486 99999 PILOT TOWN US LA 29.178 -89.258 10.0 20111024 20170923 998487 99999 PORT LAVACA US TX 28.64 -96.595 10.0 20111006 20170923 998488 99999 SOUTH OF ST JOHN VQ 18.25 -64.767 3.0 20130206 20170923 998489 99999 SAN JUAN RQ 18.483 -66.1 3.0 20130206 20170923 998490 99999 TEXAS POINT US TX 29.689 -93.84200000000001 11.4 20120114 20170923 998491 99999 PERDIDO PASS US AL 30.279 -87.556 2.4 20111123 20170923 998492 99999 ALGONAC US MI 42.621 -82.527 174.4 20120118 20170923 998493 99999 CLEAR WATER PASS US FL 25.295 -81.013 3.0 20120125 20170923 998494 99999 LANE RIVER US FL 25.284000000000002 -80.89399999999999 3.0 20120125 20170923 998495 99999 WHITE WATER - WEST US FL 25.23 -80.939 3.0 20120125 20170923 998496 99999 OAKLAND US CA 37.795 -122.288 4.0 20120507 20170923 998497 99999 FOSTER AVE CHICAGO US IL 41.976000000000006 -87.648 177.0 20120620 20170923 998498 99999 BUOY 45018 / MONTROSE AVE BEACH US 41.967 -87.633 0.0 20120620 20160914 998499 99999 NORTHERLY ISLAND US IL 41.856 -87.609 190.0 20120618 20170923 998500 99999 CCSFOR TFBH EQAA 45.107 159.0 20010922 20030816 998510 99999 20020108 20020125 998520 99999 GECONKFOR EQAC 45.3 20.8 401.0 20010922 20071231 998530 99999 20030518 20030816 998540 99999 EUROCORPS EQAE 48.55 7.767 139.0 20011108 20020425 998580 99999 20020424 20071231 998600 99999 ARRC MOENCHENGLADBA EQAK 51.183 6.212999999999999 67.0 20011015 20020306 998650 99999 20030811 20030816 998670 99999 HQ KFOR MAIN EQAR 42.427 21.15 657.0 20010922 20071212 998700 99999 BAF METEO WING EQAU 50.45 6.107 564.0 20011013 20020503 998710 99999 HDF SZOLNOK AB EQAV 47.133 20.2 89.0 20020226 20050531 998760 99999 20020423 20071231 998860 99999 20030518 20050524 999100 99999 20020425 20020612 999110 99999 GECONKFOR PRIZREN EQAB 42.217 20.75 464.0 20011127 20020612 999120 99999 GECONSFOR RAJLOVAC EQAT 43.867 18.3 494.0 20011126 20020612 999710 99999 LIBAVA EZ 49.67 17.48 600.0 20130910 20130919 999999 100 DEXTER B FLORENCE MEM FLD AP US AR 34.1 -93.066 55.5 20120902 20121124 999999 114 STARR BROWNING AIRSTRIP US MT K8S0 48.6 -113.117 1419.2 20140731 20150930 999999 135 GNOSS FIELD AIRPORT US CA KDVO 38.15 -122.55 1.2 20140731 20161231 999999 161 ERIE MUNICIPAL AIRPORT US CO KEIK 40.016999999999996 -105.05 1564.2 20140731 20161231 999999 262 MUSTANG ISLAND A85A US TX 27.733 -96.18299999999999 0.3 20140731 20170924 999999 343 ST MARYS HOSPITAL US MN 44.016999999999996 -92.48299999999999 355.1 20140731 20170924 999999 370 PINEY ISLAND US NC 35.02 -76.46 5.2 20140731 20170924 999999 395 SOUTH COUNTY AIRPORT OF SANTA CLARA COUNTY US CA KE16 37.082 -121.59700000000001 86.3 20140731 20170924 999999 421 MADISONVILLE MUNICIPAL AIRPORT US KY 37.35 -87.4 124.4 20140731 20170924 999999 423 DE QUINCY INDUSTRIAL AIRPARK US LA 30.441 -93.47399999999999 25.6 20140731 20170924 999999 425 MIDDLEBURY STATE AIRPORT US VT 43.985 -73.095 149.1 20140731 20170924 999999 440 CULLMAN REGIONAL AIRPORT FOLSOM FIELD US AL 34.269 -85.85799999999999 295.7 20140731 20170924 999999 445 DEMOPOLIS MUNICIPAL AIRPORT US AL KDYA 32.464 -87.954 34.1 20140731 20170924 999999 447 ATHENS MUNICIPAL AIRPORT US TX 32.164 -95.82799999999999 135.3 20140731 20170924 999999 451 BRANSON WEST MUNICIPAL EMERSON FIELD AIRPORT US MO KFWB 36.699 -93.402 411.2 20140731 20170924 999999 458 CLERMONT COUNTY AIRPORT US OH 39.078 -84.21 257.0 20140731 20170924 999999 460 LOUISIANA REGIONAL AIRPORT US LA 30.173000000000002 -90.941 4.6 20140731 20170303 999999 476 BIG SANDY REGIONAL AIRPORT US KY KSJS 37.751 -82.637 372.5 20140731 20170924 999999 477 ROGER M DREYER MEMORIAL AIRPORT US TX 29.529 -97.464 108.2 20140731 20170924 999999 480 EAGLE RANGE WSO US UT 41.05 -113.06 1292.1 20140731 20170922 999999 481 GRANITE PEAK FILLMORE ARPT US UT 38.958 -112.363 1519.4 20140730 20170923 999999 483 NEW ORLEANS SUPERDOME HELIPORT US LA 29.953000000000003 -90.083 9.1 20140731 20150128 999999 484 HULETT MUNICIPAL AIRPORT US WY 44.663000000000004 -104.568 1300.0 20140731 20170924 999999 3033 MORIARTY AIRPORT US NM 34.985 -106.0 1889.5 20020302 20170924 999999 3037 SHALTZ FIELD AIRPORT US KS KCBK 39.428000000000004 -101.046 971.1 20020902 20041231 999999 3047 MONAHANS 6 ENE US TX 31.622 -102.807 830.3 20030521 20170924 999999 3048 SOCORRO 20 N US NM 34.356 -106.88600000000001 1477.4 20030524 20170924 999999 3053 DONA ANA COUNTY AIRPORT AT SANTA TERESA US NM K5T6 31.883000000000003 -106.71700000000001 1253.3 20040102 20061115 999999 3054 MULESHOE 19 S US TX 33.955999999999996 -102.774 1140.6 20040227 20170924 999999 3055 GOODWELL 2 E US OK 36.599000000000004 -101.595 995.5 20040227 20170924 999999 3060 MONTROSE 11 ENE US CO 38.544000000000004 -107.693 2560.9 20040725 20170917 999999 3061 CORTEZ 8 SE US CO 37.255 -108.50399999999999 2448.8 20051102 20170924 999999 3062 LOS ALAMOS 13 W US NM 35.858000000000004 -106.521 2656.6 20040801 20170924 999999 3063 LA JUNTA 17 WSW US CO 37.864000000000004 -103.822 1336.9 20040803 20170924 999999 3067 OAKLEY 19 SSW US KS 38.87 -100.963 874.8 20051030 20170924 999999 3072 BRONTE 11 NNE US TX 32.041 -100.25 608.7 20061215 20170924 999999 3074 LAS CRUCES 20 N US NM 32.614000000000004 -106.741 1318.9 20070228 20170924 999999 3075 DULCE 1 NW US NM 36.935 -107.0 2074.5 20090712 20110929 999999 3076 GRAND JUNCTION 9 W US CO 39.102 -108.735 1769.7 20090616 20140601 999999 3077 HOLBROOK 17 ESE US AZ 34.821999999999996 -109.89299999999999 1710.8 20090711 20140601 999999 3078 EADS 16 ENE US CO 38.544000000000004 -102.50299999999999 1209.1 20090619 20140601 999999 3079 SAGUACHE 2 WNW US CO 38.099000000000004 -106.171 2384.5 20090618 20140601 999999 3080 RESERVE 1 W US NM 33.715 -108.777 1780.6 20090710 20140601 999999 3081 TROPIC 9 SE US UT 37.516999999999996 -111.978 1796.8 20090714 20140601 999999 3082 CARRIZOZO 1 W US NM 33.648 -105.895 1635.6 20090709 20140601 999999 3083 STRATTON 24 N US CO 39.655 -102.62200000000001 1283.8 20090614 20140601 999999 3084 CENTER A 4 SSW US CO 37.707 -106.14399999999999 2340.3 20091102 20140601 999999 3085 BOWIE 23 SSE US AZ 32.01 -109.389 1564.5 20100228 20140601 999999 3086 SPRINGFIELD 6 WSW US CO 37.381 -102.719 1389.0 20100517 20140601 999999 3087 SANTA FE 20 WNW US NM 35.825 -106.318 2212.2 20100509 20140601 999999 3088 WOODLAND PARK 14 WSW US CO 38.911 -105.265 2601.5 20100629 20140601 999999 3089 ROCKY FORD 1 ESE US CO 38.039 -103.695 1271.0 20091101 20140601 999999 3090 TAOS 27 NW US NM 36.652 -105.97200000000001 2484.4 20091103 20140601 999999 3091 KIM 9 WSW US CO 37.217 -103.50399999999999 1789.2 20100515 20140601 999999 3092 RATON 26 ESE US NM 36.778 -103.98200000000001 2204.3 20100513 20140601 999999 3093 GENOA 35 N US CO 39.786 -103.51700000000001 1452.1 20100701 20140601 999999 3094 CLAYTON 3 ENE US NM 36.47 -103.124 1489.0 20100511 20140601 999999 3095 MILLS 6 WSW US NM 36.061 -104.355 1788.0 20100512 20140601 999999 3096 RIFLE 23 NW US CO 39.760999999999996 -108.12700000000001 2301.2 20100720 20140601 999999 3097 MOUNTAINAIR 2 WSW US NM 34.516999999999996 -106.27 1977.9 20100627 20140601 999999 3098 EAGLE 13 SSE US CO 39.483000000000004 -106.734 2622.8 20100718 20140601 999999 3099 CRAIG 30 N US CO 40.948 -107.60799999999999 1986.7 20100721 20140601 999999 3102 ONTARIO INTERNATIONAL ARPT US CA KONT 34.056 -117.6 275.8 19680101 20041231 999999 3103 FLAGSTAFF PULLIAM ARPT US AZ KFLG 35.144 -111.666 2139.1 19510101 19761231 999999 3104 PALM SPRINGS THERMAL AP US CA KTRM 33.626999999999995 -116.15899999999999 -36.0 19500509 19540130 999999 3109 CAMP MERCURY US NV 36.95 -116.083 1196.0 19510214 19540501 999999 3122 TORRANCE AIRPORT US CA 33.802 -118.34200000000001 27.4 19530525 19540326 999999 3124 FORT HUACHUCA US AZ KFHU 31.588 -110.344 1432.0 19710101 19710801 999999 3125 YUMA PROVING GROUND US AZ 32.833 -114.4 98.8 19550101 19630101 999999 3129 MOJAVE MCAS US CA 35.05 -118.167 842.5 19551003 19581001 999999 3133 YUCCA FLATS TEST S T US NV UCC 36.95 -116.05 1196.9 19611217 19721231 999999 3143 JACKASS FLATS US NV 36.8 -116.26700000000001 1100.9 19610425 19611217 999999 3147 CUDDEBACK GUNNERY RANGE US CA 4CB 35.266999999999996 -117.43299999999999 864.1 19630701 19701231 999999 3148 GILA BEND AF AUX AIRPORT US AZ KGBN 32.883 -112.71700000000001 261.5 19680903 20041231 999999 3154 CAMP PENDLETON MCAS US CA KNFG 33.3 -117.35 23.8 19660701 19721228 999999 3157 LONG BEACH NS US CA NWF 33.75 -118.23299999999999 4.3 19720601 19721229 999999 3163 CALIENTE AIRPORT US NV KP38 37.611999999999995 -114.52600000000001 1333.2 19970902 20041231 999999 3174 ZAMPERINE FIELD AIRPORT US CA 33.8 -118.333 29.6 20040702 20041231 999999 3724 CARROLL CO RGNL/JJACK B POAGE FIELD AIRPORT US MI KDMW 39.608000000000004 -77.008 240.5 20040102 20070713 999999 3728 MCCLELLANVILLE 7 NE US SC 33.153 -79.36399999999999 2.7 20020815 20170924 999999 3733 ELKINS 21 ENE US WV 39.013000000000005 -79.47399999999999 1033.3 20031117 20170924 999999 3739 CAPE CHARLES 5 ENE US VA 37.291 -75.92699999999999 8.8 20040303 20170924 999999 3755 GARRETT COUNTY AIRPORT US MD 39.58 -79.339 894.0 20080101 20170924 999999 3758 DURHAM 11 W US NC 35.971 -79.093 171.3 20070329 20170924 999999 3759 CHARLOTTESVILLE 2 SSE US VA 37.998000000000005 -78.46600000000001 358.8 20070329 20170924 999999 3761 AVONDALE 2 N US PA 39.859 -75.786 121.9 20060602 20170924 999999 3809 DYERSBURG MUNICIPAL AP US TN KDYR 36.0 -89.40899999999999 103.0 19490101 19550101 999999 3810 HICKORY REGIONAL AP US NC KHKY 35.743 -81.382 362.1 19490101 19550101 999999 3811 JACKSON MCKELLAR-SIPES REGL A US TN KMKL 35.593 -88.917 128.6 19490101 19550101 999999 3812 ASHEVILLE AIRPORT US NC KAVL 35.431999999999995 -82.538 661.4 19480101 19721231 999999 3813 MACON MIDDLE GA REGIONAL AP US GA KMCN 32.685 -83.65299999999999 110.3 19481201 19721231 999999 3814 CORBIN CAA AIRPORT US KY 36.967 -84.133 359.1 19490801 19541011 999999 3815 PENSACOLA SAUFLEY NAS US FL NUN 30.483 -87.35 28.0 19481122 19760331 999999 3816 PADUCAH BARKLEY FIELD US KY KPAH 37.056 -88.774 125.9 19490901 19650101 999999 3817 MALDEN FAA AIRPORT US MO MAW 36.6 -89.98299999999999 92.0 19500101 19550101 999999 3818 MARIANNA MUNICIPAL AP US FL KMAI 30.836 -85.184 34.4 19500101 19550101 999999 3820 AUGUSTA BUSH FIELD US GA KAGS 33.364000000000004 -81.963 45.1 19510101 19721231 999999 3822 SAVANNAH INTL AP US GA KSAV 32.13 -81.21 15.5 19650101 19721231 999999 3838 VANDALIA FAA AIRPORT US IL VLA 38.983000000000004 -89.167 163.1 19510401 19550101 999999 3840 PENSACOLA ELLYSON FLD NAAS US FL NDP 30.533 -87.2 39.9 19520102 19731221 999999 3841 ATDL US TN 35.998000000000005 -84.219 310.6 20060101 20160301 999999 3847 MEMO-WHITON FIELD AIRPORT US TN KCSV 35.951 -85.081 570.0 19540501 19550101 999999 3849 LONDON-CORBIN AP US KY KLOZ 37.086999999999996 -84.07700000000001 369.1 19541011 19650101 999999 3850 CAIRNS FIELD FORT RUCKER US AL KOZR 31.267 -85.71700000000001 91.7 19710101 19710101 999999 3853 MAYPORT NS US FL KNRB 30.4 -81.417 4.3 19550705 19721231 999999 3855 PENSACOLA FOREST SHERMAN NAS US FL KNPA 30.35 -87.31700000000001 9.1 19590101 19721231 999999 3856 HUNTSVILLE MADISON COUNTY ARP US AL KHSV 34.644 -86.786 196.3 19580901 19721231 999999 3858 MCENTIRE ANG US SC KMMT 33.967 -80.8 76.8 19590206 20041231 999999 3860 HUNTINGTON TRI-STATE ARPT US WV KHTS 38.365 -82.555 255.4 19611201 19721231 999999 3866 MERIDIAN NAAS US MS KNMM 32.55 -88.56700000000001 96.6 19610801 19721231 999999 3867 SPRINGFIELD AF US OH SGH 39.85 -83.833 323.1 19611006 19701231 999999 3868 TERRE HAUTE HULMAN FIELD ANG US IN KHUF 39.452 -87.309 180.7 19611003 20041231 999999 3870 GREENVILLE-SPARTANBURG INTL AIRPORT US SC KGSP 34.884 -82.221 296.0 19621015 19721231 999999 3872 BECKLEY RALEIGH CO MEM AP US WV KBKW 37.784 -81.123 766.3 19630515 19851231 999999 3874 FORT BENNING MCKENNA US GA MKF 32.367 -84.8 134.1 19640302 19650722 999999 3876 VALPARAISO US FL 30.433000000000003 -86.93299999999999 11.9 19670213 19701222 999999 3877 SMOKY HILL AF US KS 38.65 -97.8 422.1 19681101 19701230 999999 3878 TROY AF US AL KTOI 31.861 -86.012 121.0 19690409 19701219 999999 3881 CENTREVILLE WSMO US AL KCKL 32.9 -87.25 138.1 19831101 19831231 999999 3883 11 WEST OXMOOR RD US AL 33.467 -86.833 226.8 20020902 20031231 999999 3901 LONGVIEW GREGG COUNTY AP US TX KGGG 32.385 -94.712 113.7 19500901 19550101 999999 3904 COLLEGE STATION EASTERWOOD FL US TX KCLL 30.589000000000002 -96.365 100.0 19510801 19550101 999999 3918 FLIPPIN US AR KFLP 36.291 -92.59 219.2 19510701 20041231 999999 3919 SALINA (OLD) MUNI AP US KS KSLN 38.8 -97.65 390.8 19520101 19550101 999999 3923 MCCONNELL AFB US KS KIAB 37.617 -97.26700000000001 417.9 19710101 19710101 999999 3927 DALLAS-FORT WORTH INTL AP US TX KDFW 32.898 -97.01899999999999 181.7 19530501 19721231 999999 3928 WICHITA MUNICIPAL ARPT US KS KICT 37.648 -97.43 408.4 19540101 19721231 999999 3929 RICHARDS GEBAUR AFB US MO KGVW 38.844 -94.56 332.2 19710101 19710101 999999 3931 FORT POLK AAF US LA KPOE 31.05 -93.18299999999999 100.6 19571101 19590504 999999 3934 NEW IBERIA NAAS US LA KARA 30.033 -91.883 7.9 19610101 19641016 999999 3937 LAKE CHARLES REGIONAL ARPT US LA KLCH 30.125 -93.228 2.7 19640101 19721231 999999 3938 FT LNRD WD AAF US MO KTBN 37.75 -92.15 353.3 19710101 19710101 999999 3939 CLAIBORNE RANGE AF US LA 31.066999999999997 -92.5 57.9 19630701 19640626 999999 3940 JACKSON INTERNATIONAL AP US MS KJAN 32.321 -90.07799999999999 100.9 19640101 19721231 999999 3943 MINERAL WELLS FT WOLTERS AF US TX 32.85 -98.05 253.9 19661003 19701218 999999 3944 PALO PINTO DEMPSEY AF US TX 32.783 -98.26700000000001 359.1 19680103 19701218 999999 3945 COLUMBIA REGIONAL AIRPORT US MO KCOU 38.817 -92.21799999999999 273.7 19691101 19721231 999999 3947 KANSAS CITY INTERNATIONAL AIRPORT US MO KMCI 39.297 -94.73100000000001 312.4 19721001 19721231 999999 3969 STEPHENVILLE CLARK FIELD US TX KSEP 32.215 -98.178 402.6 19831101 19831231 999999 4125 JOHN DAY 35 WNW US OR 44.556000000000004 -119.646 684.3 20030330 20170924 999999 4126 ARCO 17 SW US ID 43.461999999999996 -113.556 1804.4 20030710 20170924 999999 4127 MURPHY 10 W US ID 43.20399999999999 -116.751 1204.0 20030629 20170924 999999 4128 RILEY 10 WSW US OR 43.471000000000004 -119.69200000000001 1396.9 20030703 20170924 999999 4130 ST. MARY 1 SSW US MT 48.74100000000001 -113.43299999999999 1388.4 20030925 20170924 999999 4131 MOOSE 1 NNE US WY 43.662 -110.712 1970.8 20040630 20170924 999999 4133 HEBER CITY MUNI ARPT-RUSS MCDONALD FIELD US UT 40.482 -111.429 1718.2 20040702 20170924 999999 4134 GRANITE PEAK DUGWAY PROVING GROUND US UT KQCA 40.161 -113.351 1310.6 20060802 20170923 999999 4136 SPOKANE 17 SSW US WA 47.417 -117.52600000000001 691.0 20070801 20170924 999999 4137 DILLON 18 WSW US MT 45.158 -113.006 1820.0 20070728 20170924 999999 4138 BRIGHAM CITY 28 WNW US UT 41.61600000000001 -112.544 1509.1 20070819 20170924 999999 4139 DENIO 52 WSW US NV 41.848 -119.63600000000001 1981.2 20080616 20170924 999999 4140 LEWISTOWN 42 WSW US MT 46.885 -110.29 1545.3 20080727 20170924 999999 4141 COOS BAY 8 SW US OR 43.272 -124.319 3.7 20080819 20170924 999999 4143 PROVO 22 E US UT 40.282 -111.24 2379.9 20100731 20140601 999999 4221 ROCHE HARBOR SEAPLANE BASE US WA KW39 48.608000000000004 -123.15899999999999 0.0 20040102 20041231 999999 4222 REDDING 12 WNW US CA 40.650999999999996 -122.60700000000001 432.2 20030326 20170924 999999 4223 DARRINGTON 21 NNE US WA 48.541000000000004 -121.446 124.1 20030403 20170924 999999 4236 CORVALLIS 10 SSW US OR 44.419 -123.32600000000001 95.1 20060914 20170924 999999 4237 QUINAULT 4 NE US WA 47.513999999999996 -123.81200000000001 87.2 20060909 20170924 999999 4725 BINGHAMTON BROOME COUNTY ARPT US NY KBGM 42.207 -75.98 499.3 19480101 19721231 999999 4726 JOHNSTOWN CAMBRIA COUNTY AP US PA KJST 40.316 -78.834 696.2 19480926 19510701 999999 4727 GENEVA SAMPSON AFB US NY 42.75 -76.9 187.1 19520102 19560624 999999 4728 NIAGARA FALLS US NY E4C8 37.864000000000004 -103.823 1336.9 19520301 19540121 999999 4739 BELMAR ASC US NJ KBLM 40.183 -74.067 25.9 19550101 19710801 999999 4741 SCHENECTADY US NY KSCH 42.85 -73.95 115.2 19500101 19771201 999999 4751 BRADFORD REGIONAL AP US PA KBFD 41.8 -78.633 655.3 19570701 19721231 999999 4769 MAYNARD US MA 42.417 -71.483 63.1 19581001 19710801 999999 4780 FITCHBURG MUNICIPAL AP US MA KFIT 42.552 -71.756 106.1 19550101 19591231 999999 4782 SCHENECTADY US NY 42.833 -73.917 67.1 19611005 19620809 999999 4783 BELMAR MONMOUTH AAF US NJ BLM 40.183 -74.117 50.0 19630101 19631129 999999 4854 GAYLORD OTSEGO COUNTY AP US MI KGLR 45.013000000000005 -84.70100000000001 404.8 19980302 20041231 999999 4856 SEUL CHOIX POINT US MI KP75 45.95 -86.23 178.0 19980902 20041231 999999 4990 SIOUX FALLS 14 NNE US SD 43.735 -96.62200000000001 485.9 20020728 20170924 999999 4994 GOODRIDGE 12 NNW US MN 48.306000000000004 -95.874 350.5 20030820 20170924 999999 10502 GEORGETOWN GY SYCJ 6.5 -58.25 29.0 19490101 19490513 999999 10701 BALBOA ALBROOK PM MBLB 8.967 -79.55 9.1 19490101 19671230 999999 10715 COCO SOLO PM MBFS 9.367 -79.9 4.0 19450501 19570718 999999 10718 FORT KOBBE PM MBHO 8.917 -79.6 15.8 19541213 19680101 999999 10719 FORT SHERMAN PM MBFS 9.367 -79.95 9.1 19650401 19710701 999999 11610 WALLER BWI TD 10.617 -61.217 41.1 19490101 19491220 999999 11618 SAN JUAN NS RQ 18.467 -66.117 13.1 19450301 19620501 999999 11621 TRINIDAD BWI TD MCGU 10.683 -61.617 13.1 19450301 19550831 999999 11624 CHRISTIANSTED HAMILTON FIELD VQ VI TISX 17.7 -64.813 16.8 19510301 19610701 999999 11630 ROOSEVELT ROADS RQ PR TJNR 18.255 -65.641 11.6 19470701 19721201 999999 11631 SAN JUAN CITY RQ 18.467 -66.1 14.9 19500301 19550524 999999 11637 PONCE SANTA ISABEL RQ 17.967 -66.4 9.1 19510301 19540401 999999 11639 VIEQUES ISLAND NS RQ 18.117 -65.383 2.1 19531001 19531120 999999 11640 CHARLOTTE AMALIE HARRY S TRUM VQ VI TIST 18.336 -64.98 3.4 19530101 19610701 999999 11641 SAN JUAN L M MARIN INTL AP RQ PR TJSJ 18.433 -66.01100000000001 2.4 19550524 19951231 999999 11644 ST LUCIA ISLAND ST 13.75 -60.983000000000004 99.1 19560801 19571003 999999 11647 ST JOHNS AC MKPA 17.133 -61.783 18.9 19580101 19700213 999999 11650 SAN ISIDRO DR MSSO 18.5 -69.75 35.1 19650514 19660918 999999 11704 KINGSTON JM MKJP 17.9 -77.283 4.9 19490101 19490930 999999 11801 MERCEDES MNMG 12.133 -86.2 63.1 19421001 19460529 999999 11803 CORINTO MNCT 12.482999999999999 -87.18299999999999 4.0 19450401 19451201 999999 11806 PUERTO CASTILLA HO MHCT 16.017 -85.95 2.1 19450501 19451201 999999 11807 SWAN ISLAND HO MHIC 17.4 -83.93299999999999 11.0 19480701 19490101 999999 11813 ROBERTS CJ WI MWCR 19.3 -81.367 1.8 19660201 19721231 999999 12706 GREAT EXUMA ISLAND BF MGTE 23.517 -75.783 18.9 19450401 19450623 999999 12712 GOLD ROCK CREEK BF MYGM 26.616999999999997 -78.367 6.1 19510122 19701231 999999 12713 ELEUTHERA ISLAND BF MYEM 25.267 -76.3 10.1 19520201 19701231 999999 12714 GRAND TURK ISLAND TK MBJT 21.433000000000003 -71.133 3.0 19541115 19701231 999999 12715 MAYAGUAN BF 22.366999999999997 -73.033 21.0 19550115 19571002 999999 12716 SAN SALVADOR BF MYSM 24.066999999999997 -74.517 9.1 19550201 19641216 999999 12810 MACDILL AAF US FL KMCF 27.85 -82.51700000000001 4.3 19710101 19710101 999999 12815 PINECASTLE AAF US FL KMCO 28.434 -81.325 32.3 19710101 19710101 999999 12826 HOMESTEAD AAF US FL KHST 25.483 -80.383 2.1 19710101 19710101 999999 12832 APALACHICOLA US FL KAAF 29.733 -85.03299999999999 5.8 19480101 19490101 999999 12833 CROSS CITY AIRPORT US FL KCTY 29.633000000000003 -83.105 12.8 19490101 19550101 999999 12834 DAYTONA BEACH REGIONAL ARPT US FL KDAB 29.183000000000003 -81.048 12.5 19480101 19721231 999999 12835 FORT MYERS PAGE FIELD US FL KFMY 26.585 -81.861 5.5 19480101 19751231 999999 12836 KEY WEST INTL ARPT US FL KEYW 24.555 -81.752 6.4 19480101 19721231 999999 12838 MELBOURNE REGIONAL AP US FL KMLB 28.101 -80.64399999999999 8.2 19480101 19550101 999999 12839 MIAMI INTL AP US FL KMIA 25.791 -80.316 9.1 19480101 19721231 999999 12841 ORLANDO MUNICIPAL ARPT US FL KORL 28.545 -81.333 34.1 19500101 19721231 999999 12842 TAMPA INTL ARPT US FL KTPA 27.962 -82.54 3.4 19480101 19721231 999999 12843 VERO BEACH MUNICIPAL ARPT US FL KVRB 27.653000000000002 -80.243 8.5 19490114 19550101 999999 12844 WEST PALM BEACH INTL ARPT US FL KPBI 26.685 -80.09899999999999 6.4 19480101 19751231 999999 12846 DAYTONA BEACH NAS US FL 29.183000000000003 -81.067 18.9 19450201 19460201 999999 12847 DELAND NAS US FL 29.083000000000002 -81.417 32.0 19450301 19460101 999999 12848 DINNER KEY NAF US FL 25.733 -80.233 4.0 19450309 19450501 999999 12849 FORT LAUDERDALE HOLLYWOOD INT US FL KFLL 26.072 -80.154 3.4 19460101 19461011 999999 12850 KEY WEST NAS US FL KNQX 24.583000000000002 -81.683 7.3 19450301 19721231 999999 12851 MELBOURNE NAS US FL 28.1 -80.633 17.1 19450401 19460101 999999 12852 MIAMI MCAS US FL 25.916999999999998 -80.283 7.9 19460101 19580801 999999 12853 RICHMOND NAS US FL 25.616999999999997 -80.417 9.1 19450301 19451117 999999 12854 SANFORD AIRPORT US FL KSFB 28.78 -81.244 16.8 19450401 19680517 999999 12855 VERO BEACH NAS US FL 27.65 -80.417 15.8 19450201 19460401 999999 12857 SAN JULIAN CU MUSJ 22.066999999999997 -84.15 17.1 19450301 19451201 999999 12858 KEY WEST WB CITY US FL 24.566999999999997 -81.8 7.9 19530701 19570701 999999 12863 BURRWOOD WB US LA 28.967 -89.383 4.0 19560801 19650201 999999 12881 VALKARIA US FL 27.95 -80.567 9.1 19620315 19670712 999999 12884 BOOTHVILLE US LA 29.333000000000002 -89.40799999999999 0.9 19650201 20170924 999999 12889 BOMBING RANGE DETACHMENT ASTOR US FL 29.143 -81.633 28.0 19960702 20031231 999999 12907 LAREDO AFB US TX KLRD 27.533 -99.46700000000001 154.8 20040702 20081123 999999 12910 SAN MARCOS GARY AFB US TX KRJO 29.883000000000003 -97.867 178.0 19510501 19560816 999999 12911 RANDOLPH AFB US TX KRND 29.533 -98.262 232.3 19710101 19710101 999999 12917 PORT ARTHUR JEFFERSON COUNTY US TX KBPT 29.951 -94.021 4.9 19480701 19721231 999999 12918 HOUSTON WILLIAM P HOBBY AP US TX KHOU 29.638 -95.28200000000001 14.3 19480701 19690601 999999 12922 VICTORIA US TX 28.783 -97.083 35.1 19480701 19610701 999999 12925 BEEVILLE CHASE NAAS US TX KNIR 28.366999999999997 -97.667 57.9 19450301 20041231 999999 12926 CORPUS CHRISTI NAS US TX KNGP 27.683000000000003 -97.28299999999999 5.8 19450301 19721231 999999 12927 HOUMA NAS US LA KHUM 29.566 -90.66 3.0 19450301 20041231 999999 12928 KINGSVILLE US TX KNQI 27.5 -97.81700000000001 17.7 19450301 19721231 999999 12930 NEW ORLEANS AUDUBON GOLF SITE (AUDUBON PARK) US LA 29.916999999999998 -90.13 6.1 19480701 20031231 999999 12931 SAN ANTONIO BROOKS AFB US TX BRX 29.35 -98.45 182.0 19490101 19600622 999999 12935 PALACIOS MUNICIPAL AP US TX KPSX 28.725 -96.25399999999999 4.6 19560101 19590101 999999 12945 DOWNTOWN US TX 29.767 -95.367 15.9 20020902 20031231 999999 12946 CORPUS CHRISTI CABANISS NAAS US TX KNGW 27.7 -97.43299999999999 9.1 19490201 20170823 999999 12947 COTULLA FAA AP US TX KCOT 28.456999999999997 -99.21799999999999 146.0 19491001 19550101 999999 12956 MATAGORDA ISLAND AF US TX 28.333000000000002 -96.45 2.1 19550808 19591224 999999 12957 PORT ISABEL CAMERON COUNTY AP US TX KPIL 26.166 -97.346 5.8 19571101 20041231 999999 12958 NEW ORLEANS ALVIN CALLENDER F US LA KNBG 29.816999999999997 -90.01700000000001 0.3 19580101 19721231 999999 12960 HOUSTON INTERCONTINENTAL AP US TX KIAH 29.98 -95.36 32.0 19690601 19721231 999999 12973 OUTLYING LANDING FIELD US TX KNVT 27.633000000000003 -97.31700000000001 7.6 19960702 20041231 999999 12987 EDINBURG 17 NNE US TX 26.526 -98.06299999999999 19.5 20040219 20170924 999999 12988 LAKE PALOURD BASE HELIPORT US LA 29.693 -91.09899999999999 1.5 20140801 20161104 999999 13017 PORT LYAUTEY MO GMMP 34.3 -6.6 11.9 19460101 19740131 999999 13021 EL DJEMA SAHIM MO GDMS 32.35 -8.783 19520210 19530212 999999 13023 BEN GUERIR MO GBGY 32.117 -7.882999999999999 448.1 19511122 19630501 999999 13025 ROTA NAS US LERT 36.65 -6.35 27.1 19581001 19721231 999999 13301 CHILLICOTHE 22 ENE US MO 39.867 -93.147 253.9 20050611 20170924 999999 13601 BERMUDA BD WI TXKF 32.367 -64.667 3.4 19720101 19721231 999999 13602 BERMUDA BD MYUN 32.266999999999996 -64.85 13.1 19490101 19650531 999999 13710 WASHINGTON DC BOLLING FIELD A US MD 38.833 -77.017 18.0 19451101 19680830 999999 13711 LAURINBURG AAB US NC 34.783 -79.383 63.1 19510715 19510902 999999 13713 GOLDSBORO SEYMOUR JOHNSON AFB US NC KGSB 35.344 -77.965 33.5 19710101 19710101 999999 13721 PATUXENT RIVER NAS US MD KNHK 38.3 -76.417 12.2 19710101 19721231 999999 13723 GREENSBORO GREENSBORO-HIGH PO US NC KGSO 36.097 -79.943 270.1 19660101 19721231 999999 13724 ATLANTIC CITY MARINA US NJ 39.378 -74.42399999999999 3.1 19480101 20170923 999999 13725 BALTIMORE US MD 39.25 -76.533 13.1 19450101 19490101 999999 13726 BLACKSTONE US VA 37.067 -77.95 134.1 19490101 19590101 999999 13728 DANVILLE FAA AP US VA KDAN 36.573 -79.336 179.8 19490201 19550101 999999 13729 ELKINS ELKINS-RANDOLPH CO ARP US WV KEKN 38.885 -79.85300000000001 603.2 19480101 19721231 999999 13730 FREDERICK US MD KFDK 39.417 -77.383 92.4 19480101 20041231 999999 13731 FRONT ROYAL US VA 39.0 -78.233 207.9 19490101 19560208 999999 13732 GORDONSVILLE FAA AP US VA 38.067 -78.15 135.0 19490101 19610420 999999 13733 LYNCHBURG MUNICIPAL ARPT US VA KLYH 37.321 -79.207 285.9 19480101 19721231 999999 13734 MARTINSBURG EASTERN WV REG AP US WV KMRB 39.402 -77.984 162.8 19490101 19650101 999999 13735 MILLVILLE MUNICIPAL AP US NJ KMIV 39.367 -75.067 23.2 19490101 19611001 999999 13736 MORGANTOWN MUNICIPAL AP US WV KMGW 39.643 -79.916 381.9 19490201 19550101 999999 13737 NORFOLK REGIONAL ARPT US VA KORF 36.903 -76.192 9.1 19480101 19721231 999999 13738 PETERSBURG US WV 39.0 -79.117 307.8 19480101 19540501 999999 13739 PHILADELPHIA INTERNATIONAL AP US PA KPHL 39.868 -75.23100000000001 8.5 19410101 19721231 999999 13740 RICHMOND INTL AP US VA KRIC 37.505 -77.32 49.7 19480101 19721231 999999 13741 ROANOKE WOODRUM ARPT US VA KROA 37.317 -79.97399999999999 358.4 19480101 19721231 999999 13742 URBANNA US VA 37.633 -76.567 9.1 19480101 19510331 999999 13743 WASHINGTON D C WASHNGTN-HOOVE US VA KDCA 38.848 -77.03399999999999 19.8 19700101 19721231 999999 13744 FLORENCE CITY COUNTY AP US SC KFLO 34.185 -79.72399999999999 46.0 19480101 19650401 999999 13745 HATTERAS US NC 35.217 -75.683 3.0 19480101 19570301 999999 13746 ROCKY MOUNT US NC RMT 35.967 -77.8 25.9 19490101 19550101 999999 13747 WARRENTON WB AP US NC 36.417 -78.15 132.0 19480101 19480910 999999 13748 WILMINGTON US NC KILM 34.268 -77.9 11.6 19480101 19721231 999999 13749 FREDERICK AF US MD 39.433 -77.45 100.0 19490101 19550429 999999 13750 NORFOLK NAS US VA KNGU 36.95 -76.283 4.9 19450201 19721231 999999 13751 ANACOSTIA NAS US MD NDV 38.85 -77.033 15.8 19450301 19611031 999999 13752 U.S. NAVAL ACADEMY US MD 38.983000000000004 -76.467 2.4 19450301 20170924 999999 13753 ATLANTIC CITY NAS US NJ 39.45 -74.583 20.1 19450201 19580616 999999 13754 CHERRY POINT MCAS US NC KNKT 34.9 -76.883 8.8 19450301 19721231 999999 13755 CHINCOTEAGUE NAS US VA K0W8 37.933 -75.433 14.9 19450301 19590316 999999 13756 CAPE MAY NAS US NJ KN91 38.95 -74.883 4.9 19450201 19460501 999999 13758 CHARLESTON NAS US SC KCLX 32.85 -79.933 2.1 19450301 19450807 999999 13759 CREEDS NAAS US VA 36.617 -76.017 11.0 19450301 19451015 999999 13760 DAHLGREN WEAPONS LAB US VA 38.333 -77.033 6.1 19450301 19591115 999999 13762 FENTRESS NAAS US VA KNFE 36.695 -76.13600000000001 4.9 19450301 20041231 999999 13763 FRANKLIN NAAS US VA KFKN 36.698 -76.903 12.5 19450301 19451231 999999 13766 MANTEO NAAS US NC KMQI 35.917 -75.7 4.3 19450301 20041231 999999 13769 OCEANA NAS US VA KNTU 36.817 -76.033 6.7 19450301 19721231 999999 13771 PHILADELPHIA NAAS US PA MUV 39.883 -75.167 6.1 19450201 19610929 999999 13773 QUANTICO MCAS US VA KNYG 38.5 -77.3 3.7 19450201 19721231 999999 13774 WEEKSVILLE NAF US NC 36.25 -76.133 7.0 19520501 19570628 999999 13775 WILDWOOD NAS US NJ 38.983000000000004 -74.917 17.1 19450201 19451208 999999 13776 LUMBERTON MUNICIPAL AP US NC KLBT 34.608000000000004 -79.059 38.4 19490101 19550101 999999 13777 BALTIMORE CUSTOM HOUSE US MD 39.283 -76.617 4.3 19960702 20031231 999999 13781 WILMINGTON DUPONT AP US DE KILG 39.673 -75.601 24.4 19480101 19721231 999999 13782 CUSTOM HOUSE (CITY OFC) US SC 32.775 -79.92399999999999 3.1 20060101 20170801 999999 13786 ELIZABETH CITY MUNICIPAL AP US NC KECG 36.260999999999996 -76.175 4.0 19710101 19981231 999999 13806 FORT CAMPBELL AAF US KY KHOP 36.667 -87.48299999999999 174.7 19710101 19710101 999999 13812 LOCKBOURNE US OH KLCK 39.817 -82.93299999999999 226.8 19710101 20041231 999999 13815 ALBANY NAVAL AIR STN US GA 31.583000000000002 -84.117 66.1 19720101 19721231 999999 13822 GREENVILLE DONALDSON AFB US SC 34.766999999999996 -82.383 298.1 19490101 19630430 999999 13825 COLUMBUS AAF US MS KCBM 33.65 -88.45 66.8 19710101 19710101 999999 13829 FORT BENNING LAWSON US GA KLSF 32.35 -85.0 70.7 19710101 19710101 999999 13839 DOTHAN REGIONAL AP US AL KDHN 31.316999999999997 -85.45 107.6 20010602 20041231 999999 13853 SAVANNAH CHATHAM FIELD AAF US GA 32.133 -81.2 15.8 19490520 19501001 999999 13855 TULLAHOMA AEDC SITE US TN 35.383 -86.23299999999999 328.9 19630101 19690801 999999 13864 MARIETTA DOBBINS AAF US GA KMGE 33.917 -84.51700000000001 325.5 19710101 19710101 999999 13865 MERIDIAN KEY FIELD US MS KMEI 32.335 -88.744 94.5 19480701 19721231 999999 13866 CHARLESTON KANAWHA ARPT US WV KCRW 38.379 -81.59 299.3 19490201 19721231 999999 13867 PARKERSBURG WSO US WV PKB 39.266999999999996 -81.567 187.5 19480101 19550101 999999 13868 PULASKI US VA KPSK 37.133 -80.683 641.6 19490101 19550101 999999 13869 ALBANY MUNICIPAL AP US GA KABY 31.535999999999998 -84.194 58.8 19480101 19550101 999999 13870 ALMA BACON COUNTY AP US GA KAMG 31.535999999999998 -82.507 62.8 19490101 19590101 999999 13871 ANNISTON CALHOUN CO AP US AL KANB 33.586999999999996 -85.85600000000001 182.9 19480101 19550501 999999 13873 ATHENS MUNICIPAL ARPT US GA KAHN 33.948 -83.32799999999999 244.4 19550901 19721231 999999 13874 ATLANTA HARTSFIELD INTL AP US GA KATL 33.63 -84.44200000000001 312.7 19450101 19721231 999999 13876 BIRMINGHAM MUNICIPAL AP US AL KBHM 33.566 -86.745 192.0 19480101 19721231 999999 13877 BRISTOL TRI CITY AIRPORT US TN KTRI 36.473 -82.404 464.8 19480101 19721231 999999 13878 BRUNSWICK MALCOLM MCKINNON AP US GA KSSI 31.151999999999997 -81.391 7.3 19481201 19550101 999999 13880 CHARLESTON US SC KCHS 32.899 -80.04 14.6 19710101 19721231 999999 13881 CHARLOTTE DOUGLAS MUNICIPAL A US NC KCLT 35.224000000000004 -80.955 234.4 19480101 19721231 999999 13882 CHATTANOOGA LOVELL FIELD AP US TN KCHA 35.031 -85.20100000000001 209.7 19480101 19721231 999999 13883 COLUMBIA METRO ARPT US SC KCAE 33.942 -81.118 68.6 19480101 19721231 999999 13884 CRESTVIEW BOB SIKES AP US FL KCEW 30.78 -86.523 56.4 19480101 19550101 999999 13885 EVERGREEN INTERMEDIATE FLD US AL EVR 31.416999999999998 -87.03299999999999 78.0 19491201 19550101 999999 13889 JACKSONVILLE IMESON US FL KJAX 30.495 -81.694 9.8 19660101 19721231 999999 13891 KNOXVILLE MCGHEE TYSON AP US TN KTYS 35.818000000000005 -83.986 298.7 19650101 19721231 999999 13893 MEMPHIS MUNICIPAL ARPT US TN KMEM 35.056 -89.98700000000001 101.2 19480101 19721231 999999 13894 MOBILE REGIONAL AP US AL KMOB 30.688000000000002 -88.24600000000001 67.4 19480101 19721231 999999 13895 MONTGOMERY DANNELLY FIELD US AL KMGM 32.3 -86.40799999999999 61.6 19480101 19721231 999999 13896 MUSCLE SHOALS REGIONAL AP US AL KMSL 34.744 -87.6 171.3 19481201 19550101 999999 13897 NASHVILLE BERRY FIELD US TN KBNA 36.119 -86.689 184.4 19480101 19721231 999999 13899 PENSACOLA REGIONAL AP US FL KPNS 30.478 -87.18700000000001 36.0 19481231 19721231 999999 13902 ALTUS AAF US OK KLTS 34.65 -99.26700000000001 421.2 19710101 19710101 999999 13904 AUSTIN BERGSTROM AFB US TX KAUS 30.183000000000003 -97.68 150.9 19490101 19710101 999999 13905 BRYAN AFB US TX 30.666999999999998 -96.55 84.1 19480701 19580612 999999 13907 DALLAS HENSLEY FIELD AFB US TX 32.75 -96.96700000000001 149.0 19490101 19520421 999999 13910 ABILENE DYESS AAF US TX KDYS 32.433 -99.85 545.3 19710101 19710101 999999 13917 NEWPORT MUNICIPAL AIRPORT US AR 35.633 -91.167 72.9 20120902 20170924 999999 13919 OKLAHOMA CITY TINKER AAF US OK KTIK 35.417 -97.383 393.5 19710101 19710101 999999 13920 FORBES FIELD AAF US KS KFOE 38.95 -95.664 328.9 19710101 19710101 999999 13928 WACO JAMES CONNALLY AFB US TX 31.633000000000003 -97.06700000000001 153.0 19490101 19680831 999999 13930 WHITEMAN AAF US MO KSZL 38.717 -93.55 265.5 19710101 19710101 999999 13935 ESLER FIELD AAF US LA KESF 31.393 -92.296 36.0 19600201 19721231 999999 13941 LAKE CHARLES WB AIRP US LA KCWF 30.21 -93.14299999999999 5.2 19480701 19630401 999999 13942 MONROE SELMAN FIELD US LA KMLU 32.516 -92.041 24.7 19560101 19590101 999999 13944 BARKSDALE AFB US LA KBAD 32.5 -93.667 50.6 19710101 19710101 999999 13945 FORT SILL POST FIELD AF US OK KFSI 34.65 -98.4 362.1 19710101 19710101 999999 13956 JACKSON 4 NW US MS 32.333 -90.23299999999999 98.1 19480701 19630708 999999 13957 SHREVEPORT REGIONAL ARPT US LA KSHV 32.446999999999996 -93.824 78.9 19480701 19721231 999999 13958 AUSTIN MUELLER MUNICIPAL AP US TX KATT 30.320999999999998 -97.76 200.6 19480701 19721231 999999 13959 WACO RICH FIELD US TX KACT 31.619 -97.228 154.8 19690101 19721231 999999 13963 LITTLE ROCK ADAMS FIELD US AR KLIT 34.727 -92.23899999999999 78.3 19480701 19741231 999999 13965 ARDMORE INTERMEDIATE FLD US OK 34.3 -97.15 264.0 19480701 19550101 999999 13966 WICHITA FALLS MUNICIPAL ARPT US TX KSPS 33.979 -98.493 313.9 19650101 19721231 999999 13967 OKLAHOMA CITY WILL ROGERS FIE US OK KOKC 35.389 -97.601 397.5 19650101 19721231 999999 13970 BATON ROUGE RYAN ARPT US LA KBTR 30.537 -91.147 23.2 19480701 19721231 999999 13971 HARRISON FAA AP US AR KHRO 36.266999999999996 -93.15700000000001 422.1 19670101 19690101 999999 13972 TYLER POUNDS FIELD US TX KTYR 32.354 -95.40299999999999 167.9 19480701 19991231 999999 13973 JUNCTION US TX KJCT 30.511 -99.766 533.1 19480701 19690131 999999 13976 LAFAYETTE REGIONAL AP US LA KLFT 30.205 -91.988 12.8 19560101 19590101 999999 13978 GREENWOOD MUNICIPAL AP US MS KGWO 33.496 -90.087 40.5 19490101 19550101 999999 13979 VICKSBURG OLD US MS 32.4 -90.78299999999999 36.9 19490101 19500601 999999 13980 ANTHONY US KS 37.167 -98.083 402.6 19480101 19510101 999999 13981 CHANUTE MARTIN JOHNSON AP US KS KCNU 37.67 -95.484 308.2 19480101 19650101 999999 13982 CHILLICOTHE US MO 39.783 -93.5 232.9 19480101 19510101 999999 13983 COLUMBIA MUNICIPAL AP US MO COU 38.967 -92.367 237.1 19450101 19691101 999999 13984 CONCORDIA BLOSSER MUNI AP US KS KCNK 39.551 -97.65100000000001 452.3 19480101 19721231 999999 13985 DODGE CITY MUNICIPAL ARPT US KS KDDC 37.769 -99.96799999999999 790.0 19480101 19721231 999999 13986 HUTCHINSON MUNICIPAL AP US KS KHUT 38.065 -97.861 470.0 19480101 19511231 999999 13987 JOPLIN MUNICIPAL AP US MO KJLN 37.147 -94.50200000000001 300.2 19480101 19550101 999999 13988 KANSAS CITY MUNICIPAL AP US MO KMKC 39.121 -94.59700000000001 228.6 19650101 19721001 999999 13989 EMPORIA MUNICIPAL AP US KS KEMP 38.329 -96.195 367.6 19501101 19550101 999999 13990 LEBO CAA AIRPORT US KS 38.433 -95.8 352.0 19480501 19501001 999999 13991 MARSHALL US MO 39.117 -93.21700000000001 240.8 19480101 19500501 999999 13992 NEW FLORENCE US MO 38.883 -91.43299999999999 269.1 19480101 19500501 999999 13993 ST JOSEPH WBO US MO KSTJ 39.774 -94.92299999999999 249.3 19480101 19721231 999999 13994 ST LOUIS LAMBERT INT'L ARPT US MO KSTL 38.753 -90.374 216.4 19450101 19721231 999999 13995 SPRINGFIELD MUNICIPAL ARPT US MO KSGF 37.24 -93.39 387.1 19480101 19721231 999999 13996 TOPEKA MUNICIPAL AP US KS KTOP 39.073 -95.626 269.7 19480101 19721231 999999 13997 VICHY ROLLA NATL ARPT US MO KVIH 38.131 -91.76799999999999 346.6 19480101 19650101 999999 13998 WICHITA US KS 37.683 -97.35 387.1 19480101 19540101 999999 13999 CLINTON NAS US OK KCLK 35.538000000000004 -98.93299999999999 492.3 19450201 19460515 999999 14601 DOW AFB US ME BGR 44.8 -68.817 52.1 19490101 19710101 999999 14605 AUGUSTA AIRPORT US ME KAUG 44.316 -69.797 109.7 19490101 19550101 999999 14606 BANGOR AIRPORT US ME KBGR 44.798 -68.819 58.5 19720201 19721231 999999 14607 CARIBOU MUNICIPAL ARPT US ME KCAR 46.871 -68.017 190.2 19480101 19721231 999999 14608 EASTPORT US ME KEPO 44.917 -67.0 28.0 19480101 19480403 999999 14610 MILLINOCKET MUNICIPAL AP US ME KMLT 45.648 -68.693 122.5 19490101 19650101 999999 14611 BRUNSWICK NAS US ME KNHZ 43.9 -69.933 22.9 19450201 19721231 999999 14622 OLD TOWN FAA AIRPORT US ME KOLD 44.95 -68.667 41.1 19490101 19720201 999999 14623 LORING AFB US ME KLIZ 46.95 -67.883 221.0 19710101 19710101 999999 14657 GEORGES SHOALS AFS US MA 41.683 -67.783 25.9 19560312 19630625 999999 14658 NANTUCKET SHOALS AFS US MA 41.016999999999996 -69.5 27.1 19570410 19630625 999999 14697 CUTLER US ME 44.633 -67.283 25.9 19800301 19801231 999999 14707 GROTON AAF US CT KGON 41.328 -72.04899999999999 3.0 19500601 19631231 999999 14708 HEMPSTEAD MITCHELL FLD AFB US NY 40.733000000000004 -73.6 38.1 19490101 19610416 999999 14710 MANCHESTER MUNICIPAL AP US NH KMHT 42.933 -71.438 70.7 19490101 19680624 999999 14732 NEW YORK LAGUARDIA ARPT US NY KLGA 40.779 -73.88 9.4 19480701 19721231 999999 14733 BUFFALO BUFFALO ARPT US NY KBUF 42.941 -78.736 214.9 19720101 19721231 999999 14734 NEWARK INTERNATIONAL ARPT US NJ KEWR 40.683 -74.169 9.1 19480101 19721231 999999 14735 ALBANY COUNTY AP US NY KALB 42.743 -73.809 89.0 19450101 19721231 999999 14736 ALTOONA BLAIR CO ARPT US PA KAOO 40.296 -78.32 447.8 19490201 19550101 999999 14737 ALLENTOWN BETHLEHEM-EASTON AR US PA KABE 40.650999999999996 -75.449 117.3 19480101 19721231 999999 14738 BINGHAMTON TRI-CITIES ARPT US NY 42.083 -76.1 253.9 19480101 19510701 999999 14740 HARTFORD BRADLEY INTL AP US CT KBDL 41.938 -72.683 54.6 19490101 19721231 999999 14741 BROOKVILLE FAA AP US PA 41.15 -79.1 427.0 19490101 19590101 999999 14742 BURLNGTN ETAN ALN AP US VT KBTV 44.468 -73.15 103.6 19650101 19721231 999999 14743 CANTON 4 SE US NY 44.583 -75.117 121.9 19460101 19501031 999999 14745 CONCORD MUNICIPAL ARPT US NH KCON 43.195 -71.501 105.5 19480101 19721231 999999 14746 CURWENSVILLE US PA 41.05 -78.583 675.1 19480101 19520416 999999 14747 DUNKIRK CHAUTAUQUA CO AP US NY KDKK 42.493 -79.27199999999999 211.2 19490101 19540101 999999 14748 ELMIRA AIRPORT US NY KELM 42.159 -76.892 290.8 19490201 19550101 999999 14749 FORT PLAIN WB AP US NY 42.967 -74.667 217.0 19480101 19480901 999999 14750 GLENS FALLS AP US NY KGFL 43.35 -73.617 101.5 19490201 19550101 999999 14751 HARRISBURG STATE ARPT US PA KCXY 40.217 -76.851 105.8 19650101 19721231 999999 14752 HARTFORD BRAINARD FD US CT KHFD 41.736000000000004 -72.65100000000001 5.8 19450101 19540810 999999 14753 BLUE HILL OBSERVATORY US MA 42.211999999999996 -71.11399999999999 190.5 19981001 19991231 999999 14754 TOBYHANNA US PA 7TB 41.183 -75.417 594.4 19480101 19481001 999999 14756 NANTUCKET MEMORIAL AP US MA KACK 41.253 -70.061 14.3 19480101 19721231 999999 14757 POUGHKEEPSIE DUTCHESS CO AP US NY KPOU 41.626999999999995 -73.884 49.4 19490101 19550101 999999 14758 NEW HAVEN TWEED AIRPORT US CT KHVN 41.263999999999996 -72.887 4.0 19480101 19690601 999999 14760 PARK PLACE 1 NW WB US PA PKL 40.85 -76.117 591.0 19480101 19540610 999999 14761 PHILIPSBURG MID-STATE ARPT US PA KPSB 40.9 -78.083 593.8 19480101 20041231 999999 14762 PITTSBURGH ALLEGHENY CO AP US PA KAGC 40.355 -79.922 388.0 19450101 19520915 999999 14763 PITTSFIELD MUNICIPAL AP US MA KPSF 42.427 -73.289 363.9 19480101 20041231 999999 14764 PORTLAND INTL JETPORT US ME KPWM 43.65 -70.3 19.2 19480101 19721231 999999 14765 PROVIDENCE T F GREEN ARPT US RI KPVD 41.722 -71.433 18.9 19480101 19721231 999999 14768 ROCHESTER MONROE CO ARPT US NY KROC 43.117 -77.67699999999999 169.2 19480101 19721231 999999 14770 SELINSGROVE PENN VALLEY AP US PA KSEG 40.821 -76.86399999999999 137.2 19490201 19550101 999999 14771 SYRACUSE MUNICIPL AP US NY KSYR 43.111000000000004 -76.104 127.1 19650101 19721231 999999 14772 TICONDEROGA 3 NE US NY 43.883 -73.4 64.0 19480101 19480915 999999 14774 UTICA CAA AP US NY 43.167 -75.317 163.1 19490101 19501125 999999 14775 WESTFIELD BARNES MUNI AP US MA KBAF 42.158 -72.71600000000001 82.6 19490101 19520502 999999 14776 LEBANON MUNICIPAL US NH KLEB 43.626000000000005 -72.305 173.7 19490101 19590101 999999 14777 WILKES-BARRE SCRANTON AP US PA KAVP 41.333999999999996 -75.727 293.2 19490101 19721231 999999 14778 WILLIAMSPORT-LYCOMING COUNTY US PA KIPT 41.243 -76.922 160.0 19480701 19721231 999999 14780 LAKEHURST NAS US NJ KNEL 40.033 -74.35 31.4 19450201 19721231 999999 14781 AYER US MA 42.567 -71.6 82.0 19450301 19450930 999999 14784 LEWISTON NAAF US ME 44.05 -70.25 82.9 19450301 19450501 999999 14786 NEW YORK FLOYD BENNE US NY NSC 40.583 -73.883 4.9 19450401 19701101 999999 14788 QUONSET POINT NAS US RI 41.583 -71.417 9.1 19450301 19740405 999999 14789 SQUANTUM NAS US MA 42.266999999999996 -71.033 4.9 19480201 19531220 999999 14790 SOUTH WEYMOUTH NAS US MA KNZW 42.15 -70.933 49.4 19460401 20041231 999999 14792 TRENTON MERCER COUNTY AP US NJ KTTN 40.277 -74.816 64.9 19450220 19451001 999999 14793 WILLOW GROVE NAS US PA KNXX 40.2 -75.15 110.3 19450201 19721201 999999 14797 BEAR MOUNTAIN WB US NY 41.317 -74.0 396.8 19480101 19530515 999999 14799 BLOCK ISLAND US RI BID 41.167 -71.567 13.1 19480101 19490611 999999 14804 MOUNT CLEMENS SELFRIDGE FLD US MI KMTC 42.608000000000004 -82.818 176.8 19361201 19361231 999999 14808 OSCODA WURTSMITH AAF US MI KOSC 44.45 -83.4 193.2 19710101 19710101 999999 14810 PARK RIDGE AF US IL 41.983000000000004 -87.9 203.0 19490101 19581101 999999 14812 MERCER WB AP US PA 41.283 -80.2 394.1 19480101 19480915 999999 14813 AKRON FULTON INTERNATIONAL AP US OH KAKR 41.038000000000004 -81.464 335.6 19480101 19480701 999999 14814 ALPENA WASTEWATER PL US MI KAPE 45.067 -83.43299999999999 179.8 19480101 19490101 999999 14815 BATTLE CREEK KELLOGG AP US MI KBTL 42.308 -85.251 286.2 19490101 19550101 999999 14816 BRADFORD US IL BDF 41.233000000000004 -89.617 242.0 19481201 19550101 999999 14817 CADILLAC WEXFORD CO AP US MI KCAD 44.283 -85.417 398.4 19481201 19550101 999999 14819 CHICAGO MIDWAY AP US IL KMDW 41.786 -87.75200000000001 188.4 19480101 19721231 999999 14820 CLEVELAND HOPKINS INTL AP US OH KCLE 41.405 -81.85300000000001 245.4 19480101 19721231 999999 14821 COLUMBUS MUNICIPAL ARPT US OH KCMH 39.991 -82.881 248.7 19480101 19721231 999999 14822 DETROIT CITY AIRPORT US MI KDET 42.409 -83.01 190.8 19480101 19721231 999999 14823 EAST LIVERPOOL WB AP US OH 40.683 -80.633 355.1 19480101 19480901 999999 14825 FINDLAY AIRPORT US OH KFDY 41.013999999999996 -83.669 247.5 19481201 19550101 999999 14826 FLINT BISHOP ARPT US MI KFNT 42.967 -83.749 233.5 19481201 19721231 999999 14827 FORT WAYNE CITY US IN KFWA 40.971000000000004 -85.206 252.4 19650101 19721231 999999 14828 GLADWIN US MI 43.983000000000004 -84.48299999999999 236.2 19481201 19550101 999999 14829 GOSHEN MUNICIPAL AP US IN KGSH 41.533 -85.78299999999999 252.1 19481201 19550101 999999 14830 GRAND RAPIDS US MI 42.9 -85.667 213.1 19450101 19631201 999999 14831 GREEN BAY US WI 44.516999999999996 -87.96700000000001 182.0 19480101 19490101 999999 14833 JACKSON REYNOLDS FIELD US MI KJXN 42.266999999999996 -84.46700000000001 310.9 19490101 19550101 999999 14834 JOLIET US IL KJOT 41.5 -88.167 177.1 19460101 19530315 999999 14835 WEST LAFAYETTE PURDUE UNIV AP US IN KLAF 40.412 -86.93700000000001 194.2 19481201 19550101 999999 14836 LANSING CAPITAL CITY ARPT US MI KLAN 42.78 -84.579 266.4 19480101 19721231 999999 14837 MADISON TRUAX FIELD US WI KMSN 43.141000000000005 -89.345 264.0 19650101 19721231 999999 14838 MARQUETTE WBO US MI 46.567 -87.4 206.3 19480101 19490101 999999 14839 MILWAUKEE NB SIDE PO US WI KMKE 42.955 -87.904 211.2 19650101 19721231 999999 14840 MUSKEGON COUNTY ARPT US MI KMKG 43.17100000000001 -86.23700000000001 192.9 19480101 19721231 999999 14841 PELLSTON EMMET COUNTY AP US MI KPLN 45.56399999999999 -84.79299999999999 217.9 19480101 19550101 999999 14842 PEORIA GREATER PEORIA AP US IL KPIA 40.668 -89.684 201.8 19480101 19721231 999999 14843 PERRY CAA AP US OH 41.783 -81.1 210.9 19481201 19500122 999999 14844 ROCKFORD CAA AIRPORT US IL 42.35 -89.05 225.9 19481201 19510301 999999 14845 SAGINAW TRI CITY INTL AP US MI KMBS 43.533 -84.08 204.2 19481201 19650101 999999 14848 SOUTH BEND ST JOSEPH CO ARPT US IN KSBN 41.707 -86.316 235.6 19480101 19721231 999999 14849 TOLEDO WBAS US OH 41.567 -83.46700000000001 193.9 19460101 19550112 999999 14850 TRAVERSE CITY CHERRY CAPITAL US MI KTVC 44.74100000000001 -85.583 192.0 19481201 19721231 999999 14851 MARQUETTE K I SAWYER AP US MI 46.35 -87.4 360.0 19491201 19551130 999999 14852 YOUNGSTOWN MUNICIPAL ARPT US OH KYNG 41.254 -80.67399999999999 361.5 19650101 19721231 999999 14853 DETROIT WILLOW RUN AP US MI KYIP 42.233000000000004 -83.53299999999999 218.2 19480101 19681001 999999 14855 NAVAL AIR STATION US IL 42.083 -87.833 196.9 19450315 20031231 999999 14856 GROSSE ILE NAS US MI NFB 42.1 -83.167 180.1 19450301 19691001 999999 14857 TRAVERSE CITY US MI 44.717 -85.55 189.9 19450201 19451023 999999 14858 HANCOCK HOUGHTON CO AP US MI KCMX 47.169 -88.48899999999999 328.9 19480101 19650101 999999 14859 GRAND MARAIS 2 E US MI 46.667 -85.95 190.2 19481201 19550101 999999 14860 ERIE INTERNATIONAL AP US PA KERI 42.08 -80.183 224.6 19480101 19721231 999999 14891 MANSFIELD LAHM AP US OH KMFD 40.82 -82.51799999999999 399.9 19481201 19721231 999999 14894 WHEELING OHIO COUNTY AP US WV KHLG 40.176 -80.64699999999999 364.2 19490201 19530814 999999 14895 AKRON AKRON-CANTON AIRPORT US OH KCAK 40.917 -81.433 376.7 19480701 19721231 999999 14896 AKRON NAS US OH 41.033 -81.483 323.1 19520101 19571130 999999 14897 WAUSAU MUNICIPAL ARPT US WI KAUW 44.928999999999995 -89.62799999999999 364.5 19491111 19650101 999999 14898 GREEN BAY AUSTIN STRAUBEL FIE US WI KGRB 44.479 -88.137 214.0 19490901 19721231 999999 14904 LINCOLN AFB US NE LNK 40.85 -96.76700000000001 356.0 19540701 19640615 999999 14910 ALEXANDRIA MUNICIPAL AP US MN KAXN 45.868 -95.39399999999999 436.2 19481201 19550101 999999 14913 DULUTH WILLIAMSN-JOHNSN MUNI US MN KDLH 46.836999999999996 -92.18299999999999 431.9 19650101 19721231 999999 14914 FARGO HECTOR ARPT US ND KFAR 46.925 -96.811 274.0 19650101 19721231 999999 14916 GRAND FORKS INTERNATIONAL AP US ND KGFK 47.943000000000005 -97.184 253.6 19481201 19590101 999999 14918 INTERNATIONAL FALLS INTL AP US MN KINL 48.56100000000001 -93.398 360.6 19480101 19721231 999999 14919 JAMESTOWN MUNICIPAL ARPT US ND KJMS 46.926 -98.669 455.4 19481201 19550101 999999 14920 LA CROSSE MUNI AP US WI KLSE 43.879 -91.25299999999999 199.9 19650101 19721231 999999 14921 LONE ROCK FAA AP US WI KLNR 43.211999999999996 -90.181 219.8 19481201 19550101 999999 14922 MINNEAPOLIS-ST PAUL WOLD-CHAM US MN KMSP 44.883 -93.229 255.4 19650101 19721231 999999 14923 MOLINE QUAD CITY ARPT US IL KMLI 41.465 -90.523 181.1 19480209 19721231 999999 14924 PEMBINA US ND 48.967 -97.23299999999999 240.8 19481201 19501001 999999 14925 ROCHESTER MUNICIPAL ARPT US MN KRST 43.903999999999996 -92.492 402.3 19480101 19721231 999999 14926 ST CLOUD MUNICIPAL ARPT US MN KSTC 45.543 -94.051 312.1 19480101 19721231 999999 14927 ST PAUL DOWNTOWN AP US MN KSTP 44.931999999999995 -93.056 216.7 19480101 19530601 999999 14928 WLMR MUNI-J L RICE FD ARPT US MN 45.117 -95.083 344.1 19481201 19501001 999999 14929 ABERDEEN MUNICIPAL ARPT US SD KABR 45.443000000000005 -98.413 396.2 19480101 19721231 999999 14931 BURLINGTON MUNICIPAL AP US IA KBRL 40.783 -91.125 214.0 19480101 19721231 999999 14933 DES MOINES MUNICIPAL ARPT US IA KDSM 41.534 -93.65299999999999 293.5 19450101 19721231 999999 14934 DUBUQUE WB CITY US IA 42.5 -90.667 207.0 19480101 19490101 999999 14935 GRAND ISLAND ARPT US NE KGRI 40.961000000000006 -98.314 565.7 19480101 19721231 999999 14936 HURON MUNICIPAL ARPT US SD KHON 44.398 -98.223 392.9 19400101 19721231 999999 14937 IOWA CITY MUNICIPAL AP US IA KIOW 41.633 -91.54299999999999 203.6 19490101 19961231 999999 14938 KIRKSVILLE CANNON MEMORIAL AP US MO KIRK 40.097 -92.54299999999999 294.1 19480101 19550101 999999 14939 LINCOLN AIR BASE US NE KLNK 40.851 -96.74799999999999 362.4 19480101 19721231 999999 14940 MASON CITY MUNICIPAL ARPT US IA KMCW 43.153999999999996 -93.32700000000001 373.4 19480101 19721231 999999 14941 NORFOLK KARL STEFAN MEM ARPT US NE KOFK 41.986000000000004 -97.435 472.7 19480101 19721231 999999 14942 OMAHA EPPLEY AIRFIELD US NE KOMA 41.31 -95.899 299.3 19480101 19721231 999999 14943 SIOUX CITY MUNICIPAL ARPT US IA KSUX 42.391000000000005 -96.37899999999999 336.2 19480101 19721231 999999 14944 SIOUX FALLS FOSS FLD US SD KFSD 43.578 -96.75399999999999 434.9 19480101 19721231 999999 14945 TARKIO US MO 40.417 -95.4 317.0 19480101 19510101 999999 14947 MINNEAPOLIS NAS US MN MSP 44.883 -93.21700000000001 255.1 19450301 19611231 999999 14948 OTTUMWA NAS US IA 41.1 -92.43299999999999 257.9 19450201 19470811 999999 14950 OTTUMWA INDUSTRIAL AP US IA KOTM 41.108000000000004 -92.447 257.6 19480101 19550101 999999 14991 EAU CLAIRE MUNICIPAL AP US WI KEAU 44.867 -91.488 272.8 19491001 19721231 999999 14993 LAMONI FAA AIRPORT US IA 40.65 -94.0 356.0 19500101 19510101 999999 14994 LEXINGTON US NE KLXN 40.789 -99.771 735.5 19510101 20041231 999999 14995 GRANTSBURG US WI 45.766999999999996 -92.667 274.9 19500701 19550101 999999 15015 CHELVESTON UK 52.3 0.5329999999999999 92.0 19560601 19640229 999999 15027 WARRINGTON UK 53.383 -2.65 27.1 19490101 19590430 999999 15033 HUNTINGTON UK EGWZ 52.367 0.217 49.1 19550909 19671231 999999 15040 GREENHAM UK EGVI 51.383 -1.2830000000000001 125.0 19551001 19640602 999999 15042 BRUNTINGTHORPE UK 52.467 -1.117 150.9 19570701 19620824 999999 15620 SAGLEK CA 58.483000000000004 -62.65 18.0 19531205 19600630 999999 16201 KEFLAVIK IC BIKF 63.967 -22.6 50.0 19720101 19721231 999999 16407 SIMIUTAK GL 60.683 -46.533 61.9 19490101 19570701 999999 17503 CAMP TUTO SITE 2 GL 76.983 -56.067 124.1 19580617 19600824 999999 17605 THULE OP SITE GL BGTL 76.517 -68.833 77.1 19510901 19710101 999999 17611 CAMP TUTO ICECAP STA GL 76.417 -68.317 488.0 19570601 19650801 999999 17612 CAMP TUTO ICECAP ST GL 76.417 -68.25 579.1 19570601 19580913 999999 17614 CAMP TUTO ICECAP STA GL 76.4 -68.133 750.1 19570601 19600908 999999 17615 CAMP CENTURY GL 77.167 -61.133 305.1 19610101 19650813 999999 17617 CAMP TUTO EAST ASC S GL 76.383 -67.917 701.0 19601101 19630901 999999 21503 HILO NAS US HI 19.717 -155.05 11.9 19450701 19460101 999999 21504 HILO INTERNATIONAL AP US HI PHTO 19.719 -155.053 11.0 19491001 19721231 999999 21514 MAUNA LOA 5 NNE US HI 19.535 -155.576 3407.4 20050927 20170924 999999 21515 HILO 5 S US HI 19.645 -155.083 189.6 20050927 20170924 999999 21601 JOHNSTON ISLAND PN 16.733 -169.517 4.9 19490101 19581019 999999 21603 JOHNSTON IS WSO AP PN JQ PJON 16.733 -169.517 5.2 19581020 19721231 999999 22001 DEL RIO LAUGHLIN AAF US TX KDLF 29.366999999999997 -100.78299999999999 329.5 19710101 19710101 999999 22016 PANTHER JUNCTION 2 N US TX 29.348000000000003 -103.209 1065.0 20070224 20170924 999999 22501 BARKING SANDS US HI PHBK 22.033 -159.783 3.7 19720101 19721231 999999 22508 WHEELER AFB 810.1 US HI PHHI 21.487 -158.028 255.1 19710101 19710101 999999 22514 BARBERS POINT US HI PHNA 21.316999999999997 -158.067 15.2 19490101 20001101 999999 22515 EWA MCAS US HI 21.333000000000002 -158.05 20.1 19450401 19490301 999999 22517 PEARL HARBOR NAS US HI NPS 21.35 -157.95 10.1 19450401 19490425 999999 22519 KANEOHE BAY MCAS US HI PHNG 21.45 -157.783 5.5 19450401 19721231 999999 22525 PUUNENE CAA AP US HI 20.833000000000002 -156.467 39.9 19491001 19581220 999999 22526 PORT ALLEN CAA AP US HI 21.9 -159.6 9.1 19491001 19501201 999999 22536 LIHUE AIRPORT US HI PHLI 21.984 -159.341 45.1 19500201 19721231 999999 22602 FRNCH FRIGAT SHS NAS US HI 23.783 -166.217 2.1 19450401 19480501 999999 22703 MIDWAY ISLAND US HI 28.217 -177.38299999999998 6.1 19500605 19500927 999999 23012 DENVER LOWRY AFB US CO LRY 39.717 -104.9 1645.0 19460801 19660701 999999 23017 SAN ANGELO GOODFELLOW AFB US TX GOF 31.4 -100.4 573.0 19490101 19580829 999999 23019 BIGGS AFB US TX BIF 31.833000000000002 -106.4 1196.0 19490101 19660501 999999 23036 AURORA BUCKLEY FIELD ANGB US CO KBKF 39.717 -104.75 1725.8 19710101 19710101 999999 23042 LUBBOCK WEST TEXAS AIR TERMINA US TX KLBB 33.666 -101.823 987.9 19650101 19721231 999999 23043 ROSWELL MUNI AP US NM RNM 33.4 -104.53299999999999 1106.1 19480701 19690115 999999 23044 EL PASO MUNICIPAL ARPT US TX KELP 31.811 -106.376 1193.6 19670101 19711231 999999 23048 TUCUMCARI FAA AP US NM KTCC 35.181999999999995 -103.603 1231.1 19640101 19711231 999999 23050 ALBUQUERQUE MUNICIPAL ARPT US NM KABQ 35.042 -106.616 1619.7 19710101 19721231 999999 23051 CLAYTON MUNICIPAL AIRPARK US NM KCAO 36.449 -103.154 1515.5 19480701 19721231 999999 23052 RATON MUNICIPAL CREWS FIELD A US NM KRTN 36.741 -104.50200000000001 1935.2 19480701 19681129 999999 23053 PAMPA US TX 35.533 -100.96700000000001 985.1 19480701 19480901 999999 23055 GUADALUPE PASS US TX KGDP 31.831 -104.809 1663.0 19480701 19500901 999999 23056 OTTO FAA AP US NM 35.083 -106.01700000000001 1900.1 19480701 19550101 999999 23057 ACOMITA FAA AP US NM 35.05 -107.71700000000001 2007.1 19480701 19530429 999999 23058 COLUMBUS US NM 31.833000000000002 -107.633 1239.0 19480701 19550101 999999 23059 SALT FLAT US TX 31.75 -105.083 1132.9 19480701 19550101 999999 23060 EL MORRO CAA AP US NM 35.016999999999996 -108.4 2171.1 19480701 19490215 999999 23061 ALAMOSA ARPT US CO KALS 37.439 -105.861 2298.5 19480101 19721231 999999 23062 DENVER STAPLETON AIRFIELD US CO KDNR 39.766999999999996 -104.883 1626.1 19670101 19721231 999999 23063 EAGLE COUNTY AP US CO KEGE 39.65 -106.917 1991.9 19480101 19721231 999999 23065 GOODLAND RENNER FIELD US KS KGLD 39.367 -101.693 1124.1 19480101 19721231 999999 23066 GRAND JUNCTION WALKER FIELD US CO KGJT 39.134 -108.54 1474.9 19480101 19721231 999999 23067 LA JUNTA MUNICIPAL AP US CO KLHX 38.049 -103.512 1284.7 19480101 19650101 999999 23068 PUEBLO WB AIRPORT US CO 38.233000000000004 -104.633 1464.9 19480101 19540701 999999 23070 TRINIDAD LAS ANIMAS COUNTY AP US CO KTAD 37.262 -104.338 1750.5 19480101 19611001 999999 23072 CLARENDON MUNICIPAL AP US TX 34.95 -100.93299999999999 875.1 19480701 19500601 999999 23090 FARMINGTON MUNICIPAL AP US NM KFMN 36.744 -108.229 1677.0 19490101 19721231 999999 23109 DAVIS MONTHAN AFB US AZ KDMA 32.167 -110.883 824.2 19710101 19710101 999999 23110 LEMOORE REEVES NAS US CA KNLC 36.333 -119.95 71.3 19710101 19721231 999999 23118 STEAD AFB US NV RAA 39.667 -119.867 1531.9 19520801 19660331 999999 23122 NORTON AAF US CA KSBD 34.1 -117.25 335.0 19710101 20170924 999999 23131 GEORGE AFB US CA KVCV 34.583 -117.383 879.3 19710101 19710101 999999 23136 OXNARD AAF US CA KCMA 34.217 -119.083 19.8 19521209 20041231 999999 23141 INDIAN SPRINGS US NV KINS 36.583 -115.68299999999999 951.9 19630903 19680829 999999 23152 HOLLYWOOD BURBANK ARPT US CA KBUR 34.201 -118.35799999999999 223.1 19480101 19690101 999999 23153 TONOPAH AIRPORT US NV KTPH 38.051 -117.09 1656.3 19510402 19761231 999999 23154 ELY YELLAND FIELD US NV KELY 39.295 -114.84700000000001 1908.7 19530120 19721231 999999 23155 BAKERSFIELD KERN COUNTY ARPT US CA KBFL 35.434 -119.054 150.0 19480101 19721231 999999 23156 BEAUMONT 1 E US CA BUO 33.933 -116.96700000000001 794.0 19480101 19530826 999999 23157 BISHOP AIRPORT US CA KBIH 37.371 -118.35799999999999 1263.4 19480104 19721231 999999 23158 BLYTHE RIVERSIDE CO US CA KBLH 33.619 -114.714 119.5 19481101 19721231 999999 23159 BRYCE CNYN FAA AP US UT KBCE 37.705999999999996 -112.146 2313.1 19481101 19721231 999999 23160 TUCSON INTERNATIONAL AP US AZ KTUS 32.131 -110.955 778.8 19460601 19721231 999999 23161 DAGGETT BARSTOW-DAGGETT AP US CA KDAG 34.854 -116.786 588.0 19481101 19721231 999999 23162 DELTA FAA AP US UT KDTA 39.383 -112.51700000000001 1449.3 19481101 20170924 999999 23167 FRESNO CHANDLER FIELD US CA FCH 36.733000000000004 -119.81700000000001 84.1 19480101 19490901 999999 23169 LAS VEGAS MCCARRAN INTL AP US NV KLAS 36.071999999999996 -115.163 664.5 19481219 19721231 999999 23170 HANKSVILLE US UT KHVE 38.371 -110.715 1354.5 19481101 19550101 999999 23172 INDIO COACHELLA US CA 33.683 -116.167 -20.1 19481101 19500508 999999 23173 LAS VEGAS WB AP US NV 36.233000000000004 -115.03299999999999 573.9 19480101 19481219 999999 23174 LOS ANGELES MUNICIPAL ARPT US CA KLAX 33.938 -118.389 99.4 19470101 19721231 999999 23176 MILFORD MUNICIPAL AP US UT KMLF 38.417 -113.01700000000001 1534.1 19480723 19961231 999999 23177 MODENA US UT 37.8 -113.917 1663.9 19480101 19480801 999999 23178 MOUNT LAGUNA CAA AP US CA 32.867 -116.417 1893.1 19490101 19500224 999999 23179 NEEDLES AIRPORT US CA KEED 34.768 -114.619 278.6 19481101 19650101 999999 23180 NEWHALL AP US CA 34.4 -118.55 370.0 19480901 19490801 999999 23181 OCEANSIDE CAA AP US CA OCN 33.233000000000004 -117.417 7.9 19481101 19520201 999999 23182 PALMDALE AIRPORT US CA KPMD 34.629 -118.084 787.0 19481101 19650101 999999 23183 PHOENIX SKY HARBOR INTL AP US AZ KPHX 33.428000000000004 -112.00399999999999 337.4 19480101 19721231 999999 23184 PRESCOTT MUNICIPAL AP US AZ KPRC 34.652 -112.421 1539.8 19480101 19721231 999999 23185 RENO WBO US NV KRNO 39.484 -119.771 1341.1 19490101 19721231 999999 23187 SANDBERG US CA KSDB 34.744 -118.72399999999999 1378.6 19480101 19721231 999999 23188 SAN DIEGO LINDBERGH FIELD US CA KSAN 32.734 -117.18299999999999 8.5 19480101 19721231 999999 23190 SANTA BARBARA MUNICIPAL AP US CA KSBA 34.426 -119.84299999999999 6.1 19481101 19650101 999999 23191 SANTA CATALINA BUFFALO SPRING US CA KAVX 33.405 -118.416 488.3 19480101 19680323 999999 23192 SILVER LAKE CAA AP US CA 35.333 -116.083 281.0 19481101 19500731 999999 23193 TUCSON WBO US AZ 32.183 -110.917 780.0 19480101 19481101 999999 23194 WINSLOW MUNICIPAL AP US AZ KINW 35.028 -110.721 1488.3 19480101 19721231 999999 23195 YUMA INTL ARPT US AZ KYUM 32.667 -114.6 65.8 19480911 19721231 999999 23196 CHULA VISTA BROWN FIELD NAAS US CA KSDM 32.583 -116.98299999999999 159.4 19450401 19610501 999999 23199 EL CENTRO NAF US CA KNJK 32.817 -115.68299999999999 -13.1 19450201 19601101 999999 23202 TRAVIS FIELD AAB US CA KSUU 38.266999999999996 -121.93299999999999 18.9 19710101 19710101 999999 23225 BLUE CANYON AP US CA KBLU 39.277 -120.71 1610.3 19480101 19721231 999999 23226 DONNER SUMMIT US CA 39.317 -120.333 2194.0 19481101 19520131 999999 23230 OAKLAND METROPOLITAN US CA KOAK 37.721 -122.221 26.8 19480101 19721231 999999 23232 SACRAMENTO EXECUTIVE ARPT US CA KSAC 38.507 -121.495 7.6 19470701 19721231 999999 23233 SALINAS MUNICIPAL AP US CA KSNS 36.664 -121.60799999999999 23.5 19481101 19650101 999999 23234 SAN FRANCISCO INTL AP US CA KSFO 37.62 -122.365 5.5 19480101 19721231 999999 23236 SANTA MARIA HANCOCK FIELD US CA 34.933 -120.417 71.0 19480101 19541021 999999 23237 STOCKTON METROPOLITAN ARPT US CA KSCK 37.889 -121.226 8.2 19481101 19721231 999999 23238 WILLIAMS CAA AIRPORT US CA 39.1 -122.15 39.0 19481101 19521230 999999 23239 NAVAL AIR STATION US CA KNGZ 37.783 -122.31700000000001 4.3 19450301 20041231 999999 23240 NAVAL AUXILIARY LANDING FIELD US CA KNRC 37.4 -121.133 50.3 20020902 20041231 999999 23242 LIVERMORE NAS US CA 37.683 -121.7 196.9 19450201 19460811 999999 23244 MOUNTAIN VIEW MOFFETT FLD NAS US CA KNUQ 37.406 -122.04799999999999 10.4 19450303 19721231 999999 23245 MONTEREY NAF US CA KMRY 36.6 -121.867 50.0 19450301 19720301 999999 23246 SANTA ROSA NAAS US CA 38.417 -122.75 42.1 19450301 19470416 999999 23250 FARALLON ISLAND NAS US CA K50Q 37.7 -123.0 9.1 19450701 19450801 999999 23254 CONCORD CONCORD-BUCHANAN FIEL US CA KCCR 37.992 -122.055 18.3 19690101 19700101 999999 23271 DOWNTOWN US CA 38.555 -121.41799999999999 11.6 19960702 20170923 999999 23272 DOWNTOWN US CA 37.771 -122.427 45.7 19450101 20170923 999999 23273 SANTA MARIA PUBLIC ARPT US CA KSMX 34.899 -120.449 72.5 19541021 19721231 999999 23275 UKIAH MUNICIPAL AP US CA KUKI 39.126 -123.20100000000001 190.8 19490912 19650101 999999 23293 SAN JOSE MUNICIPAL AP US CA KSJC 37.359 -121.92399999999999 15.2 19510101 19721231 999999 23801 TROY 2 W US AL 31.79 -86.0 143.9 20080115 20170924 999999 23802 THOMASVILLE 2 S US AL 31.881 -87.73700000000001 106.7 20080118 20170924 999999 23803 HOLLY SPRINGS 4 N US MS 34.821999999999996 -89.435 147.5 20080201 20170924 999999 23904 BATESVILLE 8 WNW US AR 35.82 -91.781 138.7 20061219 20170924 999999 23906 PORT ARANSAS 32 NNE US TX 28.305 -96.823 4.6 20071116 20170924 999999 23907 AUSTIN 33 NW US TX 30.622 -98.085 414.8 20080201 20170924 999999 23908 JOPLIN 24 N US MO 37.428000000000004 -94.583 290.2 20070525 20170924 999999 23909 SALEM 10 W US MO 37.634 -91.723 365.2 20070517 20170924 999999 24011 BISMARCK MUNICIPAL ARPT US ND KBIS 46.783 -100.757 506.0 19480101 19721231 999999 24012 DICKINSON MUNICIPAL AP US ND KDIK 46.799 -102.79700000000001 787.3 19481201 19721231 999999 24013 MINOT FAA AP US ND KMOT 48.255 -101.273 522.4 19481201 19721231 999999 24014 WILLISTON US ND 48.15 -103.617 577.9 19500313 19620101 999999 24015 AKRON WASHINGTON CO AP US CO KAKO 40.167 -103.21700000000001 1408.5 19480101 19550101 999999 24016 CASPER US WY 42.917 -106.333 1613.0 19480101 19500308 999999 24017 CHADRON MUNICIPAL AP US NE KCDR 42.836999999999996 -103.098 1004.6 19480101 19550101 999999 24018 CHEYENNE MUNICIPAL ARPT US WY KCYS 41.15 -104.81700000000001 1871.5 19710101 19721231 999999 24019 DOUGLAS US WY 4DG 42.75 -105.383 1466.1 19480601 19550101 999999 24020 HAYES CENTER US NE 40.516999999999996 -101.01700000000001 926.9 19480101 19501101 999999 24021 LANDER HUNT FIELD US WY KLND 42.815 -108.726 1694.1 19480101 19721231 999999 24022 LARAMIE GENERAL BREES FIELD US WY KLAR 41.317 -105.68299999999999 2216.5 19480101 19550101 999999 24023 NORTH PLATTE LEE BIRD FIELD US NE KLBF 41.121 -100.669 849.5 19480101 19721231 999999 24024 PHILIP 1 S US SD KPHP 44.051 -101.601 674.2 19480101 19550101 999999 24025 PIERRE REGIONAL AP US SD KPIR 44.381 -100.286 526.1 19480101 19721231 999999 24026 RAPID CITY US SD 44.15 -103.1 981.2 19480101 19750709 999999 24027 ROCK SPRINGS ARPT US WY KRKS 41.593999999999994 -109.053 2055.9 19480101 19721231 999999 24028 SCOTTSBLUFF W B HEILIG FIEL US NE KBFF 41.871 -103.59299999999999 1206.4 19480101 19721231 999999 24029 SHERIDAN COUNTY ARPT US WY KSHR 44.769 -106.969 1209.4 19480101 19721231 999999 24030 SIDNEY MUNICIPAL AP US NE KSNY 41.099 -102.986 1312.5 19480601 19550101 999999 24031 SINCLAIR CAA AP US WY 41.8 -107.05 2000.1 19480101 19510226 999999 24033 BILLINGS MUNICIPAL ARPT US MT KBIL 45.806999999999995 -108.542 1088.1 19480101 19721231 999999 24034 GLASGOW # 2 US MT 48.183 -106.633 637.0 19480101 19551025 999999 24035 HAVRE US MT 48.567 -109.667 759.9 19480101 19610131 999999 24036 LEWISTOWN MUNICIPAL ARPT US MT KLWT 47.049 -109.458 1263.7 19480101 19721231 999999 24037 MILES CITY MUNICIPAL ARPT US MT KMLS 46.427 -105.883 802.8 19480101 19721231 999999 24040 CUSTER US MT 46.133 -107.53299999999999 836.1 19480101 19500515 999999 24057 RAWLINS MUNICIPAL AP US WY KRWL 41.8 -107.2 2055.3 19550101 19650101 999999 24088 MOORCROFT 3 S US WY 44.217 -104.93299999999999 1318.3 19500101 19520715 999999 24089 CASPER NATRONA CO INTL AP US WY KCPR 42.898 -106.47399999999999 1612.4 19650101 19721231 999999 24090 RAPID CITY REGIONAL ARPT US SD KRAP 44.043 -103.054 965.6 19501101 19721231 999999 24091 IMPERIAL FAA AP US NE KIML 40.51 -101.62 997.6 19501201 19541231 999999 24101 OGDEN HILL AAF US UT KHIF 41.117 -111.96700000000001 1459.7 19710101 19710101 999999 24118 FORT BRIDGER AP US WY 41.4 -110.417 2140.9 19480601 19550101 999999 24119 BATTLE MOUNTAIN LANDER COUNTY US NV KBAM 40.611999999999995 -116.89200000000001 1381.4 19481101 19550101 999999 24120 COALVILLE SAWRS US UT CVL 40.917 -111.4 1763.0 19480101 19480611 999999 24121 ELKO MUNICIPAL ARPT US NV KEKO 40.829 -115.789 1546.6 19480101 19761231 999999 24122 FAIRFIELD CAA AP US UT 40.35 -112.05 1513.9 19481101 19500731 999999 24125 LUCIN US UT 41.35 -113.9 1362.2 19481101 19500306 999999 24126 OGDEN AIRPORT US UT KOGD 41.196000000000005 -112.01100000000001 1353.0 19480101 19550101 999999 24128 WINNEMUCCA MUNICIPAL ARPT US NV KWMC 40.902 -117.80799999999999 1314.9 19490915 19721231 999999 24129 WINNEMUCCA WB CITY US NV 40.967 -117.71700000000001 1309.1 19480101 19490207 999999 24130 BAKER MUNICIPAL AP US OR KBKE 44.843 -117.809 1028.1 19480101 19641231 999999 24131 BOISE AIR TERMINAL US ID KBOI 43.567 -116.241 874.2 19480101 19721231 999999 24132 BOZEMAN GALLATIN FIELD US MT KBZN 45.788000000000004 -111.161 1356.1 19480101 19550101 999999 24133 BURLEY MUNICIPAL ARPT US ID KBYI 42.542 -113.766 1267.1 19480101 19650101 999999 24134 BURNS FEDERAL BLDG US OR 4BW 43.583 -119.05 1262.2 19480101 19800215 999999 24135 BUTTE SILVER BOW CO ARPT US MT KBTM 45.965 -112.501 1686.5 19480101 19610101 999999 24137 CUT BANK MUNI AP US MT KCTB 48.603 -112.375 1169.8 19480101 19721231 999999 24138 DILLON US MT KDLN 45.258 -112.554 1591.7 19480101 19970630 999999 24139 DRUMMOND AVIATION US MT 46.638000000000005 -113.176 1219.2 19480101 19550101 999999 24140 DUBOIS FAA AIRPORT US ID DBS 44.167 -112.21700000000001 1563.9 19480101 19550101 999999 24141 EPHRATA AP FCWOS US WA KEPH 47.308 -119.515 383.7 19480101 19550101 999999 24142 GOODING 2 S US ID GNG 42.917 -114.71700000000001 1088.1 19480101 19550101 999999 24143 GREAT FALLS INTL ARPT US MT KGTF 47.473 -111.382 1114.7 19480101 19721231 999999 24144 HELENA ARPT US MT KHLN 46.606 -111.964 1179.0 19480101 19721231 999999 24145 IDAHO FALLS FANNING FIELD US ID KIDA 43.516000000000005 -112.06700000000001 1446.0 19480101 19650101 999999 24146 KALISPELL GLACIER PK INT'L AR US MT KGPI 48.303999999999995 -114.264 906.2 19480101 19721231 999999 24147 LA CROSSE US WA 46.817 -117.883 452.0 19480101 19480919 999999 24148 LA GRANDE MUNI AP US OR KLGD 45.283 -118.0 828.1 19490101 19531231 999999 24149 LEWISTON NEZ PERCE COUNTY ARP US ID KLWS 46.375 -117.016 437.7 19480101 19721231 999999 24150 LIVINGSTON MISSION FIELD US MT KLVM 45.698 -110.441 1407.6 19480101 19550101 999999 24151 MALAD CITY AIRPORT US ID KMLD 42.148999999999994 -112.287 1372.5 19480101 19550101 999999 24152 MEACHUM EMERGENCY AP US OR KMEH 45.511 -118.425 1135.7 19480101 19721231 999999 24153 MISSOULA JOHNSON-BELL FLD US MT KMSO 46.92100000000001 -114.09299999999999 972.0 19480101 19721231 999999 24154 MULLAN PASS VOR/DME US ID KMLP 47.457 -115.645 1851.4 19480101 19550101 999999 24155 PENDLETON MUNICIPAL ARPT US OR KPDT 45.698 -118.855 461.5 19380101 19721231 999999 24156 POCATELLO MUNICIPAL ARPT US ID KPIH 42.92 -112.571 1364.9 19480101 19721231 999999 24157 SPOKANE US WA KGEG 47.622 -117.52799999999999 720.9 19680101 19711231 999999 24158 STREVELL US ID 4SV 42.016999999999996 -113.25 1609.3 19480101 19501216 999999 24159 SUPERIOR US MT 47.2 -114.883 826.0 19480101 19531114 999999 24160 WALLA WALLA MUNICIPAL AP US WA KALW 46.095 -118.287 367.3 19660101 19660101 999999 24161 WHITEHALL US MT 4HA 45.867 -111.96700000000001 1303.9 19480101 19550101 999999 24162 ONTARIO AIRPORT US OR KONO 44.021 -117.01299999999999 668.4 19480101 19550101 999999 24163 PASCO NAS US WA KPSC 46.266999999999996 -119.117 122.5 19450401 19460601 999999 24172 LOVELOCK DERBY FIELD US NV KLOL 40.068000000000005 -118.569 1189.9 19481101 19761231 999999 24193 WENDOVER USAF AUXILIARY FIELD US UT KENV 40.721 -114.036 1290.8 19500308 19721231 999999 24207 TACOMA MCCHORD AAF US WA KTCM 47.15 -122.48299999999999 98.5 19710101 19721231 999999 24212 BURNEY US CA KBNY 40.883 -121.667 962.6 19480101 19480927 999999 24215 MOUNT SHASTA US CA KMHS 41.333 -122.333 1077.5 19480401 19761231 999999 24216 RED BLUFF MUNICIPAL ARPT US CA KRBL 40.152 -122.25399999999999 107.6 19480101 19721231 999999 24219 THE DALLES MUNICIPAL ARPT US WA KDLS 45.619 -121.166 64.0 19480101 19650101 999999 24220 ELLENSBURG BOWERS FI US WA KELN 47.034 -120.53 538.0 19480601 19550101 999999 24221 EUGENE MAHLON SWEET ARPT US OR KEUG 44.128 -123.221 113.7 19480101 19721231 999999 24223 KELSO WB AP US WA KKLS 46.117 -122.89399999999999 6.1 19480101 19530831 999999 24224 KLAMATH FALLS KINGSLEY FIELD US OR 42.167 -121.73299999999999 1244.8 19480101 19590901 999999 24225 MEDFORD JACKSON COUNTY ARPT US OR KMFR 42.381 -122.87200000000001 405.1 19480101 19721231 999999 24226 NORTH HEAD US WA 46.3 -124.083 64.0 19480101 19490101 999999 24227 OLYMPIA MUNICIPAL ARPT US WA KOLM 46.973 -122.90299999999999 61.0 19480101 19721231 999999 24228 PORT ANGELES WB AP US WA NOW 48.133 -123.4 6.1 19490101 19530201 999999 24229 PORTLAND US OR KPDX 45.596000000000004 -122.609 32.6 19650101 19721231 999999 24230 REDMOND ROBERTS FIELD US OR KRDM 44.256 -121.139 940.0 19480101 19721231 999999 24231 ROSEBURG MUNICIPAL AP US OR KRBG 43.239 -123.355 155.1 19480101 19650101 999999 24232 SALEM MCNARY FIELD US OR KSLE 44.905 -123.001 61.3 19480101 19721231 999999 24233 SEATTLE SEATTLE-TACOMA ARPT US WA KSEA 47.443999999999996 -122.314 132.3 19700101 19721231 999999 24234 SEATTLE BOEING FIELD US WA KBFI 47.53 -122.301 9.1 19650101 19721231 999999 24235 SEXTON SUMMIT US OR KSXT 42.6 -123.36399999999999 1170.7 19480101 19721231 999999 24236 SISKIYOU SUMMIT US OR 42.083 -122.56700000000001 1367.0 19480101 19480919 999999 24237 STAMPEDE PASS US WA KSMP 47.277 -121.337 1209.1 19480101 19721231 999999 24238 STEVENSON US WA 45.717 -121.833 96.9 19490101 19520416 999999 24240 TATOOSH ISLAND US WA K93S 48.383 -124.73299999999999 25.9 19480101 19660801 999999 24241 TOLEDO WINLOCK MUNI AP US WA KTDO 46.483000000000004 -122.81700000000001 114.3 19480101 20041231 999999 24243 YAKIMA AIR TERMINAL US WA KYKM 46.568000000000005 -120.54299999999999 324.9 19480101 19721231 999999 24244 SEATTLE NAS US WA NEJ 47.683 -122.26700000000001 14.9 19450301 19700601 999999 24246 ASTORIA NAS US OR 46.167 -123.883 4.0 19450401 19460520 999999 24248 CORVALLIS NAAS US OR 44.5 -123.28299999999999 75.0 19450622 19450915 999999 24249 KLAMATH FALLS NAS US OR 42.133 -121.75 1247.9 19450401 19451001 999999 24250 LAKEVIEW NSA US OR 42.15 -120.4 1444.1 19450401 19451001 999999 24251 NORTH BEND NAAF US OR 43.417 -124.23299999999999 15.8 19450501 19450915 999999 24252 QUILLAYUTE NAAS US WA 47.95 -124.53299999999999 61.9 19450301 19450901 999999 24253 SHELTON NAAS US WA 47.233000000000004 -123.133 91.1 19450401 19450916 999999 24254 TILLAMOOK NAS US OR 45.417 -123.8 11.9 19460101 19480430 999999 24255 WHIDBEY ISLAND NAS US WA KNUW 48.35 -122.667 14.3 19450401 19721231 999999 24259 MONTAGUE SISKIYOU COUNTY AP US CA KSIY 41.781000000000006 -122.47200000000001 805.0 19560101 19660101 999999 24278 HOQUIAM US WA 46.967 -123.883 4.9 19530501 19530601 999999 24281 WSMO (EMSU) US WA 47.65 -122.3 5.8 19960702 20031231 999999 24283 ARCATA AIRPORT US CA KACV 40.978 -124.109 64.0 19491201 19721231 999999 24284 NORTH BEND MUNI AIRPORT US OR KOTH 43.413000000000004 -124.244 5.2 19490501 19761231 999999 24285 NEWPORT MUNICIPAL AP US OR KONP 44.583 -124.05 48.8 19490801 19501115 999999 24286 CRESCENT CITY FAA AI US CA KCEC 41.78 -124.23700000000001 16.8 19491015 19550101 999999 25237 HOLBERG CA CYHJ 50.65 -128.0 569.1 19560611 19691230 999999 25309 JUNEAU MUNICIPAL ARPT US AK PAJN 58.357 -134.564 7.3 19480701 19721231 999999 25310 ANGOON US AK PAGN 57.498999999999995 -134.586 0.0 19480724 19480901 999999 25315 CAPE DECISION US AK CDE 56.0 -134.13299999999998 14.9 19480701 19480901 999999 25316 CAPE SPENCER US AK CSP 58.2 -136.63299999999998 27.1 19480701 19480901 999999 25317 CRAIG US AK CGA 55.483000000000004 -133.15 4.0 19480701 19480901 999999 25322 GUSTAVUS US AK PAGS 58.411 -135.709 9.1 19490101 19680701 999999 25323 HAINES US AK PAHN 59.243 -135.509 4.9 19480701 19530831 999999 25325 KETCHIKAN TONGASS US AK PAKT 55.357 -131.71200000000002 29.3 19480701 19480831 999999 25329 PETERSBURG US AK PAPG 56.806000000000004 -132.937 32.6 19480701 19560430 999999 25333 SITKA JAPONSKI AP US AK PASI 57.048 -135.365 20.4 19480701 19710201 999999 25339 YAKUTAT STATE AP US AK PAYA 59.512 -139.671 9.4 19490101 19721231 999999 25342 CAPE SAINT JAMES & CA WFV 51.933 -131.017 19530101 19721231 999999 25343 LANGARA CA CYLA 54.25 -133.05 41.1 19540101 19721231 999999 25379 SITKA 1 NE US AK 57.056999999999995 -135.327 23.8 20050815 20170924 999999 25380 GUSTAVUS 2 NE US AK 58.428999999999995 -135.69 6.1 20120719 20170924 999999 25381 METLAKATLA 6 S US AK 55.04600000000001 -131.588 32.0 20120726 20170924 999999 25382 YAKUTAT 3 SSE US AK 59.50899999999999 -139.685 7.9 20160827 20170924 999999 25403 MIDDLETON ISLAND AUT US AK PAMD 59.45 -146.317 36.9 19590101 19630701 999999 25506 ILIAMNA ARPT US AK PAIL 59.748999999999995 -154.909 48.8 19480701 19710131 999999 25507 HOMER MUNICIPAL ARPT US AK PAHO 59.641999999999996 -151.491 22.3 19480701 19721231 999999 25515 DRIFTWOOD BAY US AK DFB 53.967 -166.85 395.9 19590630 19690601 999999 25522 KING SALMON 42 SE US AK 58.208 -155.923 201.5 20120815 20170922 999999 25624 COLD BAY ARPT US AK PACD 55.221000000000004 -162.733 31.4 19550701 19721231 999999 25630 SAND POINT 1 ENE US AK 55.347 -160.466 73.2 20090820 20170924 999999 25701 ADAK DAVIS AFB US AK 51.883 -176.65 4.9 19490101 19500701 999999 25709 ASI TANAGA ISLAND NS US AK 51.75 -178.033 45.1 19470201 19490316 999999 25711 ST. PAUL 4 NE US AK 57.158 -170.21200000000002 6.1 20050807 20170924 999999 26114 CAPE YOUNG PIN 2 CA CYUI 68.933 -116.917 17.1 19530101 19671101 999999 26394 TUKTOYAKTUK CA CYUB 69.45 -133.017 5.0 19640101 19721231 999999 26401 ANCHORAGE ELMENDORF AFB US AK PAED 61.253 -149.79399999999998 64.9 20040702 20041231 999999 26403 LADD AAB US AK FBK 64.85 -147.583 148.1 19490101 19601101 999999 26413 FORT YUKON US AK PFYU 66.567 -145.267 138.4 19480701 19630930 999999 26414 SUMMIT AIRPORT US AK PAST 63.331 -149.127 734.3 19480701 20041231 999999 26416 BOUNDARY US AK BYA 64.067 -141.11700000000002 793.1 19480701 19480901 999999 26417 CAPE HINCHINBROOK US AK CHB 60.233000000000004 -146.65 56.1 19640701 19731231 999999 26418 CENTRAL NO 2 US AK PACE 65.567 -144.765 284.1 19480701 19480901 999999 26422 EAGLE AIRPORT US AK PAEG 64.777 -141.148 273.7 19980202 20041231 999999 26435 NENANA MUNICIPAL AP US AK PANN 64.55 -149.072 110.3 19490101 19710201 999999 26436 NORTH DUTCH ISLAND C US AK NDI 60.766999999999996 -147.8 11.9 19480701 19510914 999999 26437 PORTAGE US AK 60.85 -148.983 11.0 19480701 19480901 999999 26439 SHEEP MOUNTAIN US AK PASP 61.812 -147.507 835.2 19490101 20041231 999999 26442 VALDEZ WSO US AK PAVW 61.13 -146.352 11.3 19670702 19721231 999999 26445 YAKATAGA AP US AK PAWS 61.571999999999996 -149.54 107.9 19480701 19680523 999999 26451 ANCHORAGE INTL AP US AK PANC 61.169 -150.028 40.2 19531101 19721231 999999 26452 ELMENDORF 2 AFB US AK 61.25 -149.8 63.1 19531022 19560413 999999 26455 HUMPHREY POINT BAR A US AK 69.917 -142.333 7.0 19580401 19630901 999999 26457 CAMDEN BAY US AK 69.983 -144.833 3.0 19580324 19630801 999999 26458 GERSTLE RIVER US AK 63.85 -144.983 4.9 19691130 19700917 999999 26494 FAIRBANKS 11 NE US AK 64.97399999999999 -147.51 347.5 20020809 20170924 999999 26510 MCGRATH ARPT US AK PAMC 62.957 -155.61 103.0 19480703 19721231 999999 26512 MINCHUMINA US AK PAMH 63.886 -152.30200000000002 214.0 19480701 19690501 999999 26513 SHUNGNAK CAA US AK SHG 66.9 -157.033 42.1 19480709 19500915 999999 26514 SKWENTNA US AK PASW 61.977 -151.217 45.1 19480731 19590217 999999 26516 ANIAK AIRPORT US AK PANI 61.583 -159.533 25.9 19480701 19710131 999999 26517 BETTLES CAA US AK 66.9 -151.717 260.9 19480701 19510501 999999 26519 FAREWELL FAA AP US AK PAFK 62.516999999999996 -153.88299999999998 458.1 19480701 19710201 999999 26523 KENAI MUNICIPAL AP US AK PAEN 60.58 -151.239 28.0 19480701 19710201 999999 26526 PUNTILLA LAKE US AK KPTI 62.091 -152.735 566.3 20040702 20041231 999999 26528 TALKEETNA STATE ARPT US AK PATK 62.32 -150.095 108.5 19480701 19721231 999999 26529 TANANA RALPH M CALHOUN MEM AP US AK PATA 65.175 -152.107 67.1 19480701 19710311 999999 26533 BETTLES FIELD US AK PABT 66.54 -151.31 196.0 19520101 19721231 999999 26539 FIVE MILE CAMP US AK 66.083 -150.0 134.1 19741101 19751101 999999 26540 OLD MAN US AK 67.45 -150.583 11.0 19741101 19751101 999999 26562 PORT ALSWORTH 1 SW US AK 60.195 -154.32 97.8 20090925 20170924 999999 26563 KENAI 29 ENE US AK 60.724 -150.44799999999998 86.0 20100830 20170924 999999 26564 IVOTUK 1 NNE US AK 68.485 -155.751 581.9 20140618 20170924 999999 26565 DEADHORSE 3 S US AK 70.16199999999999 -148.464 9.1 20140627 20170924 999999 26616 KOTZEBUE RALPH WEIN MEMORIAL US AK PAOT 66.867 -162.63299999999998 4.9 19450101 19721231 999999 26617 NOME MUNICIPAL ARPT US AK PAOM 64.51100000000001 -165.44 6.7 19470101 19721231 999999 26618 WALES US AK KWAA 65.617 -168.05 2.7 19560802 19580517 999999 26619 CANDLE US AK CDL 65.933 -161.917 7.0 19480701 19480901 999999 26627 UNALAKLEET FIELD US AK PAUN 63.883 -160.8 6.1 19480701 19721231 999999 26637 CAPE BEAUFORT LIZ A US AK 69.033 -163.783 14.9 19571014 19630824 999999 26638 POINT LAY LIZ 2 US AK PIZ 69.733 -163.017 6.1 19570801 19721231 999999 26655 RED DOG MINE 3 SSW US AK 68.028 -162.921 287.1 20100825 20170924 999999 26703 GAMBELL US AK PAGM 63.766999999999996 -171.733 7.9 19480701 19530701 999999 27102 HOLMAN ISLAND CA CYHI 70.5 -117.633 9.1 19580101 19840101 999999 27201 SACHS HARBOUR CA CYSY 71.95 -124.73299999999999 84.1 19551101 19840101 999999 27202 CAPE PARRY AIRPORT CA CZUE 70.167 -124.68299999999999 17.0 19560101 19721231 999999 27301 MCINTYRE POW C US AK 70.4 -148.7 4.9 19580301 19630701 999999 27403 OLIKTOK POW 2 US AK OLI 70.5 -149.88299999999998 4.9 19570809 19721231 999999 27404 FLAXMAN ISLAND POW 3 US AK 70.167 -146.833 7.0 19570815 19710701 999999 27405 PRUDHOE BAY US AK PAUD 70.25 -148.333 14.0 19680701 19721231 999999 27503 WAINWRIGHT AIRPORT US AK PAWI 70.639 -159.995 9.1 19480701 19480901 999999 27506 BARROW POINT BARROW US AK PBA 71.333 -156.65 6.1 19590826 19710101 999999 27507 PEARD BAY LIZ C US AK 70.8 -158.25 28.0 19570801 19630701 999999 27508 WAINWRIGHT LIZ 3 US AK PAWI 70.617 -159.85 27.1 19570802 19721231 999999 27510 CAPE SIMPSON POW A US AK 71.05 -154.75 3.0 19571101 19630903 999999 27511 KOGRU RIVER POW B US AK 71.583 -152.167 9.1 19580101 19630904 999999 27512 LONELY US AK LNI 70.917 -153.25 9.1 19570726 19721231 999999 27516 BARROW 4 ENE US AK 71.321 -156.611 4.6 20020808 20170924 999999 27601 ICY CAPE LIZ B US AK 70.367 -161.75 14.9 19571101 19630828 999999 33126 SIGONELLA IT KQNS 37.4 14.917 31.1 19600311 19781231 999999 34048 CHATEAUROUX FR LFLX 46.85 1.7169999999999999 164.0 19510731 19661230 999999 34051 TOUL ROSIERE FR LFSL 48.766999999999996 5.983 288.0 19520319 19670131 999999 34052 CHAUMONT FR LFQU 48.1 5.05 313.0 19520505 19661230 999999 34053 LAON FR LLXO 49.633 3.55 82.9 19520531 19661230 999999 34061 EVREUX FR LFOE 49.016999999999996 1.2329999999999999 141.1 19541022 19670608 999999 34062 PHALSBOURG FR 48.817 7.2 313.0 19541024 19661118 999999 34065 DREUX FR LFOX 48.65 1.1 182.9 19550902 19661007 999999 34066 ORLEANS FR LFOS 47.933 1.883 128.0 19570301 19670317 999999 34067 BRIENNE FR LFOK 48.433 4.4830000000000005 120.1 19630102 19650521 999999 34071 VERDUN FR LFZU 49.117 5.4670000000000005 371.9 19591102 19670214 999999 34072 SUIPPES RANGE (MET) FR LFFS 49.15 4.533 19600201 19670228 999999 34194 VERONA IT LIPN 45.467 10.933 93.0 19600120 19671229 999999 34196 GABLINGEN GM EDOX 48.45 10.867 466.0 19630910 19671229 999999 35034 LAKENHEATH RAF UK EGUL 52.4 0.5670000000000001 10.1 19490501 19671231 999999 35046 MILDENHALL UK EGUN 52.367 0.483 10.1 19500714 19671231 999999 35047 MANSTON UK EGUM 51.35 1.367 43.9 19500720 19580531 999999 35048 BENTWATERS UK EGVJ 52.133 1.433 25.9 19510601 19671231 999999 35049 STANTON UK 52.317 0.917 61.0 19510601 19590109 999999 40308 YAP ISLAND WSO AP FM FM PTYA 9.482999999999999 138.083 17.1 19520101 19721231 999999 40309 KOROR WSO PS PC PTKR 7.332999999999999 134.483 33.2 19520101 19721231 999999 40504 WEATHER SERVICE BUILDING FM FM 6.9670000000000005 158.217 36.6 19530101 20170731 999999 40505 CHUUK WSO AP FM FM PTKK 7.45 151.833 2.4 19520101 19721231 999999 40604 KWAJALEIN MISSLE RAN RM PC PKWA 8.732999999999999 167.733 7.9 19530101 19721231 999999 40710 WEATHER SERVICE OFFICE BUILDING RM MH 7.065 171.27200000000002 3.1 19550131 20170731 999999 41003 DA NANG VM VVSD 16.05 108.2 7.0 19651130 19671231 999999 41013 KY HA VM IKYU 15.467 108.7 18.0 19650930 19671031 999999 41024 MARBLE MOUNTAIN VM 16.033 108.25 9.1 19660201 19671231 999999 41056 QUANG TRI VM VVQT 16.767 107.167 14.0 19671215 19691031 999999 41068 VANDERGRIF VM ILZV 16.683 106.833 36.9 19680714 19690930 999999 41224 SANGLEY POINT RP RPMS 14.5 120.917 2.1 19470101 19631231 999999 41225 SAN JOSE RP 12.6 121.0 4.0 19450514 19450917 999999 41226 LEYTE GULF NF RP RLTE 11.067 125.03299999999999 4.0 19450731 19450829 999999 41227 MANILA NF RP 14.6 121.0 4.0 19451231 19460131 999999 41228 MANILA NF RP 14.6 121.0 32.9 19460630 19470123 999999 41229 MANILA RP 14.55 120.98299999999999 4.0 19470131 19470630 999999 41230 OLONGAPO RP ROLP 14.817 120.28299999999999 4.0 19500110 19550729 999999 41231 CUBI POINT NF RP RPLB 14.8 120.26700000000001 14.0 19550731 19721231 999999 41406 GUAM WFO GQ PGUM 13.482999999999999 144.8 77.4 19450831 19950331 999999 41407 GUAM MARSHALL ISLAND GQ 13.467 144.25 54.9 19460531 19461231 999999 41408 SAIPAN MARSHALL ISLA CQ PGSN 15.117 145.7 32.0 19530509 19620618 999999 41411 GUAM OROTE GQ 13.433 144.63299999999998 24.1 19450531 19480529 999999 41412 SAIPAN MARSHALL ISLA RM 15.217 145.75 11.0 19501231 19510531 999999 41413 TINIAN MARSHALL ISLA CQ 15.0 145.63299999999998 75.9 19450630 19460228 999999 41415 GUAM WFO GQ GU PGUM 13.482999999999999 144.8 76.2 19671231 19721231 999999 41606 WAKE ISLAND WQ PC PWAK 19.283 166.65 3.7 19491031 19721231 999999 42204 KADENA AB JA RODN 26.35 127.76700000000001 43.0 19481231 19680331 999999 42210 YONABARU RYUKYU ISLA JA 26.2 127.75 9.1 19450831 19470930 999999 42215 FUTENMA US ROTM 26.267 127.75 84.1 19600630 19721231 999999 42216 HAMBY AAF JA ROHF 26.3 127.76700000000001 4.9 19630825 19680331 999999 42402 CHICHI JIMA BONIN IS JA RJAO 27.083000000000002 142.2 7.9 19531004 19680625 999999 42501 MARCUS ISLAND NF JA 24.283 153.967 7.0 19451231 19470731 999999 42502 MINAMI TORI SHIMA MA JA PZMI 24.3 153.967 6.1 19630630 19680630 999999 43204 HUNG CHIA CH 31.233 121.45 27.1 19451208 19490425 999999 43205 TSINGTAO CH 36.183 120.383 14.0 19451231 19480930 999999 43213 PUSAN AST - ROK K-9 KS RKPP 35.167 129.13299999999998 4.9 19500905 19621231 999999 43214 TAEJON ROK K-5 KS RKTD 36.45 127.43299999999999 39.9 19540630 19671231 999999 43220 KWANDAE RI TEAM 840 KS RKNK 38.016999999999996 128.13299999999998 181.1 19510909 19671231 999999 43238 YONGIL MAN MAG 12 KS 35.983000000000004 129.433 20.1 19511231 19560731 999999 43240 SACHON ROK K-4 KS RKPS 35.083 128.067 7.9 19540630 19700930 999999 43263 CHEJU DO K 39 KS 33.2 126.26700000000001 13.1 19540729 19671231 999999 43270 CHANGGAI GAP ROK K 3 KS 36.083 129.567 21.0 19580515 19671231 999999 43273 OSAN KS RKSN 37.033 126.75 11.9 19630228 19671229 999999 43309 IRUMA JA RJTJ 35.833 139.417 93.9 19481231 19601231 999999 43313 FUSSA JA RJTY 35.75 139.35 139.0 19481231 19680331 999999 43316 BRADY JA RKBD 33.633 130.5 14.0 19500916 19550605 999999 43317 YUKUHASHI JA RJFZ 33.667 131.033 11.9 19500811 19570630 999999 43318 NIIGATA JA RJSN 37.95 139.11700000000002 4.0 19510228 19570630 999999 43320 OPPAMA JA 35.317 139.65 7.9 19510630 19600624 999999 43321 KISARAZU JA RJTK 35.383 139.917 6.1 19520725 19590331 999999 43322 IWAKUNI JA RIWA 34.15 132.233 3.0 19521031 19540915 999999 43323 YOKOSUKA JA RJTX 35.283 139.667 53.0 19530228 19761231 999999 43324 IWAKUNI JA RJOI 34.15 132.233 3.0 19521031 19721231 999999 43325 KASTNER AAF JA RJTW 35.516999999999996 139.4 107.0 19541230 19701231 999999 44101 PEKING CH RPEK 40.0 116.5 50.9 19460430 19460630 999999 44301 KHABAROVSK RS EUHH 48.483000000000004 135.483 53.0 19450914 19451218 999999 45708 SHEMYA ISLAND US AK 52.717 174.1 39.9 19490101 19551201 999999 45709 ATTU NS US AK ATU 52.8 173.167 28.0 19470101 19580625 999999 45714 SHEMYA ISLAND US AK 52.717 174.1 34.1 19580628 19590901 999999 45715 SHEMYA AFB US AK PASY 52.717 -174.1 29.6 19590901 20041231 999999 53002 ARTESIA 2 WNW US NM 32.855 -104.45700000000001 1067.1 20100624 20140601 999999 53003 GRANTS 2 S US NM 35.119 -107.83 1963.8 20100828 20140601 999999 53004 BLUFF 32 NW US UT 37.601 -109.98899999999999 1959.3 20100813 20140601 999999 53005 BUENA VISTA 2 SSE US CO 38.811 -106.12200000000001 2418.0 20100717 20140601 999999 53006 AMADO 23 W US AZ 31.691999999999997 -111.448 1005.8 20100926 20140601 999999 53007 COLORADO SPRINGS 23 NW US CO 39.088 -105.088 2399.4 20100630 20140601 999999 53008 CLOVIS 7 N US NM 34.512 -103.17399999999999 1315.5 20091213 20140601 999999 53009 RAMAH 9 SE US NM 35.046 -108.36399999999999 2183.6 20100902 20140601 999999 53010 MONTICELLO 24 NW US UT 38.14 -109.617 1531.6 20100814 20140601 999999 53011 TSAILE 1 SSW US AZ 36.292 -109.21799999999999 2155.2 20100817 20130624 999999 53012 BLANDING 26 SSW US UT 37.266999999999996 -109.60700000000001 1338.1 20100815 20140601 999999 53013 CEDAR CITY 18 SSE US UT 37.457 -113.225 1553.3 20100804 20140601 999999 53014 MEXICAN HAT 10 NW US UT 37.251 -109.988 1939.8 20100818 20140601 999999 53015 HAGERMAN 10 ESE US NM 33.088 -104.162 1082.7 20100904 20140601 999999 53016 VAUGHN 36 SSE US NM 34.137 -104.93 1534.4 20100828 20140601 999999 53017 AZTEC 43 E US NM 36.75 -107.219 2140.9 20100831 20140601 999999 53129 COLORADO CITY MUNI AIRPORT US AZ KAZC 36.96 -113.014 1485.6 20020802 20170916 999999 53131 TUCSON 11 W US AZ 32.24 -111.17 833.0 20020918 20170924 999999 53132 ELGIN 5 S US AZ 31.590999999999998 -110.509 1466.4 20020915 20170924 999999 53136 MERCURY 3 SSW US NV 36.624 -116.023 1001.0 20010524 20170924 999999 53138 BAKER 5 W US NV 39.012 -114.209 2016.9 20040509 20170924 999999 53139 STOVEPIPE WELLS 1 SW US CA 36.602 -117.145 25.6 20040504 20170924 999999 53149 TORREY 7 E US UT 38.303000000000004 -111.294 1891.0 20071002 20170924 999999 53150 YOSEMITE VILLAGE 12 W US CA 37.759 -119.821 2017.8 20070928 20170924 999999 53151 FALLBROOK 5 NE US CA 33.439 -117.19 347.5 20080430 20170924 999999 53152 SANTA BARBARA 11 W US CA 34.414 -119.88 5.5 20080814 20170924 999999 53154 YUMA 27 ENE US AZ 32.835 -114.18799999999999 189.0 20080319 20170924 999999 53155 WILLIAMS 35 NNW US AZ 35.755 -112.337 1825.8 20080626 20170924 999999 53156 PHOENIX 7 S US AZ 33.347 -112.083 427.9 20100301 20140601 999999 53159 CAMERON 25 SSE US AZ 35.504 -111.345 1465.2 20091215 20140601 999999 53160 CAMP VERDE 3 N US AZ 34.614000000000004 -111.84299999999999 1046.7 20100302 20140601 999999 53162 COOLIDGE 5 W US AZ 32.992 -111.53299999999999 434.3 20100227 20140601 999999 53163 SOCORRO 17 WSW US NM 33.98 -107.18700000000001 3196.1 20100625 20140601 999999 53164 PAGE 9 WSW US AZ 36.864000000000004 -111.601 991.8 20100803 20140601 999999 53165 DELTA 4 NE US UT 39.387 -112.51 1451.2 20100801 20140601 999999 53166 ST. GEORGE 15 NE US UT 37.216 -113.37899999999999 1041.5 20100805 20120927 999999 53167 MIDWAY 3 NE US UT 40.547 -111.414 1752.0 20100723 20140601 999999 53168 AJO 29 S US AZ 31.95 -112.801 506.3 20100927 20140601 999999 53169 KAYENTA 16 WSW US AZ 36.681999999999995 -110.542 2217.1 20100819 20140601 999999 53170 HEBER 3 SE US AZ 34.398 -110.566 2019.3 20091217 20140601 999999 53171 MILFORD 42 WNW US UT 38.594 -113.751 1601.7 20100802 20140601 999999 53172 LAKE HAVASU CITY 19 SE US AZ 34.253 -114.134 126.8 20100922 20140601 999999 53173 NAGEEZI 18 SSW US NM 36.035 -107.905 1965.7 20100901 20140601 999999 53176 GILA BEND 3 ENE US AZ 32.965 -112.67 237.7 20100924 20140601 999999 53843 ANDALUSIA-OPP MUNICIPAL AIRPORT US AL 31.309 -86.39399999999999 94.5 20040702 20041231 999999 53846 KINGS BAY/NAVAL STATION US GA 30.8 -81.5 15.2 19960702 20031231 999999 53848 NAVAL AUXILIARY LANDING FD US FL KNFJ 30.506999999999998 -86.96 33.8 19960702 20170923 999999 53854 ORANGEBURG MUNICIPAL AP US SC KOGB 33.461999999999996 -80.858 60.0 19970602 20041231 999999 53867 COLUMBIA OWENS DOWNTOWN AP US SC KCUB 33.971 -80.99600000000001 64.6 19981002 20041231 999999 53877 ASHEVILLE 8 SSW US NC 35.495 -82.61399999999999 655.6 20001120 20170924 999999 53878 ASHEVILLE 13 S US NC 35.419000000000004 -82.557 641.0 20001121 20170924 999999 53881 KNOXVILLE MCGHEE-TYSON AP US VA KBCB 37.208 -80.408 649.8 20020902 20041231 999999 53882 KNOXVILLE ISLAND AP US GA KBGE 30.983 -84.633 43.0 20020602 20041231 999999 53894 HERLONG AIRPORT US FL KHEG 30.278000000000002 -81.806 26.5 20020602 20041231 999999 53921 MOUNT IDA US AR KMWT 34.547 -93.57799999999999 214.0 19990302 20041231 999999 53926 STILLWATER 2 W US OK 36.118 -97.09100000000001 271.3 20020312 20170924 999999 53927 STILLWATER 5 WNW US OK 36.135 -97.10799999999999 270.7 20020312 20170924 999999 53960 LAFAYETTE 13 SE US LA 30.092 -91.87299999999999 10.7 20030111 20170924 999999 53961 MONROE 26 N US LA 32.883 -92.117 26.8 20030115 20170924 999999 53968 PALESTINE 6 WNW US TX 31.78 -95.723 116.7 20030525 20170924 999999 53974 MANHATTAN 6 SSW US KS 39.103 -96.61 346.6 20031001 20170924 999999 54701 PUERTO MONTT B CI -41.467 -72.817 11.0 19570103 19600429 999999 54794 DURHAM 2 N US NH 43.172 -70.928 36.3 20011216 20170924 999999 54795 DURHAM 2 SSW US NH 43.108999999999995 -70.94800000000001 19.2 20011216 20170924 999999 54796 KINGSTON 1 NW US RI 41.49100000000001 -71.541 35.1 20011216 20170924 999999 54797 KINGSTON 1 W US RI 41.478 -71.542 32.3 20011216 20170924 999999 54808 CHAMPAIGN 9 SW US IL 40.053000000000004 -88.37299999999999 213.4 20021220 20170924 999999 54810 CHATHAM 1 SE US MI 46.335 -86.92 266.7 20041110 20170924 999999 54811 SHABBONA 5 NNE US IL 41.843 -88.851 262.4 20030816 20170924 999999 54851 COSHOCTON 8 NNE US OH 40.367 -81.783 341.4 20061109 20160919 999999 54854 GAYLORD 9 SSW US MI 44.908 -84.72 445.3 20070919 20170924 999999 54856 WOOSTER 3 SSE US OH 40.764 -81.91 335.9 20161110 20170924 999999 54902 DES MOINES 17 E US IA 41.556000000000004 -93.286 280.7 20040915 20170924 999999 54903 NECEDAH 5 WNW US WI 44.06 -90.17399999999999 284.4 20041001 20170924 999999 54932 SANDSTONE 6 W US MN 46.114 -92.994 344.4 20070622 20170924 999999 54933 ABERDEEN 35 WNW US SD 45.711999999999996 -99.13 596.5 20070626 20170924 999999 54937 JAMESTOWN 38 WSW US ND 46.77 -99.478 585.2 20080729 20170924 999999 56401 GLENNALLEN 64 N US AK 63.03 -145.5 813.5 20130710 20170924 999999 57401 ELLSWORTH IGY AY -77.733 -41.117 43.0 19570301 19621212 999999 57701 EIGHTS AY -75.233 -77.167 420.9 19611125 19651114 999999 60703 CANTON ISLAND KR PCIS -2.767 -171.717 3.0 19491101 19590101 999999 61705 PAGO PAGO WSO AP AQ PC NSTU -14.331 -170.71400000000003 3.0 19660401 19721231 999999 63820 EVERETT-STEWART AIRPORT US TN KUCY 36.38 -88.985 103.9 20020902 20170920 999999 63826 BLACKVILLE 3 W US SC 33.355 -81.328 96.6 20020713 20170924 999999 63828 NEWTON 8 W US GA 31.313000000000002 -84.471 53.6 20020827 20170924 999999 63829 NEWTON 11 SW US GA 31.191999999999997 -84.447 47.6 20020827 20170924 999999 63831 NEWTON 5 ENE US MS 32.338 -89.07 114.0 20021103 20170924 999999 63838 VERSAILLES 3 NNW US KY 38.095 -84.74700000000001 271.6 20011120 20170924 999999 63839 FOLSOM FIELD AP US AL K3A1 34.269 -86.85799999999999 293.5 20040102 20041231 999999 63849 BOWLING GREEN 21 NNE US KY 37.25 -86.23299999999999 240.8 20040519 20170924 999999 63850 WATKINSVILLE 5 SSE US GA 33.784 -83.39 225.9 20040430 20170924 999999 63855 CROSSVILLE 7 NW US TN 36.014 -85.135 583.1 20041203 20170924 999999 63856 BRUNSWICK 23 S US GA 30.808000000000003 -81.46 7.6 20041215 20170924 999999 63857 GADSDEN 19 N US AL 34.285 -85.962 351.1 20050414 20170924 999999 63858 SELMA 13 WNW US AL 32.457 -87.242 58.8 20050526 20170924 999999 63862 VALLEY HEAD 1 SSW US AL 34.565 -85.617 310.9 20060504 20170924 999999 63866 GUNTERSVILLE 2 SW US AL 34.334 -86.316 189.0 20060504 20131216 999999 63867 CULLMAN 3 ENE US AL 34.195 -86.796 243.8 20060504 20170924 999999 63868 COURTLAND 2 WSW US AL 34.66 -87.346 175.3 20060504 20170924 999999 63869 FAIRHOPE 3 NE US AL 30.549 -87.876 29.0 20060713 20170924 999999 63871 TRI-COUNTY AIRPORT US FL 30.846 -85.601 25.9 20080101 20170923 999999 63890 WHITEHOUSE NAVAL OUTLYING FIELD US FL KNEN 30.35 -81.883 30.2 20070601 20170923 999999 63891 CLANTON 2 NE US AL 32.852 -86.61200000000001 178.0 20070314 20170924 999999 63892 GAINESVILLE 2 NE US AL 32.836999999999996 -88.137 32.6 20070316 20170924 999999 63893 GREENSBORO 2 WNW US AL 32.717 -87.62299999999999 85.3 20070315 20170924 999999 63894 MUSCLE SHOALS 2 N US AL 34.773 -87.64 161.5 20070425 20170924 999999 63895 RUSSELLVILLE 4 SSE US AL 34.454 -87.71 219.5 20060816 20170924 999999 63896 SCOTTSBORO 2 NE US AL 34.694 -86.0 193.9 20060816 20170924 999999 63897 SELMA 6 SSE US AL 32.335 -86.979 47.9 20070315 20170924 999999 63898 BEDFORD 5 WNW US IN 38.888000000000005 -86.571 231.7 20071003 20170924 999999 63899 BREWTON 3 NNE US AL 31.145 -87.052 51.8 20080117 20170924 999999 64756 MILLBROOK 3 W US NY 41.786 -73.742 125.9 20041101 20170924 999999 64757 CRN ON EGBERT 1 W CA ON 050E 44.233000000000004 -79.781 246.0 20040715 20170924 999999 64758 ITHACA 13 E US NY 42.44 -76.24600000000001 374.3 20041027 20170924 999999 67601 LITTLE AMERICA AY -78.2 -162.25 32.0 19560202 19590101 999999 68201 BYRD STATION AY -80.017 -119.53299999999999 1542.9 19570110 19721231 999999 68601 BEARDMORE CAMP AY -85.03299999999999 -164.667 230.1 19561231 19591231 999999 68701 BROCKTON STATION AY -80.017 -178.417 100.9 19651231 19720127 999999 70701 DIEGO GARCIA NAF IO PC FJDG -7.3 72.4 2.7 19710719 19721231 999999 73801 NORTHPORT 2 S US AL 33.213 -87.59100000000001 45.7 20090521 20170924 999999 73802 HIGHLAND HOME 2 S US AL 31.916 -86.31200000000001 187.2 20081202 20170924 999999 73803 TALLADEGA 10 NNE US AL 33.571999999999996 -86.057 160.0 20081203 20170924 999999 73805 NORTHWEST FLORIDA BEACHES INTL ARPT US FL KECP 30.349 -85.788 21.0 20100501 20110301 999999 77401 PLATEAU STATION AY -79.467 40.583 3504.9 19651214 19681231 999999 80309 BIAK ISLAND NF ID -1.2670000000000001 136.38299999999998 0.9 19450531 19450930 999999 80430 EMIRAU NF PP -1.683 149.967 0.9 19450430 19450731 999999 80431 MANUS ISLAND NF PP -2.017 147.433 43.9 19451231 19470131 999999 80705 FUNAFUTI NF TV NGFU -8.533 179.217 2.1 19450731 19450930 999999 82101 NORTHWEST CAPE AS -22.333000000000002 114.05 38.1 19680305 19680430 999999 86101 WILKES AY -66.267 110.56700000000001 11.9 19570303 19631231 999999 86102 WILKES ICE CAP STATI AY -66.467 112.28299999999999 19580320 19581027 999999 87601 MCMURDO SOUND NAF AY NZCM -77.883 166.733 24.1 19560309 19841231 999999 87602 MARBLE POINT AY -77.417 163.683 47.9 19571218 19590128 999999 87603 HUT POINT AY -77.883 166.733 25.9 19621004 19621231 999999 87701 ADARE HALLETT AY -72.3 170.217 4.9 19570131 19730215 999999 88701 LIV AY -83.28299999999999 175.75 182.9 19571109 19571130 999999 88702 BEARDMORE CAMP AY -83.4 174.75 59.1 19601108 19640227 999999 88703 LITTLE JEANA STATION AY -81.383 170.75 53.9 19641004 19660123 999999 91002 FLETCHER ICE ISLAND T-3 (ARCTIC) US 6.0 19660613 19710419 999999 91004 ICE SKATE B IC 80.0 -113.0 19610105 19611025 999999 92802 TAMPA BAY EXECUTIVE US FL KRRF 28.188000000000002 -82.626 12.5 19960702 20041231 999999 92811 LIFEGUARD OFFICE US FL 25.805999999999997 -80.133 2.4 20060101 20120201 999999 92821 TITUSVILLE 7 E US FL 28.616 -80.693 0.9 20050506 20170924 999999 92826 EVERGLADES CITY 5 NE US FL 25.9 -81.318 1.2 20070210 20170924 999999 92827 SEBRING 23 SSE US FL 27.153000000000002 -81.369 45.7 20071208 20170924 999999 93026 DOUGLAS MUNICIPAL AP US AZ KDUG 31.458000000000002 -109.60600000000001 1250.0 19481101 19550101 999999 93032 DENVER NAS US CO 39.7 -104.75 1695.9 19471001 19590310 999999 93035 MARFA US TX KMRF 30.371 -104.01700000000001 1478.0 19480705 19550101 999999 93037 COLORADO SPRINGS PETERSON FIE US CO KCOS 38.81 -104.68799999999999 1880.6 19650101 19721231 999999 93041 LAS CRUCES MUNICIPAL AP US NM KLRU 32.283 -106.917 1358.2 20020902 20041231 999999 93042 DALHART MUNICIPAL AP US TX KDHT 36.016999999999996 -102.55 1217.4 19481210 19550101 999999 93044 ZUNI US NM ZUN 35.067 -108.833 1923.3 19490217 19721231 999999 93045 TRUTH OR CONSEQUENCES MUNI AP US NM KTCS 33.236999999999995 -107.26799999999999 1480.7 19500526 19721231 999999 93057 GRANTS MILAN MUNICIPAL AP US NM KGNT 35.166 -107.899 1987.3 19540101 19550101 999999 93063 SILVER CITY GRANT CO US NM KSVC 32.633 -108.167 1659.9 19600502 19680830 999999 93092 NWS AWRS US NM 36.9 -106.583 2393.0 20020902 20021201 999999 93101 EL TORO MCAS US CA KNZJ 33.667 -117.73299999999999 116.7 19450301 20001101 999999 93102 FALLON NAAS US NV KNFL 39.417 -118.71700000000001 1199.1 19450301 19721231 999999 93104 CHINA LAKE NAF US CA KNID 35.688 -117.693 695.9 19450401 19721201 999999 93105 LITCHFIELD PARK NAF US AZ 33.433 -112.367 292.0 19480401 19660929 999999 93106 LOS ALAMITOS US CA KSLI 33.783 -118.05 11.0 19450401 19710731 999999 93107 SAN DIEGO MIRAMAR NAS US CA KNKX 32.867 -117.133 145.7 19470701 19881231 999999 93108 MOJAVE MCAS US CA 35.117 -118.15 841.9 19450401 19470101 999999 93111 POINT MUGU NF US CA KNTD 34.117 -119.117 3.7 19460301 19721231 999999 93113 SAN PEDRO NAS US CA 33.75 -118.25 13.1 19450301 19470601 999999 93114 MARINE CORPS AIR STATION US CA KNTK 33.7 -117.833 17.1 19450301 19751231 999999 93115 IMPERIAL BEACH REAM FIELD NAS US CA KNRS 32.567 -117.117 7.0 19450501 19721231 999999 93116 SAN NICHOLAS ISLAND US CA KNSI 33.25 -119.45 153.6 19450401 19721201 999999 93118 SALTON SEA NAAF US CA 33.2 -115.833 -68.9 19450401 19451101 999999 93120 THERMAL NAF US CA 33.617 -116.167 -36.0 19450401 19450801 999999 93121 TWENTY NINE PALMS US CA KNXP 34.3 -116.167 625.1 19450501 19451031 999999 93123 FALLON CAA AP US NV 39.417 -118.71700000000001 1200.0 19481101 19550101 999999 93124 SANTA BARBARA MCAS US CA 34.433 -119.85 4.0 19450401 19460301 999999 93129 CEDAR CITY MUNICIPAL AP US UT KCDC 37.709 -113.094 1712.4 19481101 19721231 999999 93134 LOS ANGELES DOWNTOWN USC CAMP US CA KCQT 34.024 -118.291 56.4 19990701 19991231 999999 93136 MOUNT WILSON US CA KMWS 34.233000000000004 -118.06700000000001 1738.9 19490101 19491231 999999 93139 PAYSON US AZ 0E4 34.233000000000004 -111.333 1498.1 19480701 19520526 999999 93184 SANTA ANA US CA KSNA 33.68 -117.866 16.8 19680101 19721231 999999 93193 FRESNO YOSEMITE INTL AP US CA KFAT 36.78 -119.719 99.7 19650101 19711231 999999 93198 ST GEORGE INTERM FLD US UT 37.05 -113.51700000000001 882.7 19481101 19550101 999999 93209 PASO ROBLES MUNICIPAL ARPT US CA KPRB 35.67 -120.62799999999999 249.0 19530101 19650101 999999 93211 OAKLAND NAS US CA NBJ 37.733000000000004 -122.2 2.1 19490601 19541031 999999 93215 POINT ARGUELLO AFWB US CA 34.667 -120.583 111.9 19590701 19650401 999999 93216 BEALE AFB US CA KBAB 39.133 -121.43299999999999 34.4 19710101 19710101 999999 93217 FRITZSCHE AAF US CA KOAR 36.683 -121.76700000000001 43.9 19710101 19710101 999999 93226 PT POEDRAS BLANCA US CA K87Q 35.666 -121.285 18.0 19980202 19981231 999999 93243 MERCED 23 WSW US CA 37.238 -120.883 23.8 20040325 20170924 999999 93245 BODEGA 6 WSW US CA 38.321 -123.075 19.2 20080614 20170924 999999 93718 NORTH MYRTLE BEACH AIRPORT US SC KCRE 33.812 -78.72399999999999 10.1 19490101 19561123 999999 93719 NEW BERN CRAVEN CO REGL AP US NC KEWN 35.068000000000005 -77.048 7.3 19490101 19550101 999999 93720 SALISBURY WICOMICO CO AP US MD KSBY 38.341 -75.51 18.3 19490101 19721231 999999 93721 BALTIMORE BLT-WASHNG US MD KBWI 39.167 -76.683 47.2 19650101 19721231 999999 93726 KINSTON STALLINGS AFB US NC KISO 35.317 -77.633 28.7 19541101 19570731 999999 93727 NEW RIVER MCAS US NC KNCA 34.7 -77.383 7.6 19550103 19721231 999999 93729 HATTERAS BILLY MITCHELL AP US NC KHSE 35.233000000000004 -75.622 3.4 19570301 19721231 999999 93730 ATLANTIC CITY INTL A US NJ KACY 39.449 -74.567 20.4 19650101 19740228 999999 93731 NORFOLK FLEET WF NAS US VA 36.95 -76.3 10.1 19580501 19620801 999999 93732 NEW YORK SHOALS AFS US NY 39.8 -72.667 25.9 19581001 19601116 999999 93734 STERLING US VA 38.983000000000004 -77.467 85.0 19620701 19651019 999999 93735 FORT EUSTIS FELKER AAF US VA KFAF 37.133 -76.6 3.7 19710101 19710101 999999 93736 CHARLOTTESVILLE FAA US VA KCHO 38.139 -78.453 196.3 19610420 19650101 999999 93737 FORT BRAGG SIMMONS AAF US NC KFBG 35.133 -78.933 73.8 19710101 19710101 999999 93738 WASHINGTON DULLES INTERNATIONAL AP US DC KIAD 38.941 -77.464 98.5 19621117 19721231 999999 93739 WALLOPS ISLAND UAU US VA KWAL 37.937 -75.471 14.6 19661001 19721231 999999 93743 BOGUE FIELD MCAF US NC KNJM 34.683 -77.033 6.7 19801001 19810101 999999 93776 CHERRY POINT/MCAS ASOS 2 US NC KNIS 34.883 -76.867 9.1 19960702 20160130 999999 93801 ROME R B RUSSELL AP US GA KRMG 34.348 -85.161 196.3 19480101 19771222 999999 93803 SMITHVILLE CAA AP US TN 35.967 -85.78299999999999 328.9 19490101 19540415 999999 93804 SPARTANBURG US SC SPA 34.917 -81.95 244.1 19480101 20170924 999999 93805 TALLAHASSEE DALE MABRY FIELD US FL KTLH 30.393 -84.353 20.7 19480101 19721231 999999 93806 TUSCALOOSA MUNICIPAL AP US AL KTCL 33.211999999999996 -87.616 56.7 19490101 19550101 999999 93807 WINSTON-SALEM REYNOLDS AP US NC KINT 36.134 -80.222 295.7 19480101 19650301 999999 93808 BOWLING GREEN WARREN CO AP US KY KBWG 36.965 -86.42399999999999 163.7 19480101 19550101 999999 93810 CARBONDALE SOUTHERN ILLINOIS A US IL KMDH 37.78 -89.25 126.8 19971202 20041231 999999 93814 CINCINNATI GREATER CINCINNATI US KY KCVG 39.043 -84.67200000000001 269.1 19480101 19721231 999999 93815 DAYTON MUNICIPAL ARPT US OH KDAY 39.906 -84.219 305.7 19480101 19721231 999999 93816 EFFINGHAM COUNTY MEMORIAL ARPT US IL 39.07 -88.53299999999999 178.9 19481201 20170924 999999 93817 EVANSVILLE DRESS REGIONAL ARP US IN KEVV 38.044000000000004 -87.521 118.3 19480101 19721231 999999 93818 CHESAPEAKE HUNTINGTON AP US OH 38.417 -82.5 170.7 19480101 19610104 999999 93819 INDIANAPOLIS WEIR COOK MUNICI US IN KIND 39.732 -86.279 246.3 19480101 19721231 999999 93820 LEXINGTON BLUEGRASS FIELD US KY KLEX 38.041 -84.60600000000001 301.4 19480101 19721231 999999 93821 LOUISVILLE STANDIFORD FIELD US KY KSDF 38.181 -85.73899999999999 148.7 19480101 19721231 999999 93822 SPRINGFIELD CAPITAL AP US IL KSPI 39.845 -89.684 186.8 19480101 19721231 999999 93823 TERRE HAUTE HULMAN FIELD US IN KHUF 39.45 -87.3 17.5 19550101 19550101 999999 93824 ZANESVILLE MUNICIPAL AP US OH KZZV 39.944 -81.892 274.9 19481201 19550101 999999 93825 ADVANCE 1 S US MO 37.1 -89.9 109.7 19480101 19491201 999999 93826 BARIN FIELD NAAS US AL NHX 30.4 -87.6 21.9 19450201 19580912 999999 93828 PENSACOLA CORRY FLD NAAS US FL NQS 30.4 -87.28299999999999 11.0 19480601 19580523 999999 93829 PENSACOLA CHEVALIER FLD NAS US FL CVD 30.35 -87.26700000000001 21.0 19450201 19550601 999999 93830 ATLANTA NAS US GA NCQ 33.867 -84.3 302.1 19450201 19590225 999999 93831 BEAUFORT NAS US SC KNBC 32.483000000000004 -80.717 11.6 19720101 19721231 999999 93832 CECIL FIELD NAS US FL KNZC 30.217 -81.883 25.3 19470301 20001101 999999 93833 COLUMBIA CONGAREE FLD MCAF US SC KMMT 33.917 -80.8 74.1 19450301 19451001 999999 93834 COLUMBUS NAS US OH 39.983000000000004 -82.883 249.0 19490301 19550529 999999 93836 BRUNSWICK GLYNN CO A US GA NEA 31.25 -81.467 9.1 19450201 19740731 999999 93837 JACKSONVILLE NAS US FL KNIP 30.233 -81.667 6.7 19450101 19721231 999999 93839 MEMPHIS NAS US TN KNQA 35.35 -89.867 97.5 19450301 20041231 999999 93840 ST SIMONS ISLAND NAS US GA 31.166999999999998 -81.4 3.0 19450501 19470420 999999 93841 WHITING FIELD NAS US FL KNSE 30.717 -87.01700000000001 61.0 19450201 19721231 999999 93842 COLUMBUS MUSCOGEE COUNTY ARPT US GA KCSG 32.516 -84.94200000000001 120.1 19530101 19711231 999999 93843 DOTHAN MUNICIPAL AP US AL KDHN 31.233 -85.43299999999999 97.8 19490101 19550101 999999 93844 PARRIS ISLAND MCAS US SC 32.317 -80.683 10.1 19450401 19460215 999999 93845 VALDOSTA WB AIRPORT US GA KVLD 30.783 -83.277 60.4 19720101 19721231 999999 93846 ANDERSON COUNTY AP US SC KAND 34.498000000000005 -82.71 235.6 19490101 19590101 999999 93901 DALLAS HENSLEY FIELD NAS US TX KNBE 32.733000000000004 -96.96700000000001 150.9 19450301 20041231 999999 93902 DURANT US OK KDUA 33.95 -96.4 213.0 19450201 19450831 999999 93903 FORT WORTH EAGLE MT LK MCAS US TX 32.983000000000004 -97.48299999999999 232.0 19450401 19460401 999999 93904 FORT WORTH MEACHAM US TX KFTW 32.819 -97.361 215.2 19450301 19451130 999999 93905 HUTCHINSON NAS US KS 37.917 -97.9 479.1 19450201 19580501 999999 93906 NEW ORLEANS NAS US LA 30.033 -90.083 4.0 19490101 19571231 999999 93907 NEWPORT MCAF US AR 35.633 -91.18299999999999 74.1 19450301 19451206 999999 93908 NORMAN NAS US OK 35.233000000000004 -97.417 359.1 19460101 19460220 999999 93909 OLATHE JOHNSON CO INDUSTRIAL US KS KIXD 38.832 -94.89 331.3 19450301 19700201 999999 93910 ST LOUIS LAMBERT US MO 38.75 -90.383 166.1 19450301 19460801 999999 93915 ALEXANDRIA INTL AIRPORT US LA KAEX 31.335 -92.559 24.4 19990702 20041231 999999 93919 MCCOMB PIKE COUNTY AP US MS KMCB 31.183000000000003 -90.471 128.6 19481201 19550101 999999 93947 GILLESPIE COUNTY AIRPORT US TX 30.243000000000002 -98.91 516.6 20020602 20041231 999999 93983 PALESTINE US TX KPSN 31.78 -95.706 128.9 20040102 20041231 999999 93986 HOBART MUNICIPAL AP US OK KHBR 34.989000000000004 -99.053 478.5 19480807 19550101 999999 93987 LUFKIN ANGELINA CO US TX KLFK 31.236 -94.75399999999999 96.3 19480801 19721231 999999 93988 PINE BLUFF US AR KPBF 34.175 -91.935 65.2 19481001 19550101 999999 93989 QUINCY MUNI BALDWIN FLD US IL KUIN 39.937 -91.19200000000001 233.5 19481201 19550101 999999 93990 HILL CITY MUNICIPAL AP US KS KHLC 39.376 -99.83 677.0 19490101 19550101 999999 93991 WALNUT RIDGE MUNICIPAL ARPT US AR KARG 36.125 -90.92399999999999 83.2 19490401 20041231 999999 93992 EL DORADO GOODWIN FIELD US AR KELD 33.221 -92.814 86.9 19490706 19550101 999999 93993 FAYETTEVILLE DRAKE FIELD US AR KFYV 36.01 -94.169 383.7 19490714 19680101 999999 93995 BUTLER FAA AP US MO 38.3 -94.333 264.9 19500101 19550101 999999 93996 FARMINGTON US MO KFAM 37.760999999999996 -90.428 288.6 19500101 19550101 999999 93997 RUSSELL MUNICIPAL AP US KS KRSL 38.876 -98.809 567.8 19500101 19721231 999999 93999 VICKSBURG US MS KVKS 32.233000000000004 -90.93299999999999 3.2 19500601 19501001 999999 94008 GLASGOW INTL ARPT US MT KGGW 48.214 -106.62100000000001 699.2 19551001 19721231 999999 94010 ST MARIE US MT 48.417 -106.53299999999999 838.2 19581001 19680628 999999 94012 HAVRE CITY-COUNTY AP US MT KHVR 48.543 -109.76299999999999 792.2 19610201 19721231 999999 94014 WILLISTON SLOULIN FIELD INTL US ND KISN 48.174 -103.637 580.6 19620101 19721231 999999 94041 GARRISON US ND 47.646 -101.439 582.2 19980502 20041231 999999 94059 WOLF POINT 34 NE US MT 48.489 -105.21 805.6 20011220 20170924 999999 94060 WOLF POINT 29 ENE US MT 48.308 -105.102 635.5 20011220 20170924 999999 94070 TRENTON MUNICIPAL AIRPORT US NE K9V2 40.187 -101.025 852.2 20021102 20041231 999999 94074 NUNN 7 NNE US CO 40.806999999999995 -104.755 1642.9 20030706 20170924 999999 94075 BOULDER 14 W US CO 40.035 -105.541 2995.6 20030927 20170924 999999 94077 HARRISON 20 SSE US NE 42.425 -103.736 1343.0 20030827 20170924 999999 94078 LANDER 11 SSE US WY 42.675 -108.669 1759.6 20040703 20170924 999999 94079 WHITMAN 5 ENE US NE 42.068000000000005 -101.445 1140.0 20040912 20170924 999999 94080 MEDORA 7 E US ND 46.895 -103.37700000000001 844.6 20040918 20170924 999999 94081 BUFFALO 13 ESE US SD 45.516000000000005 -103.302 878.7 20040922 20170924 999999 94082 DINOSAUR 2 E US CO 40.245 -108.96799999999999 1847.7 20040721 20170924 999999 94084 NORTHGATE 5 ESE US ND 48.968 -102.17 561.4 20061017 20170924 999999 94085 PIERRE 24 S US SD 44.019 -100.353 647.4 20061024 20170924 999999 94088 SUNDANCE 8 NNW US WY 44.516999999999996 -104.436 1765.4 20070822 20170924 999999 94092 AKRON A 4 E US CO 40.155 -103.14200000000001 1384.4 20090615 20140601 999999 94094 MEEKER 15 W US CO 40.082 -108.2 1756.0 20100719 20140601 999999 94103 POST 0FFICE BLDG.2ND&SUMACH US WA 46.033 -118.333 289.3 20020902 20031231 999999 94107 ROME STATE AIRPORT US OR KREO 42.591 -117.86399999999999 1234.4 19491003 19501115 999999 94143 IDAHO FALLS 46 W US ID 43.533 -112.95 1505.1 19650101 19671011 999999 94144 IDAHO FALLS 42 NW WB US ID 43.833 -112.68299999999999 1460.9 19650101 19670111 999999 94176 SPOKANE FELTS FIELD US WA KSFF 47.683 -117.321 599.8 19981002 20041231 999999 94196 GRNT CO RGNL/OGLVIE FD APT US OR 44.403999999999996 -118.963 1124.7 20020902 20021201 999999 94224 ASTORIA CLATSOP COUNTY ARPT US OR KAST 46.157 -123.883 6.7 19490401 19721231 999999 94225 HOQUIAM AP US WA KHQM 46.973 -123.93 4.6 19490401 19590101 999999 94234 TOFINO CA CYAZ 49.083 -125.76700000000001 24.1 19640101 19721231 999999 94236 KLAMATH FALLS KINGSLEY FLD AF US OR KLMT 42.147 -121.72399999999999 1247.2 19710101 19710101 999999 94240 QUILLAYUTE AIRPORT US WA KUIL 47.938 -124.555 62.5 19660801 19721231 999999 94274 TACOMA NARROWS AP US WA KTIW 47.268 -122.57600000000001 96.0 19990102 20041231 999999 94290 WSFO SEATTLE SAND POINT US WA KSEW 47.687 -122.255 18.3 19990802 20170923 999999 94297 COUPEVILLE/NOLF US WA KNRA 48.217 -122.633 60.7 19960702 20150514 999999 94605 OLCO LANDING AREA SEAPLANE BASE US ME 46.617 -69.533 304.8 20040702 20041231 999999 94644 OLD TOWN 2 W US ME 44.928000000000004 -68.70100000000001 38.7 20020913 20170924 999999 94645 LIMESTONE 4 NNW US ME 46.96 -67.883 224.6 20020920 20170924 999999 94700 BERLIN MUNICIPAL AP US NH KBML 44.576 -71.179 353.0 19960702 20041231 999999 94702 BRIDGEPORT MUNICIPAL ARPT US CT KBDR 41.158 -73.12899999999999 5.2 19470601 19721231 999999 94704 DANSVILLE MUNI AP US NY KDSV 42.571000000000005 -77.71300000000001 201.8 19490101 20001101 999999 94705 MONTPELIER AP US VT KMPV 44.20399999999999 -72.562 341.7 19490201 19550101 999999 94725 MASSENA AP US NY KMSS 44.93600000000001 -74.846 65.2 19490201 19721231 999999 94728 NEW YORK CENTRAL PARK ARSNL B US NY KNYC 40.779 -73.969 47.5 19650101 19991231 999999 94732 PHILADELPHIA NE PHILADELPHIA US PA KPNE 40.082 -75.01100000000001 36.3 19490101 19590101 999999 94735 PORTSMOUTH US NH 43.067 -70.817 29.0 19461201 19520831 999999 94741 TETERBORO AIRPORT US NJ KTEB 40.85 -74.061 2.1 19470101 19611001 999999 94745 WHITE PLAINS WESTCHESTER CO A US NY KHPN 41.067 -73.708 121.0 19490101 19721231 999999 94746 WORCESTER MUNICIPAL ARPT US MA KORH 42.271 -71.873 310.0 19490101 19721231 999999 94765 LEBANON AWO US NH KLEB 43.626000000000005 -72.305 173.7 19590101 19650101 999999 94772 NEW HAVEN US CT 41.3 -72.933 22.9 19800601 19800901 999999 94789 NEW YORK FORT TOTTEN US NY KJFK 40.639 -73.762 6.7 19480701 19721231 999999 94790 WATERTOWN AP US NY KART 43.992 -76.02199999999999 101.5 19650101 19650101 999999 94792 MONTREAL DORVAL INTL AP CA CYUL 45.467 -73.75 29.9 19500101 19541231 999999 94794 UTICA ONEIDA COUNTY AP US NY KUCA 43.145 -75.384 226.8 19501201 19550101 999999 94814 HOUGHTON LAKE ROSCOMMON CO AR US MI KHTL 44.358999999999995 -84.67399999999999 353.6 19640420 19721231 999999 94822 ROCKFORD GREATER ROCKFORD AP US IL KRFD 42.193000000000005 -89.09299999999999 226.5 19510301 19721231 999999 94824 KINCHELOE AFB US MI 46.25 -84.46700000000001 245.1 19530415 19681201 999999 94830 TOLEDO EXPRESS AIRPORT US OH KTOL 41.589 -83.801 210.9 19550201 19721231 999999 94846 CHICAGO OHARE INTL AP US IL KORD 41.995 -87.934 205.4 19700101 19721231 999999 94847 DETROIT METRO AP US MI KDTW 42.231 -83.331 202.4 19581201 19721231 999999 94849 ALPENA PHELPS COLLINS FIELD US MI KAPN 45.071999999999996 -83.564 211.2 19590901 19721231 999999 94860 GRAND RAPIDS KENT COUNTY ARPT US MI KGRR 42.883 -85.524 244.8 19631201 19721231 999999 94866 CHICAGO MEIGS FIELD US IL CGX 41.867 -87.617 180.1 19660101 19700701 999999 94868 FRANKLIN US PA KFKL 41.383 -79.867 469.1 19680101 19721231 999999 94869 MILWAUKEE TIMMERMAN US WI KMWC 43.108999999999995 -88.031 227.1 19680101 19721231 999999 94908 DUBUQUE MUNICIPAL AP US IA KDBQ 42.398 -90.704 329.2 19510201 19721231 999999 94910 WATERLOO MUNICIPAL AP US IA KALO 42.553999999999995 -92.40100000000001 267.6 19490101 19721231 999999 94925 GRAND FORKS AF US ND KRDR 47.967 -97.4 277.7 19710101 19710101 999999 94931 HIBBING CHISHOLM-HIBBING AP US MN KHIB 47.386 -92.839 413.6 19720101 19721231 999999 94995 LINCOLN 8 ENE US NE 40.848 -96.565 362.4 20020115 20170924 999999 94996 LINCOLN 11 SW US NE 40.695 -96.854 418.2 20020114 20170924 999999 96404 TOK 70 SE US AK 62.736999999999995 -141.208 609.6 20110924 20170924 999999 96406 RUBY 44 ESE US AK 64.502 -154.13 78.9 20140828 20170924 999999 96407 SELAWIK 28 E US AK 66.562 -159.004 6.7 20150813 20170924 999999 96408 DENALI 27 N US AK 63.452 -150.875 678.2 20150819 20170924 fluids-0.1.78/fluids/data/Miller 2E 1990 conical contractions K part 1.csv0000644000175000017500000000622313632560624024120 0ustar kurtkurtx,.4 0.100435,1.19432 0.104546,1.27929 0.108824,1.36534 0.114938,1.46228 0.121395,1.56611 0.129621,1.67104 0.138401,1.77009 0.148315,1.87495 0.158937,1.97162 0.170318,2.05825 0.183846,2.15637 0.19917,2.24272 0.201358,2.2671 0.218934,2.34924 0.238044,2.43436 0.257883,2.52265 0.28141,2.59502 0.30597,2.66956 0.33267,2.7363 0.36039,2.815 0.389,2.8855 0.42915,2.9896 x,.3 0.100703,0.69717 0.105975,0.74942 0.113574,0.82621 0.120392,0.88485 0.127619,0.94764 0.13332,0.98951 0.138266,1.02955 0.147099,1.09858 0.157065,1.16793 0.167704,1.23267 0.179064,1.30573 0.19189,1.37806 0.20119,1.42847 0.2156,1.5076 0.231881,1.57952 0.249394,1.66696 0.269204,1.74643 0.29059,1.82968 0.31253,1.91697 0.33127,1.97969 0.35241,2.05931 0.38179,2.14958 0.41816,2.25995 0.45136,2.35053 0.48899,2.45356 0.52782,2.55189 0.56974,2.64454 0.59951,2.71144 0.64948,2.82 0.70107,2.9437 0.72705,3.0131 x,.2 0.100624,0.45225 0.107051,0.48082 0.109816,0.4931 0.117255,0.52233 0.125199,0.5553 0.134167,0.5882 0.140671,0.61417 0.150748,0.65055 0.161545,0.68658 0.173116,0.72461 0.185515,0.76475 0.203934,0.82173 0.21854,0.86725 0.235045,0.91193 0.252799,0.96592 0.27388,1.02676 0.29456,1.07966 0.31681,1.14358 0.3395,1.20255 0.36514,1.26911 0.3913,1.33455 0.4014,1.36367 0.43014,1.43398 0.46263,1.51336 0.49577,1.59719 0.53321,1.6856 0.57348,1.77245 0.5991,1.84405 0.64435,1.94613 0.69807,2.0612 0.7508,2.1753 0.80458,2.30416 0.8622,2.42297 0.92732,2.55709 0.99013,2.68903 1.00832,2.72797 1.08054,2.8791 1.13911,3.0006 x,.1 0.100353,0.2773 0.109718,0.30069 0.117577,0.3185 0.125542,0.33738 0.134535,0.35737 0.143648,0.37855 0.159065,0.4097 0.170458,0.43239 0.182667,0.45634 0.195749,0.47987 0.200802,0.49034 0.215183,0.51562 0.231435,0.54417 0.248914,0.5722 0.273627,0.61484 0.29322,0.64419 0.31651,0.6749 0.34041,0.70967 0.36479,0.74355 0.39234,0.78187 0.42505,0.8221 0.45715,0.86132 0.49167,0.9057 0.5288,0.95236 0.56461,0.99605 0.60066,1.04178 0.64603,1.09945 0.69481,1.1561 0.74188,1.22018 0.80375,1.30176 0.86132,1.37387 0.92302,1.46055 0.98914,1.54707 1.00732,1.57519 1.07947,1.6685 1.14842,1.76746 1.22622,1.87905 1.27867,1.95498 1.35294,2.07104 1.43935,2.20186 1.53129,2.34095 1.62912,2.50699 1.72065,2.68499 1.82394,2.8755 1.89852,3.0136 x,.05 0.100843,0.200971 0.109248,0.209781 0.117498,0.219789 0.126371,0.230274 0.136906,0.241244 0.14778,0.252744 0.159517,0.263832 0.172188,0.27641 0.185865,0.28959 0.200627,0.30229 0.216563,0.3167 0.233765,0.3318 0.251416,0.34637 0.271386,0.36288 0.29188,0.37881 0.31391,0.39472 0.33153,0.40839 0.35786,0.42786 0.38488,0.44664 0.40061,0.45966 0.434,0.47981 0.46848,0.50268 0.50569,0.52665 0.54387,0.54777 0.58494,0.5739 0.65242,0.61211 0.70424,0.64129 0.76018,0.67186 0.80284,0.69387 0.86661,0.72694 0.93544,0.75883 0.99153,0.78509 1.07419,0.82398 1.1595,0.86013 1.25161,0.90442 1.35102,0.94409 1.45303,0.98554 1.55141,1.02514 1.67464,1.07402 1.80766,1.12522 1.91955,1.16836 2.00891,1.20454 2.17636,1.25734 2.3407,1.31732 2.52663,1.38012 2.7273,1.44066 2.9439,1.50386 3.1662,1.57561 3.4177,1.64473 3.6758,1.7232 4.0259,1.81828 4.3457,1.89804 4.6399,1.97073 4.9721,2.05358 5.3671,2.15148 5.7723,2.24594 6.0741,2.32802 6.5565,2.43015 7.0773,2.53676 7.6394,2.65769 8.0682,2.7547 8.709,2.8861 9.248,2.9913 fluids-0.1.78/fluids/data/Miller 2E 1990 abrupt contraction K.csv0000644000175000017500000000571613632560624022560 0ustar kurtkurtx,.1 0.00123,0.086311 0.03414,0.086886 0.06847,0.086753 0.09851,0.086637 0.13142,0.08651 0.16575,0.086378 0.20008,0.085544 0.23441,0.084008 0.26731,0.083179 0.3002,0.081648 0.3331,0.080118 0.36599,0.079289 0.39889,0.077057 0.43321,0.074819 0.46752,0.07188 0.49898,0.069653 0.53331,0.067415 0.56619,0.06378 0.59907,0.059442 0.60335,0.058724 0.63767,0.055083 0.67055,0.050745 0.70342,0.045706 0.73629,0.039965 0.76916,0.033523 0.79916,0.027091 0.80488,0.026367 0.83774,0.019924 0.88204,0.011683 0.92564,0.005901 0.98926,-0.001713 x,.04 0.00077,0.24912 0.03367,0.248291 0.06656,0.246059 0.09945,0.243827 0.13377,0.240887 0.16665,0.23655 0.20417,0.231317 0.23382,0.225764 0.26669,0.219322 0.29955,0.212879 0.33098,0.205038 0.39953,0.185125 0.43095,0.176582 0.45807,0.166653 0.48663,0.15742 0.51662,0.14748 0.54517,0.137545 0.57373,0.128312 0.60228,0.117675 0.63083,0.107741 0.66795,0.094966 0.69507,0.084335 0.72362,0.073698 0.73361,0.070151 0.76073,0.05952 0.78785,0.048889 0.80497,0.042507 0.83353,0.032572 0.85601,0.023889 0.87636,0.01767 0.90457,0.010895 0.94209,0.005311 0.99069,-0.001718 x,.06 0.00038,0.183858 0.03471,0.183024 0.06903,0.180786 0.10335,0.178548 0.13481,0.17562 0.16769,0.171984 0.20057,0.167647 0.23488,0.164006 0.26919,0.159663 0.30207,0.154624 0.33351,0.148888 0.36637,0.142446 0.39495,0.13602 0.39924,0.136003 0.4321,0.12956 0.46354,0.123123 0.49496,0.115283 0.5264,0.108144 0.60211,0.090308 0.63211,0.083174 0.66354,0.074632 0.69496,0.06609 0.72496,0.058956 0.75495,0.049718 0.7835,0.040485 0.80493,0.034788 0.83635,0.026246 0.87206,0.017336 0.90993,0.00912 0.96067,0.001906 0.98854,-0.002061 x,.02 7e-05,0.37193 0.02867,0.369012 0.0601,0.361873 0.09152,0.353331 0.12294,0.344789 0.15294,0.336954 0.18293,0.328417 0.20149,0.322029 0.23148,0.312791 0.26004,0.303558 0.29679,0.289907 0.32927,0.278027 0.36495,0.264732 0.39992,0.251088 0.42704,0.240457 0.45559,0.229821 0.47841,0.21868 0.50838,0.205757 0.53406,0.19443 0.55831,0.182407 0.58542,0.170372 0.60253,0.160481 0.62821,0.149154 0.65246,0.136429 0.67671,0.124406 0.70095,0.111681 0.72341,0.098611 0.73802,0.090134 0.75656,0.079887 0.77937,0.067167 0.80505,0.054437 0.83073,0.043109 0.85784,0.031777 0.88639,0.02114 0.91067,0.014555 0.92888,0.009046 0.94995,0.004053 0.98998,-0.001189 x,0 0.00511,0.497875 0.01225,0.495391 0.04224,0.486153 0.07223,0.477616 0.10222,0.469079 0.13508,0.460531 0.16507,0.452696 0.1922,0.44417 0.2022,0.440623 0.23219,0.431385 0.26075,0.422853 0.2893,0.412918 0.31357,0.404053 0.33641,0.395895 0.36352,0.384562 0.39064,0.373229 0.40062,0.367577 0.42774,0.356946 0.45198,0.344922 0.47622,0.331495 0.49904,0.318776 0.52042,0.30536 0.53752,0.294066 0.5589,0.28065 0.57884,0.265836 0.59736,0.253133 0.60161,0.246801 0.62156,0.232689 0.63934,0.21648 0.65643,0.202379 0.67992,0.182639 0.69843,0.167831 0.7155,0.152326 0.73401,0.13822 0.75109,0.122715 0.76816,0.107211 0.78453,0.093112 0.81088,0.073362 0.83226,0.059946 0.85507,0.046524 0.87932,0.034501 0.905,0.022472 0.93355,0.012537 0.96284,0.005407 0.98784,4.7e-05 fluids-0.1.78/fluids/data/3 phase power.csv0000644000175000017500000001013513632560624017114 0ustar kurtkurtCountry code Country 3-phase voltage Frequency ad Andorra 400 50 cf Central African Republic 380 50 ae United Arab Emirates 400 50 af Afghanistan 380 50 ag Antigua and Barbuda 400 60 ai Anguilla 120, 208, 127, 220, 240, 415 60 al Albania 400 50 am Armenia 400 50 ao Angola 380 50 ar Argentina 380 50 at Austria 400 50 au Australia 400 50 az Azerbaijan 380 50 ba Bosnia & Herzegovina 400 50 bb Barbados 200 50 bd Bangladesh 380 50 be Belgium 400 50 bf Burkina Faso 380 50 bg Bulgaria 400 50 bh Bahrain 400 50 bi Burundi 380 50 bj Benin 380 50 bm Bermuda 208 60 bn Brunei 415 50 bo Bolivia 400 50 br Brazil 220 , 380 60 bs Bahamas 208 60 bt Bhutan 400 50 bw Botswana 400 50 by Belarus 380 50 bz Belize 190 , 380 60 ca Canada 120, 208 , 240 , 480 , 347, 600 60 cd Democratic Republic of Congo 380 50 cg People's Republic of Congo 400 50 ch Switzerland 400 50 ci Côte d’Ivoire 380 50 cl Chile 380 50 cm Cameroon 380 50 cn China 380 50 co Colombia 220 , 440 60 cr Costa Rica 240 60 cu Cuba 190 , 440 60 cv Cape Verde 400 50 cy Cyprus 400 50 cz Czech Republic 400 50 de Germany 400 50 dj Djibouti 380 50 dk Denmark 400 50 dm Dominica 400 50 do Dominican Republic 120, 208 , 277, 480 60 dz Algeria 400 50 ec Ecuador 208 60 ee Estonia 400 50 eg Egypt 380 50 er Eritrea 400 50 es Spain 400 50 et Ethiopia 380 50 fi Finland 400 50 fj Fiji 415 50 fk Falkland Islands 415 50 fo Faeroe Islands 400 50 fr France 400 50 ga Gabon 380 50 gb United Kingdom 415 50 gd Grenada 400 50 gh Ghana 400 50 gi Gibraltar 400 50 gm Gambia 400 50 gn Guinea 380 50 gr Greece 400 50 gt Guatemala 208 60 gu Guam 190 60 gw Guinea-Bissau 380 50 gy Guyana 190 60 hn Honduras 208 , 230 , 240 , 460 , 480 60 hr Croatia 400 50 ht Haiti 190 60 hu Hungary 400 50 id Indonesia 400 50 ie Ireland 415 50 il Israel 400 50 im Isle of Man 415 50 in India 400 50 iq Iraq 400 50 ir Iran 400 50 is Iceland 400 50 it Italy 400 50 jm Jamaica 190 50 jo Jordan 400 50 jp Japan 200 50 ke Kenya 415 50 kg Kyrgyzstan 380 50 kh Cambodia 400 50 km Comoros 380 50 kp North Korea 380 50 kr South Korea 380 60 kw Kuwait 415 50 ky Cayman Islands 240 60 kz Kazakhstan 380 50 la Laos 400 50 lb Lebanon 400 50 lc Saint Lucia 400 50 li Liechtenstein 400 50 lk Sri Lanka 400 50 lr Liberia 208 60 ls Lesotho 380 50 lt Lithuania 400 50 lu Luxembourg 400 50 lv Latvia 400 50 ly Libya 400 50 ma Morocco 380 50 mc Monaco 400 50 md Moldova 400 50 me Montenegro 400 50 mg Madagascar 380 50 mk Macedonia, Republic of 400 50 ml Mali 380 50 mm Myanmar 400 50 mn Mongolia 400 50 mr Mauritania 220 50 ms Montserrat 400 60 mu Mauritius 400 50 mv Maldives 400 50 mw Malawi 400 50 mx Mexico 220 , 480 60 my Malaysia 415 50 mz Mozambique 380 50 na Namibia 380 50 ne Niger 380 50 ng Nigeria 415 50 ni Nicaragua 208 60 nl Netherlands 400 50 no Norway 230 , 400 50 mt Malta 400 50 np Nepal 400 50 nr Nauru 415 50 nz New Zealand 400 50 om Oman 415 50 pa Panama 240 60 pe Peru 220 60 pg Papua New Guinea 415 50 ph Philippines 380 60 pk Pakistan 400 50 pl Poland 400 50 pw Palau 208 60 py Paraguay 380 50 qa Qatar 415 50 ro Romania 400 50 xk Kosovo 230 , 400 50 rs Serbia 400 50 ru Russia 380 50 rw Rwanda 400 50 sa Saudi Arabia 400 60 sc Seychelles 240 50 sd Sudan 400 50 se Sweden 400 50 sg Singapore 400 50 si Slovenia 400 50 sk Slovakia 400 50 sl Sierra Leone 400 50 sm San Marino 400 50 sn Senegal 400 50 so Somalia 380 50 sr Suriname 220 , 400 60 ss South Sudan 400 50 st São Tomé and Príncipe 400 50 sv El Salvador 200 60 sy Syria 380 50 sz Swaziland 400 50 tc Turks and Caicos Islands 240 60 td Chad 380 50 tg Togo 380 50 th Thailand 400 50 tj Tajikistan 380 50 tl East Timor 380 50 tm Turkmenistan 380 50 tn Tunisia 400 50 to Tonga 415 50 tr Turkey 400 50 tt Trinidad & Tobago 115, 230 , 230, 400 60 tw Taiwan 220 60 tz Tanzania 415 50 ua Ukraine 400 50 ug Uganda 415 50 us United States of America 120, 208 , 277, 480 , 120, 240 , 240 , 480 60 uy Uruguay 380 50 uz Uzbekistan 380 50 vc Saint Vincent and the Grenadines 400 50 ve Venezuela 120 60 vg British Virgin Islands 190 60 vn Vietnam 380 50 vu Vanuatu 400 50 ws Samoa 400 50 ye Yemen 400 50 za South Africa 400 50 zm Zambia 400 50 zw Zimbabwe 415 50fluids-0.1.78/fluids/data/Miller 2E 1990 smooth bends Re correction.csv0000644000175000017500000001215413632560624023642 0ustar kurtkurtx,1 9937.3,2.18039 10532.3,2.15006 11640.8,2.10217 12687.6,2.06169 13780.3,2.02256 15072.8,1.98474 16466.7,1.94424 17989,1.90108 19744.8,1.86057 21672,1.82273 23899,1.78219 26110,1.74438 28793,1.70384 31457,1.6687 32957,1.64977 34209,1.63624 35674,1.62001 38433,1.58761 39893,1.57407 41602,1.56052 42187,1.55244 43181,1.54431 44822,1.53078 46524,1.51725 48291,1.50371 50357,1.48481 52517,1.47393 54511,1.4604 55535,1.44962 57916,1.43874 60114,1.42254 61244,1.41443 63868,1.40088 66294,1.38735 68812,1.37381 71761,1.36026 73110,1.35216 74484,1.34405 77316,1.33319 80252,1.31966 83300,1.30613 86870,1.29257 88503,1.28447 90169,1.27904 93597,1.26818 97152,1.25464 100842,1.24111 105163,1.22756 112778,1.20318 117068,1.19499 119266,1.18422 132148,1.15168 134007,1.14627 139097,1.13274 145058,1.11918 147789,1.11375 151273,1.10563 157023,1.09477 162987,1.08123 169971,1.06768 176427,1.05414 179749,1.04871 183133,1.04328 190089,1.02975 202891,1.00006 x,1.5 10339.4,2.17085 10731.8,2.15465 11139.1,2.13844 11561.8,2.12224 12283.2,2.09524 12749.4,2.07903 13264.1,2.06148 14092.5,2.03982 14936.8,2.01283 16017.7,1.98445 16626.6,1.97359 17257.2,1.95472 17912.6,1.94118 18592.5,1.92498 19209.1,1.91414 20031.7,1.89791 20792.5,1.88438 21683,1.87082 22507,1.85729 23362,1.84376 24249,1.83022 25405,1.80863 26495,1.80042 27630,1.78687 28547,1.77603 29770,1.76247 30900,1.74894 32224,1.73538 33448,1.72185 33920,1.71911 35209,1.70558 36547,1.69472 38113,1.68116 39562,1.6703 41258,1.65942 42824,1.64322 44660,1.63233 46358,1.62147 47009,1.61339 48797,1.6052 52333,1.58617 54577,1.57529 56650,1.56176 59079,1.55087 61611,1.53732 64253,1.52644 67008,1.51555 69881,1.50467 72877,1.49379 76000,1.48023 79261,1.47202 82272,1.45849 85799,1.4476 89478,1.43672 92879,1.42586 101015,1.40409 104858,1.39591 107830,1.38509 112454,1.3742 117279,1.36599 122304,1.35244 126953,1.34158 133021,1.33334 138074,1.31981 143994,1.30893 150177,1.30339 156612,1.28983 163331,1.28162 170335,1.27074 176805,1.25721 183536,1.25169 191400,1.23814 198675,1.22727 207200,1.21906 212091,1.21361 2.2119e+05,1.20273 2.2961e+05,1.19721 2.3392e+05,1.18644 2.4395e+05,1.17823 2.5561e+05,1.16999 2.6533e+05,1.15913 2.7671e+05,1.14825 2.8857e+05,1.13737 3.0095e+05,1.12915 3.1386e+05,1.11827 3.2731e+05,1.10739 3.4136e+05,1.09918 3.5433e+05,1.08832 3.6954e+05,1.08011 3.8538e+05,1.06922 4.0191e+05,1.05834 4.1915e+05,1.05013 4.3713e+05,1.03925 4.5375e+05,1.03106 4.9347e+05,1.00395 x,2 10079.5,2.19636 10758,2.16399 11456,2.13698 12228.3,2.11396 12931.6,2.09366 13674.9,2.07069 14128.1,2.05718 14596.7,2.04634 15080.8,2.0355 15727,2.02195 16021.8,2.0085 16708.8,1.99762 17262.5,1.98411 18002.2,1.97055 18685.9,1.95702 19396.2,1.94616 20132.4,1.92995 20897.6,1.91909 21793,1.90554 22621,1.892 23590,1.87845 24602,1.86756 25656,1.85401 26630,1.84048 27642,1.82694 28827,1.81606 29095,1.808 30344,1.79979 31941,1.78352 33155,1.77266 34575,1.7591 36058,1.74822 37604,1.73734 39215,1.72378 40706,1.71292 42451,1.70204 44065,1.69118 45954,1.6803 47700,1.66676 49514,1.65857 50208,1.64782 52363,1.63961 54355,1.63142 56687,1.62321 57480,1.60978 59670,1.60694 62520,1.59603 64594,1.5852 67365,1.57698 69926,1.56612 72586,1.55793 75699,1.54705 78944,1.53617 82329,1.52528 86265,1.51705 89544,1.50619 93386,1.49798 96938,1.48979 100629,1.48427 104451,1.47074 108932,1.46253 113600,1.44897 118474,1.44076 123554,1.42988 128856,1.42167 130662,1.41092 136276,1.40805 142119,1.39717 148226,1.3943 149606,1.38624 156021,1.37536 162716,1.36715 169693,1.35626 176148,1.34807 183711,1.34253 191588,1.33165 199809,1.32344 207410,1.31525 2.1631e+05,1.30704 2.2453e+05,1.29618 2.3417e+05,1.28797 2.4535e+05,1.27706 2.5468e+05,1.26887 2.6437e+05,1.26068 2.7572e+05,1.25247 2.8755e+05,1.24426 2.9989e+05,1.23605 3.1274e+05,1.22517 3.2767e+05,1.21159 3.4335e+05,1.20603 3.5642e+05,1.20051 3.7171e+05,1.1923 3.7695e+05,1.18957 3.9311e+05,1.17868 4.1192e+05,1.17312 4.2958e+05,1.16224 4.4801e+05,1.15403 4.6723e+05,1.14582 4.8728e+05,1.13761 5.0344e+05,1.12677 5.2507e+05,1.1239 5.5017e+05,1.11567 5.7376e+05,1.10478 5.9838e+05,1.09657 6.2407e+05,1.09103 6.5083e+05,1.08015 6.8196e+05,1.07459 7.1122e+05,1.06638 7.4172e+05,1.0555 7.7356e+05,1.04996 8.0301e+05,1.04444 8.3745e+05,1.03356 8.6933e+05,1.02804 9.5219e+05,1.01158 1.0165e+06,0.99926 1.10821e+06,0.98416 1.16121e+06,0.9786 1.21103e+06,0.97039 1.26303e+06,0.96485 1.31722e+06,0.95664 1.37382e+06,0.95377 1.43277e+06,0.94556 1.49429e+06,0.94002 1.5584e+06,0.93181 1.61773e+06,0.92629 1.68719e+06,0.92075 1.75963e+06,0.91521 1.83519e+06,0.90967 1.92291e+06,0.90144 2.00547e+06,0.8959 2.10138e+06,0.89034 2.1915e+06,0.88213 2.2963e+06,0.8739 2.3949e+06,0.86836 2.4977e+06,0.86282 2.605e+06,0.85728 2.7041e+06,0.84909 2.8202e+06,0.84622 2.9413e+06,0.84068 3.0676e+06,0.83514 3.1993e+06,0.82961 3.3367e+06,0.82407 3.4637e+06,0.81855 3.7499e+06,0.80616 4.0692e+06,0.79242 4.4575e+06,0.78531 4.6707e+06,0.77975 4.8714e+06,0.77689 5.0096e+06,0.76874 5.2249e+06,0.76587 5.4238e+06,0.76035 5.6568e+06,0.75749 5.9272e+06,0.74925 6.153e+06,0.74641 6.3873e+06,0.74089 6.6617e+06,0.73802 6.9478e+06,0.73249 7.2461e+06,0.72695 7.5572e+06,0.72141 7.8449e+06,0.71589 8.1436e+06,0.71037 8.533e+06,0.70481 8.8997e+06,0.70194 9.2818e+06,0.6964 9.6809e+06,0.69621 fluids-0.1.78/fluids/data/Miller 2E 1990 conical diffuser Kd.csv0000644000175000017500000001451713632560624022322 0ustar kurtkurtx,.06 0.101379,0.169702 0.115827,0.174527 0.132332,0.18049 0.151191,0.18563 0.171777,0.19197 0.2193,0.20304 0.25055,0.20998 0.40383,0.2362 0.46139,0.24292 0.52712,0.25263 0.5989,0.26126 0.68422,0.2717 0.77737,0.28256 0.88814,0.29222 1.11503,0.31603 1.26679,0.33235 1.4392,0.34951 1.63505,0.36961 1.837,0.39304 2.0299,0.41102 2.2932,0.43952 2.5764,0.47263 2.8784,0.51107 3.2157,0.55573 4.0133,0.67945 4.4092,0.75546 4.7117,0.83064 5.0345,0.93912 5.3796,1.04999 5.8776,1.16746 6.0424,1.20722 6.7506,1.3127 7.5842,1.40374 8.6163,1.48446 9.7895,1.5352 10.0649,1.55247 11.4997,1.57891 13.2125,1.59688 14.9297,1.60605 17.1534,1.62433 19.709,1.6246 x,.08 0.100695,0.24656 0.115045,0.25357 0.131441,0.26078 0.150173,0.2682 0.170624,0.27582 0.19494,0.28525 0.20154,0.28686 0.23026,0.29502 0.26308,0.30341 0.40337,0.33561 0.46085,0.34708 0.52652,0.35895 0.59822,0.36916 0.68346,0.38178 0.85334,0.4083 0.9695,0.42699 1.08328,0.44405 1.23074,0.46438 1.40604,0.48835 1.59737,0.51644 1.8047,0.54918 2.2156,0.61412 2.4892,0.66408 2.7809,0.7221 3.2294,0.83026 3.5284,0.92315 4.0068,1.10981 4.3292,1.24778 4.73,1.38738 5.1969,1.52549 5.8385,1.6404 6.0361,1.66814 6.8577,1.7445 7.835,1.79411 8.9519,1.8247 10.2279,1.8661 11.7512,1.8874 13.3523,1.9088 15.2563,1.9198 17.5292,1.9201 19.891,1.9204 x,.1 0.100609,0.32043 0.114947,0.32954 0.131326,0.34081 0.150039,0.35246 0.170472,0.36248 0.19476,0.37487 0.20136,0.37698 0.23005,0.38987 0.40299,0.44849 0.4604,0.46642 0.52601,0.48236 0.59762,0.50164 0.68278,0.51879 0.78005,0.53953 0.88625,0.56109 1.21603,0.61368 1.38929,0.63821 1.57843,0.66371 1.7932,0.70188 2.4059,0.82535 2.6729,0.90248 3.0867,1.04929 3.3537,1.16667 3.6438,1.30443 4.0033,1.45037 4.4231,1.5859 4.9692,1.70536 5.6453,1.8135 6.034,1.8546 6.8939,1.9073 7.8764,1.9615 11.6823,2.0866 13.3477,2.1221 15.2507,2.1463 17.4251,2.1707 19.882,2.1832 x,.15 0.100462,0.50056 0.114779,0.51479 0.131139,0.52649 0.149831,0.53845 0.171187,0.55068 0.1945,0.56319 0.20109,0.56636 0.22975,0.57923 0.30665,0.61265 0.35035,0.62657 0.40252,0.64081 0.45988,0.66272 0.52542,0.68157 0.58955,0.70191 0.68582,0.72896 0.78356,0.74969 0.89027,0.77101 1.09928,0.81998 1.2559,0.85276 1.42683,0.89678 1.62099,0.94835 2.0124,1.05461 2.2609,1.13405 2.5259,1.22629 2.8377,1.33345 3.1527,1.44995 3.5027,1.57664 3.8916,1.71439 4.0009,1.75311 4.52,1.8747 5.135,1.9825 6.0653,2.085 6.9296,2.1442 7.9172,2.2052 8.9954,2.2679 10.0517,2.3194 11.4842,2.3853 13.1209,2.4532 14.991,2.5089 17.6095,2.5947 19.842,2.6574 x,.2 0.100332,0.74367 0.115278,0.74796 0.131716,0.75226 0.151337,0.75659 0.172917,0.76094 0.20089,0.76534 0.22954,0.77405 0.26226,0.78285 0.36599,0.79416 0.44946,0.8191 0.51353,0.83305 0.58672,0.85674 0.5999,0.85676 0.68539,0.88112 0.78306,0.91125 0.88968,0.94239 1.16119,1.03642 1.31925,1.08387 1.49044,1.1526 1.69323,1.22569 1.9023,1.31069 2.0108,1.35537 2.2717,1.44938 2.5521,1.55855 2.8672,1.67596 3.2574,1.78224 3.6801,1.8953 4.569,2.0726 5.1909,2.1675 5.8976,2.2541 6.8891,2.3574 7.8272,2.438 8.9425,2.5213 10.048,2.593 11.4798,2.6816 13.1156,2.7733 14.9847,2.8522 17.0251,2.9497 19.559,3.0548 x,.25 0.100235,0.99936 0.113894,1.0051 0.130138,1.00526 0.147876,0.99983 0.169907,1 0.19414,1.00575 0.20072,1.00579 0.23062,1.00596 0.26498,1.00613 0.30276,1.01192 0.34787,1.01209 0.45667,1.0295 0.52469,1.04122 0.59949,1.05895 0.68493,1.08301 0.78254,1.11381 0.8891,1.15188 1.00457,1.19124 1.14769,1.23885 1.30391,1.29556 1.48135,1.37007 1.6829,1.45695 1.8908,1.54933 2.0097,1.59324 2.2705,1.69427 2.5795,1.7917 2.9304,1.9053 3.9982,2.1428 4.5425,2.2409 5.1896,2.3435 5.8961,2.4372 6.8874,2.5488 7.825,2.6507 8.9399,2.7566 10.0034,2.831 11.3497,2.9318 13.4994,3.0577 x,.3 0.100161,1.25604 0.114445,1.25624 0.130767,1.25644 0.149417,1.25664 0.170726,1.25685 0.19079,1.25702 0.20056,1.27119 0.22664,1.26431 0.2604,1.26452 0.40162,1.27226 0.4589,1.27246 0.52726,1.27979 0.59909,1.29435 0.68451,1.30907 0.78207,1.33881 0.89355,1.36923 1.00402,1.40813 1.14708,1.45627 1.31051,1.51448 1.4889,1.58381 1.69154,1.66557 1.9218,1.75156 2.0089,1.79116 2.2824,1.8732 2.593,1.9699 2.9624,2.0716 3.3656,2.1785 3.845,2.2782 3.9973,2.3039 4.5414,2.4094 5.1883,2.5197 5.8946,2.635 6.8475,2.7557 7.823,2.8659 8.9376,2.9804 10.0288,3.0481 x,.35 0.100106,1.48473 0.115018,1.49328 0.130693,1.49351 0.147683,1.49373 0.16781,1.49396 0.19174,1.49421 0.20157,1.4943 0.2316,1.49455 0.26611,1.4948 0.30069,1.50338 0.34549,1.50363 0.40363,1.51232 0.46118,1.52953 0.52695,1.52978 0.59875,1.53857 0.68034,1.54741 0.78169,1.55632 0.89312,1.58283 1.00358,1.60976 1.14662,1.64633 1.31003,1.69314 1.49667,1.76082 1.7004,1.8414 1.9319,1.9257 2.359,2.071 2.6801,2.1658 3.0619,2.265 3.4787,2.3686 3.9963,2.4909 4.5403,2.605 5.187,2.7242 5.8604,2.8489 6.0253,2.881 6.8455,3.0129 7.2463,3.0511 x,.4 0.100055,1.7356 0.114961,1.73589 0.132088,1.73618 0.151767,1.73647 0.174378,1.73677 0.20147,1.73707 0.23021,1.73735 0.26303,1.74735 0.40342,1.76786 0.46095,1.77803 0.52961,1.78827 0.59845,1.79853 0.68761,1.79884 0.79003,1.8092 0.90267,1.8298 1.00871,1.8505 1.15251,1.8821 1.31678,1.9248 1.50444,1.9796 2.0078,2.141 2.2938,2.2266 2.6061,2.3285 2.9608,2.4351 3.3826,2.5466 3.8218,2.6484 4.514,2.8008 5.1285,2.929 5.8025,3.046 x,.45 0.099866,2.0232 0.108696,2.0178 0.124199,2.0125 0.139567,2.01 0.159475,1.9963 0.18323,1.9967 0.20138,1.9969 0.23138,1.9972 0.26586,1.9976 0.30546,1.9979 0.35097,1.9982 0.39439,2.0097 0.40325,2.0097 0.46333,2.0101 0.53236,2.0104 0.59823,2.0107 0.68736,2.011 0.78537,2.0226 0.90238,2.023 1.01963,2.0574 1.165,2.0808 1.33108,2.1162 1.5208,2.1643 1.73753,2.2259 1.9742,2.2891 2.0073,2.302 2.2806,2.394 2.6055,2.4897 2.9601,2.6328 3.3629,2.7687 3.7995,2.8955 4.4076,3.0365 x,.5 0.099559,2.2213 0.112969,2.2309 0.12908,2.2313 0.147492,2.2192 0.169468,2.2072 0.19472,2.2076 0.20132,2.1954 0.23003,2.2081 0.26283,2.2084 0.40312,2.2219 0.46318,2.2223 0.52923,2.2351 0.59802,2.2354 0.68711,2.2483 0.78507,2.2739 0.90202,2.287 1.00797,2.3129 1.15169,2.3392 1.31589,2.3658 1.51188,2.3928 1.72737,2.4471 1.9626,2.5167 2.0067,2.5309 2.2926,2.6174 2.6193,2.7069 2.9758,2.8466 3.3809,2.9769 3.5836,3.0485 x,.55 0.099944,2.4353 0.112936,2.4391 0.129761,2.4395 0.149093,2.4399 0.171306,2.4403 0.19683,2.4407 0.20125,2.4408 0.23123,2.4412 0.26275,2.4416 0.30189,2.4556 0.34686,2.456 0.40299,2.4565 0.46302,2.4706 0.53199,2.4849 0.59781,2.4991 0.68686,2.5135 0.78917,2.528 0.89671,2.5425 1.00766,2.5429 1.15137,2.5433 1.32284,2.5866 1.51141,2.6307 1.72684,2.6904 1.9729,2.767 2.0061,2.767 2.2919,2.8616 2.604,2.976 2.8616,3.0562 fluids-0.1.78/fluids/data/Miller 2E 1990 entrances rounded beveled K.csv0000644000175000017500000000606613632560624023750 0ustar kurtkurtx,45 3.46945e-18,0.517486 0.002245,0.50302 0.00449,0.489406 0.006174,0.477493 0.0087,0.464445 0.010945,0.451397 0.013471,0.438349 0.015996,0.425301 0.018522,0.412252 0.02217,0.396934 0.025257,0.384451 0.028344,0.371402 0.031993,0.359486 0.035641,0.34757 0.039289,0.335654 0.043218,0.323737 0.047428,0.312387 0.054443,0.296494 0.059214,0.28571 0.063704,0.275494 0.068756,0.265844 0.074369,0.257326 0.079981,0.249943 0.085875,0.243694 0.092049,0.238011 0.100748,0.232324 0.107484,0.230043 0.114219,0.227194 0.120954,0.224346 0.127689,0.222065 0.134425,0.220351 0.14116,0.21807 0.147895,0.215788 0.150702,0.215216 0.157437,0.213502 0.164453,0.211787 0.171188,0.210073 0.177923,0.208926 0.184939,0.207779 0.191674,0.206632 0.19869,0.205485 0.208232,0.202631 0.215248,0.202618 0.222264,0.202604 0.228999,0.202592 0.236015,0.202011 0.24275,0.201999 0.249626,0.201986 0.257343,0.201971 0.264359,0.201958 0.3,0.20104 x,30 -0.00014,0.510964 0.006174,0.466718 0.008138,0.453104 0.010384,0.440056 0.012629,0.426441 0.014874,0.412826 0.01768,0.396942 0.020206,0.383894 0.022732,0.370845 0.025257,0.35723 0.028064,0.344181 0.030589,0.331133 0.033396,0.318084 0.036062,0.307021 0.038728,0.294823 0.041815,0.282341 0.045182,0.269858 0.048831,0.257375 0.050234,0.252268 0.054443,0.240918 0.058934,0.230701 0.063704,0.220484 0.069036,0.210834 0.076894,0.198342 0.082507,0.190959 0.087278,0.184712 0.093452,0.177895 0.099345,0.171646 0.104397,0.166532 0.110851,0.160849 0.117025,0.155166 0.12348,0.15005 0.129935,0.146068 0.136389,0.142086 0.142844,0.138671 0.149579,0.135256 0.151263,0.134119 0.157998,0.131837 0.164453,0.12899 0.171188,0.126709 0.178204,0.124994 0.184939,0.12328 0.188868,0.122705 0.195884,0.121558 0.201497,0.120413 0.208513,0.119833 0.215529,0.119819 0.222544,0.119806 0.22956,0.119793 0.236576,0.119213 0.243312,0.118633 0.250608,0.118619 0.257624,0.118606 0.26464,0.118592 0.271375,0.118013 0.278391,0.117999 0.285407,0.117419 0.292142,0.117973 0.299158,0.117393 x,0 -0.00014,0.510114 0.001123,0.498769 0.002385,0.487992 0.003508,0.478349 0.004771,0.462751 0.006174,0.449138 0.008138,0.435523 0.010103,0.421909 0.013751,0.396382 0.015716,0.382768 0.017961,0.369153 0.018522,0.365749 0.020767,0.352702 0.023012,0.339087 0.025538,0.326039 0.027783,0.312991 0.031712,0.294269 0.034238,0.281221 0.036763,0.268172 0.03957,0.255124 0.042376,0.242075 0.045182,0.229026 0.047989,0.216544 0.05304,0.196119 0.056408,0.183636 0.059775,0.171154 0.063424,0.159237 0.067072,0.147321 0.071001,0.135405 0.074369,0.124623 0.078859,0.114407 0.08363,0.10419 0.08812,0.097376 0.093732,0.089426 0.100748,0.08204 0.107203,0.076924 0.113658,0.072375 0.120393,0.06896 0.127128,0.066111 0.133863,0.064397 0.140879,0.062683 0.147615,0.062103 0.151824,0.060961 0.15884,0.06038 0.165575,0.059233 0.172591,0.05922 0.179607,0.059207 0.186623,0.059194 0.193639,0.05918 0.200655,0.059734 0.207951,0.059153 0.214967,0.058573 0.221983,0.05856 0.228718,0.05798 0.235734,0.057399 0.24275,0.057386 0.249766,0.057373 0.250889,0.057371 0.257905,0.05679 0.26492,0.056777 0.271936,0.056764 0.278952,0.056183 0.285968,0.05617 0.292703,0.05559 0.299719,0.055577 fluids-0.1.78/fluids/data/residential power.csv0000644000175000017500000001223213632560624020174 0ustar kurtkurtCountry Country code Plugs Residential voltage, V Frequency, Hz Andorra ad C, F 230 50 United Arab Emirates ae C, D, G 220 50 Afghanistan af C, F 220 50 Antigua and Barbuda ag A, B 230 60 Anguilla ai A 110 60 Albania al C, F 230 50 Armenia am C, F 230 50 Angola ao C 220 50 Argentina ar C, I 220 50 Austria at C, F 230 50 Australia au I 230 50 Azerbaijan az C, F 230 50 Bosnia and Herzegovina ba C, F 230 50 Barbados bb A, B 115 50 Bangladesh bd C, D, G, K 220 50 Belgium be C, E 230 50 Burkina Faso bf C, E 220 50 Bulgaria bg C, F 230 50 Bahrain bh G 230 50 Burundi bi C, E 220 50 Benin bj C, E 220 50 Bermuda bm A, B 120 60 Brunei bn G 240 50 Bolivia bo A, C 115 50 Brazil br C, N 220 60 Bahamas bs A, B 120 60 Bhutan bt C, D, F, G, M 230 50 Botswana bw D, G, M 230 50 Belarus by C, F 230 50 Belize bz A, B, G 110 60 Canada ca A, B 120 60 Congo, Democratic Republic of the cd C, D, E 220 50 Central African Republic cf C, E 220 50 Congo, Republic of the cg C, E 230 50 Switzerland ch C, J 230 50 Côte d'Ivoire ci C, E 230 50 Chile cl L 220 50 Cameroon cm C, E 220 50 China cn A, I, C 220 50 Colombia co A, B 110 60 Costa Rica cr A, B 120 60 Cuba cu A, B, C 110 60 Cape Verde cv C, F 220 50 Cyprus cy G 240 50 Czech Republic cz C, E 230 50 Germany de C, F 230 50 Djibouti dj C, E 220 50 Denmark dk C, E, F, K 230 50 Dominica dm D, G 230 50 Dominican Republic do A, B 110 60 Algeria dz C, F 230 50 Ecuador ec A, B 120 60 Estonia ee C, F 230 50 Egypt eg C, F 220 50 Eritrea er C, L 230 50 Spain es C, F 230 50 Ethiopia et C, E, F, L 220 50 Finland fi C, F 230 50 Fiji fj I 240 50 Falkland Islands fk G 240 50 Micronesia fm A, B 120 60 Faroe Islands fo C, E, F, K 230 50 France fr C, E 230 50 Gabon ga C 220 50 United Kingdom gb G 230 50 Grenada gd G 230 50 Guernsey gg G 230 50 Ghana gh D, G 230 50 Gibraltar gi C, G 240 50 Gambia gm G 230 50 Guinea gn C, F, K 220 50 Equatorial Guinea gq C, E 220 50 Greece gr C, F 230 50 Guatemala gt A, B 120 60 Guam gu A, B 110 60 Guinea-Bissau gw C 220 50 Guyana gy A, B, D, G 110 60 Honduras hn A, B 110 60 Croatia hr C, F 230 50 Haiti ht A, B 110 60 Hungary hu C, F 230 50 Indonesia id C, F, G 230 50 Ireland ie G 230 50 Israel il C, H, M 230 50 Isle of Man im G 240 50 India in C, D, M 230 50 Iraq iq C, D, G 230 50 Iran ir C, F 220 50 Iceland is C, F 230 50 Italy it C, F, L 230 50 Jersey je G 230 50 Jamaica jm A, B 110 50 Jordan jo B, C, D, F, G, J 230 50 Japan jp A, B 100 50 Kenya ke G 240 50 Kyrgyzstan kg C, F 220 50 Cambodia kh A, C, G 230 50 Comoros km C, E 220 50 St. Kitts and Nevis kn A, B, D, G 110 60 North Korea kp A, C, F 110 60 South Korea kr C, F 220 60 Kuwait kw C, G 240 50 Cayman Islands ky A, B 120 60 Kazakhstan kz C, F 220 50 Laos la C, E, F 230 50 Lebanon lb A, B, C, D, G 220 50 St. Lucia lc G 240 50 Liechtenstein li C, J 230 50 Sri Lanka lk D, G, M 230 50 Liberia lr A, B, C, E, F 120 60 Lesotho ls M 220 50 Lithuania lt C, F 230 50 Luxembourg lu C, F 230 50 Latvia lv C, F 230 50 Libya ly C, D, F, L 127 50 Morocco ma C, E 220 50 Monaco mc C, D, E, F 230 50 Moldova md C, F 220 50 Montenegro me C, F 230 50 Madagascar mg C, D, E, J, K 220 50 Macedonia mk C, F 230 50 Mali ml C, E 220 50 Myanmar mm C, D, F, G 230 50 Mongolia mn C, E 220 50 Mauritania mr C 220 50 Montserrat ms A, B 120 60 Mauritius mu C, G 230 50 Maldives mv D, G, J, K, L 230 50 Malawi mw G 230 50 Mexico mx A, B 127 60 Malaysia my C, G, M 230 50 Mozambique mz C, F, M 220 50 Namibia na D, M 220 50 Niger ne A, B, C, D, E, F 220 50 Nigeria ng D, G 240 50 Nicaragua ni A, B 120 60 Netherlands nl C, F 230 50 Norway no C, F 230 50 Malta np G 230 50 Nepal np C, D, M 230 50 Nauru nr I 240 50 New Zealand nz I 230 50 Oman om C, G 240 50 Panama pa A, B 120 60 Peru pe A, B, C 220 60 Papua New Guinea pg I 240 50 Philippines ph A, B 220 60 Pakistan pk C, D, G, M 230 50 Poland pl C, E 230 50 Portugal pt C, F 230 50 Palau pw A, B 120 60 Paraguay py C 220 50 Qatar qa D, G 240 50 Romania ro C, F 230 50 Serbia rs C, F 230 50 Russia ru C, F 230 50 Rwanda rw C, J 230 50 Saudi Arabia sa A, B, G 220 60 Solomon Islands sb I, G 220 50 Seychelles sc G 240 50 Sudan sd C, D 230 50 Sweden se C, F 230 50 Singapore sg C, G, M 230 50 Saint Helena, Ascension and Tristan da Cunha sh G 240 50 Slovenia si C, F 230 50 Slovakia sk C, E 230 50 Sierra Leone sl D, G 230 50 San Marino sm C, F, L 230 50 Senegal sn C, D, E, K 230 50 Somalia so C 220 50 Suriname sr C, F 127 60 São Tomé and Príncipe st C, F 220 50 El Salvador sv A, B 115 60 Syria sy C, E, L 220 50 Swaziland sz M 230 50 Chad td C, D, E, F 220 50 Togo tg C 220 50 Thailand th A, B, C, F 220 50 Tajikistan tj C, F, I 220 50 Timor-Leste tl C, E, F, I 220 50 Turkmenistan tm B, C, F 220 50 Tunisia tn C, E 230 50 Tonga to I 240 50 Turkey tr C, F 230 50 Trinidad & Tobago tt A, B 115 60 Tuvalu tv I 220 50 Taiwan tw A, B 110 60 Tanzania tz D, G 230 50 Ukraine ua C, F 230 50 Uganda ug G 240 50 United States us A, B 120 60 Uruguay uy C, F, I, L 230 50 Uzbekistan uz C, I 220 50 St. Vincent and the Grenadines vc C, E, G, I, K 230 50 Venezuela ve A, B 120 60 British Virgin Islands vg A, B 110 60 Vietnam vn A, C, G 220 50 Vanuatu vu C, G, I 220 50 Samoa ws I 230 50 Kosovo xk C, F 230 50 Yemen ye A, D, G 230 50 South Africa za C, F, M, N 230 50 Zambia zm C, D, G 230 50 Zimbabwe zw D, G 220 50fluids-0.1.78/fluids/data/Miller 2E 1990 smooth bends outlet tangent length correction.csv0000644000175000017500000001107713632560624027476 0ustar kurtkurtx,.1 4.44089e-16,0.61082 0.4091,0.61057 0.7792,0.60499 1.2273,0.59546 1.6753,0.5848 2.0844,0.57435 2.513,0.56159 2.9416,0.54671 3.3701,0.5334 3.7987,0.52041 4.2273,0.50773 4.9481,0.49413 5.3766,0.49174 5.8247,0.48936 6.0584,0.48282 6.4481,0.48797 6.8961,0.48882 7.3442,0.49075 8.5325,0.49996 9.6234,0.50939 10.0714,0.51366 10.5195,0.51911 10.987,0.52576 11.4351,0.5325 11.9026,0.53932 12.3701,0.54744 12.8182,0.55324 13.2468,0.56158 13.6753,0.5688 14.026,0.57489 14.474,0.58098 14.9221,0.58844 16.0325,0.6075 16.4805,0.61665 16.9481,0.62455 17.3766,0.63536 17.8247,0.64493 18.2727,0.65609 18.7013,0.66745 19.1688,0.67749 19.5779,0.68924 20.3377,0.70869 20.7857,0.72095 20.9026,0.72404 21.3506,0.73657 21.7792,0.74768 22.2273,0.76061 22.6753,0.77377 23.1039,0.78717 23.513,0.7973 23.8831,0.80937 24.3117,0.82339 24.7597,0.83763 25.1883,0.85027 25.5974,0.86501 26.0065,0.87807 26.5714,0.89315 27,0.91062 27.4286,0.92436 27.8766,0.94035 28.3247,0.95241 28.7532,0.96678 29.1429,0.97279 29.5909,0.98527 30.1364,0.99562 x,.15 0.0195,0.86109 0.4286,0.84943 0.8571,0.83057 1.4805,0.79254 1.8312,0.76484 2.2208,0.73645 2.5714,0.71384 2.9221,0.69346 3.3312,0.67361 4.3636,0.63267 4.7922,0.61999 5.2403,0.61023 5.7857,0.59792 6.4091,0.591 6.9935,0.59064 7.4416,0.59298 7.8312,0.59535 8.0455,0.59653 8.513,0.59888 8.961,0.60124 9.4286,0.60361 9.7208,0.60876 10.1688,0.61251 10.6169,0.61765 11.0455,0.62421 11.513,0.62943 11.9416,0.63471 12.3701,0.64287 12.7987,0.6497 13.2273,0.65805 13.6753,0.66649 14.026,0.67066 14.4351,0.67929 14.8636,0.68802 16.0519,0.70869 16.5,0.71778 16.9481,0.72699 17.3766,0.73471 17.8247,0.7425 18.2727,0.75038 18.7208,0.76 19.1883,0.76974 19.6169,0.77963 20.0455,0.78618 21.0974,0.80813 21.5649,0.82028 22.013,0.82898 22.461,0.84146 22.9091,0.85039 23.3571,0.8594 23.8052,0.87043 24.2532,0.88159 25.1299,0.90837 25.5584,0.9241 26.0065,0.93802 26.4156,0.95218 26.5714,0.95623 27.039,0.96848 27.487,0.98307 28.2078,0.99759 x,.2 -0.0097,1.19934 0.4286,1.18698 0.8377,1.15301 1.2078,1.11024 1.5195,1.06912 1.8117,1.02276 2.0844,0.97521 2.4448,0.92113 2.7468,0.88458 3.1558,0.8438 3.4773,0.81388 3.7597,0.79069 4.1299,0.76472 4.2662,0.75624 4.6558,0.73623 5.0455,0.71833 6.0584,0.68516 6.5065,0.67586 6.9545,0.66816 7.4026,0.66492 7.8896,0.66458 8.2987,0.66577 8.7273,0.66548 9.1558,0.67107 9.6039,0.67372 10.0519,0.67638 10.461,0.68057 10.9481,0.68625 12.526,0.7097 12.974,0.71565 13.4416,0.72322 13.8896,0.73089 14.026,0.73401 14.474,0.74179 14.9416,0.74964 15.3506,0.75762 15.8182,0.76395 16.2662,0.77205 16.7338,0.78022 18.3312,0.80864 18.7597,0.81723 19.2078,0.8259 19.6558,0.83282 20.0649,0.84168 20.4935,0.85062 20.9026,0.85968 21.3506,0.87262 21.7987,0.88188 23.0065,0.90835 23.474,0.91998 23.9026,0.92976 24.3312,0.93963 24.7987,0.95167 25.2273,0.9639 25.6753,0.97841 26.25,0.99685 x,.25 0.0195,2.71701 0.4675,2.68603 0.7159,2.65157 1.1104,2.6028 1.539,2.53383 1.9091,2.46141 2.2792,2.37532 2.6104,2.28729 2.9805,2.16399 3.2338,2.07025 3.4919,1.95134 3.6867,1.84547 3.8377,1.74542 3.9692,1.64358 4.0812,1.52656 4.2175,1.41628 4.3247,1.33294 4.4269,1.25451 4.5682,1.17223 4.7922,1.02582 4.9042,0.96918 5.0114,0.92326 5.1575,0.88434 5.3474,0.8419 5.5325,0.8144 5.7516,0.78647 6.1558,0.75477 6.5844,0.73639 7.013,0.72322 7.461,0.71813 7.9286,0.71778 8.3571,0.71589 8.8247,0.71712 9.2338,0.72157 9.6039,0.72289 10.0325,0.73379 10.4805,0.73994 10.9481,0.74777 11.3961,0.75403 11.8247,0.76037 12.2922,0.76672 12.7403,0.77485 13.2078,0.78133 13.6558,0.78788 14.4935,0.79942 14.9026,0.80616 15.0779,0.80957 15.5455,0.81994 15.974,0.82501 16.4221,0.83192 16.8701,0.84074 17.3961,0.84959 17.8442,0.85482 18.3117,0.86387 18.7597,0.87303 19.1883,0.87842 19.6169,0.88775 19.8117,0.89149 20.2403,0.89898 20.6786,0.90802 20.9026,0.91433 21.3701,0.92401 21.7987,0.93588 22.2468,0.9458 22.6948,0.96005 23.1039,0.97026 23.5519,0.98055 x,1 0.0195,2.71402 0.5942,2.68568 1.1299,2.64899 1.5584,2.6016 2.0065,2.54378 2.4156,2.47643 2.8052,2.4056 3.1948,2.32653 3.526,2.2502 3.8571,2.16681 4.1883,2.07735 4.461,1.99169 4.6656,1.93084 4.9188,1.85127 5.1818,1.7594 5.3961,1.67585 5.6104,1.59276 5.8442,1.50546 6.0779,1.42607 6.3312,1.3613 6.5844,1.29946 6.7208,1.27099 7.013,1.21588 7.4513,1.1452 7.8896,1.09177 8.4545,1.03841 8.8636,1.01092 9.6039,0.96877 10.0519,0.94933 10.4805,0.94059 10.9091,0.92989 11.3571,0.92131 11.8052,0.91886 12.2532,0.9144 12.7987,0.90788 13.1883,0.90552 13.6169,0.90313 14.2695,0.90451 15.1169,0.90771 15.4675,0.90939 15.9156,0.91499 16.3831,0.92061 16.8312,0.92628 16.9481,0.92821 17.3766,0.93395 17.8052,0.9418 18.2532,0.94969 18.6818,0.95346 19.1494,0.95932 19.5584,0.96527 19.9675,0.97126 20.4156,0.97724 20.8442,0.98328 21.5649,0.99671 fluids-0.1.78/fluids/data/Miller 2E 1990 smooth bends Kb.csv0000644000175000017500000003456713632560624021514 0ustar kurtkurtx,.02 0.6477,10.1649 0.67321,10.4415 0.70379,10.7668 0.73292,11.0383 0.7429,11.1018 0.77515,11.3598 0.80568,11.5347 0.83903,11.6896 0.87884,11.8007 0.90642,11.8907 0.9476,11.9346 0.99064,11.9555 1.00996,11.9086 1.03765,11.9074 1.0538,11.8838 1.10167,11.7904 1.14728,11.7206 1.19708,11.5839 1.25146,11.4266 1.41886,10.9467 1.48045,10.7982 1.51517,10.6936 1.58094,10.5079 1.65915,10.2657 1.75135,10.0094 x,.03 0.500967,11.6903 0.52983,12.4317 0.55927,13.1186 0.58921,13.7902 0.61124,14.3858 0.64396,14.9772 0.67582,15.5332 0.70651,15.9555 0.73434,16.3265 0.76622,16.6738 0.80568,17.0279 0.84065,17.2898 0.87884,17.5217 0.90993,17.6891 0.94943,17.8231 0.95864,17.8225 1.00026,17.9229 1.04569,17.8509 1.09319,17.7107 1.17872,17.3674 1.23227,17.0657 1.25388,16.9334 1.31083,16.6714 1.37038,16.3502 1.42987,16.0973 1.49193,15.8177 1.5718,15.4528 1.66557,15.096 1.73452,14.834 1.80632,14.5484 1.87746,14.2684 1.89934,14.1855 1.98179,13.9123 2.10002,13.4606 2.23823,13.0234 2.33088,12.7235 2.46993,12.2867 2.59714,12.0034 2.69422,11.7046 2.80574,11.435 2.91625,11.1718 3.01942,10.9359 3.13834,10.6842 3.1688,10.6221 3.29997,10.3376 3.47663,10.0022 x,.04 0.506806,15.9452 0.52474,16.4426 0.5433,16.9228 0.56361,17.417 0.57349,17.6184 0.59493,18.098 0.61006,18.4485 0.63408,18.914 0.67321,19.6152 0.70651,20.226 0.71613,20.3816 0.74578,20.7751 0.77665,21.1763 0.82616,21.6668 0.86369,21.9999 0.87208,22.0415 0.91169,22.2512 0.95495,22.4195 0.9964,22.5024 1.03165,22.4994 1.07851,22.4522 1.11883,22.3626 1.17191,22.1868 1.22515,21.8435 1.25873,21.5899 1.31337,21.215 1.37303,20.8465 1.43263,20.4845 1.60246,19.512 1.68498,19.0988 1.76153,18.6948 1.83444,18.3349 1.91407,17.9471 2.07182,17.2629 2.16175,16.8978 2.24256,16.6048 2.33539,16.2851 2.44147,15.9406 2.60216,15.4525 2.72036,15.0965 2.83845,14.8058 2.96739,14.4646 3.10218,14.1586 3.14441,14.0491 3.2809,13.752 3.42994,13.4611 3.61356,13.1252 3.77042,12.8477 3.94169,12.5759 4.04973,12.406 4.22552,12.1436 4.40044,11.9098 4.58259,11.6581 4.78152,11.4115 4.97945,11.1918 5.3277,10.8281 5.559,10.6196 5.6455,10.5374 5.8792,10.3345 6.2179,10.0087 x,.05 0.504852,19.262 0.52372,19.7482 0.53704,20.1695 0.55604,20.6787 0.57682,21.2006 0.60419,21.861 0.6292,22.4124 0.65525,22.9334 0.66932,23.1984 0.70379,23.8285 0.72029,24.1036 0.75011,24.5691 0.77815,24.9956 0.80568,25.3319 0.84228,25.7709 0.92054,26.467 0.97734,26.7172 1.03765,26.6853 1.10167,26.5508 1.15172,26.3423 1.20869,26.0344 1.2636,25.7802 1.321,25.5285 1.39441,25.181 1.46057,24.8389 1.52103,24.5494 1.59012,24.2161 1.65915,23.8875 1.73452,23.6087 1.80981,23.2435 1.89202,22.9279 1.97415,22.6168 2.03218,22.3973 2.11631,22.051 2.20817,21.7518 2.30848,21.4152 2.41334,21.0838 2.53273,20.7172 2.72036,20.2573 2.91062,19.6178 3.12624,19.0166 3.1688,18.9059 3.31274,18.5416 3.42994,18.2554 3.54443,18.0083 3.67692,17.696 3.82913,17.3554 4.05756,16.9219 4.23369,16.6281 4.32461,16.4672 4.49493,16.1815 4.53855,16.1186 4.94113,15.5337 5.08638,15.3237 5.3174,15.0285 5.6346,14.6532 6.0755,14.1765 6.3392,13.9035 6.513,13.7421 6.8088,13.4774 7.0497,13.2437 7.3415,13.0138 7.6454,12.7879 8.0859,12.4687 8.4206,12.2523 8.7354,12.0398 9.2923,11.7163 10.0097,11.2698 x,.06 0.503878,21.583 0.5217,22.2134 0.54121,22.862 0.56035,23.4392 0.58242,24.077 0.61836,25.1145 0.63408,25.5024 0.65021,25.8963 0.67582,26.4986 0.70788,27.2188 0.73576,27.7445 0.7677,28.3346 0.79794,28.7708 0.80257,28.9371 0.83903,29.4954 0.86704,29.7774 0.91169,30.4098 0.9605,30.7575 1.0178,31.0485 1.06403,31.1631 1.11451,31.2177 1.16289,31.2125 1.21572,31.2072 1.27094,31.0219 1.33125,30.8374 1.39172,30.5952 1.45494,30.2965 1.52397,30.0004 1.60555,29.6494 1.67849,29.3599 1.75813,29.073 1.84154,28.7334 1.94013,28.3425 2.07983,27.8474 2.2296,27.2819 2.29958,27.0691 2.38093,26.7799 2.45566,26.5454 2.55978,26.1853 2.72036,25.6545 2.96452,24.9629 3.29042,24.0552 3.79233,22.7127 4.30377,21.5915 4.7769,20.5869 5.2663,19.8007 5.3898,19.6468 5.6346,19.2683 5.7113,19.1931 5.9478,18.86 6.0638,18.7498 6.4879,18.2105 6.7695,17.8598 7.215,17.3798 7.3274,17.2786 7.6307,16.9459 7.9619,16.6196 8.1172,16.4589 8.4696,16.1419 8.8201,15.8312 9.1498,15.5566 9.437,15.3167 9.7898,15.022 x,.08 0.505828,24.3704 0.52983,25.4219 0.5746,27.3987 0.59493,28.199 0.60303,28.4158 0.62436,29.3022 0.67582,30.9779 0.70651,31.943 0.73292,32.7492 0.76326,33.5106 0.79179,34.2901 0.80568,34.62 0.84065,35.4246 0.87545,36.1783 0.90993,36.8061 0.94943,37.4443 0.99256,38.0198 1.00996,38.3116 1.0538,38.7511 1.09743,39.2715 1.14728,39.4926 1.20869,39.7903 1.26972,39.9365 1.34028,40.0052 1.43817,40.1101 1.53431,39.9073 1.6227,39.7834 1.72117,39.6595 1.85225,39.2679 1.93265,38.9598 2.02826,38.7278 2.11631,38.424 2.21672,38.1219 2.25995,37.9724 2.36261,37.6016 2.44619,37.3077 2.53518,37.0159 2.85494,35.3939 3.2306,33.7772 3.47663,32.7418 3.84395,31.6126 4.18491,30.5242 4.48626,29.7033 5.2359,28.1253 6.1108,26.1226 7.077,24.6405 8.3236,22.7532 8.8714,22.0141 9.5286,21.1346 9.923,20.648 x,.1 0.505828,27.4122 0.52372,28.2129 0.53085,28.5397 0.54963,29.4299 0.56908,30.2895 0.61006,32.2086 0.63164,33.2133 0.65399,34.1834 0.67712,35.0464 0.70651,36.2782 0.73292,37.1937 0.75885,38.2063 0.77815,38.7965 0.82776,40.39 0.86036,41.3293 0.89425,42.209 0.91169,42.697 0.9476,43.5218 0.98873,44.5332 1.03965,45.7429 1.07851,46.537 1.12316,47.253 1.17418,48.072 1.22752,48.9051 1.30075,49.6542 1.38101,50.5117 1.44374,51.0908 1.51224,51.378 1.58399,51.866 1.65915,52.158 1.73117,52.452 1.80283,52.646 1.88837,52.84 1.97797,52.831 2.02435,52.724 2.11222,52.716 2.19966,52.606 2.29958,52.496 2.40869,52.183 2.53273,51.772 2.71511,51.0647 2.83845,50.6636 3.09022,49.4886 3.2306,48.9109 3.38715,48.2929 3.54443,47.4995 3.70544,46.7644 3.87376,45.952 4.05756,45.1534 4.23369,44.2838 4.34974,43.8543 4.52979,43.0101 4.73556,42.1815 5.09621,40.731 5.4843,39.2547 5.9766,37.4309 6.5635,35.5192 6.8484,34.6677 7.1872,33.7055 7.6973,32.5158 8.2436,31.097 8.5683,30.3227 8.8372,29.6828 9.1146,29.2249 9.3283,28.7196 9.6583,28.0589 10.029,27.3603 x,.12 0.507786,30.3028 0.5207,31.0091 0.52983,31.4891 0.5454,32.2848 0.56361,33.2279 0.59264,34.795 0.60303,35.4701 0.62075,36.3663 0.65779,38.2274 0.70515,40.5712 0.74866,42.565 0.78267,43.9758 0.81981,45.4331 0.85705,46.7583 0.91169,48.5851 0.97923,50.5789 1.01192,51.3586 1.0538,52.553 1.11236,53.979 1.16289,55.021 1.21572,56.082 1.29323,57.271 1.34937,57.928 1.41066,58.705 1.4719,59.493 1.5932,60.75 1.66557,61.446 1.73787,62.151 1.75135,62.269 1.83444,62.861 1.91038,63.46 2.02826,64.184 2.09192,64.424 2.18273,64.787 2.26432,65.028 2.36718,65.142 2.46517,65.132 2.52785,65.126 2.64268,64.989 2.75739,64.604 2.88265,64.22 3.05462,63.59 3.19337,62.726 3.41342,61.217 3.65568,59.513 3.85138,58.14 3.88876,58.026 4.05756,57.019 4.24188,55.92 4.42601,54.737 4.62707,53.58 4.8186,52.346 5.00839,51.3385 5.05699,51.139 5.338,49.6707 5.5375,48.6214 5.7113,47.8714 5.9478,46.7691 6.0755,46.2274 6.3148,45.1633 6.5762,44.1234 6.8352,43.1077 7.077,42.1974 7.3699,41.2257 7.8096,39.6573 8.1015,38.8195 8.4369,37.8526 8.7692,36.91 9.3644,35.2999 9.752,34.3544 10.0387,33.7271 x,.16 0.505828,33.889 0.51969,34.6787 0.52983,35.3512 0.53394,35.6238 0.5539,36.8767 0.57349,38.0271 0.59149,39.2138 0.60888,40.3601 0.6292,41.6997 0.64396,42.672 0.66545,43.9186 0.67061,44.1721 0.68501,45.1153 0.70379,46.3449 0.72728,47.791 0.75301,49.2817 0.77067,50.5281 0.8135,53.115 0.84065,54.772 0.85705,55.727 0.87376,56.807 0.91169,59.145 0.93668,60.757 0.96421,62.172 0.99256,64.113 1.01192,64.98 1.05177,66.876 1.09319,68.564 1.181,71.652 1.22989,73.035 1.2808,74.589 1.32868,75.884 1.38101,77.201 1.44374,78.842 1.52692,80.826 1.5932,82.227 1.66557,83.814 1.73787,85.597 1.81681,87.08 1.91038,88.758 1.93265,89.269 2.07182,91.51 2.16593,92.381 2.26432,93.26 2.37175,93.965 2.47949,94.677 2.52297,94.853 2.63758,95.02 2.76272,95.003 2.88265,94.804 3.01359,93.878 3.14441,93.502 3.28725,92.589 3.63456,89.568 3.79966,88.182 3.83653,87.839 3.91892,87.157 4.08114,85.479 4.2583,83.833 4.46896,81.585 4.76308,78.935 4.8093,78.628 5.2056,75.049 5.6238,71.772 6.1463,67.977 6.3761,66.541 6.6528,64.883 7.077,62.534 7.1457,62.171 7.7047,59.457 8.1015,57.75 8.4369,56.421 8.6849,55.444 9.1146,53.957 9.4735,52.614 9.7898,51.6023 10.0097,50.857 x,.14 1.01976,57.545 1.04771,58.433 1.12099,60.715 1.16514,62.127 1.18329,62.604 1.23227,64.06 1.25873,64.8 1.31083,66.051 1.39711,68.367 1.45213,69.419 1.53876,71.165 1.60866,72.399 1.68173,73.512 1.75813,74.642 1.94388,77.099 2.02826,77.833 2.11631,78.726 2.43676,80.836 2.52297,81.137 2.64268,81.436 2.76806,81.579 2.905,81.407 3.05462,81.234 3.17492,80.909 3.28725,80.045 3.39697,79.191 3.55128,78.115 3.68403,77.057 3.82174,75.721 3.93408,74.697 4.09694,73.401 4.21737,72.269 4.51233,69.517 4.87477,66.353 5.2816,62.786 5.7335,60.334 5.8792,59.176 6.23,56.924 6.6528,54.863 7.0225,52.776 7.2921,51.7108 7.5282,50.8639 7.985,48.9286 8.3236,48.0791 8.7269,46.2965 9.2923,44.6633 9.6211,43.7201 9.9807,42.6317 x,.18 1.15172,75.197 1.18787,76.8 1.20171,77.391 1.28824,80.723 1.34937,82.917 1.40522,84.681 1.46622,86.483 1.54173,88.832 1.55971,89.515 1.61489,91.599 1.66879,94.093 1.72117,96.656 1.78206,100.443 1.80981,102.392 1.87384,107.228 1.92148,111.648 1.97606,117.488 2.03218,124.351 2.07382,131.874 2.14926,137.436 2.21672,139.019 2.27308,137.672 2.37175,133.468 2.40404,131.925 2.48909,127.654 2.55238,125.204 2.73617,118.821 2.84943,115.861 2.97312,113.192 3.07237,111.017 3.20573,108.46 3.34489,106.166 3.49009,104.121 3.53077,103.516 3.69115,101.718 3.85138,99.759 3.94169,98.793 4.14469,96.887 4.35815,94.471 4.53855,92.831 4.87477,89.639 5.10606,87.912 5.4107,85.551 5.8679,82.131 6.1344,80.238 6.5004,77.933 6.8484,75.842 7.572,71.828 8.196,68.691 8.4696,67.371 8.8886,65.438 9.097,64.555 9.437,63.07 9.7898,61.618 x,.2 0.505828,38.1925 0.536,40.3799 0.55283,41.6402 0.57349,43.1879 0.6077,45.7495 0.62436,46.9059 0.63777,47.9075 0.64895,48.7428 0.68501,51.2875 0.70243,52.635 0.72238,54.174 0.75301,56.295 0.77665,58.164 0.81981,61.259 0.84554,63.171 0.88224,65.771 0.93668,70.211 0.96235,71.708 0.99833,73.802 1.02569,75.667 1.04771,76.986 1.08688,79.234 1.11883,80.923 1.16289,83.125 1.18329,83.925 1.22042,86.045 1.2734,88.726 1.31591,91.671 1.34676,93.628 1.38368,96.738 1.39711,97.86 1.44933,103.274 1.46906,105.482 1.48618,107.738 1.50787,111.645 1.53431,115.58 1.55069,120.467 1.57636,125.196 1.58552,131.376 1.60711,145.785 1.61021,157.018 1.61177,179.188 2.75739,154.442 2.77878,150.035 2.81117,148.302 2.83571,144.209 2.92189,137.141 3.03111,131.554 3.13229,127.05 3.36433,118.955 3.60658,113.984 3.75588,111.359 3.91892,109.215 4.11279,107.109 4.28304,105.453 4.40044,104.43 4.59145,102.419 4.69005,101.624 4.88419,99.86 5.2258,96.988 5.369,95.862 5.5805,94.199 5.7445,92.925 6.1463,89.732 6.4255,88.173 6.7044,86.309 7.0907,83.992 7.4128,82.215 8.1015,78.621 8.4206,77.108 8.7523,75.334 9.1146,73.741 9.5655,71.902 9.9518,70.111 x,.22 0.97357,78.205 1.01583,80.797 1.05993,83.799 1.09743,86.413 1.11236,87.414 1.16289,91.715 1.21337,96.973 1.2636,103.728 1.3083,110.955 1.35198,122.641 1.37834,133.49 1.39038,138.6 1.39981,160.316 1.40116,165.817 1.40251,167.908 1.40387,172.335 3.02818,177.893 3.03697,178.578 3.04578,175.504 3.05757,173.315 3.07831,169.347 3.0962,167.395 3.14745,161.208 3.16268,159.504 3.20573,155.248 3.28725,148.499 3.35136,145.091 3.67692,131.963 3.82174,128.43 3.97226,125.473 4.05756,124.02 4.23369,121.631 4.43457,118.828 4.54733,117.677 4.71731,115.859 4.85598,114.513 5.1856,111.221 5.3898,109.291 5.6238,107.186 5.6783,106.769 5.9248,104.713 6.0638,103.5 6.3515,101.309 6.6016,99.36 6.8749,97.635 7.5282,93.187 8.2436,88.942 8.4696,87.571 8.8201,85.72 9.1146,84.397 9.5102,82.453 10.0387,79.701 x,.24 0.506806,42.0577 0.515693,42.7086 0.53291,43.9563 0.54646,44.8943 0.57239,46.8313 0.59149,48.2925 0.61717,50.4741 0.63042,51.5519 0.65021,53.161 0.67061,54.82 0.70515,57.85 0.73861,60.93 0.76622,63.317 0.8088,67.074 0.87208,72.57 0.91522,76.878 0.95126,81.13 0.98112,84.31 1.03564,92.466 1.0538,95.357 1.07332,99.578 1.1038,105.192 1.11775,111.774 1.13845,119.8 1.14949,130.026 1.15953,141.534 1.16289,160.585 1.16627,179.585 3.42002,179.013 3.46657,174.91 3.52395,170.733 3.57537,166.658 3.6451,161.583 3.72697,157.418 3.82913,153.061 3.9646,147.535 4.05756,144.426 4.20923,140.289 4.41747,135.478 4.58259,132.106 4.78152,129.063 5.08638,124.871 5.3072,122.703 5.6674,119.174 5.9134,117.105 6.0755,115.746 6.3515,113.516 6.64,111.329 6.9282,109.185 7.077,108.128 7.3842,105.842 7.6899,104.005 8.1172,101.213 8.4369,99.266 8.6181,98.305 8.9748,96.227 9.1498,95.481 9.547,93.281 x,.26 3.78867,180.502 3.83653,177.559 3.94931,171.153 4.04973,166.578 4.17684,160.876 4.29962,156.574 4.55612,149.172 4.74472,145.176 5.00839,139.386 5.3898,134.593 5.7668,130.974 6.0872,127.952 6.2541,126.467 6.5382,124.27 6.822,121.642 7.1457,119.068 7.4559,117 7.7945,114.746 8.1015,112.755 8.4532,110.584 8.7692,109.086 9.1322,106.986 9.5286,104.925 9.7709,103.908 10.0581,102.405 x,.28 4.14469,180.265 4.20111,178.183 4.34974,172.413 4.60478,163.789 4.91258,156.796 5.14566,153.182 5.369,150.232 5.5697,146.775 5.8003,144.227 6.0872,141.174 6.3637,138.454 6.4628,137.913 6.7304,135.258 7.0907,132.393 7.4128,130.093 7.4992,129.337 7.8398,126.845 8.1015,124.887 8.4532,122.719 9.1146,118.727 9.5286,116.664 9.9422,114.417 x,.3 0.511724,47.8559 0.5217,48.784 0.54016,50.5975 0.55711,52.277 0.56688,53.292 0.58581,55.167 0.639,60.964 0.6452,61.553 0.65652,62.868 0.67582,65.081 0.68767,66.6 0.70515,68.813 0.72869,71.924 0.75011,74.456 0.77515,78.425 0.80724,83.564 0.82616,87.009 0.85045,92.003 0.86871,95.336 0.88565,100.134 0.90032,105.173 0.92143,113.706 0.92947,122.346 0.94303,130.125 0.94668,138.272 0.95402,143.981 0.95679,152.407 0.9605,180.067 0.96142,170.274 4.48626,178.137 4.65395,172.701 4.83725,168.076 5.08147,162.782 5.4002,158.257 5.6346,154.91 5.8792,151.927 6.194,148.708 6.4879,146.688 6.7826,144.14 8.0859,135.162 8.4532,133.07 8.8372,130.759 9.1322,128.989 9.547,126.748 9.9614,124.788 x,.4 0.50242,54.67 0.52983,57.802 0.56963,62.179 0.60653,67.278 0.64895,73.499 0.66545,76.234 0.72378,86.468 0.77665,99.51 0.81114,112.996 0.81981,120.299 0.83499,131.321 0.84881,144.882 0.85539,162.333 0.86286,179.275 x,.6 0.503392,67.326 0.51769,68.365 0.54699,71.381 0.58298,75.687 0.6292,83.082 0.65652,89.383 0.68369,97.095 0.72099,113.266 0.74578,129.992 0.76696,153.866 0.77665,180.041 x,.8 0.503878,76.758 0.536,79.144 0.55658,81.849 0.58242,87.379 0.61479,95.832 0.6477,110.828 0.66803,124.646 0.68767,144.163 0.693,157.226 0.69703,179.423 x,1 0.503392,87.176 0.517189,88.181 0.52881,89.631 0.53756,92.166 0.55283,98.59 0.57128,105.358 0.58468,112.921 0.59723,119.867 0.60947,130.094 0.61776,138.767 0.6286,150.318 0.63962,169.395 0.64396,179.651 fluids-0.1.78/fluids/flow_meter.py0000644000175000017500000020354213632560624015651 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import cos, sin, tan, atan, pi, radians, exp, acos, log10 from fluids.friction import friction_factor from fluids.core import Froude_densimetric from fluids.numerics import interp, secant, py_brenth as brenth from fluids.constants import g, inch __all__ = ['C_Reader_Harris_Gallagher', 'differential_pressure_meter_solver', 'differential_pressure_meter_dP', 'flow_meter_discharge', 'orifice_expansibility', 'discharge_coefficient_to_K', 'K_to_discharge_coefficient', 'dP_orifice', 'velocity_of_approach_factor', 'flow_coefficient', 'nozzle_expansibility', 'C_long_radius_nozzle', 'C_ISA_1932_nozzle', 'C_venturi_nozzle', 'orifice_expansibility_1989', 'dP_venturi_tube', 'diameter_ratio_cone_meter', 'diameter_ratio_wedge_meter', 'cone_meter_expansibility_Stewart', 'dP_cone_meter', 'C_wedge_meter_Miller', 'C_wedge_meter_ISO_5167_6_2017', 'dP_wedge_meter', 'C_Reader_Harris_Gallagher_wet_venturi_tube', 'dP_Reader_Harris_Gallagher_wet_venturi_tube', 'differential_pressure_meter_C_epsilon', 'differential_pressure_meter_beta' ] CONCENTRIC_ORIFICE = 'concentric' ECCENTRIC_ORIFICE = 'eccentric' SEGMENTAL_ORIFICE = 'segmental' CONDITIONING_4_HOLE_ORIFICE = 'Rosemount 4 hole self conditioing' ORIFICE_HOLE_TYPES = [CONCENTRIC_ORIFICE, ECCENTRIC_ORIFICE, SEGMENTAL_ORIFICE, CONDITIONING_4_HOLE_ORIFICE] ORIFICE_CORNER_TAPS = 'corner' ORIFICE_FLANGE_TAPS = 'flange' ORIFICE_D_AND_D_2_TAPS = 'D and D/2' ISO_5167_ORIFICE = 'ISO 5167 orifice' LONG_RADIUS_NOZZLE = 'long radius nozzle' ISA_1932_NOZZLE = 'ISA 1932 nozzle' VENTURI_NOZZLE = 'venuri nozzle' AS_CAST_VENTURI_TUBE = 'as cast convergent venturi tube' MACHINED_CONVERGENT_VENTURI_TUBE = 'machined convergent venturi tube' ROUGH_WELDED_CONVERGENT_VENTURI_TUBE = 'rough welded convergent venturi tube' CONE_METER = 'cone meter' WEDGE_METER = 'wedge meter' __all__.extend(['ISO_5167_ORIFICE', 'LONG_RADIUS_NOZZLE', 'ISA_1932_NOZZLE', 'VENTURI_NOZZLE', 'AS_CAST_VENTURI_TUBE', 'MACHINED_CONVERGENT_VENTURI_TUBE', 'ROUGH_WELDED_CONVERGENT_VENTURI_TUBE', 'CONE_METER', 'WEDGE_METER']) def flow_meter_discharge(D, Do, P1, P2, rho, C, expansibility=1.0): r'''Calculates the flow rate of an orifice plate based on the geometry of the plate, measured pressures of the orifice, and the density of the fluid. .. math:: m = \left(\frac{\pi D_o^2}{4}\right) C \frac{\sqrt{2\Delta P \rho_1}} {\sqrt{1 - \beta^4}}\cdot \epsilon Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] P1 : float Static pressure of fluid upstream of orifice at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of orifice at the cross-section of the pressure tap, [Pa] rho : float Density of fluid at `P1`, [kg/m^3] C : float Coefficient of discharge of the orifice, [-] expansibility : float, optional Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Returns ------- m : float Mass flow rate of fluid, [kg/s] Notes ----- This is formula 1-12 in [1]_ and also [2]_. Examples -------- >>> flow_meter_discharge(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, rho=1.1646, ... C=0.5988, expansibility=0.9975) 0.01120390943807026 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. ''' beta = Do/D beta2 = beta*beta return (0.25*pi*Do*Do)*C*expansibility*( (2.0*rho*(P1 - P2))/(1.0 - beta2*beta2))**0.5 def orifice_expansibility(D, Do, P1, P2, k): r'''Calculates the expansibility factor for orifice plate calculations based on the geometry of the plate, measured pressures of the orifice, and the isentropic exponent of the fluid. .. math:: \epsilon = 1 - (0.351 + 0.256\beta^4 + 0.93\beta^8) \left[1-\left(\frac{P_2}{P_1}\right)^{1/\kappa}\right] Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] P1 : float Static pressure of fluid upstream of orifice at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of orifice at the cross-section of the pressure tap, [Pa] k : float Isentropic exponent of fluid, [-] Returns ------- expansibility : float, optional Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Notes ----- This formula was determined for the range of P2/P1 >= 0.80, and for fluids of air, steam, and natural gas. However, there is no objection to using it for other fluids. Examples -------- >>> orifice_expansibility(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) 0.9974739057343425 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. ''' beta = Do/D beta2 = beta*beta beta4 = beta2*beta2 return (1.0 - (0.351 + beta4*(0.93*beta4 + 0.256))*( 1.0 - (P2/P1)**(1./k))) def orifice_expansibility_1989(D, Do, P1, P2, k): r'''Calculates the expansibility factor for orifice plate calculations based on the geometry of the plate, measured pressures of the orifice, and the isentropic exponent of the fluid. .. math:: \epsilon = 1- (0.41 + 0.35\beta^4)\Delta P/\kappa/P_1 Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] P1 : float Static pressure of fluid upstream of orifice at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of orifice at the cross-section of the pressure tap, [Pa] k : float Isentropic exponent of fluid, [-] Returns ------- expansibility : float Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Notes ----- This formula was determined for the range of P2/P1 >= 0.75, and for fluids of air, steam, and natural gas. However, there is no objection to using it for other fluids. This is an older formula used to calculate expansibility factors for orifice plates. In this standard, an expansibility factor formula transformation in terms of the pressure after the orifice is presented as well. This is the more standard formulation in terms of the upstream conditions. The other formula is below for reference only: .. math:: \epsilon_2 = \sqrt{1 + \frac{\Delta P}{P_2}} - (0.41 + 0.35\beta^4) \frac{\Delta P}{\kappa P_2 \sqrt{1 + \frac{\Delta P}{P_2}}} [2]_ recommends this formulation for wedge meters as well. Examples -------- >>> orifice_expansibility_1989(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) 0.9970510687411718 References ---------- .. [1] American Society of Mechanical Engineers. MFC-3M-1989 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2005. .. [2] Miller, Richard W. Flow Measurement Engineering Handbook. 3rd edition. New York: McGraw-Hill Education, 1996. ''' return 1.0 - (0.41 + 0.35*(Do/D)**4)*(P1 - P2)/(k*P1) def C_Reader_Harris_Gallagher(D, Do, rho, mu, m, taps='corner'): r'''Calculates the coefficient of discharge of the orifice based on the geometry of the plate, measured pressures of the orifice, mass flow rate through the orifice, and the density and viscosity of the fluid. .. math:: C = 0.5961 + 0.0261\beta^2 - 0.216\beta^8 + 0.000521\left(\frac{ 10^6\beta}{Re_D}\right)^{0.7}\\ + (0.0188 + 0.0063A)\beta^{3.5} \left(\frac{10^6}{Re_D}\right)^{0.3} \\ +(0.043 + 0.080\exp(-10L_1) -0.123\exp(-7L_1))(1-0.11A)\frac{\beta^4} {1-\beta^4} \\ - 0.031(M_2' - 0.8M_2'^{1.1})\beta^{1.3} .. math:: M_2' = \frac{2L_2'}{1-\beta} .. math:: A = \left(\frac{19000\beta}{Re_{D}}\right)^{0.8} .. math:: Re_D = \frac{\rho v D}{\mu} If D < 71.12 mm (2.8 in.) (Note this is a continuous addition; there is no discontinuity): .. math:: C += 0.11(0.75-\beta)\left(2.8-\frac{D}{0.0254}\right) If the orifice has corner taps: .. math:: L_1 = L_2' = 0 If the orifice has D and D/2 taps: .. math:: L_1 = 1 .. math:: L_2' = 0.47 If the orifice has Flange taps: .. math:: L_1 = L_2' = \frac{0.0254}{D} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] rho : float Density of fluid at `P1`, [kg/m^3] mu : float Viscosity of fluid at `P1`, [Pa*s] m : float Mass flow rate of fluid through the orifice, [kg/s] taps : str The orientation of the taps; one of 'corner', 'flange', 'D', or 'D/2', [-] Returns ------- C : float Coefficient of discharge of the orifice, [-] Notes ----- The following limits apply to the orifice plate standard [1]_: The measured pressure difference for the orifice plate should be under 250 kPa. There are roughness limits as well; the roughness should be under 6 micrometers, although there are many more conditions to that given in [1]_. For orifice plates with D and D/2 or corner pressure taps: * Orifice bore diameter muse be larger than 12.5 mm (0.5 inches) * Pipe diameter between 50 mm and 1 m (2 to 40 inches) * Beta between 0.1 and 0.75 inclusive * Reynolds number larger than 5000 (for :math:`0.10 \le \beta \le 0.56`) or for :math:`\beta \ge 0.56, Re_D \ge 16000\beta^2` For orifice plates with flange pressure taps: * Orifice bore diameter muse be larger than 12.5 mm (0.5 inches) * Pipe diameter between 50 mm and 1 m (2 to 40 inches) * Beta between 0.1 and 0.75 inclusive * Reynolds number larger than 5000 and also larger than :math:`170000\beta^2 D`. This is also presented in Crane's TP410 (2009) publication, whereas the 1999 and 1982 editions showed only a graph for discharge coefficients. Examples -------- >>> C_Reader_Harris_Gallagher(D=0.07391, Do=0.0222, rho=1.165, mu=1.85E-5, ... m=0.12, taps='flange') 0.5990326277163659 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. .. [3] Reader-Harris, M. J., "The Equation for the Expansibility Factor for Orifice Plates," Proceedings of FLOMEKO 1998, Lund, Sweden, 1998: 209-214. .. [4] Reader-Harris, Michael. Orifice Plates and Venturi Tubes. Springer, 2015. ''' A_pipe = 0.25*pi*D*D v = m/(A_pipe*rho) Re_D = rho*v*D/mu Re_D_inv = 1.0/Re_D beta = Do/D if taps == 'corner': L1, L2_prime = 0.0, 0.0 elif taps == 'D' or taps == 'D/2': L1 = 1.0 L2_prime = 0.47 elif taps == 'flange': L1 = L2_prime = 0.0254/D else: raise Exception('Unsupported tap location') beta2 = beta*beta beta4 = beta2*beta2 beta8 = beta4*beta4 A = (19000.0*beta*Re_D_inv)**0.8 M2_prime = 2.0*L2_prime/(1.0 - beta) delta_C_upstream = ((0.043 + 0.080*exp(-1E1*L1) - 0.123*exp(-7.0*L1)) *(1.0 - 0.11*A)*beta4/(1.0 - beta4)) # The max part is not in the ISO standard t1 = log10(3700.*Re_D_inv) if t1 < 0.0: t1 = 0.0 delta_C_downstream = (-0.031*(M2_prime - 0.8*M2_prime**1.1)*beta**1.3 *(1.0 + 8.0*t1)) # C_inf is discharge coefficient with corner taps for infinite Re # Cs, slope term, provides increase in discharge coefficient for lower # Reynolds numbers. x1 = (1E6*Re_D_inv)**0.3 x2 = 22.7 - 0.0047*Re_D t2 = x1 if x1 > x2 else x2 # max term is not in the ISO standard C_inf_C_s = (0.5961 + 0.0261*beta2 - 0.216*beta8 + 0.000521*(1E6*beta*Re_D_inv)**0.7 + (0.0188 + 0.0063*A)*beta**3.5*( t2)) C = (C_inf_C_s + delta_C_upstream + delta_C_downstream) if D < 0.07112: # Limit is 2.8 inches, .1 inches smaller than the internal diameter of # a sched. 80 pipe. # Suggested to be required not becausue of any effect of small # diameters themselves, but because of edge radius differences. # max term is given in [4]_ Reader-Harris, Michael book # There is a check for t3 being negative and setting it to zero if so # in some sources but that only occurs when t3 is exactly the limit # (0.07112) so it is not needed t3 = (2.8 - D/0.0254) delta_C_diameter = 0.011*(0.75 - beta)*t3 C += delta_C_diameter return C def discharge_coefficient_to_K(D, Do, C): r'''Converts a discharge coefficient to a standard loss coefficient, for use in computation of the actual pressure drop of an orifice or other device. .. math:: K = \left[\frac{\sqrt{1-\beta^4(1-C^2)}}{C\beta^2} - 1\right]^2 Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] C : float Coefficient of discharge of the orifice, [-] Returns ------- K : float Loss coefficient with respect to the velocity and density of the fluid just upstream of the orifice, [-] Notes ----- If expansibility is used in the orifice calculation, the result will not match with the specified pressure drop formula in [1]_; it can almost be matched by dividing the calculated mass flow by the expansibility factor and using that mass flow with the loss coefficient. Examples -------- >>> discharge_coefficient_to_K(D=0.07366, Do=0.05, C=0.61512) 5.2314291729754 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. ''' beta = Do/D beta2 = beta*beta beta4 = beta2*beta2 root_K = ((1.0 - beta4*(1.0 - C*C))**0.5/(C*beta2) - 1.0) return root_K*root_K def K_to_discharge_coefficient(D, Do, K): r'''Converts a standard loss coefficient to a discharge coefficient. .. math:: C = \sqrt{\frac{1}{2 \sqrt{K} \beta^{4} + K \beta^{4}} - \frac{\beta^{4}}{2 \sqrt{K} \beta^{4} + K \beta^{4}} } Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] K : float Loss coefficient with respect to the velocity and density of the fluid just upstream of the orifice, [-] Returns ------- C : float Coefficient of discharge of the orifice, [-] Notes ----- If expansibility is used in the orifice calculation, the result will not match with the specified pressure drop formula in [1]_; it can almost be matched by dividing the calculated mass flow by the expansibility factor and using that mass flow with the loss coefficient. This expression was derived with SymPy, and checked numerically. There were three other, incorrect roots. Examples -------- >>> K_to_discharge_coefficient(D=0.07366, Do=0.05, K=5.2314291729754) 0.6151200000000001 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. ''' beta = Do/D beta2 = beta*beta beta4 = beta2*beta2 root_K = K**0.5 return ((1.0 - beta4)/(2.0*root_K*beta4 + K*beta4))**0.5 def dP_orifice(D, Do, P1, P2, C): r'''Calculates the non-recoverable pressure drop of an orifice plate based on the pressure drop and the geometry of the plate and the discharge coefficient. .. math:: \Delta\bar w = \frac{\sqrt{1-\beta^4(1-C^2)}-C\beta^2} {\sqrt{1-\beta^4(1-C^2)}+C\beta^2} (P_1 - P_2) Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] P1 : float Static pressure of fluid upstream of orifice at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of orifice at the cross-section of the pressure tap, [Pa] C : float Coefficient of discharge of the orifice, [-] Returns ------- dP : float Non-recoverable pressure drop of the orifice plate, [Pa] Notes ----- This formula can be well approximated by: .. math:: \Delta\bar w = \left(1 - \beta^{1.9}\right)(P_1 - P_2) The recoverable pressure drop should be recovered by 6 pipe diameters downstream of the orifice plate. Examples -------- >>> dP_orifice(D=0.07366, Do=0.05, P1=200000.0, P2=183000.0, C=0.61512) 9069.474705745388 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-2:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 2: Orifice Plates. ''' beta = Do/D beta2 = beta*beta beta4 = beta2*beta2 dP = P1 - P2 delta_w = ((1.0 - beta4*(1.0 - C*C))**0.5 - C*beta2)/( (1.0 - beta4*(1.0 - C*C))**0.5 + C*beta2)*dP return delta_w def velocity_of_approach_factor(D, Do): r'''Calculates a factor for orifice plate design called the `velocity of approach`. .. math:: \text{Velocity of approach} = \frac{1}{\sqrt{1 - \beta^4}} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice at flow conditions, [m] Returns ------- velocity_of_approach : float Coefficient of discharge of the orifice, [-] Notes ----- Examples -------- >>> velocity_of_approach_factor(D=0.0739, Do=0.0222) 1.0040970074165514 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. ''' return (1.0 - (Do/D)**4)**-0.5 def flow_coefficient(D, Do, C): r'''Calculates a factor for differential pressure flow meter design called the `flow coefficient`. This should not be confused with the flow coefficient often used when discussing valves. .. math:: \text{Flow coefficient} = \frac{C}{\sqrt{1 - \beta^4}} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of flow meter characteristic dimension at flow conditions, [m] C : float Coefficient of discharge of the flow meter, [-] Returns ------- flow_coefficient : float Differential pressure flow meter flow coefficient, [-] Notes ----- This measure is used not just for orifices but for other differential pressure flow meters [2]_. It is sometimes given the symbol K. It is also equal to the product of the diacharge coefficient and the velocity of approach factor [2]_. Examples -------- >>> flow_coefficient(D=0.0739, Do=0.0222, C=0.6) 0.6024582044499308 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] Miller, Richard W. Flow Measurement Engineering Handbook. 3rd edition. New York: McGraw-Hill Education, 1996. ''' return C*(1.0 - (Do/D)**4)**-0.5 def nozzle_expansibility(D, Do, P1, P2, k, beta=None): r'''Calculates the expansibility factor for a nozzle or venturi nozzle, based on the geometry of the plate, measured pressures of the orifice, and the isentropic exponent of the fluid. .. math:: \epsilon = \left\{\left(\frac{\kappa \tau^{2/\kappa}}{\kappa-1}\right) \left(\frac{1 - \beta^4}{1 - \beta^4 \tau^{2/\kappa}}\right) \left[\frac{1 - \tau^{(\kappa-1)/\kappa}}{1 - \tau} \right] \right\}^{0.5} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of orifice of the venturi or nozzle, [m] P1 : float Static pressure of fluid upstream of orifice at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of orifice at the cross-section of the pressure tap, [Pa] k : float Isentropic exponent of fluid, [-] beta : float, optional Optional `beta` ratio, which is useful to specify for wedge meters or flow meters which have a different beta ratio calculation, [-] Returns ------- expansibility : float Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Notes ----- This formula was determined for the range of P2/P1 >= 0.75. Examples -------- >>> nozzle_expansibility(D=0.0739, Do=0.0222, P1=1E5, P2=9.9E4, k=1.4) 0.9945702344566746 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-3:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 3: Nozzles and Venturi Nozzles. ''' if beta is None: beta = Do/D beta2 = beta*beta beta4 = beta2*beta2 tau = P2/P1 term1 = k*tau**(2.0/k )/(k - 1.0) term2 = (1.0 - beta4)/(1.0 - beta4*tau**(2.0/k)) try: term3 = (1.0 - tau**((k - 1.0)/k))/(1.0 - tau) except ZeroDivisionError: '''Obtained with: from sympy import * tau, k = symbols('tau, k') expr = (1 - tau**((k - 1)/k))/(1 - tau) limit(expr, tau, 1) ''' term3 = (k - 1.0)/k return (term1*term2*term3)**0.5 def C_long_radius_nozzle(D, Do, rho, mu, m): r'''Calculates the coefficient of discharge of a long radius nozzle used for measuring flow rate of fluid, based on the geometry of the nozzle, mass flow rate through the nozzle, and the density and viscosity of the fluid. .. math:: C = 0.9965 - 0.00653\beta^{0.5} \left(\frac{10^6}{Re_D}\right)^{0.5} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of long radius nozzle orifice at flow conditions, [m] rho : float Density of fluid at `P1`, [kg/m^3] mu : float Viscosity of fluid at `P1`, [Pa*s] m : float Mass flow rate of fluid through the nozzle, [kg/s] Returns ------- C : float Coefficient of discharge of the long radius nozzle orifice, [-] Notes ----- Examples -------- >>> C_long_radius_nozzle(D=0.07391, Do=0.0422, rho=1.2, mu=1.8E-5, m=0.1) 0.9805503704679863 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-3:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 3: Nozzles and Venturi Nozzles. ''' A_pipe = pi/4.*D*D v = m/(A_pipe*rho) Re_D = rho*v*D/mu beta = Do/D return 0.9965 - 0.00653*beta**0.5*(1E6/Re_D)**0.5 def C_ISA_1932_nozzle(D, Do, rho, mu, m): r'''Calculates the coefficient of discharge of an ISA 1932 style nozzle used for measuring flow rate of fluid, based on the geometry of the nozzle, mass flow rate through the nozzle, and the density and viscosity of the fluid. .. math:: C = 0.9900 - 0.2262\beta^{4.1} - (0.00175\beta^2 - 0.0033\beta^{4.15}) \left(\frac{10^6}{Re_D}\right)^{1.15} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of nozzle orifice at flow conditions, [m] rho : float Density of fluid at `P1`, [kg/m^3] mu : float Viscosity of fluid at `P1`, [Pa*s] m : float Mass flow rate of fluid through the nozzle, [kg/s] Returns ------- C : float Coefficient of discharge of the nozzle orifice, [-] Notes ----- Examples -------- >>> C_ISA_1932_nozzle(D=0.07391, Do=0.0422, rho=1.2, mu=1.8E-5, m=0.1) 0.9635849973250495 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-3:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 3: Nozzles and Venturi Nozzles. ''' A_pipe = pi/4.*D*D v = m/(A_pipe*rho) Re_D = rho*v*D/mu beta = Do/D C = (0.9900 - 0.2262*beta**4.1 - (0.00175*beta**2 - 0.0033*beta**4.15)*(1E6/Re_D)**1.15) return C def C_venturi_nozzle(D, Do): r'''Calculates the coefficient of discharge of an Venturi style nozzle used for measuring flow rate of fluid, based on the geometry of the nozzle. .. math:: C = 0.9858 - 0.196\beta^{4.5} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of nozzle orifice at flow conditions, [m] Returns ------- C : float Coefficient of discharge of the nozzle orifice, [-] Notes ----- Examples -------- >>> C_venturi_nozzle(D=0.07391, Do=0.0422) 0.9698996454169576 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-3:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 3: Nozzles and Venturi Nozzles. ''' beta = Do/D return 0.9858 - 0.198*beta**4.5 # Relative pressure loss as a function of beta reatio for venturi nozzles # Venturi nozzles should be between 65 mm and 500 mm; there are high and low # loss ratios , with the high losses corresponding to small diameters, # low high losses corresponding to large diameters # Interpolation can be performed. venturi_tube_betas = [0.299160, 0.299470, 0.312390, 0.319010, 0.326580, 0.337290, 0.342020, 0.347060, 0.359030, 0.365960, 0.372580, 0.384870, 0.385810, 0.401250, 0.405350, 0.415740, 0.424250, 0.434010, 0.447880, 0.452590, 0.471810, 0.473090, 0.493540, 0.499240, 0.516530, 0.523800, 0.537630, 0.548060, 0.556840, 0.573890, 0.582350, 0.597820, 0.601560, 0.622650, 0.626490, 0.649480, 0.650990, 0.668700, 0.675870, 0.688550, 0.693180, 0.706180, 0.713330, 0.723510, 0.749540, 0.749650] venturi_tube_dP_high = [0.164534, 0.164504, 0.163591, 0.163508, 0.163439, 0.162652, 0.162224, 0.161866, 0.161238, 0.160786, 0.160295, 0.159280, 0.159193, 0.157776, 0.157467, 0.156517, 0.155323, 0.153835, 0.151862, 0.151154, 0.147840, 0.147613, 0.144052, 0.143050, 0.140107, 0.138981, 0.136794, 0.134737, 0.132847, 0.129303, 0.127637, 0.124758, 0.124006, 0.119269, 0.118449, 0.113605, 0.113269, 0.108995, 0.107109, 0.103688, 0.102529, 0.099567, 0.097791, 0.095055, 0.087681, 0.087648] venturi_tube_dP_low = [0.089232, 0.089218, 0.088671, 0.088435, 0.088206, 0.087853, 0.087655, 0.087404, 0.086693, 0.086241, 0.085813, 0.085142, 0.085102, 0.084446, 0.084202, 0.083301, 0.082470, 0.081650, 0.080582, 0.080213, 0.078509, 0.078378, 0.075989, 0.075226, 0.072700, 0.071598, 0.069562, 0.068128, 0.066986, 0.064658, 0.063298, 0.060872, 0.060378, 0.057879, 0.057403, 0.054091, 0.053879, 0.051726, 0.050931, 0.049362, 0.048675, 0.046522, 0.045381, 0.043840, 0.039913, 0.039896] #ratios_average = 0.5*(ratios_high + ratios_low) D_bound_venturi_tube = [0.065, 0.5] def dP_venturi_tube(D, Do, P1, P2): r'''Calculates the non-recoverable pressure drop of a venturi tube differential pressure meter based on the pressure drop and the geometry of the venturi meter. .. math:: \epsilon = \frac{\Delta\bar w }{\Delta P} The :math:`\epsilon` value is looked up in a table of values as a function of beta ratio and upstream pipe diameter (roughness impact). Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of venturi tube at flow conditions, [m] P1 : float Static pressure of fluid upstream of venturi tube at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of venturi tube at the cross-section of the pressure tap, [Pa] Returns ------- dP : float Non-recoverable pressure drop of the venturi tube, [Pa] Notes ----- The recoverable pressure drop should be recovered by 6 pipe diameters downstream of the venturi tube. Note there is some information on the effect of Reynolds number as well in [1]_ and [2]_, with a curve showing an increased pressure drop from 1E5-6E5 to with a decreasing multiplier from 1.75 to 1; the multiplier is 1 for higher Reynolds numbers. This is not currently included in this implementation. Examples -------- >>> dP_venturi_tube(D=0.07366, Do=0.05, P1=200000.0, P2=183000.0) 1788.5717754177406 References ---------- .. [1] American Society of Mechanical Engineers. Mfc-3M-2004 Measurement Of Fluid Flow In Pipes Using Orifice, Nozzle, And Venturi. ASME, 2001. .. [2] ISO 5167-4:2003 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 4: Venturi Tubes. ''' # Effect of Re is not currently included beta = Do/D epsilon_D65 = interp(beta, venturi_tube_betas, venturi_tube_dP_high) epsilon_D500 = interp(beta, venturi_tube_betas, venturi_tube_dP_low) epsilon = interp(D, D_bound_venturi_tube, [epsilon_D65, epsilon_D500]) return epsilon*(P1 - P2) def diameter_ratio_cone_meter(D, Dc): r'''Calculates the diameter ratio `beta` used to characterize a cone flow meter. .. math:: \beta = \sqrt{1 - \frac{d_c^2}{D^2}} Parameters ---------- D : float Upstream internal pipe diameter, [m] Dc : float Diameter of the largest end of the cone meter, [m] Returns ------- beta : float Cone meter diameter ratio, [-] Notes ----- Examples -------- >>> diameter_ratio_cone_meter(D=0.2575, Dc=0.184) 0.6995709873957624 References ---------- .. [1] Hollingshead, Colter. "Discharge Coefficient Performance of Venturi, Standard Concentric Orifice Plate, V-Cone, and Wedge Flow Meters at Small Reynolds Numbers." May 1, 2011. https://digitalcommons.usu.edu/etd/869. ''' D_ratio = Dc/D return (1.0 - D_ratio*D_ratio)**0.5 def cone_meter_expansibility_Stewart(D, Dc, P1, P2, k): r'''Calculates the expansibility factor for a cone flow meter, based on the geometry of the cone meter, measured pressures of the orifice, and the isentropic exponent of the fluid. Developed in [1]_, also shown in [2]_. .. math:: \epsilon = 1 - (0.649 + 0.696\beta^4) \frac{\Delta P}{\kappa P_1} Parameters ---------- D : float Upstream internal pipe diameter, [m] Dc : float Diameter of the largest end of the cone meter, [m] P1 : float Static pressure of fluid upstream of cone meter at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid at the end of the center of the cone pressure tap, [Pa] k : float Isentropic exponent of fluid, [-] Returns ------- expansibility : float Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Notes ----- This formula was determined for the range of P2/P1 >= 0.75; the only gas used to determine the formula is air. Examples -------- >>> cone_meter_expansibility_Stewart(D=1, Dc=0.9, P1=1E6, P2=8.5E5, k=1.2) 0.9157343 References ---------- .. [1] Stewart, D. G., M. Reader-Harris, and NEL Dr RJW Peters. "Derivation of an Expansibility Factor for the V-Cone Meter." In Flow Measurement International Conference, Peebles, Scotland, UK, 2001. .. [2] ISO 5167-5:2016 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 5: Cone meters. ''' dP = P1 - P2 beta = diameter_ratio_cone_meter(D, Dc) return 1.0 - (0.649 + 0.696*beta**4)*dP/(k*P1) def dP_cone_meter(D, Dc, P1, P2): r'''Calculates the non-recoverable pressure drop of a cone meter based on the measured pressures before and at the cone end, and the geometry of the cone meter according to [1]_. .. math:: \Delta \bar \omega = (1.09 - 0.813\beta)\Delta P Parameters ---------- D : float Upstream internal pipe diameter, [m] Dc : float Diameter of the largest end of the cone meter, [m] P1 : float Static pressure of fluid upstream of cone meter at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid at the end of the center of the cone pressure tap, [Pa] Returns ------- dP : float Non-recoverable pressure drop of the orifice plate, [Pa] Notes ----- The recoverable pressure drop should be recovered by 6 pipe diameters downstream of the cone meter. Examples -------- >>> dP_cone_meter(1, .7, 1E6, 9.5E5) 25470.093437973323 References ---------- .. [1] ISO 5167-5:2016 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 5: Cone meters. ''' dP = P1 - P2 beta = diameter_ratio_cone_meter(D, Dc) return (1.09 - 0.813*beta)*dP def diameter_ratio_wedge_meter(D, H): r'''Calculates the diameter ratio `beta` used to characterize a wedge flow meter as given in [1]_ and [2]_. .. math:: \beta = \left(\frac{1}{\pi}\left\{\arccos\left[1 - \frac{2H}{D} \right] - 2 \left[1 - \frac{2H}{D} \right]\left(\frac{H}{D} - \left[\frac{H}{D}\right]^2 \right)^{0.5}\right\}\right)^{0.5} Parameters ---------- D : float Upstream internal pipe diameter, [m] H : float Portion of the diameter of the clear segment of the pipe up to the wedge blocking flow; the height of the pipe up to the wedge, [m] Returns ------- beta : float Wedge meter diameter ratio, [-] Notes ----- Examples -------- >>> diameter_ratio_wedge_meter(D=0.2027, H=0.0608) 0.5022531424646643 References ---------- .. [1] Hollingshead, Colter. "Discharge Coefficient Performance of Venturi, Standard Concentric Orifice Plate, V-Cone, and Wedge Flow Meters at Small Reynolds Numbers." May 1, 2011. https://digitalcommons.usu.edu/etd/869. .. [2] IntraWedge WEDGE FLOW METER Type: IWM. January 2011. http://www.intra-automation.com/download.php?file=pdf/products/technical_information/en/ti_iwm_en.pdf ''' H_D = H/D t0 = 1.0 - 2.0*H_D t1 = acos(t0) t2 = 2.0*(t0) t3 = (H_D - H_D*H_D)**0.5 t4 = t1 - t2*t3 return (1./pi*t4)**0.5 def C_wedge_meter_Miller(D, H): r'''Calculates the coefficient of discharge of an wedge flow meter used for measuring flow rate of fluid, based on the geometry of the differential pressure flow meter. For half-inch lines: .. math:: C = 0.7883 + 0.107(1 - \beta^2) For 1 to 1.5 inch lines: .. math:: C = 0.6143 + 0.718(1 - \beta^2) For 1.5 to 24 inch lines: .. math:: C = 0.5433 + 0.2453(1 - \beta^2) Parameters ---------- D : float Upstream internal pipe diameter, [m] H : float Portion of the diameter of the clear segment of the pipe up to the wedge blocking flow; the height of the pipe up to the wedge, [m] Returns ------- C : float Coefficient of discharge of the wedge flow meter, [-] Notes ----- There is an ISO standard being developed to cover wedge meters as of 2018. Wedge meters can have varying angles; 60 and 90 degree wedge meters have been reported. Tap locations 1 or 2 diameters (upstream and downstream), and 2D upstream/1D downstream have been used. Some wedges are sharp; some are smooth. [2]_ gives some experimental values. Examples -------- >>> C_wedge_meter_Miller(D=0.1524, H=0.3*0.1524) 0.7267069372687651 References ---------- .. [1] Miller, Richard W. Flow Measurement Engineering Handbook. 3rd edition. New York: McGraw-Hill Education, 1996. .. [2] Seshadri, V., S. N. Singh, and S. Bhargava. "Effect of Wedge Shape and Pressure Tap Locations on the Characteristics of a Wedge Flowmeter." IJEMS Vol.01(5), October 1994. ''' beta = diameter_ratio_wedge_meter(D, H) if D <= 0.7*inch: # suggested limit 0.5 inch for this equation C = 0.7883 + 0.107*(1.0 - beta*beta) elif D <= 1.4*inch: # Suggested limit is under 1.5 inches C = 0.6143 + 0.718*(1.0 - beta*beta) else: C = 0.5433 + 0.2453*(1.0 - beta*beta) return C def C_wedge_meter_ISO_5167_6_2017(D, H): r'''Calculates the coefficient of discharge of an wedge flow meter used for measuring flow rate of fluid, based on the geometry of the differential pressure flow meter according to the ISO 5167-6 standard (draft 2017). .. math:: C = 0.77 - 0.09\beta Parameters ---------- D : float Upstream internal pipe diameter, [m] H : float Portion of the diameter of the clear segment of the pipe up to the wedge blocking flow; the height of the pipe up to the wedge, [m] Returns ------- C : float Coefficient of discharge of the wedge flow meter, [-] Notes ----- This standard applies for wedge meters in line sizes between 50 and 600 mm; and height ratios between 0.2 and 0.6. The range of allowable Reynolds numbers is large; between 1E4 and 9E6. The uncertainty of the flow coefficient is approximately 4%. Usually a 10:1 span of flow can be measured accurately. The discharge and entry length of the meters must be at least half a pipe diameter. The wedge angle must be 90 degrees, plus or minus two degrees. The orientation of the wedge meter does not change the accuracy of this model. There should be a straight run of 10 pipe diameters before the wedge meter inlet, and two of the same pipe diameters after it. Examples -------- >>> C_wedge_meter_ISO_5167_6_2017(D=0.1524, H=0.3*0.1524) 0.724792059539853 References ---------- .. [1] ISO/DIS 5167-6 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 6: Wedge Meters. ''' beta = diameter_ratio_wedge_meter(D, H) return 0.77 - 0.09*beta def dP_wedge_meter(D, H, P1, P2): r'''Calculates the non-recoverable pressure drop of a wedge meter based on the measured pressures before and at the wedge meter, and the geometry of the wedge meter according to [1]_. .. math:: \Delta \bar \omega = (1.09 - 0.79\beta)\Delta P Parameters ---------- D : float Upstream internal pipe diameter, [m] H : float Portion of the diameter of the clear segment of the pipe up to the wedge blocking flow; the height of the pipe up to the wedge, [m] P1 : float Static pressure of fluid upstream of wedge meter at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid at the end of the wedge meter pressure tap, [ Pa] Returns ------- dP : float Non-recoverable pressure drop of the wedge meter, [Pa] Notes ----- The recoverable pressure drop should be recovered by 5 pipe diameters downstream of the wedge meter. Examples -------- >>> dP_wedge_meter(1, .7, 1E6, 9.5E5) 20344.849697483587 References ---------- .. [1] ISO/DIS 5167-6 - Measurement of Fluid Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits Running Full -- Part 6: Wedge Meters. ''' dP = P1 - P2 beta = diameter_ratio_wedge_meter(D, H) return (1.09 - 0.79*beta)*dP def C_Reader_Harris_Gallagher_wet_venturi_tube(mg, ml, rhog, rhol, D, Do, H=1): r'''Calculates the coefficient of discharge of the wet gas venturi tube based on the geometry of the tube, mass flow rates of liquid and vapor through the tube, the density of the liquid and gas phases, and an adjustable coefficient `H`. .. math:: C = 1 - 0.0463\exp(-0.05Fr_{gas, th}) \cdot \min\left(1, \sqrt{\frac{X}{0.016}}\right) .. math:: Fr_{gas, th} = \frac{Fr_{\text{gas, densionetric }}}{\beta^{2.5}} .. math:: \phi = \sqrt{1 + C_{Ch} X + X^2} .. math:: C_{Ch} = \left(\frac{\rho_l}{\rho_{1,g}}\right)^n + \left(\frac{\rho_{1, g}}{\rho_{l}}\right)^n .. math:: n = \max\left[0.583 - 0.18\beta^2 - 0.578\exp\left(\frac{-0.8 Fr_{\text{gas, densiometric}}}{H}\right),0.392 - 0.18\beta^2 \right] .. math:: X = \left(\frac{m_l}{m_g}\right) \sqrt{\frac{\rho_{1,g}}{\rho_l}} .. math:: {Fr_{\text{gas, densiometric}}} = \frac{v_{gas}}{\sqrt{gD}} \sqrt{\frac{\rho_{1,g}}{\rho_l - \rho_{1,g}}} = \frac{4m_g}{\rho_{1,g} \pi D^2 \sqrt{gD}} \sqrt{\frac{\rho_{1,g}}{\rho_l - \rho_{1,g}}} Parameters ---------- mg : float Mass flow rate of gas through the venturi tube, [kg/s] ml : float Mass flow rate of liquid through the venturi tube, [kg/s] rhog : float Density of gas at `P1`, [kg/m^3] rhol : float Density of liquid at `P1`, [kg/m^3] D : float Upstream internal pipe diameter, [m] Do : float Diameter of venturi tube at flow conditions, [m] H : float, optional A surface-tension effect coefficient used to adjust for different fluids, (1 for a hydrocarbon liquid, 1.35 for water, 0.79 for water in steam) [-] Returns ------- C : float Coefficient of discharge of the wet gas venturi tube flow meter (includes flow rate of gas ONLY), [-] Notes ----- This model has more error than single phase differential pressure meters. The model was first published in [1]_, and became ISO 11583 later. The limits of this correlation according to [2]_ are as follows: .. math:: 0.4 \le \beta \le 0.75 .. math:: 0 < X \le 0.3 .. math:: Fr_{gas, th} > 3 .. math:: \frac{\rho_g}{\rho_l} > 0.02 .. math:: D \ge 50 \text{ mm} Examples -------- >>> C_Reader_Harris_Gallagher_wet_venturi_tube(mg=5.31926, ml=5.31926/2, ... rhog=50.0, rhol=800., D=.1, Do=.06, H=1) 0.9754210845876333 References ---------- .. [1] Reader-harris, Michael, and Tuv Nel. An Improved Model for Venturi-Tube Over-Reading in Wet Gas, 2009. .. [2] ISO/TR 11583:2012 Measurement of Wet Gas Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits. ''' V = 4*mg/(rhog*pi*D**2) Frg = Froude_densimetric(V, L=D, rho1=rhol, rho2=rhog, heavy=False) beta = Do/D beta2 = beta*beta Fr_gas_th = Frg*beta**-2.5 n = max(0.583 - 0.18*beta2 - 0.578*exp(-0.8*Frg/H), 0.392 - 0.18*beta2) C_Ch = (rhol/rhog)**n + (rhog/rhol)**n X = ml/mg*(rhog/rhol)**0.5 OF = (1.0 + C_Ch*X + X*X)**0.5 C = 1.0 - 0.0463*exp(-0.05*Fr_gas_th)*min(1.0, (X/0.016)**0.5) return C def dP_Reader_Harris_Gallagher_wet_venturi_tube(D, Do, P1, P2, ml, mg, rhol, rhog, H=1): r'''Calculates the non-recoverable pressure drop of a wet gas venturi nozzle based on the pressure drop and the geometry of the venturi nozzle, the mass flow rates of liquid and gas through it, the densities of the vapor and liquid phase, and an adjustable coefficient `H`. .. math:: Y = \frac{\Delta \bar \omega}{\Delta P} - 0.0896 - 0.48\beta^9 .. math:: Y_{max} = 0.61\exp\left[-11\frac{\rho_{1,g}}{\rho_l} - 0.045 \frac{Fr_{gas}}{H}\right] .. math:: \frac{Y}{Y_{max}} = 1 - \exp\left[-35 X^{0.75} \exp \left( \frac{-0.28Fr_{gas}}{H}\right)\right] .. math:: X = \left(\frac{m_l}{m_g}\right) \sqrt{\frac{\rho_{1,g}}{\rho_l}} .. math:: {Fr_{\text{gas, densiometric}}} = \frac{v_{gas}}{\sqrt{gD}} \sqrt{\frac{\rho_{1,g}}{\rho_l - \rho_{1,g}}} = \frac{4m_g}{\rho_{1,g} \pi D^2 \sqrt{gD}} \sqrt{\frac{\rho_{1,g}}{\rho_l - \rho_{1,g}}} Parameters ---------- D : float Upstream internal pipe diameter, [m] Do : float Diameter of venturi tube at flow conditions, [m] P1 : float Static pressure of fluid upstream of venturi tube at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of venturi tube at the cross- section of the pressure tap, [Pa] ml : float Mass flow rate of liquid through the venturi tube, [kg/s] mg : float Mass flow rate of gas through the venturi tube, [kg/s] rhol : float Density of liquid at `P1`, [kg/m^3] rhog : float Density of gas at `P1`, [kg/m^3] H : float, optional A surface-tension effect coefficient used to adjust for different fluids, (1 for a hydrocarbon liquid, 1.35 for water, 0.79 for water in steam) [-] Returns ------- C : float Coefficient of discharge of the wet gas venturi tube flow meter (includes flow rate of gas ONLY), [-] Notes ----- The model was first published in [1]_, and became ISO 11583 later. Examples -------- >>> dP_Reader_Harris_Gallagher_wet_venturi_tube(D=.1, Do=.06, H=1, ... P1=6E6, P2=6E6-5E4, ml=5.31926/2, mg=5.31926, rhog=50.0, rhol=800.,) 16957.43843129572 References ---------- .. [1] Reader-harris, Michael, and Tuv Nel. An Improved Model for Venturi-Tube Over-Reading in Wet Gas, 2009. .. [2] ISO/TR 11583:2012 Measurement of Wet Gas Flow by Means of Pressure Differential Devices Inserted in Circular Cross-Section Conduits. ''' dP = P1 - P2 beta = Do/D X = ml/mg*(rhog/rhol)**0.5 V = 4*mg/(rhog*pi*D**2) Frg = Froude_densimetric(V, L=D, rho1=rhol, rho2=rhog, heavy=False) Y_ratio = 1.0 - exp(-35.0*X**0.75*exp(-0.28*Frg/H)) Y_max = 0.61*exp(-11.0*rhog/rhol - 0.045*Frg/H) Y = Y_max*Y_ratio rhs = -0.0896 - 0.48*beta**9 dw = dP*(Y - rhs) return dw # Venturi tube loss coefficients as a function of Re as_cast_convergent_venturi_Res = [4E5, 6E4, 1E5, 1.5E5] as_cast_convergent_venturi_Cs = [0.957, 0.966, 0.976, 0.982] machined_convergent_venturi_Res = [5E4, 1E5, 2E5, 3E5, 7.5E5, # 5E5 to 1E6 1.5E6, # 1E6 to 2E6 5E6] # 2E6 to 1E8 machined_convergent_venturi_Cs = [0.970, 0.977, 0.992, 0.998, 0.995, 1.000, 1.010] rough_welded_convergent_venturi_Res = [4E4, 6E4, 1E5] rough_welded_convergent_venturi_Cs = [0.96, 0.97, 0.98] as_cast_convergent_entrance_machined_venturi_Res = [1E4, 6E4, 1E5, 1.5E5, 3.5E5, # 2E5 to 5E5 3.2E6] # 5E5 to 3.2E6 as_cast_convergent_entrance_machined_venturi_Cs = [0.963, 0.978, 0.98, 0.987, 0.992, 0.995] CONE_METER_C = 0.82 ROUGH_WELDED_CONVERGENT_VENTURI_TUBE_C = 0.985 MACHINED_CONVERGENT_VENTURI_TUBE_C = 0.995 AS_CAST_VENTURI_TUBE_C = 0.984 beta_simple_meters = set([ISO_5167_ORIFICE, LONG_RADIUS_NOZZLE, ISA_1932_NOZZLE, VENTURI_NOZZLE, AS_CAST_VENTURI_TUBE, MACHINED_CONVERGENT_VENTURI_TUBE, ROUGH_WELDED_CONVERGENT_VENTURI_TUBE]) def differential_pressure_meter_beta(D, D2, meter_type): r'''Calculates the beta ratio of a differential pressure meter. Parameters ---------- D : float Upstream internal pipe diameter, [m] D2 : float Diameter of orifice, or venturi meter orifice, or flow tube orifice, or cone meter end diameter, or wedge meter fluid flow height, [m] meter_type : str One of ('ISO 5167 orifice', 'long radius nozzle', 'ISA 1932 nozzle', 'venuri nozzle', 'as cast convergent venturi tube', 'machined convergent venturi tube', 'rough welded convergent venturi tube', 'cone meter', 'wedge meter'), [-] Returns ------- beta : float Differential pressure meter diameter ratio, [-] Notes ----- Examples -------- >>> differential_pressure_meter_beta(D=0.2575, D2=0.184, ... meter_type='cone meter') 0.6995709873957624 ''' if meter_type in beta_simple_meters: beta = D2/D elif meter_type == CONE_METER: beta = diameter_ratio_cone_meter(D=D, Dc=D2) elif meter_type == WEDGE_METER: beta = diameter_ratio_wedge_meter(D=D, H=D2) return beta def differential_pressure_meter_C_epsilon(D, D2, m, P1, P2, rho, mu, k, meter_type, taps=None): r'''Calculates the discharge coefficient and expansibility of a flow meter given the mass flow rate, the upstream pressure, the second pressure value, and the orifice diameter for a differential pressure flow meter based on the geometry of the meter, measured pressures of the meter, and the density, viscosity, and isentropic exponent of the fluid. Parameters ---------- D : float Upstream internal pipe diameter, [m] D2 : float Diameter of orifice, or venturi meter orifice, or flow tube orifice, or cone meter end diameter, or wedge meter fluid flow height, [m] m : float Mass flow rate of fluid through the flow meter, [kg/s] P1 : float Static pressure of fluid upstream of differential pressure meter at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of differential pressure meter or at the prescribed location (varies by type of meter) [Pa] rho : float Density of fluid at `P1`, [kg/m^3] mu : float Viscosity of fluid at `P1`, [Pa*s] k : float Isentropic exponent of fluid, [-] meter_type : str One of ('ISO 5167 orifice', 'long radius nozzle', 'ISA 1932 nozzle', 'venuri nozzle', 'as cast convergent venturi tube', 'machined convergent venturi tube', 'rough welded convergent venturi tube', 'cone meter', 'wedge meter'), [-] taps : str, optional The orientation of the taps; one of 'corner', 'flange', 'D', or 'D/2'; applies for orifice meters only, [-] Returns ------- C : float Coefficient of discharge of the specified flow meter type at the specified conditions, [-] expansibility : float Expansibility factor (1 for incompressible fluids, less than 1 for real fluids), [-] Notes ----- This function should be called by an outer loop when solving for a variable. Examples -------- >>> differential_pressure_meter_C_epsilon(D=0.07366, D2=0.05, P1=200000.0, ... P2=183000.0, rho=999.1, mu=0.0011, k=1.33, m=7.702338035732168, ... meter_type='ISO 5167 orifice', taps='D') (0.6151252900244296, 0.9711026966676307) ''' if meter_type == ISO_5167_ORIFICE: C = C_Reader_Harris_Gallagher(D, D2, rho, mu, m, taps) epsilon = orifice_expansibility(D, D2, P1, P2, k) elif meter_type == LONG_RADIUS_NOZZLE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = C_long_radius_nozzle(D=D, Do=D2, rho=rho, mu=mu, m=m) elif meter_type == ISA_1932_NOZZLE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = C_ISA_1932_nozzle(D=D, Do=D2, rho=rho, mu=mu, m=m) elif meter_type == VENTURI_NOZZLE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = C_venturi_nozzle(D=D, Do=D2) elif meter_type == AS_CAST_VENTURI_TUBE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = AS_CAST_VENTURI_TUBE_C elif meter_type == MACHINED_CONVERGENT_VENTURI_TUBE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = MACHINED_CONVERGENT_VENTURI_TUBE_C elif meter_type == ROUGH_WELDED_CONVERGENT_VENTURI_TUBE: epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P2, k=k) C = ROUGH_WELDED_CONVERGENT_VENTURI_TUBE_C elif meter_type == CONE_METER: epsilon = cone_meter_expansibility_Stewart(D=D, Dc=D2, P1=P1, P2=P2, k=k) C = CONE_METER_C elif meter_type == WEDGE_METER: beta = diameter_ratio_wedge_meter(D=D, H=D2) epsilon = nozzle_expansibility(D=D, Do=D2, P1=P1, P2=P1, k=k, beta=beta) C = C_wedge_meter_ISO_5167_6_2017(D=D, H=D2) return C, epsilon def differential_pressure_meter_solver(D, rho, mu, k, D2=None, P1=None, P2=None, m=None, meter_type=ISO_5167_ORIFICE, taps=None): r'''Calculates either the mass flow rate, the upstream pressure, the second pressure value, or the orifice diameter for a differential pressure flow meter based on the geometry of the meter, measured pressures of the meter, and the density, viscosity, and isentropic exponent of the fluid. This solves an equation iteratively to obtain the correct flow rate. Parameters ---------- D : float Upstream internal pipe diameter, [m] rho : float Density of fluid at `P1`, [kg/m^3] mu : float Viscosity of fluid at `P1`, [Pa*s] k : float Isentropic exponent of fluid, [-] D2 : float, optional Diameter of orifice, or venturi meter orifice, or flow tube orifice, or cone meter end diameter, or wedge meter fluid flow height, [m] P1 : float, optional Static pressure of fluid upstream of differential pressure meter at the cross-section of the pressure tap, [Pa] P2 : float, optional Static pressure of fluid downstream of differential pressure meter or at the prescribed location (varies by type of meter) [Pa] m : float, optional Mass flow rate of fluid through the flow meter, [kg/s] meter_type : str, optional One of ('ISO 5167 orifice', 'long radius nozzle', 'ISA 1932 nozzle', 'venuri nozzle', 'as cast convergent venturi tube', 'machined convergent venturi tube', 'rough welded convergent venturi tube', 'cone meter', 'wedge meter'), [-] taps : str, optional The orientation of the taps; one of 'corner', 'flange', 'D', or 'D/2'; applies for orifice meters only, [-] Returns ------- ans : float One of `m`, the mass flow rate of the fluid; `P1`, the pressure upstream of the flow meter; `P2`, the second pressure tap's value; and `D2`, the diameter of the measuring device; units of respectively, kg/s, Pa, Pa, or m Notes ----- See the appropriate functions for the documentation for the formulas and references used in each method. The solvers make some assumptions about the range of values answers may be in. Note that the solver for the upstream pressure uses the provided values of density, viscosity and isentropic exponent; whereas these values all depend on pressure (albeit to a small extent). An outer loop should be added with pressure-dependent values calculated in it for maximum accuracy. It would be possible to solve for the upstream pipe diameter, but there is no use for that functionality. Examples -------- >>> differential_pressure_meter_solver(D=0.07366, D2=0.05, P1=200000.0, ... P2=183000.0, rho=999.1, mu=0.0011, k=1.33, ... meter_type='ISO 5167 orifice', taps='D') 7.702338035732167 >>> differential_pressure_meter_solver(D=0.07366, m=7.702338, P1=200000.0, ... P2=183000.0, rho=999.1, mu=0.0011, k=1.33, ... meter_type='ISO 5167 orifice', taps='D') 0.04999999990831885 ''' if m is None and None not in (D, D2, P1, P2): def to_solve(m_D): m = m_D*D C, epsilon = differential_pressure_meter_C_epsilon(D, D2, m, P1, P2, rho, mu, k, meter_type, taps=taps) m_calc = flow_meter_discharge(D=D, Do=D2, P1=P1, P2=P2, rho=rho, C=C, expansibility=epsilon) err = m - m_calc return err # Diameter to mass flow ratio m_D_guess = 40 if rho < 100.0: m_D_guess *= 1e-2 return secant(to_solve, m_D_guess)*D elif D2 is None and None not in (D, m, P1, P2): def to_solve(D2): C, epsilon = differential_pressure_meter_C_epsilon(D, D2, m, P1, P2, rho, mu, k, meter_type, taps=taps) m_calc = flow_meter_discharge(D=D, Do=D2, P1=P1, P2=P2, rho=rho, C=C, expansibility=epsilon) return m - m_calc return brenth(to_solve, D*(1-1E-9), D*5E-3) elif P2 is None and None not in (D, D2, m, P1): def to_solve(P2): C, epsilon = differential_pressure_meter_C_epsilon(D, D2, m, P1, P2, rho, mu, k, meter_type, taps=taps) m_calc = flow_meter_discharge(D=D, Do=D2, P1=P1, P2=P2, rho=rho, C=C, expansibility=epsilon) return m - m_calc return brenth(to_solve, P1*(1-1E-9), P1*0.5) elif P1 is None and None not in (D, D2, m, P2): def to_solve(P1): C, epsilon = differential_pressure_meter_C_epsilon(D, D2, m, P1, P2, rho, mu, k, meter_type, taps=taps) m_calc = flow_meter_discharge(D=D, Do=D2, P1=P1, P2=P2, rho=rho, C=C, expansibility=epsilon) return m - m_calc return brenth(to_solve, P2*(1+1E-9), P2*1.4) else: raise ValueError('Solver is capable of solving for one of P2, D2, or m only.') def differential_pressure_meter_dP(D, D2, P1, P2, C=None, meter_type=ISO_5167_ORIFICE): r'''Calculates either the non-recoverable pressure drop of a differential pressure flow meter based on the geometry of the meter, measured pressures of the meter, and for most models the meter discharge coefficient. Parameters ---------- D : float Upstream internal pipe diameter, [m] D2 : float Diameter of orifice, or venturi meter orifice, or flow tube orifice, or cone meter end diameter, or wedge meter fluid flow height, [m] P1 : float Static pressure of fluid upstream of differential pressure meter at the cross-section of the pressure tap, [Pa] P2 : float Static pressure of fluid downstream of differential pressure meter or at the prescribed location (varies by type of meter) [Pa] C : float, optional Coefficient of discharge (used only in orifice plates, and venturi nozzles), [-] meter_type : str, optional One of ('ISO 5167 orifice', 'long radius nozzle', 'ISA 1932 nozzle', 'as cast convergent venturi tube', 'machined convergent venturi tube', 'rough welded convergent venturi tube', 'cone meter', 'cone meter'), [-] Returns ------- dP : float Non-recoverable pressure drop of the differential pressure flow meter, [Pa] Notes ----- See the appropriate functions for the documentation for the formulas and references used in each method. Wedge meters, and venturi nozzles do not have standard formulas available for pressure drop computation. Examples -------- >>> differential_pressure_meter_dP(D=0.07366, D2=0.05, P1=200000.0, ... P2=183000.0, meter_type='as cast convergent venturi tube') 1788.5717754177406 ''' if meter_type == ISO_5167_ORIFICE: dP = dP_orifice(D=D, Do=D2, P1=P1, P2=P2, C=C) elif meter_type == LONG_RADIUS_NOZZLE: dP = dP_orifice(D=D, Do=D2, P1=P1, P2=P2, C=C) elif meter_type == ISA_1932_NOZZLE: dP = dP_orifice(D=D, Do=D2, P1=P1, P2=P2, C=C) elif meter_type == VENTURI_NOZZLE: raise Exception(NotImplemented) elif meter_type == AS_CAST_VENTURI_TUBE: dP = dP_venturi_tube(D=D, Do=D2, P1=P1, P2=P2) elif meter_type == MACHINED_CONVERGENT_VENTURI_TUBE: dP = dP_venturi_tube(D=D, Do=D2, P1=P1, P2=P2) elif meter_type == ROUGH_WELDED_CONVERGENT_VENTURI_TUBE: dP = dP_venturi_tube(D=D, Do=D2, P1=P1, P2=P2) elif meter_type == CONE_METER: dP = dP_cone_meter(D=D, Dc=D2, P1=P1, P2=P2) elif meter_type == WEDGE_METER: dP = dP_wedge_meter(D=D, H=D2, P1=P1, P2=P2) return dP fluids-0.1.78/fluids/friction.py0000644000175000017500000045134613632560624015332 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log, log10, exp, cos, sin, tan, pi, radians, isinf from fluids.constants import inch, g from fluids.numerics import newton, lambertw from fluids.core import Dean, Reynolds __all__ = ['friction_factor', 'friction_factor_curved', 'Colebrook', 'Clamond', 'friction_laminar', 'one_phase_dP', 'one_phase_dP_gravitational', 'one_phase_dP_dz_acceleration', 'one_phase_dP_acceleration', 'transmission_factor', 'material_roughness', 'nearest_material_roughness', 'roughness_Farshad', '_Farshad_roughness', '_roughness', 'HHR_roughness', 'oregon_smooth_data', 'Moody', 'Alshul_1952', 'Wood_1966', 'Churchill_1973', 'Eck_1973', 'Jain_1976', 'Swamee_Jain_1976', 'Churchill_1977', 'Chen_1979', 'Round_1980', 'Shacham_1980', 'Barr_1981', 'Zigrang_Sylvester_1', 'Zigrang_Sylvester_2', 'Haaland', 'Serghides_1', 'Serghides_2', 'Tsal_1989', 'Manadilli_1997', 'Romeo_2002', 'Sonnad_Goudar_2006', 'Rao_Kumar_2007', 'Buzzelli_2008', 'Avci_Karagoz_2009', 'Papaevangelo_2010', 'Brkic_2011_1', 'Brkic_2011_2', 'Fang_2011', 'Blasius', 'von_Karman', 'Prandtl_von_Karman_Nikuradse', 'ft_Crane', 'helical_laminar_fd_White', 'helical_laminar_fd_Mori_Nakayama', 'helical_laminar_fd_Schmidt', 'helical_turbulent_fd_Schmidt', 'helical_turbulent_fd_Mori_Nakayama', 'helical_turbulent_fd_Prasad', 'helical_turbulent_fd_Czop', 'helical_turbulent_fd_Guo', 'helical_turbulent_fd_Ju', 'helical_turbulent_fd_Srinivasan', 'helical_turbulent_fd_Mandal_Nigam', 'helical_transition_Re_Seth_Stahel', 'helical_transition_Re_Ito', 'helical_transition_Re_Kubair_Kuloor', 'helical_transition_Re_Kutateladze_Borishanskii', 'helical_transition_Re_Schmidt', 'helical_transition_Re_Srinivasan', 'LAMINAR_TRANSITION_PIPE', 'oregon_smooth_data', 'friction_plate_Martin_1999', 'friction_plate_Martin_VDI', 'friction_plate_Kumar', 'friction_plate_Muley_Manglik'] fuzzy_match_fun = None def fuzzy_match(name, strings): global fuzzy_match_fun if fuzzy_match_fun is not None: return fuzzy_match_fun(name, strings) try: from fuzzywuzzy import process, fuzz fuzzy_match_fun = lambda name, strings: process.extractOne(name, strings, scorer=fuzz.partial_ratio)[0] except ImportError: # pragma: no cover import difflib fuzzy_match_fun = lambda name, strings: difflib.get_close_matches(name, strings, n=1, cutoff=0)[0] return fuzzy_match_fun(name, strings) LAMINAR_TRANSITION_PIPE = 2040. '''Believed to be the most accurate result to date. Accurate to +/- 10. Avila, Kerstin, David Moxey, Alberto de Lozar, Marc Avila, Dwight Barkley, and Björn Hof. "The Onset of Turbulence in Pipe Flow." Science 333, no. 6039 (July 8, 2011): 192-196. doi:10.1126/science.1203223. ''' oregon_Res = [11.21, 20.22, 29.28, 43.19, 57.73, 64.58, 86.05, 113.3, 135.3, 157.5, 179.4, 206.4, 228, 270.9, 315.2, 358.9, 402.9, 450.2, 522.5, 583.1, 671.8, 789.8, 891, 1013, 1197, 1300, 1390, 1669, 1994, 2227, 2554, 2868, 2903, 2926, 2955, 2991, 2997, 3047, 3080, 3264, 3980, 4835, 5959, 8162, 10900, 13650, 18990, 29430, 40850, 59220, 84760, 120000, 176000, 237700, 298200, 467800, 587500, 824200, 1050000] oregon_fd_smooth = [5.537, 3.492, 2.329, 1.523, 1.173, 0.9863, 0.7826, 0.5709, 0.4815, 0.4182, 0.3655, 0.3237, 0.2884, 0.2433, 0.2077, 0.1834, 0.1656, 0.1475, 0.1245, 0.1126, 0.09917, 0.08501, 0.07722, 0.06707, 0.0588, 0.05328, 0.04815, 0.04304, 0.03739, 0.03405, 0.03091, 0.02804, 0.03182, 0.03846, 0.03363, 0.04124, 0.035, 0.03875, 0.04285, 0.0426, 0.03995, 0.03797, 0.0361, 0.03364, 0.03088, 0.02903, 0.0267, 0.02386, 0.02086, 0.02, 0.01805, 0.01686, 0.01594, 0.01511, 0.01462, 0.01365, 0.01313, 0.01244, 0.01198] '''Holds a tuple of experimental results from the smooth pipe flow experiments presented in McKEON, B. J., C. J. SWANSON, M. V. ZAGAROLA, R. J. DONNELLY, and A. J. SMITS. "Friction Factors for Smooth Pipe Flow." Journal of Fluid Mechanics 511 (July 1, 2004): 41-44. doi:10.1017/S0022112004009796. ''' oregon_smooth_data = (oregon_Res, oregon_fd_smooth) def friction_laminar(Re): r'''Calculates Darcy friction factor for laminar flow, as shown in [1]_ or anywhere else. .. math:: f_d = \frac{64}{Re} Parameters ---------- Re : float Reynolds number, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- For round pipes, this valid for :math:`Re \approx< 2040`. Results in [2]_ show that this theoretical solution calculates too low of friction factors from Re = 10 and up, with an average deviation of 4%. Examples -------- >>> friction_laminar(128) 0.5 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. .. [2] McKEON, B. J., C. J. SWANSON, M. V. ZAGAROLA, R. J. DONNELLY, and A. J. SMITS. "Friction Factors for Smooth Pipe Flow." Journal of Fluid Mechanics 511 (July 1, 2004): 41-44. doi:10.1017/S0022112004009796. ''' return 64./Re def Blasius(Re): r'''Calculates Darcy friction factor according to the Blasius formulation, originally presented in [1]_ and described more recently in [2]_. .. math:: f_d=\frac{0.3164}{Re^{0.25}} Parameters ---------- Re : float Reynolds number, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Developed for 3000 < Re < 200000. Examples -------- >>> Blasius(10000) 0.03164 References ---------- .. [1] Blasius, H."Das Aehnlichkeitsgesetz bei Reibungsvorgängen in Flüssigkeiten." In Mitteilungen über Forschungsarbeiten auf dem Gebiete des Ingenieurwesens, edited by Verein deutscher Ingenieure, 1-41. Berlin, Heidelberg: Springer Berlin Heidelberg, 1913. http://rd.springer.com/chapter/10.1007/978-3-662-02239-9_1. .. [2] Hager, W. H. "Blasius: A Life in Research and Education." In Experiments in Fluids, 566–571, 2003. ''' return 0.3164*Re**-0.25 def Colebrook(Re, eD, tol=None): r'''Calculates Darcy friction factor using the Colebrook equation originally published in [1]_. Normally, this function uses an exact solution to the Colebrook equation, derived with a CAS. A numerical can also be used. .. math:: \frac{1}{\sqrt{f}}=-2\log_{10}\left(\frac{\epsilon/D}{3.7} +\frac{2.51}{\text{Re}\sqrt{f}}\right) Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] tol : float, optional None for analytical solution (default); user specified value to use the numerical solution; 0 to use `mpmath` and provide a bit-correct exact solution to the maximum fidelity of the system's `float`; -1 to apply the Clamond solution where appropriate for greater speed (Re > 10), [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- The solution is as follows: .. math:: f_d = \frac{\ln(10)^2\cdot {3.7}^2\cdot{2.51}^2} {\left(\log(10)\epsilon/D\cdot\text{Re} - 2\cdot 2.51\cdot 3.7\cdot \text{lambertW}\left[\log(\sqrt{10})\sqrt{ 10^{\left(\frac{\epsilon \text{Re}}{2.51\cdot 3.7D}\right)} \cdot \text{Re}^2/{2.51}^2}\right]\right)} Some effort to optimize this function has been made. The `lambertw` function from scipy is used, and is defined to solve the specific function: .. math:: y = x\exp(x) \text{lambertW}(y) = x This is relatively slow despite its explicit form as it uses the mathematical function `lambertw` which is expensive to compute. For high relative roughness and Reynolds numbers, an OverflowError can be encountered in the solution of this equation. The numerical solution is then used. The numerical solution provides values which are generally within an rtol of 1E-12 to the analytical solution; however, due to the different rounding order, it is possible for them to be as different as rtol 1E-5 or higher. The 1E-5 accuracy regime has been tested and confirmed numerically for hundreds of thousand of points within the region 1E-12 < Re < 1E12 and 0 < eD < 0.1. The numerical solution attempts the secant method using `scipy`'s `newton` solver, and in the event of nonconvergence, attempts the `fsolve` solver as well. An initial guess is provided via the `Clamond` function. The numerical and analytical solution take similar amounts of time; the `mpmath` solution used when `tol=0` is approximately 45 times slower. This function takes approximately 8 us normally. Examples -------- >>> Colebrook(1E5, 1E-4) 0.018513866077471648 References ---------- .. [1] Colebrook, C F."Turbulent Flow in Pipes, with Particular Reference to the Transition Region Between the Smooth and Rough Pipe Laws." Journal of the ICE 11, no. 4 (February 1, 1939): 133-156. doi:10.1680/ijoti.1939.13150. ''' if tol == -1: if Re > 10.0: return Clamond(Re, eD) else: tol = None elif tol == 0: # from sympy import LambertW, Rational, log, sqrt # Re = Rational(Re) # eD_Re = Rational(eD)*Re # sub = 1/Rational('6.3001')*10**(1/Rational('9.287')*eD_Re)*Re*Re # lambert_term = LambertW(log(sqrt(10))*sqrt(sub)) # den = log(10)*eD_Re - 18.574*lambert_term # return float(log(10)**2*Rational('3.7')**2*Rational('2.51')**2/(den*den)) try: from mpmath import mpf, log, sqrt, mp from mpmath import lambertw as mp_lambertw except: raise ImportError('For exact solutions, the `mpmath` library is ' 'required') mp.dps = 50 Re = mpf(Re) eD_Re = mpf(eD)*Re sub = 1/mpf('6.3001')*10**(1/mpf('9.287')*eD_Re)*Re*Re lambert_term = mp_lambertw(log(sqrt(10))*sqrt(sub)) den = log(10)*eD_Re - 18.574*lambert_term return float(log(10)**2*mpf('3.7')**2*mpf('2.51')**2/(den*den)) if tol is None: try: eD_Re = eD*Re # 9.287 = 2.51*3.7; 6.3001 = 2.51**2 # xn = 1/6.3001 = 0.15872763924382155 # 1/9.287 = 0.10767739851405189 sub = 0.15872763924382155*10.0**(0.10767739851405189*eD_Re)*Re*Re if isinf(sub): # Can't continue, need numerical approach raise OverflowError # 1.15129... = log(sqrt(10)) lambert_term = float(lambertw(1.151292546497022950546806896454654633998870849609375*sub**0.5).real) # log(10) = 2.302585...; 2*2.51*3.7 = 18.574 # 457.28... = log(10)**2*3.7**2*2.51**2 den = 2.30258509299404590109361379290930926799774169921875*eD_Re - 18.574*lambert_term return 457.28006463294371997108100913465023040771484375/(den*den) except OverflowError: pass # Either user-specified tolerance, or an error in the analytical solution if tol is None: tol = 1e-12 try: fd_guess = Clamond(Re, eD) except ValueError: fd_guess = Blasius(Re) def err(x): # Convert the newton search domain to always positive f_12_inv = abs(x)**-0.5 # 0.27027027027027023 = 1/3.7 return f_12_inv + 2.0*log10(eD*0.27027027027027023 + 2.51/Re*f_12_inv) try: fd = abs(newton(err, fd_guess, tol=tol)) if fd > 1E10: raise ValueError return fd except: from scipy.optimize import fsolve return abs(float(fsolve(err, fd_guess, xtol=tol))) def Clamond(Re, eD, fast=False): r'''Calculates Darcy friction factor using a solution accurate to almost machine precision. Recommended very strongly. For details of the algorithm, see [1]_. Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] fast : bool, optional If true, performs only one iteration, which gives roughly half the number of decimals of accuracy, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- This is a highly optimized function, 4 times faster than the solution using the LambertW function, and faster than many other approximations which are much less accurate. The code used here is only slightly modified than that in [1]_, for further performance improvements. For 10 < Re < 1E12, and 0 < eD < 0.01, this equation has been confirmed numerically to provide a solution to the Colebrook equation accurate to an rtol of 1E-9 or better - the same level of accuracy as the analytical solution to the Colebrook equation due to floating point precision. Comparing this to the numerical solution of the Colebrook equation, identical values are given accurate to an rtol of 1E-9 for 10 < Re < 1E100, and 0 < eD < 1 and beyond. However, for values of Re under 10, different answers from the `Colebrook` equation appear and then quickly a ValueError is raised. Examples -------- >>> Clamond(1E5, 1E-4) 0.01851386607747165 References ---------- .. [1] Clamond, Didier. "Efficient Resolution of the Colebrook Equation." Industrial & Engineering Chemistry Research 48, no. 7 (April 1, 2009): 3665-71. doi:10.1021/ie801626g. http://math.unice.fr/%7Edidierc/DidPublis/ICR_2009.pdf ''' X1 = eD*Re*0.1239681863354175460160858261654858382699 # (log(10)/18.574).evalf(40) X2 = log(Re) - 0.7793974884556819406441139701653776731705 # log(log(10)/5.02).evalf(40) F = X2 - 0.2 X1F = X1 + F X1F1 = 1. + X1F E = (log(X1F) - 0.2)/(X1F1) F = F - (X1F1 + 0.5*E)*E*(X1F)/(X1F1 + E*(1. + 1.0/3.0*E)) if not fast: X1F = X1 + F X1F1 = 1. + X1F E = (log(X1F) + F - X2)/(X1F1) b = (X1F1 + E*(1. + 1.0/3.0*E)) F = b/(b*F - ((X1F1 + 0.5*E)*E*(X1F))) return 1.325474527619599502640416597148504422899*(F*F) # ((0.5*log(10))**2).evalf(40) return 1.325474527619599502640416597148504422899/(F*F) # ((0.5*log(10))**2).evalf(40) def Moody(Re, eD): r'''Calculates Darcy friction factor using the method in Moody (1947) as shown in [1]_ and originally in [2]_. .. math:: f_f = 1.375\times 10^{-3}\left[1+\left(2\times10^4\frac{\epsilon}{D} + \frac{10^6}{Re}\right)^{1/3}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is Re >= 4E3 and Re <= 1E8; eD >= 0 < 0.01. Examples -------- >>> Moody(1E5, 1E-4) 0.01809185666808665 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Moody, L.F.: An approximate formula for pipe friction factors. Trans. Am. Soc. Mech. Eng. 69,1005-1006 (1947) ''' return 4*(1.375E-3*(1 + (2E4*eD + 1E6/Re)**(1/3.))) def Alshul_1952(Re, eD): r'''Calculates Darcy friction factor using the method in Alshul (1952) as shown in [1]_. .. math:: f_d = 0.11\left( \frac{68}{Re} + \frac{\epsilon}{D}\right)^{0.25} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Alshul_1952(1E5, 1E-4) 0.018382997825686878 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 ''' return 0.11*(68/Re + eD)**0.25 def Wood_1966(Re, eD): r'''Calculates Darcy friction factor using the method in Wood (1966) [2]_ as shown in [1]_. .. math:: f_d = 0.094(\frac{\epsilon}{D})^{0.225} + 0.53(\frac{\epsilon}{D}) + 88(\frac{\epsilon}{D})^{0.4}Re^{-A_1} .. math:: A_1 = 1.62(\frac{\epsilon}{D})^{0.134} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 5E7; 1E-5 <= eD <= 4E-2. Examples -------- >>> Wood_1966(1E5, 1E-4) 0.021587570560090762 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Wood, D.J.: An Explicit Friction Factor Relationship, vol. 60. Civil Engineering American Society of Civil Engineers (1966) ''' A1 = 1.62*eD**0.134 return 0.094*eD**0.225 + 0.53*eD +88*eD**0.4*Re**-A1 def Churchill_1973(Re, eD): r'''Calculates Darcy friction factor using the method in Churchill (1973) [2]_ as shown in [1]_ .. math:: \frac{1}{\sqrt{f_d}} = -2\log\left[\frac{\epsilon}{3.7D} + (\frac{7}{Re})^{0.9}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Churchill_1973(1E5, 1E-4) 0.01846708694482294 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Churchill, Stuart W. "Empirical Expressions for the Shear Stress in Turbulent Flow in Commercial Pipe." AIChE Journal 19, no. 2 (March 1, 1973): 375-76. doi:10.1002/aic.690190228. ''' return (-2*log10(eD/3.7 + (7./Re)**0.9))**-2 def Eck_1973(Re, eD): r'''Calculates Darcy friction factor using the method in Eck (1973) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = -2\log\left[\frac{\epsilon}{3.715D} + \frac{15}{Re}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Eck_1973(1E5, 1E-4) 0.01775666973488564 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Eck, B.: Technische Stromungslehre. Springer, New York (1973) ''' return (-2*log10(eD/3.715 + 15/Re))**-2 def Jain_1976(Re, eD): r'''Calculates Darcy friction factor using the method in Jain (1976) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = 2.28 - 4\log\left[ \frac{\epsilon}{D} + \left(\frac{29.843}{Re}\right)^{0.9}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 5E3 <= Re <= 1E7; 4E-5 <= eD <= 5E-2. Examples -------- >>> Jain_1976(1E5, 1E-4) 0.018436560312693327 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Jain, Akalank K."Accurate Explicit Equation for Friction Factor." Journal of the Hydraulics Division 102, no. 5 (May 1976): 674-77. ''' ff = (2.28-4*log10(eD+(29.843/Re)**0.9))**-2 return 4*ff def Swamee_Jain_1976(Re, eD): r'''Calculates Darcy friction factor using the method in Swamee and Jain (1976) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -4\log\left[\left(\frac{6.97}{Re}\right)^{0.9} + (\frac{\epsilon}{3.7D})\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 5E3 <= Re <= 1E8; 1E-6 <= eD <= 5E-2. Examples -------- >>> Swamee_Jain_1976(1E5, 1E-4) 0.018452424431901808 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Swamee, Prabhata K., and Akalank K. Jain."Explicit Equations for Pipe-Flow Problems." Journal of the Hydraulics Division 102, no. 5 (May 1976): 657-664. ''' ff = (-4*log10((6.97/Re)**0.9 + eD/3.7))**-2 return 4*ff def Churchill_1977(Re, eD): r'''Calculates Darcy friction factor using the method in Churchill and (1977) [2]_ as shown in [1]_. .. math:: f_f = 2\left[(\frac{8}{Re})^{12} + (A_2 + A_3)^{-1.5}\right]^{1/12} .. math:: A_2 = \left\{2.457\ln\left[(\frac{7}{Re})^{0.9} + 0.27\frac{\epsilon}{D}\right]\right\}^{16} .. math:: A_3 = \left( \frac{37530}{Re}\right)^{16} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Churchill_1977(1E5, 1E-4) 0.018462624566280075 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Churchill, S.W.: Friction factor equation spans all fluid flow regimes. Chem. Eng. J. 91, 91-92 (1977) ''' A3 = (37530/Re)**16 A2 = (2.457*log((7./Re)**0.9 + 0.27*eD))**16 ff = 2*((8/Re)**12 + 1/(A2+A3)**1.5)**(1/12.) return 4*ff def Chen_1979(Re, eD): r'''Calculates Darcy friction factor using the method in Chen (1979) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -4\log\left[\frac{\epsilon}{3.7065D} -\frac{5.0452}{Re}\log A_4\right] .. math:: A_4 = \frac{(\epsilon/D)^{1.1098}}{2.8257} + \left(\frac{7.149}{Re}\right)^{0.8981} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 4E8; 1E-7 <= eD <= 5E-2. Examples -------- >>> Chen_1979(1E5, 1E-4) 0.018552817507472126 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Chen, Ning Hsing. "An Explicit Equation for Friction Factor in Pipe." Industrial & Engineering Chemistry Fundamentals 18, no. 3 (August 1, 1979): 296-97. doi:10.1021/i160071a019. ''' A4 = eD**1.1098/2.8257 + (7.149/Re)**0.8981 ff = (-4*log10(eD/3.7065 - 5.0452/Re*log10(A4)))**-2 return 4*ff def Round_1980(Re, eD): r'''Calculates Darcy friction factor using the method in Round (1980) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -3.6\log\left[\frac{Re}{0.135Re \frac{\epsilon}{D}+6.5}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 4E8; 0 <= eD <= 5E-2. Examples -------- >>> Round_1980(1E5, 1E-4) 0.01831475391244354 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Round, G. F."An Explicit Approximation for the Friction Factor-Reynolds Number Relation for Rough and Smooth Pipes." The Canadian Journal of Chemical Engineering 58, no. 1 (February 1, 1980): 122-23. doi:10.1002/cjce.5450580119. ''' ff = (-3.6*log10(Re/(0.135*Re*eD+6.5)))**-2 return 4*ff def Shacham_1980(Re, eD): r'''Calculates Darcy friction factor using the method in Shacham (1980) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -4\log\left[\frac{\epsilon}{3.7D} - \frac{5.02}{Re} \log\left(\frac{\epsilon}{3.7D} + \frac{14.5}{Re}\right)\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 4E8 Examples -------- >>> Shacham_1980(1E5, 1E-4) 0.01860641215097828 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Shacham, M. "Comments on: 'An Explicit Equation for Friction Factor in Pipe.'" Industrial & Engineering Chemistry Fundamentals 19, no. 2 (May 1, 1980): 228-228. doi:10.1021/i160074a019. ''' ff = (-4*log10(eD/3.7 - 5.02/Re*log10(eD/3.7 + 14.5/Re)))**-2 return 4*ff def Barr_1981(Re, eD): r'''Calculates Darcy friction factor using the method in Barr (1981) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = -2\log\left\{\frac{\epsilon}{3.7D} + \frac{4.518\log(\frac{Re}{7})}{Re\left[1+\frac{Re^{0.52}}{29} \left(\frac{\epsilon}{D}\right)^{0.7}\right]}\right\} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Barr_1981(1E5, 1E-4) 0.01849836032779929 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Barr, Dih, and Colebrook White."Technical Note. Solutions Of The Colebrook-White Function For Resistance To Uniform Turbulent Flow." ICE Proceedings 71, no. 2 (January 6, 1981): 529-35. doi:10.1680/iicep.1981.1895. ''' fd = (-2*log10(eD/3.7 + 4.518*log10(Re/7.)/(Re*(1+Re**0.52/29*eD**0.7))))**-2 return fd def Zigrang_Sylvester_1(Re, eD): r'''Calculates Darcy friction factor using the method in Zigrang and Sylvester (1982) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -4\log\left[\frac{\epsilon}{3.7D} - \frac{5.02}{Re}\log A_5\right] A_5 = \frac{\epsilon}{3.7D} + \frac{13}{Re} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 1E8; 4E-5 <= eD <= 5E-2. Examples -------- >>> Zigrang_Sylvester_1(1E5, 1E-4) 0.018646892425980794 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Zigrang, D. J., and N. D. Sylvester."Explicit Approximations to the Solution of Colebrook's Friction Factor Equation." AIChE Journal 28, no. 3 (May 1, 1982): 514-15. doi:10.1002/aic.690280323. ''' A5 = eD/3.7 + 13/Re ff = (-4*log10(eD/3.7 - 5.02/Re*log10(A5)))**-2 return 4*ff def Zigrang_Sylvester_2(Re, eD): r'''Calculates Darcy friction factor using the second method in Zigrang and Sylvester (1982) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_f}} = -4\log\left[\frac{\epsilon}{3.7D} - \frac{5.02}{Re}\log A_6\right] .. math:: A_6 = \frac{\epsilon}{3.7D} - \frac{5.02}{Re}\log A_5 .. math:: A_5 = \frac{\epsilon}{3.7D} + \frac{13}{Re} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 1E8; 4E-5 <= eD <= 5E-2 Examples -------- >>> Zigrang_Sylvester_2(1E5, 1E-4) 0.01850021312358548 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Zigrang, D. J., and N. D. Sylvester."Explicit Approximations to the Solution of Colebrook's Friction Factor Equation." AIChE Journal 28, no. 3 (May 1, 1982): 514-15. doi:10.1002/aic.690280323. ''' A5 = eD/3.7 + 13/Re A6 = eD/3.7 - 5.02/Re*log10(A5) ff = (-4*log10(eD/3.7 - 5.02/Re*log10(A6)))**-2 return 4*ff def Haaland(Re, eD): r'''Calculates Darcy friction factor using the method in Haaland (1983) [2]_ as shown in [1]_. .. math:: f_f = \left(-1.8\log_{10}\left[\left(\frac{\epsilon/D}{3.7} \right)^{1.11} + \frac{6.9}{Re}\right]\right)^{-2} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 1E8; 1E-6 <= eD <= 5E-2 Examples -------- >>> Haaland(1E5, 1E-4) 0.018265053014793857 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Haaland, S. E."Simple and Explicit Formulas for the Friction Factor in Turbulent Pipe Flow." Journal of Fluids Engineering 105, no. 1 (March 1, 1983): 89-90. doi:10.1115/1.3240948. ''' ff = (-3.6*log10(6.9/Re +(eD/3.7)**1.11))**-2 return 4*ff def Serghides_1(Re, eD): r'''Calculates Darcy friction factor using the method in Serghides (1984) [2]_ as shown in [1]_. .. math:: f=\left[A-\frac{(B-A)^2}{C-2B+A}\right]^{-2} .. math:: A=-2\log_{10}\left[\frac{\epsilon/D}{3.7}+\frac{12}{Re}\right] .. math:: B=-2\log_{10}\left[\frac{\epsilon/D}{3.7}+\frac{2.51A}{Re}\right] .. math:: C=-2\log_{10}\left[\frac{\epsilon/D}{3.7}+\frac{2.51B}{Re}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Serghides_1(1E5, 1E-4) 0.01851358983180063 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Serghides T.K (1984)."Estimate friction factor accurately" Chemical Engineering, Vol. 91(5), pp. 63-64. ''' A = -2*log10(eD/3.7 + 12/Re) B = -2*log10(eD/3.7 + 2.51*A/Re) C = -2*log10(eD/3.7 + 2.51*B/Re) return (A - (B-A)**2/(C-2*B + A))**-2 def Serghides_2(Re, eD): r'''Calculates Darcy friction factor using the method in Serghides (1984) [2]_ as shown in [1]_. .. math:: f_d = \left[ 4.781 - \frac{(A - 4.781)^2} {B-2A+4.781}\right]^{-2} .. math:: A=-2\log_{10}\left[\frac{\epsilon/D}{3.7}+\frac{12}{Re}\right] .. math:: B=-2\log_{10}\left[\frac{\epsilon/D}{3.7}+\frac{2.51A}{Re}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Serghides_2(1E5, 1E-4) 0.018486377560664482 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Serghides T.K (1984)."Estimate friction factor accurately" Chemical Engineering, Vol. 91(5), pp. 63-64. ''' A = -2*log10(eD/3.7 + 12/Re) B = -2*log10(eD/3.7 + 2.51*A/Re) return (4.781 - (A - 4.781)**2/(B - 2*A + 4.781))**-2 def Tsal_1989(Re, eD): r'''Calculates Darcy friction factor using the method in Tsal (1989) [2]_ as shown in [1]_. .. math:: A = 0.11(\frac{68}{Re} + \frac{\epsilon}{D})^{0.25} if :math:`A >= 0.018` then `fd = A`; if :math:`A < 0.018` then :math:`fd = 0.0028 + 0.85 A`. Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 1E8; 0 <= eD <= 5E-2 Examples -------- >>> Tsal_1989(1E5, 1E-4) 0.018382997825686878 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Tsal, R.J.: Altshul-Tsal friction factor equation. Heat-Piping-Air Cond. 8, 30-45 (1989) ''' A = 0.11*(68/Re + eD)**0.25 if A >= 0.018: return A else: return 0.0028 + 0.85*A def Manadilli_1997(Re, eD): r'''Calculates Darcy friction factor using the method in Manadilli (1997) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = -2\log\left[\frac{\epsilon}{3.7D} + \frac{95}{Re^{0.983}} - \frac{96.82}{Re}\right] Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 5.245E3 <= Re <= 1E8; 0 <= eD <= 5E-2 Examples -------- >>> Manadilli_1997(1E5, 1E-4) 0.01856964649724108 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Manadilli, G.: Replace implicit equations with signomial functions. Chem. Eng. 104, 129 (1997) ''' return (-2*log10(eD/3.7 + 95/Re**0.983 - 96.82/Re))**-2 def Romeo_2002(Re, eD): r'''Calculates Darcy friction factor using the method in Romeo (2002) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = -2\log\left\{\frac{\epsilon}{3.7065D}\times \frac{5.0272}{Re}\times\log\left[\frac{\epsilon}{3.827D} - \frac{4.567}{Re}\times\log\left(\frac{\epsilon}{7.7918D}^{0.9924} + \left(\frac{5.3326}{208.815+Re}\right)^{0.9345}\right)\right]\right\} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 3E3 <= Re <= 1.5E8; 0 <= eD <= 5E-2 Examples -------- >>> Romeo_2002(1E5, 1E-4) 0.018530291219676177 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Romeo, Eva, Carlos Royo, and Antonio Monzon."Improved Explicit Equations for Estimation of the Friction Factor in Rough and Smooth Pipes." Chemical Engineering Journal 86, no. 3 (April 28, 2002): 369-74. doi:10.1016/S1385-8947(01)00254-6. ''' fd = (-2*log10(eD/3.7065-5.0272/Re*log10(eD/3.827-4.567/Re*log10((eD/7.7918)**0.9924+(5.3326/(208.815+Re))**0.9345))))**-2 return fd def Sonnad_Goudar_2006(Re, eD): r'''Calculates Darcy friction factor using the method in Sonnad and Goudar (2006) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = 0.8686\ln\left(\frac{0.4587Re}{S^{S/(S+1)}}\right) .. math:: S = 0.1240\times\frac{\epsilon}{D}\times Re + \ln(0.4587Re) Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 4E3 <= Re <= 1E8; 1E-6 <= eD <= 5E-2 Examples -------- >>> Sonnad_Goudar_2006(1E5, 1E-4) 0.0185971269898162 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Travis, Quentin B., and Larry W. Mays."Relationship between Hazen-William and Colebrook-White Roughness Values." Journal of Hydraulic Engineering 133, no. 11 (November 2007): 1270-73. doi:10.1061/(ASCE)0733-9429(2007)133:11(1270). ''' S = 0.124*eD*Re + log(0.4587*Re) return (.8686*log(.4587*Re/S**(S/(S+1))))**-2 def Rao_Kumar_2007(Re, eD): r'''Calculates Darcy friction factor using the method in Rao and Kumar (2007) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = 2\log\left(\frac{(2\frac{\epsilon}{D})^{-1}} {\left(\frac{0.444 + 0.135Re}{Re}\right)\beta}\right) .. math:: \beta = 1 - 0.55\exp(-0.33\ln\left[\frac{Re}{6.5}\right]^2) Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. This equation is fit to original experimental friction factor data. Accordingly, this equation should not be used unless appropriate consideration is given. Examples -------- >>> Rao_Kumar_2007(1E5, 1E-4) 0.01197759334600925 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Rao, A.R., Kumar, B.: Friction factor for turbulent pipe flow. Division of Mechanical Sciences, Civil Engineering Indian Institute of Science Bangalore, India ID Code 9587 (2007) ''' beta = 1 - 0.55*exp(-0.33*(log(Re/6.5))**2) return (2*log10((2*eD)**-1/beta/((0.444+0.135*Re)/Re)))**-2 def Buzzelli_2008(Re, eD): r'''Calculates Darcy friction factor using the method in Buzzelli (2008) [2]_ as shown in [1]_. .. math:: \frac{1}{\sqrt{f_d}} = B_1 - \left[\frac{B_1 +2\log(\frac{B_2}{Re})} {1 + \frac{2.18}{B_2}}\right] .. math:: B_1 = \frac{0.774\ln(Re)-1.41}{1+1.32\sqrt{\frac{\epsilon}{D}}} .. math:: B_2 = \frac{\epsilon}{3.7D}Re+2.51\times B_1 Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Buzzelli_2008(1E5, 1E-4) 0.018513948401365277 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Buzzelli, D.: Calculating friction in one step. Mach. Des. 80, 54-55 (2008) ''' B1 = (.774*log(Re)-1.41)/(1+1.32*eD**0.5) B2 = eD/3.7*Re + 2.51*B1 return (B1- (B1+2*log10(B2/Re))/(1+2.18/B2))**-2 def Avci_Karagoz_2009(Re, eD): r'''Calculates Darcy friction factor using the method in Avci and Karagoz (2009) [2]_ as shown in [1]_. .. math:: f_D = \frac{6.4} {\left\{\ln(Re) - \ln\left[ 1 + 0.01Re\frac{\epsilon}{D}\left(1 + 10(\frac{\epsilon}{D})^{0.5} \right)\right]\right\}^{2.4}} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Avci_Karagoz_2009(1E5, 1E-4) 0.01857058061066499 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Avci, Atakan, and Irfan Karagoz."A Novel Explicit Equation for Friction Factor in Smooth and Rough Pipes." Journal of Fluids Engineering 131, no. 6 (2009): 061203. doi:10.1115/1.3129132. ''' return 6.4*(log(Re) - log(1 + 0.01*Re*eD*(1+10*eD**0.5)))**-2.4 def Papaevangelo_2010(Re, eD): r'''Calculates Darcy friction factor using the method in Papaevangelo (2010) [2]_ as shown in [1]_. .. math:: f_D = \frac{0.2479 - 0.0000947(7-\log Re)^4}{\left[\log\left (\frac{\epsilon}{3.615D} + \frac{7.366}{Re^{0.9142}}\right)\right]^2} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 1E4 <= Re <= 1E7; 1E-5 <= eD <= 1E-3 Examples -------- >>> Papaevangelo_2010(1E5, 1E-4) 0.015685600818488177 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Papaevangelou, G., Evangelides, C., Tzimopoulos, C.: A New Explicit Relation for the Friction Factor Coefficient in the Darcy-Weisbach Equation, pp. 166-172. Protection and Restoration of the Environment Corfu, Greece: University of Ioannina Greece and Stevens Institute of Technology New Jersey (2010) ''' return (0.2479-0.0000947*(7-log(Re))**4)/(log10(eD/3.615 + 7.366/Re**0.9142))**2 def Brkic_2011_1(Re, eD): r'''Calculates Darcy friction factor using the method in Brkic (2011) [2]_ as shown in [1]_. .. math:: f_d = [-2\log(10^{-0.4343\beta} + \frac{\epsilon}{3.71D})]^{-2} .. math:: \beta = \ln \frac{Re}{1.816\ln\left(\frac{1.1Re}{\ln(1+1.1Re)}\right)} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Brkic_2011_1(1E5, 1E-4) 0.01812455874141297 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Brkic, Dejan."Review of Explicit Approximations to the Colebrook Relation for Flow Friction." Journal of Petroleum Science and Engineering 77, no. 1 (April 2011): 34-48. doi:10.1016/j.petrol.2011.02.006. ''' beta = log(Re/(1.816*log(1.1*Re/log(1+1.1*Re)))) return (-2*log10(10**(-0.4343*beta)+eD/3.71))**-2 def Brkic_2011_2(Re, eD): r'''Calculates Darcy friction factor using the method in Brkic (2011) [2]_ as shown in [1]_. .. math:: f_d = [-2\log(\frac{2.18\beta}{Re}+ \frac{\epsilon}{3.71D})]^{-2} .. math:: \beta = \ln \frac{Re}{1.816\ln\left(\frac{1.1Re}{\ln(1+1.1Re)}\right)} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- No range of validity specified for this equation. Examples -------- >>> Brkic_2011_2(1E5, 1E-4) 0.018619745410688716 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Brkic, Dejan."Review of Explicit Approximations to the Colebrook Relation for Flow Friction." Journal of Petroleum Science and Engineering 77, no. 1 (April 2011): 34-48. doi:10.1016/j.petrol.2011.02.006. ''' beta = log(Re/(1.816*log(1.1*Re/log(1+1.1*Re)))) return (-2*log10(2.18*beta/Re + eD/3.71))**-2 def Fang_2011(Re, eD): r'''Calculates Darcy friction factor using the method in Fang (2011) [2]_ as shown in [1]_. .. math:: f_D = 1.613\left\{\ln\left[0.234\frac{\epsilon}{D}^{1.1007} - \frac{60.525}{Re^{1.1105}} + \frac{56.291}{Re^{1.0712}}\right]\right\}^{-2} Parameters ---------- Re : float Reynolds number, [-] eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Range is 3E3 <= Re <= 1E8; 0 <= eD <= 5E-2 Examples -------- >>> Fang_2011(1E5, 1E-4) 0.018481390682985432 References ---------- .. [1] Winning, H. and T. Coole. "Explicit Friction Factor Accuracy and Computational Efficiency for Turbulent Flow in Pipes." Flow, Turbulence and Combustion 90, no. 1 (January 1, 2013): 1-27. doi:10.1007/s10494-012-9419-7 .. [2] Fang, Xiande, Yu Xu, and Zhanru Zhou."New Correlations of Single-Phase Friction Factor for Turbulent Pipe Flow and Evaluation of Existing Single-Phase Friction Factor Correlations." Nuclear Engineering and Design, The International Conference on Structural Mechanics in Reactor Technology (SMiRT19) Special Section, 241, no. 3 (March 2011): 897-902. doi:10.1016/j.nucengdes.2010.12.019. ''' return log(0.234*eD**1.1007 - 60.525/Re**1.1105 + 56.291/Re**1.0712)**-2*1.613 def von_Karman(eD): r'''Calculates Darcy friction factor for rough pipes at infinite Reynolds number from the von Karman equation (as given in [1]_ and [2]_: .. math:: \frac{1}{\sqrt{f_d}} = -2 \log_{10} \left(\frac{\epsilon/D}{3.7}\right) Parameters ---------- eD : float Relative roughness, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- This case does not actually occur; Reynolds number is always finite. It is normally applied as a "limiting" value when a pipe's roughness is so high it has a friction factor curve effectively independent of Reynods number. Examples -------- >>> von_Karman(1E-4) 0.01197365149564789 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] McGovern, Jim. "Technical Note: Friction Factor Diagrams for Pipe Flow." Paper, October 3, 2011. http://arrow.dit.ie/engschmecart/28. ''' x = log10(eD/3.71) return 0.25/(x*x) def Prandtl_von_Karman_Nikuradse(Re): r'''Calculates Darcy friction factor for smooth pipes as a function of Reynolds number from the Prandtl-von Karman Nikuradse equation as given in [1]_ and [2]_: .. math:: \frac{1}{\sqrt{f}} = -2\log_{10}\left(\frac{2.51}{Re\sqrt{f}}\right) Parameters ---------- Re : float Reynolds number, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- This equation is often stated as follows; the correct constant is not 0.8, but 2log10(2.51) or approximately 0.7993474: .. math:: \frac{1}{\sqrt{f}}\approx 2\log_{10}(\text{Re}\sqrt{f})-0.8 This function is calculable for all Reynolds numbers between 1E151 and 1E-151. It is solved with the LambertW function from SciPy. The solution is: .. math:: f_d = \frac{\frac{1}{4}\log_{10}^2}{\left(\text{lambertW}\left(\frac{ \log(10)Re}{2(2.51)}\right)\right)^2} Examples -------- >>> Prandtl_von_Karman_Nikuradse(1E7) 0.008102669430874914 References ---------- .. [1] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. .. [2] McGovern, Jim. "Technical Note: Friction Factor Diagrams for Pipe Flow." Paper, October 3, 2011. http://arrow.dit.ie/engschmecart/28. ''' # Good 1E150 to 1E-150 c1 = 1.151292546497022842008995727342182103801 # log(10)/2 c2 = 1.325474527619599502640416597148504422899 # log(10)**2/4 return c2/float(lambertw((c1*Re)/2.51).real)**2 # Values still in table at least to 2013 Crane_fts_nominal_Ds = [.015, .02, .025, .032, .04, .05, .065, .08, .1, .125, .15, .2, .25, .35, .4, .55, .6, .9] Crane_fts_Ds = [0.01576, 0.02096, 0.02664, 0.03508, 0.04094, 0.05248, 0.06268, 0.07792, 0.10226, 0.1282, 0.154, 0.20274, 0.25446, 0.33334, 0.381, 0.53994, 0.57504, 0.8759] Crane_fts = [.026, .024, .022, .021, .02, .019, .018, .017, .016, .015, .015, .014, .013, .013, .012, .012, .011, .011] def ft_Crane(D): r'''Calculates the Crane fully turbulent Darcy friction factor for flow in commercial pipe, as used in the Crane formulas for loss coefficients in various fittings. Note that this is **not generally applicable to loss due to friction in pipes**, as it does not take into account the roughness of various pipe materials. But for fittings in any type of pipe, this is the friction factor to use in the Crane [1]_ method to get their loss coefficients. Parameters ---------- D : float Pipe inner diameter, [m] Returns ------- fd : float Darcy Crane friction factor for fully turbulent flow, [-] Notes ----- There is confusion and uncertainty regarding the friction factor table given in Crane TP 410M [1]_. This function does not help: it implements a new way to obtain Crane friction factors, so that it can better be based in theory and give more precision (not accuracy) and trend better with diameters not tabulated in [1]_. The data in [1]_ was digitized, and nominal pipe diameters were converted to actual pipe diameters. An objective function was sought which would produce the exact same values as in [1]_ when rounded to the same decimal place. One was found fairly easily by using the standard `Colebrook` friction factor formula, and using the diameter-dependent roughness values calculated with the `roughness_Farshad` method for bare Carbon steel. A diameter-dependent Reynolds number was required to match the values; the :math:`\rho V/\mu` term is set to 7.5E6. The formula given in [1]_ is: .. math:: f_T = \frac{0.25}{\left[\log_{10}\left(\frac{\epsilon/D}{3.7}\right) \right]^2} However, this function does not match the rounded values in [1]_ well and it is not very clear which roughness to use. Using both the value for new commercial steel (.05 mm) or a diameter-dependent value (`roughness_Farshad`), values were found to be too high and too low respectively. That function is based in theory - the limit of the `Colebrook` equation when `Re` goes to infinity - but in the end real pipe flow is not infinity, and so a large error occurs from that use. The following plot shows all these options, and that the method implemented here matches perfectly the rounded values in [1]_. .. plot:: plots/ft_Crane.py Examples -------- >>> ft_Crane(.1) 0.01628845962146481 Explicitly spelling out the function (note the exact same answer is not returned; it is accurate to 5-8 decimals however, for increased speed): >>> Di = 0.1 >>> Colebrook(7.5E6*Di, eD=roughness_Farshad(ID='Carbon steel, bare', D=Di)/Di) 0.01628842543122547 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' fast = True if D < 1E-2: fast = False return Clamond(7.5E6*D, 3.4126825352925e-5*D**-1.0112, fast) ### Main functions fmethods = {} fmethods['Moody'] = {'Nice name': 'Moody', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 1.0, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Alshul_1952'] = {'Nice name': 'Alshul 1952', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Wood_1966'] = {'Nice name': 'Wood 1966', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-05, 'Default': None, 'Max': 0.04, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 50000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Churchill_1973'] = {'Nice name': 'Churchill 1973', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Eck_1973'] = {'Nice name': 'Eck 1973', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Jain_1976'] = {'Nice name': 'Jain 1976', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 4e-05, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 5000.0, 'Default': None, 'Max': 10000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Swamee_Jain_1976'] = {'Nice name': 'Swamee Jain 1976', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-06, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 5000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Churchill_1977'] = {'Nice name': 'Churchill 1977', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Chen_1979'] = {'Nice name': 'Chen 1979', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-07, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 400000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Round_1980'] = {'Nice name': 'Round 1980', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 400000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Shacham_1980'] = {'Nice name': 'Shacham 1980', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 400000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Barr_1981'] = {'Nice name': 'Barr 1981', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Zigrang_Sylvester_1'] = {'Nice name': 'Zigrang Sylvester 1', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 4e-05, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Zigrang_Sylvester_2'] = {'Nice name': 'Zigrang Sylvester 2', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 4e-05, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Haaland'] = {'Nice name': 'Haaland', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-06, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Serghides_1'] = {'Nice name': 'Serghides 1', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Serghides_2'] = {'Nice name': 'Serghides 2', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Tsal_1989'] = {'Nice name': 'Tsal 1989', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Manadilli_1997'] = {'Nice name': 'Manadilli 1997', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 5245.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Romeo_2002'] = {'Nice name': 'Romeo 2002', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 3000.0, 'Default': None, 'Max': 150000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Sonnad_Goudar_2006'] = {'Nice name': 'Sonnad Goudar 2006', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-06, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 4000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Rao_Kumar_2007'] = {'Nice name': 'Rao Kumar 2007', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Buzzelli_2008'] = {'Nice name': 'Buzzelli 2008', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Avci_Karagoz_2009'] = {'Nice name': 'Avci Karagoz 2009', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Papaevangelo_2010'] = {'Nice name': 'Papaevangelo 2010', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 1e-05, 'Default': None, 'Max': 0.001, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 10000.0, 'Default': None, 'Max': 10000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Brkic_2011_1'] = {'Nice name': 'Brkic 2011 1', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Brkic_2011_2'] = {'Nice name': 'Brkic 2011 2', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': None, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Fang_2011'] = {'Nice name': 'Fang 2011', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': 0.05, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 3000.0, 'Default': None, 'Max': 100000000.0, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Clamond'] = {'Nice name': 'Clamond 2009', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 0, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} fmethods['Colebrook'] = {'Nice name': 'Colebrook', 'Notes': '', 'Arguments': {'eD': {'Name': 'Relative roughness', 'Min': 0.0, 'Default': None, 'Max': None, 'Symbol': '\\epsilon/D', 'Units': None}, 'Re': {'Name': 'Reynolds number', 'Min': 0, 'Default': None, 'Max': None, 'Symbol': '\text{Re}', 'Units': None}}} def friction_factor(Re, eD=0, Method='Clamond', Darcy=True, AvailableMethods=False): r'''Calculates friction factor. Uses a specified method, or automatically picks one from the dictionary of available methods. 29 approximations are available as well as the direct solution, described in the table below. The default is to use the exact solution. Can also be accessed under the name `fd`. For Re < 2040, [1]_ the laminar solution is always returned, regardless of selected method. Examples -------- >>> friction_factor(Re=1E5, eD=1E-4) 0.01851386607747165 Parameters ---------- Re : float Reynolds number, [-] eD : float, optional Relative roughness of the wall, [-] Returns ------- f : float Friction factor, [-] methods : list, only returned if AvailableMethods == True List of methods which claim to be valid for the range of `Re` and `eD` given Other Parameters ---------------- Method : string, optional A string of the function name to use Darcy : bool, optional If False, will return fanning friction factor, 1/4 of the Darcy value AvailableMethods : bool, optional If True, function will consider which methods claim to be valid for the range of `Re` and `eD` given See Also -------- Colebrook Clamond Notes ----- +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Nice name |Re min|Re max|Re Default|:math:`\epsilon/D` Min|:math:`\epsilon/D` Max|:math:`\epsilon/D` Default| +===================+======+======+==========+======================+======================+==========================+ |Clamond |0 |None |None |0 |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Rao Kumar 2007 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Eck 1973 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Jain 1976 |5000 |1.0E+7|None |4.0E-5 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Avci Karagoz 2009 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Swamee Jain 1976 |5000 |1.0E+8|None |1.0E-6 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Churchill 1977 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Brkic 2011 1 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Chen 1979 |4000 |4.0E+8|None |1.0E-7 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Round 1980 |4000 |4.0E+8|None |0 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Papaevangelo 2010 |10000 |1.0E+7|None |1.0E-5 |0.001 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Fang 2011 |3000 |1.0E+8|None |0 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Shacham 1980 |4000 |4.0E+8|None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Barr 1981 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Churchill 1973 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Moody |4000 |1.0E+8|None |0 |1 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Zigrang Sylvester 1|4000 |1.0E+8|None |4.0E-5 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Zigrang Sylvester 2|4000 |1.0E+8|None |4.0E-5 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Buzzelli 2008 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Haaland |4000 |1.0E+8|None |1.0E-6 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Serghides 1 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Serghides 2 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Tsal 1989 |4000 |1.0E+8|None |0 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Alshul 1952 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Wood 1966 |4000 |5.0E+7|None |1.0E-5 |0.04 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Manadilli 1997 |5245 |1.0E+8|None |0 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Brkic 2011 2 |None |None |None |None |None |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Romeo 2002 |3000 |1.5E+8|None |0 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ |Sonnad Goudar 2006 |4000 |1.0E+8|None |1.0E-6 |0.05 |None | +-------------------+------+------+----------+----------------------+----------------------+--------------------------+ References ---------- .. [1] Avila, Kerstin, David Moxey, Alberto de Lozar, Marc Avila, Dwight Barkley, and Björn Hof. "The Onset of Turbulence in Pipe Flow." Science 333, no. 6039 (July 8, 2011): 192-96. doi:10.1126/science.1203223. ''' def list_methods(): methods = [i for i in fmethods if (not fmethods[i]['Arguments']['eD']['Min'] or fmethods[i]['Arguments']['eD']['Min'] <= eD) and (not fmethods[i]['Arguments']['eD']['Max'] or eD <= fmethods[i]['Arguments']['eD']['Max']) and (not fmethods[i]['Arguments']['Re']['Min'] or Re > fmethods[i]['Arguments']['Re']['Min']) and (not fmethods[i]['Arguments']['Re']['Max'] or Re <= fmethods[i]['Arguments']['Re']['Max'])] return methods if AvailableMethods: return list_methods() elif not Method: Method = 'Clamond' if Re < LAMINAR_TRANSITION_PIPE: f = friction_laminar(Re) else: f = globals()[Method](Re=Re, eD=eD) if not Darcy: f *= 0.25 return f fd = friction_factor # shortcut def helical_laminar_fd_White(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under laminar conditions, using the method of White [1]_ as shown in [2]_. .. math:: f_{curved} = f_{\text{straight,laminar}} \left[1 - \left(1-\left( \frac{11.6}{De}\right)^{0.45}\right)^{\frac{1}{0.45}}\right]^{-1} Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- The range of validity of this equation is :math:`11.6< De < 2000`, :math:`3.878\times 10^{-4}>> helical_laminar_fd_White(250, .02, .1) 0.4063281817830202 References ---------- .. [1] White, C. M. "Streamline Flow through Curved Pipes." Proceedings of the Royal Society of London A: Mathematical, Physical and Engineering Sciences 123, no. 792 (April 6, 1929): 645-63. doi:10.1098/rspa.1929.0089. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' De = Dean(Re=Re, Di=Di, D=Dc) fd = friction_laminar(Re) if De < 11.6: return fd return fd/(1. - (1. - (11.6/De)**0.45)**(1./0.45)) # 1/.45 sometimes said to be 2.2 def helical_laminar_fd_Mori_Nakayama(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under laminar conditions, using the method of Mori and Nakayama [1]_ as shown in [2]_ and [3]_. .. math:: f_{curved} = f_{\text{straight,laminar}} \left(\frac{0.108\sqrt{De}} {1-3.253De^{-0.5}}\right) Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- The range of validity of this equation is :math:`100 < De < 2000`. The form of the equation means it yields nonsense results for De < 42.328; under that, the equation is modified to return the value at De=42.328, which is a multiplier of 1.405296 on the straight pipe friction factor. Examples -------- >>> helical_laminar_fd_Mori_Nakayama(250, .02, .1) 0.4222458285779544 References ---------- .. [1] Mori, Yasuo, and Wataru Nakayama. "Study on Forced Convective Heat Transfer in Curved Pipes : 1st Report, Laminar Region." Transactions of the Japan Society of Mechanical Engineers 30, no. 216 (1964): 977-88. doi:10.1299/kikai1938.30.977. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Pimenta, T. A., and J. B. L. M. Campos. "Friction Losses of Newtonian and Non-Newtonian Fluids Flowing in Laminar Regime in a Helical Coil." Experimental Thermal and Fluid Science 36 (January 2012): 194-204. doi:10.1016/j.expthermflusci.2011.09.013. ''' De = Dean(Re=Re, Di=Di, D=Dc) fd = friction_laminar(Re) if De < 42.328036: return fd*1.405296 return fd*(0.108*De**0.5)/(1. - 3.253*De**-0.5) def helical_laminar_fd_Schmidt(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under laminar conditions, using the method of Schmidt [1]_ as shown in [2]_ and [3]_. .. math:: f_{curved} = f_{\text{straight,laminar}} \left[1 + 0.14\left(\frac{D_i} {D_c}\right)^{0.97}Re^{\left[1 - 0.644\left(\frac{D_i}{D_c} \right)^{0.312}\right]}\right] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- The range of validity of this equation is specified only for Re, :math:`100 < Re < Re_{critical}`. The form of the equation is such that as the curvature becomes negligible, straight tube result is obtained. Examples -------- >>> helical_laminar_fd_Schmidt(250, .02, .1) 0.47460725672835236 References ---------- .. [1] Schmidt, Eckehard F. "Wärmeübergang Und Druckverlust in Rohrschlangen." Chemie Ingenieur Technik 39, no. 13 (July 10, 1967): 781-89. doi:10.1002/cite.330391302. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Pimenta, T. A., and J. B. L. M. Campos. "Friction Losses of Newtonian and Non-Newtonian Fluids Flowing in Laminar Regime in a Helical Coil." Experimental Thermal and Fluid Science 36 (January 2012): 194-204. doi:10.1016/j.expthermflusci.2011.09.013. ''' fd = friction_laminar(Re) D_ratio = Di/Dc return fd*(1. + 0.14*D_ratio**0.97*Re**(1. - 0.644*D_ratio**0.312)) def helical_turbulent_fd_Srinivasan(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Srinivasan [1]_, as shown in [2]_ and [3]_. .. math:: f_d = \frac{0.336}{{\left[Re\sqrt{\frac{D_i}{D_c}}\right]^{0.2}}} Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Valid for 0.01 < Di/Dc < 0.15, with no Reynolds number criteria given in [2]_ or [3]_. [2]_ recommends this method, using the transition criteria of Srinivasan as well. [3]_ recommends using either this method or the Ito method. This method did not make it into the popular review articles on curved flow. Examples -------- >>> helical_turbulent_fd_Srinivasan(1E4, 0.01, .02) 0.0570745212117107 References ---------- .. [1] Srinivasan, PS, SS Nandapurkar, and FA Holland. "Friction Factors for Coils." TRANSACTIONS OF THE INSTITUTION OF CHEMICAL ENGINEERS AND THE CHEMICAL ENGINEER 48, no. 4-6 (1970): T156 .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [3] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. ''' De = Dean(Re=Re, Di=Di, D=Dc) return 0.336*De**-0.2 def helical_turbulent_fd_Schmidt(Re, Di, Dc, roughness=0): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Schmidt [1]_, also shown in [2]_. For :math:`Re_{crit} < Re < 2.2\times 10^{4}`: .. math:: f_{curv} = f_{\text{str,turb}} \left[1 + \frac{2.88\times10^{4}}{Re} \left(\frac{D_i}{D_c}\right)^{0.62}\right] For :math:`2.2\times 10^{4} < Re < 1.5\times10^{5}`: .. math:: f_{curv} = f_{\text{str,turb}} \left[1 + 0.0823\left(1 + \frac{D_i} {D_c}\right)\left(\frac{D_i}{D_c}\right)^{0.53} Re^{0.25}\right] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Valid from the transition to turbulent flow up to :math:`Re=1.5\times 10^{5}`. At very low curvatures, converges on the straight pipe result. Examples -------- >>> helical_turbulent_fd_Schmidt(1E4, 0.01, .02) 0.08875550767040916 References ---------- .. [1] Schmidt, Eckehard F. "Wärmeübergang Und Druckverlust in Rohrschlangen." Chemie Ingenieur Technik 39, no. 13 (July 10, 1967): 781-89. doi:10.1002/cite.330391302. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' fd = friction_factor(Re=Re, eD=roughness/Di) if Re < 2.2E4: return fd*(1. + 2.88E4/Re*(Di/Dc)**0.62) else: return fd*(1. + 0.0823*(1. + Di/Dc)*(Di/Dc)**0.53*Re**0.25) def helical_turbulent_fd_Mori_Nakayama(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Mori and Nakayama [1]_, also shown in [2]_ and [3]_. .. math:: f_{curv} = 0.3\left(\frac{D_i}{D_c}\right)^{0.5} \left[Re\left(\frac{D_i}{D_c}\right)^2\right]^{-0.2}\left[1 + 0.112\left[Re\left(\frac{D_i}{D_c}\right)^2\right]^{-0.2}\right] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Valid from the transition to turbulent flow up to :math:`Re=6.5\times 10^{5}\sqrt{D_i/D_c}`. Does not use a straight pipe correlation, and so will not converge on the straight pipe result at very low curvature. Examples -------- >>> helical_turbulent_fd_Mori_Nakayama(1E4, 0.01, .2) 0.037311802071379796 References ---------- .. [1] Mori, Yasuo, and Wataru Nakayama. "Study of Forced Convective Heat Transfer in Curved Pipes (2nd Report, Turbulent Region)." International Journal of Heat and Mass Transfer 10, no. 1 (January 1, 1967): 37-59. doi:10.1016/0017-9310(67)90182-2. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Ali, Shaukat. "Pressure Drop Correlations for Flow through Regular Helical Coil Tubes." Fluid Dynamics Research 28, no. 4 (April 2001): 295-310. doi:10.1016/S0169-5983(00)00034-4. ''' term = (Re*(Di/Dc)**2)**-0.2 return 0.3*(Dc/Di)**-0.5*term*(1. + 0.112*term) def helical_turbulent_fd_Prasad(Re, Di, Dc,roughness=0): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Prasad [1]_, also shown in [2]_. .. math:: f_{curv} = f_{\text{str,turb}}\left[1 + 0.18\left[Re\left(\frac{D_i} {D_c}\right)^2\right]^{0.25}\right] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- No range of validity was specified, but the experiments used were with coil/tube diameter ratios of 17.24 and 34.9, hot water in the tube, and :math:`1780 < Re < 59500`. At very low curvatures, converges on the straight pipe result. Examples -------- >>> helical_turbulent_fd_Prasad(1E4, 0.01, .2) 0.043313098093994626 References ---------- .. [1] Prasad, B. V. S. S. S., D. H. Das, and A. K. Prabhakar. "Pressure Drop, Heat Transfer and Performance of a Helically Coiled Tubular Exchanger." Heat Recovery Systems and CHP 9, no. 3 (January 1, 1989): 249-56. doi:10.1016/0890-4332(89)90008-2. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' fd = friction_factor(Re=Re, eD=roughness/Di) return fd*(1. + 0.18*(Re*(Di/Dc)**2)**0.25) def helical_turbulent_fd_Czop (Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Czop [1]_, also shown in [2]_. .. math:: f_{curv} = 0.096De^{-0.1517} Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Valid for :math:`2\times10^4 < Re < 1.5\times10^{5}`. Does not use a straight pipe correlation, and so will not converge on the straight pipe result at very low curvature. Examples -------- >>> helical_turbulent_fd_Czop(1E4, 0.01, .2) 0.02979575250574106 References ---------- .. [1] Czop, V., D. Barbier, and S. Dong. "Pressure Drop, Void Fraction and Shear Stress Measurements in an Adiabatic Two-Phase Flow in a Coiled Tube." Nuclear Engineering and Design 149, no. 1 (September 1, 1994): 323-33. doi:10.1016/0029-5493(94)90298-4. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' De = Dean(Re=Re, Di=Di, D=Dc) return 0.096*De**-0.1517 def helical_turbulent_fd_Guo(Re, Di, Dc): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Guo [1]_, also shown in [2]_. .. math:: f_{curv} = 0.638Re^{-0.15}\left(\frac{D_i}{D_c}\right)^{0.51} Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Valid for :math:`2\times10^4 < Re < 1.5\times10^{5}`. Does not use a straight pipe correlation, and so will not converge on the straight pipe result at very low curvature. Examples -------- >>> helical_turbulent_fd_Guo(2E5, 0.01, .2) 0.022189161013253147 References ---------- .. [1] Guo, Liejin, Ziping Feng, and Xuejun Chen. "An Experimental Investigation of the Frictional Pressure Drop of Steam–water Two-Phase Flow in Helical Coils." International Journal of Heat and Mass Transfer 44, no. 14 (July 2001): 2601-10. doi:10.1016/S0017-9310(00)00312-4. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' return 0.638*Re**-0.15*(Di/Dc)**0.51 def helical_turbulent_fd_Ju(Re, Di, Dc,roughness=0): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Ju et al. [1]_, also shown in [2]_. .. math:: f_{curv} = f_{\text{str,turb}}\left[1 +0.11Re^{0.23}\left(\frac{D_i} {D_c}\right)^{0.14}\right] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Claimed to be valid for all turbulent conditions with :math:`De>11.6`. At very low curvatures, converges on the straight pipe result. Examples -------- >>> helical_turbulent_fd_Ju(1E4, 0.01, .2) 0.04945959480770937 References ---------- .. [1] Ju, Huaiming, Zhiyong Huang, Yuanhui Xu, Bing Duan, and Yu Yu. "Hydraulic Performance of Small Bending Radius Helical Coil-Pipe." Journal of Nuclear Science and Technology 38, no. 10 (October 1, 2001): 826-31. doi:10.1080/18811248.2001.9715102. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' fd = friction_factor(Re=Re, eD=roughness/Di) return fd*(1. + 0.11*Re**0.23*(Di/Dc)**0.14) def helical_turbulent_fd_Mandal_Nigam(Re, Di, Dc, roughness=0): r'''Calculates Darcy friction factor for a fluid flowing inside a curved pipe such as a helical coil under turbulent conditions, using the method of Mandal and Nigam [1]_, also shown in [2]_. .. math:: f_{curv} = f_{\text{str,turb}} [1 + 0.03{De}^{0.27}] Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- fd : float Darcy friction factor for a curved pipe [-] Notes ----- Claimed to be valid for all turbulent conditions with :math:`2500 < De < 15000`. At very low curvatures, converges on the straight pipe result. Examples -------- >>> helical_turbulent_fd_Mandal_Nigam(1E4, 0.01, .2) 0.03831658117115902 References ---------- .. [1] Mandal, Monisha Mridha, and K. D. P. Nigam. "Experimental Study on Pressure Drop and Heat Transfer of Turbulent Flow in Tube in Tube Helical Heat Exchanger." Industrial & Engineering Chemistry Research 48, no. 20 (October 21, 2009): 9318-24. doi:10.1021/ie9002393. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' De = Dean(Re=Re, Di=Di, D=Dc) fd = friction_factor(Re=Re, eD=roughness/Di) return fd*(1. + 0.03*De**0.27) def helical_transition_Re_Seth_Stahel(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_. .. math:: Re_{crit} = 1900\left[1 + 8 \sqrt{\frac{D_i}{D_c}}\right] Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 1900. Examples -------- >>> helical_transition_Re_Seth_Stahel(1, 7.) 7645.0599897402535 References ---------- .. [1] Seth, K. K., and E. P. Stahel. "HEAT TRANSFER FROM HELICAL COILS IMMERSED IN AGITATED VESSELS." Industrial & Engineering Chemistry 61, no. 6 (June 1, 1969): 39-49. doi:10.1021/ie50714a007. ''' return 1900.*(1. + 8.*(Di/Dc)**0.5) def helical_transition_Re_Ito(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_, as shown in [2]_ and in [3]_. .. math:: Re_{crit} = 20000 \left(\frac{D_i}{D_c}\right)^{0.32} Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 0. Recommended for :math:`0.00116 < d_i/D_c < 0.067` Examples -------- >>> helical_transition_Re_Ito(1, 7.) 10729.972844697186 References ---------- .. [1] H. Ito. "Friction factors for turbulent flow in curved pipes." Journal Basic Engineering, Transactions of the ASME, 81 (1959): 123-134. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Mori, Yasuo, and Wataru Nakayama. "Study on Forced Convective Heat Transfer in Curved Pipes." International Journal of Heat and Mass Transfer 10, no. 5 (May 1, 1967): 681-95. doi:10.1016/0017-9310(67)90113-5. ''' return 2E4*(Di/Dc)**0.32 def helical_transition_Re_Kubair_Kuloor(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_, as shown in [2]_. .. math:: Re_{crit} = 12730 \left(\frac{D_i}{D_c}\right)^{0.2} Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 0. Recommended for :math:`0.0005 < d_i/D_c < 0.103` Examples -------- >>> helical_transition_Re_Kubair_Kuloor(1, 7.) 8625.986927588123 References ---------- .. [1] Kubair, Venugopala, and N. R. Kuloor. "Heat Transfer to Newtonian Fluids in Coiled Pipes in Laminar Flow." International Journal of Heat and Mass Transfer 9, no. 1 (January 1, 1966): 63-75. doi:10.1016/0017-9310(66)90057-3. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' return 1.273E4*(Di/Dc)**0.2 def helical_transition_Re_Kutateladze_Borishanskii(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_, also shown in [2]_. .. math:: Re_{crit} = 2300 + 1.05\times 10^4 \left(\frac{D_i}{D_c}\right)^{0.3} Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 2300. Recommended for :math:`0.0417 < d_i/D_c < 0.1667` Examples -------- >>> helical_transition_Re_Kutateladze_Borishanskii(1, 7.) 7121.143774574058 References ---------- .. [1] Kutateladze, S. S, and V. M Borishanskiĭ. A Concise Encyclopedia of Heat Transfer. Oxford; New York: Pergamon Press, 1966. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. ''' return 2300. + 1.05E4*(Di/Dc)**0.4 def helical_transition_Re_Schmidt(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_, also shown in [2]_ and [3]_. Correlation recommended in [3]_. .. math:: Re_{crit} = 2300\left[1 + 8.6\left(\frac{D_i}{D_c}\right)^{0.45}\right] Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 2300. Recommended for :math:`d_i/D_c < 0.14` Examples -------- >>> helical_transition_Re_Schmidt(1, 7.) 10540.094061770815 References ---------- .. [1] Schmidt, Eckehard F. "Wärmeübergang Und Druckverlust in Rohrschlangen." Chemie Ingenieur Technik 39, no. 13 (July 10, 1967): 781-89. doi:10.1002/cite.330391302. .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Schlunder, Ernst U, and International Center for Heat and Mass Transfer. Heat Exchanger Design Handbook. Washington: Hemisphere Pub. Corp., 1983. ''' return 2300.*(1. + 8.6*(Di/Dc)**0.45) def helical_transition_Re_Srinivasan(Di, Dc): r'''Calculates the transition Reynolds number for flow inside a curved or helical coil between laminar and turbulent flow, using the method of [1]_, also shown in [2]_ and [3]_. Correlation recommended in [3]_. .. math:: Re_{crit} = 2100\left[1 + 12\left(\frac{D_i}{D_c}\right)^{0.5}\right] Parameters ---------- Di : float Inner diameter of the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] Returns ------- Re_crit : float Transition Reynolds number between laminar and turbulent [-] Notes ----- At very low curvatures, converges to Re = 2100. Recommended for :math:`0.004 < d_i/D_c < 0.1`. Examples -------- >>> helical_transition_Re_Srinivasan(1, 7.) 11624.704719832524 References ---------- .. [1] Srinivasan, P. S., Nandapurkar, S. S., and Holland, F. A., "Pressure Drop and Heat Transfer in Coils", Chemical Engineering, 218, CE131-119, (1968). .. [2] El-Genk, Mohamed S., and Timothy M. Schriener. "A Review and Correlations for Convection Heat Transfer and Pressure Losses in Toroidal and Helically Coiled Tubes." Heat Transfer Engineering 0, no. 0 (June 7, 2016): 1-28. doi:10.1080/01457632.2016.1194693. .. [3] Rohsenow, Warren and James Hartnett and Young Cho. Handbook of Heat Transfer, 3E. New York: McGraw-Hill, 1998. ''' return 2100.*(1. + 12.*(Di/Dc)**0.5) curved_friction_laminar_methods = {'White': helical_laminar_fd_White, 'Mori Nakayama laminar': helical_laminar_fd_Mori_Nakayama, 'Schmidt laminar': helical_laminar_fd_Schmidt} # Format: 'key': (correlation, supports_roughness) curved_friction_turbulent_methods = {'Schmidt turbulent': (helical_turbulent_fd_Schmidt, True), 'Mori Nakayama turbulent': (helical_turbulent_fd_Mori_Nakayama, False), 'Prasad': (helical_turbulent_fd_Prasad, True), 'Czop': (helical_turbulent_fd_Czop, False), 'Guo': (helical_turbulent_fd_Guo, False), 'Ju': (helical_turbulent_fd_Ju, True), 'Mandel Nigam': (helical_turbulent_fd_Mandal_Nigam, True), 'Srinivasan turbulent': (helical_turbulent_fd_Srinivasan, False)} curved_friction_transition_methods = {'Seth Stahel': helical_transition_Re_Seth_Stahel, 'Ito': helical_transition_Re_Ito, 'Kubair Kuloor': helical_transition_Re_Kubair_Kuloor, 'Kutateladze Borishanskii': helical_transition_Re_Kutateladze_Borishanskii, 'Schmidt': helical_transition_Re_Schmidt, 'Srinivasan': helical_transition_Re_Srinivasan} def friction_factor_curved(Re, Di, Dc, roughness=0.0, Method=None, Rec_method='Schmidt', laminar_method='Schmidt laminar', turbulent_method='Schmidt turbulent', Darcy=True, AvailableMethods=False): r'''Calculates friction factor fluid flowing in a curved pipe or helical coil, supporting both laminar and turbulent regimes. Selects the appropriate regime by default, and has default correlation choices. Optionally, a specific correlation can be specified with the `Method` keyword. The default correlations are those recommended in [1]_, and are believed to be the best publicly available. Examples -------- >>> friction_factor_curved(Re=1E5, Di=0.02, Dc=0.5) 0.022961996738387523 Parameters ---------- Re : float Reynolds number with `D=Di`, [-] Di : float Inner diameter of the tube making up the coil, [m] Dc : float Diameter of the helix/coil measured from the center of the tube on one side to the center of the tube on the other side, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- f : float Friction factor, [-] methods : list, only returned if AvailableMethods == True List of methods in the regime the specified `Re` is in at the given `Di` and `Dc`. Other Parameters ---------------- Method : string, optional A string of the function name to use, overriding the default turbulent/ laminar selection. Rec_method : str, optional Critical Reynolds number transition criteria; one of ['Seth Stahel', 'Ito', 'Kubair Kuloor', 'Kutateladze Borishanskii', 'Schmidt', 'Srinivasan']; the default is 'Schmidt'. laminar_method : str, optional Friction factor correlation for the laminar regime; one of ['White', 'Mori Nakayama laminar', 'Schmidt laminar']; the default is 'Schmidt laminar'. turbulent_method : str, optional Friction factor correlation for the turbulent regime; one of ['Guo', 'Ju', 'Schmidt turbulent', 'Prasad', 'Mandel Nigam', 'Mori Nakayama turbulent', 'Czop']; the default is 'Schmidt turbulent'. Darcy : bool, optional If False, will return fanning friction factor, 1/4 of the Darcy value AvailableMethods : bool, optional If True, function will consider which methods claim to be valid for the range of `Re` and `eD` given See Also -------- fluids.geometry.HelicalCoil helical_turbulent_fd_Schmidt helical_turbulent_fd_Srinivasan helical_turbulent_fd_Mandal_Nigam helical_turbulent_fd_Ju helical_turbulent_fd_Guo helical_turbulent_fd_Czop helical_turbulent_fd_Prasad helical_turbulent_fd_Mori_Nakayama helical_laminar_fd_Schmidt helical_laminar_fd_Mori_Nakayama helical_laminar_fd_White helical_transition_Re_Schmidt helical_transition_Re_Srinivasan helical_transition_Re_Kutateladze_Borishanskii helical_transition_Re_Kubair_Kuloor helical_transition_Re_Ito helical_transition_Re_Seth_Stahel Notes ----- The range of acccuracy of these correlations is much than that in a straight pipe. References ---------- .. [1] Schlunder, Ernst U, and International Center for Heat and Mass Transfer. Heat Exchanger Design Handbook. Washington: Hemisphere Pub. Corp., 1983. ''' if Rec_method in curved_friction_transition_methods: Re_crit = curved_friction_transition_methods[Rec_method](Di, Dc) else: raise Exception('Invalid method specified for transition Reynolds number.') turbulent = False if Re < Re_crit else True def list_methods(): if turbulent: return list(curved_friction_turbulent_methods.keys()) else: return list(curved_friction_laminar_methods.keys()) if AvailableMethods: return list_methods() if not Method: Method = turbulent_method if turbulent else laminar_method if Method in curved_friction_laminar_methods: f = curved_friction_laminar_methods[Method](Re, Di, Dc) elif Method in curved_friction_turbulent_methods: correlation, supports_roughness = curved_friction_turbulent_methods[Method] if supports_roughness: f = correlation(Re, Di, Dc, roughness) else: f = correlation(Re, Di, Dc) else: raise Exception('Invalid method for friction factor calculation') if not Darcy: f *= 0.25 return f ### Plate heat exchanger single phase def friction_plate_Martin_1999(Re, plate_enlargement_factor): r'''Calculates Darcy friction factor for single-phase flow in a Chevron-style plate heat exchanger according to [1]_. .. math:: \frac{1}{\sqrt{f_f}} = \frac{\cos \phi}{\sqrt{0.045\tan\phi + 0.09\sin\phi + f_0/\cos(\phi)}} + \frac{1-\cos\phi}{\sqrt{3.8f_1}} .. math:: f_0 = 16/Re \text{ for } Re < 2000 .. math:: f_0 = (1.56\ln Re - 3)^{-2} \text{ for } Re \ge 2000 .. math:: f_1 = \frac{149}{Re} + 0.9625 \text{ for } Re < 2000 .. math:: f_1 = \frac{9.75}{Re^{0.289}} \text{ for } Re \ge 2000 Parameters ---------- Re : float Reynolds number with respect to the hydraulic diameter of the channels, [-] plate_enlargement_factor : float The extra surface area multiplier as compared to a flat plate caused the corrugations, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Based on experimental data from Re from 200 - 10000 and enhancement factors calculated with chevron angles of 0 to 80 degrees. See `PlateExchanger` for further clarification on the definitions. The length the friction factor gets multiplied by is not the flow path length, but rather the straight path length from port to port as if there were no chevrons. Note there is a discontinuity at Re = 2000 for the transition from laminar to turbulent flow, although the literature suggests the transition is actually smooth. This was first developed in [2]_ and only minor modifications by the original author were made before its republication in [1]_. This formula is also suggested in [3]_ Examples -------- >>> friction_plate_Martin_1999(Re=20000, plate_enlargement_factor=1.15) 2.284018089834134 References ---------- .. [1] Martin, Holger. "Economic optimization of compact heat exchangers." EF-Conference on Compact Heat Exchangers and Enhancement Technology for the Process Industries, Banff, Canada, July 18-23, 1999, 1999. https://publikationen.bibliothek.kit.edu/1000034866. .. [2] Martin, Holger. "A Theoretical Approach to Predict the Performance of Chevron-Type Plate Heat Exchangers." Chemical Engineering and Processing: Process Intensification 35, no. 4 (January 1, 1996): 301-10. https://doi.org/10.1016/0255-2701(95)04129-X. .. [3] Shah, Ramesh K., and Dusan P. Sekulic. Fundamentals of Heat Exchanger Design. 1st edition. Hoboken, NJ: Wiley, 2002. ''' phi = plate_enlargement_factor if Re < 2000.: f0 = 16./Re f1 = 149./Re + 0.9625 else: f0 = (1.56*log(Re) - 3.0)**-2 f1 = 9.75*Re**-0.289 rhs = cos(phi)*(0.045*tan(phi) + 0.09*sin(phi) + f0/cos(phi))**-0.5 rhs += (1. - cos(phi))*(3.8*f1)**-0.5 ff = rhs**-2. return ff*4.0 def friction_plate_Martin_VDI(Re, plate_enlargement_factor): r'''Calculates Darcy friction factor for single-phase flow in a Chevron-style plate heat exchanger according to [1]_. .. math:: \frac{1}{\sqrt{f_d}} = \frac{\cos \phi}{\sqrt{0.28\tan\phi + 0.36\sin\phi + f_0/\cos(\phi)}} + \frac{1-\cos\phi}{\sqrt{3.8f_1}} .. math:: f_0 = 64/Re \text{ for } Re < 2000 .. math:: f_0 = (1.56\ln Re - 3)^{-2} \text{ for } Re \ge 2000 .. math:: f_1 = \frac{597}{Re} + 3.85 \text{ for } Re < 2000 .. math:: f_1 = \frac{39}{Re^{0.289}} \text{ for } Re \ge 2000 Parameters ---------- Re : float Reynolds number with respect to the hydraulic diameter of the channels, [-] plate_enlargement_factor : float The extra surface area multiplier as compared to a flat plate caused the corrugations, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Based on experimental data from Re from 200 - 10000 and enhancement factors calculated with chevron angles of 0 to 80 degrees. See `PlateExchanger` for further clarification on the definitions. The length the friction factor gets multiplied by is not the flow path length, but rather the straight path length from port to port as if there were no chevrons. Note there is a discontinuity at Re = 2000 for the transition from laminar to turbulent flow, although the literature suggests the transition is actually smooth. This is a revision of the Martin's earlier model, adjusted to predidct higher friction factors. There are three parameters in this model, a, b and c; it is posisble to adjust them to better fit a know exchanger's pressure drop. See Also -------- friction_plate_Martin_1999 Examples -------- >>> friction_plate_Martin_VDI(Re=20000, plate_enlargement_factor=1.15) 2.702534119024076 References ---------- .. [1] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. ''' phi = plate_enlargement_factor if Re < 2000.: f0 = 64./Re f1 = 597./Re + 3.85 else: f0 = (1.8*log10(Re) - 1.5)**-2 f1 = 39.*Re**-0.289 a, b, c = 3.8, 0.28, 0.36 rhs = cos(phi)*(b*tan(phi) + c*sin(phi) + f0/cos(phi))**-0.5 rhs += (1. - cos(phi))*(a*f1)**-0.5 return rhs**-2.0 Kumar_beta_list = [30, 45, 50, 60, 65] Kumar_fd_Res = [[10, 100], [15, 300], [20, 300], [40, 400], [50, 500]] Kumar_C2s = [[50.0, 19.40, 2.990], [47.0, 18.29, 1.441], [34.0, 11.25, 0.772], [24.0, 3.24, 0.760], [24.0, 2.80, 0.639]] # Is the second in the first row 0.589 (paper) or 0.598 (PHEWorks) # Believed to be the values from the paper, where this graph was # curve fit as the original did not contain and coefficients only a plot Kumar_Ps = [[1.0, 0.589, 0.183], [1.0, 0.652, 0.206], [1.0, 0.631, 0.161], [1.0, 0.457, 0.215], [1.0, 0.451, 0.213]] def friction_plate_Kumar(Re, chevron_angle): r'''Calculates Darcy friction factor for single-phase flow in a **well-designed** Chevron-style plate heat exchanger according to [1]_. The data is believed to have been developed by APV International Limited, since acquired by SPX Corporation. This uses a curve fit of that data published in [2]_. .. math:: f_f = \frac{C_2}{Re^p} C2 and p are coefficients looked up in a table, with varying ranges of Re validity and chevron angle validity. See the source for their exact values. Parameters ---------- Re : float Reynolds number with respect to the hydraulic diameter of the channels, [-] chevron_angle : float Angle of the plate corrugations with respect to the vertical axis (the direction of flow if the plates were straight), between 0 and 90. Many plate exchangers use two alternating patterns; use their average angle for that situation [degrees] Returns ------- fd : float Darcy friction factor [-] Notes ----- Data on graph from Re=0.1 to Re=10000, with chevron angles 30 to 65 degrees. See `PlateExchanger` for further clarification on the definitions. It is believed the constants used in this correlation were curve-fit to the actual graph in [1]_ by the author of [2]_ as there is no The length the friction factor gets multiplied by is not the flow path length, but rather the straight path length from port to port as if there were no chevrons. As the coefficients change, there are numerous small discontinuities, although the data on the graphs is continuous with sharp transitions of the slope. The author of [1]_ states clearly this correlation is "applicable only to well designed Chevron PHEs". Examples -------- >>> friction_plate_Kumar(Re=2000, chevron_angle=30) 2.9760669055634517 References ---------- .. [1] Kumar, H. "The plate heat exchanger: construction and design." In First U.K. National Conference on Heat Transfer: Held at the University of Leeds, 3-5 July 1984, Institute of Chemical Engineering Symposium Series, vol. 86, pp. 1275-1288. 1984. .. [2] Ayub, Zahid H. "Plate Heat Exchanger Literature Survey and New Heat Transfer and Pressure Drop Correlations for Refrigerant Evaporators." Heat Transfer Engineering 24, no. 5 (September 1, 2003): 3-16. doi:10.1080/01457630304056. ''' beta_list_len = len(Kumar_beta_list) for i in range(beta_list_len): if chevron_angle <= Kumar_beta_list[i]: C2_options, p_options, Re_ranges = Kumar_C2s[i], Kumar_Ps[i], Kumar_fd_Res[i] break elif i == beta_list_len-1: C2_options, p_options, Re_ranges = Kumar_C2s[-1], Kumar_Ps[-1], Kumar_fd_Res[-1] Re_len = len(Re_ranges) for j in range(Re_len): if Re <= Re_ranges[j]: C2, p = C2_options[j], p_options[j] break elif j == Re_len-1: C2, p = C2_options[-1], p_options[-1] # Originally in Fanning friction factor basis return 4.0*C2*Re**-p def friction_plate_Muley_Manglik(Re, chevron_angle, plate_enlargement_factor): r'''Calculates Darcy friction factor for single-phase flow in a Chevron-style plate heat exchanger according to [1]_, also shown and recommended in [2]_. .. math:: f_f = [2.917 - 0.1277\beta + 2.016\times10^{-3} \beta^2] \times[20.78 - 19.02\phi + 18.93\phi^2 - 5.341\phi^3] \times Re^{-[0.2 + 0.0577\sin[(\pi \beta/45)+2.1]]} Parameters ---------- Re : float Reynolds number with respect to the hydraulic diameter of the channels, [-] chevron_angle : float Angle of the plate corrugations with respect to the vertical axis (the direction of flow if the plates were straight), between 0 and 90. Many plate exchangers use two alternating patterns; use their average angle for that situation [degrees] plate_enlargement_factor : float The extra surface area multiplier as compared to a flat plate caused the corrugations, [-] Returns ------- fd : float Darcy friction factor [-] Notes ----- Based on experimental data of plate enacement factors up to 1.5, and valid for Re > 1000 and chevron angles from 30 to 60 degrees with sinusoidal shape. See `PlateExchanger` for further clarification on the definitions. The length the friction factor gets multiplied by is not the flow path length, but rather the straight path length from port to port as if there were no chevrons. This is a continuous model with no discontinuities. Examples -------- >>> friction_plate_Muley_Manglik(Re=2000, chevron_angle=45, plate_enlargement_factor=1.2) 1.0880870804075413 References ---------- .. [1] Muley, A., and R. M. Manglik. "Experimental Study of Turbulent Flow Heat Transfer and Pressure Drop in a Plate Heat Exchanger With Chevron Plates." Journal of Heat Transfer 121, no. 1 (February 1, 1999): 110-17. doi:10.1115/1.2825923. .. [2] Ayub, Zahid H. "Plate Heat Exchanger Literature Survey and New Heat Transfer and Pressure Drop Correlations for Refrigerant Evaporators." Heat Transfer Engineering 24, no. 5 (September 1, 2003): 3-16. doi:10.1080/01457630304056. ''' beta, phi = chevron_angle, plate_enlargement_factor # Beta is indeed chevron angle; with respect to angle of mvoement # Still might be worth another check t1 = (2.917 - 0.1277*beta + 2.016E-3*beta**2) t2 = (5.474 - 19.02*phi + 18.93*phi**2 - 5.341*phi**3) t3 = -(0.2 + 0.0577*sin(pi*beta/45. + 2.1)) # Equation returns fanning friction factor return 4*t1*t2*Re**t3 # Data from the Handbook of Hydraulic Resistance, 4E, in format (min, max, avg) # roughness in m; may have one, two, or three of the values. seamless_other_metals = {'Commercially smooth': (1.5E-6, 1.0E-5, None)} seamless_steel = {'New and unused': (2.0E-5, 1.0E-4, None), 'Cleaned, following years of use': (None, 4.0E-5, None), 'Bituminized': (None, 4.0E-5, None), 'Heating systems piping; either superheated steam pipes, or just water pipes of systems with deaerators and chemical treatment': (None, None, 1.0E-4), 'Following one year as a gas pipeline': (None, None, 1.2E-4), 'Following multiple year as a gas pipeline': (4.0E-5, 2.0E-4, None), 'Casings in gas wells, different conditions, several years of use': (6.0E-5, 2.2E-4, None), 'Heating systems, saturated steam ducts or water pipes (with minor water leakage < 0.5%, and balance water deaerated)': (None, None, 2.0E-4), 'Water heating system pipelines, any source': (None, None, 2.0E-4), 'Oil pipelines, intermediate operating conditions ': (None, None, 2.0E-4), 'Corroded, moderately ': (None, None, 4.0E-4), 'Scale, small depositions only ': (None, None, 4.0E-4), 'Condensate pipes in open systems or periodically operated steam pipelines': (None, None, 5.0E-4), 'Compressed air piping': (None, None, 8.0E-4), 'Following multiple years of operation, generally corroded or with small amounts of scale': (1.5E-4, 1.0E-3, None), 'Water heating piping without deaeration but with chemical treatment of water; leakage up to 3%; or condensate piping operated periodically': (None, None, 1.0E-3), 'Used water piping': (1.2E-3, 1.5E-3, None), 'Poor condition': (5.0E-3, None, None)} welded_steel = {'Good condition': (4.0E-5, 1.0E-4, None), 'New and covered with bitumen': (None, None, 5.0E-5), 'Used and covered with partially dissolved bitumen; corroded': (None, None, 1.0E-4), 'Used, suffering general corrosion': (None, None, 1.5E-4), 'Surface looks like new, 10 mm lacquer inside, even joints': (3.0E-4, 4.0E-4, None), 'Used Gas mains': (None, None, 5.0E-4), 'Double or simple transverse riveted joints; with or without lacquer; without corrosion': (6.0E-4, 7.0E-4, None), 'Lacquered inside but rusted': (9.5E-4, 1.0E-3, None), 'Gas mains, many years of use, with layered deposits': (None, None, 1.1E-3), 'Non-corroded and with double transverse riveted joints': (1.2E-3, 1.5E-3, None), 'Small deposits': (None, None, 1.5E-3), 'Heavily corroded and with double transverse riveted joints': (None, None, 2.0E-3), 'Appreciable deposits': (2.0E-3, 4.0E-3, None), 'Gas mains, many years of use, deposits of resin/naphthalene': (None, None, 2.4E-3), 'Poor condition': (5.0E-3, None, None)} riveted_steel = { 'Riveted laterally and longitudinally with one line; lacquered on the inside': (3.0E-4, 4.0E-4, None), 'Riveted laterally and longitudinally with two lines; with or without lacquer on the inside and without corrosion': (6.0E-4, 7.0E-4, None), 'Riveted laterally with one line and longitudinally with two lines; thickly lacquered or torred on the inside': (1.2E-3, 1.4E-3, None), 'Riveted longitudinally with six lines, after extensive use': (None, None, 2.0E-3), 'Riveted laterally with four line and longitudinally with six lines; overlapping joints inside': (None, None, 4.0E-3), 'Extremely poor surface; overlapping and uneven joints': (5.0E-3, None, None)} roofing_metal = {'Oiled': (1.5E-4, 1.1E-3, None), 'Not Oiled': (2.0E-5, 4.0E-5, None)} galvanized_steel_tube = {'Bright galvanization; new': (7.0E-5, 1.0E-4, None), 'Ordinary galvanization': (1.0E-4, 1.5E-4, None)} galvanized_steel_sheet = {'New': (None, None, 1.5E-4), 'Used previously for water': (None, None, 1.8E-4)} steel = {'Glass enamel coat': (1.0E-6, 1.0E-5, None), 'New': (2.5E-4, 1.0E-3, None)} cast_iron = {'New, bituminized': (1.0E-4, 1.5E-4, None), 'Coated with asphalt': (1.2E-4, 3.0E-4, None), 'Used water pipelines': (None, None, 1.4E-3), 'Used and corroded': (1.0E-3, 1.5E-3, None), 'Deposits visible': (1.0E-3, 1.5E-3, None), 'Substantial deposits': (2.0E-3, 4.0E-3, None), 'Cleaned after extensive use': (3.0E-4, 1.5E-3, None), 'Severely corroded': (None, 3.0E-3, None)} water_conduit_steel = { 'New, clean, seamless (without joints), well fitted': (1.5E-5, 4.0E-5, None), 'New, clean, welded lengthwise and well fitted': (1.2E-5, 3.0E-5, None), 'New, clean, welded lengthwise and well fitted, with transverse welded joints': (8.0E-5, 1.7E-4, None), 'New, clean, coated, bituminized when manufactured': (1.4E-5, 1.8E-5, None), 'New, clean, coated, bituminized when manufactured, with transverse welded joints': (2.0E-4, 6.0E-4, None), 'New, clean, coated, galvanized': (1.0E-4, 2.0E-4, None), 'New, clean, coated, roughly galvanized': (4.0E-4, 7.0E-4, None), 'New, clean, coated, bituminized, curved': (1.0E-4, 1.4E-3, None), 'Used, clean, slight corrosion': (1.0E-4, 3.0E-4, None), 'Used, clean, moderate corrosion or slight deposits': (3.0E-4, 7.0E-4, None), 'Used, clean, severe corrosion': (8.0E-4, 1.5E-3, None), 'Used, clean, previously cleaned of either deposits or rust': (1.5E-4, 2.0E-4, None)} water_conduit_steel_used = { 'Used, all welded, <2 years use, no deposits': (1.2E-4, 2.4E-4, None), 'Used, all welded, <20 years use, no deposits': (6.0E-4, 5.0E-3, None), 'Used, iron-bacterial corrosion': (3.0E-3, 4.0E-3, None), 'Used, heavy corrosion, or with incrustation (deposit 1.5 - 9 mm deep)': (3.0E-3, 5.0E-3, None), 'Used, heavy corrosion, or with incrustation (deposit 3 - 25 mm deep)': (6.0E-3, 6.5E-3, None), 'Used, inside coating, bituminized, < 2 years use': (1.0E-4, 3.5E-4, None)} steels = {'Seamless tubes made from brass, copper, lead, aluminum': seamless_other_metals, 'Seamless steel tubes': seamless_steel, 'Welded steel tubes': welded_steel, 'Riveted steel tubes': riveted_steel, 'Roofing steel sheets': roofing_metal, 'Galzanized steel tubes': galvanized_steel_tube, 'Galzanized sheet steel': galvanized_steel_sheet, 'Steel tubes': steel, 'Cast-iron tubes': cast_iron, 'Steel water conduits in generating stations': water_conduit_steel, 'Used steel water conduits in generating stations': water_conduit_steel_used} concrete_water_conduits = { 'New and finished with plater; excellent manufacture (joints aligned, prime coated and smoothed)': (5.0E-5, 1.5E-4, None), 'Used and corroded; with a wavy surface and wood framework': (1.0E-3, 4.0E-3, None), 'Old, poor fitting and manufacture; with an overgrown surface and deposits of sand and gravel': (1.0E-3, 4.0E-3, None), 'Very old; damaged surface, very overgrown': (5.0E-3, None, None), 'Water conduit, finished with smoothed plaster': (5.0E-3, None, None), 'New, very well manufactured, hand smoothed, prime-coated joints': (1.0E-4, 2.0E-4, None), 'Hand-smoothed cement finish and smoothed joints': (1.5E-4, 3.5E-4, None), 'Used, no deposits, moderately smooth, steel or wooden casing, joints prime coated but not smoothed': (3.0E-4, 6.0E-4, None), 'Used, prefabricated monoliths, cement plaster (wood floated), rough joints': (5.0E-4, 1.0E-3, None), 'Conduits for water, sprayed surface of concrete': (5.0E-4, 1.0E-3, None), 'Smoothed air-placed, either sprayed concrete or concrete on more concrete': (None, None, 5.0E-4), 'Brushed air-placed, either sprayed concrete or concrete on more concrete': (None, None, 2.3E-3), 'Non-smoothed air-placed, either sprayed concrete or concrete on more concrete': (3.0E-3, 6.0E-3, None), 'Smoothed air-placed, either sprayed concrete or concrete on more concrete': (6.0E-3, 1.7E-2, None)} concrete_reinforced_tubes = {'New': (2.5E-4, 3.4E-4, None), 'Nonprocessed': (2.5E-3, None, None)} asbestos_cement = {'New': (5.0E-5, 1.0E-4, None), 'Average': (6.0E-4, None, None)} cement_tubes = {'Smoothed': (3.0E-4, 8.0E-4, None), 'Non processed': (1.0E-3, 2.0E-3, None), 'Joints, non smoothed': (1.9E-3, 6.4E-3, None)} cement_mortar_channels = { 'Plaster, cement, smoothed joints and protrusions, and a casing': (5.0E-5, 2.2E-4, None), 'Steel trowled': (None, None, 5.0E-4)} cement_other = {'Plaster over a screen': (1.0E-2, 1.5E-2, None), 'Salt-glazed ceramic': (None, None, 1.4E-3), 'Slag-concrete': (None, None, 1.5E-3), 'Slag and alabaster-filling': (1.0E-3, 1.5E-3, None)} concretes = {'Concrete water conduits, no finish': concrete_water_conduits, 'Reinforced concrete tubes': concrete_reinforced_tubes, 'Asbestos cement tubes': asbestos_cement, 'Cement tubes': cement_tubes, 'Cement-mortar plaster channels': cement_mortar_channels, 'Other': cement_other} wood_tube = {'Boards, thoroughly dressed': (None, None, 1.5E-4), 'Boards, well dressed': (None, None, 3.0E-4), 'Boards, undressed but fitted': (None, None, 7.0E-4), 'Boards, undressed': (None, None, 1.0E-3), 'Staved': (None, None, 6.0E-4)} plywood_tube = {'Birch plywood, transverse grain, good quality': (None, None, 1.2E-4), 'Birch plywood, longitudal grain, good quality': (3.0E-5, 5.0E-5, None)} glass_tube = {'Glass': (1.5E-6, 1.0E-5, None)} wood_plywood_glass = {'Wood tubes': wood_tube, 'Plywood tubes': plywood_tube, 'Glass tubes': glass_tube} rock_channels = {'Blast-hewed, little jointing': (1.0E-1, 1.4E-1, None), 'Blast-hewed, substantial jointing': (1.3E-1, 5.0E-1, None), 'Roughly cut or very uneven surface': (5.0E-1, 1.5E+0, None)} unlined_tunnels = {'Rocks, gneiss, diameter 3-13.5 m': (3.0E-1, 7.0E-1, None), 'Rocks, granite, diameter 3-9 m': (2.0E-1, 7.0E-1, None), 'Shale, diameter, diameter 9-12 m': (2.5E-1, 6.5E-1, None), 'Shale, quartz, quartzile, diameter 7-10 m': (2.0E-1, 6.0E-1, None), 'Shale, sedimentary, diameter 4-7 m': (None, None, 4.0E-1), 'Shale, nephrite bearing, diameter 3-8 m': (None, None, 2.0E-1)} tunnels = {'Rough channels in rock': rock_channels, 'Unlined tunnels': unlined_tunnels} # Roughness, in m _roughness = {'Brass': .00000152, 'Lead': .00000152, 'Glass': .00000152, 'Steel': .00000152, 'Asphalted cast iron': .000122, 'Galvanized iron': .000152, 'Cast iron': .000259, 'Wood stave': .000183, 'Rough wood stave': .000914, 'Concrete': .000305, 'Rough concrete': .00305, 'Riveted steel': .000914, 'Rough riveted steel': .00914} # Create a more friendly data structure '''Holds a dict of tuples in format (min, max, average) roughness values in meters from the source Idelʹchik, I. E, and A. S Ginevskiĭ. Handbook of Hydraulic Resistance. Redding, CT: Begell House, 2007. ''' HHR_roughness = {} HHR_roughness_dicts = [tunnels, wood_plywood_glass, concretes, steels] HHR_roughness_categories = {} [HHR_roughness_categories.update(i) for i in HHR_roughness_dicts] for d in HHR_roughness_dicts: for k, v in d.items(): for name, values in v.items(): HHR_roughness[str(k)+', ' + name] = values # For searching only _all_roughness = HHR_roughness.copy() _all_roughness.update(_roughness) # Format : ID: (avg_roughness, coef A (inches), coef B (inches)) _Farshad_roughness = {'Plastic coated': (5E-6, 0.0002, -1.0098), 'Carbon steel, honed bare': (12.5E-6, 0.0005, -1.0101), 'Cr13, electropolished bare': (30E-6, 0.0012, -1.0086), 'Cement lining': (33E-6, 0.0014, -1.0105), 'Carbon steel, bare': (36E-6, 0.0014, -1.0112), 'Fiberglass lining': (38E-6, 0.0016, -1.0086), 'Cr13, bare': (55E-6, 0.0021, -1.0055) } def roughness_Farshad(ID=None, D=None, coeffs=None): r'''Calculates of retrieves the roughness of a pipe based on the work of [1]_. This function will return an average value for pipes of a given material, or if diameter is provided, will calculate one specifically for the pipe inner diameter according to the following expression with constants `A` and `B`: .. math:: \epsilon = A\cdot D^{B+1} Please not that `A` has units of inches, and `B` requires `D` to be in inches as well. The list of supported materials is as follows: * 'Plastic coated' * 'Carbon steel, honed bare' * 'Cr13, electropolished bare' * 'Cement lining' * 'Carbon steel, bare' * 'Fiberglass lining' * 'Cr13, bare' If `coeffs` and `D` are given, the custom coefficients for the equation as given by the user will be used and `ID` is not required. Parameters ---------- ID : str, optional Name of pipe material from above list D : float, optional Actual inner diameter of pipe, [m] coeffs : tuple, optional (A, B) Coefficients to use directly, instead of looking them up; they are actually dimensional, in the forms (inch^-B, -) but only coefficients with those dimensions are available [-] Returns ------- epsilon : float Roughness of pipe [m] Notes ----- The diameter-dependent form provides lower roughness values for larger diameters. The measurements were based on DIN 4768/1 (1987), using both a "Dektak ST Surface Profiler" and a "Hommel Tester T1000". Both instruments were found to be in agreement. A series of flow tests, in which pressure drop directly measured, were performed as well, with nitrogen gas as an operating fluid. The accuracy of the data from these tests is claimed to be within 1%. Using those results, the authors back-calculated what relative roughness values would be necessary to produce the observed pressure drops. The average difference between this back-calculated roughness and the measured roughness was 6.75%. For microchannels, this model will predict roughness much larger than the actual channel diameter. Examples -------- >>> roughness_Farshad('Cr13, bare', 0.05) 5.3141677781137006e-05 References ---------- .. [1] Farshad, Fred F., and Herman H. Rieke. "Surface Roughness Design Values for Modern Pipes." SPE Drilling & Completion 21, no. 3 (September 1, 2006): 212-215. doi:10.2118/89040-PA. ''' # Case 1, coeffs given; only run if ID is not given. if ID is None and coeffs: A, B = coeffs return A*(D/inch)**(B+1)*inch # Case 2, lookup parameters try : dat = _Farshad_roughness[ID] except: raise KeyError('ID was not in _Farshad_roughness.') if D is None: return dat[0] else: A, B = dat[1], dat[2] return A*(D/inch)**(B+1)*inch roughness_clean_dict = _roughness.copy() roughness_clean_dict.update(_Farshad_roughness) def nearest_material_roughness(name, clean=None): r'''Searches through either a dict of clean pipe materials or used pipe materials and conditions and returns the ID of the nearest material. Search is performed with either the standard library's difflib or with the fuzzywuzzy module if available. Parameters ---------- name : str Search term for matching pipe materials clean : bool, optional If True, search only clean pipe database; if False, search only the dirty database; if None, search both Returns ------- ID : str String for lookup of roughness of a pipe, in either `roughness_clean_dict` or `HHR_roughness` depending on if clean is True, [-] Examples -------- >>> nearest_material_roughness('condensate pipes', clean=False) 'Seamless steel tubes, Condensate pipes in open systems or periodically operated steam pipelines' References ---------- .. [1] Idelʹchik, I. E, and A. S Ginevskiĭ. Handbook of Hydraulic Resistance. Redding, CT: Begell House, 2007. ''' d = _all_roughness if clean is None else (roughness_clean_dict if clean else HHR_roughness) return fuzzy_match(name, d.keys()) def material_roughness(ID, D=None, optimism=None): r'''Searches through either a dict of clean pipe materials or used pipe materials and conditions and returns the ID of the nearest material. Search is performed with either the standard library's difflib or with the fuzzywuzzy module if available. Parameters ---------- ID : str Search terms for matching pipe materials, [-] D : float, optional Diameter of desired pipe; used only if ID is in [2]_, [m] optimism : bool, optional For values in [1]_, a minimum, maximum, and average value is normally given; if True, returns the minimum roughness; if False, the maximum roughness; and if None, returns the average roughness. Most entries do not have all three values, so fallback logic to return the closest entry is used, [-] Returns ------- roughness : float Retrieved or calculated roughness, [m] Examples -------- >>> material_roughness('condensate pipes') 0.0005 References ---------- .. [1] Idelʹchik, I. E, and A. S Ginevskiĭ. Handbook of Hydraulic Resistance. Redding, CT: Begell House, 2007. .. [2] Farshad, Fred F., and Herman H. Rieke. "Surface Roughness Design Values for Modern Pipes." SPE Drilling & Completion 21, no. 3 (September 1, 2006): 212-215. doi:10.2118/89040-PA. ''' if ID in _Farshad_roughness: return roughness_Farshad(ID, D) elif ID in _roughness: return _roughness[ID] elif ID in HHR_roughness: minimum, maximum, avg = HHR_roughness[ID] if optimism is None: return avg if avg else (maximum if maximum else minimum) elif optimism is True: return minimum if minimum else (avg if avg else maximum) else: return maximum if maximum else (avg if avg else minimum) else: return material_roughness(nearest_material_roughness(ID, clean=False), D=D, optimism=optimism) def transmission_factor(fd=None, F=None): r'''Calculates either transmission factor from Darcy friction factor, or Darcy friction factor from the transmission factor. Raises an exception if neither input is given. Transmission factor is a term used in compressible gas flow in pipelines. .. math:: F = \frac{2}{\sqrt{f_d}} .. math:: f_d = \frac{4}{F^2} Parameters ---------- fd : float, optional Darcy friction factor, [-] F : float, optional Transmission factor, [-] Returns ------- fd or F : float Darcy friction factor or transmission factor [-] Examples -------- >>> transmission_factor(fd=0.0185) 14.704292441876154 >>> transmission_factor(F=20) 0.01 References ---------- .. [1] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. ''' if fd: return 2./fd**0.5 elif F: return 4./(F*F) else: raise Exception('Either Darcy friction factor or transmission factor is needed') def one_phase_dP(m, rho, mu, D, roughness=0, L=1, Method=None): r'''Calculates single-phase pressure drop. This is a wrapper around other methods. Parameters ---------- m : float Mass flow rate of fluid, [kg/s] rho : float Density of fluid, [kg/m^3] mu : float Viscosity of fluid, [Pa*s] D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe for use in calculating friction factor, [m] L : float, optional Length of pipe, [m] Method : string, optional A string of the function name to use Returns ------- dP : float Pressure drop of the single-phase flow, [Pa] Notes ----- Examples -------- >>> one_phase_dP(10.0, 1000, 1E-5, .1, L=1) 63.43447321097365 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. ''' D2 = D*D V = m/(0.25*pi*D2*rho) Re = Reynolds(V=V, rho=rho, mu=mu, D=D) fd = friction_factor(Re=Re, eD=roughness/D, Method=Method) dP = fd*L/D*(0.5*rho*V*V) return dP def one_phase_dP_acceleration(m, D, rho_o, rho_i): r'''This function handles calculation of one-phase fluid pressure drop due to acceleration for flow inside channels. This is a discrete calculation, providing the total differential in pressure for a given length and should be called as part of a segment solver routine. .. math:: - \left(\frac{d P}{dz}\right)_{acc} = G^2 \frac{d}{dz} \left[\frac{ 1}{\rho_o} - \frac{1}{\rho_i} \right] Parameters ---------- m : float Mass flow rate of fluid, [kg/s] D : float Diameter of pipe, [m] rho_o : float Fluid density out, [kg/m^3] rho_i : float Fluid density int, [kg/m^3] Returns ------- dP : float Acceleration component of pressure drop for one-phase flow, [Pa] Notes ----- Examples -------- >>> one_phase_dP_acceleration(m=1, D=0.1, rho_o=827.1, rho_i=830) 0.06848289670840459 ''' G = 4.0*m/(pi*D*D) return G*G*(1.0/rho_o - 1.0/rho_i) def one_phase_dP_dz_acceleration(m, D, rho, dv_dP, dP_dL, dA_dL): r'''This function handles calculation of one-phase fluid pressure drop due to acceleration for flow inside channels. This is a continuous calculation, providing the differential in pressure per unit length and should be called as part of an integration routine ([1]_, [2]_). .. math:: -\left(\frac{\partial P}{\partial L}\right)_{A} = G^2 \frac{\partial P}{\partial L}\left[\frac{\partial (1/\rho)}{\partial P} \right]- \frac{G^2}{\rho}\frac{1}{A}\frac{\partial A}{\partial L} Parameters ---------- m : float Mass flow rate of fluid, [kg/s] D : float Diameter of pipe, [m] rho : float Fluid density, [kg/m^3] dv_dP : float Derivative of mass specific volume of the fluid with respect to pressure, [m^3/(kg*Pa)] dP_dL : float Pressure drop per unit length of pipe, [Pa/m] dA_dL : float Change in area of pipe per unit length of pipe, [m^2/m] Returns ------- dP_dz : float Acceleration component of pressure drop for one-phase flow, [Pa/m] Notes ----- The value returned here is positive for pressure loss and negative for pressure increase. As `dP_dL` is not known, this equation is normally used in a more complicated way than this function provides; this method can be used to check the consistency of that routine. Examples -------- >>> one_phase_dP_dz_acceleration(m=1, D=0.1, rho=827.1, dv_dP=-1.1E-5, ... dP_dL=5E5, dA_dL=0.0001) 89162.89116373913 References ---------- .. [1] Shoham, Ovadia. Mechanistic Modeling of Gas-Liquid Two-Phase Flow in Pipes. Pap/Cdr edition. Richardson, TX: Society of Petroleum Engineers, 2006. ''' A = 0.25*pi*D*D G = m/A return -G*G*(dP_dL*dv_dP - dA_dL/(rho*A)) def one_phase_dP_gravitational(angle, rho, L=1.0, g=g): r'''This function handles calculation of one-phase liquid-gas pressure drop due to gravitation for flow inside channels. This is either a differential calculation for a segment with an infinitesimal difference in elevation (if `L`=1 or a discrete calculation. .. math:: -\left(\frac{dP}{dz} \right)_{grav} = \rho g \sin \theta .. math:: -\left(\Delta P \right)_{grav} = L \rho g \sin \theta Parameters ---------- angle : float The angle of the pipe with respect to the horizontal, [degrees] rho : float Fluid density, [kg/m^3] L : float, optional Length of pipe, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- dP : float Gravitational component of pressure drop for one-phase flow, [Pa/m] or [Pa] Notes ----- Examples -------- >>> one_phase_dP_gravitational(angle=90, rho=2.6) 25.49729 >>> one_phase_dP_gravitational(angle=90, rho=2.6, L=4) 101.98916 ''' angle = radians(angle) return L*g*sin(angle)*rho fluids-0.1.78/fluids/drag.py0000644000175000017500000013201313632560624014415 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import exp, log, log10, tanh from fluids.constants import g from fluids.numerics import newton from fluids.core import Reynolds from fluids.numerics import numpy as np __all__ = ['drag_sphere', 'v_terminal', 'integrate_drag_sphere', 'time_v_terminal_Stokes', 'Stokes', 'Barati', 'Barati_high', 'Rouse', 'Engelund_Hansen', 'Clift_Gauvin', 'Morsi_Alexander', 'Graf', 'Flemmer_Banks', 'Khan_Richardson', 'Swamee_Ojha', 'Yen', 'Haider_Levenspiel', 'Cheng', 'Terfous', 'Mikhailov_Freire', 'Clift', 'Ceylan', 'Almedeij', 'Morrison', 'Song_Xu'] def Stokes(Re): r'''Calculates drag coefficient of a smooth sphere using Stoke's law. .. math:: C_D = 24/Re Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 0.3 Examples -------- >>> Stokes(0.1) 240.0 References ---------- .. [1] Rhodes, Martin J. Introduction to Particle Technology. Wiley, 2013. ''' return 24./Re def Barati(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_. .. math:: C_D = 5.4856\times10^9\tanh(4.3774\times10^{-9}/Re) + 0.0709\tanh(700.6574/Re) + 0.3894\tanh(74.1539/Re) - 0.1198\tanh(7429.0843/Re) + 1.7174\tanh[9.9851/(Re+2.3384)] + 0.4744 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- Matching example in [1]_, in a table of calculated values. >>> Barati(200.) 0.7682237950389874 References ---------- .. [1] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Cd = (5.4856E9*tanh(4.3774E-9/Re) + 0.0709*tanh(700.6574/Re) + 0.3894*tanh(74.1539/Re) - 0.1198*tanh(7429.0843/Re) + 1.7174*tanh(9.9851/(Re+2.3384)) + 0.4744) return Cd def Barati_high(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_. .. math:: C_D = 8\times 10^{-6}\left[(Re/6530)^2 + \tanh(Re) - 8\ln(Re)/\ln(10)\right] - 0.4119\exp(-2.08\times10^{43}/[Re + Re^2]^4) -2.1344\exp(-\{[\ln(Re^2 + 10.7563)/\ln(10)]^2 + 9.9867\}/Re) +0.1357\exp(-[(Re/1620)^2 + 10370]/Re) - 8.5\times 10^{-3}\{2\ln[\tanh(\tanh(Re))]/\ln(10) - 2825.7162\}/Re + 2.4795 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 1E6 This model is the wider-range model the authors developed. At sufficiently low diameters or Re values, drag is no longer a phenomena. Examples -------- Matching example in [1]_, in a table of calculated values. >>> Barati_high(200.) 0.7730544082789523 References ---------- .. [1] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Re2 = Re*Re t0 = 1.0/Re t1 = (Re/6530.) t2 = (Re/1620.) t3 = log10(Re2 + 10.7563) tanhRe = tanh(Re) Cd = (8E-6*(t1*t1 + tanhRe - 8.0*log10(Re)) - 0.4119*exp(-2.08E43/(Re+Re2)**4) - 2.1344*exp(-t0*(t3*t3 + 9.9867)) + 0.1357*exp(-t0*(t2*t2 + 10370.)) - 8.5E-3*t0*(2.0*log10(tanh(tanhRe)) - 2825.7162) + 2.4795) return Cd def Rouse(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re} + \frac{3}{Re^{0.5}} + 0.34 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Rouse(200.) 0.6721320343559642 References ---------- .. [1] H. Rouse, Fluid Mechanics for Hydraulic Engineers, Dover, New York, N.Y., 1938 .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re + 3/Re**0.5 + 0.34 def Engelund_Hansen(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re} + 1.5 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Engelund_Hansen(200.) 1.62 References ---------- .. [1] F. Engelund, E. Hansen, Monograph on Sediment Transport in Alluvial Streams, Monograpsh Denmark Technical University, Hydraulic Lab, Denmark, 1967. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re + 1.5 def Clift_Gauvin(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re}(1 + 0.152Re^{0.677}) + \frac{0.417} {1 + 5070Re^{-0.94}} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Clift_Gauvin(200.) 0.7905400398000133 References ---------- .. [1] R. Clift, W.H. Gauvin, The motion of particles in turbulent gas streams, Proc. Chemeca, 70, 1970, pp. 14-28. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re*(1 + 0.152*Re**0.677) + 0.417/(1 + 5070*Re**-0.94) def Morsi_Alexander(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \left\{ \begin{array}{ll} \frac{24}{Re} & \mbox{if $Re < 0.1$}\\ \frac{22.73}{Re}+\frac{0.0903}{Re^2} + 3.69 & \mbox{if $0.1 < Re < 1$}\\ \frac{29.1667}{Re}-\frac{3.8889}{Re^2} + 1.2220 & \mbox{if $1 < Re < 10$}\\ \frac{46.5}{Re}-\frac{116.67}{Re^2} + 0.6167 & \mbox{if $10 < Re < 100$}\\ \frac{98.33}{Re}-\frac{2778}{Re^2} + 0.3644 & \mbox{if $100 < Re < 1000$}\\ \frac{148.62}{Re}-\frac{4.75\times10^4}{Re^2} + 0.3570 & \mbox{if $1000 < Re < 5000$}\\ \frac{-490.5460}{Re}+\frac{57.87\times10^4}{Re^2} + 0.46 & \mbox{if $5000 < Re < 10000$}\\ \frac{-1662.5}{Re}+\frac{5.4167\times10^6}{Re^2} + 0.5191 & \mbox{if $10000 < Re < 50000$}\end{array} \right. Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5. Original was reviewed, and confirmed to contain the cited equations. Examples -------- >>> Morsi_Alexander(200) 0.7866 References ---------- .. [1] Morsi, S. A., and A. J. Alexander. "An Investigation of Particle Trajectories in Two-Phase Flow Systems." Journal of Fluid Mechanics 55, no. 02 (September 1972): 193-208. doi:10.1017/S0022112072001806. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' if Re < 0.1: return 24./Re elif Re < 1: return 22.73/Re + 0.0903/Re**2 + 3.69 elif Re < 10: return 29.1667/Re - 3.8889/Re**2 + 1.222 elif Re < 100: return 46.5/Re - 116.67/Re**2 + 0.6167 elif Re < 1000: return 98.33/Re - 2778./Re**2 + 0.3644 elif Re < 5000: return 148.62/Re - 4.75E4/Re**2 + 0.357 elif Re < 10000: return -490.546/Re + 57.87E4/Re**2 + 0.46 else: return -1662.5/Re + 5.4167E6/Re**2 + 0.5191 def Graf(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re} + \frac{7.3}{1+Re^{0.5}} + 0.25 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Graf(200.) 0.8520984424785725 References ---------- .. [1] W.H. Graf, Hydraulics of Sediment Transport, Water Resources Publications, Littleton, Colorado, 1984. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re + 7.3/(1 + Re**0.5) + 0.25 def Flemmer_Banks(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re}10^E .. math:: E = 0.383Re^{0.356}-0.207Re^{0.396} - \frac{0.143}{1+(\log_{10} Re)^2} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Flemmer_Banks(200.) 0.7849169609270039 References ---------- .. [1] Flemmer, R. L. C., and C. L. Banks. "On the Drag Coefficient of a Sphere." Powder Technology 48, no. 3 (November 1986): 217-21. doi:10.1016/0032-5910(86)80044-4. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' E = 0.383*Re**0.356 - 0.207*Re**0.396 - 0.143/(1 + (log10(Re))**2) return 24./Re*10**E def Khan_Richardson(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = (2.49Re^{-0.328} + 0.34Re^{0.067})^{3.18} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Khan_Richardson(200.) 0.7747572379211097 References ---------- .. [1] Khan, A. R., and J. F. Richardson. "The Resistance to Motion of a Solid Sphere in a Fluid." Chemical Engineering Communications 62, no. 1-6 (December 1, 1987): 135-50. doi:10.1080/00986448708912056. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return (2.49*Re**-0.328 + 0.34*Re**0.067)**3.18 def Swamee_Ojha(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = 0.5\left\{16\left[(\frac{24}{Re})^{1.6} + (\frac{130}{Re})^{0.72} \right]^{2.5}+ \left[\left(\frac{40000}{Re}\right)^2 + 1\right]^{-0.25} \right\}^{0.25} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 1.5E5 Examples -------- >>> Swamee_Ojha(200.) 0.8490012397545713 References ---------- .. [1] Swamee, P. and Ojha, C. (1991). "Drag Coefficient and Fall Velocity of nonspherical particles." J. Hydraul. Eng., 117(5), 660-667. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Cd = 0.5*(16*((24./Re)**1.6 + (130./Re)**0.72)**2.5 + ((40000./Re)**2 + 1)**-0.25)**0.25 return Cd def Yen(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re}\left(1 + 0.15\sqrt{Re} + 0.017Re\right) - \frac{0.208}{1+10^4Re^{-0.5}} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Yen(200.) 0.7822647002187014 References ---------- .. [1] B.C. Yen, Sediment Fall Velocity in Oscillating Flow, University of Virginia, Department of Civil Engineering, 1992. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re*(1 + 0.15*Re**0.5 + 0.017*Re) - 0.208/(1 + 1E4*Re**-0.5) def Haider_Levenspiel(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D=\frac{24}{Re}(1+0.1806Re^{0.6459})+\left(\frac{0.4251}{1 +\frac{6880.95}{Re}}\right) Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 An improved version of this correlation is in Brown and Lawler. Examples -------- >>> Haider_Levenspiel(200.) 0.7959551680251666 References ---------- .. [1] Haider, A., and O. Levenspiel. "Drag Coefficient and Terminal Velocity of Spherical and Nonspherical Particles." Powder Technology 58, no. 1 (May 1989): 63-70. doi:10.1016/0032-5910(89)80008-7. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re*(1 + 0.1806*Re**0.6459) + (0.4251/(1 + 6880.95/Re)) def Cheng(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D=\frac{24}{Re}(1+0.27Re)^{0.43}+0.47[1-\exp(-0.04Re^{0.38})] Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 2E5 Examples -------- >>> Cheng(200.) 0.7939143028294227 References ---------- .. [1] Cheng, Nian-Sheng. "Comparison of Formulas for Drag Coefficient and Settling Velocity of Spherical Particles." Powder Technology 189, no. 3 (February 13, 2009): 395-398. doi:10.1016/j.powtec.2008.07.006. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 24./Re*(1. + 0.27*Re)**0.43 + 0.47*(1. - exp(-0.04*Re**0.38)) def Terfous(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = 2.689 + \frac{21.683}{Re} + \frac{0.131}{Re^2} - \frac{10.616}{Re^{0.1}} + \frac{12.216}{Re^{0.2}} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is 0.1 < Re <= 5E4 Examples -------- >>> Terfous(200.) 0.7814651149769638 References ---------- .. [1] Terfous, A., A. Hazzab, and A. Ghenaim. "Predicting the Drag Coefficient and Settling Velocity of Spherical Particles." Powder Technology 239 (May 2013): 12-20. doi:10.1016/j.powtec.2013.01.052. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' return 2.689 + 21.683/Re + 0.131/Re**2 - 10.616/Re**0.1 + 12.216/Re**0.2 def Mikhailov_Freire(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{3808[(1617933/2030) + (178861/1063)Re + (1219/1084)Re^2]} {681Re[(77531/422) + (13529/976)Re - (1/71154)Re^2]} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 118300 Examples -------- >>> Mikhailov_Freire(200.) 0.7514111388018659 References ---------- .. [1] Mikhailov, M. D., and A. P. Silva Freire. "The Drag Coefficient of a Sphere: An Approximation Using Shanks Transform." Powder Technology 237 (March 2013): 432-35. doi:10.1016/j.powtec.2012.12.033. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Cd = (3808.*((1617933./2030.) + (178861./1063.)*Re + (1219./1084.)*Re**2) /(681.*Re*((77531./422.) + (13529./976.)*Re - (1./71154.)*Re**2))) return Cd def Clift(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \left\{ \begin{array}{ll} \frac{24}{Re} + \frac{3}{16} & \mbox{if $Re < 0.01$}\\ \frac{24}{Re}(1 + 0.1315Re^{0.82 - 0.05\log Re}) & \mbox{if $0.01 < Re < 20$}\\ \frac{24}{Re}(1 + 0.1935Re^{0.6305}) & \mbox{if $20 < Re < 260$}\\ 10^{[1.6435 - 1.1242\log Re + 0.1558[\log Re]^2} & \mbox{if $260 < Re < 1500$}\\ 10^{[-2.4571 + 2.5558\log Re - 0.9295[\log Re]^2 + 0.1049[\log Re]^3} & \mbox{if $1500 < Re < 12000$}\\ 10^{[-1.9181 + 0.6370\log Re - 0.0636[\log Re]^2} & \mbox{if $12000 < Re < 44000$}\\ 10^{[-4.3390 + 1.5809\log Re - 0.1546[\log Re]^2} & \mbox{if $44000 < Re < 338000$}\\ 9.78 - 5.3\log Re & \mbox{if $338000 < Re < 400000$}\\ 0.19\log Re - 0.49 & \mbox{if $400000 < Re < 1000000$}\end{array} \right. Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 1E6. Examples -------- >>> Clift(200) 0.7756342422322543 References ---------- .. [1] R. Clift, J.R. Grace, M.E. Weber, Bubbles, Drops, and Particles, Academic, New York, 1978. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' if Re < 0.01: return 24./Re + 3/16. elif Re < 20: return 24./Re*(1 + 0.1315*Re**(0.82 - 0.05*log10(Re))) elif Re < 260: return 24./Re*(1 + 0.1935*Re**(0.6305)) elif Re < 1500: return 10**(1.6435 - 1.1242*log10(Re) + 0.1558*(log10(Re))**2) elif Re < 12000: return 10**(-2.4571 + 2.5558*log10(Re) - 0.9295*(log10(Re))**2 + 0.1049*log10(Re)**3) elif Re < 44000: return 10**(-1.9181 + 0.6370*log10(Re) - 0.0636*(log10(Re))**2) elif Re < 338000: return 10**(-4.3390 + 1.5809*log10(Re) - 0.1546*(log10(Re))**2) elif Re < 400000: return 29.78 - 5.3*log10(Re) else: return 0.19*log10(Re) - 0.49 def Ceylan(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = 1 - 0.5\exp(0.182) + 10.11Re^{-2/3}\exp(0.952Re^{-1/4}) - 0.03859Re^{-4/3}\exp(1.30Re^{-1/2}) + 0.037\times10^{-4}Re\exp(-0.125\times10^{-4}Re) -0.116\times10^{-10}Re^2\exp(-0.444\times10^{-5}Re) Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is 0.1 < Re <= 1E6 Original article reviewed. Examples -------- >>> Ceylan(200.) 0.7816735980280175 References ---------- .. [1] Ceylan, Kadim, Ayşe Altunbaş, and Gudret Kelbaliyev. "A New Model for Estimation of Drag Force in the Flow of Newtonian Fluids around Rigid or Deformable Particles." Powder Technology 119, no. 2-3 (September 24, 2001): 250-56. doi:10.1016/S0032-5910(01)00261-3. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Cd = (1 - 0.5*exp(0.182) + 10.11*Re**(-2/3.)*exp(0.952*Re**-0.25) - 0.03859*Re**(-4/3.)*exp(1.30*Re**-0.5) + 0.037E-4*Re*exp(-0.125E-4*Re) - 0.116E-10*Re**2*exp(-0.444E-5*Re)) return Cd def Almedeij(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \left[\frac{1}{(\phi_1 + \phi_2)^{-1} + (\phi_3)^{-1}} + \phi_4\right]^{0.1} .. math:: \phi_1 = (24Re^{-1})^{10} + (21Re^{-0.67})^{10} + (4Re^{-0.33})^{10} + 0.4^{10} .. math:: \phi_2 = \left[(0.148Re^{0.11})^{-10} + (0.5)^{-10}\right]^{-1} .. math:: \phi_3 = (1.57\times10^8Re^{-1.625})^{10} .. math:: \phi_4 = \left[(6\times10^{-17}Re^{2.63})^{-10} + (0.2)^{-10}\right]^{-1} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 1E6. Original work has been reviewed. Examples -------- >>> Almedeij(200.) 0.7114768646813396 References ---------- .. [1] Almedeij, Jaber. "Drag Coefficient of Flow around a Sphere: Matching Asymptotically the Wide Trend." Powder Technology 186, no. 3 (September 10, 2008): 218-23. doi:10.1016/j.powtec.2007.12.006. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' phi4 = ((6E-17*Re**2.63)**-10 + 0.2**-10)**-1 phi3 = (1.57E8*Re**-1.625)**10 phi2 = ((0.148*Re**0.11)**-10 + 0.5**-10)**-1 phi1 = (24*Re**-1)**10 + (21*Re**-0.67)**10 + (4*Re**-0.33)**10 + 0.4**10 return (1/((phi1 + phi2)**-1 + phi3**-1) + phi4)**0.1 def Morrison(Re): r'''Calculates drag coefficient of a smooth sphere using the method in [1]_ as described in [2]_. .. math:: C_D = \frac{24}{Re} + \frac{2.6Re/5}{1 + \left(\frac{Re}{5}\right)^{1.52}} + \frac{0.411 \left(\frac{Re}{263000}\right)^{-7.94}}{1 + \left(\frac{Re}{263000}\right)^{-8}} + \frac{Re^{0.8}}{461000} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] Notes ----- Range is Re <= 1E6. Examples -------- >>> Morrison(200.) 0.767731559965325 References ---------- .. [1] Morrison, Faith A. An Introduction to Fluid Mechanics. Cambridge University Press, 2013. .. [2] Barati, Reza, Seyed Ali Akbar Salehi Neyshabouri, and Goodarz Ahmadi. "Development of Empirical Models with High Accuracy for Estimation of Drag Coefficient of Flow around a Smooth Sphere: An Evolutionary Approach." Powder Technology 257 (May 2014): 11-19. doi:10.1016/j.powtec.2014.02.045. ''' Cd = (24./Re + 2.6*Re/5./(1 + (Re/5.)**1.52) + 0.411*(Re/263000.)**-7.94/(1 + (Re/263000.)**-8) + Re**0.8/461000.) return Cd def Song_Xu(Re, sphericity=1., S=1.): r'''Calculates drag coefficient of a particle using the method in [1]_. Developed with data for spheres, cubes, and cylinders. Claims 3.52% relative error for 0.001 < Re < 100 based on 336 tests data. .. math:: C_d = \frac{24}{Re\phi^{0.65}S^{0.3}}\left(1 + 0.35Re\right)^{0.44} Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] sphericity : float, optional Sphericity of the particle S : float, optional Ratio of equivalent sphere area and the projected area in the particle settling direction [-] Returns ------- Cd : float Drag coefficient of particle [-] Notes ----- Notable as its experimental data and analysis is included in their supporting material. Examples -------- >>> Song_Xu(30.) 2.3431335190092444 References ---------- .. [1] Song, Xianzhi, Zhengming Xu, Gensheng Li, Zhaoyu Pang, and Zhaopeng Zhu. "A New Model for Predicting Drag Coefficient and Settling Velocity of Spherical and Non-Spherical Particle in Newtonian Fluid." Powder Technology 321 (November 2017): 242-50. doi:10.1016/j.powtec.2017.08.017. ''' return 24/(Re*sphericity**0.65*S**0.3)*(1+0.35*Re)**0.44 drag_sphere_correlations = { 'Stokes': (Stokes, None, 0.3), 'Barati': (Barati, None, 2E5), 'Barati_high': (Barati_high, None, 1E6), 'Rouse': (Rouse, None, 2E5), 'Engelund_Hansen': (Engelund_Hansen, None, 2E5), 'Clift_Gauvin': (Clift_Gauvin, None, 2E5), 'Morsi_Alexander': (Morsi_Alexander, None, 2E5), 'Graf': (Graf, None, 2E5), 'Flemmer_Banks': (Flemmer_Banks, None, 2E5), 'Khan_Richardson': (Khan_Richardson, None, 2E5), 'Swamee_Ojha': (Swamee_Ojha, None, 1.5E5), 'Yen': (Yen, None, 2E5), 'Haider_Levenspiel': (Haider_Levenspiel, None, 2E5), 'Cheng': (Cheng, None, 2E5), 'Terfous': (Terfous, 0.1, 5E4), 'Mikhailov_Freire': (Mikhailov_Freire, None, 118300), 'Clift': (Clift, None, 1E6), 'Ceylan': (Ceylan, 0.1, 1E6), 'Almedeij': (Almedeij, None, 1E6), 'Morrison': (Morrison, None, 1E6), 'Song_Xu': (Song_Xu, None, 1E3) } def drag_sphere(Re, Method=None, AvailableMethods=False): r'''This function handles calculation of drag coefficient on spheres. Twenty methods are available, all requiring only the Reynolds number of the sphere. Most methods are valid from Re=0 to Re=200,000. A correlation will be automatically selected if none is specified. The full list of correlations valid for a given Reynolds number can be obtained with the `AvailableMethods` flag. If no correlation is selected, the following rules are used: * If Re < 0.01, use Stoke's solution. * If 0.01 <= Re < 0.1, linearly combine 'Barati' with Stokes's solution such that at Re = 0.1 the solution is 'Barati', and at Re = 0.01 the solution is 'Stokes'. * If 0.1 <= Re <= ~212963, use the 'Barati' solution. * If ~212963 < Re <= 1E6, use the 'Barati_high' solution. * For Re > 1E6, raises an exception; no valid results have been found. Examples -------- >>> drag_sphere(200) 0.7682237950389874 Parameters ---------- Re : float Particle Reynolds number of the sphere using the surrounding fluid density and viscosity, [-] Returns ------- Cd : float Drag coefficient [-] methods : list, only returned if AvailableMethods == True List of methods which can be used to calculate `Cd` with the given `Re` Other Parameters ---------------- Method : string, optional A string of the function name to use, as in the dictionary drag_sphere_correlations AvailableMethods : bool, optional If True, function will consider which methods which can be used to calculate `Cd` with the given `Re` ''' def list_methods(): methods = [] for key, (func, Re_min, Re_max) in drag_sphere_correlations.items(): if (Re_min is None or Re > Re_min) and (Re_max is None or Re < Re_max): methods.append(key) return methods if AvailableMethods: return list_methods() if not Method: if Re > 0.1: # Smooth transition point between the two models if Re <= 212963.26847812787: return Barati(Re) elif Re <= 1E6: return Barati_high(Re) else: raise ValueError('No models implement a solution for Re > 1E6') elif Re >= 0.01: # Re from 0.01 to 0.1 ratio = (Re - 0.01)/(0.1 - 0.01) # Ensure a smooth transition by linearly switching to Stokes' law return ratio*Barati(Re) + (1-ratio)*Stokes(Re) else: return Stokes(Re) if Method in drag_sphere_correlations: return drag_sphere_correlations[Method][0](Re) else: raise Exception('Failure in in function') def v_terminal(D, rhop, rho, mu, Method=None): r'''Calculates terminal velocity of a falling sphere using any drag coefficient method supported by `drag_sphere`. The laminar solution for Re < 0.01 is first tried; if the resulting terminal velocity does not put it in the laminar regime, a numerical solution is used. .. math:: v_t = \sqrt{\frac{4 g d_p (\rho_p-\rho_f)}{3 C_D \rho_f }} Parameters ---------- D : float Diameter of the sphere, [m] rhop : float Particle density, [kg/m^3] rho : float Density of the surrounding fluid, [kg/m^3] mu : float Viscosity of the surrounding fluid [Pa*s] Method : string, optional A string of the function name to use, as in the dictionary drag_sphere_correlations Returns ------- v_t : float Terminal velocity of falling sphere [m/s] Notes ----- As there are no correlations implemented for Re > 1E6, an error will be raised if the numerical solver seeks a solution above that limit. The laminar solution is given in [1]_ and is: .. math:: v_t = \frac{g d_p^2 (\rho_p - \rho_f)}{18 \mu_f} Examples -------- >>> v_terminal(D=70E-6, rhop=2600., rho=1000., mu=1E-3) 0.004142497244531304 Example 7-1 in GPSA handbook, 13th edition: >>> from scipy.constants import * >>> v_terminal(D=150E-6, rhop=31.2*lb/foot**3, rho=2.07*lb/foot**3, mu=1.2e-05)/foot 0.4491992020345101 The answer reported there is 0.46 ft/sec. References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Rushton, Albert, Anthony S. Ward, and Richard G. Holdich. Solid-Liquid Filtration and Separation Technology. 1st edition. Weinheim ; New York: Wiley-VCH, 1996. ''' '''The following would be the ideal implementation. The actual function is optimized for speed, not readability def err(V): Re = rho*V*D/mu Cd = Barati_high(Re) V2 = (4/3.*g*D*(rhop-rho)/rho/Cd)**0.5 return (V-V2) return fsolve(err, 1.)''' v_lam = g*D*D*(rhop-rho)/(18*mu) Re_lam = Reynolds(V=v_lam, D=D, rho=rho, mu=mu) if Re_lam < 0.01 or Method == 'Stokes': return v_lam Re_almost = rho*D/mu main = 4/3.*g*D*(rhop-rho)/rho V_max = 1E6/rho/D*mu # where the correlation breaks down, Re=1E6 def err(V): Cd = drag_sphere(Re_almost*V, Method=Method) return V - (main/Cd)**0.5 # Begin the solver with 1/100 th the velocity possible at the maximum # Reynolds number the correlation is good for return float(newton(err, V_max/100, tol=1E-12)) def time_v_terminal_Stokes(D, rhop, rho, mu, V0, tol=1e-14): r'''Calculates the time required for a particle in Stoke's regime only to reach terminal velocity (approximately). An infinitely long period is required theoretically, but with floating points, it is possible to calculate the time required to come within a specified `tol` of that terminal velocity. .. math:: t_{term} = -\frac{1}{18\mu}\ln \left(\frac{D^2g\rho - D^2 g \rho_p + 18\mu V_{term}}{D^2g\rho - D^2 g \rho_p + 18\mu V_0 } \right) D^2 \rho_p Parameters ---------- D : float Diameter of the sphere, [m] rhop : float Particle density, [kg/m^3] rho : float Density of the surrounding fluid, [kg/m^3] mu : float Viscosity of the surrounding fluid [Pa*s] V0 : float Initial velocity of the particle, [m/s] tol : float, optional How closely to approach the terminal velocity - the target velocity is the terminal velocity multiplied by 1 (+/-) this, depending on if the particle is accelerating or decelerating, [-] Returns ------- t : float Time for the particle to reach the terminal velocity to within the specified or an achievable tolerance, [s] Notes ----- The symbolic solution was obtained via Wolfram Alpha. If a solution cannot be obtained due to floating point error at very high tolerance, an exception is raised - but first, the tolerance is doubled, up to fifty times in an attempt to obtain the highest possible precision while sill giving an answer. If at any point the tolerance is larger than 1%, an exception is also raised. Examples -------- >>> time_v_terminal_Stokes(D=1e-7, rhop=2200., rho=1.2, mu=1.78E-5, V0=1) 3.188003113787153e-06 >>> time_v_terminal_Stokes(D=1e-2, rhop=2200., rho=1.2, mu=1.78E-5, V0=1, ... tol=1e-30) 24800.636391802 ''' if tol < 1e-17: tol = 2e-17 term = D*D*g*rho - D*D*g*rhop denominator = term + 18.*mu*V0 v_term_base = g*D*D*(rhop-rho)/(18.*mu) const = D*D*rhop/mu*-1.0/18. for i in range(50): try: if v_term_base < V0: v_term = v_term_base*(1.0 + tol) else: v_term = v_term_base*(1.0 - tol) numerator = term + 18.*mu*v_term return log(numerator/denominator)*const except ValueError: tol = tol + tol if tol > 0.01: raise Exception('Could not find a solution') raise Exception('Could not find a solution') def integrate_drag_sphere(D, rhop, rho, mu, t, V=0, Method=None, distance=False): r'''Integrates the velocity and distance traveled by a particle moving at a speed which will converge to its terminal velocity. Performs an integration of the following expression for acceleration: .. math:: a = \frac{g(\rho_p-\rho_f)}{\rho_p} - \frac{3C_D \rho_f u^2}{4D \rho_p} Parameters ---------- D : float Diameter of the sphere, [m] rhop : float Particle density, [kg/m^3] rho : float Density of the surrounding fluid, [kg/m^3] mu : float Viscosity of the surrounding fluid [Pa*s] t : float Time to integrate the particle to, [s] V : float Initial velocity of the particle, [m/s] Method : string, optional A string of the function name to use, as in the dictionary drag_sphere_correlations distance : bool, optional Whether or not to calculate the distance traveled and return it as well Returns ------- v : float Velocity of falling sphere after time `t` [m/s] x : float, returned only if `distance` == True Distance traveled by the falling sphere in time `t`, [m] Notes ----- This can be relatively slow as drag correlations can be complex. There are analytical solutions available for the Stokes law regime (Re < 0.3). They were obtained from Wolfram Alpha. [1]_ was not used in the derivation, but also describes the derivation fully. .. math:: V(t) = \frac{\exp(-at) (V_0 a + b(\exp(at) - 1))}{a} .. math:: x(t) = \frac{\exp(-a t)\left[V_0 a(\exp(a t) - 1) + b\exp(a t)(a t-1) + b\right]}{a^2} .. math:: a = \frac{18\mu_f}{D^2\rho_p} .. math:: b = \frac{g(\rho_p-\rho_f)}{\rho_p} The analytical solution will automatically be used if the initial and terminal velocity is show the particle's behavior to be laminar. Note that this behavior requires that the terminal velocity of the particle be solved for - this adds slight (1%) overhead for the cases where particles are not laminar. Examples -------- >>> integrate_drag_sphere(D=0.001, rhop=2200., rho=1.2, mu=1.78E-5, t=0.5, ... V=30, distance=True) (9.686465044053476, 7.8294546436299175) References ---------- .. [1] Timmerman, Peter, and Jacobus P. van der Weele. "On the Rise and Fall of a Ball with Linear or Quadratic Drag." American Journal of Physics 67, no. 6 (June 1999): 538-46. https://doi.org/10.1119/1.19320. ''' laminar_initial = Reynolds(V=V, rho=rho, D=D, mu=mu) < 0.01 v_laminar_end_assumed = v_terminal(D=D, rhop=rhop, rho=rho, mu=mu, Method=Method) laminar_end = Reynolds(V=v_laminar_end_assumed, rho=rho, D=D, mu=mu) < 0.01 if Method == 'Stokes' or (laminar_initial and laminar_end and Method is None): try: t1 = 18.0*mu/(D*D*rhop) t2 = g*(rhop-rho)/rhop V_end = exp(-t1*t)*(t1*V + t2*(exp(t1*t) - 1.0))/t1 x_end = exp(-t1*t)*(V*t1*(exp(t1*t) - 1.0) + t2*exp(t1*t)*(t1*t - 1.0) + t2)/(t1*t1) if distance: return V_end, x_end else: return V_end except OverflowError: # It is only necessary to integrate to terminal velocity t_to_terminal = time_v_terminal_Stokes(D, rhop, rho, mu, V0=V, tol=1e-9) if t_to_terminal > t: raise Exception('Should never happen') V_end, x_end = integrate_drag_sphere(D=D, rhop=rhop, rho=rho, mu=mu, t=t_to_terminal, V=V, Method='Stokes', distance=True) # terminal velocity has been reached - V does not change, but x does # No reason to believe this isn't working even though it isn't # matching the ode solver if distance: return V_end, x_end + V_end*(t - t_to_terminal) else: return V_end # This is a serious problem for small diameters # It would be possible to step slowly, using smaller increments # of time to avlid overflows. However, this unfortunately quickly # gets much, exponentially, slower than just using odeint because # for example solving 10000 seconds might require steps of .0001 # seconds at a diameter of 1e-7 meters. # x = 0.0 # subdivisions = 10 # dt = t/subdivisions # for i in range(subdivisions): # V, dx = integrate_drag_sphere(D=D, rhop=rhop, rho=rho, mu=mu, # t=dt, V=V, distance=True, # Method=Method) # x += dx # if distance: # return V, x # else: # return V Re_ish = rho*D/mu c1 = g*(rhop-rho)/rhop c2 = -0.75*rho/(D*rhop) def dv_dt(V, t): if V == 0: # 64/Re goes to infinity, but gets multiplied by 0 squared. t2 = 0.0 else: # t2 = c2*V*V*Stokes(Re_ish*V) t2 = c2*V*V*drag_sphere(Re_ish*V, Method=Method) return c1 + t2 # Number of intervals for the solution to be solved for; the integrator # doesn't care what we give it, but a large number of intervals are needed # For an accurate integration of the particle's distance traveled pts = 1000 if distance else 2 ts = np.linspace(0, t, pts) # Delayed import of necessaray functions from scipy.integrate import odeint, cumtrapz # Perform the integration Vs = odeint(dv_dt, [V], ts) # V_end = float(Vs[-1]) if distance: # Calculate the distance traveled x = float(cumtrapz(np.ravel(Vs), ts)[-1]) return V_end, x else: return V_end fluids-0.1.78/fluids/two_phase_voidage.py0000644000175000017500000025473513632560624017207 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import exp, log, pi, sin, cos, radians from fluids.constants import g from fluids.core import Froude __all__ = ['Thom', 'Zivi', 'Smith', 'Fauske', 'Chisholm_voidage', 'Turner_Wallis', 'homogeneous', 'Chisholm_Armand', 'Armand', 'Nishino_Yamazaki', 'Guzhov', 'Kawahara', 'Baroczy', 'Tandon_Varma_Gupta', 'Harms', 'Domanski_Didion', 'Graham', 'Yashar', 'Huq_Loth', 'Kopte_Newell_Chato', 'Steiner', 'Rouhani_1', 'Rouhani_2', 'Nicklin_Wilkes_Davidson', 'Gregory_Scott', 'Dix', 'Sun_Duffey_Peng', 'Xu_Fang_voidage', 'Woldesemayat_Ghajar', 'Lockhart_Martinelli_Xtt', 'two_phase_voidage_experimental', 'density_two_phase', 'Beattie_Whalley', 'McAdams', 'Cicchitti', 'Lin_Kwok', 'Fourar_Bories', 'liquid_gas_voidage', 'gas_liquid_viscosity', 'two_phase_voidage_correlations', 'liquid_gas_viscosity_correlations'] ### Models based on slip ratio def Thom(x, rhol, rhog, mul, mug): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right)\left(\frac{\rho_g} {\rho_l}\right)^{0.89}\left(\frac{\mu_l}{\mu_g}\right)^{0.18} \right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Based on experimental data for boiling of water. [3]_ presents a slightly different model. However, its results are almost identical. A comparison can be found in the unit tests. Neither expression was found in [1]_ in a brief review. Examples -------- >>> Thom(.4, 800, 2.5, 1E-3, 1E-5) 0.9801482164042417 References ---------- .. [1] Thom, J. R. S. "Prediction of Pressure Drop during Forced Circulation Boiling of Water." International Journal of Heat and Mass Transfer 7, no. 7 (July 1, 1964): 709-24. doi:10.1016/0017-9310(64)90002-X. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' return (1 + (1-x)/x * (rhog/rhol)**0.89 * (mul/mug)**0.18)**-1 # return x*((mug/mul)**(111/1000)*(rhol/rhog)**(111/200))**1.6/(x*(((mug/mul)**(111/1000)*(rhol/rhog)**(111/200))**1.6 - 1) + 1) def Zivi(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right) \left(\frac{\rho_g}{\rho_l}\right)^{2/3}\right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Based on experimental data for boiling of water. More complicated variants of this are also in [1]_. Examples -------- >>> Zivi(.4, 800, 2.5) 0.9689339909056356 References ---------- .. [1] Zivi, S. M. "Estimation of Steady-State Steam Void-Fraction by Means of the Principle of Minimum Entropy Production." Journal of Heat Transfer 86, no. 2 (May 1, 1964): 247-51. doi:10.1115/1.3687113. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' return (1 + (1-x)/x * (rhog/rhol)**(2/3.))**-1 def Smith(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_, also given in [2]_ and [3]_. .. math:: \alpha = \left\{1 + \left(\frac{1-x}{x}\right) \left(\frac{\rho_g}{\rho_l}\right)\left[K+(1-K) \sqrt{\frac{\frac{\rho_l}{\rho_g} + K\left(\frac{1-x}{x}\right)} {1 + K\left(\frac{1-x}{x}\right)}}\right] \right\}^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ is an easy to read paper and has been reviewed. The form of the expression here is rearranged somewhat differently than in [1]_ but has been verified to be numerically equivalent. The form of this in [3]_ is missing a square root on a bracketed term; this appears in multiple papers by the authors. Examples -------- >>> Smith(.4, 800, 2.5) 0.959981235534199 References ---------- .. [1] Smith, S. L. "Void Fractions in Two-Phase Flow: A Correlation Based upon an Equal Velocity Head Model." Proceedings of the Institution of Mechanical Engineers 184, no. 1 (June 1, 1969): 647-64. doi:10.1243/PIME_PROC_1969_184_051_02. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' K = 0.4 x_ratio = (1-x)/x root = ((rhol/rhog + K*x_ratio) / (1 + K*x_ratio))**0.5 alpha = (1 + (x_ratio) * (rhog/rhol) * (K + (1-K)*root))**-1 return alpha def Fauske(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_, as given in [2]_ and [3]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right) \left(\frac{\rho_g}{\rho_l}\right)^{0.5}\right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has not been reviewed. However, both [2]_ and [3]_ present it the same way. Examples -------- >>> Fauske(.4, 800, 2.5) 0.9226347262627932 References ---------- .. [1] Fauske, H., Critical two-phase, steam-water flows, in: Heat Transfer and Fluid Mechanics Institute 1961: Proceedings. Stanford University Press, 1961, p. 79-89. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' return (1 + (1-x)/x*(rhog/rhol)**0.5)**-1 def Chisholm_voidage(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_, as given in [2]_ and [3]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right)\left(\frac{\rho_g} {\rho_l}\right)\sqrt{1 - x\left(1-\frac{\rho_l}{\rho_g}\right)} \right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has not been reviewed. However, both [2]_ and [3]_ present it the same way. Examples -------- >>> Chisholm_voidage(.4, 800, 2.5) 0.949525900374774 References ---------- .. [1] Chisholm, D. "Pressure Gradients due to Friction during the Flow of Evaporating Two-Phase Mixtures in Smooth Tubes and Channels." International Journal of Heat and Mass Transfer 16, no. 2 (February 1, 1973): 347-58. doi:10.1016/0017-9310(73)90063-X. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' S = (1 - x*(1-rhol/rhog))**0.5 alpha = (1 + (1-x)/x*rhog/rhol*S)**-1 return alpha def Turner_Wallis(x, rhol, rhog, mul, mug): r'''Calculates void fraction in two-phase flow according to the model of [1]_, as given in [2]_ and [3]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right)^{0.72}\left(\frac{\rho_g} {\rho_l}\right)^{0.4}\left(\frac{\mu_l}{\mu_g}\right)^{0.08} \right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has not been reviewed. However, both [2]_ and [3]_ present it the same way, if slightly differently rearranged. Examples -------- >>> Turner_Wallis(.4, 800, 2.5, 1E-3, 1E-5) 0.8384824581634625 References ---------- .. [1] J.M. Turner, G.B. Wallis, The Separate-cylinders Model of Two-phase Flow, NYO-3114-6, Thayer's School Eng., Dartmouth College, Hanover, New Hampshire, USA, 1965. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' return (1 + ((1-x)/x)**0.72 * (rhog/rhol)**0.4 * (mul/mug)**0.08)**-1 ### Models using the Homogeneous flow model def homogeneous(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the homogeneous flow model, reviewed in [1]_, [2]_, and [3]_. .. math:: \alpha = \frac{1}{1 + \left(\frac{1-x}{x}\right)\frac{\rho_g}{\rho_l}} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> homogeneous(.4, 800, 2.5) 0.995334370139969 References ---------- .. [1] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [2] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' return 1.0/(1.0 + (1.0 - x)/x*(rhog/rhol)) def Chisholm_Armand(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model presented in [1]_ based on that of [2]_ as shown in [3]_, [4]_, and [5]_. .. math:: \alpha = \frac{\alpha_h}{\alpha_h + (1-\alpha_h)^{0.5}} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Chisholm_Armand(.4, 800, 2.5) 0.9357814394262114 References ---------- .. [1] Chisholm, Duncan. Two-Phase Flow in Pipelines and Heat Exchangers. Institution of Chemical Engineers, 1983. .. [2] Armand, Aleksandr Aleksandrovich. The Resistance During the Movement of a Two-Phase System in Horizontal Pipes. Atomic Energy Research Establishment, 1959. .. [3] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [4] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [5] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' alpha_h = homogeneous(x, rhol, rhog) return alpha_h/(alpha_h + (1-alpha_h)**0.5) def Armand(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model presented in [1]_ as shown in [2]_, [3]_, and [4]_. .. math:: \alpha = 0.833\alpha_h Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Armand(.4, 800, 2.5) 0.8291135303265941 References ---------- .. [1] Armand, Aleksandr Aleksandrovich. The Resistance During the Movement of a Two-Phase System in Horizontal Pipes. Atomic Energy Research Establishment, 1959. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [4] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' return 0.833*homogeneous(x, rhol, rhog) def Nishino_Yamazaki(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model presented in [1]_ as shown in [2]_. .. math:: \alpha = 1 - \left(\frac{1-x}{x}\frac{\rho_g}{\rho_l}\right)^{0.5} \alpha_h^{0.5} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ is in Japanese. [3]_ either shows this model as iterative in terms of voidage, or forgot to add a H subscript to its second voidage term; the second is believed more likely. Examples -------- >>> Nishino_Yamazaki(.4, 800, 2.5) 0.931694583962682 References ---------- .. [1] Nishino, Haruo, and Yasaburo Yamazaki. "A New Method of Evaluating Steam Volume Fractions in Boiling Systems." Journal of the Atomic Energy Society of Japan / Atomic Energy Society of Japan 5, no. 1 (1963): 39-46. doi:10.3327/jaesj.5.39. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' alpha_h = homogeneous(x, rhol, rhog) return 1 - ((1-x)*rhog/x/rhol)**0.5*alpha_h**0.5 def Guzhov(x, rhol, rhog, m, D): r'''Calculates void fraction in two-phase flow according to the model in [1]_ as shown in [2]_ and [3]_. .. math:: \alpha = 0.81[1 - \exp(-2.2\sqrt{Fr_{tp}})]\alpha_h Fr_{tp} = \frac{G_{tp}^2}{gD\rho_{tp}^2} \rho_{tp} = \left(\frac{1-x}{\rho_l} + \frac{x}{\rho_g}\right)^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Guzhov(.4, 800, 2.5, 1, .3) 0.7626030108534588 References ---------- .. [1] Guzhov, A. I, Vasiliĭ Andreevich Mamaev, and G. E Odisharii︠a︡. A Study of Transportation in Gas-Liquid Systems. Une Étude Sur Le Transport Des Systèmes Gaz-Liquides. Bruxelles: International Gas Union, 1967. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' rho_tp = ((1-x)/rhol + x/rhog)**-1 G = m/(pi/4*D**2) V_tp = G/rho_tp Fr = Froude(V=V_tp, L=D, squared=True) # squaring in undone later; Fr**0.5 alpha_h = homogeneous(x, rhol, rhog) return 0.81*(1 - exp(-2.2*Fr**0.5))*alpha_h def Kawahara(x, rhol, rhog, D): r'''Calculates void fraction in two-phase flow according to the model presented in [1]_, also reviewed in [2]_ and [3]_. This expression is for microchannels. .. math:: \alpha = \frac{C_1 \alpha_h^{0.5}}{1 - C_2\alpha_h^{0.5}} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] D : float Diameter of the channel, [m] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- C1 and C2 were constants for different diameters. Only diameters of 100 and 50 mircometers were studied in [1]_. Here, the coefficients are distributed for three ranges, > 250 micrometers, 250-75 micrometers, and < 75 micrometers. The `Armand` model is used for the first, C1 and C2 are 0.03 and 0.97 for the second, and C1 and C2 are 0.02 and 0.98 for the third. Examples -------- >>> Kawahara(.4, 800, 2.5, 100E-6) 0.9276148194410238 References ---------- .. [1] Kawahara, A., M. Sadatomi, K. Okayama, M. Kawaji, and P. M.-Y. Chung. "Effects of Channel Diameter and Liquid Properties on Void Fraction in Adiabatic Two-Phase Flow Through Microchannels." Heat Transfer Engineering 26, no. 3 (February 16, 2005): 13-19. doi:10.1080/01457630590907158. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' if D > 250E-6: return Armand(x, rhol, rhog) elif D > 75E-6: C1, C2 = 0.03, 0.97 else: C1, C2 = 0.02, 0.98 alpha_h = homogeneous(x, rhol, rhog) return C1*alpha_h**0.5/(1. - C2*alpha_h**0.5) ### Miscellaneous correlations def Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug, pow_x=0.9, pow_rho=0.5, pow_mu=0.1, n=None): r'''Calculates the Lockhart-Martinelli Xtt two-phase flow parameter in a general way according to [2]_. [1]_ is said to describe this. However, very different definitions of this parameter have been used elsewhere. Accordingly, the powers of each of the terms can be set. Alternatively, if the parameter `n` is provided, the powers for viscosity and phase fraction will be calculated from it as shown below. .. math:: X_{tt} = \left(\frac{1-x}{x}\right)^{0.9} \left(\frac{\rho_g}{\rho_l} \right)^{0.5}\left(\frac{\mu_l}{\mu_g}\right)^{0.1} .. math:: X_{tt} = \left(\frac{1-x}{x}\right)^{(2-n)/2} \left(\frac{\rho_g} {\rho_l}\right)^{0.5}\left(\frac{\mu_l}{\mu_g}\right)^{n/2} Parameters ---------- x : float Quality at the specific tube interval [-] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] pow_x : float, optional Power for the phase ratio (1-x)/x, [-] pow_rho : float, optional Power for the density ratio rhog/rhol, [-] pow_mu : float, optional Power for the viscosity ratio mul/mug, [-] n : float, optional Number to be used for calculating pow_x and pow_mu if provided, [-] Returns ------- Xtt : float Xtt Lockhart-Martinelli two-phase flow parameter [-] Notes ----- Xtt is best regarded as an empirical parameter. If used, n is often 0.2 or 0.25. Examples -------- >>> Lockhart_Martinelli_Xtt(0.4, 800, 2.5, 1E-3, 1E-5) 0.12761659240532292 References ---------- .. [1] Lockhart, R. W. & Martinelli, R. C. (1949), "Proposed correlation of data for isothermal two-phase, two-component flow in pipes", Chemical Engineering Progress 45 (1), 39-48. .. [2] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' if n: pow_x = (2-n)/2. pow_mu = n/2. return ((1-x)/x)**pow_x * (rhog/rhol)**pow_rho * (mul/mug)**pow_mu def Baroczy(x, rhol, rhog, mul, mug): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_, [3]_, and [4]_. .. math:: \alpha = \left[1 + \left(\frac{1-x}{x}\right)^{0.74}\left(\frac{\rho_g} {\rho_l}\right)^{0.65}\left(\frac{\mu_l}{\mu_g}\right)^{0.13} \right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Baroczy(.4, 800, 2.5, 1E-3, 1E-5) 0.9453544598460807 References ---------- .. [1] Baroczy, C. Correlation of liquid fraction in two-phase flow with applications to liquid metals, Chem. Eng. Prog. Symp. Ser. 61 (1965) 179-191. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [4] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug, pow_x=0.74, pow_rho=0.65, pow_mu=0.13) return (1 + Xtt)**-1 def Tandon_Varma_Gupta(x, rhol, rhog, mul, mug, m, D): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_, [3]_, and [4]_. For 50 < Rel < 1125: .. math:: \alpha = 1- 1.928Re_l^{-0.315}[F(X_{tt})]^{-1} + 0.9293Re_l^{-0.63} [F(X_{tt})]^{-2} For Rel > 1125: .. math:: \alpha = 1- 0.38 Re_l^{-0.088}[F(X_{tt})]^{-1} + 0.0361 Re_l^{-0.176} [F(X_{tt})]^{-2} .. math:: F(X_{tt}) = 0.15[X_{tt}^{-1} + 2.85X_{tt}^{-0.476}] Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ does not specify how it defines the liquid Reynolds number. [2]_ disagrees with [3]_ and [4]_; the later variant was selected, with: .. math:: Re_l = \frac{G_{tp}D}{\mu_l} The lower limit on Reynolds number is not enforced. Examples -------- >>> Tandon_Varma_Gupta(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3) 0.9228265670341428 References ---------- .. [1] Tandon, T. N., H. K. Varma, and C. P. Gupta. "A Void Fraction Model for Annular Two-Phase Flow." International Journal of Heat and Mass Transfer 28, no. 1 (January 1, 1985): 191-198. doi:10.1016/0017-9310(85)90021-3. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [4] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' G = m/(pi/4*D**2) Rel = G*D/mul Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug) Fxtt = 0.15*(Xtt**-1 + 2.85*Xtt**-0.476) if Rel < 1125: alpha = 1 - 1.928*Rel**-0.315/Fxtt + 0.9293*Rel**-0.63/Fxtt**2 else: alpha = 1 - 0.38*Rel**-0.088/Fxtt + 0.0361*Rel**-0.176/Fxtt**2 return alpha def Harms(x, rhol, rhog, mul, mug, m, D): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_ and [3]_. .. math:: \alpha = \left[1 - 10.06Re_l^{-0.875}(1.74 + 0.104Re_l^{0.5})^2 \left(1.376 + \frac{7.242}{X_{tt}^{1.655}}\right)^{-0.5}\right]^2 .. math:: Re_l = \frac{G_{tp}(1-x)D}{\mu_l} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed. Examples -------- >>> Harms(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3) 0.9653289762907554 References ---------- .. [1] Tandon, T. N., H. K. Varma, and C. P. Gupta. "A Void Fraction Model for Annular Two-Phase Flow." International Journal of Heat and Mass Transfer 28, no. 1 (January 1, 1985): 191-198. doi:10.1016/0017-9310(85)90021-3. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' G = m/(pi/4*D**2) Rel = G*D*(1-x)/mul Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug) return (1 - 10.06*Rel**-0.875*(1.74 + 0.104*Rel**0.5)**2 *(1.376 + 7.242/Xtt**1.655)**-0.5) def Domanski_Didion(x, rhol, rhog, mul, mug): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_ and [3]_. if Xtt < 10: .. math:: \alpha = (1 + X_{tt}^{0.8})^{-0.378} Otherwise: .. math:: \alpha = 0.823- 0.157\ln(X_{tt}) Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed. [2]_ gives an exponent of -0.38 instead of -0.378 as is in [1]_. [3]_ describes only the novel half of the correlation. The portion for Xtt > 10 is novel; the other is said to be from their 31st reference, Wallis. There is a discontinuity at Xtt = 10. Examples -------- >>> Domanski_Didion(.4, 800, 2.5, 1E-3, 1E-5) 0.9355795597059169 References ---------- .. [1] Domanski, Piotr, and David A. Didion. "Computer Modeling of the Vapor Compression Cycle with Constant Flow Area Expansion Device." Report. UNT Digital Library, May 1983. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug) if Xtt < 10: return (1 + Xtt**0.8)**-0.378 else: return 0.823 - 0.157*log(Xtt) def Graham(x, rhol, rhog, mul, mug, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_ and [3]_. .. math:: \alpha = 1 - \exp\{-1 - 0.3\ln(Ft) - 0.0328[\ln(Ft)]^2\} .. math:: Ft = \left[\frac{G_{tp}^2 x^3}{(1-x)\rho_g^2gD}\right]^{0.5} .. math:: \alpha = 0 \text{ for } F_t \le 0.01032 Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed. [2]_ does not list that the expression is not real below a certain value of Ft. Examples -------- >>> Graham(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3) 0.6403336287530644 References ---------- .. [1] Graham, D. M. "Experimental Investigation of Void Fraction During Refrigerant Condensation." ACRC Technical Report 135. Air Conditioning and Refrigeration Center. College of Engineering. University of Illinois at Urbana-Champaign., December 1997. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' G = m/(pi/4*D**2) Ft = (G**2*x**3/((1-x)*rhog**2*g*D))**0.5 if Ft < 0.01032: return 0 else: return 1 - exp(-1 - 0.3*log(Ft) - 0.0328*log(Ft)**2) def Yashar(x, rhol, rhog, mul, mug, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_ and [3]_. .. math:: \alpha = \left[1 + \frac{1}{Ft} + X_{tt}\right]^{-0.321} .. math:: Ft = \left[\frac{G_{tp}^2 x^3}{(1-x)\rho_g^2gD}\right]^{0.5} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed; both [2]_ and [3]_ give it correctly. Examples -------- >>> Yashar(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3) 0.7934893185789146 References ---------- .. [1] Yashar, D. A., M. J. Wilson, H. R. Kopke, D. M. Graham, J. C. Chato, and T. A. Newell. "An Investigation of Refrigerant Void Fraction in Horizontal, Microfin Tubes." HVAC&R Research 7, no. 1 (January 1, 2001): 67-82. doi:10.1080/10789669.2001.10391430. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' G = m/(pi/4*D**2) Ft = (G**2*x**3/((1-x)*rhog**2*g*D))**0.5 Xtt = Lockhart_Martinelli_Xtt(x, rhol, rhog, mul, mug) return (1 + 1./Ft + Xtt)**-0.321 def Huq_Loth(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_, also given in [2]_, [3]_, and [4]_. .. math:: \alpha = 1 - \frac{2(1-x)^2}{1 - 2x + \left[1 + 4x(1-x)\left(\frac {\rho_l}{\rho_g}-1\right)\right]^{0.5}} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed, and matches the expressions given in the reviews [2]_, [3]_, and [4]_; the form of the expression is rearranged somewhat differently. Examples -------- >>> Huq_Loth(.4, 800, 2.5) 0.9593868838476147 References ---------- .. [1] Huq, Reazul, and John L. Loth. "Analytical Two-Phase Flow Void Prediction Method." Journal of Thermophysics and Heat Transfer 6, no. 1 (January 1, 1992): 139-44. doi:10.2514/3.329. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. .. [4] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' B = 2*x*(1-x) D = (1 + 2*B*(rhol/rhog -1))**0.5 return 1 - 2*(1-x)**2/(1 - 2*x + D) def Kopte_Newell_Chato(x, rhol, rhog, mul, mug, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_. .. math:: \alpha = 1.045 - \exp\{-1 - 0.342\ln(Ft) - 0.0268[\ln(Ft)]^2 + 0.00597[\ln(Ft)]^3\} .. math:: Ft = \left[\frac{G_{tp}^2 x^3}{(1-x)\rho_g^2gD}\right]^{0.5} .. math:: \alpha = \alpha_h \text{ for } F_t \le 0.044 Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] mul : float Viscosity of liquid [Pa*s] mug : float Viscosity of gas [Pa*s] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed. If is recommended this expression not be used above Ft values of 454. Examples -------- >>> Kopte_Newell_Chato(.4, 800, 2.5, 1E-3, 1E-5, m=1, D=0.3) 0.6864466770087425 References ---------- .. [1] Kopke, H. R. "Experimental Investigation of Void Fraction During Refrigerant Condensation in Horizontal Tubes." ACRC Technical Report 142. Air Conditioning and Refrigeration Center. College of Engineering. University of Illinois at Urbana-Champaign., August 1998. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. ''' G = m/(pi/4*D**2) Ft = (G**2*x**3/((1-x)*rhog**2*g*D))**0.5 if Ft < 0.044: return homogeneous(x, rhol, rhog) else: return 1.045 - exp(-1 - 0.342*log(Ft) - 0.0268*log(Ft)**2 + 0.00597*log(Ft)**3) ### Drift flux models def Steiner(x, rhol, rhog, sigma, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ also given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = \frac{1.18(1-x)}{\rho_l^{0.5}}[g\sigma(\rho_l-\rho_g)]^{0.25} .. math:: C_0 = 1 + 0.12(1-x) Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- [1]_ has been reviewed. Examples -------- >>> Steiner(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3) 0.895950181381335 References ---------- .. [1] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Dalkilic, A. S., S. Laohalertdecha, and S. Wongwises. "Effect of Void Fraction Models on the Two-Phase Friction Factor of R134a during Condensation in Vertical Downward Flow in a Smooth Tube." International Communications in Heat and Mass Transfer 35, no. 8 (October 2008): 921-27. doi:10.1016/j.icheatmasstransfer.2008.04.001. ''' G = m/(pi/4*D**2) C0 = 1 + 0.12*(1-x) vgm = 1.18*(1-x)/rhol**0.5*(g*sigma*(rhol-rhog))**0.25 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 def Rouhani_1(x, rhol, rhog, sigma, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = \frac{1.18(1-x)}{\rho_l^{0.5}}[g\sigma(\rho_l-\rho_g)]^{0.25} .. math:: C_0 = 1 + 0.2(1-x) Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- The expression as quoted in [2]_ and [3]_ could not be found in [1]_. Examples -------- >>> Rouhani_1(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3) 0.8588420244136714 References ---------- .. [1] Rouhani, S. Z, and E Axelsson. "Calculation of Void Volume Fraction in the Subcooled and Quality Boiling Regions." International Journal of Heat and Mass Transfer 13, no. 2 (February 1, 1970): 383-93. doi:10.1016/0017-9310(70)90114-6. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' G = m/(pi/4*D**2) C0 = 1 + 0.2*(1-x) vgm = 1.18*(1-x)/rhol**0.5*(g*sigma*(rhol-rhog))**0.25 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 def Rouhani_2(x, rhol, rhog, sigma, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = \frac{1.18(1-x)}{\rho_l^{0.5}}[g\sigma(\rho_l-\rho_g)]^{0.25} .. math:: C_0 = 1 + 0.2(1-x)(gD)^{0.25}\left(\frac{\rho_l}{G_{tp}}\right)^{0.5} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- The expression as quoted in [2]_ and [3]_ could not be found in [1]_. Examples -------- >>> Rouhani_2(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3) 0.44819733138968865 References ---------- .. [1] Rouhani, S. Z, and E Axelsson. "Calculation of Void Volume Fraction in the Subcooled and Quality Boiling Regions." International Journal of Heat and Mass Transfer 13, no. 2 (February 1, 1970): 383-93. doi:10.1016/0017-9310(70)90114-6. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' G = m/(pi/4*D**2) C0 = 1 + 0.2*(1-x)*(g*D)**0.25*(rhol/G)**0.5 vgm = 1.18*(1-x)/rhol**0.5*(g*sigma*(rhol-rhog))**0.25 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 def Nicklin_Wilkes_Davidson(x, rhol, rhog, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = 0.35\sqrt{gD} .. math:: C_0 = 1.2 Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Nicklin_Wilkes_Davidson(0.4, 800., 2.5, m=1, D=0.3) 0.6798826626721431 References ---------- .. [1] D. Nicklin, J. Wilkes, J. Davidson, "Two-phase flow in vertical tubes", Trans. Inst. Chem. Eng. 40 (1962) 61-68. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' G = m/(pi/4*D**2) C0 = 1.2 vgm = 0.35*(g*D)**0.5 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 def Gregory_Scott(x, rhol, rhog): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = 0 .. math:: C_0 = 1.19 Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Gregory_Scott(0.4, 800., 2.5) 0.8364154370924108 References ---------- .. [1] Gregory, G. A., and D. S. Scott. "Correlation of Liquid Slug Velocity and Frequency in Horizontal Cocurrent Gas-Liquid Slug Flow." AIChE Journal 15, no. 6 (November 1, 1969): 933-35. doi:10.1002/aic.690150623. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' C0 = 1.19 return x/rhog*(C0*(x/rhog + (1-x)/rhol))**-1 def Dix(x, rhol, rhog, sigma, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = 2.9\left(g\sigma\frac{\rho_l-\rho_g}{\rho_l^2}\right)^{0.25} .. math:: C_0 = \frac{v_{sg}}{v_m}\left[1 + \left(\frac{v_{sl}}{v_{sg}}\right) ^{\left(\left(\frac{\rho_g}{\rho_l}\right)^{0.1}\right)}\right] .. math:: v_{gs} = \frac{mx}{\rho_g \frac{\pi}{4}D^2} .. math:: v_{ls} = \frac{m(1-x)}{\rho_l \frac{\pi}{4}D^2} .. math:: v_m = v_{gs} + v_{ls} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Has formed the basis for several other correlations. Examples -------- >>> Dix(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3) 0.8268737961156514 References ---------- .. [1] Gary Errol. Dix. "Vapor Void Fractions for Forced Convection with Subcooled Boiling at Low Flow Rates." Thesis. University of California, Berkeley, 1971. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' vgs = m*x/(rhog*pi/4*D**2) vls = m*(1-x)/(rhol*pi/4*D**2) G = m/(pi/4*D**2) C0 = vgs/(vls+vgs)*(1 + (vls/vgs)**((rhog/rhol)**0.1)) vgm = 2.9*(g*sigma*(rhol-rhog)/rhol**2)**0.25 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 def Sun_Duffey_Peng(x, rhol, rhog, sigma, m, D, P, Pc, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_ as given in [2]_ and [3]_. .. math:: \alpha = \frac{x}{\rho_g}\left[C_0\left(\frac{x}{\rho_g} + \frac{1-x} {\rho_l}\right) +\frac{v_{gm}}{G} \right]^{-1} .. math:: v_{gm} = 1.41\left[\frac{g\sigma(\rho_l-\rho_g)}{\rho_l^2}\right]^{0.25} .. math:: C_0 = \left(0.82 + 0.18\frac{P}{P_c}\right)^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] P : float Pressure of the fluid, [Pa] Pc : float Critical pressure of the fluid, [Pa] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> Sun_Duffey_Peng(0.4, 800., 2.5, sigma=0.02, m=1, D=0.3, P=1E5, Pc=7E6) 0.7696546506515833 References ---------- .. [1] K.H. Sun, R.B. Duffey, C.M. Peng, A thermal-hydraulic analysis of core uncover, in: Proceedings of the 19th National Heat Transfer Conference, Experimental and Analytical Modeling of LWR Safety Experiments, 1980, pp. 1-10. Orlando, Florida, USA. .. [2] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. .. [3] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' G = m/(pi/4*D**2) C0 = (0.82 + 0.18*P/Pc)**-1 vgm = 1.41*(g*sigma*(rhol-rhog)/rhol**2)**0.25 return x/rhog*(C0*(x/rhog + (1-x)/rhol) + vgm/G)**-1 # Correlations developed in reviews def Xu_Fang_voidage(x, rhol, rhog, m, D, g=g): r'''Calculates void fraction in two-phase flow according to the model developed in the review of [1]_. .. math:: \alpha = \left[1 + \left(1 + 2Fr_{lo}^{-0.2}\alpha_h^{3.5}\right)\left( \frac{1-x}{x}\right)\left(\frac{\rho_g}{\rho_l}\right)\right]^{-1} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Claims an AARD of 5.0%, and suitability for any flow regime, mini and micro channels, adiabatic, evaporating, or condensing flow, and for Frlo from 0.02 to 145, rhog/rhol from 0.004-0.153, and x from 0 to 1. Examples -------- >>> Xu_Fang_voidage(0.4, 800., 2.5, m=1, D=0.3) 0.9414660089942093 References ---------- .. [1] Xu, Yu, and Xiande Fang. "Correlations of Void Fraction for Two- Phase Refrigerant Flow in Pipes." Applied Thermal Engineering 64, no. 1-2 (March 2014): 242–51. doi:10.1016/j.applthermaleng.2013.12.032. ''' G = m/(pi/4*D**2) alpha_h = homogeneous(x, rhol, rhog) Frlo = G**2/(g*D*rhol**2) return (1 + (1 + 2*Frlo**-0.2*alpha_h**3.5)*((1-x)/x)*(rhog/rhol))**-1 def Woldesemayat_Ghajar(x, rhol, rhog, sigma, m, D, P, angle=0, g=g): r'''Calculates void fraction in two-phase flow according to the model of [1]_. .. math:: \alpha = \frac{v_{gs}}{v_{gs}\left(1 + \left(\frac{v_{ls}}{v_{gs}} \right)^{\left(\frac{\rho_g}{\rho_l}\right)^{0.1}}\right) + 2.9\left[\frac{gD\sigma(1+\cos\theta)(\rho_l-\rho_g)} {\rho_l^2}\right]^{0.25}(1.22 + 1.22\sin\theta)^{\frac{P}{P_{atm}}}} .. math:: v_{gs} = \frac{mx}{\rho_g \frac{\pi}{4}D^2} .. math:: v_{ls} = \frac{m(1-x)}{\rho_l \frac{\pi}{4}D^2} Parameters ---------- x : float Quality at the specific tube interval [] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] sigma : float Surface tension of liquid [N/m] m : float Mass flow rate of both phases, [kg/s] D : float Diameter of the channel, [m] P : float Pressure of the fluid, [Pa] angle : float Angle of the channel with respect to the horizontal (vertical = 90), [degrees] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Strongly recommended. Examples -------- >>> Woldesemayat_Ghajar(0.4, 800., 2.5, sigma=0.2, m=1, D=0.3, P=1E6, angle=45) 0.7640815513429202 References ---------- .. [1] Woldesemayat, Melkamu A., and Afshin J. Ghajar. "Comparison of Void Fraction Correlations for Different Flow Patterns in Horizontal and Upward Inclined Pipes." International Journal of Multiphase Flow 33, no. 4 (April 2007): 347-370. doi:10.1016/j.ijmultiphaseflow.2006.09.004. ''' vgs = m*x/(rhog*pi/4*D**2) vls = m*(1-x)/(rhol*pi/4*D**2) first = vgs*(1 + (vls/vgs)**((rhog/rhol)**0.1)) second = 2.9*((g*D*sigma*(1 + cos(radians(angle)))*(rhol-rhog))/rhol**2)**0.25 third = (1.22 + 1.22*sin(radians(angle)))**(101325./P) return vgs/(first + second*third) # x, rhol, rhog 2ill be the minimum inputs two_phase_voidage_correlations = {'Thom' : (Thom, ('x', 'rhol', 'rhog', 'mul', 'mug')), 'Zivi' : (Zivi, ('x', 'rhol', 'rhog')), 'Smith' : (Smith, ('x', 'rhol', 'rhog')), 'Fauske' : (Fauske, ('x', 'rhol', 'rhog')), 'Chisholm_voidage' : (Chisholm_voidage, ('x', 'rhol', 'rhog')), 'Turner Wallis' : (Turner_Wallis, ('x', 'rhol', 'rhog', 'mul', 'mug')), 'homogeneous' : (homogeneous, ('x', 'rhol', 'rhog')), 'Chisholm Armand' : (Chisholm_Armand, ('x', 'rhol', 'rhog')), 'Armand' : (Armand, ('x', 'rhol', 'rhog')), 'Nishino Yamazaki' : (Nishino_Yamazaki, ('x', 'rhol', 'rhog')), 'Guzhov' : (Guzhov, ('x', 'rhol', 'rhog', 'm', 'D')), 'Kawahara' : (Kawahara, ('x', 'rhol', 'rhog', 'D')), 'Baroczy' : (Baroczy, ('x', 'rhol', 'rhog', 'mul', 'mug')), 'Tandon Varma Gupta' : (Tandon_Varma_Gupta, ('x', 'rhol', 'rhog', 'mul', 'mug', 'm', 'D')), 'Harms' : (Harms, ('x', 'rhol', 'rhog', 'mul', 'mug', 'm', 'D')), 'Domanski Didion' : (Domanski_Didion, ('x', 'rhol', 'rhog', 'mul', 'mug')), 'Graham' : (Graham, ('x', 'rhol', 'rhog', 'mul', 'mug', 'm', 'D', 'g')), 'Yashar' : (Yashar, ('x', 'rhol', 'rhog', 'mul', 'mug', 'm', 'D', 'g')), 'Huq_Loth' : (Huq_Loth, ('x', 'rhol', 'rhog')), 'Kopte_Newell_Chato' : (Kopte_Newell_Chato, ('x', 'rhol', 'rhog', 'mul', 'mug', 'm', 'D', 'g')), 'Steiner' : (Steiner, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'g')), 'Rouhani 1' : (Rouhani_1, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'g')), 'Rouhani 2' : (Rouhani_2, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'g')), 'Nicklin Wilkes Davidson' : (Nicklin_Wilkes_Davidson, ('x', 'rhol', 'rhog', 'm', 'D', 'g')), 'Gregory_Scott' : (Gregory_Scott, ('x', 'rhol', 'rhog')), 'Dix' : (Dix, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'g')), 'Sun Duffey Peng' : (Sun_Duffey_Peng, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'P', 'Pc', 'g')), 'Xu Fang voidage' : (Xu_Fang_voidage, ('x', 'rhol', 'rhog', 'm', 'D', 'g')), 'Woldesemayat Ghajar' : (Woldesemayat_Ghajar, ('x', 'rhol', 'rhog', 'sigma', 'm', 'D', 'P', 'angle', 'g'))} # All the available arguments are: #{'rhol', 'angle=0', 'x', 'P', 'mug', 'rhog', 'D', 'g', 'Pc', 'sigma', 'mul', 'm'} def liquid_gas_voidage(x, rhol, rhog, D=None, m=None, mul=None, mug=None, sigma=None, P=None, Pc=None, angle=0, g=g, Method=None, AvailableMethods=False): r'''This function handles calculation of two-phase liquid-gas voidage for flow inside channels. 29 calculation methods are available, with varying input requirements. A correlation will be automatically selected if none is specified. The full list of correlation can be obtained with the `AvailableMethods` flag. This function is used to calculate the (liquid) holdup as well, as: .. math:: \text{holdup} = 1 - \text{voidage} If no correlation is selected, the following rules are used, with the earlier options attempted first: * TODO: defaults Parameters ---------- x : float Quality of fluid, [-] rhol : float Liquid density, [kg/m^3] rhog : float Gas density, [kg/m^3] D : float, optional Diameter of pipe, [m] m : float, optional Mass flow rate of fluid, [kg/s] mul : float, optional Viscosity of liquid, [Pa*s] mug : float, optional Viscosity of gas, [Pa*s] sigma : float, optional Surface tension, [N/m] P : float, optional Pressure of fluid, [Pa] Pc : float, optional Critical pressure of fluid, [Pa] angle : float, optional Angle of the channel with respect to the horizontal (vertical = 90), [degrees] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] methods : list, only returned if AvailableMethods == True List of methods which can be used to calculate two-phase liquid-gas voidage with the given inputs. Other Parameters ---------------- Method : string, optional A string of the function name to use, as in the dictionary two_phase_voidage_correlations. AvailableMethods : bool, optional If True, function will consider which methods which can be used to calculate two-phase liquid-gas voidage with the given inputs and return them as a list instead of performing a calculation. Notes ----- Examples -------- >>> liquid_gas_voidage(m=0.6, x=0.1, rhol=915., rhog=2.67, mul=180E-6, mug=14E-6, ... sigma=0.0487, D=0.05) 0.9744097632663492 ''' def list_methods(myargs): usable_methods = [] for method, value in two_phase_voidage_correlations.items(): f, args = value if all(myargs[i] is not None for i in args): usable_methods.append(method) return usable_methods if AvailableMethods: return list_methods(locals()) if not Method: Method = 'homogeneous' if Method in two_phase_voidage_correlations: f, args = two_phase_voidage_correlations[Method] kwargs = {} for arg in args: kwargs[arg] = locals()[arg] return f(**kwargs) else: raise Exception('Method not recognized; available methods are %s' %list(two_phase_voidage_correlations.keys())) def density_two_phase(alpha, rhol, rhog): r'''Calculates the "effective" density of fluid in a liquid-gas flow. If the weight of fluid in a pipe pipe could be measured and the volume of the pipe were known, an effective density of the two-phase mixture could be calculated. This is directly relatable to the void fraction of the pipe, a parameter used to predict the pressure drop. This function converts void fraction to effective two-phase density. .. math:: \rho_m = \alpha \rho_g + (1-\alpha)\rho_l Parameters ---------- alpha : float Void fraction (area of gas / total area of channel), [-] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- rho_lg : float Two-phase effective density [kg/m^3] Notes ----- **THERE IS NO THERMODYNAMIC DEFINITION FOR THIS QUANTITY. DO NOT USE THIS VALUE IN SINGLE-PHASE CORRELATIONS.** Examples -------- >>> density_two_phase(.4, 800, 2.5) 481.0 References ---------- .. [1] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. ''' return alpha*rhog + (1. - alpha)*rhol def two_phase_voidage_experimental(rho_lg, rhol, rhog): r'''Calculates the void fraction for two-phase liquid-gas pipeflow. If the weight of fluid in a pipe pipe could be measured and the volume of the pipe were known, an effective density of the two-phase mixture could be calculated. This is directly relatable to the void fraction of the pipe, a parameter used to predict the pressure drop. This function converts that measured effective two-phase density to void fraction for use in developing correlations. .. math:: \alpha = \frac{\rho_m - \rho_l}{\rho_g - \rho_l} Parameters ---------- rho_lg : float Two-phase effective density [kg/m^3] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- alpha : float Void fraction (area of gas / total area of channel), [-] Notes ----- Examples -------- >>> two_phase_voidage_experimental(481.0, 800, 2.5) 0.4 References ---------- .. [1] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. ''' return (rho_lg - rhol)/(rhog - rhol) ### two-phase viscosity models def Beattie_Whalley(x, mul, mug, rhol, rhog): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_ and [3]_. .. math:: \mu_m = \mu_l(1-\alpha_m)(1 + 2.5\alpha_m) + \mu_g\alpha_m .. math:: \alpha_m = \frac{1}{1 + \left(\frac{1-x}{x}\right)\frac{\rho_g}{\rho_l}} \text{(homogeneous model)} Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] rhol : float Density of the liquid [kg/m^3] rhog : float Density of the gas [kg/m^3] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. Examples -------- >>> Beattie_Whalley(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) 1.7363806909512365e-05 References ---------- .. [1] Beattie, D. R. H., and P. B. Whalley. "A Simple Two-Phase Frictional Pressure Drop Calculation Method." International Journal of Multiphase Flow 8, no. 1 (February 1, 1982): 83-87. doi:10.1016/0301-9322(82)90009-X. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' alpha = homogeneous(x, rhol, rhog) return mul*(1. - alpha)*(1. + 2.5*alpha) + mug*alpha def McAdams(x, mul, mug): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_ and [3]_. .. math:: \mu_m = \left(\frac{x}{\mu_g} + \frac{1-x}{\mu_l}\right)^{-1} Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. [3]_ states this is the most common definition of two-phase liquid-gas viscosity. Examples -------- >>> McAdams(x=0.4, mul=1E-3, mug=1E-5) 2.4630541871921184e-05 References ---------- .. [1] McAdams, W. H. "Vaporization inside Horizontal Tubes-II Benzene-Oil Mixtures." Trans. ASME 39 (1949): 39-48. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' return 1./(x/mug + (1. - x)/mul) def Cicchitti(x, mul, mug): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_ and [3]_. .. math:: \mu_m = x\mu_g + (1-x)\mu_l Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. Examples -------- >>> Cicchitti(x=0.4, mul=1E-3, mug=1E-5) 0.0006039999999999999 References ---------- .. [1] Cicchitti, A., C. Lombardi, M. Silvestri, G. Soldaini, and R. Zavattarelli. "Two-Phase Cooling Experiments: Pressure Drop, Heat Transfer and Burnout Measurements." Centro Informazioni Studi Esperienze, Milan, January 1, 1959. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. ''' return x*mug + (1. - x)*mul def Lin_Kwok(x, mul, mug): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_ and [3]_. .. math:: \mu_m = \frac{\mu_l \mu_g}{\mu_g + x^{1.4}(\mu_l - \mu_g)} Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. Examples -------- >>> Lin_Kwok(x=0.4, mul=1E-3, mug=1E-5) 3.515119398126066e-05 References ---------- .. [1] Lin, S., C. C. K. Kwok, R. -Y. Li, Z. -H. Chen, and Z. -Y. Chen. "Local Frictional Pressure Drop during Vaporization of R-12 through Capillary Tubes." International Journal of Multiphase Flow 17, no. 1 (January 1, 1991): 95-102. doi:10.1016/0301-9322(91)90072-B. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. ''' return mul*mug/(mug + x**1.4*(mul - mug)) def Fourar_Bories(x, mul, mug, rhol, rhog): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_ and [3]_. .. math:: \mu_m = \rho_m\left(\sqrt{x\nu_g} + \sqrt{(1-x)\nu_l}\right)^2 Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] rhol : float Density of the liquid, [kg/m^3] rhog : float Density of the gas, [kg/m^3] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. This was first expressed in the equalivalent form as follows: .. math:: \mu_m = \rho_m\left(x\nu_g + (1-x)\nu_l + 2\sqrt{x(1-x)\nu_g\nu_l} \right) Examples -------- >>> Fourar_Bories(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) 2.127617150298565e-05 References ---------- .. [1] Fourar, M., and S. Bories. "Experimental Study of Air-Water Two-Phase Flow through a Fracture (Narrow Channel)." International Journal of Multiphase Flow 21, no. 4 (August 1, 1995): 621-37. doi:10.1016/0301-9322(95)00005-I. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. .. [3] Aung, NZ, and T. Yuwono. "Evaluation of Mixture Viscosity Models in the Prediction of Two-Phase Flow Pressure Drops." ASEAN Journal on Science and Technology for Development 29, no. 2 (2012). ''' rhom = 1./(x/rhog + (1. - x)/rhol) nul = mul/rhol # = nu_mu_converter(rho=rhol, mu=mul) nug = mug/rhog # = nu_mu_converter(rho=rhog, mu=mug) return rhom*((x*nug)**0.5 + ((1. - x)*nul)**0.5)**2 def Duckler(x, mul, mug, rhol, rhog): r'''Calculates a suggested definition for liquid-gas two-phase flow viscosity in internal pipe flow according to the form in [1]_ and shown in [2]_, [3]_, and [4]_. .. math:: \mu_m = \frac{\frac{x\mu_g}{\rho_g} + \frac{(1-x)\mu_l}{\rho_l} } {\frac{x}{\rho_g} + \frac{(1-x)}{\rho_l} } Parameters ---------- x : float Quality of the gas-liquid flow, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] rhol : float Density of the liquid, [kg/m^3] rhog : float Density of the gas, [kg/m^3] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] Notes ----- This model converges to the liquid or gas viscosity as the quality approaches either limits. This has also been expressed in the following form: .. math:: \mu_m = \rho_m \left[x\left(\frac{\mu_g}{\rho_g}\right) + (1 - x)\left(\frac{\mu_l}{\rho_l}\right)\right] According to the homogeneous definition of two-phase density. Examples -------- >>> Duckler(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2) 1.2092040385066917e-05 References ---------- .. [1] Fourar, M., and S. Bories. "Experimental Study of Air-Water Two-Phase Flow through a Fracture (Narrow Channel)." International Journal of Multiphase Flow 21, no. 4 (August 1, 1995): 621-37. doi:10.1016/0301-9322(95)00005-I. .. [2] Awad, M. M., and Y. S. Muzychka. "Effective Property Models for Homogeneous Two-Phase Flows." Experimental Thermal and Fluid Science 33, no. 1 (October 1, 2008): 106-13. .. [3] Kim, Sung-Min, and Issam Mudawar. "Review of Databases and Predictive Methods for Pressure Drop in Adiabatic, Condensing and Boiling Mini/Micro-Channel Flows." International Journal of Heat and Mass Transfer 77 (October 2014): 74-97. doi:10.1016/j.ijheatmasstransfer.2014.04.035. .. [4] Aung, NZ, and T. Yuwono. "Evaluation of Mixture Viscosity Models in the Prediction of Two-Phase Flow Pressure Drops." ASEAN Journal on Science and Technology for Development 29, no. 2 (2012). ''' return (x*mug/rhog + (1. - x)*mul/rhol)/(x/rhog + (1. - x)/rhol) liquid_gas_viscosity_correlations = {'Beattie Whalley': (Beattie_Whalley, 1), 'Fourar Bories': (Fourar_Bories, 1), 'Duckler': (Duckler, 1), 'McAdams': (McAdams, 0), 'Cicchitti': (Cicchitti, 0), 'Lin Kwok': (Lin_Kwok, 0)} def gas_liquid_viscosity(x, mul, mug, rhol=None, rhog=None, Method=None, AvailableMethods=False): r'''This function handles the calculation of two-phase liquid-gas viscosity. Six calculation methods are available; three of them require only `x`, `mul`, and `mug`; the other three require `rhol` and `rhog` as well. The 'McAdams' method will be used if no method is specified. The full list of correlation can be obtained with the `AvailableMethods` flag. **ALL OF THESE METHODS ARE ONLY SUGGESTED DEFINITIONS, POTENTIALLY USEFUL FOR EMPIRICAL WORK ONLY!** Parameters ---------- x : float Quality of fluid, [-] mul : float Viscosity of liquid, [Pa*s] mug : float Viscosity of gas, [Pa*s] rhol : float, optional Liquid density, [kg/m^3] rhog : float, optional Gas density, [kg/m^3] Returns ------- mu_lg : float Liquid-gas viscosity (**a suggested definition, potentially useful for empirical work only!**) [Pa*s] methods : list, only returned if AvailableMethods == True List of methods which can be used to calculate two-phase liquid-gas viscosity with the given inputs. Other Parameters ---------------- Method : string, optional A string of the function name to use, as in the dictionary liquid_gas_viscosity_correlations. AvailableMethods : bool, optional If True, function will consider which methods which can be used to calculate two-phase liquid-gas viscosity with the given inputs and return them as a list instead of performing a calculation. Notes ----- All of these models converge to the liquid or gas viscosity as the quality approaches either limits. Other definitions have been proposed, such as using only liquid viscosity. These values cannot just be plugged into single phase correlations! Examples -------- >>> gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5, rhol=850, rhog=1.2, Method='Duckler') 1.2092040385066917e-05 >>> gas_liquid_viscosity(x=0.4, mul=1E-3, mug=1E-5) 2.4630541871921184e-05 ''' def list_methods(): methods = ['McAdams', 'Cicchitti', 'Lin Kwok'] if rhol is not None and rhog is not None: methods = list(liquid_gas_viscosity_correlations.keys()) return methods if AvailableMethods: return list_methods() if not Method: Method = 'McAdams' if Method in liquid_gas_viscosity_correlations: f, i = liquid_gas_viscosity_correlations[Method] if i == 0: return f(x, mul, mug) elif i == 1: return f(x, mul, mug, rhol=rhol, rhog=rhog) else: raise Exception('Method not recognized; available methods are %s' %list(liquid_gas_viscosity_correlations.keys())) fluids-0.1.78/fluids/constants/0000755000175000017500000000000013632560624015142 5ustar kurtkurtfluids-0.1.78/fluids/constants/__init__.py0000644000175000017500000000230213632560624017250 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from .constants import * fluids-0.1.78/fluids/constants/constants.py0000644000175000017500000000725213632560624017536 0ustar kurtkurt# -*- coding: utf-8 -*- '''Vendorized, partial version of scipy.constants which does not implement the full codata formulations. This was implemented to provide a consistent set of constants across scipy versions; and to prevent the tests from failing when new CODATA formulations come out. ''' import math as _math # mathematical constants pi = _math.pi golden = golden_ratio = 1.618033988749895 # SI prefixes yotta = 1e24 zetta = 1e21 exa = 1e18 peta = 1e15 tera = 1e12 giga = 1e9 mega = 1e6 kilo = 1e3 hecto = 1e2 deka = 1e1 deci = 1e-1 centi = 1e-2 milli = 1e-3 micro = 1e-6 nano = 1e-9 pico = 1e-12 femto = 1e-15 atto = 1e-18 zepto = 1e-21 # binary prefixes kibi = 2**10 mebi = 2**20 gibi = 2**30 tebi = 2**40 pebi = 2**50 exbi = 2**60 zebi = 2**70 yobi = 2**80 # physical constants c = speed_of_light = 299792458.0 mu_0 = 4e-7*pi epsilon_0 = 1.0 / (mu_0*c*c) h = Planck = 6.62607004e-34 hbar = h / (2.0 * pi) G = gravitational_constant = 6.67408e-11 g = 9.80665 e = elementary_charge = 1.6021766208e-19 alpha = fine_structure = 0.0072973525664 N_A = Avogadro = 6.022140857e+23 k = Boltzmann = 1.38064852e-23 sigma = Stefan_Boltzmann = 5.670367e-08 Wien = 0.0028977729 Rydberg = 10973731.568508 k = 1.380649e-23 N_A = 6.02214076e23 R = gas_constant = N_A*k #8.3144598 # N_A*k R_inv = 1.0/R R2 = R*R # mass in kg gram = 1e-3 metric_ton = 1e3 grain = 64.79891e-6 lb = pound = 7000 * grain # avoirdupois blob = slinch = pound * g / 0.0254 # lbf*s**2/in (added in 1.0.0) slug = blob / 12 # lbf*s**2/foot (added in 1.0.0) oz = ounce = pound / 16.0 stone = 14.0 * pound long_ton = 2240.0 * pound short_ton = 2000.0 * pound troy_ounce = 480.0 * grain # only for metals / gems troy_pound = 12.0 * troy_ounce carat = 200e-6 m_e = electron_mass = 9.10938356e-31 m_p = proton_mass = 1.672621898e-27 m_n = neutron_mass = 1.674927471e-27 m_u = u = atomic_mass = 1.66053904e-27 # angle in rad degree = pi / 180.0 arcmin = arcminute = degree / 60.0 arcsec = arcsecond = arcmin / 60.0 # time in second minute = 60.0 hour = 60.0 * minute day = 24.0 * hour week = 7.0 * day year = 365.0 * day Julian_year = 365.25 * day # length in meter inch = 0.0254 foot = 12 * inch yard = 3 * foot mile = 1760 * yard mil = 0.001*inch pt = point = inch / 72 # typography survey_foot = 1200.0 / 3937 survey_mile = 5280.0 * survey_foot nautical_mile = 1852.0 fermi = 1e-15 angstrom = 1e-10 micron = 1e-6 au = astronomical_unit = 149597870691.0 light_year = Julian_year * c parsec = au / arcsec # pressure in pascal atm = atmosphere = 101325.0 bar = 1e5 torr = mmHg = atm / 760 psi = pound * g / (inch * inch) atm_inv = atmosphere_inv = 1.0/atm torr_inv = mmHg_inv = 1.0/torr psi_inv = 1.0/psi # area in meter**2 hectare = 1e4 acre = 43560 * foot*foot # volume in meter**3 litre = liter = 1e-3 gallon = gallon_US = 231.0 * inch*inch*inch # US # pint = gallon_US / 8 fluid_ounce = fluid_ounce_US = gallon_US / 128 bbl = barrel = 42.0 * gallon_US # for oil gallon_imp = 4.54609e-3 # UK fluid_ounce_imp = gallon_imp / 160.0 # speed in meter per second kmh = 1e3 / hour mph = mile / hour mach = speed_of_sound = 340.5 # approx value at 15 degrees in 1 atm. is this a common value? knot = nautical_mile / hour # temperature in kelvin zero_Celsius = 273.15 degree_Fahrenheit = 1.0/1.8 # only for differences # energy in joule eV = electron_volt = elementary_charge # * 1 Volt calorie = calorie_th = 4.184 calorie_IT = 4.1868 erg = 1e-7 Btu_th = pound * degree_Fahrenheit * calorie_th / gram Btu = Btu_IT = pound * degree_Fahrenheit * calorie_IT / gram ton_TNT = 1e9 * calorie_th # Wh = watt_hour # power in watt hp = horsepower = 550.0 * foot * pound * g # force in newton dyn = dyne = 1e-5 lbf = pound_force = pound * g kgf = kilogram_force = g # * 1 kg fluids-0.1.78/fluids/vectorized.py0000644000175000017500000000504113632560624015656 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2017, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division import types import numpy as np import fluids as normal_fluids '''Basic module which wraps all fluids functions with numpy's vectorize. All other object - dicts, classes, etc - are not wrapped. Supports star imports; so the same objects exported when importing from the main library will be imported from here. >>> from fluids.vectorized import * Inputs do not need to be numpy arrays; they can be any iterable: >>> fluids.vectorized.friction_factor(Re=[100, 1000, 10000], eD=0) array([ 0.64 , 0.064 , 0.03088295]) Note that because this needs to import fluids itself, fluids.vectorized needs to be imported separately; the following will cause an error: >>> import fluids >>> fluids.vectorized # Won't work, has not been imported yet The correct syntax is as follows: >>> import fluids.vectorized # Necessary >>> from fluids.vectorized import * # May be used without first importing fluids ''' __all__ = [] __funcs = {} bad_names = set(('__file__', '__name__', '__package__', '__cached__')) for name in dir(normal_fluids): obj = getattr(normal_fluids, name) if isinstance(obj, types.FunctionType): obj = np.vectorize(obj) elif isinstance(obj, str): if name in bad_names: continue __all__.append(name) __funcs.update({name: obj}) # globals()[name] = obj globals().update(__funcs) fluids-0.1.78/fluids/open_flow.py0000644000175000017500000006163513632560624015503 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import tan, radians from fluids.constants import g from fluids.numerics import interp __all__ = ['Q_weir_V_Shen', 'Q_weir_rectangular_Kindsvater_Carter', 'Q_weir_rectangular_SIA', 'Q_weir_rectangular_full_Ackers', 'Q_weir_rectangular_full_SIA', 'Q_weir_rectangular_full_Rehbock', 'Q_weir_rectangular_full_Kindsvater_Carter', 'V_Manning', 'n_Manning_to_C_Chezy', 'C_Chezy_to_n_Manning', 'V_Chezy', 'n_natural', 'n_excavated_dredged', 'n_lined_built', 'n_closed_conduit', 'n_dicts'] nape_types = ['free', 'depressed', 'clinging'] flow_types = ['aerated', 'partially aerated', 'unaerated'] weir_types = ['V-notch', 'rectangular', 'rectangular full-channel', 'Cipoletti', 'broad-crested', 'Ogee'] angles_Shen = [20, 40, 60, 80, 100] Cs_Shen = [0.59, 0.58, 0.575, 0.575, 0.58] k_Shen = [0.0028, 0.0017, 0.0012, 0.001, 0.001] ### V-Notch Weirs (Triangular weir) def Q_weir_V_Shen(h1, angle=90): r'''Calculates the flow rate across a V-notch (triangular) weir from the height of the liquid above the tip of the notch, and with the angle of the notch. Most of these type of weir are 90 degrees. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = C \tan\left(\frac{\theta}{2}\right)\sqrt{g}(h_1 + k)^{2.5} Parameters ---------- h1 : float Height of the fluid above the notch [m] angle : float, optional Angle of the notch [degrees] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- angles = [20, 40, 60, 80, 100] Cs = [0.59, 0.58, 0.575, 0.575, 0.58] k = [0.0028, 0.0017, 0.0012, 0.001, 0.001] The following limits apply to the use of this equation: h1 >= 0.05 m h2 > 0.45 m h1/h2 <= 0.4 m b > 0.9 m .. math:: \frac{h_1}{b}\tan\left(\frac{\theta}{2}\right) < 2 Flows are lower than obtained by the curves at http://www.lmnoeng.com/Weirs/vweir.php. Examples -------- >>> Q_weir_V_Shen(0.6, angle=45) 0.21071725775478228 References ---------- .. [1] Shen, John. "Discharge Characteristics of Triangular-Notch Thin-Plate Weirs : Studies of Flow to Water over Weirs and Dams." USGS Numbered Series. Water Supply Paper. U.S. Geological Survey : U.S. G.P.O., 1981 .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' C = interp(angle, angles_Shen, Cs_Shen) k = interp(angle, angles_Shen, k_Shen) return C*tan(radians(angle)/2)*g**0.5*(h1 + k)**2.5 ### Rectangular Weirs def Q_weir_rectangular_Kindsvater_Carter(h1, h2, b): r'''Calculates the flow rate across rectangular weir from the height of the liquid above the crest of the notch, the liquid depth beneath it, and the width of the notch. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = 0.554\left(1 - 0.0035\frac{h_1}{h_2}\right)(b + 0.0025) \sqrt{g}(h_1 + 0.0001)^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the rectangular flow section of the weir [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: b/b1 ≤ 0.2 h1/h2 < 2 b > 0.15 m h1 > 0.03 m h2 > 0.1 m Examples -------- >>> Q_weir_rectangular_Kindsvater_Carter(0.2, 0.5, 1) 0.15545928949179422 References ---------- .. [1] Kindsvater, Carl E., and Rolland W. Carter. "Discharge Characteristics of Rectangular Thin-Plate Weirs." Journal of the Hydraulics Division 83, no. 6 (December 1957): 1-36. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' return 0.554*(1 - 0.0035*h1/h2)*(b + 0.0025)*g**0.5*(h1 + 0.0001)**1.5 def Q_weir_rectangular_SIA(h1, h2, b, b1): r'''Calculates the flow rate across rectangular weir from the height of the liquid above the crest of the notch, the liquid depth beneath it, and the width of the notch. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = 0.544\left[1 + 0.064\left(\frac{b}{b_1}\right)^2 + \frac{0.00626 - 0.00519(b/b_1)^2}{h_1 + 0.0016}\right] \left[1 + 0.5\left(\frac{b}{b_1}\right)^4\left(\frac{h_1}{h_1+h_2} \right)^2\right]b\sqrt{g}h^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the rectangular flow section of the weir [m] b1 : float Width of the full section of the channel [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: b/b1 ≤ 0.2 h1/h2 < 2 b > 0.15 m h1 > 0.03 m h2 > 0.1 m Examples -------- >>> Q_weir_rectangular_SIA(0.2, 0.5, 1, 2) 1.0408858453811165 References ---------- .. [1] Normen für Wassermessungen: bei Durchführung von Abnahmeversuchen an Wasserkraftmaschinen. SIA, 1924. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' h = h1 + h2 Q = 0.544*(1 + 0.064*(b/b1)**2 + (0.00626 - 0.00519*(b/b1)**2)/(h1 + 0.0016))\ *(1 + 0.5*(b/b1)**4*(h1/(h1 + h2))**2)*b*g**0.5*h**1.5 return Q ### Rectangular Weirs, full channel def Q_weir_rectangular_full_Ackers(h1, h2, b): r'''Calculates the flow rate across a full-channel rectangular weir from the height of the liquid above the crest of the weir, the liquid depth beneath it, and the width of the channel. Model from [1]_ as reproduced in [2]_, confirmed with [3]_. Flow rate is given by: .. math:: Q = 0.564\left(1+0.150\frac{h_1}{h_2}\right)b\sqrt{g}(h_1+0.001)^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the channel section [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: h1 > 0.02 m h2 > 0.15 m h1/h2 ≤ 2.2 Examples -------- Example as in [3]_, matches. However, example is unlikely in practice. >>> Q_weir_rectangular_full_Ackers(h1=0.9, h2=0.6, b=5) 9.251938159899948 References ---------- .. [1] Ackers, Peter, W. R. White, J. A. Perkins, and A. J. M. Harrison. Weirs and Flumes for Flow Measurement. Chichester ; New York: John Wiley & Sons Ltd, 1978. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [3] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return 0.564*(1 + 0.150*h1/h2)*b*g**0.5*(h1 + 0.001)**1.5 def Q_weir_rectangular_full_SIA(h1, h2, b): r'''Calculates the flow rate across a full-channel rectangular weir from the height of the liquid above the crest of the weir, the liquid depth beneath it, and the width of the channel. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = \frac{2}{3}\sqrt{2}\left(0.615 + \frac{0.000615}{h_1+0.0016}\right) b\sqrt{g} h_1 +0.5\left(\frac{h_1}{h_1+h_2}\right)^2b\sqrt{g} h_1^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the channel section [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: 0.025 < h < 0.8 m b > 0.3 m h2 > 0.3 m h1/h2 < 1 Examples -------- Example compares terribly with the Ackers expression - probable error in [2]_. DO NOT USE. >>> Q_weir_rectangular_full_SIA(h1=0.3, h2=0.4, b=2) 1.1875825055400384 References ---------- .. [1] Normen für Wassermessungen: bei Durchführung von Abnahmeversuchen an Wasserkraftmaschinen. SIA, 1924. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' Q = 2/3.*2**0.5*(0.615 + 0.000615/(h1 + 0.0016))*b*g**0.5*h1 \ + 0.5*(h1/(h1+h2))**2*b*g**0.5*h1**1.5 return Q def Q_weir_rectangular_full_Rehbock(h1, h2, b): r'''Calculates the flow rate across a full-channel rectangular weir from the height of the liquid above the crest of the weir, the liquid depth beneath it, and the width of the channel. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = \frac{2}{3}\sqrt{2}\left(0.602 + 0.0832\frac{h_1}{h_2}\right) b\sqrt{g} (h_1 +0.00125)^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the channel section [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: 0.03 m < h1 < 0.75 m b > 0.3 m h2 > 0.3 m h1/h2 < 1 Examples -------- >>> Q_weir_rectangular_full_Rehbock(h1=0.3, h2=0.4, b=2) 0.6486856330601333 References ---------- .. [1] King, H. W., Floyd A. Nagler, A. Streiff, R. L. Parshall, W. S. Pardoe, R. E. Ballester, Gardner S. Williams, Th Rehbock, Erik G. W. Lindquist, and Clemens Herschel. "Discussion of 'Precise Weir Measurements.'" Transactions of the American Society of Civil Engineers 93, no. 1 (January 1929): 1111-78. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' return 2/3.*2**0.5*(0.602 + 0.0832*h1/h2)*b*g**0.5*(h1+0.00125)**1.5 #print [Q_weir_rectangular_full_Rehbock(h1=0.3, h2=0.4, b=2)] def Q_weir_rectangular_full_Kindsvater_Carter(h1, h2, b): r'''Calculates the flow rate across a full-channel rectangular weir from the height of the liquid above the crest of the weir, the liquid depth beneath it, and the width of the channel. Model from [1]_ as reproduced in [2]_. Flow rate is given by: .. math:: Q = \frac{2}{3}\sqrt{2}\left(0.602 + 0.0832\frac{h_1}{h_2}\right) b\sqrt{g} (h_1 +0.00125)^{1.5} Parameters ---------- h1 : float Height of the fluid above the crest of the weir [m] h2 : float Height of the fluid below the crest of the weir [m] b : float Width of the channel section [m] Returns ------- Q : float Volumetric flow rate across the weir [m^3/s] Notes ----- The following limits apply to the use of this equation: h1 > 0.03 m b > 0.15 m h2 > 0.1 m h1/h2 < 2 Examples -------- >>> Q_weir_rectangular_full_Kindsvater_Carter(h1=0.3, h2=0.4, b=2) 0.641560300081563 References ---------- .. [1] Kindsvater, Carl E., and Rolland W. Carter. "Discharge Characteristics of Rectangular Thin-Plate Weirs." Journal of the Hydraulics Division 83, no. 6 (December 1957): 1-36. .. [2] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' Q = 2/3.*2**0.5*(0.602 + 0.075*h1/h2)*(b - 0.001)*g**0.5*(h1 + 0.001)**1.5 return Q #print [Q_weir_rectangular_full_Kindsvater_Carter(h1=0.3, h2=0.4, b=2)] ### Open flow calculations - Manning and Chezy def V_Manning(Rh, S, n): r'''Predicts the average velocity of a flow across an open channel of hydraulic radius Rh and slope S, given the Manning roughness coefficient n. Flow rate is given by: .. math:: V = \frac{1}{n} R_h^{2/3} S^{0.5} Parameters ---------- Rh : float Hydraulic radius of the channel, Flow Area/Wetted perimeter [m] S : float Slope of the channel, m/m [-] n : float Manning roughness coefficient [s/m^(1/3)] Returns ------- V : float Average velocity of the channel [m/s] Notes ----- This is equation is often given in imperial units multiplied by 1.49. Examples -------- Example is from [2]_, matches. >>> V_Manning(0.2859, 0.005236, 0.03) 1.0467781958118971 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return Rh**(2/3.)*S**0.5/n def n_Manning_to_C_Chezy(n, Rh): r'''Converts a Manning roughness coefficient to a Chezy coefficient, given the hydraulic radius of the channel. .. math:: C = \frac{1}{n}R_h^{1/6} Parameters ---------- n : float Manning roughness coefficient [s/m^(1/3)] Rh : float Hydraulic radius of the channel, Flow Area/Wetted perimeter [m] Returns ------- C : float Chezy coefficient [m^0.5/s] Notes ----- Examples -------- Custom example, checked. >>> n_Manning_to_C_Chezy(0.05, Rh=5) 26.15320972023661 References ---------- .. [1] Chow, Ven Te. Open-Channel Hydraulics. New York: McGraw-Hill, 1959. ''' return 1./n*Rh**(1/6.) def C_Chezy_to_n_Manning(C, Rh): r'''Converts a Chezy coefficient to a Manning roughness coefficient, given the hydraulic radius of the channel. .. math:: n = \frac{1}{C}R_h^{1/6} Parameters ---------- C : float Chezy coefficient [m^0.5/s] Rh : float Hydraulic radius of the channel, Flow Area/Wetted perimeter [m] Returns ------- n : float Manning roughness coefficient [s/m^(1/3)] Notes ----- Examples -------- Custom example, checked. >>> C_Chezy_to_n_Manning(26.15, Rh=5) 0.05000613713238358 References ---------- .. [1] Chow, Ven Te. Open-Channel Hydraulics. New York: McGraw-Hill, 1959. ''' return Rh**(1/6.)/C def V_Chezy(Rh, S, C): r'''Predicts the average velocity of a flow across an open channel of hydraulic radius Rh and slope S, given the Chezy coefficient C. Flow rate is given by: .. math:: V = C\sqrt{S R_h} Parameters ---------- Rh : float Hydraulic radius of the channel, Flow Area/Wetted perimeter [m] S : float Slope of the channel, m/m [-] C : float Chezy coefficient [m^0.5/s] Returns ------- V : float Average velocity of the channel [m/s] Notes ----- Examples -------- Custom example, checked. >>> V_Chezy(Rh=5, S=0.001, C=26.153) 1.8492963648371776 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. .. [3] Chow, Ven Te. Open-Channel Hydraulics. New York: McGraw-Hill, 1959. ''' return C*(S*Rh)**0.5 ### Manning coefficients n_closed_conduit = { 'Brass': { 'Smooth': (0.009, 0.01, 0.013), }, 'Steel': { 'Lockbar and welded': (0.01, 0.012, 0.014), 'Riveted and spiral': (0.013, 0.016, 0.017), }, 'Cast Iron': { 'Coated ': (0.01, 0.013, 0.014), 'Uncoated': (0.011, 0.014, 0.016), }, 'Wrought Iron': { 'Black ': (0.012, 0.014, 0.015), 'Galvanized': (0.013, 0.016, 0.017), }, 'Corrugated metal': { 'Subdrain': (0.017, 0.019, 0.021), 'Storm drain': (0.021, 0.024, 0.03), }, 'Acrylic': { 'Smooth': (0.008, 0.009, 0.01), }, 'Glass': { 'Smooth': (0.009, 0.01, 0.013), }, 'Cement': { 'Neat, surface': (0.01, 0.011, 0.013), 'Mortar': (0.011, 0.013, 0.015), }, 'Concrete': { 'Culvert, straight and free of debris': (0.01, 0.011, 0.013), 'Culvert, some bends, connections, and debris': (0.011, 0.013, 0.014), 'Finished': (0.011, 0.012, 0.014), 'Sewer with manholes, inlet, straight': (0.013, 0.015, 0.017), 'Unfinished, steel form': (0.012, 0.013, 0.014), 'Unfinished, smooth wood form': (0.012, 0.014, 0.016), 'Unfinished, rough wood form': (0.015, 0.017, 0.02), }, 'Wood': { 'Stave': (0.01, 0.012, 0.014), 'Laminated, treated': (0.015, 0.017, 0.02), }, 'Clay': { 'Common drainage tile': (0.011, 0.013, 0.017), 'Vitrified sewer': (0.011, 0.014, 0.017), 'Vitrified sewer with manholes, inlet, etc.': (0.013, 0.015, 0.017), 'Vitrified Subdrain with open joint': (0.014, 0.016, 0.018), }, 'Brickwork': { 'Glazed': (0.011, 0.013, 0.015), 'Lined with cement mortar': (0.012, 0.015, 0.017), }, 'Other': { 'Sanitary sewers coated with sewage slime with bends and connections': (0.012, 0.013, 0.016), 'Paved invert, sewer, smooth bottom': (0.016, 0.019, 0.02), 'Rubble masonry, cemented': (0.018, 0.025, 0.03), } } n_lined_built = { 'Metal': { 'Smooth steel, unpainted': (0.011, 0.012, 0.014), 'Smooth steel, painted': (0.012, 0.013, 0.017), 'Corrugated': (0.021, 0.025, 0.03), }, 'Cement': { 'Neat, surface': (0.01, 0.011, 0.013), 'Mortar': (0.011, 0.013, 0.015), }, 'Wood': { 'Planed, untreated': (0.01, 0.012, 0.014), 'Planed, creosoted': (0.011, 0.012, 0.015), 'Unplaned': (0.011, 0.013, 0.015), 'Plank with battens': (0.012, 0.015, 0.018), 'Lined with Roofing paper': (0.01, 0.014, 0.017), }, 'Concrete': { 'Trowel finish': (0.011, 0.013, 0.015), 'Float finish': (0.013, 0.015, 0.016), 'Finished, with gravel on bottom': (0.015, 0.017, 0.02), 'Unfinished': (0.014, 0.017, 0.02), 'Gunite, good section': (0.016, 0.019, 0.023), 'Gunite, wavy section': (0.018, 0.022, 0.025), 'On good excavated rock': (0.017, 0.02, 0.02), 'On irregular excavated rock': (0.022, 0.027, 0.027), }, 'Concrete bottom float': { 'Finished with sides of dressed stone in mortar': (0.015, 0.017, 0.02), 'Finished with sides of random stone in mortar': (0.017, 0.02, 0.024), 'Finished with sides of cement rubble masonry, plastered': (0.016, 0.02, 0.024), 'Finished with sides of cement rubble masonry': (0.02, 0.025, 0.03), 'Finished with sides of dry rubble or riprap': (0.02, 0.03, 0.035), }, 'Gravel bottom': { 'Sides of formed concrete': (0.017, 0.02, 0.025), 'Sides of random stone in mortar': (0.02, 0.023, 0.026), 'Sides of dry rubble or riprap': (0.023, 0.033, 0.036), }, 'Brick': { 'Glazed': (0.011, 0.013, 0.015), 'In-cement mortar': (0.012, 0.015, 0.018), }, 'Masonry': { 'Cemented rubble': (0.017, 0.025, 0.03), 'Dry rubble': (0.023, 0.032, 0.035), }, 'Dressed ashlar': { 'Stone paving': (0.013, 0.015, 0.017), }, 'Asphalt': { 'Smooth': (0.013, 0.013, 0.013), 'Rough': (0.016, 0.016, 0.016), }, 'Vegatal': { 'Lined': (0.03, 0.4, 0.5), } } n_excavated_dredged = { 'Earth, straight, and uniform': { 'Clean, recently completed': (0.016, 0.018, 0.02), 'Clean, after weathering': (0.018, 0.022, 0.025), 'Gravel, uniform section, clean': (0.022, 0.025, 0.03), 'With short grass and few weeds': (0.022, 0.027, 0.033), }, 'Earth, winding and sluggish': { 'No vegetation': (0.023, 0.025, 0.03), 'Grass and some weeds': (0.025, 0.03, 0.033), 'Dense weeds or aquatic plants, in deep channels': (0.03, 0.035, 0.04), 'Earth bottom; rubble sides': (0.028, 0.03, 0.035), 'Stony bottom; weedy banks': (0.025, 0.035, 0.04), 'Cobble bottom; clean sides': (0.03, 0.04, 0.05), }, 'Dragline-excavated or dredged': { 'No vegetation': (0.025, 0.028, 0.033), 'Light brush on banks': (0.035, 0.05, 0.06), }, 'Rock cuts': { 'Smooth and Uniform': (0.025, 0.035, 0.04), 'Jaged and Irregular': (0.035, 0.04, 0.05), }, 'Channels not maintained, with weeds and uncut brush': { 'Dense weeds, as high as the flow depth': (0.05, 0.08, 0.12), 'Clean bottom, brush on sides': (0.04, 0.05, 0.08), 'Clean bottom, brush on sides, highest stage of flow': (0.045, 0.07, 0.11), 'Dense brush, high stage': (0.08, 0.1, 0.14), } } n_natural = { 'Major streams': { 'Irregular, rough': (0.035, 0.07, 0.1), }, 'Flood plains': { 'Pasture, no brush, short grass': (0.025, 0.03, 0.035), 'Pasture, no brush, high grass': (0.03, 0.035, 0.05), 'Cultivated areas, no crop': (0.02, 0.03, 0.04), 'Cultivated areas, mature row crops': (0.025, 0.035, 0.045), 'Cultivated areas, mature field crops': (0.03, 0.04, 0.05), 'Brush, scattered brush, heavy weeds': (0.035, 0.05, 0.07), 'Brush, light brush and trees, in winter': (0.035, 0.05, 0.06), 'Brush, light brush and trees, in summer': (0.04, 0.06, 0.08), 'Brush, medium to dense brush, in winter': (0.045, 0.07, 0.11), 'Brush, medium to dense brush, in summer': (0.07, 0.1, 0.16), 'Trees, dense willows, summer, straight': (0.11, 0.15, 0.2), 'Trees, cleared land with tree stumps, no sprouts': (0.03, 0.04, 0.05), 'Trees, cleared land with tree stumps, heavy growth of sprouts': (0.05, 0.06, 0.08), 'Trees, heavy stand of timber, a few down trees, little undergrowth, flood stage below branches': (0.08, 0.1, 0.12), 'Trees, heavy stand of timber, a few down trees, little undergrowth, flood stage reaching branches': (0.1, 0.12, 0.16), }, 'Minor streams': { 'Mountain streams, no vegetation in channel, banks steep, trees and bush on the banks submerged to high stages, with gravel, cobbles and few boulders on bottom': (0.03, 0.04, 0.05), 'Mountain streams, no vegetation in channel, banks steep, trees and bush on the banks submerged to high stages, with cobbles and large boulders on bottom': (0.04, 0.05, 0.07), 'Plain streams, clean, straight, full stage, no rifts or deep pools': (0.025, 0.03, 0.033), 'Plain streams, clean, straight, full stage, no rifts or deep pools, more stones and weeds': (0.03, 0.035, 0.04), 'Clean, winding, some pools and shoals': (0.033, 0.04, 0.045), 'Clean, winding, some pools and shoals, some weeds and stones': (0.035, 0.045, 0.05), 'Clean, winding, some pools and shoals, some weeds and stones, lower stages, less effective slopes and sections': (0.04, 0.048, 0.055), 'Clean, winding, some pools and shoals, more weeds and stones': (0.045, 0.05, 0.06), 'Sluggish reaches, weedy, deep pools': (0.05, 0.07, 0.08), 'Very weedy reaches, deep pools, or floodways with heavy stand of timber and underbrush': (0.075, 0.1, 0.15), } } n_dicts = [n_natural, n_excavated_dredged, n_lined_built, n_closed_conduit] # TODO lookup function to determine the nearest hit based on string matching fluids-0.1.78/fluids/units.py0000644000175000017500000005406113632560624014650 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2017, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division __all__ = ['wraps_numpydoc', 'u'] import types import re import inspect import functools import collections from copy import copy import fluids import fluids.vectorized import numpy as np try: import pint from pint import _DEFAULT_REGISTRY as u from pint import DimensionalityError except ImportError: # pragma: no cover raise ImportError('The unit handling in fluids requires the installation ' 'of the package pint, available on pypi or from ' 'https://github.com/hgrecco/pint') '''See fluids.units.rst for documentation for this module. ''' # is_critical_flow is broken def func_args(func): '''Basic function which returns a tuple of arguments of a function or method. ''' try: return tuple(inspect.getargspec(func).args) except: return tuple(inspect.getfullargspec(func).args) u.autoconvert_offset_to_baseunit = True expr = re.compile('Parameters *\n *-+\n +') expr2 = re.compile('Returns *\n *-+\n +') match_sections = re.compile('\n *[A-Za-z ]+ *\n +-+') match_section_names = re.compile('\n *[A-Za-z]+ *\n +-+') variable = re.compile('[a-zA-Z_0-9]* : ') match_units = re.compile(r'\[[a-zA-Z0-9().\/*^\- ]*\]') def parse_numpydoc_variables_units(func): try: text = func.__doc__ except: text = '' if text is None: text = '' section_names = [i.replace('-', '').strip() for i in match_sections.findall(text)] section_text = match_sections.split(text) sections = {} for i, j in zip(section_names, section_text[1:]): sections[i] = j parsed = {} for section in ['Parameters', 'Returns', 'Attributes', 'Other Parameters']: if section not in sections: # Handle the case where the function has nothing in a section parsed[section] = {'units': [], 'vars': []} continue p = sections[section] parameter_vars = [i[:-2].strip() for i in variable.findall(p)] unit_strings = [i.strip() for i in variable.split(p)[1:]] units = [] for i in unit_strings: matches = match_units.findall(i) if len(matches) == 0: # If there is no unit listed, assume it's dimensionless (probably a string) matches = ['[]'] match = matches[-1] # Assume the last bracketed group listed is the unit group match = match.replace('[', '').replace(']', '') if len(match) == 1: match = match.replace('-', 'dimensionless') if match == '': match = 'dimensionless' if match == 'base SI': match = 'dimensionless' # TODO - write special wrappers for these cases units.append(match) parsed[section] = {'units': units, 'vars': parameter_vars} return parsed def check_args_order(func): '''Reads a numpydoc function and compares the Parameters and Other Parameters with the input arguments of the actual function signature. Raises an exception if not correctly defined. getargspec is used for Python 2.7 compatibility and is deprecated in Python 3. >>> check_args_order(fluids.core.Reynolds) ''' try: argspec = inspect.getfullargspec(func) except: argspec = inspect.getargspec(func) parsed_data = parse_numpydoc_variables_units(func) # compare the parsed arguments with those actually defined parsed_units = parsed_data['Parameters']['units'] parsed_parameters = parsed_data['Parameters']['vars'] if 'Other Parameters' in parsed_data: parsed_parameters += parsed_data['Other Parameters']['vars'] parsed_units += parsed_data['Other Parameters']['units'] if argspec.args != parsed_parameters: # pragma: no cover raise Exception('Function %s signature is not the same as the documentation' ' signature = %s; documentation = %s' %(func.__name__, argspec.args, parsed_parameters)) def match_parse_units(doc, i=-1): if doc is None: matches = ['[]'] else: matches = match_units.findall(doc) if len(matches) == 0: # If there is no unit listed, assume it's dimensionless (probably a string) matches = ['[]'] match = matches[i] # Assume the last bracketed group listed is the unit group match = match.replace('[', '').replace(']', '') if len(match) == 1: match = match.replace('-', 'dimensionless') if match == '': match = 'dimensionless' if match == 'base SI': match = 'dimensionless' # TODO - write special wrappers for these cases return match def convert_input(val, unit, ureg, strict=True): if val is None: return val # Handle optional units which are given if unit != 'dimensionless': try: return val.to(unit).magnitude except AttributeError: if strict: raise TypeError('%s has no quantity' %(val)) else: return val except DimensionalityError as e: raise Exception('Converting %s to units of %s raised DimensionalityError: %s'%(val, unit, str(e))) else: if type(val) == ureg.Quantity: return val.magnitude else: return val pint_expression_cache = {} def parse_expression_cached(unit, ureg): if unit in pint_expression_cache: return pint_expression_cache[unit] ans = ureg.parse_expression(unit) pint_expression_cache[unit] = ans return ans def convert_output(result, out_units, out_vars, ureg): # Attempt to handle multiple return values # Must be able to convert all values to a pint expression t = type(result) if t == str or t == bool: return result elif t == dict: for key, ans in result.items(): unit = out_units[out_vars.index(key)] result[key] = ans*parse_expression_cached(unit, ureg) return result elif isinstance(result, collections.Iterable): conveted_result = [] for ans, unit in zip(result, out_units): conveted_result.append(ans*parse_expression_cached(unit, ureg)) return conveted_result else: return result*parse_expression_cached(out_units[0], ureg) def wraps_numpydoc(ureg, strict=True): def decorator(func): assigned = (attr for attr in functools.WRAPPER_ASSIGNMENTS if hasattr(func, attr)) updated = (attr for attr in functools.WRAPPER_UPDATES if hasattr(func, attr)) parsed_info = parse_numpydoc_variables_units(func) in_vars = parsed_info['Parameters']['vars'] in_units = parsed_info['Parameters']['units'] if 'Other Parameters' in parsed_info: in_vars += parsed_info['Other Parameters']['vars'] in_units += parsed_info['Other Parameters']['units'] in_vars_to_dict = {} for i, j in zip(in_vars, in_units): in_vars_to_dict[i] = j out_units = parsed_info['Returns']['units'] out_vars = parsed_info['Returns']['vars'] # Handle the case of dict answers - require the first line's args to be # parsed as 'results' if out_vars and 'results' == out_vars[0]: out_units.pop(0) out_vars.pop(0) @functools.wraps(func, assigned=assigned, updated=updated) def wrapper(*values, **kw): # Convert input ordered variables to dimensionless form, after converting # them to the the units specified by their documentation conv_values = [] for val, unit in zip(values, in_units): conv_values.append(convert_input(val, unit, ureg, strict)) # For keyword arguments, lookup their unit; convert to that; # handle dimensionless arguments the same way kwargs = {} for name, val in kw.items(): unit = in_vars_to_dict[name] kwargs[name] = convert_input(val, unit, ureg, strict) if any([type(i.m) == np.ndarray for i in list(kw.values()) + list(values) if type(i) == u.Quantity]): result = getattr(fluids.vectorized, func.__name__)(*conv_values, **kwargs) else: result = func(*conv_values, **kwargs) if type(result) == np.ndarray: units = convert_output(result, out_units, out_vars, ureg)[0].units return result*units else: return convert_output(result, out_units, out_vars, ureg) return wrapper return decorator class UnitAwareClass(object): wrapped = None ureg = u strict = True property_units = {} # for properties and attributes only method_units = {} def __repr__(self): '''Called only on the class instance, not any instance - ever. https://stackoverflow.com/questions/10376604/overriding-special-methods-on-an-instance ''' return self.wrapped.__repr__() def __add__(self, other): new_obj = self.wrapped.__add__(other.wrapped) new_instance = copy(self) new_instance.wrapped = new_obj return new_instance def __sub__(self, other): new_obj = self.wrapped.__sub__(other.wrapped) new_instance = copy(self) new_instance.wrapped = new_obj return new_instance def __init__(self, *args, **kwargs): args_base, kwargs_base = self.input_units_to_dimensionless('__init__', *args, **kwargs) self.wrapped = self.wrapped(*args_base, **kwargs_base) def __getattr__(self, name): try: value = getattr(self.wrapped, name) except Exception as e: raise AttributeError('Failed to get property %s with error %s' %(str(name), str(e))) if value is not None: if name in self.property_units: if type(value) == dict: d = {} unit = self.property_units[name] for key, val in value.items(): d[key] = val*unit return d try: return value*self.property_units[name] except: # Not everything is going to work. The most common case here # is returning a list, some of the values being None and so # it cannot be wrapped. return value else: if hasattr(value, '__call__'): @functools.wraps(value) def call_func_with_inputs_to_SI(*args, **kwargs): args_base, kwargs_base = self.input_units_to_dimensionless(name, *args, **kwargs) result = value(*args_base, **kwargs_base) if name == '__init__': return result _, _, _, out_vars, out_units = self.method_units[name] if not out_units: return return convert_output(result, out_units, out_vars, self.ureg) return call_func_with_inputs_to_SI raise AttributeError('Error: Property does not yet have units attached') else: return value def input_units_to_dimensionless(self, name, *values, **kw): in_vars, in_units, in_vars_to_dict, out_vars, out_units = self.method_units[name] conv_values = [] for val, unit in zip(values, in_units): conv_values.append(convert_input(val, unit, self.ureg, self.strict)) # For keyword arguments, lookup their unit; convert to that; # handle dimensionless arguments the same way kwargs = {} for name, val in kw.items(): unit = in_vars_to_dict[name] kwargs[name] = convert_input(val, unit, self.ureg, self.strict) return conv_values, kwargs def clean_parsed_info(parsed_info): in_vars = parsed_info['Parameters']['vars'] in_units = parsed_info['Parameters']['units'] if 'Other Parameters' in parsed_info: in_vars += parsed_info['Other Parameters']['vars'] in_units += parsed_info['Other Parameters']['units'] in_vars_to_dict = {} for i, j in zip(in_vars, in_units): in_vars_to_dict[i] = j out_units = parsed_info['Returns']['units'] out_vars = parsed_info['Returns']['vars'] # Handle the case of dict answers - require the first line's args to be # parsed as 'results' if out_vars and 'results' == out_vars[0]: out_units.pop(0) out_vars.pop(0) return in_vars, in_units, in_vars_to_dict, out_vars, out_units def wrap_numpydoc_obj(obj_to_wrap): callable_methods = {} property_unit_map = {} for i in dir(obj_to_wrap): attr = getattr(obj_to_wrap, i) if isinstance(attr, types.FunctionType) or isinstance(attr, types.MethodType) or type(attr) == property: if type(attr) is property: name = attr.fget.__name__ else: name = attr.__name__ if hasattr(attr, '__doc__'): if type(attr) is property: property_unit_map[name] = u(match_parse_units(attr.fget.__doc__, i=0)) else: parsed = parse_numpydoc_variables_units(attr) callable_methods[name] = clean_parsed_info(parsed) if 'Attributes' in parsed: property_unit_map.update(parsed['Attributes']) # We need to parse the __doc__ for the main docstring of each of the inherited # objects, but in reverse order so older properties get overwritten by newer # properties. Ignore the object type as well. for inherited in reversed(list(obj_to_wrap.__mro__[0:-1])): parsed = parse_numpydoc_variables_units(inherited) callable_methods['__init__'] = clean_parsed_info(parsed) if 'Attributes' in parsed: property_unit_map.update({var:u(unit) for var, unit in zip(parsed['Attributes']['vars'], parsed['Attributes']['units'])} ) if 'Parameters' in parsed: property_unit_map.update({var:u(unit) for var, unit in zip(parsed['Parameters']['vars'], parsed['Parameters']['units'])} ) name = obj_to_wrap.__name__ fun = type(name, (UnitAwareClass,), {'wrapped': obj_to_wrap, #'__doc__': obj_to_wrap.__doc__, 'property_units': property_unit_map, 'method_units': callable_methods}) return fun __funcs = {} for name in dir(fluids): if 'RectangularOffsetStripFinExchanger' in name: continue if 'ParticleSizeDistribution' in name: continue obj = getattr(fluids, name) if isinstance(obj, types.FunctionType): obj = wraps_numpydoc(u)(obj) elif type(obj) == type: obj = wrap_numpydoc_obj(obj) elif type(obj) is types.ModuleType: # Functions accessed with the namespace like friction.friction_factor # would call the original function - leads to user confusion if they are exposed continue elif isinstance(obj, str): continue if name == '__all__': continue __all__.append(name) __funcs.update({name: obj}) globals().update(__funcs) __all__.extend(['wraps_numpydoc', 'convert_output', 'convert_input', 'check_args_order', 'match_parse_units', 'parse_numpydoc_variables_units', 'wrap_numpydoc_obj', 'UnitAwareClass']) def A_multiple_hole_cylinder(Do, L, holes): Do = Do.to(u.m).magnitude L = L.to(u.m).magnitude holes = [(i.to(u.m).magnitude, N) for i, N in holes] A = fluids.geometry.A_multiple_hole_cylinder(Do, L, holes) return A*u.m**2 #A_multiple_hole_cylinder.__doc__ = fluids.geometry.A_multiple_hole_cylinder.__doc__ def V_multiple_hole_cylinder(Do, L, holes): Do = Do.to(u.m).magnitude L = L.to(u.m).magnitude holes = [(i.to(u.m).magnitude, N) for i, N in holes] A = fluids.geometry.V_multiple_hole_cylinder(Do, L, holes) return A*u.m**3 #V_multiple_hole_cylinder.__doc__ = fluids.geometry.V_multiple_hole_cylinder.__doc__ wrapped_isothermal_gas = isothermal_gas wrapped_Panhandle_A = Panhandle_A wrapped_Muller = Muller wrapped_IGT = IGT wrapped_nu_mu_converter = nu_mu_converter wrapped_SA_tank= SA_tank wrapped_differential_pressure_meter_solver = differential_pressure_meter_solver def nu_mu_converter(rho, mu=None, nu=None): ans = wrapped_nu_mu_converter(rho, mu, nu) if mu is None: return ans*u.Pa*u.s return ans*u.m**2/u.s def SA_tank(D, L, sideA=None, sideB=None, sideA_a=0*u.m, sideB_a=0*u.m, sideA_f=None, sideA_k=None, sideB_f=None, sideB_k=None, full_output=False): ans = wrapped_SA_tank(D, L, sideA, sideB, sideA_a, sideB_a, sideA_f, sideA_k, sideB_f, sideB_k, full_output) if full_output: SA, (sideA_SA, sideB_SA, lateral_SA) = ans else: SA = ans if full_output: return SA, (sideA_SA*u.m**2, sideB_SA*u.m**2, lateral_SA*u.m**2) else: return SA def isothermal_gas(rho, fd, P1=None, P2=None, L=None, D=None, m=None): # pragma: no cover ''' >>> isothermal_gas(rho=11.3*u.kg/u.m**3, fd=0.00185*u.dimensionless, P1=1E6*u.Pa, P2=9E5*u.Pa, L=1000*u.m, D=0.5*u.m) ''' ans = wrapped_isothermal_gas(rho, fd, P1, P2, L, D, m) if m is None and (None not in [P1, P2, L, D]): return ans*u.kg/u.s elif L is None and (None not in [P1, P2, D, m]): return ans*u.m elif P1 is None and (None not in [L, P2, D, m]): return ans*u.Pa elif P2 is None and (None not in [L, P1, D, m]): return ans*u.Pa elif D is None and (None not in [P2, P1, L, m]): return ans*u.m def Muller(SG, Tavg, mu, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7*u.K, Ps=101325.*u.Pa, Zavg=1, E=1): # pragma: no cover ans = wrapped_Muller(SG, Tavg, mu, L, D, P1, P2, Q, Ts, Ps, Zavg, E) if Q is None and (None not in [L, D, P1, P2]): return ans*u.m**3/u.s elif D is None and (None not in [L, Q, P1, P2]): return ans*u.m elif P1 is None and (None not in [L, Q, D, P2]): return ans*u.Pa elif P2 is None and (None not in [L, Q, D, P1]): return ans*u.Pa elif L is None and (None not in [P2, Q, D, P1]): return ans*u.m def IGT(SG, Tavg, mu, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7*u.K, Ps=101325.*u.Pa, Zavg=1, E=1): # pragma: no cover ans = wrapped_IGT(SG, Tavg, mu, L, D, P1, P2, Q, Ts, Ps, Zavg, E) if Q is None and (None not in [L, D, P1, P2]): return ans*u.m**3/u.s elif D is None and (None not in [L, Q, P1, P2]): return ans*u.m elif P1 is None and (None not in [L, Q, D, P2]): return ans*u.Pa elif P2 is None and (None not in [L, Q, D, P1]): return ans*u.Pa elif L is None and (None not in [P2, Q, D, P1]): return ans*u.m funcs = ['Panhandle_A', 'Panhandle_B', 'Weymouth', 'Spitzglass_high', 'Spitzglass_low', 'Oliphant', 'Fritzsche'] Es = [.92, .92, .92, 1, 1, .92, 1] for wrapper, E in zip(funcs, Es): wrapper_name = wrapper + '_wrapper' globals()[wrapper_name] = globals()[wrapper] def compressible_flow_wrapper(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7*u.K, Ps=101325.*u.Pa, Zavg=1, E=E, _=wrapper_name): # pragma: no cover ''' >>> Panhandle_A(SG=0.693, D=0.340*u.m, P1=90E5*u.Pa, P2=20E5*u.Pa, L=160E3*u.m, Tavg=277.15*u.K) ''' ans = globals()[_](SG, Tavg, L, D, P1, P2, Q, Ts, Ps, Zavg, E) if Q is None and (None not in [L, D, P1, P2]): return ans*u.m**3/u.s elif D is None and (None not in [L, Q, P1, P2]): return ans*u.m elif P1 is None and (None not in [L, Q, D, P2]): return ans*u.Pa elif P2 is None and (None not in [L, Q, D, P1]): return ans*u.Pa elif L is None and (None not in [P2, Q, D, P1]): return ans*u.m globals()[wrapper] = compressible_flow_wrapper # NOTE: class support can't do static methods unless a class is already instantiated def differential_pressure_meter_solver(D, rho, mu, k, D2=None, P1=None, P2=None, m=None, meter_type=None, taps=None): # pragma: no cover ans = wrapped_differential_pressure_meter_solver(D, rho, mu, k, D2=D2, P1=P1, P2=P2, m=m, meter_type=meter_type, taps=taps) if m is None and (None not in [D, D2, P1, P2]): return ans*u.kg/u.s elif D2 is None and (None not in [D, m, P1, P2]): return ans*u.m elif P2 is None and (None not in [D, D2, P1, m]): return ans*u.Pa elif P1 is None and (None not in [D, D2, m, P2]): return ans*u.Pa fluids-0.1.78/fluids/optional/0000755000175000017500000000000013632560624014753 5ustar kurtkurtfluids-0.1.78/fluids/optional/__init__.py0000644000175000017500000000000113632560624017053 0ustar kurtkurt fluids-0.1.78/fluids/optional/spa.py0000644000175000017500000013672313632560624016124 0ustar kurtkurt# -*- coding: utf-8 -*- """ irradiance.py from pvlib ======================== Stripped down, vendorized version from: https://github.com/pvlib/pvlib-python/ Calculate the solar position using the NREL SPA algorithm either using numpy arrays or compiling the code to machine language with numba. The rational for not including this library as a strict dependency is to avoid including a dependency on pandas, keeping load time low, and PyPy compatibility Created by Tony Lorenzo (@alorenzo175), Univ. of Arizona, 2015 For a full list of contributors to this file, see the `pvlib` repository. The copyright notice (BSD-3 clause) is as follows: BSD 3-Clause License Copyright (c) 2013-2018, Sandia National Laboratories and pvlib python Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ from __future__ import division import os import time from datetime import datetime import math from math import degrees, sin, cos, tan, radians, asin, atan2 import numpy as np ndarray = np.ndarray TABLE_1_DICT = { 'L0': np.array( [[175347046.0, 0.0, 0.0], [3341656.0, 4.6692568, 6283.07585], [34894.0, 4.6261, 12566.1517], [3497.0, 2.7441, 5753.3849], [3418.0, 2.8289, 3.5231], [3136.0, 3.6277, 77713.7715], [2676.0, 4.4181, 7860.4194], [2343.0, 6.1352, 3930.2097], [1324.0, 0.7425, 11506.7698], [1273.0, 2.0371, 529.691], [1199.0, 1.1096, 1577.3435], [990.0, 5.233, 5884.927], [902.0, 2.045, 26.298], [857.0, 3.508, 398.149], [780.0, 1.179, 5223.694], [753.0, 2.533, 5507.553], [505.0, 4.583, 18849.228], [492.0, 4.205, 775.523], [357.0, 2.92, 0.067], [317.0, 5.849, 11790.629], [284.0, 1.899, 796.298], [271.0, 0.315, 10977.079], [243.0, 0.345, 5486.778], [206.0, 4.806, 2544.314], [205.0, 1.869, 5573.143], [202.0, 2.458, 6069.777], [156.0, 0.833, 213.299], [132.0, 3.411, 2942.463], [126.0, 1.083, 20.775], [115.0, 0.645, 0.98], [103.0, 0.636, 4694.003], [102.0, 0.976, 15720.839], [102.0, 4.267, 7.114], [99.0, 6.21, 2146.17], [98.0, 0.68, 155.42], [86.0, 5.98, 161000.69], [85.0, 1.3, 6275.96], [85.0, 3.67, 71430.7], [80.0, 1.81, 17260.15], [79.0, 3.04, 12036.46], [75.0, 1.76, 5088.63], [74.0, 3.5, 3154.69], [74.0, 4.68, 801.82], [70.0, 0.83, 9437.76], [62.0, 3.98, 8827.39], [61.0, 1.82, 7084.9], [57.0, 2.78, 6286.6], [56.0, 4.39, 14143.5], [56.0, 3.47, 6279.55], [52.0, 0.19, 12139.55], [52.0, 1.33, 1748.02], [51.0, 0.28, 5856.48], [49.0, 0.49, 1194.45], [41.0, 5.37, 8429.24], [41.0, 2.4, 19651.05], [39.0, 6.17, 10447.39], [37.0, 6.04, 10213.29], [37.0, 2.57, 1059.38], [36.0, 1.71, 2352.87], [36.0, 1.78, 6812.77], [33.0, 0.59, 17789.85], [30.0, 0.44, 83996.85], [30.0, 2.74, 1349.87], [25.0, 3.16, 4690.48]]), 'L1': np.array( [[628331966747.0, 0.0, 0.0], [206059.0, 2.678235, 6283.07585], [4303.0, 2.6351, 12566.1517], [425.0, 1.59, 3.523], [119.0, 5.796, 26.298], [109.0, 2.966, 1577.344], [93.0, 2.59, 18849.23], [72.0, 1.14, 529.69], [68.0, 1.87, 398.15], [67.0, 4.41, 5507.55], [59.0, 2.89, 5223.69], [56.0, 2.17, 155.42], [45.0, 0.4, 796.3], [36.0, 0.47, 775.52], [29.0, 2.65, 7.11], [21.0, 5.34, 0.98], [19.0, 1.85, 5486.78], [19.0, 4.97, 213.3], [17.0, 2.99, 6275.96], [16.0, 0.03, 2544.31], [16.0, 1.43, 2146.17], [15.0, 1.21, 10977.08], [12.0, 2.83, 1748.02], [12.0, 3.26, 5088.63], [12.0, 5.27, 1194.45], [12.0, 2.08, 4694.0], [11.0, 0.77, 553.57], [10.0, 1.3, 6286.6], [10.0, 4.24, 1349.87], [9.0, 2.7, 242.73], [9.0, 5.64, 951.72], [8.0, 5.3, 2352.87], [6.0, 2.65, 9437.76], [6.0, 4.67, 4690.48]]), 'L2': np.array( [[52919.0, 0.0, 0.0], [8720.0, 1.0721, 6283.0758], [309.0, 0.867, 12566.152], [27.0, 0.05, 3.52], [16.0, 5.19, 26.3], [16.0, 3.68, 155.42], [10.0, 0.76, 18849.23], [9.0, 2.06, 77713.77], [7.0, 0.83, 775.52], [5.0, 4.66, 1577.34], [4.0, 1.03, 7.11], [4.0, 3.44, 5573.14], [3.0, 5.14, 796.3], [3.0, 6.05, 5507.55], [3.0, 1.19, 242.73], [3.0, 6.12, 529.69], [3.0, 0.31, 398.15], [3.0, 2.28, 553.57], [2.0, 4.38, 5223.69], [2.0, 3.75, 0.98]]), 'L3': np.array( [[289.0, 5.844, 6283.076], [35.0, 0.0, 0.0], [17.0, 5.49, 12566.15], [3.0, 5.2, 155.42], [1.0, 4.72, 3.52], [1.0, 5.3, 18849.23], [1.0, 5.97, 242.73]]), 'L4': np.array( [[114.0, 3.142, 0.0], [8.0, 4.13, 6283.08], [1.0, 3.84, 12566.15]]), 'L5': np.array( [[1.0, 3.14, 0.0]]), 'B0': np.array( [[280.0, 3.199, 84334.662], [102.0, 5.422, 5507.553], [80.0, 3.88, 5223.69], [44.0, 3.7, 2352.87], [32.0, 4.0, 1577.34]]), 'B1': np.array( [[9.0, 3.9, 5507.55], [6.0, 1.73, 5223.69]]), 'R0': np.array( [[100013989.0, 0.0, 0.0], [1670700.0, 3.0984635, 6283.07585], [13956.0, 3.05525, 12566.1517], [3084.0, 5.1985, 77713.7715], [1628.0, 1.1739, 5753.3849], [1576.0, 2.8469, 7860.4194], [925.0, 5.453, 11506.77], [542.0, 4.564, 3930.21], [472.0, 3.661, 5884.927], [346.0, 0.964, 5507.553], [329.0, 5.9, 5223.694], [307.0, 0.299, 5573.143], [243.0, 4.273, 11790.629], [212.0, 5.847, 1577.344], [186.0, 5.022, 10977.079], [175.0, 3.012, 18849.228], [110.0, 5.055, 5486.778], [98.0, 0.89, 6069.78], [86.0, 5.69, 15720.84], [86.0, 1.27, 161000.69], [65.0, 0.27, 17260.15], [63.0, 0.92, 529.69], [57.0, 2.01, 83996.85], [56.0, 5.24, 71430.7], [49.0, 3.25, 2544.31], [47.0, 2.58, 775.52], [45.0, 5.54, 9437.76], [43.0, 6.01, 6275.96], [39.0, 5.36, 4694.0], [38.0, 2.39, 8827.39], [37.0, 0.83, 19651.05], [37.0, 4.9, 12139.55], [36.0, 1.67, 12036.46], [35.0, 1.84, 2942.46], [33.0, 0.24, 7084.9], [32.0, 0.18, 5088.63], [32.0, 1.78, 398.15], [28.0, 1.21, 6286.6], [28.0, 1.9, 6279.55], [26.0, 4.59, 10447.39]]), 'R1': np.array( [[103019.0, 1.10749, 6283.07585], [1721.0, 1.0644, 12566.1517], [702.0, 3.142, 0.0], [32.0, 1.02, 18849.23], [31.0, 2.84, 5507.55], [25.0, 1.32, 5223.69], [18.0, 1.42, 1577.34], [10.0, 5.91, 10977.08], [9.0, 1.42, 6275.96], [9.0, 0.27, 5486.78]]), 'R2': np.array( [[4359.0, 5.7846, 6283.0758], [124.0, 5.579, 12566.152], [12.0, 3.14, 0.0], [9.0, 3.63, 77713.77], [6.0, 1.87, 5573.14], [3.0, 5.47, 18849.23]]), 'R3': np.array( [[145.0, 4.273, 6283.076], [7.0, 3.92, 12566.15]]), 'R4': np.array( [[4.0, 2.56, 6283.08]]) } # Resizing is just adding zeros... not sure why #print(TABLE_1_DICT['L1'].shape) #print(TABLE_1_DICT['L1'].tolist()) TABLE_1_DICT['L1'].resize((64, 3), refcheck=False) #print(TABLE_1_DICT['L1'].shape) #print(TABLE_1_DICT['L1'].tolist()) TABLE_1_DICT['L2'].resize((64, 3), refcheck=False) TABLE_1_DICT['L3'].resize((64, 3), refcheck=False) TABLE_1_DICT['L4'].resize((64, 3), refcheck=False) TABLE_1_DICT['L5'].resize((64, 3), refcheck=False) TABLE_1_DICT['B1'].resize((5, 3), refcheck=False) TABLE_1_DICT['R1'].resize((40, 3), refcheck=False) TABLE_1_DICT['R2'].resize((40, 3), refcheck=False) TABLE_1_DICT['R3'].resize((40, 3), refcheck=False) TABLE_1_DICT['R4'].resize((40, 3), refcheck=False) HELIO_LONG_TABLE = np.array([TABLE_1_DICT['L0'], TABLE_1_DICT['L1'], TABLE_1_DICT['L2'], TABLE_1_DICT['L3'], TABLE_1_DICT['L4'], TABLE_1_DICT['L5']]) HELIO_LAT_TABLE = np.array([TABLE_1_DICT['B0'], TABLE_1_DICT['B1']]) HELIO_RADIUS_TABLE = np.array([TABLE_1_DICT['R0'], TABLE_1_DICT['R1'], TABLE_1_DICT['R2'], TABLE_1_DICT['R3'], TABLE_1_DICT['R4']]) NUTATION_ABCD_ARRAY = np.array([ [-171996, -174.2, 92025, 8.9], [-13187, -1.6, 5736, -3.1], [-2274, -0.2, 977, -0.5], [2062, 0.2, -895, 0.5], [1426, -3.4, 54, -0.1], [712, 0.1, -7, 0], [-517, 1.2, 224, -0.6], [-386, -0.4, 200, 0], [-301, 0, 129, -0.1], [217, -0.5, -95, 0.3], [-158, 0, 0, 0], [129, 0.1, -70, 0], [123, 0, -53, 0], [63, 0, 0, 0], [63, 0.1, -33, 0], [-59, 0, 26, 0], [-58, -0.1, 32, 0], [-51, 0, 27, 0], [48, 0, 0, 0], [46, 0, -24, 0], [-38, 0, 16, 0], [-31, 0, 13, 0], [29, 0, 0, 0], [29, 0, -12, 0], [26, 0, 0, 0], [-22, 0, 0, 0], [21, 0, -10, 0], [17, -0.1, 0, 0], [16, 0, -8, 0], [-16, 0.1, 7, 0], [-15, 0, 9, 0], [-13, 0, 7, 0], [-12, 0, 6, 0], [11, 0, 0, 0], [-10, 0, 5, 0], [-8, 0, 3, 0], [7, 0, -3, 0], [-7, 0, 0, 0], [-7, 0, 3, 0], [-7, 0, 3, 0], [6, 0, 0, 0], [6, 0, -3, 0], [6, 0, -3, 0], [-6, 0, 3, 0], [-6, 0, 3, 0], [5, 0, 0, 0], [-5, 0, 3, 0], [-5, 0, 3, 0], [-5, 0, 3, 0], [4, 0, 0, 0], [4, 0, 0, 0], [4, 0, 0, 0], [-4, 0, 0, 0], [-4, 0, 0, 0], [-4, 0, 0, 0], [3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], [-3, 0, 0, 0], ]) NUTATION_YTERM_ARRAY = np.array([ [0, 0, 0, 0, 1], [-2, 0, 0, 2, 2], [0, 0, 0, 2, 2], [0, 0, 0, 0, 2], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [-2, 1, 0, 2, 2], [0, 0, 0, 2, 1], [0, 0, 1, 2, 2], [-2, -1, 0, 2, 2], [-2, 0, 1, 0, 0], [-2, 0, 0, 2, 1], [0, 0, -1, 2, 2], [2, 0, 0, 0, 0], [0, 0, 1, 0, 1], [2, 0, -1, 2, 2], [0, 0, -1, 0, 1], [0, 0, 1, 2, 1], [-2, 0, 2, 0, 0], [0, 0, -2, 2, 1], [2, 0, 0, 2, 2], [0, 0, 2, 2, 2], [0, 0, 2, 0, 0], [-2, 0, 1, 2, 2], [0, 0, 0, 2, 0], [-2, 0, 0, 2, 0], [0, 0, -1, 2, 1], [0, 2, 0, 0, 0], [2, 0, -1, 0, 1], [-2, 2, 0, 2, 2], [0, 1, 0, 0, 1], [-2, 0, 1, 0, 1], [0, -1, 0, 0, 1], [0, 0, 2, -2, 0], [2, 0, -1, 2, 1], [2, 0, 1, 2, 2], [0, 1, 0, 2, 2], [-2, 1, 1, 0, 0], [0, -1, 0, 2, 2], [2, 0, 0, 2, 1], [2, 0, 1, 0, 0], [-2, 0, 2, 2, 2], [-2, 0, 1, 2, 1], [2, 0, -2, 0, 1], [2, 0, 0, 0, 1], [0, -1, 1, 0, 0], [-2, -1, 0, 2, 1], [-2, 0, 0, 0, 1], [0, 0, 2, 2, 1], [-2, 0, 2, 0, 1], [-2, 1, 0, 2, 1], [0, 0, 1, -2, 0], [-1, 0, 1, 0, 0], [-2, 1, 0, 0, 0], [1, 0, 0, 0, 0], [0, 0, 1, 2, 0], [0, 0, -2, 2, 2], [-1, -1, 1, 0, 0], [0, 1, 1, 0, 0], [0, -1, 1, 2, 2], [2, -1, -1, 2, 2], [0, 0, 3, 2, 2], [2, -1, 0, 2, 2], ]) HELIO_LONG_TABLE_LIST = HELIO_LONG_TABLE.tolist() HELIO_RADIUS_TABLE_LIST = HELIO_RADIUS_TABLE.tolist() NUTATION_YTERM_LIST = NUTATION_YTERM_ARRAY.tolist() NUTATION_ABCD_LIST = NUTATION_ABCD_ARRAY.tolist() HELIO_LAT_TABLE_LIST = HELIO_LAT_TABLE.tolist() def julian_day_dt(year, month, day, hour, minute, second, microsecond): """This is the original way to calculate the julian day from the NREL paper. However, it is much faster to convert to unix/epoch time and then convert to julian day. Note that the date must be UTC.""" if month <= 2: year = year-1 month = month+12 a = int(year/100) b = 2 - a + int(a * 0.25) frac_of_day = (microsecond + (second + minute * 60 + hour * 3600) ) * 1.0 / (3600*24) d = day + frac_of_day jd = (int(365.25 * (year + 4716)) + int(30.6001 * (month + 1)) + d + b - 1524.5) return jd def julian_day(unixtime): jd = unixtime/86400.0 + 2440587.5 return jd def julian_ephemeris_day(julian_day, delta_t): jde = julian_day + delta_t * 1.0 / 86400 return jde def julian_century(julian_day): jc = (julian_day - 2451545) * 1.0 / 36525 return jc def julian_ephemeris_century(julian_ephemeris_day): jce = (julian_ephemeris_day - 2451545)/36525.0 return jce def julian_ephemeris_millennium(julian_ephemeris_century): jme = julian_ephemeris_century*0.1 return jme def heliocentric_longitude(jme): # Might be able to replace this with a pade approximation? # Looping over rows is probably still faster than (a, b, c) # Maximum optimization l0 = 0.0 l1 = 0.0 l2 = 0.0 l3 = 0.0 l4 = 0.0 l5 = 0.0 if isinstance(jme, ndarray): cos = np.cos rad2deg = np.rad2deg else: cos = math.cos rad2deg = math.degrees HELIO_LONG_TABLE_LIST_0 = HELIO_LONG_TABLE_LIST[0] HELIO_LONG_TABLE_LIST_1 = HELIO_LONG_TABLE_LIST[1] HELIO_LONG_TABLE_LIST_2 = HELIO_LONG_TABLE_LIST[2] HELIO_LONG_TABLE_LIST_3 = HELIO_LONG_TABLE_LIST[3] HELIO_LONG_TABLE_LIST_4 = HELIO_LONG_TABLE_LIST[4] for row in range(64): HELIO_LONG_TABLE_LIST_0_ROW = HELIO_LONG_TABLE_LIST_0[row] l0 += (HELIO_LONG_TABLE_LIST_0_ROW[0] * cos(HELIO_LONG_TABLE_LIST_0_ROW[1] + HELIO_LONG_TABLE_LIST_0_ROW[2] * jme) ) for row in range(34): HELIO_LONG_TABLE_LIST_1_ROW = HELIO_LONG_TABLE_LIST_1[row] l1 += (HELIO_LONG_TABLE_LIST_1_ROW[0] * cos(HELIO_LONG_TABLE_LIST_1_ROW[1] + HELIO_LONG_TABLE_LIST_1_ROW[2] * jme) ) for row in range(20): HELIO_LONG_TABLE_LIST_2_ROW = HELIO_LONG_TABLE_LIST_2[row] l2 += (HELIO_LONG_TABLE_LIST_2_ROW[0] * cos(HELIO_LONG_TABLE_LIST_2_ROW[1] + HELIO_LONG_TABLE_LIST_2_ROW[2] * jme) ) for row in range(7): HELIO_LONG_TABLE_LIST_3_ROW = HELIO_LONG_TABLE_LIST_3[row] l3 += (HELIO_LONG_TABLE_LIST_3_ROW[0] * cos(HELIO_LONG_TABLE_LIST_3_ROW[1] + HELIO_LONG_TABLE_LIST_3_ROW[2] * jme) ) for row in range(3): HELIO_LONG_TABLE_LIST_4_ROW = HELIO_LONG_TABLE_LIST_4[row] l4 += (HELIO_LONG_TABLE_LIST_4_ROW[0] * cos(HELIO_LONG_TABLE_LIST_4_ROW[1] + HELIO_LONG_TABLE_LIST_4_ROW[2] * jme) ) l5 = (HELIO_LONG_TABLE_LIST[5][0][0] * cos(HELIO_LONG_TABLE_LIST[5][0][1])) l_rad = (jme*(jme*(jme*(jme*(jme*l5 + l4) + l3) + l2) + l1) + l0)*1E-8 l = rad2deg(l_rad) return l % 360 def heliocentric_latitude(jme): b0 = 0.0 b1 = 0.0 if isinstance(jme, ndarray): cos = np.cos rad2deg = np.rad2deg else: cos = math.cos rad2deg = math.degrees HELIO_LAT_TABLE_LIST_0 = HELIO_LAT_TABLE_LIST[0] HELIO_LAT_TABLE_LIST_1 = HELIO_LAT_TABLE_LIST[1] for row in range(5): HELIO_LAT_TABLE_LIST_0_ROW = HELIO_LAT_TABLE_LIST[0][row] b0 += (HELIO_LAT_TABLE_LIST_0_ROW[0] * cos(HELIO_LAT_TABLE_LIST_0_ROW[1] + HELIO_LAT_TABLE_LIST_0_ROW[2] * jme) ) for row in range(2): HELIO_LAT_TABLE_LIST_1_ROW = HELIO_LAT_TABLE_LIST[1][row] b1 += (HELIO_LAT_TABLE_LIST_1_ROW[0] * cos(HELIO_LAT_TABLE_LIST_1_ROW[1] + HELIO_LAT_TABLE_LIST_1_ROW[2] * jme) ) b_rad = (b0 + b1 * jme)*1E-8 b = rad2deg(b_rad) return b def heliocentric_radius_vector(jme): # no optimizations can be thought of r0 = 0.0 r1 = 0.0 r2 = 0.0 r3 = 0.0 r4 = 0.0 if isinstance(jme, ndarray): cos = np.cos else: cos = math.cos # Would be possible to save a few multiplies of table1row[2]*jme, table1row[1]*jme as they are dups table0, table1, table2, table3, table4 = HELIO_RADIUS_TABLE_LIST[0:5] for row in range(40): table0row = table0[row] r0 += (table0row[0]*cos(table0row[1] + table0row[2]*jme)) for row in range(10): table1row = table1[row] r1 += (table1row[0]*cos(table1row[1] + table1row[2]*jme)) for row in range(6): table2row = table2[row] r2 += (table2row[0]*cos(table2row[1] + table2row[2]*jme)) for row in range(2): table3row = table3[row] r3 += (table3row[0]*cos(table3row[1] + table3row[2]*jme)) table4row = table4[0] r4 = (table4row[0]*cos(table4row[1] + table4row[2]*jme)) return (jme*(jme*(jme*(jme*r4 + r3) + r2) + r1) + r0)*1E-8 def geocentric_longitude(heliocentric_longitude): theta = heliocentric_longitude + 180.0 return theta % 360 def geocentric_latitude(heliocentric_latitude): beta = -heliocentric_latitude return beta def mean_elongation(julian_ephemeris_century): x0 = (297.85036 + 445267.111480 * julian_ephemeris_century - 0.0019142 * julian_ephemeris_century**2 + julian_ephemeris_century**3 / 189474) return x0 def mean_anomaly_sun(julian_ephemeris_century): x1 = (357.52772 + 35999.050340 * julian_ephemeris_century - 0.0001603 * julian_ephemeris_century**2 - julian_ephemeris_century**3 / 300000) return x1 def mean_anomaly_moon(julian_ephemeris_century): x2 = (134.96298 + 477198.867398 * julian_ephemeris_century + 0.0086972 * julian_ephemeris_century**2 + julian_ephemeris_century**3 / 56250) return x2 def moon_argument_latitude(julian_ephemeris_century): x3 = (93.27191 + 483202.017538 * julian_ephemeris_century - 0.0036825 * julian_ephemeris_century**2 + julian_ephemeris_century**3 / 327270) return x3 def moon_ascending_longitude(julian_ephemeris_century): x4 = (125.04452 - 1934.136261 * julian_ephemeris_century + 0.0020708 * julian_ephemeris_century**2 + julian_ephemeris_century**3 / 450000) return x4 def longitude_nutation(julian_ephemeris_century, x0, x1, x2, x3, x4): if isinstance(julian_ephemeris_century, ndarray): sin = np.sin radians = np.radians else: sin = math.sin radians = math.radians x0, x1, x2, x3, x4 = radians(x0), radians(x1), radians(x2), radians(x3), radians(x4) delta_psi_sum = 0.0 for row in range(63): a = NUTATION_ABCD_LIST[row][0] b = NUTATION_ABCD_LIST[row][1] # # None can be skipped but the multiplies can be with effort -2 to 2 with dict - just might be slower NUTATION_YTERM_LIST_ROW = NUTATION_YTERM_LIST[row] argsin = (NUTATION_YTERM_LIST_ROW[0]*x0 + NUTATION_YTERM_LIST_ROW[1]*x1 + NUTATION_YTERM_LIST_ROW[2]*x2 + NUTATION_YTERM_LIST_ROW[3]*x3 + NUTATION_YTERM_LIST_ROW[4]*x4) term = (a + b * julian_ephemeris_century)*sin(argsin) delta_psi_sum += term delta_psi = delta_psi_sum/36000000.0 return delta_psi def obliquity_nutation(julian_ephemeris_century, x0, x1, x2, x3, x4): delta_eps_sum = 0.0 if isinstance(julian_ephemeris_century, ndarray): cos = np.cos radians = np.radians else: cos = math.cos radians = math.radians x0, x1, x2, x3, x4 = radians(x0), radians(x1), radians(x2), radians(x3), radians(x4) for row in range(63): c = NUTATION_ABCD_LIST[row][2] d = NUTATION_ABCD_LIST[row][3] NUTATION_YTERM_LIST_ROW = NUTATION_YTERM_LIST[row] argcos = (NUTATION_YTERM_LIST_ROW[0]*x0 + NUTATION_YTERM_LIST_ROW[1]*x1 + NUTATION_YTERM_LIST_ROW[2]*x2 + NUTATION_YTERM_LIST_ROW[3]*x3 + NUTATION_YTERM_LIST_ROW[4]*x4) term = (c + d * julian_ephemeris_century)*cos(argcos) delta_eps_sum += term delta_eps = delta_eps_sum/36000000.0 return delta_eps def mean_ecliptic_obliquity(julian_ephemeris_millennium): U = 0.1*julian_ephemeris_millennium e0 = (U*(U*(U*(U*(U*(U*(U*(U*(U*(2.45*U + 5.79) + 27.87) + 7.12) - 39.05) - 249.67) - 51.38) + 1999.25) - 1.55) - 4680.93) + 84381.448) return e0 def true_ecliptic_obliquity(mean_ecliptic_obliquity, obliquity_nutation): e0 = mean_ecliptic_obliquity deleps = obliquity_nutation e = e0/3600.0 + deleps return e def aberration_correction(earth_radius_vector): # -20.4898 / (3600) deltau = -0.005691611111111111/earth_radius_vector return deltau def apparent_sun_longitude(geocentric_longitude, longitude_nutation, aberration_correction): lamd = geocentric_longitude + longitude_nutation + aberration_correction return lamd def mean_sidereal_time(julian_day, julian_century): julian_century2 = julian_century*julian_century v0 = (280.46061837 + 360.98564736629*(julian_day - 2451545) + 0.000387933*julian_century2 - julian_century2*julian_century/38710000) return v0 % 360.0 def apparent_sidereal_time(mean_sidereal_time, longitude_nutation, true_ecliptic_obliquity): if isinstance(true_ecliptic_obliquity, ndarray): cos = np.cos radians = np.radians else: cos = math.cos radians = math.radians v = mean_sidereal_time + longitude_nutation*cos(radians(true_ecliptic_obliquity)) return v def geocentric_sun_right_ascension(apparent_sun_longitude, true_ecliptic_obliquity, geocentric_latitude): if isinstance(apparent_sun_longitude, ndarray): sin = np.sin cos = np.cos tan = np.tan radians = np.radians degrees = np.degrees arctan2 = np.arctan2 else: sin = math.sin cos = math.cos tan = math.tan radians = math.radians degrees = math.degrees arctan2 = math.atan2 num = (sin(radians(apparent_sun_longitude)) * cos(radians(true_ecliptic_obliquity)) - tan(radians(geocentric_latitude)) * sin(radians(true_ecliptic_obliquity))) alpha = degrees(arctan2(num, cos( radians(apparent_sun_longitude)))) return alpha % 360 def geocentric_sun_declination(apparent_sun_longitude, true_ecliptic_obliquity, geocentric_latitude): if isinstance(apparent_sun_longitude, ndarray): sin = np.sin cos = np.cos radians = np.radians degrees = np.degrees arcsin = np.arcsin else: sin = math.sin cos = math.cos radians = math.radians degrees = math.degrees arcsin = math.asin delta = degrees(arcsin(sin(radians(geocentric_latitude)) * cos(radians(true_ecliptic_obliquity)) + cos(radians(geocentric_latitude)) * sin(radians(true_ecliptic_obliquity)) * sin(radians(apparent_sun_longitude)))) return delta def local_hour_angle(apparent_sidereal_time, observer_longitude, sun_right_ascension): """Measured westward from south""" H = apparent_sidereal_time + observer_longitude - sun_right_ascension return H % 360 def equatorial_horizontal_parallax(earth_radius_vector): xi = 8.794 / (3600 * earth_radius_vector) return xi def uterm(observer_latitude): if isinstance(observer_latitude, ndarray): tan = np.tan arctan = np.arctan radians = np.radians else: tan = math.tan radians = math.radians arctan = math.atan u = arctan(0.99664719*tan(radians(observer_latitude))) return u def xterm(u, observer_latitude, observer_elevation): if isinstance(observer_latitude, ndarray) or isinstance(u, ndarray): cos = np.cos radians = np.radians else: cos = math.cos radians = math.radians x = (cos(u) + observer_elevation/6378140.0*cos(radians(observer_latitude))) return x def yterm(u, observer_latitude, observer_elevation): if isinstance(observer_latitude, ndarray) or isinstance(u, ndarray): sin = np.sin radians = np.radians else: sin = math.sin radians = math.radians y = (0.99664719 * sin(u) + observer_elevation/6378140.0 * sin(radians(observer_latitude))) return y def parallax_sun_right_ascension(xterm, equatorial_horizontal_parallax, local_hour_angle, geocentric_sun_declination): if (isinstance(xterm, ndarray) or isinstance(equatorial_horizontal_parallax, ndarray) or isinstance(local_hour_angle, ndarray) or isinstance(geocentric_sun_declination, ndarray)): sin = np.sin cos = np.cos radians = np.radians degrees = np.degrees arctan2 = np.arctan2 else: sin = math.sin cos = math.cos radians = math.radians degrees = math.degrees arctan2 = math.atan2 num = (-xterm * sin(radians(equatorial_horizontal_parallax)) * sin(radians(local_hour_angle))) denom = (cos(radians(geocentric_sun_declination)) - xterm * sin(radians(equatorial_horizontal_parallax)) * cos(radians(local_hour_angle))) delta_alpha = degrees(arctan2(num, denom)) return delta_alpha def topocentric_sun_right_ascension(geocentric_sun_right_ascension, parallax_sun_right_ascension): alpha_prime = geocentric_sun_right_ascension + parallax_sun_right_ascension return alpha_prime def topocentric_sun_declination(geocentric_sun_declination, xterm, yterm, equatorial_horizontal_parallax, parallax_sun_right_ascension, local_hour_angle): if isinstance(geocentric_sun_declination, ndarray): sin = np.sin cos = np.cos radians = np.radians degrees = np.degrees arctan2 = np.arctan2 else: sin = math.sin cos = math.cos radians = math.radians degrees = math.degrees arctan2 = math.atan2 num = ((sin(radians(geocentric_sun_declination)) - yterm * sin(radians(equatorial_horizontal_parallax))) * cos(radians(parallax_sun_right_ascension))) denom = (cos(radians(geocentric_sun_declination)) - xterm * sin(radians(equatorial_horizontal_parallax)) * cos(radians(local_hour_angle))) delta = degrees(arctan2(num, denom)) return delta def topocentric_local_hour_angle(local_hour_angle, parallax_sun_right_ascension): H_prime = local_hour_angle - parallax_sun_right_ascension return H_prime def topocentric_elevation_angle_without_atmosphere(observer_latitude, topocentric_sun_declination, topocentric_local_hour_angle ): if (isinstance(observer_latitude, ndarray) or isinstance(topocentric_sun_declination, ndarray) or isinstance(topocentric_local_hour_angle, ndarray)): e0 = np.degrees(np.arcsin( np.sin(np.radians(observer_latitude)) * np.sin(np.radians(topocentric_sun_declination)) + np.cos(np.radians(observer_latitude)) * np.cos(np.radians(topocentric_sun_declination)) * np.cos(np.radians(topocentric_local_hour_angle)))) else: observer_latitude = float(observer_latitude) topocentric_sun_declination = float(topocentric_sun_declination) topocentric_local_hour_angle = float(topocentric_local_hour_angle) r_observer_latitude = radians(observer_latitude) r_topocentric_sun_declination = radians(topocentric_sun_declination) e0 = degrees(asin( sin(r_observer_latitude) * sin(r_topocentric_sun_declination) + cos(r_observer_latitude) * cos(r_topocentric_sun_declination) * cos(radians(topocentric_local_hour_angle)))) return e0 def atmospheric_refraction_correction(local_pressure, local_temp, topocentric_elevation_angle_wo_atmosphere, atmos_refract): # switch sets delta_e when the sun is below the horizon switch = topocentric_elevation_angle_wo_atmosphere >= -1.0 * ( 0.26667 + atmos_refract) if isinstance(topocentric_elevation_angle_wo_atmosphere, ndarray): tan, radians = np.tan, np.radians else: tan, radians = math.tan, math.radians delta_e = ((local_pressure / 1010.0) * (283.0 / (273.0 + local_temp)) * 1.02 / (60 * tan(radians( topocentric_elevation_angle_wo_atmosphere + 10.3 / (topocentric_elevation_angle_wo_atmosphere + 5.11))))) * switch return delta_e def topocentric_elevation_angle(topocentric_elevation_angle_without_atmosphere, atmospheric_refraction_correction): e = (topocentric_elevation_angle_without_atmosphere + atmospheric_refraction_correction) return e def topocentric_zenith_angle(topocentric_elevation_angle): theta = 90.0 - topocentric_elevation_angle return theta def topocentric_astronomers_azimuth(topocentric_local_hour_angle, topocentric_sun_declination, observer_latitude): if (isinstance(topocentric_local_hour_angle, ndarray) or isinstance(topocentric_sun_declination, ndarray) or isinstance(observer_latitude, ndarray)): sin = np.sin cos = np.cos tan = np.tan radians = np.radians degrees = np.degrees arctan2 = np.arctan2 else: sin = math.sin cos = math.cos tan = math.tan radians = math.radians degrees = math.degrees arctan2 = math.atan2 num = sin(radians(topocentric_local_hour_angle)) denom = (cos(radians(topocentric_local_hour_angle)) * sin(radians(observer_latitude)) - tan(radians(topocentric_sun_declination)) * cos(radians(observer_latitude))) gamma = degrees(arctan2(num, denom)) return gamma % 360.0 def topocentric_azimuth_angle(topocentric_astronomers_azimuth): phi = topocentric_astronomers_azimuth + 180.0 return phi % 360.0 def sun_mean_longitude(julian_ephemeris_millennium): M = julian_ephemeris_millennium*(julian_ephemeris_millennium*( julian_ephemeris_millennium*(julian_ephemeris_millennium*( -5.0e-7*julian_ephemeris_millennium - 6.5359477124183e-5) + 2.00276381406341e-5) + 0.03032028) + 360007.6982779) + 280.4664567 return M #@jcompile('float64(float64, float64, float64, float64)', nopython=True) def equation_of_time(sun_mean_longitude, geocentric_sun_right_ascension, longitude_nutation, true_ecliptic_obliquity): if isinstance(true_ecliptic_obliquity, ndarray): term = np.cos(np.radians(true_ecliptic_obliquity)) else: term = cos(radians(true_ecliptic_obliquity)) E = (sun_mean_longitude - 0.0057183 - geocentric_sun_right_ascension + longitude_nutation * term) # limit between 0 and 360 E = E % 360 # convert to minutes E *= 4.0 greater = E > 20.0 less = E < -20.0 other = (E <= 20.0) & (E >= -20.0) E = greater * (E - 1440.0) + less * (E + 1440.0) + other * E return E def earthsun_distance(unixtime, delta_t, numthreads=1): """ Calculates the distance from the earth to the sun using the NREL SPA algorithm described in [1]. Parameters ---------- unixtime : numpy array Array of unix/epoch timestamps to calculate solar position for. Unixtime is the number of seconds since Jan. 1, 1970 00:00:00 UTC. A pandas.DatetimeIndex is easily converted using .astype(np.int64)/10**9 delta_t : float Difference between terrestrial time and UT. USNO has tables. numthreads : int Number to threads to use for calculation (if using numba) Returns ------- R : array Earth-Sun distance in AU. References ---------- [1] Reda, I., Andreas, A., 2003. Solar position algorithm for solar radiation applications. Technical report: NREL/TP-560- 34302. Golden, USA, http://www.nrel.gov. """ R = solar_position(unixtime, 0, 0, 0, 0, 0, delta_t, 0, numthreads, esd=True)[0] return R def solar_position_numpy(unixtime, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=None, sst=False, esd=False): """ Calculate the solar position using the NREL SPA algorithm described in [1]. If numba is installed, the functions can be compiled and the code runs quickly. If not, the functions still evaluate but use numpy instead. Parameters ---------- unixtime : numpy array Array of unix/epoch timestamps to calculate solar position for. Unixtime is the number of seconds since Jan. 1, 1970 00:00:00 UTC. A pandas.DatetimeIndex is easily converted using .astype(np.int64)/10**9 lat : float Latitude to calculate solar position for lon : float Longitude to calculate solar position for elev : float Elevation of location in meters pressure : int or float avg. yearly pressure at location in millibars; used for atmospheric correction temp : int or float avg. yearly temperature at location in degrees C; used for atmospheric correction delta_t : float, optional If delta_t is None, uses spa.calculate_deltat using time.year and time.month from pandas.DatetimeIndex. For most simulations specifing delta_t is sufficient. Difference between terrestrial time and UT1. *Note: delta_t = None will break code using nrel_numba, this will be fixed in a future version. By default, use USNO historical data and predictions atmos_refrac : float, optional The approximate atmospheric refraction (in degrees) at sunrise and sunset. numthreads: int, optional, default None Number of threads to use for computation if numba>=0.17 is installed. sst : bool, default False If True, return only data needed for sunrise, sunset, and transit calculations. esd : bool, default False If True, return only Earth-Sun distance in AU Returns ------- list with elements: apparent zenith, zenith, elevation, apparent_elevation, azimuth, equation_of_time References ---------- .. [1] I. Reda and A. Andreas, Solar position algorithm for solar radiation applications. Solar Energy, vol. 76, no. 5, pp. 577-589, 2004. .. [2] I. Reda and A. Andreas, Corrigendum to Solar position algorithm for solar radiation applications. Solar Energy, vol. 81, no. 6, p. 838, 2007. """ jd = julian_day(unixtime) jde = julian_ephemeris_day(jd, delta_t) jc = julian_century(jd) jce = julian_ephemeris_century(jde) jme = julian_ephemeris_millennium(jce) R = heliocentric_radius_vector(jme) # allows ndarrays here # Clean of mostly numpy though here if esd: # This is all that is used in earth sun distance return [R] # numpy dirty L = heliocentric_longitude(jme) B = heliocentric_latitude(jme) # nbumpy dirty Theta = geocentric_longitude(L) beta = geocentric_latitude(B) x0 = mean_elongation(jce) x1 = mean_anomaly_sun(jce) x2 = mean_anomaly_moon(jce) x3 = moon_argument_latitude(jce) x4 = moon_ascending_longitude(jce) delta_psi = longitude_nutation(jce, x0, x1, x2, x3, x4) delta_epsilon = obliquity_nutation(jce, x0, x1, x2, x3, x4) epsilon0 = mean_ecliptic_obliquity(jme) epsilon = true_ecliptic_obliquity(epsilon0, delta_epsilon) delta_tau = aberration_correction(R) lamd = apparent_sun_longitude(Theta, delta_psi, delta_tau) v0 = mean_sidereal_time(jd, jc) v = apparent_sidereal_time(v0, delta_psi, epsilon) alpha = geocentric_sun_right_ascension(lamd, epsilon, beta) delta = geocentric_sun_declination(lamd, epsilon, beta) if sst: return v, alpha, delta m = sun_mean_longitude(jme) eot = equation_of_time(m, alpha, delta_psi, epsilon) H = local_hour_angle(v, lon, alpha) xi = equatorial_horizontal_parallax(R) u = uterm(lat) x = xterm(u, lat, elev) y = yterm(u, lat, elev) delta_alpha = parallax_sun_right_ascension(x, xi, H, delta) delta_prime = topocentric_sun_declination(delta, x, y, xi, delta_alpha, H) H_prime = topocentric_local_hour_angle(H, delta_alpha) e0 = topocentric_elevation_angle_without_atmosphere(lat, delta_prime, H_prime) delta_e = atmospheric_refraction_correction(pressure, temp, e0, atmos_refract) e = topocentric_elevation_angle(e0, delta_e) theta = topocentric_zenith_angle(e) theta0 = topocentric_zenith_angle(e0) gamma = topocentric_astronomers_azimuth(H_prime, delta_prime, lat) phi = topocentric_azimuth_angle(gamma) return [theta, theta0, e, e0, phi, eot] def solar_position(unixtime, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads=8, sst=False, esd=False, array=False): result = solar_position_numpy(unixtime, lat, lon, elev, pressure, temp, delta_t, atmos_refract, numthreads, sst, esd) if not array: return result if not isinstance(result, ndarray): try: result = np.array(result) except Exception: pass return result def transit_sunrise_sunset(dates, lat, lon, delta_t, numthreads): """ Calculate the sun transit, sunrise, and sunset for a set of dates at a given location. Parameters ---------- dates : array Numpy array of ints/floats corresponding to the Unix time for the dates of interest, must be midnight UTC (00:00+00:00) on the day of interest. lat : float Latitude of location to perform calculation for lon : float Longitude of location delta_t : float Difference between terrestrial time and UT. USNO has tables. numthreads : int Number to threads to use for calculation (if using numba) Returns ------- tuple : (transit, sunrise, sunset) localized to UTC """ isnumpy = isinstance(dates, ndarray) if isnumpy: condition = ((dates % 86400) != 0.0).any() else: condition = (dates % 86400) != 0.0 if condition: raise ValueError('Input dates must be at 00:00 UTC') utday = (dates // 86400) * 86400 ttday0 = utday - delta_t ttdayn1 = ttday0 - 86400 ttdayp1 = ttday0 + 86400 # index 0 is v, 1 is alpha, 2 is delta utday_res = solar_position(utday, 0, 0, 0, 0, 0, delta_t, 0, numthreads, sst=True) v = utday_res[0] ttday0_res = solar_position(ttday0, 0, 0, 0, 0, 0, delta_t, 0, numthreads, sst=True) ttdayn1_res = solar_position(ttdayn1, 0, 0, 0, 0, 0, delta_t, 0, numthreads, sst=True) ttdayp1_res = solar_position(ttdayp1, 0, 0, 0, 0, 0, delta_t, 0, numthreads, sst=True) m0 = (ttday0_res[1] - lon - v) / 360 cos_arg = ((np.sin(np.radians(-0.8333)) - np.sin(np.radians(lat)) * np.sin(np.radians(ttday0_res[2]))) / (np.cos(np.radians(lat)) * np.cos(np.radians(ttday0_res[2])))) if isnumpy: cos_arg[abs(cos_arg) > 1] = np.nan else: if abs(cos_arg) > 1: cos_arg = np.nan H0 = np.degrees(np.arccos(cos_arg)) % 180 if isnumpy: m = np.empty((3, len(utday))) else: m = np.empty((3, 1)) m[0] = m0 % 1 m[1] = (m[0] - H0 / 360) m[2] = (m[0] + H0 / 360) # need to account for fractions of day that may be the next or previous # day in UTC add_a_day = m[2] >= 1 sub_a_day = m[1] < 0 m[1] = m[1] % 1 m[2] = m[2] % 1 vs = v + 360.985647 * m n = m + delta_t / 86400 a = ttday0_res[1] - ttdayn1_res[1] if isnumpy: a[abs(a) > 2] = a[abs(a) > 2] % 1 ap = ttday0_res[2] - ttdayn1_res[2] ap[abs(ap) > 2] = ap[abs(ap) > 2] % 1 b = ttdayp1_res[1] - ttday0_res[1] b[abs(b) > 2] = b[abs(b) > 2] % 1 bp = ttdayp1_res[2] - ttday0_res[2] bp[abs(bp) > 2] = bp[abs(bp) > 2] % 1 else: if abs(a) > 2: a = a %1 ap = ttday0_res[2] - ttdayn1_res[2] if (abs(ap) > 2): ap = ap % 1 b = ttdayp1_res[1] - ttday0_res[1] if (abs(b) > 2): b = b % 1 bp = ttdayp1_res[2] - ttday0_res[2] if abs(bp) > 2: bp = bp % 1 c = b - a cp = bp - ap alpha_prime = ttday0_res[1] + (n * (a + b + c * n)) / 2 delta_prime = ttday0_res[2] + (n * (ap + bp + cp * n)) / 2 Hp = (vs + lon - alpha_prime) % 360 Hp[Hp >= 180] = Hp[Hp >= 180] - 360 h = np.degrees(np.arcsin(np.sin(np.radians(lat)) * np.sin(np.radians(delta_prime)) + np.cos(np.radians(lat)) * np.cos(np.radians(delta_prime)) * np.cos(np.radians(Hp)))) T = (m[0] - Hp[0] / 360) * 86400 R = (m[1] + (h[1] + 0.8333) / (360 * np.cos(np.radians(delta_prime[1])) * np.cos(np.radians(lat)) * np.sin(np.radians(Hp[1])))) * 86400 S = (m[2] + (h[2] + 0.8333) / (360 * np.cos(np.radians(delta_prime[2])) * np.cos(np.radians(lat)) * np.sin(np.radians(Hp[2])))) * 86400 S[add_a_day] += 86400 R[sub_a_day] -= 86400 transit = T + utday sunrise = R + utday sunset = S + utday return transit, sunrise, sunset def calculate_deltat(year, month): y = year + (month - 0.5)/12 if isinstance(y, ndarray): return np.vectorize(calculate_deltat)(year, month) if (2005 <= year) & (year < 2050): t1 = (y-2000.0) deltat = (62.92+0.32217*t1 + 0.005589*t1*t1) elif (1986 <= year) & (year < 2005): t1 = y - 2000.0 deltat = (63.86+0.3345*t1 - 0.060374*t1**2 + 0.0017275*t1**3 + 0.000651814*t1**4 + 0.00002373599*t1**5) elif (2050 <= year) & (year < 2150): deltat = (-20+32*((y-1820)/100)**2 - 0.5628*(2150-y)) elif year < -500.0: deltat = -20.0 + 32*(0.01*(y-1820.0))**2 elif (-500 <= year) & (year < 500): t1 = y/100 deltat = (10583.6-1014.41*(y/100) + 33.78311*(y/100)**2 - 5.952053*(y/100)**3 - 0.1798452*(y/100)**4 + 0.022174192*(y/100)**5 + 0.0090316521*(y/100)**6) elif (500 <= year) & (year < 1600): t1 = (y-1000)/100 deltat = (1574.2-556.01*((y-1000)/100) + 71.23472*((y-1000)/100)**2 + 0.319781*((y-1000)/100)**3 - 0.8503463*((y-1000)/100)**4 - 0.005050998*((y-1000)/100)**5 + 0.0083572073*((y-1000)/100)**6) elif (1600 <= year) & (year < 1700): t1 = (y-1600.0) deltat = (120-0.9808*(y-1600) - 0.01532*(y-1600)**2 + (y-1600)**3/7129) elif (1700 <= year) & (year < 1800): t1 = (y - 1700.0) deltat = (8.83+0.1603*(y-1700) - 0.0059285*(y-1700)**2 + 0.00013336*(y-1700)**3 - (y-1700)**4/1174000) elif (1800 <= year) & (year < 1860): t1 = y - 1800.0 deltat = (13.72-0.332447*(y-1800) + 0.0068612*(y-1800)**2 + 0.0041116*(y-1800)**3 - 0.00037436*(y-1800)**4 + 0.0000121272*(y-1800)**5 - 0.0000001699*(y-1800)**6 + 0.000000000875*(y-1800)**7) elif (1860 <= year) & (year < 1900): t1 = y-1860.0 deltat = (7.62+0.5737*(y-1860) - 0.251754*(y-1860)**2 + 0.01680668*(y-1860)**3 - 0.0004473624*(y-1860)**4 + (y-1860)**5/233174) elif (1900 <= year) & (year < 1920): t1 = y - 1900.0 deltat = (-2.79+1.494119*(y-1900) - 0.0598939*(y-1900)**2 + 0.0061966*(y-1900)**3 - 0.000197*(y-1900)**4) elif (1920 <= year) & (year < 1941): t1 = y - 1920.0 deltat = (21.20+0.84493*(y-1920) - 0.076100*(y-1920)**2 + 0.0020936*(y-1920)**3) elif (1941 <= year) & (year < 1961): t1 = y - 1950.0 deltat = (29.07+0.407*(y-1950) - (y-1950)**2/233 + (y-1950)**3/2547) elif (1961 <= year) & (year < 1986): t1 = y-1975 deltat = (45.45+1.067*(y-1975) - (y-1975)**2/260 - (y-1975)**3/718) elif year >= 2150: deltat = -20+32*((y-1820)/100)**2 return deltatfluids-0.1.78/fluids/optional/pychebfun.py0000644000175000017500000006252013632560624017315 0ustar kurtkurt# -*- coding: utf-8 -*- """ Chebfun module ============== Vendorized version from: https://github.com/pychebfun/pychebfun/blob/master/pychebfun The rational for not including this library as a strict dependency is that it has not been released. .. moduleauthor :: Chris Swierczewski .. moduleauthor :: Olivier Verdier .. moduleauthor :: Gregory Potter The copyright notice (BSD-3 clause) is as follows: Copyright 2017 Olivier Verdier Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ from __future__ import division import operator from functools import wraps import numpy as np from scipy import linalg from scipy.interpolate import BarycentricInterpolator as Bary import numpy.polynomial as poly from numpy.polynomial.chebyshev import cheb2poly, Chebyshev from numpy.polynomial.polynomial import Polynomial import scipy.fftpack as fftpack import sys emach = sys.float_info.epsilon # machine epsilon def build_pychebfun(f, domain, N=15): fvec = lambda xs: [f(xi) for xi in xs] return chebfun(f=fvec, domain=domain, N=N) def build_solve_pychebfun(f, goal, domain, N=15, N_max=100, find_roots=2): cache = {} def cached_fun(x): # Almost half the points are cached! if x in cache: return cache[x] val = f(x) cache[x] = val return val fun = build_pychebfun(cached_fun, domain, N=N) roots = (fun - goal).roots() while (len(roots) < find_roots and len(fun._values) < N_max): N *= 2 fun = build_pychebfun(cached_fun, domain, N=N) roots = (fun - goal).roots() roots = [i for i in roots if domain[0] < i < domain[1]] return roots, fun def chebfun_to_poly(fun, text=False): low, high = fun._domain # Reverse the coefficients, and use cheb2poly to make it in the polynomial domain poly_coeffs = cheb2poly(fun.coefficients())[::-1].tolist() if not text: return poly_coeffs s = 'coeffs = %s\n' %poly_coeffs delta = high - low delta_sum = high + low # Generate the expression s += 'horner(coeffs, %.18g*(x - %.18g))' %(2.0/delta, 0.5*delta_sum) # return the string return s def cheb_to_poly(coeffs_or_fun, domain=None): '''Just call horner on the outputs! ''' from fluids.numerics import horner as horner_poly if isinstance(coeffs_or_fun, Chebfun): coeffs = coeffs_or_fun.coefficients() domain = coeffs_or_fun._domain else: coeffs = coeffs_or_fun low, high = domain coeffs = cheb2poly(coeffs)[::-1].tolist() # Convert to polynomial basis # Mix in limits to make it a normal polynomial my_poly = Polynomial([-0.5*(high + low)*2.0/(high - low), 2.0/(high - low)]) poly_coeffs = horner_poly(coeffs, my_poly).coef[::-1].tolist() return poly_coeffs def cheb_range_simplifier(low, high, text=False): ''' >>> low, high = 0.0023046250851646434, 4.7088985707840125 >>> cheb_range_simplifier(low, high, text=True) 'chebval(0.42493574399544564724*(x + -2.3556015979345885647), coeffs)' ''' constant = 0.5*(-low-high) factor = 2.0/(high-low) if text: return 'chebval(%.20g*(x + %.20g), coeffs)' %(factor, constant) return constant, factor def cast_scalar(method): """ Cast scalars to constant interpolating objects """ @wraps(method) def new_method(self, other): if np.isscalar(other): other = type(self)([other],self.domain()) return method(self, other) return new_method class Polyfun(object): """ Construct a Lagrange interpolating polynomial over arbitrary points. Polyfun objects consist in essence of two components: 1) An interpolant on [-1,1], 2) A domain attribute [a,b]. These two pieces of information are used to define and subsequently keep track of operations upon Chebyshev interpolants defined on an arbitrary real interval [a,b]. """ # ---------------------------------------------------------------- # Initialisation methods # ---------------------------------------------------------------- class NoConvergence(Exception): """ Raised when dichotomy does not converge. """ class DomainMismatch(Exception): """ Raised when there is an interval mismatch. """ @classmethod def from_data(self, data, domain=None): """ Initialise from interpolation values. """ return self(data,domain) @classmethod def from_fun(self, other): """ Initialise from another instance """ return self(other.values(),other.domain()) @classmethod def from_coeff(self, chebcoeff, domain=None, prune=True, vscale=1.): """ Initialise from provided coefficients prune: Whether to prune the negligible coefficients vscale: the scale to use when pruning """ coeffs = np.asarray(chebcoeff) if prune: N = self._cutoff(coeffs, vscale) pruned_coeffs = coeffs[:N] else: pruned_coeffs = coeffs values = self.polyval(pruned_coeffs) return self(values, domain, vscale) @classmethod def dichotomy(self, f, kmin=2, kmax=12, raise_no_convergence=True,): """ Compute the coefficients for a function f by dichotomy. kmin, kmax: log2 of number of interpolation points to try raise_no_convergence: whether to raise an exception if the dichotomy does not converge """ for k in range(kmin, kmax): N = pow(2, k) sampled = self.sample_function(f, N) coeffs = self.polyfit(sampled) # 3) Check for negligible coefficients # If within bound: get negligible coeffs and bread bnd = self._threshold(np.max(np.abs(coeffs))) last = abs(coeffs[-2:]) if np.all(last <= bnd): break else: if raise_no_convergence: raise self.NoConvergence(last, bnd) return coeffs @classmethod def from_function(self, f, domain=None, N=None): """ Initialise from a function to sample. N: optional parameter which indicates the range of the dichotomy """ # rescale f to the unit domain domain = self.get_default_domain(domain) a,b = domain[0], domain[-1] map_ui_ab = lambda t: 0.5*(b-a)*t + 0.5*(a+b) args = {'f': lambda t: f(map_ui_ab(t))} if N is not None: # N is provided nextpow2 = int(np.log2(N))+1 args['kmin'] = nextpow2 args['kmax'] = nextpow2+1 args['raise_no_convergence'] = False else: args['raise_no_convergence'] = True # Find out the right number of coefficients to keep coeffs = self.dichotomy(**args) return self.from_coeff(coeffs, domain) @classmethod def _threshold(self, vscale): """ Compute the threshold at which coefficients are trimmed. """ bnd = 128*emach*vscale return bnd @classmethod def _cutoff(self, coeffs, vscale): """ Compute cutoff index after which the coefficients are deemed negligible. """ bnd = self._threshold(vscale) inds = np.nonzero(abs(coeffs) >= bnd) if len(inds[0]): N = inds[0][-1] else: N = 0 return N+1 def __init__(self, values=0., domain=None, vscale=None): """ Init an object from values at interpolation points. values: Interpolation values vscale: The actual vscale; computed automatically if not given """ avalues = np.asarray(values,) avalues1 = np.atleast_1d(avalues) N = len(avalues1) points = self.interpolation_points(N) self._values = avalues1 if vscale is not None: self._vscale = vscale else: self._vscale = np.max(np.abs(self._values)) self.p = self.interpolator(points, avalues1) domain = self.get_default_domain(domain) self._domain = np.array(domain) a,b = domain[0], domain[-1] # maps from [-1,1] <-> [a,b] self._ab_to_ui = lambda x: (2.0*x-a-b)/(b-a) self._ui_to_ab = lambda t: 0.5*(b-a)*t + 0.5*(a+b) def same_domain(self, fun2): """ Returns True if the domains of two objects are the same. """ return np.allclose(self.domain(), fun2.domain(), rtol=1e-14, atol=1e-14) # ---------------------------------------------------------------- # String representations # ---------------------------------------------------------------- def __repr__(self): """ Display method """ a, b = self.domain() vals = self.values() return ( '%s \n ' ' domain length endpoint values\n ' ' [%5.1f, %5.1f] %5d %5.2f %5.2f\n ' 'vscale = %1.2e') % ( str(type(self)).split('.')[-1].split('>')[0][:-1], a,b,self.size(),vals[-1],vals[0],self._vscale,) def __str__(self): return "<{0}({1})>".format( str(type(self)).split('.')[-1].split('>')[0][:-1],self.size(),) # ---------------------------------------------------------------- # Basic Operator Overloads # ---------------------------------------------------------------- def __call__(self, x): return self.p(self._ab_to_ui(x)) def __getitem__(self, s): """ Components s of the fun. """ return self.from_data(self.values().T[s].T) def __bool__(self): """ Test for difference from zero (up to tolerance) """ return not np.allclose(self.values(), 0) __nonzero__ = __bool__ def __eq__(self, other): return not(self - other) def __ne__(self, other): return not (self == other) @cast_scalar def __add__(self, other): """ Addition """ if not self.same_domain(other): raise self.DomainMismatch(self.domain(),other.domain()) ps = [self, other] # length difference diff = other.size() - self.size() # determine which of self/other is the smaller/bigger big = diff > 0 small = not big # pad the coefficients of the small one with zeros small_coeffs = ps[small].coefficients() big_coeffs = ps[big].coefficients() padded = np.zeros_like(big_coeffs) padded[:len(small_coeffs)] = small_coeffs # add the values and create a new object with them chebsum = big_coeffs + padded new_vscale = np.max([self._vscale, other._vscale]) return self.from_coeff( chebsum, domain=self.domain(), vscale=new_vscale ) __radd__ = __add__ @cast_scalar def __sub__(self, other): """ Subtraction. """ return self + (-other) def __rsub__(self, other): return -(self - other) def __rmul__(self, other): return self.__mul__(other) def __rtruediv__(self, other): return self.__rdiv__(other) def __neg__(self): """ Negation. """ return self.from_data(-self.values(),domain=self.domain()) def __abs__(self): return self.from_function(lambda x: abs(self(x)),domain=self.domain()) # ---------------------------------------------------------------- # Attributes # ---------------------------------------------------------------- def size(self): return self.p.n def coefficients(self): return self.polyfit(self.values()) def values(self): return self._values def domain(self): return self._domain # ---------------------------------------------------------------- # Integration and differentiation # ---------------------------------------------------------------- def integrate(self): raise NotImplementedError() def differentiate(self): raise NotImplementedError() def dot(self, other): """ Return the Hilbert scalar product $\int f.g$. """ prod = self * other return prod.sum() def norm(self): """ Return: square root of scalar product with itself. """ norm = np.sqrt(self.dot(self)) return norm # ---------------------------------------------------------------- # Miscellaneous operations # ---------------------------------------------------------------- def restrict(self,subinterval): """ Return a Polyfun that matches self on subinterval. """ if (subinterval[0] < self._domain[0]) or (subinterval[1] > self._domain[1]): raise ValueError("Can only restrict to subinterval") return self.from_function(self, subinterval) # ---------------------------------------------------------------- # Class method aliases # ---------------------------------------------------------------- diff = differentiate cumsum = integrate class Chebfun(Polyfun): """ Eventually set this up so that a Chebfun is a collection of Chebfuns. This will enable piecewise smooth representations al la Matlab Chebfun v2.0. """ # ---------------------------------------------------------------- # Standard construction class methods. # ---------------------------------------------------------------- @classmethod def get_default_domain(self, domain=None): if domain is None: return [-1., 1.] else: return domain @classmethod def identity(self, domain=[-1., 1.]): """ The identity function x -> x. """ return self.from_data([domain[1],domain[0]], domain) @classmethod def basis(self, n): """ Chebyshev basis functions T_n. """ if n == 0: return self(np.array([1.])) vals = np.ones(n+1) vals[1::2] = -1 return self(vals) # ---------------------------------------------------------------- # Integration and differentiation # ---------------------------------------------------------------- def sum(self): """ Evaluate the integral over the given interval using Clenshaw-Curtis quadrature. """ ak = self.coefficients() ak2 = ak[::2] n = len(ak2) Tints = 2/(1-(2*np.arange(n))**2) val = np.sum((Tints*ak2.T).T, axis=0) a_, b_ = self.domain() return 0.5*(b_-a_)*val def integrate(self): """ Return the object representing the primitive of self over the domain. The output starts at zero on the left-hand side of the domain. """ coeffs = self.coefficients() a,b = self.domain() int_coeffs = 0.5*(b-a)*poly.chebyshev.chebint(coeffs) antiderivative = self.from_coeff(int_coeffs, domain=self.domain()) return antiderivative - antiderivative(a) def differentiate(self, n=1): """ n-th derivative, default 1. """ ak = self.coefficients() a_, b_ = self.domain() for _ in range(n): ak = self.differentiator(ak) return self.from_coeff((2./(b_-a_))**n*ak, domain=self.domain()) # ---------------------------------------------------------------- # Roots # ---------------------------------------------------------------- def roots(self): """ Utilises Boyd's O(n^2) recursive subdivision algorithm. The chebfun is recursively subsampled until it is successfully represented to machine precision by a sequence of piecewise interpolants of degree 100 or less. A colleague matrix eigenvalue solve is then applied to each of these pieces and the results are concatenated. See: J. P. Boyd, Computing zeros on a real interval through Chebyshev expansion and polynomial rootfinding, SIAM J. Numer. Anal., 40 (2002), pp. 1666–1682. """ if self.size() == 1: return np.array([]) elif self.size() <= 100: ak = self.coefficients() v = np.zeros_like(ak[:-1]) v[1] = 0.5 C1 = linalg.toeplitz(v) C2 = np.zeros_like(C1) C1[0,1] = 1. C2[-1,:] = ak[:-1] C = C1 - .5/ak[-1] * C2 eigenvalues = linalg.eigvals(C) roots = [eig.real for eig in eigenvalues if np.allclose(eig.imag,0,atol=1e-10) and np.abs(eig.real) <=1] scaled_roots = self._ui_to_ab(np.array(roots)) return scaled_roots else: try: # divide at a close-to-zero split-point split_point = self._ui_to_ab(0.0123456789) return np.concatenate( (self.restrict([self._domain[0],split_point]).roots(), self.restrict([split_point,self._domain[1]]).roots())) except: # Seems to have many fake roots for high degree fits coeffs = self.coefficients() domain = self._domain possibilities = Chebyshev(coeffs, domain).roots() return np.array([float(i.real) for i in possibilities if i.imag == 0.0]) # ---------------------------------------------------------------- # Interpolation and evaluation (go from values to coefficients) # ---------------------------------------------------------------- @classmethod def interpolation_points(self, N): """ N Chebyshev points in [-1, 1], boundaries included """ if N == 1: return np.array([0.]) return np.cos(np.arange(N)*np.pi/(N-1)) @classmethod def sample_function(self, f, N): """ Sample a function on N+1 Chebyshev points. """ x = self.interpolation_points(N+1) return f(x) @classmethod def polyfit(self, sampled): """ Compute Chebyshev coefficients for values located on Chebyshev points. sampled: array; first dimension is number of Chebyshev points """ asampled = np.asarray(sampled) if len(asampled) == 1: return asampled evened = even_data(asampled) coeffs = dct(evened) return coeffs @classmethod def polyval(self, chebcoeff): """ Compute the interpolation values at Chebyshev points. chebcoeff: Chebyshev coefficients """ N = len(chebcoeff) if N == 1: return chebcoeff data = even_data(chebcoeff)/2 data[0] *= 2 data[N-1] *= 2 fftdata = 2*(N-1)*fftpack.ifft(data, axis=0) complex_values = fftdata[:N] # convert to real if input was real if np.isrealobj(chebcoeff): values = np.real(complex_values) else: values = complex_values return values @classmethod def interpolator(self, x, values): """ Returns a polynomial with vector coefficients which interpolates the values at the Chebyshev points x """ # hacking the barycentric interpolator by computing the weights in advance p = Bary([0.]) N = len(values) weights = np.ones(N) weights[0] = .5 weights[1::2] = -1 weights[-1] *= .5 p.wi = weights p.xi = x p.set_yi(values) return p # ---------------------------------------------------------------- # Helper for differentiation. # ---------------------------------------------------------------- @classmethod def differentiator(self, A): """Differentiate a set of Chebyshev polynomial expansion coefficients Originally from http://www.scientificpython.net/pyblog/chebyshev-differentiation + (lots of) bug fixing + pythonisation """ m = len(A) SA = (A.T* 2*np.arange(m)).T DA = np.zeros_like(A) if m == 1: # constant return np.zeros_like(A[0:1]) if m == 2: # linear return A[1:2,] DA[m-3:m-1,] = SA[m-2:m,] for j in range(m//2 - 1): k = m-3-2*j DA[k] = SA[k+1] + DA[k+2] DA[k-1] = SA[k] + DA[k+1] DA[0] = (SA[1] + DA[2])*0.5 return DA # ---------------------------------------------------------------- # General utilities # ---------------------------------------------------------------- def even_data(data): """ Construct Extended Data Vector (equivalent to creating an even extension of the original function) Return: array of length 2(N-1) For instance, [0,1,2,3,4] --> [0,1,2,3,4,3,2,1] """ return np.concatenate([data, data[-2:0:-1]],) def dct(data): """ Compute DCT using FFT """ N = len(data)//2 fftdata = fftpack.fft(data, axis=0)[:N+1] fftdata /= N fftdata[0] /= 2. fftdata[-1] /= 2. if np.isrealobj(data): data = np.real(fftdata) else: data = fftdata return data # ---------------------------------------------------------------- # Add overloaded operators # ---------------------------------------------------------------- def _add_operator(cls, op): def method(self, other): if not self.same_domain(other): raise self.DomainMismatch(self.domain(), other.domain()) return self.from_function( lambda x: op(self(x).T, other(x).T).T, domain=self.domain(), ) cast_method = cast_scalar(method) name = '__'+op.__name__+'__' cast_method.__name__ = name cast_method.__doc__ = "operator {}".format(name) setattr(cls, name, cast_method) def rdiv(a, b): return b/a for _op in [operator.mul, operator.truediv, operator.pow, rdiv]: _add_operator(Polyfun, _op) # ---------------------------------------------------------------- # Add numpy ufunc delegates # ---------------------------------------------------------------- def _add_delegate(ufunc, nonlinear=True): def method(self): return self.from_function(lambda x: ufunc(self(x)), domain=self.domain()) name = ufunc.__name__ method.__name__ = name method.__doc__ = "delegate for numpy's ufunc {}".format(name) setattr(Polyfun, name, method) # Following list generated from: # https://github.com/numpy/numpy/blob/master/numpy/core/code_generators/generate_umath.py for func in [np.arccos, np.arccosh, np.arcsin, np.arcsinh, np.arctan, np.arctanh, np.cos, np.sin, np.tan, np.cosh, np.sinh, np.tanh, np.exp, np.exp2, np.expm1, np.log, np.log2, np.log1p, np.sqrt, np.ceil, np.trunc, np.fabs, np.floor, ]: _add_delegate(func) # ---------------------------------------------------------------- # General Aliases # ---------------------------------------------------------------- ## chebpts = interpolation_points # ---------------------------------------------------------------- # Constructor inspired by the Matlab version # ---------------------------------------------------------------- def chebfun(f=None, domain=[-1,1], N=None, chebcoeff=None,): """ Create a Chebyshev polynomial approximation of the function $f$ on the interval :math:`[-1, 1]`. :param callable f: Python, Numpy, or Sage function :param int N: (default = None) specify number of interpolating points :param np.array chebcoeff: (default = np.array(0)) specify the coefficients """ # Chebyshev coefficients if chebcoeff is not None: return Chebfun.from_coeff(chebcoeff, domain) # another instance if isinstance(f, Polyfun): return Chebfun.from_fun(f) # callable if hasattr(f, '__call__'): return Chebfun.from_function(f, domain, N) # from here on, assume that f is None, or iterable if np.isscalar(f): f = [f] try: iter(f) # interpolation values provided except TypeError: pass else: return Chebfun(f, domain) raise TypeError('Impossible to initialise the object from an object of type {}'.format(type(f)))fluids-0.1.78/fluids/optional/hwm123114.bin0000644000175000017500000057211013632560624016722 0ustar kurtkurt  !@$@.@4@9@>@A@D@F@I@K@N@@P@Q@R@T@@U@V@W@Y@@Z@[@`]@@`@a@`c@@e@i@@o@u@u@u@u@ Nr)?A>{ӿcY ?>ם?+bH?A@06?@^Pp?U3Oۿ|0|S8w?0W{@}ڸz? 7*Q=~0vS?cͿosb?ә],ĞݿxV׿8?t10e?"*"qasYC9tx?]ٿpZ6?6W¿k7qʿ6V?ngο=?A2տlRUz?1ٿmVk?ܯ/ѿ~'?S+Ӭÿer?Sࡴ?e)@C0ѿBi]?͐:Hy?D=CZg`B?~D;,?L?8?p }}?pQ9£?QMXLprh'?Hܧ?Emp޿wM\?ˣ?a^ڿ)͟j?nRqĿ0ͺb<|nr̿ ?!??sF6? 0 m?j{@sL?se?J)4~?фJB'?9?xC5Ŀpz?iX?GIr 뿑6ݿCwcԮ?G||0?*V|=?BCX&k?N@?BG|̿} ?kD??Bl?sĿ"baFRc8?| Eſ B#?N˜V?i*?[ÿhXSM`ŶϷ?r+¿xy?hlW?^f? `ҿ8I }?}ֿN?z(?P㿲E??8K}Ŀte`S?ɻԿzI?uT97`;7A?95ҿ!s? i?ſ1gh?nHFٞI?&H??ZeBm?s-?9F 5{?rgڿ?? ִk6ɬNbʿ?1s3Fÿ6w?|8cw?3QO)?xv]}뮿Efʿb_Eo\p?k ÿ6?w\=ЉJ?)1,ْk;!(Iў?16[`*ߧد?C?w2D?MTʿ%M??CG(? ?}[ .<ʿ"">#C3?Rʆc? j aCq?T)>?`C[d-?gjH7?pʵ?U'R?}hk|Fj?%`M ѿCm-=?㦬ﭚk?p$.uP>?~]0qkضa|*.?xz. ۗμu7囝0K?@?%?DXԿբ8w?K?տh_?L)п" "?*9MT׿ȠF-ʿ^D6ʈf͈d??5ȳ?p u??T?s'C?68C?2`7?J#?^]#?Ax׋?ܒ1㗿K/EZFmο!+S v,@̿)7i`?[ y?w?=֭ܽAq?5K?ʼ?L[ wTp?o%?=8?gL ӿ6:?+ӿV `w?;L݊CM?<7$ϿwV?[_yοq֌!?p%?Z/]?E#v:C1ʿ)!?J0$ѿ$H**?/- ѿTGz&s?܆xs-?01ǿl? ֿ0u?`3|c4њ?Sq߿?2|ΖN?T&ڿ!ܘR^T(Cp?ND?0'hZD?Ȅ?u\]&z?'_*dZ[^?~"=XC?C 4?y'?N ;Zq?NtaƿZVc`?7;?/PǪ?%e8O,ڵ⼿kw^\? a(NxRQ?Јcuq?%>?Ա{\?'nx?%_G\!.? sTbNLӯ?rNjy7?[J%)f̿Rհf/ÿ;잿a?%W7?4~ƿ_ :;?Xؘ"?DMwV?PB76?WZǿZ?}PF᯵ 07ȸy?F~'$=ZW?u?ydbmjce?=t?Kš6!f?系dN@,^'r_ ڄ?@T?:Z\?46ȿhe x?鲚ѿ ?5M?W?3m(?4c?{!?Wp @VӃ`?yxY`qÿ&ƿӷ?,\Nd?ty#?~Ʊ]7HZ?N !?/z+n?odbT4r' Ŀ DŽŬTjԣ?ߔ*v08#aJfTT6;?DBZ)ǰkDa} !rbڭEĿܞ1U$EXݐ#2i:5"[Y/?ਞ-ؽ]aalYԒ?`8~=?bZ؁?qC =aʥ`F*'?2F k?쿃,ե?> `RB$u#?O| |W;?΁>?ؼ'mv>K?&ғL?f'?U{ϩI?ˠ"?ra?yұӵ?`m}Ŀwrs?ԋ$0߯?ZZ_`/?&z믘Q?B& ?Pt?t"hʴ0!޳?t'njQngoÿ0@u9?Z?."͏V_oI?ƸKfl˺?6ʌx?+"s?ębtH^@|zlթ?PG?x:woq",?Qr9,C[x@H=~?%({5?*`;]d1?P(? T")vJ)R?3:?V.AK? _䋙=ÿo: ÿtu۔:ڿ[4c?ω?@B=޺?՚ֈE3O) 䰿 YJ'/?f[?X'!(ȶu?|@Ŀo4X?+$]|⣿N~"?[[ʿDvl?چwQaĿwE:?'Ep@BE?iJc'?(|F[f὿F- u̐&?W(?I*?)yqG?8+My?RO??v7ĺ!g?pWH2?tBڒQ5>?b&ſiqEfͿb&Ew7bG?ߠ -?OIV}?BT?b\pZ?8`2R?+^?UnD9Q? ?@5[հ?!Å?%?ӷ$?hA?{?؞ٽ?:Grf`¿+?z?|6P~|Ho?V?+@a$˿2Uo=?Φ?ה2ƮN;vɿz;1?G_2 طƏ e¿n[՛?j5TT?ʖQ,4Y-5bnܦ#ǜjn l? o?n֥?ڕ?{Ƕ ذb/JYiDn:?. ?Y6RQb?YG:׺aNVÿtp?8Rw<?M ov)I¿wD9л?y3?[sptX8+?o2 Hڧ:[?jKq5&]?y?s5]ɶƬ?GWU.,#' ?zVĭv?Hd{hɱbT/#?3'o+#|tJſT>eäC?r1^A?4榁Q5Yq?~:Դ&7\x?獃KpRCs>{g`hFhZfz?Oчpu ?t_F<{'Y]?C?3? $@"dN?6 Ş?G,~bv@*?sʅ>lKڸ?ܗLFV?xB?-?7:j Ԡ?l%ѻO? IPٵ7LMr?18#?O#iL?ɠ ?Z>WJ?%~W?wv2?Eij\Tο?/7"GRnU?2PA?0?s ?,f+\?M4VȿXLC ȶ?.aװ?+WNĿ*ݽgmw(ŌYrd8Qug2?2=P-H?nN?`'m}?›$zda ?f? f}.ubi?aĆ;?: 3墟?f ȏz#Мѿ Iͳ>?7UM3?u A@l`w]tCX&ܠz$@#dʿM]㭧Kl ?B37п?~ Fy?1XV鿠m^y?^!R߿ Ub?nܢοd׿pɉ ?*1y:cԿs:0僚ڿt Χ?'X? ̿uNֿ<˿ߨFOο3M?(8׊ $f?V5nC?k?.B^пo"w?#{?lȿz!kq?R9iο—_u?G+ϙU#'¿`A#ص'a(.TEƿ,G{k#ԿfKi?>`6ְ?Nup`ҿ40ٿTѽp?>Q, \㿎vavʢ\ڦοfWӿҿkŘ?~x?bOǿ+sͿ'"&?Od)a2?۟HѿM5,E,p,gÿ = ݾ?j? Z0???,xs?F?DWow)?Fo?w^l>?`ºiM"?:'տw¦K?dɭlfѿc#G?kwFͭH?^e$?ftd7?Np-tx}~?~aP?[K,T?!7v?mIVb \g+ia?Ӯ/U;?l5%p`r'C ?5 SUʰ?-NPLk`y?!ɿh~F:?/0~?ǵԞ?NX?m9˿dǺE )?IK[3?GE쿷H6?`Qҗ{ǿR8>?wz2iտ6R?)eѿeJc?5o ?)Bӿ\=hcs?,? 1(j?wU? ۿԼ73?Zܙſ؟_?j)6ѿĻ#,?:h%?{.f?+^?Šc.?}i~ҿS!2ɿM}ҿ\`+?]? w?&s?"x࿉tȘ̿Fqgcu?×bnQ?ьw d?V[пQ?x?N~?YJϤ6ٯNFmd?vIlaAؿmۿ?QJD??ڿr;M˿)֙P?*N4?V3d?k]Hÿ]{3TӿjׅOI׿Wh??.'7Uv𪎊˿8tG=\80ɿ ?:pֿ[=$No?ըew#[;ǿ$ڠN:Z>7¿v ?,QƿÅAwI޿lh? 4?'9~b ?h?Y4п?(|F?1ď?iL F[(ƃE|?,v7?r^ҿ޿ǽ~l3UĨ?_̿'Ƒ?kb!i?* KuҿsLdzw<-?H?t6V?t3â?af{/J?KG[Ϳ=s?48Sfz=׻?Z1оZs?Nb ?%@7c?Ϯ>dտJav;W?lOK?/pVڼ?La?E^0_i?:zB?Ӻ?+?ÿEw^?^ΰay5|?ixֱ?xN&xY?w ?{r#.ƿFf]o6gX!?0 ~̿hij%t?`ſ![?{KIDؿc^? S!o=d7F? VF?1?%@g1ÿ.س?X@?g@檿?HϿq L?5vm?CJe?6?KcY@<[h+53#ޘ?NBοp[6?eBfѿpbȠd`{?ʍ תƿ4GĿL-֗?=yֿAo,?ѿ )sCn??R?YNп/6 紿>y#8?Huǿ?iZ%?~9ӿ7)?^Vȝٿ4ۿOw?.Qx`6Ϳtrw?xww`' SVU?@VA?EKҿVvz?z?ο.ŧhdZҿ8ʿО)L蚨qhoۿXϘE6H &?>?D2匾;bhȿ9c_M;ӿgKߩx? =?l\O_c V|kԿG;6?$'οܩf$V˿܏>r2??f~x2?UC'?%ͿS|\)Қտ+U?w%fNKW?>1'?R?j|@Wb_"tS?06Ԉ?0ź?sM?dԿF1y=ɿ,O?Q ź ?y4*JڿIQ\?rDW1Уg?Щa? -¿lW?\k2d?[)?x?Ј 0ts?;"{?ÿX ?@?055kGΐ?(F5P?äF{Ss=Ġ@dѿ:0\d;3M_^R?eك/'?_?dy.?1?PIeI?eVO?h Ƀ8xD`?w+D?=?+տz@I?^v1LҿK xj4!?ky>?*lS=)v?q| WԿLJ?+W?R(? _=̿mf?@@k|",5Oz?42PXʮ?^p&eÎv5?&'vB.B?0?;H5s `&ҿ1?V?Ő˿$˿np[ٿǫ,,?6xȣCǿGM?dIi1"eU{?U?׿~>h?("Ϳ[ ;v?x?,?:tɿSxpƿʋ?^5?e+b?kz3'?&M!W&z ?I;,Z  ݳ+pv2|,??!K?H`ÿrd8??] Iȿ 0a(6?+M?+@׿݃ۺ?7')"?!ʲ0!?LW?:x6eȿV_?~:;Hl ˿/k=ӿ䃊8?d`?}Fd?eމy7? < ?DŽҪ?2nŐtsL@ȿ$ѿM7n36?$H"uX {.2l2UЂJ@ҿzvſym?h?DfD?\J>ߘ*aۿ,~ ~hͿ4HWCɿ"ޓcҿnO&?hgQ"6YF?Ψ?T~fDLտCSG¿3R|?|2?A?;XB (z c?b(Ms?*վ_ʿOx0{ADϿXWD0+:Yf%¿þcÿ Uu#AGsM?on? wfH߱м?0ϝA@vտ{F!y з?U9O? \?H @VdIG?\7ءS?\?0W3?nᛌп'e?HlɿBIā\}2? ll "?Bj**?]J?ğBa5?Tr@ٿKX6?XY?g՗s[?'nL¿ ?hEؿ,?¿8k&z'ݵ?AlOƿbof㳿ޛN f? a?oUfs`&6?#6z=?U/cY˿guɺ(=?i8?pef5¿b'пhf?7RT0EK`aN'? ?c8?@i^L˿jHqDp7ֳC}h?7#?[?9D򁅻1[+Ϳ.QU L~@?LϔĿT?i=p^+hآҿ+O"M⿮]tY0T)5YᅧS:U?epm?q@Uʭƿ?̒d]cgA?bW??}C߿b?eg(\z?1Lyп'!uo[p"~>-?tBgpB?E?蕉EFuxTĿ\m.?- %E?8?_|Ϳܺӊw9s U?*Wٿd!]?ƗaӿrW̳?9Ix?6+o/F?7;ٿ!v?윯e?]^?$Nlz?.JֿT?£%4(?# ҿ`?-H/?F<.w?_il?a-?!wt\ֵ蚳?hiT?7+EKV׿F?ǩ2vz4{1ÿ1zk(;-|?܉DwͿ,^*IῺL5?ХH˯6f̿)3ۿVmceǿy'73?4yY'?oɿY׿PRE?? ?v(?pȿmY?ǣz?:r?aꏻ? cy?8Z?Zα;/Fߴ?\?ȧWk?zhѿ>?g?lDԿ@omLҗ_Zfb ҄u'd̼8 RȰ6wɿD0-%V?=>'j?0CG|?6 ?qSvֿ~^?? !ʛE?[lkڿ907W?@5⏿d:?X?!kL?4ʾ#c?RK΃? ӳ?*(޿C,?2zG?pz?&a?}F!g?t? ҟ?rt5Ys?#}øV0ꫲ7 GOoRK?w5 e쿨[ ?w|Ů?,?{<#kŇեҿ ,?&r?/$]?CӾ/E?Ad?<^ȿb:=hl }+?Φ? Q|O?K%*g?FvL*?Hk%?x7!OԿNlG?mW\ܫ+?ҿ &ʿ9aI?0?aF 7aп,G?)sCWʿI;?xfi˿NLڿ "?x"YW-a?ŦZU?uҿFz?`'Csrp  ?A&lQLzԿHZbh˿U)?Ȁ Ku.P')οJ+?=k?҃8?2T ,3?rxr"ؿmZc޿Ĕ?ޞkN?FzSK?(\пr`LͿR?#b9L?萢RĿB$6ɻ?Y?H ,?fi?afؿH=ؿca?q?7o좥?&7,ٿu֜?F4n?m7?~cToտI6;ο1jmȢ?IjH2?|?]}(?B$7T;F?Z7ܺؿn}ɿoڈ7ԟY"|1?" r?+vIܼ?&1YBʿ6 ^׿%s?a$xg}mb+M?,LcBUx?B&bɿ wfc?)',?6?8>tވ?puYH?٢ؿnt?v$|2k?6=? @D ɿ|vk*C{?{@ ?1}?`H?Qw^?@1{kWOп$¿;:?ev? 8POI?֮r?yÿR-ֿ@ } ?X ȿx KѿmX?br?v!;Rƾ?ɿÿ/?$< ?Õ.ݐ?7+!??~ў^? ;vXD?Ge*?VҿݏG?d[?@b[}??8-`ǿm,=x׿ n?W=B9kwlY?dVѿaG~ο*:b?k`?A%?ba?ɥ/0iʿNG@f?V,Ē?O2i?H!u1˿ Z׿B)j?mVM]|?H%?ؒ?`G?Q;-f@!X?\0i??yF[ӿoo9ؿS&q?Ġ{JЈv?8|?y~?^? ]YOvԢ~>y@0$?֤E?$ ?\΍̿o.wX?¿h. ǿ>_~W&UTB?һVI4/12 HN?tV?K ? dw=[ָ ?!{ֿ(HJ?F?Q8;пpdTHv:ש`>܈V?6rҘ?9[+i,?Y l?0*&?,NOj?qԿNGS?9FTy?ʿmlL[?4-<ɿ̐[\rW?"\D?ܤ#?F .=ӿ?n\?IM˿k[~?7&?2weο@QE{R*Rzu˿{ڿj?IEKm?hô?>b?Pv\*c?WbS%Xn1?rvԒ~[U?T̶%Կ¯l?}a`?a؛? Zɽr?}4lV+4'?JX鿿7A$?`$?0"娿wTB?V8Os?Ҝ+l? apa}݊^2}̿drM?ޥo?]d?K7? uiٿ4&?R.-}@`t տꥏw? Jʿ8њ?m2Jewؿ?jE?:_4?0EOHi?ȸԨ'"?>IǿDM1u ȿ>Zk{L?~ȕDCoUق? V@/Կ_W7?p;ɿ4:^oпKh3ÿaߘS⿶ee8C?#Ox?S?`PnU຿<02g?_/?Sb-?iW[bC?\絿G?tne٬޿(ѽ:]# ?(U&=ɿv۴{?G$]˿٧`?~jf*۱zU}yJ@iǿx"X?'?rn;#pٿk}sJ?*1mܥyTn"iu8-?bh1eD$ʆ¿8?@#y¿|dɰ?feVc?նȉο+u?)y55ٿ6i;%x?hd}?+)%{ΘϿa+vRp¿:L2@? Q˅o? fxϸ|?/'j\1?TA?^3? T]d[-0Zп7?ܟ?.ڿ>{? 3#?O uF:Ǵ}?f?WXxͿ-$A42W=`dvzPOԿ˨d?WW״IK5zÿGT2?%'Mz?Ă(ֿ&,?)!vX4+FKrJټ?*4q?ol^ſSDگy"?Xu K?Bg ?wq?߶?xheV$u?Pv"¿.7b~1e?\yF)t?9 ӿ+B^n?$;x?1.ȿ9|Rf 淊dk??N6?8.n?rȿ :?o?\nԿRuY߿># ?'?r@-uT'e`?s0տ2 $8?i?,?:࿤Dr h?i (!-_l2?:Ԯҿ@/ǘ@ZpOο,i^?r鷿uq$8d?xX?:瑎?nKg}?n ׿I.yɩߗ/^д˰0I.?>},?Bda?ӵ#??pJ;C?޺qLݿU 8?kڿ?H.QҿbQ|`1[\?$D?Kw?;wk6׿UB l?痈**ߥ?W2`s?A WN? vxпh ?yܛ?&s8??N? ׫?UoԐ?4|PlU?MC+,ªbO?BF6?BHk?;[?X'??^ؗ?T? ۹?$|g6?\>]?hUؿ03t׿)"Tǿ*0o0?.𪪀ޚ?h+)8?b9Zؿ(K|׿VJ§~Ieɿ>T?8X,?B?$ ?orױ1gm?j)2?Edۍ5^?NG,]zuJѿ xW Uz3B5?V|] @?1{DN(n̿^?za$F @#X5۹?#<Eq67{2h?Ql*OX?k7%P[ D?j~?^>y ?yl#O@nF{ԿT"{ȿIe?+0?fCY%rr@ߑLuNqտ0Mdzm ?e ?Kk?;οYyȃ?1?Ԝ n!\@,f rF, x?;1L!?޵/?KנC¿WS` 8 ?0??Im ?=4lQ%?! 虷? _?p0?d ? !(?qZil?I B?PmB\Ͽ}?(ֿ⍀.пH ?&?Y?G?K + ?Z,F/$D?ނKS?)ҿQT?%8#"ÿU?l溿S?2M8?YZސ9?у?Q?h3Ȭ?$?N=Qv"?~?&\^ }?qd忂~NY?8< 0? .r?4޼?"m?˝+"?fiͿOG ƿ(@Uy?؅ʿb9\dҿsٿV}J MI?˂F?QeIlпq|`?-?N ϿIc 聏ο6+BԿcӿ*ֿd ?=?-K?NF?yA* 8?d/d#^$OZ?l\G~ӧؼqX$LĿb1UT|Xk ?˯-rң'習x[z ts?_qU^P.?MHf #ڿ<ί?]}Կo:տQm?ZnTCֿa9i?»aYC?˯6qh?ΞcJ'׿O$?&|߿EJxS)`? S?] @[aD?l!ʿ}= á '?Z17 _Wz|gۿ}z?Հ]6?yL5g>^湿k2:\n{pz1?@\NӅÿ*rϫ?s ſ.;[M?OB?oq\DοpYP?hHj?l'&ѿ?WN`Aǿ>\@?%7?7AwyԅL/zrݿc3#/?vj?15W?"ҿ~{K4d{?݃Pb"?s9¿G/2;?=wB?ɪvZ?c?Ws!?N&>f?+NJ?59ο0?\?Rп̣n?mqyY?:ҋԿ;;B Dbп!l?k^H??~Dx qu(?{'п' ˗(%TП?Bj=?`PM?>O:ǿNK^4ֿu(0¿,dٓ쿂HfC¿T/ӿmfb@F)ѿx-S-/ܿ FkTԿt꺝دE`?ԉ 뿦faS?owѿůn?Uބ*ov@6ѪH?xʎ?dSuh?k#֜n?MՑ?X;ֿvD?+(\ĿR3e?zߺݿD~-˿"}??5k?͸oѿZyؿߋR?#?~}뿬>?\5DশȰ?dfoOth6Eտ!T#~¿N?o?YÿNrѿ1aa? ؾ?a޿?O=qֿOp?ͬ“? rrI?Dpe&?<?B#??N@kݿE87?@L%j[Z[sb п%\N?=R ۿ(lXRӿ}m6ZԿ 3ԿC8hѿT/{U?ʟ{:?ln)꿺>h?Tſhu_4Mg[1?COqf? 3̿u"T(y!?I?Ǐ۷ڿ `ƿ+Da;\%BMG?cN˿큂 G`aaʔ?:zBο74H=?闤ÿO? s?pH+qMM?u"H?̥?DC~RͿ 5_Z?8d>9I>D¿xZC˿u??t5*ڿjg@ ?w@??EտPQF?u a쪿ԶLÿXi,?LTt~俖"2ӿi:? G@?DЮ0sk?$Fԅ?ݿ,ld%3 ӿ?ӹոj*sYQ\?Q]h_?\9WnÿXO׳4)#ɿ,)@?qn?r^?[H'snĢly?lA￿k*G"ſ/m:ۿd`?R1}.2ѿx E?Hk?)%0?tl?XH?" $Nz?2ᑿӝ?:1?N >{ÿjoo?%,8Um?@aǿi3MDh,?Ԕ_?PH(ɿ>tAϿ?>?nޝ[k.(pֿR[¿Σ?IVT&Կn[֣ح?k(3?`ß*?i/`ĿŻ[KR Ɖâ-/0?ƿ520J+ÿ~ɓ? E>'uqo?.˲?,q}gȿb]I?$K]XͿ88?Q #?>r?pпSȽZ?1SD?C;?ڜ ?D?$p?},6?ag{?I a?Q}ֿ !g,ZKYԿp,;ſY?y=(y?`Z⿉d Y,ҿ)0]ƿ@!࿪b إ?տ֝?G-?BD?Tk ǿ3 t@g8?PoeͿw_0&7ؿ!NϺ7?g# ?`ChzOMBqٿ9zҩο^.N|F Z?kaJ?1'[zEi:?i݁ÿRC ٿm]Mп`r?b8ϯߘ] "ٿ) ؿ{?bԯ?.4i$Կ^?٦+?2Qf?dAuǿӪK*[?[\#D?'n뤳e/98?C1)h˿쉶p2?xx$B?Yg)׿ |Q?̎x?QV4d/U ߿K&ӿAll?!y?&!? n7?G׻j?%ö?0rܡ?e>?^(ɵ3?թD _82i?)H8п=ſ!?miL<갿)?,_տm'?ͥ^x3s?pт"?R]?\o|򭿺ÿ.Gn?w ԥ?gvqο?T[= ?ҿl4ƿ_%O?ETG?ǀx?6ֿ`pDXR#i3nf?v׿IMLqv`sҷ?4e=?,AAI?K{?'b:ڿݱ"ǿi[ƫ?!?UIQ+X?# Wǿο&Lxc@ıܿTj`~V5?9S*ʿ")<ǿ ܏!Ʌ\!岿3.5?zsbϖKϿ>ſ> "5ؿn^[PHā!?*X^ž!t'?:?|`¿L?02 YQtkT[͋?>0@@ٰMѿvޠ?S<ȿh~VǿajF?Zid[ҿ4( ?kq>uҿsvԿ_?pOt?\2>=5j ?|™?ɸsN0?b?Z?tPȿ)?-a׿iqK_$7NS?gٿF? j 𿿪 S ۿQCS?k&ĈϿ4qBf?\.ѿ?Iпϲ%?,پ,27?I! ^)A8q׹sP"3п&X?Bkz?::PC$-?|Ѳ޿ڶ;h? 8ο$gݴ?ȑ?[Q"?_\ڬJB(?>'D?.ú?iv!Z~5?0?roA#Ͽ|FcEӚ5j6H?ny>z(P?GTvx?GVh6 M?WfÿЉ{hT?K'οH?-i5?^/AD?GMH alo?3J?Zr X?Y(kѿF ?4}|r¿FL vbfA?!cQ+1?4 ѿ,[25??wY'?|#W¿R4e-пVw߽?ON?~T(Dr㿩Fx.UÿNȁ`_t?w2zHݹ%mo?lf+ݩ˿/V?Qg?=I?jS?ܛھMO(JuQԿ͸ɪ+]ҿ =M)ۿgf?D=?*Cp?܊k@>?2w? nǿ2w׿? U?2#띐~ߡFWB?8q_yj?%Pl?F ?N?o ?LmNҿ[’ܿ,0yĿ1u?eST8S?#^ӰǿWM?2E,ɿD̝Y>?ԏE\gP?8-?6?<)P|8П4hCƿ'lA?=׎l˿Gepy?Ԙ?jg?ƿ tz{ȿ%R? k,){?Lϩ鴬e^ؿ=x;ʿTb2ҿQ?¿x9.Olap3|?9LMͳ?f?ncԝ?(?/.X?S{^?uE`^?b?Vɿg]m]ʿe*=~?PBxebfФ?|h?ȋd?9Lkؿhg?z\w/?$E܌?҃? <-3d2?-t@wFj\D%CU?Dz`[?|), @:5Mҹ?(t.?bAK0ֿ\ տ8D?};mQ}7?KҫnM W?4@ ^'&?`Űm!r5[@/N?%-U?h @A}]3 ЖDb^?!Zֿ A=?g, pA-[?72{?ZH?H^hdy~v?U@{Zzw@4v|8SdScV???hV?~ӿM.;,o?,K(tB?ؓ]ӿ6H?]s-w;(bI? kO-ÿ9kؿ^Us\?}Yx£@P=?HOHϿ< ^ {ڡ?`r-B5¿w&E׈?$ۤۿM!u?܁p?S2]?iȹh?佦пJ'P?tg[M?\N*ĿL?]|$_? C(mgC)!)b>՞$erfy]@CN?bC?x|@TAc\? *0F?M!տqrÿ%Зx'ҿ&8u?*fxCdnw?kZmEiE8EݿKPn)&y?G|?'&4 @d?WcSL?+!?3y ?-C?.\ڿ-R|忝?|^E׿7kF]پ ¸7Dnp?)~ѿ3Mp4Nv? |s-- @۱#Ȳ?(t0h? ?6LIX|ҿe6Ve:.t˿# ?#N_R̵п e?;ڬ?xVҿ{>U&,?^#\1ȿokAqlP-?ީi?<]@a?&?BhT_bא­?\#O.q?٘U: ?ۗ#mI?+n+?dZ?BN _Ŀ=ӋһͿ\?[`X??q:;T?"7uȿNHXy΋$? F&ῪaܬH޿|վ @Ӗ-쿩0lӲ? :(ɿ͆ Ώ?U:h ۿ -c?@~gv೿F?[m~ƽ?E?ي_aB+?=td? 9?k?:_x\=?X)e?l{?⡝?$DX!Ktš"8:?4?:t㿭c?2Կ 9[?uª ݿO[Ё?l~~'p_eȭ3ѽWֽ<7?Gdֿ&qbS?B)]bܿ=$b)?TI?Dr?5kA?%ئS? RCsjl?(xԩ?Vfyܿ ҒO?KY"dYˎ+$?ؿ|޼aĿ@gZѿH>2 ? /:?O A?Q{[?v?.7GN?iBh?nY?VAPn7? @F+(?*nӿ\2[m?lP#?j??e:4ڟ&ʿ~0o(zE+?_!?Q-O?b{6I?qFr ĿÿЀ翧ɿV`?:lo$$lx̊?#QO~?4G?{zLmؿg vڿKnJQ?wOFԿȧy3hNÿa)-?8gӿ|u?6 w釁?E˿p6*Xÿ&2?NtÿT8H(cƆ^ƳbR+? ?;Tp1w?Ze"i)տԼbu?90b?FV5!?2Mk~WD=U?8H#.?m(ܿ|?L'#?iT?fiĿ{{N?Ƀʿٗ1 h?xҿoyN?;md'̿qT?lϿK5`F]?r'?_8?SVKǦ{5;ܿkBӿ?'ڏ ]?*3dҷ?j-ʈZ DVzoWݿ /e=p?`d Ͽ[{ ?-QĿ&\#?f#t^lF?ߋ-Lz)~o3?y77|?\W?aVյƿ~E?z?]5Es]1a?)?ukڱs;7%?Mi+?5}>SAôpq?6w?XeZ&`I+XR? pB?|"?yBR.ِzҿfa>\?l?foſd1?OHZ?XH?<ճ}٪pҿ_r`?DŽq%?@sZ.G?38?ǿKb3?=yd8R:4WL>ҠO#ſ/4|ῶ?S.;s?&P˿ĹfhϿQrƿ~ڸ`ǿ֬p¿␙^?`򁿰 2Uˢ?ן?"#J{̿oN?S]?i?ନ!f?ב~Ŀ;Jȍ?b?յDaއĽ -d5ٰ~^? x(? 1J?Tk?C˙x#a=c?#U?nuv??)D?1&grXaѿ= ҿ[۟*PZ?BTXI?pPFo3W?%A0 tH^?LN?,a'W5A%?D/a?xvbſt`&vȿ*"]Ԑ?J$i_+jz*_|=Oȿ btƿiC?WZ3I^3Ŀ#Kv?$ˣ2?)5˿nIĿs??[fӿ$IVnƿLzy"?QG{?9C?J͋SֿmXB Ev]В:STmMu?pQſLn?6'ʞ69?uC@? 33?gGͣ?2O?= ?x\ÿJF0K?(.p61ƿ|l?ۦ% ?\W!MSȿ} w2f?q?tVvYΖJyk}\?7 ?_¿5~ļ}>0?|1?N??Ӎ2?"N}r?^Hbſx?-ɰ?QQ?غtP±JW?@gT?ƊH׿[Y$_ j:|?>$?{'n5)r?I?AMTY?-6?shWI?} ?j;?b?8|?+?P8? ??v@{-?dпdtд?g^&bѿ±W?A|Ŀ;(?7?cvȿ6J?<=~?\C ~$]?|XIń8 ۿ2)'_lNW,J?p (?S#örnZ?oIPV䘞ؕ!me?T̯:/?pԿd԰12h?yI!O6'8??AK;п~I 8?U"P$?:m,t?T?+~߲ɿM; ?.?$ɿ_@냂?1i3?,e?p%mD?J+|VT?9ÚH?u$⾂?VY?T?:ɴ=ʿ+Ř䷿1/)Rۢ%?i5ow{3hSn͐?H' 4?kYF?`yۿ|yٲ0چ(H-п<?po?eSuȿ/$JE8?YMk̿d"G?@,?8+?0^H$Nb۪?J?c]ѠֿL昲bpA{X?![ȿѿZfp?A?$;`!?rVz􁬿YInE?+ ]=xN(.7աqwwMh?m{,?y6Z{ϩ?(zQ1 [1¿$ ׇȿ.0?lAٱҠdJ6,5}ſR%#tO?f\r [?狜d½̊AFfaBjmS ;?;XC?ps%s?6~-wj?"e ?p5?!o:O ÿv?J L?J3Ckjb!?>9cP:1hĿL ?Tr.R3?EuֿD0tſϊ=q)JſKMw?c̿ Y巿̋gbƠB?*Р?Bp&D??1->16ǿM.P1!s&ɥ?t}eÿ@Y}? ?.-d撂d߳K?T?R-ƿ5L4ڿS@B̿F@?Z>?Jy)x?`&Ϳ@Hǿ^H \A?4].?F C?և[?bAn1ڤsCƳN?G#ֿoCɓb Dz?m|v?\~;ĿyxQѿ7}[Rɿ NIdo?x)n?Pjǿ/ИMl̿~̽v/yϿ ֪?**?P<|pAC˿MhWLYմk? p? )պV Z4wſ,΂I@w80wȿJC 'cƿBټ@:thUٿEKXͿ)lFf?6$*G?7 e`\x@nB9?.ْ\Lܿ%j?jy%́*!m?fֿN.);@ vQvѿSz?:)SS@H9\, )Rٿ?BB)4q?K2mݿ@ʔܵA?]̗5\@P7dF6N?zRq?Ÿ Lƿ*?!c?BV޿_:PLa?u?F nꣳſ[? I~dk?̿'ynG?I?gq/E-?0wM ?J?MO*?HPп+ae?wbdIG?oM?z:?F݃?yN v?Rɿy$?e LԿ'GV?fYcϿ5)@?s ?O ؿL#󹰿a@&?aN,b?{҉qǿiOzԴ?J>8?J ?~P[?Zԓ?%H4#VF?|?8⿶?Ml?=+b?9144?/˿P;d?}=??Og?`S-?/+q|ŤѿǀHu?=Қ㵿Lho?2ᵡĿ>^\2Q1?a~?bW?COҝʿ,E?W,?k 8m?fܗ ?Y ? F~? ۿj!&oܘ5?1+k-ֿ% ÿM,f>AԹu?(l"|UFLƿs/L?]`vݿ @K?q-5?ϖ{οq~!jl8? D2~?= @TտzOЧ|?PHیh? .H%?2.`Ibd@Q|1?}1?d!N:?id ~;+`J+?@'ɪ?b\^K3?F翆4t Ŀq0?_4bϿy;?|n?gfԿ%?wsf?"6=?ϯ? Y/?v~?tp誰ާ.nοVg.ä?:wᢄM?,ȿ7mA{¿a3>B?f>{a >?d B&ӿ-ph?EQ5ؿW?~?Lh?UoASӿ4U8IƉ&M迣 K?b@~uҿ|DiSѿ*Rq8S2KD6?$ dY?lϟ?vjX? z?B;\ÿvĬB?@GJ?Q~mTW禹Կ_ ÿ'?_wtͿ5*?xeՀBZA`? Xf9p\[겿"_ZE%?I?F s˽п¢Gǿۜ&пԮIΉῃ'hz]gC?؅d4 ??:2˲ź?gIm?G?y03g?kÿtrRjн2ꦃl?J5S`ſ~Ŀoo᱿oHkW]1 ?EA Ѝ:?&{Ҷ5LgFˡ? 赈+?&RFA$`ʿ' Dѿ'Sˀt,?7?aav?W8I?VXC!?2?ǿyIm?οDr}wt?4^+?x;ڿm_ԿH4ܬR?Ÿvĕƿo?*`ݿ L?hG?Igu ?%n!R&ݿZMn0?k 4<~?A{j>?1\M?1.m2ԿtM? K3?:`.?iH7Ō9?ʿpV+̪?8&4Oʿ%4㻘]? "OH-ҿD\te̜)?3r51ȿ.D?&~$c;?v栺?jCua ?-B᾿83H趿%IοQi&ÿɷ]?(I?|j ɿ-E}:?ɿy5sW?T2V?BFʿ/$?+3Ѭ? ?{ֹ?:?G5? ?vj?hFh.οsN*?g~?e ѿKп•-U!?XD6n?(1?{jz?q~X"_E㨿up[ȿ[ᴿ+Qӿ6 ?#Tf? eα!F}GltHQȒ˿N_?`.f Ŀ[Сn?ms?_=k?4:~6VmLѿ{$ѿ_c%gХ?¿jpοū?rhe?,Xf?*$84Zf?Z-/ݵ?LKhA?J?}@3?-N4|s;dP?Rxδ?ktk̰Zƿ$?]| 1?K+ M?A^>^C?`Gnq?gk?ƿe%l5M qE!6ȿ$@:yjށ0ʒ? R]R׿xG ]a/=~ɿtM0Nb?Ew??VCYҵT>8aPƿDQ(Oʿް.?i?eΉ@ ڼ?'vQV?tFAU7)?,B/??kſ016l湏@)B?Om?̲Q`?˵ƿ80Q?˕ ?ztD?Sm ԿH׿bWp-% 0L?n htMR}?`6? e?M?[N?r0`Թ?0pE2>B >;Fw˿ Tѿ23?<&*ɿ5]hϿYlHޛzI0?2l2?siщc?l߫;?{]k?/ ?l ٓ?fW?/'m?+=1?bgտ*}?g.?mzo|]T?n]?QVR' 죧kVKg?O.uؿ: Fk?]鼟?c?\õ|a,?ք A?H)?NI??ȵ?82nUj vʃ?Ӛ?'Ϻ&¿[*?f˄drg}F?$RDq?1M]ivɿp0ĿԿnwl?=2q3?:b?lY)Փ?DO?ѿ`pݣ?H`tl5?Dj?m58?e˿+A?j'Hſ@Y`(?X?,ui[G?{!?Nn~nĿ}'+?f-ҿ}gXỿ9ȿx&N?a< ?'AW:d?:(f1?mo(*¿08P7Ŷ?Mzʿ~Jș^* W,r] l)?/(7?xlet8VGʼgSʿ0!Eҿ^aK,E(?v?D?N ֿۭE@%}yM{?}QԿ1ۿ?M;?(?ȩYQĿGM? .BZ?Ѩ?`kC?A>L:SxA4m.ixZ wֽ.U >l|'ſ&:"<1?T`NF8sVM (?,^Tg,pB٫?CޅW'ſԱ @Շªdsz=࿫K컿;aI?Hji5ڿ|?]3]?C3Z% Ŀbb鼿\L?=ܿ.zg"?Ns-?(?@ 꾿@%ֿ ?O-?-@"«>ܦ?pX? ?9.b?`˷bw+ CsȿAl\H?`YHA ;Ccg^׿f%d?>T`?oZae?Ir??]EyٿW)?K?&wС?ƀ$RT?}&v>Wi?-/*@]RMa?ΘnYU?X}_`_[?nGĿ%'J?0,y?LGӿ|明o8ykض? -,|?@n; &gſcFh&?} YrG?ʒn?k?Py|/N?i@Ͽi?ryο??Áe?4&?O=i?- 3C?t#pDſo8h?jp(?v̒?0 ?jտߗ?f}җD?J?P{\BԖ!?Lk{俭xFy¿nkҴ:G?\ceyοR翴l?WA%?Z\ƿ 5?DHĶrP?`3۔?JF@?Z< ?J*ڿt߽? [?fmƿgZFRɿh?ȭÿXpQ?%b?Q?hcDź{Nc?݅jX?ѿW οԎʿxmǿrr?n)|ҿ{F4L۸?H(?Vج\D?](R?~Bh?q J?llnP08+ ?[<ʙ8?hARҿ_Q!u˿zs?TWrǿ{c?|)?)nQ5h?jΐ"yH0o?A_GM?rgo3?)SпwD%C{9??x,?cڍvz/)۵?"ܿǁۼb?ZyY?EϿE3zѿk&Fyc?#)ڿjrT?)?ԤXs~?>*$kLO(Ϻ#1{?ǛZDNR@2?WiګڮG> ϿAbtIg?!޿|*Nʸ?ia2? '{?)#!̈?6?̿:%>}av>}K?O¿LzUճej?I҂? L?ݼ?.!?W ts?`aB¿I?Ȍ lϷ?&adǦ !*t?JO?ˈӿd'Rz࿩ >Ԯ*eBկͿz?H8w??:Gf?\C[04NvBʿ6-h <Ϳ‘VQj?.}6{hWCj?RlҠ?GI)z?p=VɿBlݿ ;ښ j?~( [ҿwAKm˿xFy? ٰ? BͿ0m󜣂SS6?G/L6p1@R~?;O?!ѿc+Uʿ6e+?V?)ٯ4 oyؿWw?FDW¿J/6H m7׿4r(?#&a@TY |<['Ј?ܿ=¿]?̶a=ވVr?7-3?axfKsnGيR?Kiq7&?CQx?2#p M }#oF?v[?d|.X4#xӿSU3hr /?7urD{Ͽ,ѥ? ww"? O1I? P]Ј?TE?<3@JD?94 ?hd?^rA? h?9 ?fF[ڿKGp?şc>?H]J%%俿,b7"@?vB{¿n]Iխ]׿,ecJA3ÿN"?iGwPux?0lXȡwiS9?}CgDr׿|>=se?֧4$2†?ǿp[)MG?g[XA?ڍ=ӿM}E0= ? £?X٥|?Wd˿+ĿI_g?4p̿ ??տ?$?`zaoK6so?#ݤ?#b2~$[?GƿJEP{?!$$d?)?_Jο `пljY ?w?N2c?*[;U\!b4}?:? ?XQEҿTDQep:ſܽFW?$JDu?>[1ῪȢ?V?kΜT\?%?FI?Q ?O?V=ӿmt̿\'mӢ!,\?؊^%S'ֿՔ,w?qdͿ.#嫱?`?v~j@Eؿ}ޗTڿ ?6xMlؿ^㪿_AB?Mr[̿D#?!^GiH4 0#w\Ƭ?(ڙ~ SM?ԎWJ@س'K?Vۤ_ӻ?':E,c?Q}ѓ\)`ݢb?L`?U??~ۨw?|{V?m q?aS?"]?>?3-~(aFi?:Y!?Hv,hP?JWO¿[J@?3]_;?忿7?MU'%޿?ל#Tq?^Xu?: _hotiP?gJQҿ\?g2w?]- bO4?J*E?@pſ)Ɋ¿[6MXuſ{U)Fx]?3`?(~/?$^~i鰿r&?iB{?b(䈿~.m̿4LXC_;ÿ!`տ(Gdz o Q? ZJҿti>l5߳D˿F6yv?P&m⫿u?eJؿC`$?l^䜿.&t2п>n!?_ſwɿT| +nۿU6h?bB(?oÿLV&:' p4ǿRŬտ7)?Y Ͽ6f?>н?*u8?nY?הL? S? R¿qHӿ1-}}JnT0|ѿ'^A M]?t2?HCʿ8t04ȿUQK?aڭhn?S=>"?=Nf?s#qj? /M?Ȫqm?-@6C{t H2ٌMa2r@ѿڸ@By3ſ z4,?$= ?7'S?),!Ρ 3IXFl=o|?v{b @D7p 洋[[@|!q˿j`F6&haqq@ 6zInпdɘ @]zwT7{a¿Eÿ>B ;4H2frGoac.?tZh2$&4EI3r?2Iq?!D1@Viy?.4D:- d |S&̗_jx?JU Z?ܡ85@q ?-' N?)ԓi?d,̿͹G* ֿг??sr˙忀DGn-}?R߉F@}A׽?NȿW.=?aj߿y(􆞿rԿ2@ZP?ȳe .\:?d_IڻZ˿C4OEۿѫF@uN) Xc2ۿ,?d􏯿?ɯ QܿM's'{ib!X؀l⿵;nf?U9_f?Ĥ:?2_?O;V/`?VuhB?w?kxԿbD? fM?#߿"Vb?SSުĿXjO%X#r?|Ȫ-@ ?&bֿ\(Xӿ)R@d@kWyAW?CW_Da@ε"Nпnj'RW p4f`a?a?ƕ8x6@iSHO,4{Zݿ^1 @??=jK?![܌?T1d,C Q⿲zӿp?;:8!g+~36u?>O%o Rtkn lٿBW¿򨧿F%c.F?^Rت?}|a?m4$$?eo*ӿ(L`1?8/8i6v?X~ X?\Z?83\?ݿ1pMѿlM?ݦKoǿRrFQ`,TQ/տIУPW?Աoq`?pNtW&?.犩?@#*ٿ$\?9X^@|M3?؞տ7̿1jK?B`㋹?Uݭ?ڿ7J%κuԿЃؿ?X@ WοWIE"ȿ@<?ؿLYb3ķڿSP+?ۋ忔}*v^2ʢ?[g&LY8׿Ha?'L۸X)l?wtտGh)|?^b +-ٿϨ.ڿ'?xo{:?p*MɿdrH?.@ܿVIT?c*ךȿoW4ؿrb`JвԿr < RbLQ ӿ$s? S?X8`PJؿ(ۿ=yƾ?:鿶 WDz ?h?aR/h7WwϪ? 4]c?/VuĿ8}tk;?.?mȿ$>ԿyN?=Ki?]Ϝd?0V:!ǿ2~u?L9iR7OпV:٦Vo ?;)F ϳ? G}ÿ/9oȿՠ?ʟk }L?[[h0}? (CҮ?;Şĺ؋gx26?T=fR?70Q#?:Sea?E?S7?>%?NetwxC?ܴ`?w?Tùſ@=?Z oӵ?K7ҿ]?̣KQпf k?R_¿Ch?S?(ɫ̈̿e1Te?or?V?ڱX׿CGstcG?ѿu+z?.1E?R@?ʳ?%ֿ]s**?XYW4#8p? 66 ?Ǔڲ?2HVU$ֿ_dBeɿcC}R ># V4?jKwrֿ)Kn?fEsf?Qڈv(^Wc4?-RX? ~|Z?5'm?NЉH {Oji? xEOǿm?YJ;:~~?`zON?)oaɿ)ǿVQ?n=:LJPv!&ȿQE?%#0H֜j,?@:yQ?'% qG?]I+p*nZk)uN%s¦ƦnKh?0 ԗV?8 7Po?*XBĿe ޿ ͭgɿZ ??6i,?jH v?y?\ "ȿS)&?p㏿bl!?Y6?ވڿZ Wi?Zq9dֳǿV+ĿPxԿuv?L1""r>{ƿrʿ뉃TE=nr y$= X4nYʿ}>L?ңA'ƿ=xG螱?+sY? ?&k? hտyrп :U1h@?=W?|f?ѰAmlZ$ M?6?TA=ȿ0mjܿW]J?\ugÿ3 ?5tU?Y> zs{ڿ[?t<h? У{пf2¿Z*?yVd??Ÿ8NcE?%?şѿ)A(ſ(~u폿, ˿f@¿|,ӿ{ܧ P?qH8z;e@0eLq,$V5ŋ}TοX&@@O<?fH迳61!vV g?w,C2?!m+ݿ};f Wy&|=e¿bnR½@-&*EYtοsR?L?vP?Nƿ-[2 @qgJɿs~Dѿp),vſ,*G?8)VJ¿`]|,PWFacLbK?\*E? ۿα.؈?A[(\?;m۲?ܒ4Z*eAsz~v @] I?m.$.}_]ƢB)?$=M8LC|@XWظ-@u߿/(?Ϳ_i@Rѓv @n"hNKc @WF RWFz?`?н6ǿeu%Pp#,wϪ2T?7R??*PˮF 5,E(Lu*w׿^I|R?`N:'ſk* ?N3!?lbؿ3+yIؾ߿RSP?\4n'?v\w?]t?;Wۿ-9տCX ?&7?i/L./Y?lN jӿ?Ghӈ>:F?c"簿}߿l31@ݙbοUsjȿ(?pǕTo?Gzf׿/^?ƞ?NÍ?m#GUV=Wѿ#1멙w~?.cƿ,֯Ot?JX|@e1ƿi@A?X?5`?#%п·ʮĎ?7̉-+1?bȿH?.BE?Q ."?emYӿK=?$GULӿs,?'gʿl޿fQ&>?=r7/?VVM?`__?6JA[l vt>׿{6Ѧ3 槶?a0?cϫ ԿϿv¿ŀ Qd"?֠C@g὜ Կy`{ֿ|B[ ?X#VGJn$w805]7ֿd7fYܿ\]{ǿ6FQh?=atȿߞ%@?nzR%忨.rCzп_#%W+ٿ^Rj?ȽSLr?JSq7?᛭¿gt볿\?Rο%/?f߈鳿ЗȿI %=XĠ :]{eпvq4ҥo:?\W=6PPKڿ?;iÎ$ǥy v0+Tƿ^l}?*XL?Hs(ll*, ZͼSKr2^JSԿJ?90+?0(ǏeƿIH*Bu悟 O?adܿ oΛҿrʿp>0ҿ-,fi?c 4 ӿu3Y?wRy?{E?V&Կwpr1P?mv\ĿWݝп.(?A0&8̴?Vؿ=X¿ iĿ`Zb῿?1o6ҿme?= eҿpTTXcjпO~F 8.ӿTF~dĿ.忱*%?̱?:!^ſ p:?~d?$/ӿqZ(?Gȿi?Mߨ?-:Jn=zI?-1zM{Td)dpPMҿY?@{?j2g?4տ~"ز???>?AʿOceiɿQп)۫j׿@&? ?f?BWٶ37?J"VVs7-?A ¿V/ӿQ$8WO Ͽ;Fr/?W@W?%7`q?M bz¿XĬGqxo?fUӿvUOϿrFN ?a ?=zF?'?027 ˿ $̩Ը\õ?geͿm$?(a?=ABȒ?¡mɿ8+2Nx7ϣп|:SFb?4,6'Bҿj)ʡ?Iy?PZ?J>S>?~Ṿο\QŽֿtK?SO?DŔG?<)係Ȍء޿яf0i?c#Ͳ3?0u!Y>M¿JӾ^)?`u?<1pP?r6j? 7?}'B?ˢΕ ?C&?VeHMH?F%?*qL0?Bx¿W7dm7ۿ3죵?OCٖ?o)ο1+1.ֿ\ʌ?dq]+?yǿhSИ}ſ&? &?Cd́?@hض ?!w“9[пUTӿ@&ΦP쏿 俳݂@2 E{z?Y?OfGEpzڿ%M?oNƿ =ٿ"ҿ|oXOʿ$uͶ?֥A1Fпb"І#?=-¸?@ʿpy?l+zb?L>܊M"J'vbcӿ?ῼfǿuvՏ?1HO?Tv?s?iι?'fHB׿iK!? NT&9违x^)ZVce?6,A?UԿi&?>2޿܎ܿRn?R5?yS?<`w?6cEܿ:28وۿF5S?٨ ?vɿ.JԿ#Va_@?Iѿ9aֿ4$8P?0G?h 2ȿ׹?nNPuп"`yngkӿEi?Hu?KX?=7iB?\H?60f?7ރ{8? g*6w2%#c`RͿ S?67ʬqĒM ?Qش?ԑӿl\AxDGѿn2Cƿwoܨ¿FUuRe;Eӿ.,aO?c/?,*ҟyӿF`?*cGf1ǿ^/^xKc? E򴡟?f!{5Y?A߿g?0?]?0>a?@/0ڿqيĿN?vbH?ҝ>,?.Vw?Aq^N?{ķO̿YZ HzVfÿp1=˿)Z^?J~RX<Ϳۧޏ?Lt a꼿B繉? ~?%1ͿLv.X ?`C&~?]=m??Ly\*L?JYNLȿb!Ñѿx6zl'?J? ?.g?̿S[Pt2ȍ?"aƿb?{v+uοj|?=Xeu걿<ꫥ?S;WS#2ƿk>;~bA-߿пdאlMYH?\mC?X?ĿJ5NČ?œ ؿ~iլe?VUPѰ~?R԰?5]տmJ= ?w/+$?leddCl?k$QԿ_?8)I?%?@f㿍vhտvD?zӿE$ܿ9?8ҿTN\ɿ.Bɿ]rXtω?y /?6v;5ibf`,Iz?qZY? юXI[gɿFVʿ^a%D5!ULǿ&X溆k?Fp?[z2O?64B? ¿G>@H<_¿h55s5$?lQlQ @;sÀw3ҿU.?E$=B֋?f5rK?&80B ?Y+@R~(y_2ERdIID; ց?N^cV@6O:R}ÿ|2[kt?:{BMlٿ_=bb?mJ)zaĮJ?v+@cZܿ>-X?K=%?8GTh|?;??|@E1'S8@U{ie?v~+pAdH?<F?l̅0z]ֿj2@]b<>6tп%Xv# ԿlҿZz{ƿ<^? v3b^zÿY￿ @?_?m?_ͻ?ε/vVB?-5?4SN@Kؕ]@d2?C ҟe@H?z @CFĿ옟Io?$L7@<'?]SɬG3d(dpSLu|FCQ?`?/!@ Q>K?C翨݀:A@F;s@l?4-пw D?U 谿 +bͿ-@.Կ$Eۿv;F?M?swC2?2Wڿ8]-9SϿ'.GQ[?AJ ϭ" f#?\DʿD`l^п#q$ſ<*)(?3RsDd*v6?'?: &P?8NjDyp?HFXTM`>οAq? 8v?r, Vnұ'A?[ (˿6.W?>̦$@"L rMU?wh @8ct@b;[˿7?謰G?i᝗rs8?O>Ԩ? 6?35O6䰞ȿNT?ӿB>@^%(Nٿ DŽ?4@hcb-ӿ>>տrԼ ]Ica9s"V?m&c?Ee.m>1x;֞K<_O?X?"¹?ӿz]@࿐cPpq_j俶JLJܿ@?Ty?[CӿJ?&/#W}8?7(?gC0ٿRK7?AN^+<쫿I#K?蝿F vѿO7I?,{^<ӥ̟@r"Jn?K̿ĿQ:jK?F^ʿ`͍俳UKB?8쿩w Ճ玳?@5!kԿ/>(W?Rc(ݿE]樿pDs? xgZ?K\H?4?K;ᅯ<frѿXOؿ`< bʿ\ῪqlM;>ϯ3l/~?&>ڿ] ,ѿ!Dq?_B2ܿ84ܿF *ڿZx zc! }e?">ʿYAu?f%)տQAl(7ٿC$̿pY>B`2ѿ' ࿰@ ;?&?r? ?Yο9A|L̳3ҿ1XxQ~&]ӿ+˅.f?)Q [Lms?ϫZ?b&4FE԰?0/?Gw;ܿ [Y"ʿe%u6ٿm7I=߿ZF(?'bڤ^z/xQL?“K`H8Hx<|#?'E4?yͅM?տH?yh?Qb?$ܮ/ҿ|ڷ?A¿i׿Ӌ?*?W?%?UNx?"C&? +,ށο0ǿ!?ت?<* [?~=e}pԿZ ^?dҫ?x?erxM:+_>J ʿ )G%L\)?={w~ae5ế:d!`8?Ի eٿ } ׿a߹%C?}jտ0W/c?yܿ+?B\F?տw=?@DԿEn16.?_̿"?HTԿҾiп8&??O?*1Dؿj:u?G?dѹ[p6?!]S<~9͇tt?u}.8e#?,?)gܡDfgztѿ ;"D7?ʷY?֔j޿q!<?T?=%@P뢌ɿ5ؿ"?Ĺm,Y?h&ʂ?Os˿&W}H?sbMv?a7}?JwԴ?F٪P(B#?ؖ Z?߇U?o@Oڿ-iֿ7#J?8X?`4)迡!Wƿ;?(?ȠtD+ĿW>oݿW?AF?.8e?OY nf,Eď?0޿1߿".h޿$ L?4M^ؿ IU忣R߻g?:_1sҲ<ͿFI3?$T:F?6wR3?`('}T? UA4?#v@?[V?ғ?GAϿ[hv?/ebۿi?`?Sf#?ZKۼοJXԿ(5w]?|r?NLRJWA̿ ;̭{ g 1濸~?ҫa?%o?:F8Ŀ2뺺ѿt?@ofX?1]y>m.?QGm?{+ο ϡR?uyOؿ nGGzUk޿tio=? "Mk}rup]?v?>m=7A?p+ة׿J#˿qـ$1^1^ @(_?Z;2X?TyCοkMEw?8W/?` )̿'y?э?pe6k?mJo?vvz?(2t<]4&QLn휿mȢ?Bcn¿w?WAؿ[(r?!qà[ؿ70ƿQ?ڿpֿ[ڿP~? C!:Z?l-꒶ <#gΟľTڿRÿk{G(ѿl 6?~U;Ͽ@S@?}Ν?-8?OJwܿ>l?H8y??pd#P J6J?=ܫпD(šI  ?LNҔ]חH?09-? Ҝ1J׿[ÿRSտ$P8P ŮjHn"?ZIt?b"Apf}R׿H|]v^|J?忱0OhukM?AZݳ?XۙnAOܿte#| Ȉ?jS4g3Կ8l%-+ǿ|U^ԿǺ "@j:.'p 8@oc @ԑ¿`ۆ5 5? "W@W?ˆ9@n?/DR¥1G??4}L4??_?A6w ?:+@ɬH$?")`dnJLyL:bN[LL5"M@2??Ut<ԿfC5ڿ$-4km}@?6 ԗatz|(|nd*F?+ү2 ,llU"¿f+0п\ǐ? G0 Hfyk hL$?%/?9ʻ@pF&R@ EW".? v\?ViF(Jh3ڳuta?$D&@?`ʒk2%N2ktq qݿ|8?J*}B/ 0UW׿;Y~:9YP1@!cW[}&ҿjΔg?IqiҿpiN@`j~#̿p.?eJ=A?$/XO<пc`n-& ?qɿcP?2Ff"@7Piƿ}j;\v8Կsq@D64{鿏t @῏@hk ?֜-✏?^s?%:Qi pؿ<?% '@1kfg@ҡPH޿mϒ ?qhW@,>6@Z- e?Tk?T<;wz[Ҳ?Yl ?ppҿ#*?OG˯r?IP?4ϿͿ3@){o>disƿ)x9?Viս?Lҿ9?r׿tF?| jr]G\&^/Z)??Sտm2?(p|?iu?2qv;g@8f?oT ?FYh߿DrU[5?޿{[J]o.@W?`Eǿ7ajm@E|@pv?'O?Ό1`ݞ?&.cJk俍~{տh/\?@RR$*??# ?MJ"-gMԦ@OZT@^?~?v,h}?@ ?^ \Sw¿VPk?'+rzL?0ࢿsB<sc(Voݿiݯ?G*K@ ?Rt#?J.'?E6l#(O?,}% ?_,?ss'J?13i'?l B[?;o+шH?zPn?z{i?;n&?gd`m껱?]Yy?ߴ&Ϳ8%N?6wֶ?#Rי?{mf)[xB?T{x?])?efd?v4C?UXݿЭ^m `ڹ4"ޫ0znѿhu1B?\ ?2v|?Jn㿝L ?#0?w]ȳ?AZ4濇%|0?-CǿU [? F7ֿ1?LײzmEuG S?Z)sǿXU{(MZɸ?xZš+@?$H>u?Gt!"濹UM(߿1R?DPVۿAS?4.g\?4$RܿT ?BF࿏@/e8u׿=1Ӕ?@׿zVCǣ?+״.BF%qu?Z)Ek?M?nCb ?&K俋/:gIS3=d?J㿱*9:H3?>?(WԿl^ۢ>?D/ sԄ:w]ޚֿW} HIԔ?s .1B",ԿK ^H)Ȥ&ҿS q ߿m$\?O3_ȕv7|?Կ`7 ?%L??Z/ſ6%D?bҟ?_b<~ tiڿQݨ?¿6ǿE꒔?љ?v]QOyʿ v?D<\/Dt W@忾(?kS˺;: ̦ÿ؎:ƛN|gſ6“?ZpFԾ@`?6K #˭?k+D?XVv?~uwqпQQ0տ -0J-V +5[?yhd??P? - 8#?leeϿ7$\?t*$9?nDpǿ$\S?r O?n? ?I2n 6벌?V?\氍XUM?qs٘?Tkq?\Z?ږ?b'ڿve]?ցL0O??|?j i Q.>.?-]?(! ҥ?Aڳȝ׿[U'濱׀?>J8:?JۿVRYXοIrq?V}4? 9?oc;?L3|<ǿ6?(zş|?Ԥ%%ꜷ?.bZ?pZ%?x%?$ ?TFX?y?tv?m~X?jk?g%pΑtֿ64D?\?f|ȹ?<ȿXNm\N?tV?XZ$K?l3˿O ?nn-㿮U'ӿxyvǿI%_?J9?$?\3?=]Yf?.V ?Jj R v'O?h rh?BX! HȿO?dD3? f~ؿ ͤҿUn԰mݿµ׿N]nܿ# @k?O\ғ?i#2տ8۷`?|Cdڔ?EāU$sѿ ?ZŤ?X Ɲ _D-]10?/ƼzaFҚYӿ1[6.?$$b? ms?Vc˶A?5hʿ|%]ѿR:E ?5p?Ny?)?@$"N˿U -?r5A??󡎸?Ҵֳ$?^B_>SP?)GzؿL5PHvM?E.~FK¿!V&?·{?T ѿҟsv?ծAA??؊>d?/޿9R?1% ?D?!?B\yǀ̿wvl1H/?k`س?l?h?P?XʿVձ?a?%GW?!?5g!/RѿHc?./ӿX67㿠`?wFj[;o??_ԿCіaaϿ|OIbl?a0])?{VAοs0͘?1G:?Npza?J s忘fG?`Mܜܿ^NI'{տTL~Tf%㿇 ctZJN/1@l7JпTH~5?(M9RѿFPB@OGP?<Ŀ g;c޿)F3sƿ(˿q2&ٿ<5g?;ڄ? Y?QDο0^?ο4z^?2dG$>1E)׿p 0 b?9^ѿ>>Կt3Jǿξxmqy8؋Y0?NNA̡˿F"4? [Q?7{ˤ?j# 1￵'ݡƿdZ$yǶO?<˿zK8?"?\J8ѿ75{|?f{ÿtIzh?Q?r8?mۿx(3-?^?@ E?,K%9޿rL{?п9)y˜=ɿHg5^?!?Rn??xr~[f⿂QԿV\?[)?&?=˿ k?ʍd"Ϧ@ (i*!9?GL¡翈$ۖ? yX+p?*|E?pU&?mD1?qܗ.? v["?p\B?9z#ؿ:6&$?K,tͿ =8ÿf\XUzA{8Ts?`~myS~?rQKÿ-7տk?.6\4Ϳu\|Q?oL2?]%?=v\ۿ&V??ÿ(u$ѿ1?;q翅)f???[Կc:?H?Q@?1rhv?b.eoʿ^?fJP~ȿT/Lҏ?Hg,PտF:Կe])8#)?*cd\6`(Vڿ"mTLy?YIG?67?j?)&6{?X?H*A?i7="Sk,=?}8Z?\?хKؿw?fxV`ӿ&Lӿ4?~?-?w?E l?`{)?|BD?h7Vr?N)?Znѹ@TK4?hFʿS?8ϳ!?s]gDnD1O?5xk[?N,w??qa#c) ?)Y&8?Q̘п kFo?rÈ?+N?~7<82?kK׿6?Ți?-OοS$*ֿ [c?T~i~bvp#?ΊZC?7ӎ#? YL? 9K@*9>}ٿIĽ1@-?m]i2V' ik;?!\?u?Ω w Û࿯*@9#J?zݿiOPtB#@Bg-b?Y_Ӱ|?2iw/WG}rQx0?9ԕ?ƣ6~Gm?`2+B?ץE?T|i!?X!Ci"u?0*D?KH?$- ?7lN?H?l' @|,˧8nh?K w'?}]>p ΁:F8-ʸ?Խ?Of?x'v?Z> ԿV,@2z!˦ѓ?%? L(@fmpɺ꿠V@@@鿄3Uo '?CTi?( |K-fMȕۿR=8~:j%IbWX1@i%ʂx俣meʿGm(@P8?0x e`uڿbUH?2J\ ?8#4k ?/:ܭ @FO@#2?@ZUn?|?4T?;EԿXH]0C@)]Rs JiۿHW?ۄ⿼F ?"!ӔGz_=*ڣ~9\?$.?\̂P9ſ^w!49\?pQ5?/'"'MSxI@sZi?@THw[?|L`]`?VOH?>0?7I?g^4@v @ꄛܢ?ӕ-?(\Lc߄H@޿R?ZٿCs!@>L%@ x=kahiT?s@}?{볿8\V @Q^L|ؿ[NB?M?RTȊo ?j z ?@}ȿQscw1Z!쿤:p:ԿSR@{XMm%x7?|}JVu?-[E,hl翛}2?/`ޑ ?2?ҿx.~?ISh?8w2?YLh&1?]Dԛ?1Vz?>g(O?[=翨%~֞WB?zx?G,Q?p;@2?0o?j (ʢNe6Y?f0?;?E}<͜bҿ#[] `t뿰҈TPuǎA߿Ga??k=ꭚ?&qo?1p^7MJ?R*(?]pD7c?MO?=8I07ֿer?վD?WZ\ƿ}It;?@O!v?v]Tǿ2 i? ӥ:?jP:'? Uݿy;Z黿hZ;,f$ÿ<Ǒ ? ?M洿R?`Qz]pӿn|0}?7T^?M}Q\g1c? N?w0K4[Ҝ?ؼJO?dRܦ M%9jӼC% ?DCB?A Ow?4]?Bf~.j?S3]??!ʿ8'y?i5?Cxjnk}L7RЛϕ@=@n%B5`d?2'?K]c8D}O? = *VHp؏S I @y˙5e?sgZ.?֨YGڿb,F?DD?5ˊ ]Կ:~V?J9m#Կ⷟ѿQ?fr?0T>m?M@?_Q?OzVH?/at3⿦B|ٿ9k'@;ar ;H"@bo"d:?ېG?+0?$k I'QOP?S]@ ?fv?/FKC OP?Կ QV?8m}+ G࿉6m?$k[s8:*ÿ#$ƿ?-7`?"#ӿPq=?$]?^ (?ˀY?쑦ԿtI?V(x?*/^?cu?UGVEҿYݿe紿';?G绿_ݬVZ?omy&_y߿rjt"w?[?C8?98i7?Kѻk9ǿB}"̿Ҙ?:p?`bO8/u Zw(?%׿Jzɿ1?9bF这l^PTuIx?R0_쿣wԘ?^8?7we?B@?ftu@\X9Y mx?gKk? N STԼ꿂fMsʿ" ?8%J1?4uҿh1`¿&? "ؿeZǿW |/@Qn~迊DV?s࿎n?rS"q @D m?a?ͻi?`).y`^?P> ?&t`?&|Vp?hRCumX˿ɖ =`? 6~?>&.Կ#9ӿvX?,?kXӿnA˿'m?k;?2w8¿P=?^w?.?Z:>?VT뉿?N/ D?RzfXʿWh0ԿBH?򬦾$ʿ+b?=h$)gZRR?)}˿:@ I^+ b 8rמ8QSkX?ՇU;pϿt?܋? ٿ;7NS=nn=%Y?V`-X?KۿD5 ¿xW)d\_+ù?xX?b?_ڿ$x̳H?EoE|Ac0'vt?B2cJ?S?Ϲ?,V'ܿ%^.?8b"p?˗ga?P5>"űV?(b5c 6m X%ѿL7\l??[t뿠hSZ㿭(&@ ҿX'(Q㿢Htu?>!Q?ȿF4OܿAt?QiZ_!d(¥"a`L?X &ȴ?nU\ӿ#h!?)z&?.·IX(h˿j`ͣH?(C\ǿ7?. ?)֫濶/#?BݖT/ۿo?70:\63b?!S??JBuw`^ZlH??wῪv&?Uѿ٣JS?a\*e?@:O[ʿ@n̿߶*@JS@?eP<5?t~7ۚ[ۆ-߱I?5^?kkw[dXOX}? 1nu?%pV.~jj?-N?4iuXmq&?a~|? ==\=?o;eG!ɿ^IUJڿLӿ'7,?iYϿ`vf?cWۿSVۑ?2Ph/:ֿy&?`kDt8al@d<er;k갿bۿu?D?Vtni!?1x?8οU޿T3&I }!ܿcοUElȳ?yǔ?_?@m?*.3q?HLdқZ,?)8?(*ο꧴ڿ_٫?UC.b?!}ڀ?pRwf鿖dqDO|ؿIn#?$i鿉>b5ƿ(m]?3r?lIX̛`w㿽ᤋN?;T'ݚ#տRl?_!u$r?gSUԿy_ӿfÎ'S M?Q 2@'5,]JP9?;ZI6c憣?vI}?`6?SneGݎ? 3;?inWSfRR%?Ii|ܿ'fп g*?0L Zv?JjR?^ʅ?FG`ƿ wh?6ܿ@:vb ʿҐjD{?\C:>οS?'*F}y?/TyhɿԐN<%?.cn?R#?N[ұ7?Xg/kSEɿ^$&׋ej׿U˸9&?xP?zш ?}[2?DF? B$?i\?)p-Ѫ? ?$] ٿ\A?8ZA? '@}?)ؿe ZW㿂@?~*?m]ׅMرz?A9eD?‚<Ɓˋym6۴F.@8hA ?ۿZTd38_?;ԁbWۿhB?2SuRsN,*οRnJ?%ʿG-$?i ?sYrX?pG&?~Լ¿nR?W= >?j?.lF?IA!? EE(?Ah'p-?ώ^u9(?|n,Q¿=@OX 꿺?AE?\Di-C?ׂ?j Ulg?ܾ[?wR#+?l=?8I,a̿#?p?O"d?QR"+hD*kF?u K޿?1uήG?F/?~C?.\s>?:ϮS?S?hMQT?٩ q?@/ #x?˚"O̿?$~O{?? ~̿q|?/#=sHÿiS̿~:adXxʭMt?h#R\?m׊fXΧJ߃{Z'?ڡ7??wn^?&6?"@_FQx5B)QE2!*ڽ6-`?rYoS??Ku)#?׮6ݿva?*dp?ʾu-ɦQ,"B[Ϳ(3L?C5" 2ǿ\d?k\2?A)Dп =z +FGsE񿠘ONu|?C̠]X}?n3G??u¿*̿>)J6-/}Ԓ})~'# fѿ񿺐^p2'?bTC޳d̰PWv?"f51h׿ħf2?0쿬X ?(d㿰^g^?piܿޛOD(?lJX⿬EZ:?\.u?,j]6N?IH?$RӿEI3?kY?wU#M9\Wo?)AῥQl&翬F$Dp?RFC~H违LXXϿl{?mF,n?m4aO?28?T H?8'=Q?᝿3$s5~Bd?pO=?M¿:HQX这+ӈ? 't{| ),Cr|rrEѲ?pD!<iɗ?u?tN'Π. ܿyJʳǿ=7ї(㿆Q72?(aV?vЁ2'Wп]b1GSʿ1$F* ?+?|+4҃?]垓YP@|^WQ^?-p]r ƿM $] oOF5,5W^S*?RO 'U?ѵ?䣝1?Nt >@?e ˪A?e1ȿ٘俰Z b_?6C?,l?,p;<@-b?mZ OG|?.?$1ܿU ^9>?V(~B{_H6 ?PϺ?YtqY?o?}kڿCy6?eaj5忠b?&BÿR0 7J?ߡAڿx?N_19?Oƿ'˿w0I?$޿_J2?Wrt5K?WϋP=?Eb?UzY@hvl8Kؑ_ @2ֿ#Ȼ_a%)'#f?4.p ?3f+?>E_+E1@._⿚> yzc?U{Z?.mV잪2ڮv6>- )?=`?ʏ ۘ?h?8-g?wi?•?*U' EY?'?7v>FP(DcwRc;A?/M?"S%)?N\>?y/T3 x?p L?ScZ?4X jhT-=~RWܿO8tMK?Kc@=M3׿ɂ7?5m?:?̑NI?wv?\ ϿaV29] -ҞgC;?qQ?F g?ꊽA ?9ʭ?뿇B7t?ukz ?aˑ Xh?:><@~k'?0 ɔ?ѷݺ?C?M-?K|rr/Ij/?2m?bvZI?Bt?b3¿o* ?W\6迠s ?' |?T ?!^[oG\D8Q0Q?\|ڿE @iMƿ)ٟhK?*9?֤?UѬŚy?aH ?>۰?z>?.rZⷮ?1'ؿ@eڿu I濴bs?18vF6^ԓW?S]?5gV\/忩[ܿn-·? $@R{\ɿ;!W?Nvo?;c?#b<$X*@?Lhh .Կz @z5"ogS:7?Ұ?L0?W/ S]=Wf͊` ?jtl>@٪i`ӿ A3Y?QRοl@0 ? 4q<,ҿ+zM/0"LyhR\<0??׿:/!V(IUտQ)?E  ?rf@ Ί쿨+l}TTA`/ʿu=}U?|Ynwt@늗 ?09q?o@8?yl񿘸?Ol @g@Ύڑ?<5ZGQ?f&ۿ +?g6ν?=a@_ԿDv[?6k!fuOr_ʿ0BA5ܟ=@|/# 8E+lWV$ ??h?l?*:\Ldm w84?pQw"?8ڧbN( "%o7n?P @h?ʢa}P?O{ _??TNo??; ?S.9F2buG?e$t 6?iqKѿM3?s#:d>ȿxT?.eVm0?CT0?jMxq?_܁gM^1Y^M&?n+d7}ٿ*{g?|*@?xK"?=2Ͽ;oCDڿ7"⿎.v޿L3q#? X~NJ:jec?[)r?Td`վ?*+fX˴J JhYG2ֿ  yl3Eb??Δa-\f cӿ+,2 BK33?rٽz?,տ|c࿢ n?)aD@fS"?*d#x?EǮѿV $?3C?2qG#j?'?\MPFg-(|\,:?bD}?|'?ido?F3:ʿY{?8лпV?jV)OL1O?k1uT\o? %+H?t7¿Ɖ?,辷?]}J?XF?}{?1xBy7m&@l(6I@T uN,06yKN09ϿoA_?PJkXʿ/X a 2j4cWc @y1*?>S'&r}s[w?[6̸|e+iA⿎?@iaDؒ@Cj޷?̍ עwkj?:!U9?2CI|*?B ?]o6"&ٸ@ ?b%SI\o?Ј%?x@Ϲ@=M?g||?E@NՖ?{?#=&jci-Tjȥ )MB?Ba[?:1(ؿ6jFZC Km$@Rb?*s*5 ?Q/z?@J?> !R7S(Œ?<<?4}?(=?i_y_? cmEW?H< Zb?gٝ?R? ^ļ?*Ds nйC@|,׿\_ ?tsZ(kH?h=?]֗hS%_?C[@eEM(;?"&C?տC+0?SGXQ!k?l†R?~]?Y-D@ `]M@I [Vi[NV2[y?HY)Q?tiV?;;s=o$8?$!@^z6?;:տV! 1 X7տ+9q ׳` %@MFv\T`J @nX?>?R?Sl?KMdݶ?x# WBE`gmpT2MB忤348iG?0 ńޡ4?聇?ƒDO?z翅fNg?rBۿsZ/߿Cʟ~??VBNBW?1*z?#0@X\9Z?0|6ǙY?@Hg̍Pr]` ? 1afVxl\wҙ?c9[W?z@ܿ.H ?qdo?PKտ?6c?d_d]7J?FlP%m ⶗}鿗| z@zaVjuS?P+{-B: @$9?7?1@meil`C|?~Vu;g?D7kjAq@ ?魸yh]?)@nw@K^h‚?5|E%A?=F͈M{BWt&Ua7?ǒ{0 ی8|({r6N_=𿸠8(L?J:go6?5Nc\Z@@t>*$Rq?x Cؿ/Y)?ICIN\пG*?f ?j p?ZH?aBF?#꿦E9] ?9Sʿh]ɃNqx˛sj{@QRxnӅpv?7ʓ?ч% ӿJ?LHǿgcܿn{Tfk?VZ?]?@*ڳ3?]"ޱ(jSL"7*?~Ͽ&:?݄=f)黈1 ?D4-?ڋ[_F@s}Ŵ- "9P?$.V߿/W#&?#{x("?uX nfC?py#γMOL5k?WSk @֘JG?}֤t@T7Yu)?\쥷?[>?],鿐#[c| <>|ͣ,K8ۭ=#?!o?f2|y.?/<5"?եd@(i ?^6ܿ茅?&Vwп?b?9:7ԿfN?-U"M?*}6?H76r?.н?>Q.Uf0}?<+SNK\鿕=T^?Dj` hga?Ķf|VDv⺨i̩]?/C@i?_ KWW@p1e4⿉)'?LoL wٿwl ܿ+U8c]a(@(2/Xbh?IV(+Q?Wd{ؿp΅#Ld1 `3?pۢgb=P0Y?lȯ*?ҫB}?:kn D:?{fHpL+?v 2*ݿ3ݿ⮁ +BQ k@? ~].dn ??}!?o| L'KtNNz:.IԿV{2ϫݿ$ſCׁ?ǝ?Qs7vT"ߢ?JJY(Un?cV?WVz?2W7f?y?U?G ?ŀ17}?.q`Y]Ky?'Aݿ="gTCٽӿ|O'7?/Z dC?%%7Ux C)Y?X?q=ǚڿueԿ{ppF??Vd?UQC֔2$EI(]'?T?0j޿zJM@?woɿ,c?n&ޙ>?N ?%v?; :S?'~Yyܿ.W+pV ?܎dr5+?VS,O.ݰO{^iˎn4@*?)Ew34?SG^iy"??9^yea6A~ؿyԿ4B?ly޿>Qu;?dLz>ܿh<-?#ԫk.ʨ 0UhVn?9T?89?X1QUݿ<\!S+Gj?b: Կ6χ?4iv9FV?,Y?TLGNի?zR?N x ?L a}?(ڿ.&U3Gf ?y7L?g,9]ȿd ۆGؿAӿrZ࿿P[1:ER 6 ZUldjx? hn+?teiXѿA٦׹Kk #ݿz|d ?*̉2?N,?`S"';,%"?h?!uyUVnw?0ڿwZ? X?HB?t?(jc?  { ?gN & RW6] gE?A.i?ĵ 7h:]4GPB?bx ?nZ8G?'ԥs?Mj?J^ Eҿyէ~?vW\.ƈ?>{@d c\WeوcC?EIi?(qPֿ<qԿ>}H-@~ǛY@Dwd̹?!N32@ kq7eZT&|?g?NX"']?^Gڿnaf*?J#, g?i?T%@ FIAйݥ?k?B[?W?;B/&{Qy⿵eG5Yh07כOҷ?h*/?PP@(28 P@F^?.< _?"B%y?滉w?R Fn8y^Qci?/l;yԨ?N?|[+GU?)jȤugh?l6,L??^sǟ?@'=Pտ|aAw+V?Oմ?P`@:Wu?`%R?"vq?H)@Wį2dnԿ kn?i?X93nտm]aZ?ـso@x8?N|?R20 ҩ?Ot\?z1'&3 ĺ?? ?6)?<}' v?80a?c'=&BδqG? Td?E}F??pa@9 ࿦8׿Tۥ S+?E*s=?O5"Ez @4$ിLuϭÿ?*N̿x+??35?Ff\ˊ?.O@M}k7ol?.t0Q O͎}Q@MGr~?ܔp;$?/?Ȟ{@DClCQ˿[p @,:6͆GV@&B>C\ɹ?W@wLi(?3 B?Y|M?hJЕW=eQ k~,JTῲ׿̫zDﮠ޿a~׿fng?c$#&D׿& @ut@=&?"v~e?ƭB+?9޷{cǎ@aܵ`ֿ\w= ?XT࿬ {翪 bƿE؂?;8t?W M}ɲ@,d%n7w[ Fho6?:s Iƿ??"?,+d?6{0}޿j3U?$`d Q܄"~V?c]R?"f8Tп=fa~+w-<5 T?v??|]п?abɿ~#WE2ѿWb83$*V Ro𿶛EU)ѿf#?4tjp3NwY'?EW? jD2?b:"sc?[i?iJ*qLZcv?t$@q O? _oC6N@;ԵP+v4@r@Z0nz4sDpӿ ?"M7l߿T}z٥?r΂筵}E%?G޿O ?$=?r+ÿ ؟?# ?܇v?Qc>;>o?鿺 0㿹??lI?X$zI?Br0_?8 ?n?aUԾo=?/5h?n۩`4?s?Vwmg_#}ؿכ*$Vҿ T?=2R?L]S %Ty eY?ۿ R>5@Yř%?8M?G_ῊKV^q?76C?k3?< q)@!X^?z$S ?D[7?? Q2Z7@ESSly?˒&ٵ;ݿ#?kٿj:VT?upѿiAkk`?v H:ڸsG$?/& p#? t#d{q(bi?wV GM @]'~ѿ~F:\?R`dx@x6?~˾8b?&W?8M]v'a;XIfdۿ'ߜ}; Tu@P/?Am׿vHU3e42#h?uf|@T5?! ?tR ?tW@M y1.b?ȗ ?@PS@Zi @s 2?D3VcFHB![L"@'k^ @1WE{?0C5ziݤ&%㿴t ɿ[*P 8'@f?Yb]-54fAj}4\?a ^a$?D:{P?z:ѳ8?ռԿe'xET?.>xpY?X?N"ٿ*F [@_b?읠b? .%kB?<n.Ȫ`-?Ŀ K=?}@[mkC0,Q@ɭL*?G ˿?W@Gͬ fp5 *Q i_̅_@Q.9?3BY@(/dl0@z;˩?(۾@󲅧.?G i%?]^B +C"?N}@ڿwIsy?ZfXI/?üb]X23? 7AL?+?忚Exw HKg?_e0?f?Dp)?X58W?82aƿHk 񿽷moR~?%$^E?*'?dy@T)?MkH)?^q( Tp_??,?Bhu?s;?զ?k,[pM"&u%HɿDܿf0Mۿ4%JPB17s6C?6ѿCξ)/e˂? 9`G?,6hѿ"`Cտpk?CB濲Mx @S.r^ ×Z ׷?z殻Γ?8- {_oiSw迬ߢIz @t;>K8IG?:Vѿbm?k %Ĵ@6?ʖ\?SN+?@b?} z 񿣢h=' ?̚NUYNڿ3~?d|G_fFԿJ٘"?uQ)?~rH?1o8.oa9ѿZ? V>ݛ?Dg=Ͽqc4?X۪k?cg⿍.ۿD;yѿ'}S[?8?roܿZ.?؝?D{0#пٲxZb¿k7HȤ}п6g|8? !.?AuJP?v*?A..?ɅEl-.?T+?߄|?M\R?V{?ҺP!UN@zY@AaJ{ ÿ|yΈӿ`J\ 6Qm@YTa-9P@ܽ[տ's?7œa)?>|.?N!i+?cحOK`v^&D?hH<@v] @T)$Zʟ?ۭ Y"D̆@ T6TaP@t͡/?k?&|U2 @?3` @34#EM#PBC?;mwC[&I@}1?ޏj2ΐCh[{ڝF%@u#AA[(ųTt ?zs@O4 , GΦJ r x@fZ[ ߫^?/Z%]-!@~HX޿ g@}!?+J?"U׿0ՆLy?t-l@~zH, ?""5?>E?yZ濰r?D\?Oi+?o5b )ּ@p?VzJXxCi%" f)ӐT}@ Y@U!?ɿy4usr[lq2͵ct@̺‘l?R5ܿ-:?N~q?0?w:=@2NtOɹMhK[?Lca= `?!b3E?V @>!WES?Y `)?qT@ö?팑@~8;j}4ٿQpS/8>-?q?3: :C f 0ڿ\2v87.? w@8ÿ{>deaΈ仯bj@b2 @{TA&)?,޿Lۓ @x^v G>mqݎp?XG |ue翕kL?G^L5IM6@4 P?^ A@̻~[uo@pA@2O ?rGr±?d0 ?QFÿWܿ:%迖0O_mۀߚ?.3A@j~=c;?s{޿ggymr8?2?e`a\,kUfG鿓+r4?DfH?4 F߿K1?_6FL@~{BBD?N>~@Xڸ2m9a?FoRӿҍ+)%<?d{4?|Lοl[8S|w?@2LWrX?T?A|tݿ?kO?]0a?ةſvS:gLE?XE_;?0V~οZFU_Q?drL7? .(J俤(@F8+Ǔݿ'$:@&|n`޳f!@Ne?/ݿֵ_,u7ꄫ?#jo<?L c'ކ D@r(rDFdUj\k?w`@Fo7'k\a@*mf7?xn $?>UU?zt?Ig؀?fc@4[8@\,?G޿J -8̿)d?^&j?IW÷ǿ8`t@ [ ?"RKu?fc}￐܅? Y?3?9fv:2Կ G/Ʊſ jπ^߂ H{??8"H @ɮ(?AsRsaN@e Vſ*6vɲIa?S}[/J?R-mx?3HVx? JȿpH??O ?dRh<B?2 3L%?4F?\=?;P[?+G} } ƿz!7=?Y +޿q e?޳ynhǦ?4ѻ?t ܿGFտ az? 4&?8#-?e>nƿ9۔= ߿Riq?vx q?tp??F+?PD?X{?1=#C4.?Y 3yrҿé?܀nd㿓qҿwY̹?Ol?:ij=^%?LmvOD?'k?ewƹpiBa89޽5?4fd㻿GA՛:?I/hk ?Zo%JwɿK?:$R*?Z^ ??/D޿|7|T?z?&lܑ?cUY}$׿ĩ#p?H2??-c)_Ŕ?/f`%ҿDD?-*0 d??5MAJ_U*'%gxC?D5ګ ԃ?J)οj[?ИY?21DJkj?$ٕ ?=!п$f?(׿b^c,?_GM|Wxp*u! 0C?*?A&~ eI?N ?ܰҥ?(Cgڿ%$CMY?=QD?eg&ܿR*cu? }bv.pG⿩w^l`jo%;nɿir[?V?d|a34r1P?пF7g~Od?V迍t`Yѿ~4Rÿ+w`?fa'iA?I ?uf俧`?Y?Č@̿6B6W?B ?VPaLQhHҿa?Y.?tf 6/ֿn?I:&@f Ӯ?`MQ?kqD?(|?.bo @J$ؾ!:?öWῺ[ ?P4&حпa[7*<߿~4B@4 qgoh?S $Dl| 3̿Uҩ8GcAop`@XE( ?77 ?q1Yi?J,|XʿBc ?Bt֨H0! @T@l?:ʓ.eIШِR8?d?Vnn XC?}Fц@@<0(?U8g@3`Xn(4t]>T?e6?g]?u- @sT@hB|v)*?>zi d?E>cf ?p2V?(]u޿IMB?V S@@{e WM?a? ^?B(ÿJB՜?xkHp탿RO?FK?~*?2 >B?P%D?lC?@馎pIeוQG?0X?[qv'tB@xv?1 ?+đ?O?@VQ^?Kg=?sQ$r5?*8( 2BrQWns:;Vѿn\C <P;?B`U?GBnpΐO,\slSTI`K?A$ҿ2O{#*?N۫ZD&w?1%~ ÿYo?y?"c+H?(b̈́"?n=!?m㿲3_R'?. U`Ԣ ?jࡳ0ɚ5?w{F?ThTNj@EPw0]hxk꿈8`?Ɇ3(Ul%?݌ οcXm$N-?RA}d?f?(AsuSuQ"J^~v?Mz?VuPP1S?'m@ƌB`k? {5٠|S|T̿k?O Y`}aA?>.~?B&L[hf?V5k忀Bvտg"{?V\${?^(z;?bɯˬ#Z?jûyg`?*ᅪ?;Lgh ے 3#?^S*?V^a8b ?q8Կ 8%(?ꬿQ ?<ǿ[ Ռ@Ɔ_Ɩ˿OF}]?[-tC:Z3? lbq? ma@o3忈(Iʳ&nG }s߿WNqޛL|N6?aM?褜Mt?Hvj?=;;࿿1ԅ? 4@ܧ?b6r,ƿcl?9?dh?c>63j@o @{^@Ὼw/2N܂z&؜vGX ñ?"F6?]^8?kMº?>?0տM3?- ? :iJ@|~?\ݡ]?Z;DA޿{[ܷyq@&_:&h8g~܋?54?mτV ²O*cR#?viҿd F?vw:m ML޿$h5?ыɑ~? #~5c @X"1[?M o??}? %?‰^Kf?А@b?VAH?U9uER-ٿ&oZ?*gX?*8ezfI? ٿ"Bulky.? N?`iai*׿*?Fy㿋2OƇ'h!?هXX?IB@W_Tt?$'f?IDQ?[pwY[ )b?̕ԿMd@DcпmKuMśmH?|O?&!?}7[5~8n@3Ը?@+jYHti b? )p}ԿD|QտuhWX:0\3g jh#7zEBz?Q=ʿ!!_ÿOW/8/V?Ea?g ?Z?RY:?ۿJ]?B!Ŀ[񿯰a&]eckoe/d@( 3Cĩ?Lo߫DmC@w@L5%@Zh1ῼf@>~ w6%?, ÿc59- .u?Y:ھ @^kY?z>+ @B#6n? B^&?m\|ixO$ª࿹=?濶kT?h?u鿆a@ E?{?)1{?DXV SL.@]?*is?iC?n-s?t(@;=?G?m0??K@+P齵? |4ޭlǝံbIH?ދp?@mdx|ǿz? \m7ȿ1 I/?J?꿊@A)v dw]?xO%?u>? t(?$-Կo'SsP +k{տ8A%m @"(Ǚ8 zi?W?dߥ޿V+gscؿ? C: XaO?Z G??ɯM'ʿǐy?()kCcwq)? }d"N3.xp?j˫??a?xn?8Yx'N9?lvQw?@qi?`Ɲ^?JrȿU$-? 蹸?VP¿L} @C? f!y̌JX_nYջ?eO~(1 LX"@7?,O?piyh@&qCzT~2aM?f+?E_f@5WO8@y/AOLSWI8ۿ:(@#~@Ʌ?@T˝Љ44:\%* wk@UGIl_пBx??Vt9@leٿ]woa?{Fh?h!4??M|?\w/ hE.H-.m@?+z]} TX+6T{i x?>6x̀? sl/ѷ?)( @O%T@@H,@^ڟ@ ]f'?_E8d@g%vG4ΡsmO9>4t| XC?!lL@O?SRo^)R?dĝ \?^*!xn|Ӈ׿~ڿ/J#'7:/Z?cFd@=[7M}&+@M8Hl>PpS]EAFQ!?-?UucI _^ݿ Q7_?K&^؝D?qvb@h*L(뿈[L?^{ۍ? ^ {a6C C fJ@0]fu?g4@$]?pc?l? ͠R?]pe8?bvs? 8m%ka?hؿ~M@pttX?qQU?Ww !C~D.? ?Bk,s6?ݓx?Z4B(W,k ؿxdP?і?^:ԡƿ̉"?/C߿9z,w-Ut?<a?Ypr ,U&[U^s_*)c?F:@"˿؏G?d/ĿHQZAο G}?Bp`?pz?p00l3fHmE?ݦ/ ٖ+A@T)@}?W6I}kҿf%J8ӟ?,w"?x{ɽ?qiv?Yv?.~#BH?[%U㿰ˌ@xu^?@eV ޱH?IX5`]Wh]u N:^?Ӱ/ݎ!b {2Jof?3oW@?{@ʞ?^&@/@Cd 䁠?p'?Kd@x k.^ ?~,d?9]H?%H xqrZz`Fm/YE?E?Bq6ʬUщS1 ڟ@OFΙ?UsHaOD?\w &; ? 7wܥ+L't,_" 1E]=?@UwqGh?#w8_O @Xx'@F5O俲D=-@'?\?h@`uQQq?`tky? 9I@~)hd j@Iu5L JN@P@uo19ܿ2eY @bp@J?' oI`򿠽 ?lU@s$wv?$ٿc@7O?Ovl;\' ?^0 ="?akB)c- @T[+&?7T C8PY@N e?窎}>9KsDn/@# Z5ҩ,y?.1JǿCSp07X@zɩ?Wql_p@ "4?Z|=Q'Tߘ?9Pq3@upj^?Tbη?NpP?\eK_a@c,\L^bڿ>tw` {?09`6z2@4'VAS@go ? l=@u _@tBD@e%?qaCyn@?@nE @*}wqOuQ@1|e(2̣5nId=ÿ4IF0 ?\ KUU\?T CoX?:% t|*Uw@#WPu@n&?:KfI ?0,@S5jH?5pWA~?)ў`?d"O)UB#?(bzͶ ?gSP\u?eo ?p{5 R?f^@bY.4@'M ?Fd㿼'6$@21Sht5F5A˸۩?ÿ ?pE?v{@j7hNRCKXG?Pɦ/|ݿ\r?D &ᕺ Nf7?d(ԿB ? R Ĕ[ȿ];14#~0ifxQ{1?<zwHYpv࿉l&?s-?CoN 뿓ȶ+R?d&H?Ҏ[| s%?%b^xL?.LٱRc? b g]z?J3s?R?Ƨ=x޿gz@?dck⿒1L^׿ OX,?M1kJ#Y6}8U(7p?ʇ]?Kk? #?>%?!$?Q+)4?OҿY&%)?aVH?s?4t~aˬ?X)࿤CMݿA?i?1 C>Qȗk¼?@@c״?l~gJ'-?X9ܿFpxœ?^?};bv?Ε WZ? #-wԿ~U(!tѿ>#~ѿ*?"?g ??S|skPͿ !??F)ӿsje!?/8VDڤ?ֳm?w(sտY_{?z"Oʺ?ZTMpΎzrοQ^$8rkn?p`ӿju~?""޿2gQſq/%o?+S@? ?qjܾn?d<%(?ؤ?˶Vf% [9=-vg`}R?T:P NŎ??oyd@G!@*Tp@l#U?@ucE?Ox.TC>?~ ?x?jpAQI˗2N!5Tc?Ujx ^y?0Wd@cPпp~o>uaUS?)IIп*S?g??m @ҚM@̰U?h(h6?1~?wsi^O5n?=U?ިx ?a׿5!H{hqCeW뿥s!yu'IWrkqdhŐh@&R+@! @/|@J ?(?Փտ7"?㈄VP?5)5k}Zҿ+p=v&0Hs@.QE?kwE?wZh}㿊tZ꿁o,YM`@'h?L}U?_D{H?xn?|׾(?'(Jά,T"?w4ruP~t^'?a?fV뿙}J @HCՕ|JR@83?8N& @zaP˶ ;VwHcF/J(߿Z?lI?-$wD?]M[Q|W @H%wҿ9|ǿ:́stf?i%?-Al* B[ _/&)R&?h/@K.?W]ҭ$c??-[}`xd0~G @GT?tH=[߫.?c>OlfyoA~Ld#@u7@b?m,?'?B͸[?b.:l?%l.?UPj!&Ύ=翡<D\h?7 ,x○\?EYn@O5К޿UhҿW;@׎-޿ETG? º ?j֢ͭrا翳/ŸB?Lݛ8" p_@!sf,-M!*?>xF ٠@=l8@q?#GZ?w1޺ ?=T:~@|&7xg)\l@c?F???̭?]\깿hϧ??]/j\XyL?9?Fc?2gd@(|6@?&MdRX@BտH'Q?}@G0r@@Ce?1?oo~b i4uſS ?ewO;?8#n?mh@,?y #[?bL?`d?<ƨio6շ @ɪG+dֿ엳04?wt?ܭP&?L-?Ղ࿟,ql@ ?TSp׿!!QW6?|e 6R4`j {y׿ nR ?@S6(tC% ʿ񆙵@[S(?irR?eVm\Y?SZ^*?HE j ?JTX?P`?eb?j#?弰࿼Sm?9"g?f?O㲿9d)'X?&lcV??O?E=:տ5>1כ.@SR"@}'@ @c 8c8uڴW?>V@U3)0|vM]nM5j^Iq5)7_@e43F?IJ@eɻyBʠ7C??6:<!@l nt @K?R Z ? j?6I?Ap{hrw@ .zn(IUL?2O?lZhgX#ؿ2'| ?@YN?@lz9~?ůWk?+@]?Vi6Hh ?M߹?pf]?v?,?RG?g"? oHJr*x)Ak?K\u@7h` 'c'@o!F??ׅ @37WDM#4q?g @ױYk*k@HwNQv?j_D?\ ?<Fr~?@C |r@h9?16D'Hyd?d3!@5 \@QUI }Jp?op\N@Un@lwH÷?WL&zLmK뿫c 7=OAr?/3BW\uB?*G?4?*Kz>??VC?r??w5Ok@?@SgMJ? N?e17 @v%@ ?}N v-?6.@%ȵ f? c[?t?VR/?&$*x~ @Ls:? Q??ݿ6%! .S*S?luC;w?s5C al?פTCAB?B+: ?)ͺ)\. 6?eGXf4:ÿ[ѿ n)Mҿ^~? 'ĉlƱ?,0Ŀep7}$@~̿.%gk2O׋Ri;?f-?L뿤ȹ?]+1??Όt#|?YNEhYO me?pO9?4;俕,[m?^R뿶Yf?ڷo? ,H@y\@򤇸?s0 6?Z?ZPϿRhvps;?[q@uPOYNF@yLֿtix?w{U?vaQ?\?m?>" ?G!ϿΡ?/? C-O_rĨ?q_uX?tې?$WK 6Wt6?*̉ڿڊfW|W_i9*}?t RD?﬑?g#o=_?J;*ܿ7mL2K5b{ܓn#3ֲH-GL?̿?f?'Lӿ(1$Q V$N? uo}z˿1(Ͽ)|iٿj,Z׿W˭^?<3SҿD#ܿUėEeFΤ?bZ뿞*aο 1?_5ۗ:?-Wx?mȿED˿^"?@P]?S01?jrP??ֺ@h6+!?bR4t@yg?$]:^?qUs_VϪ㫊 -ӿЎvyB0F_?9;9($_;a?z6x"3iC "+IBh@r^d` @Fr HE=K[?;ll9>@Kg:@b Y?aZC|?-!%'W<fAPS?JFbI?%^?oXf?L j}@"&@}}jE?]󿨕Ao@~[տY-G@N":іn? S?4꼑Qj'*@}#;mm @ѐJpPqKP@'[?^/O0-Y?C뿂1?%`}eq@4|e`2?B?:NCL@+!7]$1ſ-N?bh {HA&,?!0 *!eg@mL&Fs116w̿X$Ŀz' WͷPw?2t`[У8f(ҿ,??*?F1u?d?^@px;?.Tx?mir)޿<\㿦O_>  /e?ѳ@|,ǿh D?I!?zj3L3>L:K? Jb&<<迦_I F:@i\btܻ5_Len? *$? 5@ >ʁ{?H?ؿE @m? tu4 tN?¼7?WR.|ww?ʈ\BӞr?׿/ҟ[?X+ ? s a"GYIS0jώ?i:^ M?E+fFs?!$տ5Y? 90ƿL@]+K?c9Cȿ0b4ܐ,x*.)?n؛]޿GG.?ע@ĵ5޿T?z8?!H ?5.XbG/𿐵?cwíAFQ E?<63!Կ˻Va@;ŝq+ӿB࿞lbaf@]f*dH?>9$?6''0 @/+j^? Vv x{YvyH)5.S?G>@r[i|t@*D#@輁h0߿V?s?4?:\ݐu1 @?'5X @E7 @v@B(@[T8/?R8Y@R#ՐS7-1u xؙ@ps8?d&Y?A|$:?ZB?`?K?c~ WP' @9ο~?.j wVs?p@갧l @%{υ "5'?)Gф $rH{1@oFh?&, 鿳u Ya7 6|ȵ&9?|g2rn[YE @p8+[!@DNπ./0U?a߿A?Xb'@CZA`?lŧ3z翚`(å pCq?Dwf@ԵzVDl]ig&f3m [@U\iH?fݏ@(5IF@62@yֿH-?Kh`?FW@35Йڿ$9y8p@M)7Y@it[^T?_V&?)#zMB4Wl@{<@>?$Ꮒ\ @Jn+ #p鿮ڑVD꿡AQ?W|="iֿ o@otoGC. @85Ŀ!EQaAѿ~ .A ?Mu[J?a'eInW?㶗#hn@> \!޶?yUT@J55`)-EW,@zT?Rx[T*,Nر~Q=T?}jV @k(1?6K?Zo~]nU?SR]) @r:\B @((?[8 Z$$Y`Mp_@hŻ@8j d@v@Hgj~W 3";|{?kJx?W$G]+@zkn@¨Nր9D?{6??Ǖ?t?HHdY%??/pCڕ?, ǿ`-?6tIU?+u5?~XF?C!"?U"Z忊 ?Qbͪ@5ÁG?zQĿ=+qLw?!r2L?=u]a\gQ0?³iX@`V=g^??0Ys6 hGS?B-?DDID׿P']?IP3M?_{MhJ?R܀X?muA*뿠SW?tE8w?Վ,ս.?@*`?oApЄlXÿXQ;/D˿ݖe[$3kۿ |ȿVz?H3"LN7ʿ.2?0B;?GCBye$yorϬr$(!1)w /㿘և?+ _?:F?k?P?PwB?@GZ͙ͯ@^pv]į??\b(ˍ?q _(?^Jjj忺cd*SY?9VW-vV6|g?:MqXdZƿ)ݿPҿ7?0\ڶ#uģ0F?󿈁?/? Rha忎B?h Q X[!%Q$#2?hh?9@j($뿬IY?kRL3=+6 @)to?~Wzg@}Fzۿ,!@@MW=?$c? 1M+ *G??ņbHpӪ0@!7?'&Q+KSk?x ؿH6IE@&,`]͸g?˿xC syR+Ph@"SUG>x5j>- 4Ih|6(49,<$+3?‰/@8 gi@ZE?'t!U=Gs#[l#`ѿΛ?PIE?߈r ?$T |qAMyr @"&ޅ?࿢1?L`Aʓ@A?qEz!F?#.)2?"G迷GN&H齛ۿ܃y?$6zGݿm?4hDS2r@ .G  \[tj<҉Sse'ؿ`˸?A57S*? anqhտ!𿽬< WTJ%9U H? B@׻?j=?2^ ? <6Q2Kwۥ? +?l a?u#?eY?y!՝Sƛ>%ܿϬf)7.)鿪j]Bhr2҈?¢Jbfd߿?o~(gۿ巡wt53 @98L)ۿ=?`lԳDdoݿZ]8?c?Fk뿽θ?BDBU^?@~īq]@}꿌m \9ͅ?b u?j啰n`!@"<ǷI?T? Oۿ Fпs _b?E?[=oRk?|M?ݻ @&&ӎ5uGhk;?K?Fpv?W "?T??Bw bdD,ULs@K?`Ra⿱(jSHv~?cE ?I{ @'<t~C@ "kCͺ``#Yw6j'?|EĨFԿ2 h?Cw?|Ty- @M @/@?B^)?-}?؇xn]y@.tnhv?fzɉѿgp2>?կ۱ľ?C`{C @((d q[V}3Co :Hl?oY¿"f?0G6p@?sK7Z*?og@',?hpm?]sN`ֹgl?K ]׊z??u9˿XQ؜h?bwA;d񍁛?qPTOpos?ޢT R=?34LES ~%'?r2n[-^鱗e,?d2o¹?r~? k*?2X@z3?M᾽忊<Qj?xs)Z?i/d"@ F9?E`@N/0O?T*y˔aſķj @Բ've_Q@~͐,FW8[@*KCU4߳@b@]s@9u뿯\q?_N߿ؘ1#?i} L[`Ƶ'e:n"?9C>k?TA h۴,1?p7`A* Ef?%9;7e&@@lШ7?RJڿ?h?Pp-b?P&fh2BՎ%5` u @}U4?pݴc'Aڍ=?pпNy&R<+?܈?6g;yDgɏ?`zᅵة+GI ! ?!rsDK俼U ֿ@+,@h7%%@@#{\ sCTѡWB?= KZ?F>zvzM?e)]57ſ,bV?8@-yP4R@ZS^忇UP?b2=  .P?gc @b~:M?~#?T̶@tM!wٿ 3@`1?9i7ka?pxe? ĿnxD-¿0`_|e_ k@Za?֧'rڨ/T)?yE]SgT '?2 @+0 |p?Ta|3?7ZuX tõ $N #GU ??-lv?}0̯,a@~vM Ogڔ`2T+?X—y8&2?@qb|k]D2?>K|[?Kcg@wIS@ڶI?&~}3?r9+ުpZ/В!@,%iW?,ՐU@ِύ ΋?bd:?N}?!Z;;v?;3 ]K)t(?R= OS? j ?oih&6~:?{ v?fٷ?ra!RG/?C9!b[Ic$l?11?7- ?@ ,?Ezaf?>XH?ry?K$#cO-ؿ9*Cf?Q}翬8?;c" <"Ƿ *ӿṣ?N|֑5?ylT;j?@(lȜ2@qh"h)*t=@h%@Ec_I@HW:?E,?.e0g/'?_s`\(R}?O:^e  ۿ$H͒[@լyT48י`;[`J?9U1`CYw-&y=+E>ip?|8?>@d @B #ؿ7w?č o8oJS̏ h־?ns6?n XF}?whAW ?s|P? #O'x"?&vl #p:? :˓u?ſȪ2߿sP "%TQ63‚@Z1?प#?4fοW=)0s?)QN#F%E7@?TZ63?*u?]᜹CAu̩"߳'P:@0EP@>?*rb o4Q3ٿ]%*Q?6?Q^?5ZGr ޅ S@Sm@?ҿSr6ud?X8?69B?,|EU\[տ楖U?bM ?(`> ԿCJ?W?vҳ! ۣf这s?`I^ȿ8)?Eà#<=?-zC m? qA4B?h/2?%`(ʥ8? !J9(q?^fXп``ȑ@݈1?_-pN@EX?NcѬ R׌4?߿4 ڿ}8 @@'*ܛ!rdv~@;~e?@?@@Q,?svҦr61:?/?Lg0@۩0p@ P?^'VJ$3Wީ.Uc?S,ԇJS?$A9o= ǿ (W?{K1@-[F[Myaw? ڿH<Ħ%忀o?೰(R@NQYw j߄]?#Ɵl?=?G 4C?XS;z?odu?`@ 4䣜??ۙI? KY#(0'@H"V @_R?fRFIVп ê[G+t-Kf?|C!M:Fj @h[ @謎?`F:?+Bw9p@rm7?1@Q?l[ @@?NW]/cD?9DпT0Ŀ)h۾?ո@t/[ʈw$K @Ä) @$.e;09ӭ ?)\! 𹭿%{n:?ka@ G&\MJ YKoj?as迭I ?N,?οSlL$?#4#@gZ Ц3yKR!v\@T 51 @ ڸRfu󖿕 Hܑ5 ,?8$gGg~?Og?3v@,J "}P@T,Be?m2?S6i4ś?sdY a!1u?b?+D?TP*H?1)?Cs?NLbk@O7%[˿Ba {@pA"_?:@[ &{*翶w@ =x?H=gC1?I>N[R@b#"TZ#@L-"g f?0Ь>v l[@DG?.dI C])?ށ:?bZ_eihp-)U$`Uk"c@%Ҧ 0J@{_?l|s?a?翛`]@hX;-=cx 7~6a?`pS,o@Z3Z?x@3@?s-‹ϔp?"3?"4Yu@ QmҿnA!A?J v?ˍ@|~>w @' PM?sT@J[@|̮8@;K@R8H[1@WU͖(@|Ov4{kBFd @/?L`@D~ Z@?)3@?h@T<{?ɐ|}em ᣟ6:`!c.L?;ҿbRjA!u%@?KyzҀ`?= [2"rOR?*"LO<;~ @m}p7@t(SԟZ[@ҔҟjE@:u3@e᳉{a?-Gde K24 @?=Wm܅@<—A^? ̼. 6@?fo.vF@Օ@at(@ zAtȈ?35U%@$k#U݊G@@#Uݣ_@2j":}C??gLOPK/[Ω?Yo<DC0yL\' qK6[4#|&r`0h?wJ|A:WT0v?zT|on @ D{uL@>H:qӶz/+A?lR*?kY*c:@!@|N@t[*AtzObTd{tһ@?vL+Iu*@{Cq@bU>?A(>?ѣ*M@TJՐ@@n}d^!?k茜#@,!b?Ճrj̶  ?~[S@}m Gk=?ݽX@,2Bp{~F?'&b@(RGtՐ.޿۔࿇3@>&`Umh?3!G:UNNQ?rN=*f,1`c:T>j ɣrٿ՜DΉkXDʚΓ@o \KLPBޠ#ݵ@W'C޿$Tg#@Q<a @'H?Mm(bOѿ4)/?SۈU^*"}`M)/@"U@v@O h?$pb <kt[C?ߚ9Fef^@^^$ zD?&sk&JwΧIJk@꯶bM뿑-\ǩop^y@Su-ۿ醬?-?BA>@>W}Qd?w'?m(L?3@K引?@fig??i^i@'PIO`2? F*MnL \࿟60HbM(SaI?"?OvAfV?>r=i;7}@B  on/zɧOMH\%l?R!?qC@M*Z@KqrR>TczU2@ V?@AZiÿҮd@?4>oVV9lϽpc@?l?bQ?I?΍2^}<S[?ܖ]e ?βn\3?P'U?u~NkY; jS⿠{d?Ǘ@ҡ8ʺ:Y?Z_\撣-(x?X(>O?eiX r?/bs?R%A#vp ө?7<-濃C4hY;i.ҿ"/$g+d0fM? آ@\!i(_?X_Yʦ6}?T?0C<dv@nq?7TXYտsr?-}?{lr@YG@5V'|d@ſ̓KӜ?ԔB?lxo:lx?&d=sݿ_j?tbRd.? Fلti0$?(olR˅)9%F@rK)3eAiĿn/,?w 5?&%? ?EVGO4w$XRҿF.{D&0n濇3Z}ҿV .|.ku?[?`?!P 7|aU翇WAi@q@3?x;Z?ȣ,S*ٿ=0o?Sۿ7Vۿs<(:s@w濇S[ @CC @V[ifF?ʣ^W@V̱9ua0}!dakN?uJ@{pz?p91 ډ2(?En;h?DZ/QnhpW@#?̣9@F#EM:?B?zc<1!n@ۈ0qrC2Or<[L?e }?7Bu?_!@g\?w%?h]&4'KmԿ|WX>5t @ A?7T= @:,o?>Sg/,(f% %??E- +[s=(ҿ__@Wn?E0d?TZ?ZY0yع?Z0޻mB/?Nû~ @ۏ?J&ǿx F@ȟ]XbѪ1ѿ4z?t?zU07y$+5jjȒ[y .?Ex%ڿ%m @fZh>4ƿ`9L.< (ni?k@Tn A>俨x?'?ӼpJ~j7?LW?@ |?Zct&=?A0JmG濙Bi@.L?Dӎ k'`^,@*俩R?&juP @]ZԔ>??W ;l=~?pz$οɣP޹?t?mnT[?F3Z6i@=F?nZ>?pgZԶ?'i@?qJ-ڱѿ}BΩiԿxͿJ{]x/Zá?1g:*?@oݚQwD@&M?Q?*}?zn7}?z*?4+@(k?J?rVW:<3-e?9v?~Irp?9{\@v c?A9ѿ)w/8[@ձ?n+m_SV{#A Fֿ+@o,j ӁJ?M䅨@'? ޭJ?I?\0a;¿Z?+]n cA+@O p SAQqۿV?+u?)d?# ?7>]N(ȭ?@/ֈ\H?%eBt:'?Jγ4?J?Bp]?Vv-?~a etnI:bfpܿ*_?(ճ_?Lcml h-BϜ_? ޿`! ^?c}&P?ta?<#Z?:<@6r;t?,/(ʿLeF쭿uٿOyUiC/?8C}ٿl?OmaHM?KY/?E.d&i?4h@@b@H{9{p%y-?>VxL~P`?9r@rڿ^>1,忙֣"Ê:@d@MC$ @Y%z7M9@%w#@Xs @2yV@˕?^^?O]r @i"!\=?47 Ob @HMtl@w{>5@arue?YA@հ}y?̦BếnG>o@tBbSQT {@~x~_?=ȼ @RCUʿ`p;Zlܿ?Lq(?)|IxU@lWUQ?Nuc7zaiVf?ǰe?"ٷFrN=#D?@?J[?_e˧LD?$ ?x^??n8@H@1@N@V5.b?d )Zȗ-6!65Կ7O7@Pw axk ֿD?y& @?.5E?囊?C(@l@ ?R- Eh9?5qg 6܂Di? !cxH@N+(@e @%>39в>N@cmu ? @Z #[Z_?+?I÷? @nس?4 nY?g?!A& ʡ 0?{rv(Zu5⿤?A?ȃA@BQ~ @&(?>=?4"ۿ?Gvi%˲}lq!@?E5@Cx$?V6ǔ}nq<(?ak5h R=S@§猓ѿ&;|@ʭ1*?{5?|!2ؿ=NNRƨ 46@Ri @Q%8@pN62@0, @ *'Chm?>ΰh?AXÿS |Z3@@z{.?s@>nj}~}/qU8& m!E K9 ˨?tGtH@{?px'?/JqF@;O\[M!_ o !y?D= s$LY @Ƣѿh®-I q54@Q$̳0@Ga0pQ @ijj?rH?^!@mnxYb\RJ‚ч!?^wFn#uOF(HBiz?{Կ ]?ⵦR` @G?Eg1⿂>~, l8!#@磩:b23eGUr=@R4WEQ{*m~ӹ5w@6 Hz?400?dVN?fiǓ]&dF_@wQ@- ?)G%27Ӆz?,RS 1"D%;Y/H]q.5_?6 " @`\8b{A?7Cj<@ d?RwϞcV @Hx\vepb@~W=yS4da `T5qavC'?%WQ.E/U4V^PؼuZ Bs iǔLD?w1'@dBokݿ~_zw70?Q>?GܿZ.`!@lay#hz0? &x݊+ @I @UC Ȳ!F?2'BN?Q3F_?A>d?W݋N[]%\y[@;Kv2꿶h&p& #Rl^#?9B?Y#Nt?$|rBoה?TS ڻէpL9?Tę&oԹ`IknB I˿`G+]Xm?Nph/fq S? =)u+ 1, @;U?zop⿯3~՟NbZ}?i@{?Sq>Mys s(G?D˃rx?qF8 V?ECGq>?Vi?vk?s?w~tӻ@h4 ?`.=Nck$pd5=鿛4U-?ǡg¿s]j? 1 j:{l?fJ?yww<qLzi A&3hH6R?A`h?7IGX5emjQv@KfTܿh0[ˍg1T Nk?TY?(n5#el 8( ګQޜο064-ȴɸ?Y+(@466ɻ?{W@uШbdc?/G%Jy2EDE?4d ޺h@<%{?uk?мM@3C<kܱ?J<݂S~'2I?tx̿(C?:BM?ܲL? 9Q ?*4@4@sGq ۽J?.ȓ r[@Iڊu} (_p̘yx@d!Ϩ q eIaBSanK"LJ58an?}?(K#wQ@BF?i @Oߜ@1U {?f@"R_Qm~Ze5O#?0q@_?,`?E#`R(-Eտ93?ͳ0t @}+@>Cjm|j?('n?Sٿy液6E7r?-(>ȶ?YΈr>n%e@s;l ?93lc?ZV@?arW&?L+tҜп*羞p俇ۖ :hgz8:ݿ=-˽ IyܸA6+wj@|?u @4Jy>@N?.ƚIM ?M?,##s?F\?J˱'cmVz-f 7ix=Ϳ?=SX}@Z"'?vEEbl {'WdƤz ܎(>v_?' *r= @YGlm-t8T?FO>h QiA?W/ڿ !kYCZ?[6'?^Y?;) 3*K @xJ M% @vZi9?xn>I\4?EfOWh*@ap׼6@~BIsܿ`?wD/?H fx@d+ @@:E?T?~R?bH~d@F@ X'&| v>@z$QbwҿƔSoRWG?cCp¬ݓ?gRWӿM<R,GhcfeSgd?y&y& @蠥× @ǘ @ wC@f2Ng ҍX?H n @YXV-??ۿi! 1񗡻 ~?:C)˿Tց <?P?~ٿ^[E?n5}?'_?jk4;?_je?rG?6$`?%ico?%ۿMǺ @i ??(%@ثtUT?-y?(TjbF_@rjrw?PHB?#J^o?XT%ږv? mܿ]?N9 @;GCտzٿ.?y$@D.j%@hM ڿ()ۿ.N> @+/v?>p⻿`J@Z$?4Q?9e Ċ>?Hpʿ 0w}.@: y?kvu&ys?PSEII?m?$A~B5ۑ ixj:?@ |#؃=y}#AMȿ+?S@e{  o+e1@tXQ&@1 Z&iU.LĚ @g.@yEgJ@zv7@s'Ũ$@B/?dlѺGv!Uxz9~vҿݭ 7M @Y}!E>pP!@x@#k~ @%C4NzrB\:W?}@7t)δ(*ftC2&vh ,ҿ^mh 7'"#nl2@A8zd@ȥЕp h H@uQ@?L@9l?^3B5-c~h@[(wDؿ:Ԍ q 2u4?oj<:S.ؿA?I]#Q@O@!EXߝd\45 rISIjﭚ@V@LC @{zJJK@vgz?S+ @ I(!d @s)տ`Kw&XM 1dS@ft ?1!?})~=?n@Ƶc-?U즏[rX?sd!?m״ Uı?$q@ 5?Q Vgtڿ+b0IiqLRῼyYj( Pj?FJC]@*^Fg8o3@e?vf?HKeV$A⿣fwke?9Sw\X迚[ e,߿x>^ZͿc;@x ʺ?x/@,g@>q^o￟( RÓ^2m~]r&@hؿuF a ɿ9f✓޸_>V$s̒0OZ@re_x@7 n.f? `A#f@gk @(k,uG( MeH)@_JA3Q\ȚR@X_n\>Z@@-?+q\E?\uK'*<@7}NZ?oƹ?K`?s}/i?ۏ5cN$@g?: A@2$@.@dF.cJ̿(<*?'87;?<|;?T󾾻@p,_SqTa0@91ۣ@aݲ3@ %˿xÀK3@<`[/ $@5[@5r@~ZBV@`?pi{"] @խ ŏmaJg񿢃`F'UV,@Dj@؁@$2 @4Kŵ@DR6 U1?; i@2~bHg ?q@ Ÿ/J:6@~'"@ᛓ?+#@B@KSnҊ3KQQ{CEe?gՆ@Ό4Dx gtD#2נl_9?@92 6 g@?KXPǼG?ܲRsFv k?"`Km෿]f@8[MG@Wl3 ؘ~a"fYdg*$-B]@Yܳ0J%.-<&lcF  u?t9j@sW?}դE?տ|:w?ю=PFܿ [C+$@wTP?A #ɓ1"@?1@0@JoM?V~h VB1?r^II忥P @wƼp,,#dd`wCHz*?!zy{Rd6R@aȃDر) X={ABϼKQ^=N(鿴g`7̸#`uO.)b2i@==ãl@c*9z?mg+o-@鵏 CxRB ()]KDg?!6tp(Ց@,W2^]@GSԽ>?@yt ?:^B?h@cP@"c?EH?TEacI4)@D * @ҿbփ?cm&@)qv sG-bOނ/¬0\@ <ؿߓ |Ͽ;ɷ?e㵪@%¢ZM.+;xI?ܘ/jdž?`l.=k$<!7yVlC?VC^@GluP@PQ}wzb'kEc@3(9$~Q'f?VS2m@Fᗋ?iycP,?O$K@?M@  @|}@G @_"@,N@/@^F+?z @Lյ?js:@V$?\?7.W#Dlw?dm?= V0#e&̹|G"?\m<;u!@K dFYy` @k5d@f( AA ?q?We!@p?&As,eQ}?J=u 8O@>B?m|P{.,l&֏- @CPB0&Z埸m@)~ @VQ0#I Zy//p?Q?/H@ 7@ߕ*?R=0E?ȮdNť "@O/@|@ɟG@gGJN ~" ٓ?@M:? a?+@X;2!Yќ6q'p*i5k?,Z-Ŀ(? `K-o̦ zz@chT@u> @26X']̬:Y>6B0C%?%M⿜| ] @uT¿$z/?/ןd?@Q~ *5Ὲ]j.@c?Xfq<=տ:u9L?]_b.@ M? N#X@g+Qd$A>X&?zAj?6`?Ȫ]:N@Z5?D cOĶa@vJ7 ([~! ?6ׄ׿+C?"?DAd@} ?|;45[̑i(@-њF@kw?W ?kX¿l5?$IM?_0=?cD?@".@jU@5?icgG?Rtت5]¥X@-hF@]3?4_ <_}?$- ֶE8? @֩Inr@>B1?&,X]Q :WJ<:O0d0-toc.͍.ِ@Y}Nf3︅t?p.3ڝ?_}aD 7 H@dg& ?N&|Ϩ?҅>|#Z+t|N&E (l%rFӬ?#A6@}ilN?Go\3?lx#y5b,t@w.0܋:|?*D P#?*M'o? ́x;) r6 @㮚?&zw @Pض^t? vƹ?45Sn@LLRS?[1m[-?[05vOƺ ?~B(8y R }?дfz@Hgzh@ŵNłM?--޿hPVpk^?jl#ڱ ?`Xc[Z,@j?~Yl?*Ɖlr Ous+]Ŀ3Ym @kn@b>?O<@:O过@=OI?C?Xh?ӿ+*|V@jbPU/߿vB??K7n`0!lyLiǿK GJ?{QTo+@7\z?De@%XȺAsoP@m/ @ɖ3O@@Vk@~l@{Yye!@3O;pL!@Y|@4Ĉ@P8"@fga)@្DC(I^40aQK@ё#0LW]zr!@5S@gE˪1?t,V? .@qFh@(;C?Y[I!@a?H"4@$Tjl@29)vd'Pe=G!HBtѿ.v< @J=@z IjT˂0 bb*&΂@5Mz'wGA"ڿ‚ol ?'B3@FM5|?3ⱂg۲@Jc ?880??w`ioqnPbI?c`??{!@/,*W$A7â@o4@V0h$ԋ?X%!M@ʄ(OG?85lSn?8o|@v{ gj?;.@1"4a@F%j@_~|_N?FR,yYC@1wb$@qs. @p\?+xP?j"&b0a>x^2ӿ!y˺gKp<'K1@>@i8@O0?v !#n꿁%@tIKC@ $?)xq.@{~ e&쟌@_ӾA!@tc}!@F<%@PX@*A?sJ?iD(Ov?|?H$*?DR5|ys#Qc̀6ΐkY @-z?\0"@QU@75@%E@&C딨 ϡj~e * ^zkay@Ei'@k6%@|/~_VkQ%V~@]ʿx@?;E`@ƯǏ@|%@!#p09%@'H?VC4@\1h @TJqbƿc?(@O8@u~o @xLd@C^@D@`lc:?*} 4D !j @`o𔧏@U/ ?g1` >U@p<<=׿tBg?"+2P $=@瘚ٿF?G8К@vsE#@L@@oji9ο&$dr%@ꊧt!M ;՘ @ȁ"Ct ڿ?kC\ ڼ~aտ?տ^u} ٣@JuD ?P i1@F?ӿp3?t@`?8ٿu3: I4͔c? s{9!@@ype@vm^@/(?>SO!HÖ?KQ|L3ִB}8-. @SB< @Γ C%A$ ?u?^[\AAH(ĞFg c;@424笗 & "@/hu6r뿈1@H߇[ dvt@okP;?;cp@;3j@# ivs@D @F\@+@U^B6?o>X%?37y2A@6@ٟMaGT@ď`}g?t>!1:[?+]?3.0@b-@ a@͂Nh~8T ה@Z&@1 ckϐYs+?6 O?[`xܯ" "; %$%2fgȴ@*? ٢Ba(v7Z@&eq@ @|s ?Slmn8 @jxv?}! `*܍@ qzaފ@&$Hp@h}+!EY`l<^ˊ_x{?`耍|忴K670%'L?4>M @o)?g\@ /;@!鿏Gqe@d ]?x]ohI@c&- 9Abprl@`濖3h@JM}??&2L?\suvue@;%?tʌ?e(TguW bS=dgv@L @2,E@l(@ds?8? @?bR:J@px~:?pB?u@~^?wy`s` @?z@ L?@5B5 n@|@,8@ӕ?fUZR{U8g$I-12?(xQ@Ʌ"ң1cir%g?p 24l5X?>s@θ@6IV?tU=?KK_3(' @W UxV F? ÅO @w߿T0`뿼ר"?l,PW @n?u_?M]+o8фN":'hR@#?4!?8y5?bfU@p @EW @(ArL,W?t : @X |s?E[{@{M#$=?Uh@ƛ?<@!& 7kz@B+-28{Ma@бJ@H s?ԟ?E6LzR @Hb;7W Y\]ލW?Y[}?G\E`@upSi?8c`@ VVп9@5B3;d{ QfX?T\?A@yY3'2yk,X@HNA?7$?v\?]@jj9 ʝP,+Q mM:?G'⿎F`࿀/TVM?WA U@"P.T쿍j@^W\̺g:[JI!K@OC5@p8^5 Vp ?aX)L@j+pZ( @[|F?uSwع˨p+-?'*O?"xV?aE0@<ÏiVv|@ \W #ۿ\iuڿ>Uue̿KIh[1?m[q@D812{@1p?Od0?tD3: ?br` p)eeI }5Hx?A9R5B@-'|?]u/?3ٿHs@`u,?txU?X8qI0fR?[z y?"#ٱX"B yeb @=2J ?] xp7?(I&΍/? y?O H/aI@$~DW?һVr7h/I\ Zh`2 ,9.]Z)%T)sE?QR??Bd)F@F뿬Kܤõ@ag^ӛcO'Ĩ1@w%HIKUaK% @2&?z#<@qΕc,E{@&p?s x?{ìU݃??X@O쁇9@;u*Ng rPgK2 Aʪ9?VӕOF:?$}]e@=翧p|:u%a9Hq\3. BX&@37?ح[ګ3 @ @ In7UlǙg - !@q?ʳv@+m@D @ Hgꯑ?4t@2;Z$SqDW!N5hmy޲eV=@4@@OLC#3:?4Œ?QF &Q@"@cb@Tz hօѿ L @<{n @1?a`v@Qe@d?1@psjbO/rx_@Md#MOoT @]`l@4Zc{kc @fR?@6EE @1@\{?jc?|!&n@Fp@͸qT N$dHˌ~ @d-(S_?BY]?oI!Ep@;ۉj?yT$@pQ E&tsP=@@/+cR6?N _lHJD 3_!eA(hMVM? U .)AoJ1p5=Žn9 @jГH`c0K 7 Gֿ1@1>4/$@*wF[_]F@Nd"xIk(@{055EY ~1`xȣ>?8h?/A[ @0@?QQZ%?=ՄD@Z'N@тO#viO@5E<Qa4N~f|a W  8#&;-?#*?T? /ϤWQ1p俶Z[h@LgO&@&?Fǟ^? z ?/@r4 yV}L?[w[k0@/o/Ahf/o?{Kj?TqMť V)ۇH?.*;kB$I?P*?vp[?e@1:P Og?l@#[ֿG@F"9`@k `C<8 @mnqNPQE:ῴ~??y ##@x?[p_LD@ 5DP@dw 4t @ 4V4~:Î@+gIm#@bZ$cDB:k:?Z2a?BAC#XC/?ўzqv+a@xmo>ajiQIu @A @7;||i˽[ [@y?ML^?> 2?{1d +qr+Lz $*'\o/@z\ N@,I @@ӈD$@Uɧgƺ ,,ڍ p"̚ @o㿴,2p?ߵGR ?N%]?YS0@'F@h@V]ƅLo g~_$y @#J`CT YP c^t fR8Aq:@?j+@)3R aY@(VT?-uN@ԡ ?::@B bL_lD̵?+'q6N?@ą7.B:?l:j׿^Ѷ?ff@q?T-i }(q?j~@ξ'r"$tUT8̿KDfu" @PIQ?ߊݿRZ@S 俗!Šh@iVH5 ?߃Si+ ~\jY0@ٕrt@/ @8Lc33ql@2ӿ;ݿ/r!3y@C L@|M̾IǷMyfUk?R;٢P? qgt@`<+ #?w(t@̹%@^"l* @ GO>8@ғ@6$"v Ҡ@BrGC@ۿT^C@ @>Ԙ+? (f5@?/ l @ٳ@{@` @xn?N덺?_r: @Xo@Y H?9=-jO }DHH,J4*dؿ(G??(~ @wV ?s/{KӺ@'4>Kֈ;/ @DWbM9Œ$@@X?ݛ7X2]5-Y`@Rx 3?"a ˈ?T? $?˿ebI nM~D俰OG?NB@~,im].T@B1?1pܿW'[Kd|Z @Ti VÍbff\ꛣ?3R EZ|Bx7 VETG,?oLKp:pkq?ͨ-lX?B! '@d^𼣿kf\Z? v?;UZP@010"C?bJ}n@06d@9 @2\()@uӟ`K\;@xF;rc@뭑|@ 2Tw5>}D?Gr<@%k@]6E ,GG@HCXh!( ?`zƿ“q3@qҿ`. _O տQ?.k߄+?ޮjܿXc? 2@U, ?A @:"O?Ar~?\b@1@)b#@pGs?R_Uvں%4@M9L뿺Cı?kVn?n2 *ۿ.Ua,`?wY?Fstb1R@òA9;?ekMM{<@ 2<6rp@ V Kos\@Inަ @^d?a88` }dJD=Ņ`=@k^?h(v4@Ib?8 ~ 1?F?[ 8YcſX @_1YV@ @#I@۸S'y?(jw?Co^ @pъU߿=N@j@z&㿟4@sZr?v&@`-?`Iϭ?r5?JG,x )b6 @i@E0@Z8Bɑ>?0{a?${sw?)q3ӿF;"_>áՋNs޿OGT:@EI]QD? üB}^?1N+F~~~pӿ=_q?oRn`T@V@,ҿu⿀`dJ @ {DCRԿ@©@Jݨ9 q`vsCg8?\h5Np4P^n@ Y fݿBgx$z;Y& c஬?UBD Z@3>?"?Ssv@IQ忓?O CU?ڦ"?ymy$ 앎@$Y?+6?Uh(c䣦9@F/63@ I˓ "X@G5),^IIs,H7/@i1oO@Y 8k0oӿ]I¤@EsĤ?yJp t?$4L@rN@&@11ijQ+ynڿzlw,v|З  !@ac?>1ȓ#M/( |d8K)Qz@ܜÝ@ |s6@/6s?ma!O?( {?Y,@ղ:?u.y=o* @1X.Ё7@PŹDa#??^qs"&g@k!Z[)?-cߖ˼,Be?pڳZuͿ8.MѿA1 eQӜ@@35ܿaQvB@(hz> @]\V@2۝"p@ 5axnT?')?@Sb:?oٵP޿NC@q^G!@k+k,@q%,@`]CE[@:>?5!vy@Jz:v@bG Q{,v7(?D К@K&J޿BV"b}@p"E-?A"sHܼ @{i$YZ?CydQ@WO!;6`W@X%? Er_N:)*R2?> ;@)@bkãڍf?ܿdC !fz1S&@`z:%@DOUO@©~O&? { ؿ7]1P?gd;<ΎO?j?*ɿiElwbtg-Q@y@N@v-?Bu4Ͽ i+ @n?zNPI#?03@4[?I] @ bo@#Q?T{QݿB@!?#.q =Z4`@-^]sշ~? LcgZ?jG@'K @̜ĺ?`8dO\zeB@y2rYm??mY*{N\ G3ͺq ~@@8 ?-ii&@2!b@1s8@+/u$|yx)6@$aee @aAZ:,@e-v?b&,? ^ @-a^=@ g;kV۸ @1| T2AN\tk?= ?!|wW@\͘40i@+IP*?h?/|Ip~?;x@2?񿋊IHMs?Sk?C?sW?en;@ذ!?y,! }.??q?_@lx`@ja^@dW#~@v?+H}n42C{pY:?n?'0N@mh8@}h?) @I'IFb4@@ 0o?;fB?+}k%2?3'w@s$?h|wp@k>?a5v^Կ`W{ ?Εwt1@E @U/ԣ?hWz@{OddrX ǔDJx`o?*8g`?Yy!?5x04=(?;7Vuø5i@mwGm?rR{eLiR?9׉6g?:#TH??nk.C2U?pK@<ܿS ug2lW@Մz @Xo0:?AD޿J&xϹ9l4,sV`ZK( `u)pk˨)FV@V?$?cU?1~%X?g@x |}^ 迀dB׿UkZ (鿆bĿU-U?j$¹Fo?]u$Rݿd{R@JfFfm?$DLֿԪx?ik_˸/g=d?Q&?iG?,Qs_鿗㪯¦ ?Y7wd@,ܿ*]1/@ÿDͼ2Mo`{?Ӌf@Q?>0dQ}c?ejm哃"]GLfA@OPRT1 @~UD\2Dr`< AuO"1U?P"$Q2,_s_? 4@Gly@ۻ7U^ @9ٖ@~`* G,y "@_a3Yy[?6L I? Gm=?λE"}d97Bp]?6RRM?Cϛ?ʧal?Q^@ NG%6 82@`W!ل?Nä@Rvq$T"Ja[?p0>X@*\ڗo]$@zGn@ku @H*@l?="7eE8BGX} @^;?=N0F @wzA@ r?7)G @{h@.R@@jISe]:? [+5i@]j-?ڇ8"z <%@Dp+=@ITb%s @>IK{?o9U\@Zٵ@[# @a䇌?ۋ@.?VԠ@m" LbQ @L tm$ T@cs ۗi Չϼ?G^"LXZ&Yg\|?pGsv!@:^Lq?}sh(gK?X!H@gP@U@AGoV 1.c SٿƱF?f?| +@[H.?'1?yD4~?AV".@ZWa?`g&A@CW0>">+B00 6166:Z!@C9IE@!2 ?[>S ɦ%@ #@BX6IfE\%`ǵuWY *}vy~;BPiƖ'_!Qw /ok/ʙ@B[?fףFfkf<@CAV(3?^Ρ?)k@LDt@<ϟ!ZmjcQY?dQxNwq쿯.-,R@h"@ \?#i@#6,P? k܍;3A1oR@ѵR[@~{!#|NӤ@bINN!: #@C 2 ?h4Tꏞ;qg I?{:*?mE ٿ4t A@A@;@&- %@$j@ }"R@>g&k- @Medy ѿ/=C!@)*)#@F2T1fż @)/x 3,?31}ƒwXvԿF;Nf{^@D,? 7N $Yt@>P9!@6nĿUpmSI@|rxI?è *"G޿P?(Ɵy)@FL?fq _^cM@,\l"m3?X?#@C8_ ?3_~?P/@\fb؞'\ _Sn7袥^.$@g\?B()f G\}b%@r&w1@OSl0?#NA?\Q" @cRxS?zN?טm#e06Z%,V >f PaSf:?r sj@4@-K"@p/EI]@x+ )@I=7-*t?^y!'Mw@@O(@D~'@JEu@/mZ4?"J9?R4V>kVE ܱ+[h04Vw??\>@} ?d( Ts?n@i=mZQ +|M]`P 9,V?FQ5]Oqk+@Kfu>?bX?8o ݣʨ ΍/SQ2?L7e@AkPGK?"JV! @,b0ylHn ۸+z6o @hoDŽ|x"?-Ax?12 E @K)q(SN?߆Jؿ?;@ + mt@)}?]/a`'7?@v"E■Hj2(Qҵ>ܿk&v@<@}D@4^L)B ƿh},w7j?I/.뿄%QA$@/qz J_SC?EXٔ`Fc~bIDcy῏t/~d$@4Qz @[,¿( ["n@ rZ#1@A 9p@OK8@3I4 )@iL%6 @*"]@ v@;'@ȡY?N0@I5"@c»?LLLU?#bA?x @w\gbYr!ASfUACTJAO/?.'j?vQ~ A\fdH6"p @L (X S/ŹZ@X~hIߨe}ʼ3Fu,ÿ*}3@u/?)C}BݿN0.$v.k?yTk4[+s?w*=m5@,,C@Qb@ʨ t=xp$xr@s HB -?&V#@h+?YS@`ꉱ@>j|y&C M A08?}  w=#@i%@G`\{sɎt@B7Tk_iǗ!6@BK?o?A @)zG+Mt7CDdq%5L?b׿ K. ?@"9i)lEQ6]@?fUW?Ӏ« @ HJ|kK?"sĿ ۿ.鈋ֿ|7?O^2ۚ @~G?P<&Fiyg i?_=|Ds&~'ب@Z b $?>$!4/t# gxJ~xq2 '@h}`9[@Az4@%Ww@Iۯ?,\^(@uc36vQ?2%#?hEq?k!<ܧ=ؿ#+|w?xˠ@˲C?I!?':@H ?5B@ } @>@?_-66(!$?  "?Lw<ۡ@p ̿8^P?D{}?D=cJ-@C?~?k˿Ѐ@y8MU?KsGz ?Vom3?捬@F |@@`p p{nw@Ŗ#Lq㿬3}F4_9`@TG?K;kǫ@wtp!'[=@`PY?n%_T@ @N˿kRF @#i(q@lBR@x$^ @~^L?rBAyYl $Q@J?4Aɮn@"~?$a9:l*2C?qɸ ?0 5 cv)3?z7P[z@Zk(r2YB@U?Eg#s,x# @' :'#wI?# @32?:?ʳ@/Q݋.@\ZZ?ġP?R?lw%MX?U?1(~?䇍m zM0g /@G=<yQ? 1?HF B }ya7c@2֣?gFG3@ @{S[ 8ǿDMr@[iҿvl5gzObO?ڼ4 'd?胵}@D;> @%L>@0-g1J?[^%PyÂvh%Y-$ S?/ K[@(_dd#"V/iܿ׼ 7?eп_X\?tJ^?BsC@e&L?PvI?MX_ۿX?{C̋xb@4 ?^lG viZ`޿Ҫ @(??a3C?u.?3"eЇ>p NN?ۃ Y@V.@-Ah ?ZO{Vz?jjׂm @"n'@9?s@ f\?Scx @ pMrn jJvPҿ O? }*fguopV.(IJbw-@vE ڿT5F?ns%M?T± D)t# Q>="? } C{D"?d7A? zg@*_918S!@~ Cݱ?"YˮQ$M#@  ԁV/'C>(@؊e&@g o^xLn @+TZ ZrI@ { UKG@_y>$ "53!@+I,W챋j] @K#hKg?:~y"D @8#@Ő@@Bn?w5@v#X?2a@r龂"(b-3G$ZЙJ͜@YHI˿B?m+8W$Vmk,AQ @-/ұ ?؅MFRyQ?Dq5~@wo @F+~l [+?/JhOcD"LJ?on?pƎ @oD@rVh*\7%@WQ@Y*.?v @*0C!@.w˴6>$N\*ag*WdB@ H"7j$fno@_ r?B7@\Z?Q\?T'WlIjf1F\O=9?"^!}?gZXBL{0nT,?<@RݿvQzi #5@H?ƙZ c%jmI@'`tR&4"?6y @PyŐZ ,-hW8? @rT)xJ"taAK3MA~qL?%4򿠡_}'?*ӟ=ݿE,uTnt@`R ?׉E=`ɥ @2@|ٿg ~?@LSc@Wj^b-4@'.f+/r`sl2hr"@U\TD |(t2@ac(p?oa?`!ڢ f#G@ŬA@][ )uTڞ@ODRP ]R?@b.D=@hgb@q&ϴ !Vy ?tWL?Nj??戲R0?N7?G #.@3 +鍍@6@S@k @vn4g<@$ "Xg@??r@`ӃJ n.@lz8*BjοV&DC?.pE?DuZQ n)& V@x١!}Y$&.O9ic( YHaҿ%!Q-CLV(iV^~$@LZ@I' @,%K\@v@!.2' 5Mޢ. @@N^q b6^@Ͽ @zI R @1#8_c@G:ۿS/@xo3@ w=Wj)Yö)"?qq?O4@4j >O=?"쿄e D6?rѽ \7u)[OG)fj?¿B[u@?lJ4o?%?$@A$ގ @|uaA@c9tK2{?\$_hr0KcQ@QʄLFݬ׊.G @mdg!9Mk0翨m Z=g@h37ȧ ePu;K _mWLAп=z @ˈ0??b@@H  ! n)jƣ@?ɣ2@kE?av^B%ś@0;y@ѿ]@ߌv?(j)_ @ָ9,U -176$@_ºݿCJJ)6QJ} G|%PB 3|r@h(B:ҹ?ȸ {+46#S!ޥd+k 9ߺ5˅@+wA#?ᔴ8 淖;?b6D @TJ @aPՈN|"_8D/_߫ mJ&?5+iE\|Ͽ-QVC͢@& j3 6 b^n.@Fi?{? dۿ ?K>e*S"Dd9)@I[ G2X@7*9?\@=92ҿn; @Z\?ٹVgPo?;ԉ߿|І?g4v\ @z&H?' @|o7?FKG=6@le!v}gceO?@xئ?+Ђ?mť%ٿT N3@Wx@G.@4 fgQX&@7aZ꿄 @BV?q6@kC?9bW-[쿬2Bɨ.OUAJ@(`ȸ?XDOđT??fe=$JֿF&HN$󿕍w% ,_?zۿ!o}?FO\ ikF?gz?՛f"P 9p32*ӿHfgEc @F5gZ?ΥV wwH=h @^sh+A?`p"ٷֻ@Lf^?SY @].@\?IqCI"A^9 @~ˤ{((?t?L^1tC %pI &{5EHeoP @Bd?#\ C@ ~k?4@ !?U> ?y?8,TR@}++ֻ7V߿e]Rh?U?3V $ 0]@0jh@/?p$@տԵn3NY1@c @8Qz?]½]"5""G@Jͮ 3 @ᕎ?t4b@490O VV𺰾d鿿.{@T@C@Rd8ўp?FUw@hӇ-׿y>U( ?uN#@?]?B.-޿}7?8Ȥ;ߜ@y GC鿓䀏34R@Yx?\ֆ?^p @cWC ޿ 1Ci$QlQ%@/^I @MfWf5*>? 1jn9Y`Xd:[/@f"Pސֻ?"m? `A?1(?G=?j?XV?cQ@u{ rREG{N  @0-da?+8N7G=n@9N @fZjP@T O͎@`劲?!_4X?:[y? h0u?v& -OyyH7- r@K+! bf? 6<#53?#0_@BB߷@?=x/=M+c(@v? `.@mʲ DЮ mZE@QV?|?3= vȨ?E6M?9au7 @'ҥϥ@$;@W % W?^?>*[ 3m,wMŋB=A,wP@h;@L#q /vD~ޚ@<@?DſS|xq}?Gl/@͋H@2r?7{?}C @fӧIGnZ@SP-p@1/`Wp@4@?r@xdJ#z@{$fA(I@0\9mIuW; @V @f'? A'o 7n0?.>D!t0kwDZC?ٙNA?Zm￿ۇ;]evaNd\?2oV>>~; @˦]s?P Vٿ]gɿEn8,?Mmrl(^?jQUSe3@ 8 @[(lO.?H@FGax P}@qAa?v?J" 6X  J5y @l@@B(aQ#ҿ α<2e Y.~2 y%]7߿ ݛϿxKgFǠ1?Kg??aF_?M|3#?"t׆??VYb^d5T5E\FvW?;b'|?u%@- @pBC)k꿬4>@mzzNM,@ عEu|gVZO @(HRɿ-LFE?n+JY?N?y%D_T5@[QY?? >(?) v @bzo-j:d߿-Ƥ?$w@bЖ?6qr@ {MR?v @WSڿ_m|^ӿm_Ջ@ip( @N:9Wj @_$?"J))?٠H??{ j@WVS\&y?g?䪣f֡4>?zs`{̡)&;4Fhg _V E(@V2NbQ.\\Dʠu#@ϯ]@:40c @t%ufya<￧u E*?ftn"b yS N`'?n@\kU-p>^@S/?;CTYͭ?z+@`^?DoN@Ff:VH&@C|@vWmKV@ϔdR@-"@uew4Կ¨@Ue?Do9Jvwf@Mᾈd4{0@OHbP  QŅW ^uS 4OR@ꉹ?Rn&p_Aj\" SY-{yq jlgd?kv @ @z@q-Ed"2'@R *0n@o/x俅g_@H?ګ_\c@j~e׿{J+c IyhqSal>GhaϾk,\?+s8op>?v: @ɭE@fW}C?j&T@}μ@Q!?TZ1?I跬?HA3^?Um|OM 0aI$?5@1ԅ@vb@{?!{pUM !h'Uӿ6)q࿞ QEv,}M@?tHj?J^i?קYI?ߩP?:iC!9NK?A{Z2?Ur> @}w* Lg-Q @6+?fG+kY(b&?q]>MA-?ğҿetg?XjT?zHc@d^7hGݿ|趾SEg$$3B?Cn=H?J?Kn?@?j?mY[?@?fluids-0.1.78/fluids/optional/gd2qd.dat0000644000175000017500000000273413632560624016454 0ustar kurtkurt=@DzC?'ÿ3B ?_èy֜lZh]?)M+%?PO,#8x?u[N ȋ? (,~?Јւz?(K?ɡ7Em?^j2M?g܅wA>?7?'-o?@ԃ?T3.ȷr_5?L};<4Pℿ6n[u?ċ|d*kK~f v%3Cn gY?J^.?.zT'7?(ʎ=PwI409ћ?xa*Vw6~?{/lBa}?R7Cl`Ep?_3\;:Y?8_mY:2R?^M9 ܢ5?o R% >&.kY?UkkY>l,K}ge?=kxEc?v z&?<32&?ߩO3gh>°O^h?eeVyX?%"Xa?bd"?}H@> d\Ar5?Agw_I?ngAL?I{Wz#fՇKI?b$9HQ,}*>ް%Ő6;ȿ|nQӟ?Bo?`(ZSo/;eBu0TwTwp _dNYU? ƨVO5X _S Y_nY8 ?j!x(?կNzK/g#fca4i]eN,Ig?P=8'84{22' 8x`R(sZSm G@6?@ Lh5??rPS7v?Ft?,䧁۳\?bnd?&É?rm7EV?h7nY6q̐2DU-28?:b.3?"ݑoepXB>ђ?'ⴀat[??O?l_TEXGi$2F: 7IJ\ #?0g eu*?fluids-0.1.78/fluids/optional/irradiance.py0000644000175000017500000001671013632560624017433 0ustar kurtkurt# -*- coding: utf-8 -*- """ irradiance.py from pvlib ======================== Extremely stripped down, reimplementation/vendorized version from: https://github.com/pvlib/pvlib-python/ The rational for not including this library as a strict dependency is to avoid including a dependency on pandas, keeping load time low, and PyPy compatibility Most of the functions will import pvlib and use it for calculations, except for one case which allows this to be used without `pvlib` For a full list of contributors to this file, see the `pvlib` repository. The copyright notice (BSD-3 clause) is as follows: BSD 3-Clause License Copyright (c) 2013-2018, Sandia National Laboratories and pvlib python Development Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the {organization} nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ from __future__ import division import os import time from datetime import datetime import math from math import degrees, sin, cos, tan, radians, asin, atan2, radians, exp, isnan nan = float("nan") from math import degrees, acos def aoi_projection(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth): projection = ( cos(radians(surface_tilt)) * cos(radians(solar_zenith)) + sin(radians(surface_tilt)) * sin(radians(solar_zenith)) * cos(radians(solar_azimuth - surface_azimuth))) return projection def aoi(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth): projection = aoi_projection(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth) aoi_value = degrees(acos(projection)) return aoi_value def poa_components(aoi, dni, poa_sky_diffuse, poa_ground_diffuse): poa_direct = max(dni * cos(radians(aoi)), 0.0) if poa_sky_diffuse is not None: poa_diffuse = poa_sky_diffuse + poa_ground_diffuse else: poa_diffuse = poa_ground_diffuse poa_global = poa_direct + poa_diffuse irrads = {} irrads['poa_global'] = poa_global irrads['poa_direct'] = poa_direct irrads['poa_diffuse'] = poa_diffuse irrads['poa_sky_diffuse'] = poa_sky_diffuse irrads['poa_ground_diffuse'] = poa_ground_diffuse return irrads def get_ground_diffuse(surface_tilt, ghi, albedo=.25, surface_type=None): diffuse_irrad = ghi*albedo*(1.0 - cos(radians(surface_tilt)))*0.5 return diffuse_irrad def get_sky_diffuse(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth, dni, ghi, dhi, dni_extra=None, airmass=None, model='isotropic', model_perez='allsitescomposite1990'): if model == 'isotropic': return isotropic(surface_tilt, dhi) else: from pvlib import get_sky_diffuse return get_sky_diffuse(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth, dni, ghi, dhi, dni_extra=dni_extra, airmass=airmass, model=model, model_perez=model_perez) def get_absolute_airmass(airmass_relative, pressure=101325.): airmass_absolute = airmass_relative*pressure/101325. return airmass_absolute def get_relative_airmass(zenith, model='kastenyoung1989'): z = zenith zenith_rad = radians(z) if 'kastenyoung1989' == model: try: am = (1.0 / (cos(zenith_rad) + 0.50572*(((6.07995 + (90.0 - z))**-1.6364)))) except: am = nan if isinstance(am, complex): am = nan else: raise ValueError('%s is not a valid model for relativeairmass', model) return am def get_total_irradiance(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth, dni, ghi, dhi, dni_extra=None, airmass=None, albedo=.25, surface_type=None, model='isotropic', model_perez='allsitescomposite1990', **kwargs): poa_sky_diffuse = get_sky_diffuse( surface_tilt, surface_azimuth, solar_zenith, solar_azimuth, dni, ghi, dhi, dni_extra=dni_extra, airmass=airmass, model=model, model_perez=model_perez) poa_ground_diffuse = get_ground_diffuse(surface_tilt, ghi, albedo, surface_type) aoi_ = aoi(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth) irrads = poa_components(aoi_, dni, poa_sky_diffuse, poa_ground_diffuse) return irrads def isotropic(surface_tilt, dhi): sky_diffuse = dhi * (1 + cos(radians(surface_tilt))) * 0.5 return sky_diffuse def ineichen(apparent_zenith, airmass_absolute, linke_turbidity, altitude=0, dni_extra=1364., perez_enhancement=False): if isnan(airmass_absolute) or isnan(apparent_zenith): return {'ghi': 0.0, 'dni': 0.0, 'dhi': 0.0} # use max so that nighttime values will result in 0s instead of # negatives. propagates nans. cos_zenith = cos(radians(apparent_zenith)) if cos_zenith < 0.0: cos_zenith = 0.0 tl = linke_turbidity fh1 = exp(-altitude/8000.) fh2 = exp(-altitude/1250.) cg1 = 5.09e-5*altitude + 0.868 cg2 = 3.92e-5*altitude + 0.0387 ghi = exp(-cg2*airmass_absolute*(fh1 + fh2*(tl - 1.0))) # https://github.com/pvlib/pvlib-python/issues/435 if perez_enhancement: ghi *= exp(0.01*airmass_absolute**1.8) # use fmax to map airmass nans to 0s. multiply and divide by tl to # reinsert tl nans if ghi > 0.0: ghi = cg1 * dni_extra * cos_zenith * tl / tl * ghi else: ghi = 0.0 # BncI = "normal beam clear sky radiation" b = 0.664 + 0.163/fh1 bnci = b * exp(-0.09 * airmass_absolute * (tl - 1)) if bnci > 0.0: bnci = dni_extra * bnci else: bnci = 0.0 # "empirical correction" SE 73, 157 & SE 73, 312. bnci_2 = ((1.0 - (0.1 - 0.2*exp(-tl))/(0.1 + 0.882/fh1)) / cos_zenith) multiplier = (bnci_2 if bnci_2 > 0.0 else bnci_2) multiplier = 1e20 if multiplier > 1e20 else multiplier bnci_2 = ghi*multiplier dni = bnci if bnci < bnci_2 else bnci_2 dhi = ghi - dni*cos_zenith return {'ghi': ghi, 'dni': dni, 'dhi': dhi} fluids-0.1.78/fluids/optional/hwm93.for0000644000175000017500000037331513632560624016446 0ustar kurtkurt SUBROUTINE GWS5(IYD,SEC,ALT,GLAT,GLONG,STL,F107A,F107,AP,W) C Horizontal wind model HWM93 covering all altitude regions C A. E. HEDIN (1/25/93) (4/9/93) C Calling argument list made similar to GTS5 subroutine for C MSIS-86 density model and GWS4 for thermospheric winds. C IYD - YEAR AND DAY AS YYDDD C SEC - UT(SEC) (Not important in lower atmosphere) C ALT - ALTITUDE(KM) C GLAT - GEODETIC LATITUDE(DEG) C GLONG - GEODETIC LONGITUDE(DEG) C STL - LOCAL APPARENT SOLAR TIME(HRS) C F107A - 3 MONTH AVERAGE OF F10.7 FLUX (Use 150 in lower atmos.) C F107 - DAILY F10.7 FLUX FOR PREVIOUS DAY ( " ) C AP - Two element array with C AP(1) = MAGNETIC INDEX(DAILY) (use 4 in lower atmos.) C AP(2)=CURRENT 3HR ap INDEX (used only when SW(9)=-1.) C Note: Ut, Local Time, and Longitude are used independently in the C model and are not of equal importance for every situation. C For the most physically realistic calculation these three C variables should be consistent. C OUTPUT C W(1) = MERIDIONAL (m/sec + Northward) C W(2) = ZONAL (m/sec + Eastward) C ADDITIONAL COMMENTS C TO TURN ON AND OFF PARTICULAR VARIATIONS CALL TSELEC(SW) C WHERE SW IS A 25 ELEMENT ARRAY CONTAINING 0. FOR OFF, 1. C FOR ON, OR 2. FOR MAIN EFFECTS OFF BUT CROSS TERMS ON C FOR THE FOLLOWING VARIATIONS C 1 - F10.7 EFFECT ON MEAN 2 - TIME INDEPENDENT C 3 - SYMMETRICAL ANNUAL 4 - SYMMETRICAL SEMIANNUAL C 5 - ASYMMETRICAL ANNUAL 6 - ASYMMETRICAL SEMIANNUAL C 7 - DIURNAL 8 - SEMIDIURNAL C 9 - DAILY AP 10 - ALL UT/LONG EFFECTS C 11 - LONGITUDINAL 12 - UT AND MIXED UT/LONG C 13 - MIXED AP/UT/LONG 14 - TERDIURNAL C 16 - ALL WINDF VAR 17 - ALL WZL VAR C 18 - ALL UN1 VAR 19 - ALL WDZL VAR C 24 - ALL B FIELDS (DIV) 25 - ALL C FIELDS (CURL) C C To get current values of SW: CALL TRETRV(SW) C C For example, to get zonal averages (no diurnal or C longitudinal variations) set SW(7),SW(8), SW(14), C and SW(10) equal to 0. To just remove tidal variations C set SW(7),SW(8), and SW(14) equal to 0. PARAMETER (MN1=5,MN2=14) DIMENSION AP(1),W(2),WINDF(2),WW(2),SV(25) DIMENSION WZL(2),WDZL(2) DIMENSION ZN1(MN1),UN1(MN1,2),UGN1(2,2) DIMENSION ZN2(MN2),UN2(MN2,2),UGN2(2,2) COMMON/PARMW5/PWB(200),PWC(200),PWBL(150),PWCL(150),PWBLD(150), $ PWCLD(150),PB12(150),PC12(150),PB13(150),PC13(150), $ PB14(150),PC14(150),PB15(150),PC15(150), $ PB15D(150),PC15D(150),PWP(100,26) COMMON/CSW/SW(25),ISW,SWC(25) COMMON/HWMC/WBT(2),WCT(2) COMMON/DATW/ISD(3),IST(2),NAM(2) COMMON/DATIME/ISDATE(3),ISTIME(2),NAME(2) SAVE EXTERNAL INITW5,GWSBK5 DATA S/.016/,ZL/200./,SV/25*1./,NNN/3/,MN2S/1/,MN2M/1/ DATA ZN1/200.,150.,130.,115.,100./ DATA ZN2/100.,90.,82.5,75.,67.5,60.,52.5,45.,37.5,30.,22.5, $ 15.,7.5,0/ C Put identification data into common/datime/ DO 1 I=1,3 ISDATE(I)=ISD(I) 1 CONTINUE DO 2 I=1,2 ISTIME(I)=IST(I) NAME(I)=NAM(I) 2 CONTINUE IF(ISW.NE.64999) CALL TSELEC(SV) YRD=IYD WW(1)=W(1) WW(2)=W(2) C IF(ALT.LE.ZN1(MN1)) GOTO 50 C C EXOSPHERE WIND CALL GLBW5E(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PWB,PWC,WINDF) WINDF(1)=SW(16)*WINDF(1) WINDF(2)=SW(16)*WINDF(2) C WIND AT ZL CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PWBL,PWCL,WW) WZL(1)=(PWBL(1)*WINDF(1)+WW(1))*SW(17)*SW(18) WZL(2)=(PWBL(1)*WINDF(2)+WW(2))*SW(17)*SW(18) UN1(1,1)=WZL(1) UN1(1,2)=WZL(2) C WIND DERIVATIVE AT ZL WW(1)=0 WW(2)=0 CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PWBLD,PWCLD,WW) WDZL(1)=(PWBLD(1)*WINDF(1)+WW(1))*SW(19)*SW(18) WDZL(2)=(PWBLD(1)*WINDF(2)+WW(2))*SW(19)*SW(18) UGN1(1,1)=WDZL(1)*S UGN1(1,2)=WDZL(2)*S C IF(ALT.GE.ZL) GOTO 90 C C WIND AT ZN1(2) (150) CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PB12,PC12,WW) UN1(2,1)=(PB12(1)*WINDF(1)+WW(1))*SW(18) UN1(2,2)=(PB12(1)*WINDF(2)+WW(2))*SW(18) C WIND AT ZN1(3) (130) CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PB13,PC13,WW) UN1(3,1)=WW(1)*SW(18) UN1(3,2)=WW(2)*SW(18) C WIND AT ZN1(4) (115) CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PB14,PC14,WW) UN1(4,1)=WW(1)*SW(18) UN1(4,2)=WW(2)*SW(18) C 50 CONTINUE MNN=MAX(1,MIN(MN2,NNN+1)) IF(ALT.LT.ZN2(MNN)) GOTO 40 C C WIND AT ZN1(5) (100) CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PB15,PC15,WW) UN1(5,1)=WW(1)*SW(18) UN1(5,2)=WW(2)*SW(18) C WIND DERIVATIVE AT ZN1(5) (100) CALL GLBW5M(YRD,SEC,GLAT,GLONG,STL,F107A,F107,AP,PB15D,PC15D,WW) UGN1(2,1)=WW(1)*SW(18) UGN1(2,2)=WW(2)*SW(18) C IF(ALT.GE.ZN1(MN1)) GOTO 90 C UGN2(1,1)=UGN1(2,1) UGN2(1,2)=UGN1(2,2) UN2(1,1)=UN1(5,1) UN2(1,2)=UN1(5,2) GOTO 45 40 CONTINUE UGN2(1,1)=1.E30 UGN2(1,2)=1.E30 UN2(1,1)=0 UN2(1,2)=0 45 CONTINUE C DO 10 I=1,MN2 IF(ALT.GT.ZN2(I)) GOTO 12 10 CONTINUE I=MN2 12 IZ=I MN2S=MAX(1,MIN(IZ-1,IZ-NNN)) MN2E=MIN(MN2,MAX(MN2S+1,IZ-1+NNN)) DO 20 I=MN2S,MN2E II=2*(I-2)+1 IF(I.GT.1) THEN CALL GLBW5S(IYD,GLAT,GLONG,STL,PWP(1,II),PWP(1,II+1),WW) UN2(I,1)=WW(1)*SW(20) UN2(I,2)=WW(2)*SW(20) ENDIF 20 CONTINUE MN2M=MN2E-MN2S+1 UGN2(2,1)=1.E30 UGN2(2,2)=1.E30 90 CONTINUE C WIND AT ALTITUDE IF(W(1).NE.9898) $ W(1)= WPROF(ALT,ZL,S,WINDF(1),WZL(1),WDZL(1), $ MN1,ZN1,UN1(1,1),UGN1(1,1),MN2M,ZN2(MN2S),UN2(MN2S,1),UGN2(1,1)) IF(W(2).NE.9898) $ W(2)= WPROF(ALT,ZL,S,WINDF(2),WZL(2),WDZL(2), $ MN1,ZN1,UN1(1,2),UGN1(1,2),MN2M,ZN2(MN2S),UN2(MN2S,2),UGN2(1,2)) RETURN C Set number of nodes calculated each side of required altitude C to adjust profile accuracy vs efficiency ENTRY SETNW5(NNW) NNN=NNW END C----------------------------------------------------------------------- FUNCTION WPROF(Z,ZL,S,UINF,ULB,ULBD,MN1,ZN1,UN1,UGN1, $ MN2,ZN2,UN2,UGN2) DIMENSION ZN1(MN1),UN1(MN1),UGN1(2),XS(15),YS(15),Y2OUT(15) DIMENSION ZN2(MN2),UN2(MN2),UGN2(2) SAVE IF(Z.GE.ZL) THEN X=S*(Z-ZL) F=EXP(-X) WPROF=UINF+(ULB-UINF)*F+(ULB-UINF+ULBD)*X*F RETURN ENDIF IF(Z.GE.ZN1(MN1).AND.Z.LT.ZN1(1)) THEN MN=MN1 Z1=ZN1(1) Z2=ZN1(MN) ZDIF=Z2-Z1 DO 10 K=1,MN XS(K)=(ZN1(K)-Z1)/ZDIF YS(K)=UN1(K) 10 CONTINUE YD1=UGN1(1)*ZDIF YD2=UGN1(2)*ZDIF CALL SPLINE(XS,YS,MN,YD1,YD2,Y2OUT) C Eq. X=(Z-Z1)/ZDIF C Eq. CALL SPLINT(XS,YS,Y2OUT,MN,X,Y) WPROF=Y RETURN ENDIF IF(Z.LT.ZN2(1)) THEN MN=MN2 Z1=ZN2(1) Z2=ZN2(MN) ZDIF=Z2-Z1 DO 20 K=1,MN XS(K)=(ZN2(K)-Z1)/ZDIF YS(K)=UN2(K) 20 CONTINUE YD1=UGN2(1) IF(UGN2(1).LT.1.E30) YD1=UGN2(1)*ZDIF YD2=UGN2(2) IF(UGN2(2).LT.1.E30) YD2=UGN2(2)*ZDIF CALL SPLINE(XS,YS,MN,YD1,YD2,Y2OUT) C Eq. X=(Z-Z1)/ZDIF C Eq. CALL SPLINT(XS,YS,Y2OUT,MN,X,Y) WPROF=Y RETURN ENDIF RETURN END C----------------------------------------------------------------------- SUBROUTINE GLBW5E(YRD,SEC,LAT,LONG,STL,F107A,F107,AP,PB,PC,WW) REAL LAT,LONG DIMENSION WB(2,15),WC(2,15),PB(1),PC(1),WW(2) DIMENSION AP(1) COMMON/CSW/SW(25),ISW,SWC(25) COMMON/HWMC/WBT(2),WCT(2) C COMMON/VPOLY/BT(20,20),BP(20,20),CSTL,SSTL,C2STL,S2STL, C $ C3STL,S3STL,IYR,DAY,DF,DFA,DFC,APD,APDF,APDFC,APT,SLT COMMON/VPOLY2/XVL,LVL,MVL,CLAT,SLAT,BT(20,20),BP(20,20) COMMON/LTCOMP/TLL,NSVL,CSTL,SSTL,C2STL,S2STL,C3STL,S3STL COMMON/LGCOMP/XLL,NGVL,CLONG,SLONG,C2LONG,S2LONG SAVE DATA DGTR/.017453/,SR/7.2722E-5/,HR/.2618/,DR/1.72142E-2/ DATA NSW/14/,WB/30*0/,WC/30*0/ DATA PB14/-1./,PB18/-1./ DATA SW9/1./,LV/12/,MV/3/,NSV/3/,NGV/2/,PSET/3./ G0(A)=(A-4.+(PB(26)-1.)*(A-4.+(EXP(-ABS(PB(25))*(A-4.))-1.)/ * ABS(PB(25)))) C CONFIRM PARAMETER SET IF(PB(100).EQ.0) PB(100)=PSET IF(PB(100).NE.PSET) THEN WRITE(6,900) PB(100),PC(100) 900 FORMAT(1X,'WRONG PARAMETER SET FOR GLBW5E',3F10.1) STOP ENDIF C DO 10 J=1,NSW WB(1,J)=0 WB(2,J)=0 WC(1,J)=0 WC(2,J)=0 10 CONTINUE IF(SW(9).GT.0) SW9=1. IF(SW(9).LT.0) SW9=-1. IYR = YRD/1000. DAY = YRD - IYR*1000. IF(XVL.NE.LAT.OR.LV.GT.LVL.OR.MV.GT.MVL) THEN SLAT=SIN(DGTR*LAT) CLAT=COS(DGTR*LAT) CALL VSPHR1(SLAT,CLAT,LV,MV,BT,BP,20) XVL=LAT LVL=LV MVL=MV ENDIF IF(TLL.NE.STL.OR.NSV.GT.NSVL) THEN SSTL = SIN(HR*STL) CSTL = COS(HR*STL) S2STL = SIN(2.*HR*STL) C2STL = COS(2.*HR*STL) S3STL = SIN(3.*HR*STL) C3STL = COS(3.*HR*STL) TLL = STL NSVL=NSV ENDIF IF(DAY.NE.DAYL.OR.PB(14).NE.PB14) THEN CD14=COS(DR*(DAY-PB(14))) C SD14=SIN(DR*(DAY-PB(14))) ENDIF IF(DAY.NE.DAYL.OR.PB(18).NE.PB18) CD18=COS(2.*DR*(DAY-PB(18))) DAYL=DAY PB14=PB(14) PB18=PB(18) IF(XLL.NE.LONG) THEN SLONG=SIN(DGTR*LONG) CLONG=COS(DGTR*LONG) S2LONG=SIN(2.*DGTR*LONG) C2LONG=COS(2.*DGTR*LONG) XLL=LONG NGVL=2 ENDIF C F10.7 EFFECT DF=F107-F107A DFA=F107A-150. DFC=DFA+PB(20)*DF C TIME INDEPENDENT F1B=1.+PB(22)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WB(1,2)=(PB(2)*BT(3,1)+PB(3)*BT(5,1)+PB(23)*BT(7,1))*F1B ENDIF WB(2,2)=0. F1C=1.+PC(22)*DFC*SWC(1) WC(1,2)=0. IF(WW(2).NE.9898) THEN WC(2,2)=-(PC(2)*BT(2,1)+PC(3)*BT(4,1)+PC(23)*BT(6,1))*F1C $ -(PC(27)*BT(3,1)+PC(15)*BT(5,1)+PC(60)*BT(7,1) $ +PC(161)*BT(9,1)+PC(162)*BT(11,1)+PC(163)*BT(13,1))*F1C ENDIF C SYMMETRICAL ANNUAL C SYMMETRICAL SEMIANNUAL IF(WW(1).NE.9898) THEN WB(1,4)=(PB(17)*BT(3,1)+PB(31)*BT(5,1))*CD18 ENDIF WB(2,4)=0 WC(1,4)=0 IF(WW(2).NE.9898) THEN WC(2,4)=-(PC(17)*BT(2,1)+PC(31)*BT(4,1))*CD18 ENDIF C ASYMMETRICAL ANNUAL F5B=1.+PB(48)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WB(1,5)=(PB(10)*BT(2,1)+PB(11)*BT(4,1))*CD14*F5B ENDIF WB(2,5)=0 F5C=1.+PC(48)*DFC*SWC(1) WC(1,5)=0 IF(WW(2).NE.9898) THEN WC(2,5)=-(PC(10)*BT(3,1)+PC(11)*BT(5,1))*CD14*F5C ENDIF C ASYMMETRICAL SEMIANNUAL C none C DIURNAL IF(SW(7).EQ.0) GOTO 200 F7B=1.+PB(50)*DFC*SWC(1) F75B=1.+PB(83)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WB(1,7)=(PB(7)*BT(2,2)+PB(8)*BT(4,2)+PB(29)*BT(6,2) $ +PB(142)*BT(8,2)+PB(144)*BT(10,2) $ +PB(182)*BT(3,2)+PB(184)*BT(5,2) $ )*SSTL*F7B $ +(PB(13)*BT(3,2)+PB(146)*BT(5,2)) $ *CD14*SSTL*F75B*SWC(5) $ +(PB(171)*BT(2,2)+PB(173)*BT(4,2)) $ *CD18*SSTL*F75B*SWC(4) $ + (PB(4)*BT(2,2)+PB(5)*BT(4,2)+PB(28)*BT(6,2) $ +PB(141)*BT(8,2)+PB(143)*BT(10,2) $ +PB(181)*BT(3,2)+PB(183)*BT(5,2) $ )*CSTL*F7B $ +(PB(12)*BT(3,2)+PB(145)*BT(5,2)) $ *CD14*CSTL*F75B*SWC(5) $ +(PB(170)*BT(2,2)+PB(172)*BT(4,2)) $ *CD18*CSTL*F75B*SWC(4) ENDIF IF(WW(2).NE.9898) THEN WB(2,7)=-(PB(4)*BP(2,2)+PB(5)*BP(4,2)+PB(28)*BP(6,2) $ +PB(141)*BP(8,2)+PB(143)*BP(10,2) $ +PB(181)*BP(3,2)+PB(183)*BP(5,2) $ )*SSTL*F7B $ -(PB(12)*BP(3,2)+PB(145)*BP(5,2)) $ *CD14*SSTL*F75B*SWC(5) $ -(PB(170)*BP(2,2)+PB(172)*BP(4,2)) $ *CD18*SSTL*F75B*SWC(4) $ + (PB(7)*BP(2,2)+PB(8)*BP(4,2)+PB(29)*BP(6,2) $ +PB(142)*BP(8,2)+PB(144)*BP(10,2) $ +PB(182)*BP(3,2)+PB(184)*BP(5,2) $ )*CSTL*F7B $ +(PB(13)*BP(3,2)+PB(146)*BP(5,2)) $ *CD14*CSTL*F75B*SWC(5) $ +(PB(171)*BP(2,2)+PB(173)*BP(4,2)) $ *CD18*CSTL*F75B*SWC(4) ENDIF F7C=1.+PC(50)*DFC*SWC(1) F75C=1.+PC(83)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WC(1,7)=-(PC(4)*BP(3,2)+PC(5)*BP(5,2)+PC(28)*BP(7,2) $ +PC(141)*BP(9,2)+PC(143)*BP(11,2) $ +PC(181)*BP(2,2)+PC(183)*BP(4,2)+PC(185)*BP(6,2) $ +PC(187)*BP(8,2)+PC(189)*BP(10,2) $ )*SSTL*F7C $ -(PC(12)*BP(2,2)+PC(145)*BP(4,2)) $ *CD14*SSTL*F75C*SWC(5) $ -(PC(170)*BP(3,2)+PC(172)*BP(5,2)) $ *CD18*SSTL*F75C*SWC(4) $ +(PC(7)*BP(3,2)+PC(8)*BP(5,2)+PC(29)*BP(7,2) $ +PC(142)*BP(9,2)+PC(144)*BP(11,2) $ +PC(182)*BP(2,2)+PC(184)*BP(4,2)+PC(186)*BP(6,2) $ +PC(188)*BP(8,2)+PC(190)*BP(10,2) $ )*CSTL*F7C $ +(PC(13)*BP(2,2)+PC(146)*BP(4,2)) $ *CD14*CSTL*F75C*SWC(5) $ +(PC(171)*BP(3,2)+PC(173)*BP(5,2)) $ *CD18*CSTL*F75C*SWC(4) ENDIF IF(WW(2).NE.9898) THEN WC(2,7)=-(PC(7)*BT(3,2)+PC(8)*BT(5,2)+PC(29)*BT(7,2) $ +PC(142)*BT(9,2)+PC(144)*BT(11,2) $ +PC(182)*BT(2,2)+PC(184)*BT(4,2)+PC(186)*BT(6,2) $ +PC(188)*BT(8,2)+PC(190)*BT(10,2) $ )*SSTL*F7C $ -(PC(13)*BT(2,2)+PC(146)*BT(4,2)) $ *CD14*SSTL*F75C*SWC(5) $ -(PC(171)*BT(3,2)+PC(173)*BT(5,2)) $ *CD18*SSTL*F75C*SWC(4) $ -(PC(4)*BT(3,2)+PC(5)*BT(5,2)+PC(28)*BT(7,2) $ +PC(141)*BT(9,2)+PC(143)*BT(11,2) $ +PC(181)*BT(2,2)+PC(183)*BT(4,2)+PC(185)*BT(6,2) $ +PC(187)*BT(8,2)+PC(189)*BT(10,2) $ )*CSTL*F7C $ -(PC(12)*BT(2,2)+PC(145)*BT(4,2)) $ *CD14*CSTL*F75C*SWC(5) $ -(PC(170)*BT(3,2)+PC(172)*BT(5,2)) $ *CD18*CSTL*F75C*SWC(4) ENDIF 200 CONTINUE C SEMIDIURNAL IF(SW(8).EQ.0) GOTO 210 F8B=1.+PB(90)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WB(1,8)=(PB(9)*BT(3,3)+PB(43)*BT(5,3) $ +PB(111)*BT(7,3) $ +(PB(34)*BT(4,3)+PB(148)*BT(6,3))*CD14*SWC(5) $ +(PB(134)*BT(3,3))*CD18*SWC(4) $ +PB(152)*BT(4,3)+PB(154)*BT(6,3)+PB(156)*BT(8,3) $ +PB(158)*BT(10,3) $ )*S2STL*F8B $ +(PB(6)*BT(3,3)+PB(42)*BT(5,3) $ +PB(110)*BT(7,3) $ +(PB(24)*BT(4,3)+PB(147)*BT(6,3))*CD14*SWC(5) $ +(PB(135)*BT(3,3))*CD18*SWC(4) $ +PB(151)*BT(4,3)+PB(153)*BT(6,3)+PB(155)*BT(8,3) $ +PB(157)*BT(10,3) $ )*C2STL*F8B ENDIF IF(WW(2).NE.9898) THEN WB(2,8)=-(PB(6)*BP(3,3)+PB(42)*BP(5,3) $ +PB(110)*BP(7,3) $ +(PB(24)*BP(4,3)+PB(147)*BP(6,3))*CD14*SWC(5) $ +(PB(135)*BP(3,3))*CD18*SWC(4) $ +PB(151)*BP(4,3)+PB(153)*BP(6,3)+PB(155)*BP(8,3) $ +PB(157)*BP(10,3) $ )*S2STL*F8B $ + (PB(9)*BP(3,3)+PB(43)*BP(5,3) $ +PB(111)*BP(7,3) $ +(PB(34)*BP(4,3)+PB(148)*BP(6,3))*CD14*SWC(5) $ +(PB(134)*BP(3,3))*CD18*SWC(4) $ +PB(152)*BP(4,3)+PB(154)*BP(6,3)+PB(156)*BP(8,3) $ +PB(158)*BP(10,3) $ )*C2STL*F8B ENDIF F8C=1.+PC(90)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WC(1,8)=-(PC(6)*BP(4,3)+PC(42)*BP(6,3) $ +PC(110)*BP(8,3) $ +(PC(24)*BP(3,3)+PC(147)*BP(5,3))*CD14*SWC(5) $ +(PC(135)*BP(4,3))*CD18*SWC(4) $ +PC(151)*BP(3,3)+PC(153)*BP(5,3)+PC(155)*BP(7,3) $ +PC(157)*BP(9,3) $ )*S2STL*F8C $ +(PC(9)*BP(4,3)+PC(43)*BP(6,3) $ +PC(111)*BP(8,3) $ +(PC(34)*BP(3,3)+PC(148)*BP(5,3))*CD14*SWC(5) $ +(PC(134)*BP(4,3))*CD18*SWC(4) $ +PC(152)*BP(3,3)+PC(154)*BP(5,3)+PC(156)*BP(7,3) $ +PC(158)*BP(9,3) $ )*C2STL*F8C ENDIF IF(WW(2).NE.9898) THEN WC(2,8)=-(PC(9)*BT(4,3)+PC(43)*BT(6,3) $ +PC(111)*BT(8,3) $ +(PC(34)*BT(3,3)+PC(148)*BT(5,3))*CD14*SWC(5) $ +(PC(134)*BT(4,3))*CD18*SWC(4) $ +PC(152)*BT(3,3)+PC(154)*BT(5,3)+PC(156)*BT(7,3) $ +PC(158)*BT(9,3) $ )*S2STL*F8C $ - (PC(6)*BT(4,3)+PC(42)*BT(6,3) $ +PC(110)*BT(8,3) $ +(PC(24)*BT(3,3)+PC(147)*BT(5,3))*CD14*SWC(5) $ +(PC(135)*BT(4,3))*CD18*SWC(4) $ +PC(151)*BT(3,3)+PC(153)*BT(5,3)+PC(155)*BT(7,3) $ +PC(157)*BT(9,3) $ )*C2STL*F8C ENDIF 210 CONTINUE C TERDIURNAL IF(SW(14).EQ.0) GOTO 220 F14B=1. IF(WW(1).NE.9898) THEN WB(1,14)=(PB(40)*BT(4,4)+PB(149)*BT(6,4) $ +PB(114)*BT(8,4) $ +(PB(94)*BT(5,4)+PB(47)*BT(7,4))*CD14*SWC(5) $ )*S3STL*F14B $ + (PB(41)*BT(4,4)+PB(150)*BT(6,4) $ +PB(115)*BT(8,4) $ +(PB(95)*BT(5,4)+PB(49)*BT(7,4))*CD14*SWC(5) $ )*C3STL*F14B ENDIF IF(WW(2).NE.9898) THEN WB(2,14)=-(PB(41)*BP(4,4)+PB(150)*BP(6,4) $ +PB(115)*BP(8,4) $ +(PB(95)*BP(5,4)+PB(49)*BP(7,4))*CD14*SWC(5) $ )*S3STL*F14B $ + (PB(40)*BP(4,4)+PB(149)*BP(6,4) $ +PB(114)*BP(8,4) $ +(PB(94)*BP(5,4)+PB(47)*BP(7,4))*CD14*SWC(5) $ )*C3STL*F14B ENDIF F14C=1. IF(WW(1).NE.9898) THEN WC(1,14)=-(PC(41)*BP(5,4)+PC(150)*BP(7,4) $ +PC(115)*BP(9,4) $ +(PC(95)*BP(4,4)+PC(49)*BP(6,4))*CD14*SWC(5) $ )*S3STL*F14C $ + (PC(40)*BP(5,4)+PC(149)*BP(7,4) $ +PC(114)*BP(9,4) $ +(PC(94)*BP(4,4)+PC(47)*BP(6,4))*CD14*SWC(5) $ )*C3STL*F14C ENDIF IF(WW(2).NE.9898) THEN WC(2,14)=-(PC(40)*BT(5,4)+PC(149)*BT(7,4) $ +PC(114)*BT(9,4) $ +(PC(94)*BT(4,4)+PC(47)*BT(6,4))*CD14*SWC(5) $ )*S3STL*F14C $ - (PC(41)*BT(5,4)+PC(150)*BT(7,4) $ +PC(115)*BT(9,4) $ +(PC(95)*BT(4,4)+PC(49)*BT(6,4))*CD14*SWC(5) $ )*C3STL*F14C ENDIF 220 CONTINUE C MAGNETIC ACTIVITY IF(SW(9).EQ.0.) GOTO 40 IF(SW9.EQ.-1.) GOTO 30 C daily AP APD=AP(1)-4. APDF=(APD+(PB(45)-1.)*(APD+(EXP(-PB(44)*APD)-1.)/PB(44))) C APDFC=(APD+(PC(45)-1.)*(APD+(EXP(-PC(44)*APD)-1.)/PC(44))) APDFC=APDF IF(APD.EQ.0.) GOTO 40 IF(WW(1).NE.9898) THEN WB(1,9)=(PB(46)*BT(3,1)+PB(35)*BT(5,1)+PB(33)*BT(7,1))*APDF $ +(PB(175)*BT(3,3)+PB(177)*BT(5,3))*S2STL*APDF $ +(PB(174)*BT(3,3)+PB(176)*BT(5,3))*C2STL*APDF ENDIF IF(WW(2).NE.9898) THEN WB(2,9)=0 $ -(PB(174)*BP(3,3)+PB(176)*BP(5,3))*S2STL*APDF $ +(PB(175)*BP(3,3)+PB(177)*BP(5,3))*C2STL*APDF ENDIF IF(WW(1).NE.9898) THEN WC(1,9)=SWC(7)*WC(1,7)*PC(122)*APDFC $ -(PC(174)*BP(4,3)+PC(176)*BP(6,3))*S2STL*APDFC $ +(PC(175)*BP(4,3)+PC(177)*BP(6,3))*C2STL*APDFC ENDIF IF(WW(2).NE.9898) THEN WC(2,9)=-(PC(46)*BT(2,1)+PC(35)*BT(4,1)+PC(33)*BT(6,1))*APDFC $ +SWC(7)*WC(2,7)*PC(122)*APDFC $ -(PC(175)*BT(4,3)+PC(177)*BT(6,3))*S2STL*APDFC $ -(PC(174)*BT(4,3)+PC(176)*BT(6,3))*C2STL*APDFC ENDIF GO TO 40 30 CONTINUE IF(PB(25).LT.1.E-4) PB(25)=1.E-4 APT=G0(AP(2)) IF(APT.EQ.0) GOTO 40 IF(WW(1).NE.9898) THEN WB(1,9)=(PB(97)*BT(3,1)+PB(55)*BT(5,1)+PB(51)*BT(7,1))*APT $ +(PB(160)*BT(3,3)+PB(179)*BT(5,3))*S2STL*APT $ +(PB(159)*BT(3,3)+PB(178)*BT(5,3))*C2STL*APT ENDIF IF(WW(2).NE.9898) THEN WB(2,9)=0 $ -(PB(159)*BP(3,3)+PB(178)*BP(5,3))*S2STL*APT $ +(PB(160)*BP(3,3)+PB(179)*BP(5,3))*C2STL*APT ENDIF IF(WW(1).NE.9898) THEN WC(1,9)=SWC(7)*WC(1,7)*PC(129)*APT $ -(PC(159)*BP(4,3)+PC(178)*BP(6,3))*S2STL*APT $ +(PC(160)*BP(4,3)+PC(179)*BP(6,3))*C2STL*APT ENDIF IF(WW(2).NE.9898) THEN WC(2,9)=-(PC(97)*BT(2,1)+PC(55)*BT(4,1)+PC(51)*BT(6,1))*APT $ +SWC(7)*WC(2,7)*PC(129)*APT $ -(PC(160)*BT(4,3)+PC(179)*BT(6,3))*S2STL*APT $ -(PC(159)*BT(4,3)+PC(178)*BT(6,3))*C2STL*APT ENDIF 40 CONTINUE IF(SW(10).EQ.0) GOTO 49 C LONGITUDINAL DBASY1=1.+PB(199)*SLAT DBASY2=1.+PB(200)*SLAT F11B=1.+PB(81)*DFC*SWC(1) IF(SW(11).EQ.0) GOTO 230 IF(WW(1).NE.9898) THEN WB(1,11)=(PB(91)*BT(3,2)+PB(92)*BT(5,2)+PB(93)*BT(7,2)) $ *SLONG*DBASY1*F11B $ + (PB(65)*BT(3,2)+PB(66)*BT(5,2)+PB(67)*BT(7,2)) $ *CLONG*DBASY1*F11B $ +(PB(191)*BT(3,3)+PB(193)*BT(5,3)+PB(195)*BT(7,3) $ +PB(197)*BT(9,3) $ )*S2LONG*DBASY2*F11B $ + (PB(192)*BT(3,3)+PB(194)*BT(5,3)+PB(196)*BT(7,3) $ +PB(198)*BT(9,3) $ )*C2LONG*DBASY2*F11B ENDIF IF(WW(2).NE.9898) THEN WB(2,11)=-(PB(65)*BP(3,2)+PB(66)*BP(5,2)+PB(67)*BP(7,2)) $ *SLONG*DBASY1*F11B $ + (PB(91)*BP(3,2)+PB(92)*BP(5,2)+PB(93)*BP(7,2)) $ *CLONG*DBASY1*F11B $ -(PB(192)*BP(3,3)+PB(194)*BP(5,3)+PB(196)*BP(7,3) $ +PB(198)*BP(9,3) $ )*S2LONG*DBASY2*F11B $ + (PB(191)*BP(3,3)+PB(193)*BP(5,3)+PB(195)*BP(7,3) $ +PB(197)*BP(9,3) $ )*C2LONG*DBASY2*F11B ENDIF DCASY1=1.+PC(199)*SLAT DCASY2=1.+PC(200)*SLAT F11C=1.+PC(81)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WC(1,11)=-(PC(65)*BP(2,2)+PC(66)*BP(4,2)+PC(67)*BP(6,2) $ +PC(73)*BP(8,2)+PC(74)*BP(10,2) $ )*SLONG*DCASY1*F11C $ + (PC(91)*BP(2,2)+PC(92)*BP(4,2)+PC(93)*BP(6,2) $ +PC(87)*BP(8,2)+PC(88)*BP(10,2) $ )*CLONG*DCASY1*F11C $ -(PC(192)*BP(4,3)+PC(194)*BP(6,3)+PC(196)*BP(8,3) $ +PC(198)*BP(10,3) $ )*S2LONG*DCASY2*F11C $ + (PC(191)*BP(4,3)+PC(193)*BP(6,3)+PC(195)*BP(8,3) $ +PC(197)*BP(10,3) $ )*C2LONG*DCASY2*F11C ENDIF IF(WW(2).NE.9898) THEN WC(2,11)=-(PC(91)*BT(2,2)+PC(92)*BT(4,2)+PC(93)*BT(6,2) $ +PC(87)*BT(8,2)+PC(88)*BT(10,2) $ )*SLONG*DCASY1*F11C $ - (PC(65)*BT(2,2)+PC(66)*BT(4,2)+PC(67)*BT(6,2) $ +PC(73)*BT(8,2)+PC(74)*BT(10,2) $ )*CLONG*DCASY1*F11C $ -(PC(191)*BT(4,3)+PC(193)*BT(6,3)+PC(195)*BT(8,3) $ +PC(197)*BT(10,3) $ )*S2LONG*DCASY2*F11C $ - (PC(192)*BT(4,3)+PC(194)*BT(6,3)+PC(196)*BT(8,3) $ +PC(198)*BT(10,3) $ )*C2LONG*DCASY2*F11C ENDIF 230 CONTINUE C UT & MIXED UT/LONG UTBASY=1. F12B=1.+PB(82)*DFC*SWC(1) IF(SW(12).EQ.0) GOTO 240 IF(WW(1).NE.9898) THEN WB(1,12)=(PB(69)*BT(2,1)+PB(70)*BT(4,1)+PB(71)*BT(6,1) $ +PB(116)*BT(8,1)+PB(117)*BT(10,1)+PB(118)*BT(12,1) $ )*COS(SR*(SEC-PB(72)))*UTBASY*F12B $ + (PB(77)*BT(4,3)+PB(78)*BT(6,3)+PB(79)*BT(8,3)) $ *COS(SR*(SEC-PB(80))+2.*DGTR*LONG)*UTBASY*F12B*SWC(11) ENDIF IF(WW(2).NE.9898) THEN WB(2,12)=(PB(77)*BP(4,3)+PB(78)*BP(6,3)+PB(79)*BP(8,3)) $ *COS(SR*(SEC-PB(80)+21600.)+2.*DGTR*LONG) $ *UTBASY*F12B*SWC(11) ENDIF UTCASY=1. F12C=1.+PC(82)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WC(1,12)=(PC(77)*BP(3,3)+PC(78)*BP(5,3)+PC(79)*BP(7,3) $ +PC(165)*BP(9,3)+PC(166)*BP(11,3)+PC(167)*BP(13,3) $ )*COS(SR*(SEC-PC(80))+2.*DGTR*LONG)*UTCASY*F12C*SWC(11) ENDIF IF(WW(2).NE.9898) THEN WC(2,12)=-(PC(69)*BT(3,1)+PC(70)*BT(5,1)+PC(71)*BT(7,1) $ +PC(116)*BT(9,1)+PC(117)*BT(11,1)+PC(118)*BT(13,1) $ )*COS(SR*(SEC-PC(72)))*UTCASY*F12C $ + (PC(77)*BT(3,3)+PC(78)*BT(5,3)+PC(79)*BT(7,3) $ +PC(165)*BT(9,3)+PC(166)*BT(11,3)+PC(167)*BT(13,3) $ )*COS(SR*(SEC-PC(80)+21600.)+2.*DGTR*LONG) $ *UTCASY*F12C*SWC(11) ENDIF 240 CONTINUE C MIXED LONG,UT,AP IF(SW(13).EQ.0) GOTO 48 IF(SW9.EQ.-1.) GO TO 45 IF(APD.EQ.0) GOTO 48 IF(WW(1).NE.9898) THEN WB(1,13)= $ (PB(61)*BT(3,2)+PB(62)*BT(5,2)+PB(63)*BT(7,2)) $ *COS(DGTR*(LONG-PB(64)))*APDF*SWC(11)+ $ (PB(84)*BT(2,1)+PB(85)*BT(4,1)+PB(86)*BT(6,1)) $ *COS(SR*(SEC-PB(76)))*APDF*SWC(12) ENDIF IF(WW(2).NE.9898) THEN WB(2,13)=(PB(61)*BP(3,2)+PB(62)*BP(5,2)+PB(63)*BP(7,2)) $ *COS(DGTR*(LONG-PB(64)+90.))*APDF*SWC(11) ENDIF IF(WW(1).NE.9898) THEN WC(1,13)=SWC(11)*WC(1,11)*PC(61)*APDFC $ +SWC(12)*WC(1,12)*PC(84)*APDFC ENDIF IF(WW(2).NE.9898) THEN WC(2,13)=SWC(11)*WC(2,11)*PC(61)*APDFC $ +SWC(12)*WC(2,12)*PC(84)*APDFC ENDIF GOTO 48 45 CONTINUE IF(APT.EQ.0) GOTO 48 IF(WW(1).NE.9898) THEN WB(1,13)= $ (PB(53)*BT(3,2)+PB(99)*BT(5,2)+PB(68)*BT(7,2)) $ *COS(DGTR*(LONG-PB(98)))*APT*SWC(11)+ $ (PB(56)*BT(2,1)+PB(57)*BT(4,1)+PB(58)*BT(6,1)) $ *COS(SR*(SEC-PB(59)))*APT*SWC(12) ENDIF IF(WW(2).NE.9898) THEN WB(2,13)=(PB(53)*BP(3,2)+PB(99)*BP(5,2)+PB(68)*BP(7,2)) $ *COS(DGTR*(LONG-PB(98)+90.))*APT*SWC(11) ENDIF IF(WW(1).NE.9898) THEN WC(1,13)=SWC(11)*WC(1,11)*PC(53)*APT $ +SWC(12)*WC(1,12)*PC(56)*APT ENDIF IF(WW(2).NE.9898) THEN WC(2,13)=SWC(11)*WC(2,11)*PC(53)*APT $ +SWC(12)*WC(2,12)*PC(56)*APT ENDIF 48 CONTINUE 49 CONTINUE WBT(1)=0 WBT(2)=0 WCT(1)=0 WCT(2)=0 C SUM WINDS AND CHANGE MERIDIONAL SIGN TO + NORTH DO 50 K=1,NSW WBT(1)=WBT(1)-ABS(SW(K))*WB(1,K) WCT(1)=WCT(1)-ABS(SW(K))*WC(1,K) WBT(2)=WBT(2)+ABS(SW(K))*WB(2,K) WCT(2)=WCT(2)+ABS(SW(K))*WC(2,K) 50 CONTINUE IF(WW(1).NE.9898) WW(1)=WBT(1)*SW(24)+WCT(1)*SW(25) IF(WW(2).NE.9898) WW(2)=WBT(2)*SW(24)+WCT(2)*SW(25) RETURN END C----------------------------------------------------------------------- SUBROUTINE GLBW5M(YRD,SEC,LAT,LONG,STL,F107A,F107,AP,PB,PC,WW) REAL LAT,LONG DIMENSION WB(2,15),WC(2,15),PB(1),PC(1),WW(2) DIMENSION AP(1) COMMON/CSW/SW(25),ISW,SWC(25) COMMON/HWMC/WBT(2),WCT(2) C COMMON/VPOLY/BT(20,20),BP(20,20),CSTL,SSTL,C2STL,S2STL, C $ C3STL,S3STL,IYR,DAY,DF,DFA,DFC,APD,APDF,APDFC,APT,STL COMMON/VPOLY2/XVL,LVL,MVL,CLAT,SLAT,BT(20,20),BP(20,20) COMMON/LTCOMP/TLL,NSVL,CSTL,SSTL,C2STL,S2STL,C3STL,S3STL COMMON/LGCOMP/XLL,NGVL,CLONG,SLONG,C2LONG,S2LONG SAVE DATA DGTR/.017453/,SR/7.2722E-5/,HR/.2618/,DR/1.72142E-2/ DATA PB14/-1./,PB18/-1./ DATA NSW/14/,WB/30*0/,WC/30*0/ DATA SW9/1./,LV/10/,MV/2/,NSV/2/,PSET/4./ G0(A)=(A-4.+(PB(26)-1.)*(A-4.+(EXP(-ABS(PB(25))*(A-4.))-1.)/ * ABS(PB(25)))) C CONFIRM PARAMETER SET IF(PB(100).EQ.0) PB(100)=PSET IF(PB(100).NE.PSET) THEN WRITE(6,900) PSET,PB(100),PC(100) 900 FORMAT(1X,'WRONG PARAMETER SET FOR GLBW5M',3F10.1) STOP ENDIF C DO 10 J=1,NSW WB(1,J)=0 WB(2,J)=0 WC(1,J)=0 WC(2,J)=0 10 CONTINUE IF(SW(9).GT.0) SW9=1. IF(SW(9).LT.0) SW9=-1. IYR = YRD/1000. DAY = YRD - IYR*1000. IF(XVL.NE.LAT.OR.LV.GT.LVL.OR.MV.GT.MVL) THEN SLAT=SIN(DGTR*LAT) CLAT=COS(DGTR*LAT) CALL VSPHR1(SLAT,CLAT,LV,MV,BT,BP,20) XVL=LAT LVL=LV MVL=MV ENDIF IF(TLL.NE.STL.OR.NSV.GT.NSVL) THEN SSTL = SIN(HR*STL) CSTL = COS(HR*STL) S2STL = SIN(2.*HR*STL) C2STL = COS(2.*HR*STL) TLL = STL NSVL=NSV ENDIF IF(DAY.NE.DAYL.OR.PB(14).NE.PB14) CD14=COS(DR*(DAY-PB(14))) IF(DAY.NE.DAYL.OR.PB(18).NE.PB18) CD18=COS(2.*DR*(DAY-PB(18))) IF(DAY.NE.DAYL.OR.PB(19).NE.PB19) CD19B=COS(2.*DR*(DAY-PB(19))) DAYL=DAY PB14=PB(14) PB18=PB(18) PB19=PB(19) C F10.7 EFFECT DF=F107-F107A DFA=F107A-150. DFC=DFA+PB(20)*DF C TIME INDEPENDENT F1B=1. IF(WW(1).NE.9898) THEN WB(1,2)=(PB(2)*BT(3,1)+PB(3)*BT(5,1)+PB(23)*BT(7,1))*F1B ENDIF WB(2,2)=0. F1C=1. WC(1,2)=0. IF(WW(2).NE.9898) THEN WC(2,2)=-(PC(2)*BT(2,1)+PC(3)*BT(4,1)+PC(23)*BT(6,1))*F1C $ -(PC(27)*BT(3,1)+PC(15)*BT(5,1)+PC(60)*BT(7,1))*F1C ENDIF C SYMMETRICAL ANNUAL C SYMMETRICAL SEMIANNUAL IF(WW(1).NE.9898) THEN WB(1,4)=(PB(17)*BT(3,1)+PB(31)*BT(5,1))*CD18 ENDIF WB(2,4)=0 WC(1,4)=0 IF(WW(2).NE.9898) THEN WC(2,4)=-(PC(17)*BT(2,1)+PC(31)*BT(4,1))*CD18 ENDIF C ASYMMETRICAL ANNUAL F5B=1. IF(WW(1).NE.9898) THEN WB(1,5)=(PB(10)*BT(2,1)+PB(11)*BT(4,1))*CD14*F5B ENDIF WB(2,5)=0 F5C=1. WC(1,5)=0 IF(WW(2).NE.9898) THEN WC(2,5)=-(PC(10)*BT(3,1)+PC(11)*BT(5,1))*CD14*F5C ENDIF C ASYMMETRICAL SEMIANNUAL C DIURNAL IF(SW(7).EQ.0) GOTO 200 F7B=1. F75B=1. IF(WW(1).NE.9898) THEN WB(1,7)=(PB(7)*BT(2,2)+PB(8)*BT(4,2)+PB(29)*BT(6,2) $ +PB(89)*BT(3,2) $ )*SSTL*F7B $ +(PB(13)*BT(3,2)+PB(146)*BT(5,2)) $ *CD14*SSTL*F75B*SWC(5) $ + (PB(4)*BT(2,2)+PB(5)*BT(4,2)+PB(28)*BT(6,2) $ +PB(88)*BT(3,2) $ )*CSTL*F7B $ +(PB(12)*BT(3,2)+PB(145)*BT(5,2)) $ *CD14*CSTL*F75B*SWC(5) ENDIF IF(WW(2).NE.9898) THEN WB(2,7)=-(PB(4)*BP(2,2)+PB(5)*BP(4,2)+PB(28)*BP(6,2) $ +PB(88)*BP(3,2) $ )*SSTL*F7B $ -(PB(12)*BP(3,2)+PB(145)*BP(5,2)) $ *CD14*SSTL*F75B*SWC(5) $ + (PB(7)*BP(2,2)+PB(8)*BP(4,2)+PB(29)*BP(6,2) $ +PB(89)*BP(3,2) $ )*CSTL*F7B $ +(PB(13)*BP(3,2)+PB(146)*BP(5,2)) $ *CD14*CSTL*F75B*SWC(5) ENDIF F7C=1. F75C=1. IF(WW(1).NE.9898) THEN WC(1,7)=-(PC(4)*BP(3,2)+PC(5)*BP(5,2)+PC(28)*BP(7,2) $ +PC(88)*BP(2,2) $ +PC(141)*BP(9,2)+PC(143)*BP(11,2) $ )*SSTL*F7C $ -(PC(12)*BP(2,2)+PC(145)*BP(4,2)) $ *CD14*SSTL $ *F75C*SWC(5) $ +(PC(7)*BP(3,2)+PC(8)*BP(5,2)+PC(29)*BP(7,2) $ +PC(89)*BP(2,2) $ +PC(142)*BP(9,2)+PC(144)*BP(11,2) $ )*CSTL*F7C $ +(PC(13)*BP(2,2)+PC(146)*BP(4,2)) $ *CD14*CSTL $ *F75C*SWC(5) ENDIF IF(WW(2).NE.9898) THEN WC(2,7)=-(PC(7)*BT(3,2)+PC(8)*BT(5,2)+PC(29)*BT(7,2) $ +PC(89)*BT(2,2) $ +PC(142)*BT(9,2)+PC(144)*BT(11,2) $ )*SSTL*F7C $ -(PC(13)*BT(2,2)+PC(146)*BT(4,2)) $ *CD14*SSTL $ *F75C*SWC(5) $ -(PC(4)*BT(3,2)+PC(5)*BT(5,2)+PC(28)*BT(7,2) $ +PC(88)*BT(2,2) $ +PC(141)*BT(9,2)+PC(143)*BT(11,2) $ )*CSTL*F7C $ -(PC(12)*BT(2,2)+PC(145)*BT(4,2)) $ *CD14*CSTL $ *F75C*SWC(5) ENDIF 200 CONTINUE C SEMIDIURNAL IF(SW(8).EQ.0) GOTO 210 F8B=1.+PB(90)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WB(1,8)=(PB(9)*BT(3,3)+PB(43)*BT(5,3)+PB(111)*BT(7,3) $ +PB(98)*BT(4,3) $ +(PB(34)*BT(4,3)+PB(148)*BT(6,3))*CD14*SWC(5) $ +(PB(37)*BT(4,3))*CD19B*SWC(6) $ )*S2STL*F8B $ +(PB(6)*BT(3,3)+PB(42)*BT(5,3)+PB(110)*BT(7,3) $ +PB(96)*BT(4,3) $ +(PB(24)*BT(4,3)+PB(147)*BT(6,3))*CD14*SWC(5) $ +(PB(36)*BT(4,3))*CD19B*SWC(6) $ )*C2STL*F8B ENDIF IF(WW(2).NE.9898) THEN WB(2,8)=-(PB(6)*BP(3,3)+PB(42)*BP(5,3)+PB(110)*BP(7,3) $ +PB(96)*BP(4,3) $ +(PB(24)*BP(4,3)+PB(147)*BP(6,3))*CD14*SWC(5) $ +(PB(36)*BP(4,3))*CD19B*SWC(6) $ )*S2STL*F8B $ + (PB(9)*BP(3,3)+PB(43)*BP(5,3)+PB(111)*BP(7,3) $ +PB(98)*BP(4,3) $ +(PB(34)*BP(4,3)+PB(148)*BP(6,3))*CD14*SWC(5) $ +(PB(37)*BP(4,3))*CD19B*SWC(6) $ )*C2STL*F8B ENDIF F8C=1.+PC(90)*DFC*SWC(1) IF(WW(1).NE.9898) THEN WC(1,8)=-(PC(6)*BP(4,3)+PC(42)*BP(6,3)+PC(110)*BP(8,3) $ +PC(96)*BP(3,3) $ +(PC(24)*BP(3,3)+PC(147)*BP(5,3))*CD14*SWC(5) $ +(PC(36)*BP(3,3))*CD19B*SWC(6) $ )*S2STL*F8C $ +(PC(9)*BP(4,3)+PC(43)*BP(6,3)+PC(111)*BP(8,3) $ +PC(98)*BP(3,3) $ +(PC(34)*BP(3,3)+PC(148)*BP(5,3))*CD14*SWC(5) $ +(PC(37)*BP(3,3))*CD19B*SWC(6) $ )*C2STL*F8C ENDIF IF(WW(2).NE.9898) THEN WC(2,8)=-(PC(9)*BT(4,3)+PC(43)*BT(6,3)+PC(111)*BT(8,3) $ +PC(98)*BT(3,3) $ +(PC(34)*BT(3,3)+PC(148)*BT(5,3))*CD14*SWC(5) $ +(PC(37)*BT(3,3))*CD19B*SWC(6) $ )*S2STL*F8C $ - (PC(6)*BT(4,3)+PC(42)*BT(6,3) $ +PC(96)*BT(3,3) $ +PC(110)*BT(8,3) $ +(PC(24)*BT(3,3)+PC(147)*BT(5,3))*CD14*SWC(5) $ +(PC(36)*BT(3,3))*CD19B*SWC(6) $ )*C2STL*F8C ENDIF 210 CONTINUE C TERDIURNAL C MAGNETIC ACTIVITY IF(SW(9).EQ.0) GOTO 40 IF(SW9.EQ.-1.) GOTO 30 C daily AP APD=AP(1)-4. APDF=(APD+(PB(45)-1.)*(APD+(EXP(-PB(44)*APD)-1.)/PB(44))) C APDFC=(APD+(PC(45)-1.)*(APD+(EXP(-PC(44)*APD)-1.)/PC(44))) APDFC=APDF IF(APD.EQ.0) GOTO 40 IF(WW(1).NE.9898) THEN WB(1,9)=(PB(46)*BT(3,1)+PB(35)*BT(5,1))*APDF $ +(PB(122)*BT(2,2)+PB(123)*BT(4,2)+PB(124)*BT(6,2) $ )*COS(HR*(STL-PB(125)))*APDF*SWC(7) ENDIF IF(WW(2).NE.9898) THEN WB(2,9)= $ (PB(122)*BP(2,2)+PB(123)*BP(4,2)+PB(124)*BP(6,2) $ )*COS(HR*(STL-PB(125)+6.))*APDF*SWC(7) ENDIF IF(WW(1).NE.9898) THEN WC(1,9)= $ (PC(122)*BP(3,2)+PC(123)*BP(5,2)+PC(124)*BP(7,2) $ )*COS(HR*(STL-PC(125)))*APDFC*SWC(7) ENDIF IF(WW(2).NE.9898) THEN WC(2,9)=-(PC(46)*BT(2,1)+PC(35)*BT(4,1))*APDFC $ +(PC(122)*BT(3,2)+PC(123)*BT(5,2)+PC(124)*BT(7,2) $ )*COS(HR*(STL-PC(125)+6.))*APDFC*SWC(7) ENDIF GO TO 40 30 CONTINUE IF(PB(25).LT.1.E-4) PB(25)=1.E-4 APT=G0(AP(2)) IF(APT.EQ.0) GOTO 40 IF(WW(1).NE.9898) THEN WB(1,9)=(PB(97)*BT(3,1)+PB(55)*BT(5,1))*APT $ +(PB(129)*BT(2,2)+PB(130)*BT(4,2)+PB(131)*BT(6,2) $ )*COS(HR*(STL-PB(132)))*APT*SWC(7) ENDIF IF(WW(2).NE.9898) THEN WB(2,9)= $ (PB(129)*BP(2,2)+PB(130)*BP(4,2)+PB(131)*BP(6,2) $ )*COS(HR*(STL-PB(132)+6.))*APT*SWC(7) ENDIF IF(WW(1).NE.9898) THEN WC(1,9)= $ (PC(129)*BP(3,2)+PC(130)*BP(5,2)+PC(131)*BP(7,2) $ )*COS(HR*(STL-PC(132)))*APT*SWC(7) ENDIF IF(WW(2).NE.9898) THEN WC(2,9)=-(PC(97)*BT(2,1)+PC(55)*BT(4,1))*APT $ +(PC(129)*BT(3,2)+PC(130)*BT(5,2)+PC(131)*BT(7,2) $ )*COS(HR*(STL-PC(132)+6.))*APT*SWC(7) ENDIF 40 CONTINUE WBT(1)=0 WBT(2)=0 WCT(1)=0 WCT(2)=0 C SUM WINDS AND CHANGE MERIDIONAL SIGN TO + NORTH DO 50 K=1,NSW WBT(1)=WBT(1)-ABS(SW(K))*WB(1,K) WCT(1)=WCT(1)-ABS(SW(K))*WC(1,K) WBT(2)=WBT(2)+ABS(SW(K))*WB(2,K) WCT(2)=WCT(2)+ABS(SW(K))*WC(2,K) 50 CONTINUE IF(WW(1).NE.9898) WW(1)=WBT(1)*SW(24)+WCT(1)*SW(25) IF(WW(2).NE.9898) WW(2)=WBT(2)*SW(24)+WCT(2)*SW(25) RETURN END C----------------------------------------------------------------------- SUBROUTINE GLBW5S(IYD,LAT,LONG,STL,PB,PC,WW) REAL LAT,LONG DIMENSION WB(2,15),WC(2,15),PB(1),PC(1),WW(2) COMMON/CSW/SW(25),ISW,SWC(25) COMMON/HWMC/WBT(2),WCT(2) COMMON/VPOLY2/XVL,LVL,MVL,CLAT,SLAT,BT(20,20),BP(20,20) COMMON/LTCOMP/TLL,NSVL,CSTL,SSTL,C2STL,S2STL,C3STL,S3STL COMMON/LGCOMP/XLL,NGVL,CLONG,SLONG,C2LONG,S2LONG SAVE DATA DGTR/.017453/,SR/7.2722E-5/,HR/.2618/,DR/1.72142E-2/ DATA PB14/-1./,PB18/-1./,PC14/-1./,PC18/-1./,PSET/5./ DATA NSW/14/,WB/30*0/,WC/30*0/ C CONFIRM PARAMETER SET IF(PB(100).EQ.0) PB(100)=PSET IF(PB(100).NE.PSET) THEN WRITE(6,900) PSET,PB(100),PC(100) 900 FORMAT(1X,'WRONG PARAMETER SET FOR GLBW5S',3F10.1) STOP ENDIF C DO 10 J=1,NSW WB(1,J)=0 WB(2,J)=0 WC(1,J)=0 WC(2,J)=0 10 CONTINUE IYR = IYD/1000 DAY = IYD - IYR*1000 C LV=7 MV=2 IF(XVL.NE.LAT.OR.LV.GT.LVL.OR.MV.GT.MVL) THEN SLAT=SIN(DGTR*LAT) CLAT=COS(DGTR*LAT) CALL VSPHR1(SLAT,CLAT,LV,MV,BT,BP,20) PLG10=SLAT PLG30=(5.*SLAT*SLAT-3.)*SLAT/2. XVL=LAT LVL=LV MVL=MV ENDIF C NSV=2 IF(TLL.NE.STL.OR.NSV.GT.NSVL) THEN SSTL = SIN(HR*STL) CSTL = COS(HR*STL) S2STL = SIN(2.*HR*STL) C2STL = COS(2.*HR*STL) TLL = STL NSVL=NSV ENDIF IF(DAY.NE.DAYL.OR.PB(14).NE.PB14) CD14B=COS(DR*(DAY-PB(14))) IF(DAY.NE.DAYL.OR.PC(14).NE.PC14) CD14C=COS(DR*(DAY-PC(14))) IF(DAY.NE.DAYL.OR.PB(18).NE.PB18) CD18B=COS(2.*DR*(DAY-PB(18))) IF(DAY.NE.DAYL.OR.PC(18).NE.PC18) CD18C=COS(2.*DR*(DAY-PC(18))) IF(DAY.NE.DAYL.OR.PB(19).NE.PB19) CD19B=COS(2.*DR*(DAY-PB(19))) IF(DAY.NE.DAYL.OR.PB(25).NE.PB25) CD25B=COS(DR*(DAY-PB(25))) C IF(DAY.NE.DAYL.OR.PC(25).NE.PC25) CD25C=COS(DR*(DAY-PC(25))) IF(DAY.NE.DAYL.OR.PB(26).NE.PB26) CD26B=COS(DR*(DAY-PB(26))) C IF(DAY.NE.DAYL.OR.PC(26).NE.PC26) CD26C=COS(DR*(DAY-PC(26))) IF(DAY.NE.DAYL.OR.PC(32).NE.PC32) CD32C=COS(DR*(DAY-PC(32))) IF(DAY.NE.DAYL.OR.PC(39).NE.PC39) CD39C=COS(2.*DR*(DAY-PC(39))) IF(DAY.NE.DAYL.OR.PC(64).NE.PC64) CD64C=COS(DR*(DAY-PC(64))) IF(DAY.NE.DAYL.OR.PC(87).NE.PC87) CD87C=COS(2.*DR*(DAY-PC(87))) DAYL=DAY PB14=PB(14) PC14=PC(14) PB18=PB(18) PC18=PC(18) PB19=PB(19) PB25=PB(25) PC25=PC(25) PB26=PB(26) PC26=PC(26) PC32=PC(32) PC39=PC(39) PC64=PC(64) PC87=PC(87) C NGV=1 IF(XLL.NE.LONG.OR.NGV.GT.NGVL) THEN SLONG=SIN(DGTR*LONG) CLONG=COS(DGTR*LONG) XLL=LONG NGVL=NGV ENDIF C TIME INDEPENDENT F1B=1. IF(WW(1).NE.9898) THEN WB(1,2)=(PB(2)*BT(3,1)+PB(3)*BT(5,1)+PB(23)*BT(7,1))*F1B ENDIF WB(2,2)=0. F1C=1. WC(1,2)=0. IF(WW(2).NE.9898) THEN WC(2,2)=-(PC(2)*BT(2,1)+PC(3)*BT(4,1)+PC(23)*BT(6,1))*F1C $ -(PC(27)*BT(3,1)+PC(15)*BT(5,1)+PC(60)*BT(7,1))*F1C ENDIF C SYMMETRICAL ANNUAL IF(WW(2).NE.9898) THEN WC(2,3)=-(PC(48)*BT(2,1)+PC(30)*BT(4,1))*CD32C ENDIF C SYMMETRICAL SEMIANNUAL IF(WW(1).NE.9898) THEN WB(1,4)=(PB(17)*BT(3,1)+PB(31)*BT(5,1))*CD18B ENDIF WB(2,4)=0 WC(1,4)=0 IF(WW(2).NE.9898) THEN WC(2,4)=-(PC(17)*BT(2,1)+PC(31)*BT(4,1)+PC(50)*BT(6,1))*CD18C ENDIF C ASYMMETRICAL ANNUAL F5B=1. IF(WW(1).NE.9898) THEN WB(1,5)=(PB(10)*BT(2,1)+PB(11)*BT(4,1))*CD14B*F5B ENDIF WB(2,5)=0 F5C=1. WC(1,5)=0 IF(WW(2).NE.9898) THEN WC(2,5)=-(PC(10)*BT(3,1)+PC(11)*BT(5,1)+PC(21)*BT(7,1))*CD14C*F5C ENDIF C ASYMMETRICAL SEMIANNUAL IF(WW(2).NE.9898) THEN WC(2,6)=-(PC(38)*BT(3,1)+PC(99)*BT(5,1))*CD39C ENDIF C DIURNAL IF(SW(7).EQ.0) GOTO 200 F7B=1. F75B=1. IF(WW(1).NE.9898) THEN WB(1,7)=(PB(7)*BT(2,2)+PB(8)*BT(4,2)+PB(29)*BT(6,2) $ +PB(89)*BT(3,2) $ )*SSTL*F7B $ +(PB(13)*BT(3,2)) $ *CD25B*SSTL*F75B*SWC(5) $ + (PB(4)*BT(2,2)+PB(5)*BT(4,2)+PB(28)*BT(6,2) $ +PB(88)*BT(3,2) $ )*CSTL*F7B $ +(PB(12)*BT(3,2)) $ *CD25B*CSTL*F75B*SWC(5) ENDIF IF(WW(2).NE.9898) THEN WB(2,7)=-(PB(4)*BP(2,2)+PB(5)*BP(4,2)+PB(28)*BP(6,2) $ +PB(88)*BP(3,2) $ )*SSTL*F7B $ -(PB(12)*BP(3,2)) $ *CD25B*SSTL*F75B*SWC(5) $ + (PB(7)*BP(2,2)+PB(8)*BP(4,2)+PB(29)*BP(6,2) $ +PB(89)*BP(3,2) $ )*CSTL*F7B $ +(PB(13)*BP(3,2)) $ *CD25B*CSTL*F75B*SWC(5) ENDIF F7C=1. F75C=1. IF(WW(1).NE.9898) THEN WC(1,7)=-(PC(4)*BP(3,2)+PC(5)*BP(5,2)+PC(28)*BP(7,2) $ +PC(88)*BP(2,2) $ )*SSTL*F7C $ -(PC(12)*BP(2,2)) $ *CD25B*SSTL $ *F75C*SWC(5) $ +(PC(7)*BP(3,2)+PC(8)*BP(5,2)+PC(29)*BP(7,2) $ +PC(89)*BP(2,2) $ )*CSTL*F7C $ +(PC(13)*BP(2,2)) $ *CD25B*CSTL $ *F75C*SWC(5) ENDIF IF(WW(2).NE.9898) THEN WC(2,7)=-(PC(7)*BT(3,2)+PC(8)*BT(5,2)+PC(29)*BT(7,2) $ +PC(89)*BT(2,2) $ )*SSTL*F7C $ -(PC(13)*BT(2,2)) $ *CD25B*SSTL $ *F75C*SWC(5) $ -(PC(4)*BT(3,2)+PC(5)*BT(5,2)+PC(28)*BT(7,2) $ +PC(88)*BT(2,2) $ )*CSTL*F7C $ -(PC(12)*BT(2,2)) $ *CD25B*CSTL $ *F75C*SWC(5) ENDIF 200 CONTINUE C SEMIDIURNAL IF(SW(8).EQ.0) GOTO 210 F8B=1. IF(WW(1).NE.9898) THEN WB(1,8)=(PB(9)*BT(3,3)+PB(43)*BT(5,3)+PB(35)*BT(7,3) $ +PB(98)*BT(4,3) $ +(PB(34)*BT(4,3))*CD26B*SWC(5) $ +(PB(37)*BT(4,3))*CD19B*SWC(6) $ )*S2STL*F8B $ +(PB(6)*BT(3,3)+PB(42)*BT(5,3)+PB(33)*BT(7,3) $ +PB(96)*BT(4,3) $ +(PB(24)*BT(4,3))*CD26B*SWC(5) $ +(PB(36)*BT(4,3))*CD19B*SWC(6) $ )*C2STL*F8B ENDIF IF(WW(2).NE.9898) THEN WB(2,8)=-(PB(6)*BP(3,3)+PB(42)*BP(5,3)+PB(33)*BP(7,3) $ +PB(96)*BP(4,3) $ +(PB(24)*BP(4,3))*CD26B*SWC(5) $ +(PB(36)*BP(4,3))*CD19B*SWC(6) $ )*S2STL*F8B $ + (PB(9)*BP(3,3)+PB(43)*BP(5,3)+PB(35)*BP(7,3) $ +PB(98)*BP(4,3) $ +(PB(34)*BP(4,3))*CD26B*SWC(5) $ +(PB(37)*BP(4,3))*CD19B*SWC(6) $ )*C2STL*F8B ENDIF F8C=1. IF(WW(1).NE.9898) THEN WC(1,8)=-(PC(6)*BP(4,3)+PC(42)*BP(6,3)+PC(33)*BP(8,3) $ +PC(96)*BP(3,3) $ +(PC(24)*BP(3,3))*CD26B*SWC(5) $ +(PC(36)*BP(3,3))*CD19B*SWC(6) $ )*S2STL*F8C $ +(PC(9)*BP(4,3)+PC(43)*BP(6,3)+PC(35)*BP(8,3) $ +PC(98)*BP(3,3) $ +(PC(34)*BP(3,3))*CD26B*SWC(5) $ +(PC(37)*BP(3,3))*CD19B*SWC(6) $ )*C2STL*F8C ENDIF IF(WW(2).NE.9898) THEN WC(2,8)=-(PC(9)*BT(4,3)+PC(43)*BT(6,3)+PC(35)*BT(8,3) $ +PC(98)*BT(3,3) $ +(PC(34)*BT(3,3))*CD26B*SWC(5) $ +(PC(37)*BT(3,3))*CD19B*SWC(6) $ )*S2STL*F8C $ - (PC(6)*BT(4,3)+PC(42)*BT(6,3)+PC(33)*BT(8,3) $ +PC(96)*BT(3,3) $ +(PC(24)*BT(3,3))*CD26B*SWC(5) $ +(PC(36)*BT(3,3))*CD19B*SWC(6) $ )*C2STL*F8C ENDIF 210 CONTINUE C LONGITUDINAL IF(SW(10).EQ.0.OR.SW(11).EQ.0) GOTO 230 IF(WW(1).NE.9898) THEN WC(1,11)= $ - (PC(65)*BP(2,2)+PC(66)*BP(4,2)+PC(67)*BP(6,2) $ +PC(75)*BP(3,2)+PC(76)*BP(5,2)+ PC(77)*BP(7,2) $ +(PC(57)*BP(2,2)+PC(59)*BP(4,2)+PC(62)*BP(6,2) $ +PC(51)*BP(3,2)+PC(53)*BP(5,2)+PC(55)*BP(7,2)) $ *CD64C*SWC(3) $ +(PC(74)*BP(2,2)+PC(82)*BP(4,2)+PC(85)*BP(6,2) $ +PC(68)*BP(3,2)+PC(70)*BP(5,2)+PC(72)*BP(7,2)) $ *CD87C*SWC(4) $ )*SLONG $ + (PC(91)*BP(2,2)+PC(92)*BP(4,2)+PC(93)*BP(6,2) $ +PC(78)*BP(3,2)+PC(79)*BP(5,2)+PC(80)*BP(7,2) $ +(PC(58)*BP(2,2)+PC(61)*BP(4,2)+PC(63)*BP(6,2) $ +PC(52)*BP(3,2)+PC(54)*BP(5,2)+PC(56)*BP(7,2)) $ *CD64C*SWC(3) $ +(PC(81)*BP(2,2)+PC(84)*BP(4,2)+PC(86)*BP(6,2) $ +PC(69)*BP(3,2)+PC(71)*BP(5,2)+PC(73)*BP(7,2)) $ *CD87C*SWC(4) $ )*CLONG ENDIF IF(WW(2).NE.9898) THEN WC(2,11)= $ - (PC(91)*BT(2,2)+PC(92)*BT(4,2)+PC(93)*BT(6,2) $ +PC(78)*BT(3,2)+PC(79)*BT(5,2)+PC(80)*BT(7,2) $ +(PC(58)*BT(2,2)+PC(61)*BT(4,2)+PC(63)*BT(6,2) $ +PC(52)*BT(3,2)+PC(54)*BT(5,2)+PC(56)*BT(7,2)) $ *CD64C*SWC(3) $ +(PC(81)*BT(2,2)+PC(84)*BT(4,2)+PC(86)*BT(6,2) $ +PC(69)*BT(3,2)+PC(71)*BT(5,2)+PC(73)*BT(7,2)) $ *CD87C*SWC(4) $ )*SLONG $ - (PC(65)*BT(2,2)+PC(66)*BT(4,2)+PC(67)*BT(6,2) $ +PC(75)*BT(3,2)+PC(76)*BT(5,2)+PC(77)*BT(7,2) $ +(PC(57)*BT(2,2)+PC(59)*BT(4,2)+PC(62)*BT(6,2) $ +PC(51)*BT(3,2)+PC(53)*BT(5,2)+PC(55)*BT(7,2)) $ *CD64C*SWC(3) $ +(PC(74)*BT(2,2)+PC(82)*BT(4,2)+PC(85)*BT(6,2) $ +PC(68)*BT(3,2)+PC(70)*BT(5,2)+PC(72)*BT(7,2)) $ *CD87C*SWC(4) $ )*CLONG ENDIF 230 CONTINUE WBT(1)=0 WBT(2)=0 WCT(1)=0 WCT(2)=0 C SUM WINDS AND CHANGE MERIDIONAL SIGN TO + NORTH DO 50 K=1,NSW WBT(1)=WBT(1)-ABS(SW(K))*WB(1,K) WCT(1)=WCT(1)-ABS(SW(K))*WC(1,K) WBT(2)=WBT(2)+ABS(SW(K))*WB(2,K) WCT(2)=WCT(2)+ABS(SW(K))*WC(2,K) 50 CONTINUE IF(WW(1).NE.9898) WW(1)=WBT(1)*SW(24)+WCT(1)*SW(25) IF(WW(2).NE.9898) WW(2)=WBT(2)*SW(24)+WCT(2)*SW(25) RETURN END C----------------------------------------------------------------------- SUBROUTINE TSELEC(SV) C SET SWITCHES C SW FOR MAIN TERMS, SWC FOR CROSS TERMS DIMENSION SV(1),SAV(25),SVV(1) COMMON/CSW/SW(25),ISW,SWC(25) DO 100 I = 1,25 SAV(I)=SV(I) SW(I)=AMOD(SV(I),2.) IF(ABS(SV(I)).EQ.1.OR.ABS(SV(I)).EQ.2.) THEN SWC(I)=1. ELSE SWC(I)=0. ENDIF 100 CONTINUE ISW=64999 RETURN ENTRY TRETRV(SVV) DO 200 I=1,25 SVV(I)=SAV(I) 200 CONTINUE END C----------------------------------------------------------------------- SUBROUTINE VSPHR1(C,S,L,M,BT,BP,LMAX) C CALCULATE VECTOR SPHERICAL HARMONIC B FIELD THETA AND PHI C FUNCTIONS BT,BP THROUGH ORDER L,M FOR COLATITUDE (THETA) C WITH COSINE C AND SINE S OF COLATITUDE C BT(L+1,M+1)= [(L-M+1) P(L+1,M) - (L+1) P(L,M) COS(THETA)] / C [SQRT(L(L+1)) SIN(THETA)] C BP(L+1,M+1)= M P(L,M) /[SQRT(L(L+1)) SIN(THETA)] C RESULT FOR GIVEN L,M SAVED IN BT AND BP AT ONE HIGHER INDEX NUM DIMENSION BT(LMAX,1),BP(LMAX,1),PLG(20,20) SAVE DATA DGTR/1.74533E-2/ IF(M.GT.L.OR.L.GT.LMAX-1) THEN WRITE(6,100) L,M,LMAX 100 FORMAT('ILLEGAL INDICIES TO VSPHER',3I6) RETURN ENDIF BT(1,1)=0 BP(1,1)=0 IF(L.EQ.0.AND.M.EQ.0) RETURN CALL LEGPL1(C,S,L+1,M,PLG,20) IF(ABS(S).LT.1.E-5) THEN IC=SIGN(1.,S) S=0 ENDIF DO 20 LL=1,L SQT=SQRT(FLOAT(LL)*(FLOAT(LL)+1)) LMX=MIN(LL,M) DO 15 MM=0,LMX IF(S.EQ.0) THEN IF(MM.NE.1) THEN BT(LL+1,MM+1)=0 BP(LL+1,MM+1)=0 ELSE BT(LL+1,MM+1)=(LL*(LL+1)*(LL+2)*.5*(IC)**(LL+2) $ -(LL+1)*C*LL*(LL+1)*.5*(IC)**(LL+1))/SQT BP(LL+1,MM+1)=MM*LL*(LL+1)*.5*(IC)**(LL+1)/SQT ENDIF ELSE BT(LL+1,MM+1)=((LL-MM+1)*PLG(LL+2,MM+1) $ -(LL+1)*C*PLG(LL+1,MM+1))/(S*SQT) BP(LL+1,MM+1)=MM*PLG(LL+1,MM+1)/(S*SQT) ENDIF 15 CONTINUE 20 CONTINUE END C----------------------------------------------------------------------- SUBROUTINE LEGPL1(C,S,L,M,PLG,LMAX) C CALCULATE LEGENDRE POLYNOMIALS PLG(L+1,M+1) THROUGH ORDER L,M C FOR COSINE C AND SINE S OF COLATITUDE DIMENSION PLG(LMAX,1) SAVE DATA DGTR/1.74533E-2/ IF(M.GT.L.OR.L.GT.LMAX-1) THEN WRITE(6,99) L,M,LMAX 99 FORMAT(1X,'ILLEGAL INDICIES TO LEGPOL',3I5) RETURN ENDIF PLG(1,1)=1. IF(L.EQ.0.AND.M.EQ.0) RETURN C CALCULATE L=M CASE AND L=M+1 DO 10 MM=0,M IF(MM.GT.0) PLG(MM+1,MM+1)=PLG(MM,MM)*(2.*MM-1.)*S IF(L.GT.MM) PLG(MM+2,MM+1)=PLG(MM+1,MM+1)*(2.*MM+1)*C 10 CONTINUE IF(L.EQ.1) RETURN MMX=MIN(M,L-2) DO 30 MM=0,MMX DO 20 LL=MM+2,L PLG(LL+1,MM+1)=((2.*LL-1.)*C*PLG(LL,MM+1)- $ (LL+MM-1.)*PLG(LL-1,MM+1))/(LL-MM) 20 CONTINUE 30 CONTINUE RETURN END C----------------------------------------------------------------------- SUBROUTINE SPLINE(X,Y,N,YP1,YPN,Y2) C CALCULATE 2ND DERIVATIVES OF CUBIC SPLINE INTERP FUNCTION C X,Y: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X C N: SIZE OF ARRAYS X,Y C YP1,YPN: SPECIFIED DERIVATIVES AT X(1) AND X(N); VALUES C >= 1E30 SIGNAL SIGNAL SECOND DERIVATIVE ZERO C Y2: OUTPUT ARRAY OF SECOND DERIVATIVES PARAMETER (NMAX=100) DIMENSION X(N),Y(N),Y2(N),U(NMAX) SAVE IF(YP1.GT..99E30) THEN Y2(1)=0 U(1)=0 ELSE Y2(1)=-.5 U(1)=(3./(X(2)-X(1)))*((Y(2)-Y(1))/(X(2)-X(1))-YP1) ENDIF DO 11 I=2,N-1 SIG=(X(I)-X(I-1))/(X(I+1)-X(I-1)) P=SIG*Y2(I-1)+2. Y2(I)=(SIG-1.)/P U(I)=(6.*((Y(I+1)-Y(I))/(X(I+1)-X(I))-(Y(I)-Y(I-1)) $ /(X(I)-X(I-1)))/(X(I+1)-X(I-1))-SIG*U(I-1))/P 11 CONTINUE IF(YPN.GT..99E30) THEN QN=0 UN=0 ELSE QN=.5 UN=(3./(X(N)-X(N-1)))*(YPN-(Y(N)-Y(N-1))/(X(N)-X(N-1))) ENDIF Y2(N)=(UN-QN*U(N-1))/(QN*Y2(N-1)+1.) DO 12 K=N-1,1,-1 Y2(K)=Y2(K)*Y2(K+1)+U(K) 12 CONTINUE RETURN END C----------------------------------------------------------------------- SUBROUTINE SPLINT(XA,YA,Y2A,N,X,Y) C CALCULATE CUBIC SPLINE INTERP VALUE C XA,YA: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X C Y2A: ARRAY OF SECOND DERIVATIVES C N: SIZE OF ARRAYS XA,YA,Y2A C X: ABSCISSA FOR INTERPOLATION C Y: OUTPUT VALUE DIMENSION XA(N),YA(N),Y2A(N) SAVE KLO=1 KHI=N 1 CONTINUE IF(KHI-KLO.GT.1) THEN K=(KHI+KLO)/2 IF(XA(K).GT.X) THEN KHI=K ELSE KLO=K ENDIF GOTO 1 ENDIF H=XA(KHI)-XA(KLO) IF(H.EQ.0) WRITE(6,*) 'BAD XA INPUT TO SPLINT' A=(XA(KHI)-X)/H B=(X-XA(KLO))/H Y=A*YA(KLO)+B*YA(KHI)+ $ ((A*A*A-A)*Y2A(KLO)+(B*B*B-B)*Y2A(KHI))*H*H/6. RETURN END C----------------------------------------------------------------------- BLOCK DATA INITW5 C For wind model GWS COMMON/CSW/SW(25),ISW,SWC(25) COMMON/VPOLY2/XVL,LVL,MVL,CLAT,SLAT,BT(20,20),BP(20,20) COMMON/LTCOMP/TLL,NSVL,CSTL,SSTL,C2STL,S2STL,C3STL,S3STL COMMON/LGCOMP/XLL,NGVL,CLONG,SLONG,C2LONG,S2LONG DATA ISW/0/ DATA XVL/-999./,LVL/-1/,MVL/-1/ DATA TLL/-999./,NSVL/-1/ DATA XLL/-999./,NGVL/-1/ END C----------------------------------------------------------------------- BLOCK DATA GWSBK5 C HWM93 28-JAN-93 COMMON/PARMW5/PBA1(50),PBA2(50),PBA3(50),PBA4(50), $PCA1(50),PCA2(50),PCA3(50),PCA4(50), $PBB1(50),PBB2(50),PBB3(50),PCB1(50),PCB2(50),PCB3(50), $PBC1(50),PBC2(50),PBC3(50),PCC1(50),PCC2(50),PCC3(50), $PBD1(50),PBD2(50),PBD3(50),PCD1(50),PCD2(50),PCD3(50), $PBE1(50),PBE2(50),PBE3(50),PCE1(50),PCE2(50),PCE3(50), $PBF1(50),PBF2(50),PBF3(50),PCF1(50),PCF2(50),PCF3(50), $PBG1(50),PBG2(50),PBG3(50),PCG1(50),PCG2(50),PCG3(50), $PBH1(50),PBH2(50),PBH3(50),PCH1(50),PCH2(50),PCH3(50), $PBI1(50),PBI2(50),PCI1(50),PCI2(50),PBJ1(50),PBJ2(50), $PCJ1(50),PCJ2(50),PBK1(50),PBK2(50),PCK1(50),PCK2(50), $PBL1(50),PBL2(50),PCL1(50),PCL2(50),PBM1(50),PBM2(50), $PCM1(50),PCM2(50),PBN1(50),PBN2(50),PCN1(50),PCN2(50), $PBO1(50),PBO2(50),PCO1(50),PCO2(50),PBP1(50),PBP2(50), $PCP1(50),PCP2(50),PBQ1(50),PBQ2(50),PCQ1(50),PCQ2(50), $PBR1(50),PBR2(50),PCR1(50),PCR2(50),PBS1(50),PBS2(50), $PCS1(50),PCS2(50),PBT1(50),PBT2(50),PCT1(50),PCT2(50), $PBU1(50),PBU2(50),PCU1(50),PCU2(50) COMMON/DATW/ISDATE(3),ISTIME(2),NAME(2) CHARACTER*4 :: ISDATE,ISTIME,NAME DATA ISDATE/'28-J','AN-9','3 '/,ISTIME/'20:3','5:39'/ DATA NAME/'HWM9','3 '/ C WINF DATA PBA1/ * 0.00000E+00,-1.31640E+01,-1.52352E+01, 1.00718E+02, 3.94962E+00, * 2.19452E-01, 8.03296E+01,-1.02032E+00,-2.02149E-01, 5.67263E+01, * 0.00000E+00,-6.05459E+00, 6.68106E+00,-8.49486E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 8.39399E+01, 0.00000E+00, 9.96285E-02, * 0.00000E+00,-2.66243E-02, 0.00000E+00,-1.32373E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 3.36523E+01,-7.42795E-01,-3.89352E+00,-7.81354E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.76631E+00,-1.22024E+00, * -5.47580E-01, 1.09146E+00, 9.06245E-01, 2.21119E-02, 0.00000E+00, * 7.73919E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBA2/ * -3.82415E-01, 0.00000E+00, 1.76202E-01, 0.00000E+00,-6.77651E-01, * 1.10357E+00, 2.25732E+00, 0.00000E+00, 1.54237E+04, 0.00000E+00, * 1.27411E-01,-2.84314E-03, 4.62562E-01,-5.34596E+01,-7.23808E+00, * 0.00000E+00, 0.00000E+00, 4.52770E-01,-8.50922E+00,-2.85389E-01, * 2.12000E+01, 6.80171E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -2.72552E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.64109E+03, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.47320E+00,-2.98179E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.05412E-02, * 4.93452E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 7.98332E-02,-5.30954E+01, 2.10211E-02, 3.00000E+00/ DATA PBA3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.79843E-01, * 1.81152E-01, 0.00000E+00, 0.00000E+00,-6.24673E-02,-5.37589E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.94418E-02, 3.70413E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.84645E+00, * 4.24178E-01, 0.00000E+00, 0.00000E+00, 1.86494E-01,-9.56931E-02/ DATA PBA4/ * 2.08426E+00, 1.53714E+00,-2.87496E-01, 4.06380E-01,-3.59788E-01, * -1.87814E-01, 0.00000E+00, 0.00000E+00, 2.01362E-01,-1.21604E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.86304E+00, * 2.51878E+00, 2.91455E+00, 4.32308E+00, 6.77054E-02,-2.39125E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.57976E+00,-5.44598E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -5.30593E-01,-5.02237E-01,-2.05258E-01, 2.62263E-01,-2.50195E-01, * 4.28151E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C WINF DATA PCA1/ * 0.00000E+00, 1.31026E+01,-4.93171E+01, 2.51045E+01,-1.30531E+01, * 6.56421E-01, 2.75633E+01, 4.36433E+00, 1.04638E+00, 5.77365E+01, * 0.00000E+00,-6.27766E+00, 2.33010E+00,-1.41351E+01, 2.49653E-01, * 0.00000E+00, 0.00000E+00, 8.00000E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 1.03817E-02,-1.70950E+01,-1.92295E+00, 0.00000E+00, * 0.00000E+00,-1.17490E+01,-7.14788E-01, 6.72649E+00, 0.00000E+00, * 0.00000E+00,-1.57793E+02,-1.70815E+00,-7.92416E+00,-1.67372E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.87973E-01, * -1.61602E-01,-1.13832E-01,-7.22447E-01, 2.21119E-02, 0.00000E+00, * -3.01967E+00,-1.72798E-01,-5.15055E-03,-1.23477E-02, 3.60805E-03/ DATA PCA2/ * -1.36730E+00, 0.00000E+00, 1.24390E-02, 0.00000E+00,-1.36577E+00, * 3.18101E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.39334E+01, * 1.42088E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.72219E+00, * -7.47970E+00,-4.96528E+00, 0.00000E+00, 1.24712E+00,-2.56833E+01, * -4.26630E+01, 3.92431E+04,-2.57155E+00,-4.35589E-02, 0.00000E+00, * 0.00000E+00, 2.02425E+00,-1.48131E+00,-7.72242E-01, 2.99008E+04, * 4.50148E-03, 5.29718E-03,-1.26697E-02, 3.20909E-02, 0.00000E+00, * 0.00000E+00, 7.01739E+00, 3.11204E+00, 0.00000E+00, 0.00000E+00, * -2.13088E+00, 1.32789E+01, 5.07958E+00, 7.26537E-02, 2.87495E-01, * 9.97311E-03,-2.56440E+00, 0.00000E+00, 0.00000E+00, 3.00000E+00/ DATA PCA3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-9.90073E-03,-3.27333E-02, * -4.30379E+01,-2.87643E+01,-5.91793E+00,-1.50460E+02, 0.00000E+00, * 0.00000E+00, 6.55038E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.18051E-03, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.40484E+00, 5.54554E+00, 0.00000E+00, 0.00000E+00, 7.93810E+00, * 1.57192E+00, 1.03971E+00, 9.88279E-01,-4.37662E-02,-2.15763E-02/ DATA PCA4/ * -2.31583E+00, 4.32633E+00,-1.12716E+00, 3.38459E-01, 4.66956E-01, * 7.18403E-01, 5.80836E-02, 4.12653E-01, 1.04111E-01,-8.30672E-02, * -5.55541E+00,-4.97473E+00,-2.03007E+01, 0.00000E+00,-6.06235E-01, * -1.73121E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 9.29850E-02,-6.38131E-02, * 3.93037E-02, 5.21942E-02, 2.26578E-02, 4.13157E-02, 0.00000E+00, * 6.28524E+00, 4.43721E+00,-4.31270E+00, 2.32787E+00, 2.55591E-01, * 1.60098E+00,-1.20649E+00, 3.05042E+00,-1.88944E+00, 5.35561E+00, * 2.02391E-01, 4.62950E-02, 3.39155E-01, 7.94007E-02, 6.30345E-01, * 1.93554E-01, 3.93238E-01, 1.76254E-01,-2.51359E-01,-7.06879E-01/ C UGN1(1) DATA PBB1/ * 6.22831E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 5.90566E+00, 0.00000E+00, 0.00000E+00,-3.20571E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.30368E-01, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.40657E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-4.80790E+00,-1.62744E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBB2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBB3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.10531E-01, * -8.94829E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UGN1(1) DATA PCB1/ * 5.45009E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -3.60304E+00, 0.00000E+00, 0.00000E+00,-5.04071E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.62113E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.14657E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 4.65483E-01, 1.73636E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCB2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCB3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.30769E-01, * 7.73649E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(1) DATA PBC1/ * 6.09940E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBC2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBC3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(1) DATA PCC1/ * 5.46739E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCC2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCC3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(2) DATA PBD1/ * 4.99007E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 2.59994E+00, 0.00000E+00, 0.00000E+00,-1.78418E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.24986E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.77918E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBD2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBD3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.68996E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(2) DATA PCD1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -7.26156E+00, 0.00000E+00, 0.00000E+00,-4.12416E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.88934E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.65720E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCD2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCD3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.01835E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(3) DATA PBE1/ * 0.00000E+00,-1.37217E+01, 0.00000E+00, 2.38712E-01,-3.92230E+00, * 6.11035E+00,-1.57794E+00,-5.87709E-01, 1.21178E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.23202E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-2.22836E+03, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.94006E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.99844E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.38936E+00, 2.22534E+00, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBE2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBE3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 4.35518E-01, 8.40051E-01, 0.00000E+00,-8.88181E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.81729E-01, 9.67536E-01, * 0.00000E+00,-9.67836E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(3) DATA PCE1/ * 0.00000E+00,-2.75655E+01,-6.61134E+00, 4.85118E+00, 8.15375E-01, * -2.62856E+00, 2.99508E-02,-2.00532E-01,-9.35618E+00, 1.17196E+01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-2.43848E+00, 1.90065E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-3.37525E-01, 1.76471E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCE2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCE3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-9.23682E-01,-8.84150E-02, 0.00000E+00,-9.88578E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.00747E+00,-1.07468E-02, * 0.00000E+00,-3.66376E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(4) DATA PBF1/ * 0.00000E+00, 1.02709E+01, 0.00000E+00,-1.42016E+00,-4.90438E+00, * -9.11544E+00,-3.80570E+00,-2.09013E+00, 1.32939E+01,-1.28062E+01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.23024E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 3.92126E+02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00,-5.56532E+00,-1.27046E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-3.03553E+00,-9.09832E-01, 2.21119E-02, 0.00000E+00, * 8.89965E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBF2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 9.19210E-01, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBF3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-2.46693E-01, 7.44650E-02, 3.84661E-01, 9.44052E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.25083E-01, 1.54206E-01, * 4.41303E-01, 8.74742E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(4) DATA PCF1/ * 0.00000E+00, 3.61143E+00,-8.24679E+00, 1.70751E+00, 1.16676E+00, * 6.24821E+00,-5.68968E-01, 8.53046E-01,-6.94168E+00, 1.04152E+01, * -3.70861E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.23336E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.33958E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-6.43682E-01,-1.00000E+00, 0.00000E+00, * 0.00000E+00,-1.00000E+00, 0.00000E+00,-5.47300E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-8.58764E-01, 4.72310E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCF2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCF3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 3.37325E-01,-3.57698E-02,-6.97393E-01, 1.35387E+01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.78162E-01,-2.33383E-01, * -7.12994E-01, 1.29234E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(5) DATA PBG1/ * 0.00000E+00,-1.71856E+00, 5.32877E+00, 5.33548E-01,-2.66034E+00, * 6.76192E-01, 2.25618E+00,-5.78954E-01,-2.69685E+00, 1.21933E+00, * -6.13650E+00, 7.79531E-01, 1.63652E+00, 3.63835E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 7.51539E+00,-5.27337E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.06625E-01, 1.39396E-02, * 0.00000E+00, 0.00000E+00,-1.07240E+00,-8.31257E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.04016E-01, 0.00000E+00, * 7.56158E-01,-4.21268E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 1.02843E+00, 5.21034E-01, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBG2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 4.12504E+00, 1.08459E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -3.16261E-01, 0.00000E+00,-1.44288E-01, 0.00000E+00, 4.00000E+00/ DATA PBG3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.36181E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN1(5) DATA PCG1/ * 0.00000E+00, 3.47155E+00, 1.76102E+01, 2.80371E+00,-2.08556E+00, * 1.10473E+00, 6.74582E+00,-5.75988E-01, 1.02708E+00,-2.23381E+01, * 8.60171E+00, 5.12046E-01,-8.12861E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 9.11036E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 3.89742E+00, 2.01725E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 5.06308E-01, 2.04596E-01, 0.00000E+00, * 4.40377E+00, 0.00000E+00, 0.00000E+00, 2.20760E+00, 0.00000E+00, * -1.36478E+00, 2.38097E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-7.08949E-02,-1.61277E-01, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCG2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-2.16898E+00,-5.31596E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 2.53060E+00, 0.00000E+00,-7.17287E-01, 0.00000E+00, 4.00000E+00/ DATA PCG3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.91762E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UGN1(2 DATA PBH1/ * 0.00000E+00,-7.70936E-01, 1.58158E+00, 3.61790E+00,-1.51748E+00, * -5.66098E-01, 1.69393E+00,-4.60489E-01,-8.31527E-01,-4.66437E-01, * -1.21750E+00, 0.00000E+00, 0.00000E+00, 1.56505E+02, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-5.19321E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.39396E-02, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 3.09223E-01, 1.33715E-01, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBH2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PBH3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UGN1(2) DATA PCH1/ * 0.00000E+00, 1.72324E-01, 3.08033E-01, 4.55771E-01, 1.46516E-01, * 1.97176E-01,-1.53329E-01, 6.91877E-02,-3.07184E-01, 2.65686E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-2.24369E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 4.04079E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 4.99627E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-7.83317E-03,-6.88967E-02, 2.21119E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCH2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.00000E+00/ DATA PCH3/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ C UN2(2) DATA PBI1/ * 0.00000E+00,-7.99767E-01,-3.24774E-01, 7.70975E-01, 6.71796E-01, * 5.65483E-01,-2.99727E+00, 3.32448E+00,-9.15018E-01, 5.97656E+00, * 0.00000E+00,-1.19515E+00,-8.30457E-01, 3.26074E+00, 0.00000E+00, * 0.00000E+00,-1.58365E+00, 7.44825E-02, 5.91372E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.41511E-01,-3.01048E+00, * 2.35960E+01, 0.00000E+00,-1.70352E+00,-2.39746E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.30488E+00, 0.00000E+00, * 5.95132E-01, 5.64301E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 5.30317E-01, 5.66569E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBI2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 5.72367E+00, 1.58411E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.04557E-01, 0.00000E+00,-2.04710E-01, 0.00000E+00, 5.00000E+00/ C UN2(2) DATA PCI1/ * 0.00000E+00, 6.34487E+00, 9.84162E+00, 3.42136E+00,-5.10607E+00, * -8.58745E-02, 3.11501E+00, 5.34570E-01, 1.18027E+00, 4.28027E+00, * 4.75123E+00, 6.40947E-01,-4.15165E+00,-1.38154E+01, 0.00000E+00, * 0.00000E+00, 1.13145E+01,-5.15954E+00, 0.00000E+00, 0.00000E+00, * 1.35576E+01, 0.00000E+00,-5.78982E+00,-2.22043E+00, 3.36776E+00, * 3.04791E+01, 0.00000E+00, 2.94709E+00,-4.17536E-01,-1.59855E+00, * -2.18320E+00, 1.68269E+01, 0.00000E+00, 1.00829E+00, 0.00000E+00, * -6.85096E-01, 2.07822E-01, 3.50168E-01,-3.03662E+01, 0.00000E+00, * 0.00000E+00,-1.65726E-01,-8.97831E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-5.24159E+00, 0.00000E+00,-3.52218E+00/ DATA PCI2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 5.69093E-01,-7.44918E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 2.10865E+00, 0.00000E+00, 1.76776E-01, 1.54755E+00, 5.00000E+00/ C UN2(3) DATA PBJ1/ * 0.00000E+00, 2.28657E+00, 4.96548E-01, 6.99915E+00,-2.31540E+00, * -1.82163E-01,-5.00779E-01, 3.18199E-01,-6.14645E-01, 6.34816E+00, * 0.00000E+00, 7.94635E-01,-5.55565E-01, 3.85494E+00, 0.00000E+00, * 0.00000E+00,-3.96109E+00, 1.90775E-01, 4.51396E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.04618E-01,-4.14385E+00, * 2.30244E+01, 0.00000E+00, 1.00689E+00, 5.75680E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.56741E-01, 0.00000E+00, * 9.54921E-02, 5.56659E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 1.38503E-01, 4.50415E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBJ2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 2.22813E-01,-8.63549E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.37970E-01, 0.00000E+00,-3.25612E-01, 0.00000E+00, 5.00000E+00/ C UN2(3) DATA PCJ1/ * 0.00000E+00, 5.07608E+00, 3.31479E+00, 3.01548E-01,-1.12100E+00, * -7.63711E-02, 2.29748E+00,-1.36699E+00, 7.53433E-01, 3.60702E+01, * -1.55266E+00, 1.47382E+00,-2.53895E+00,-1.47720E+01, 0.00000E+00, * 0.00000E+00, 1.11787E+01,-1.06256E+01, 0.00000E+00, 0.00000E+00, * 7.86391E+00, 0.00000E+00,-8.61020E+00,-1.59313E+00,-5.17013E+00, * 1.20468E+00, 0.00000E+00, 5.76509E-01, 9.96195E-01,-1.45539E+00, * -1.79950E+01, 8.76957E+00, 0.00000E+00,-1.22863E+00, 0.00000E+00, * -6.19019E-01,-1.09571E-01,-4.31325E-02,-4.21981E+01, 0.00000E+00, * 0.00000E+00,-1.51519E-01,-1.24067E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-6.39248E+00, 0.00000E+00, 6.64508E-01/ DATA PCJ2/ * -7.33184E-01,-9.72031E-03, 1.36789E+00,-8.62311E-01,-3.06395E-03, * 2.53354E-01,-2.40918E-01,-4.06932E-02,-5.82223E-01, 0.00000E+00, * -8.70285E-01, 7.72318E-01,-6.54213E-01,-2.19231E+01,-1.56509E-01, * 2.71745E-01, 5.93538E-01, 2.27757E-01,-5.98215E-01, 3.96457E-01, * 2.98705E-01, 1.78618E-01,-5.24538E-01, 1.16439E-01, 7.56829E-02, * -4.26809E-01, 5.77187E-01, 8.65450E-01,-7.53614E-01, 1.38381E-01, * -1.82265E-01, 2.85263E-01, 4.51322E-01, 1.02775E-01, 3.55731E-01, * -4.60896E-01,-3.13037E+01,-2.70818E+00,-7.84847E-01, 0.00000E+00, * -1.03473E-01,-3.87649E-01,-1.22613E-01, 0.00000E+00, 0.00000E+00, * 8.91325E-01, 0.00000E+00, 1.06189E-01, 9.13030E-02, 5.00000E+00/ C UN2(4) DATA PBK1/ * 0.00000E+00, 2.94921E+00, 2.79238E+00, 2.58949E+00, 3.56459E-01, * 3.12952E-01, 3.34337E+00,-2.83209E+00,-1.05979E+00, 3.92313E+00, * 0.00000E+00, 1.73703E-01,-3.23441E-01, 4.15836E+00, 0.00000E+00, * 0.00000E+00,-1.77156E+00, 6.44113E-01, 1.88743E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.64778E-01,-4.23560E+00, * 2.27271E+01, 0.00000E+00,-4.89468E-01, 1.82689E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.38217E-02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 8.62449E-02, 4.46041E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBK2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-1.40393E-01, 1.01821E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(4) DATA PCK1/ * 0.00000E+00, 6.04465E+00, 4.50924E+00, 3.84425E-02,-8.70772E-01, * -9.55408E-02, 2.28287E+00,-4.37834E-01, 3.57839E-01, 7.20721E+01, * -4.41757E+00,-9.13648E-01,-8.71866E-01,-6.26173E+00, 0.00000E+00, * 0.00000E+00, 5.92817E+00, 6.15853E+00, 0.00000E+00, 0.00000E+00, * -4.89060E+00, 0.00000E+00,-8.30378E+00, 1.07462E-01, 1.08471E+02, * 3.39150E+01,-4.57863E+00,-7.18349E-02,-2.71703E-01,-8.96297E+00, * -2.37986E+01, 4.11880E+00, 0.00000E+00,-9.95820E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-8.91622E+00,-6.85950E+01, 0.00000E+00, * 0.00000E+00,-3.62769E-02,-1.65893E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-2.94563E+00, 0.00000E+00, 1.23581E+00/ DATA PCK2/ * -6.06026E-01,-6.50229E-01, 1.91330E+00,-1.00314E+00, 1.13346E-01, * 4.21885E-01,-3.97688E-01,-2.77437E-01,-6.65893E-01, 0.00000E+00, * -1.37646E+00, 1.35171E+00,-9.55595E-01,-1.96450E+01,-2.50039E-01, * 5.93389E-01, 9.87131E-01, 5.43559E-01,-1.04322E+00, 6.32546E-01, * 3.73259E-01, 5.22657E-01,-5.81400E-01,-1.26425E-01,-1.29843E-01, * -5.36598E-01, 8.02402E-01, 9.04347E-01,-1.10799E+00, 1.24800E-01, * 1.62487E-02, 2.84237E-01,-1.68866E+00, 5.07723E-01, 5.14161E-01, * -4.71292E-01,-3.03487E+01, 4.17455E-01,-1.12591E+00, 0.00000E+00, * -3.03544E-01,-6.60313E-01,-1.48606E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.00607E+01, 5.00000E+00/ C UN2(5) DATA PBL1/ * 0.00000E+00, 2.52207E+00, 3.84550E+00, 1.68023E+00, 7.93489E-01, * 3.93725E-02,-2.79707E+00,-4.76621E-01,-1.19972E-01, 3.20454E-01, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.17146E+00, 0.00000E+00, * 0.00000E+00,-5.30699E-01, 9.14373E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-4.84434E-02, 1.85902E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBL2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(5) DATA PCL1/ * 0.00000E+00, 1.55386E+01, 4.21418E+00,-9.70151E-01,-8.77326E-01, * 2.65813E-02, 1.40164E+00,-9.03874E-01, 3.17281E-03, 9.26891E+01, * -4.96004E+00, 0.00000E+00, 0.00000E+00,-4.17851E+00, 0.00000E+00, * 0.00000E+00,-1.14760E+01, 2.67744E+00, 0.00000E+00, 0.00000E+00, * -1.60056E+01, 0.00000E+00,-7.14647E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-2.89639E+00, 0.00000E+00, 0.00000E+00,-3.88601E+00, * -1.65784E+01, 8.44796E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-3.75324E+00,-6.24047E+01, 0.00000E+00, * 0.00000E+00,-2.86808E-02,-1.95891E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-3.10534E-01, 0.00000E+00,-3.37448E+00/ DATA PCL2/ * 1.63964E-02,-1.45191E+00, 1.85618E+00,-9.61979E-01, 3.93783E-01, * 4.21681E-01,-5.30254E-01,-2.96232E-01,-7.55211E-01, 0.00000E+00, * -1.85443E+00, 1.88047E+00,-1.07818E+00,-1.35373E+01,-3.05785E-01, * 7.82159E-01, 1.32586E+00, 2.34413E-01,-7.47152E-01, 9.92893E-01, * -2.80110E-02, 3.61747E-01,-4.16280E-01,-3.46427E-01,-5.76431E-01, * -2.13906E-01, 9.51184E-01, 3.69403E-01,-1.35563E+00, 6.59534E-02, * 1.39764E-01, 4.50687E-01,-1.22025E+00, 5.73280E-02, 7.49303E-01, * -8.37947E-01,-3.01332E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -4.36697E-01,-7.76068E-01,-1.41680E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.21958E+01, 5.00000E+00/ C UN2(6) DATA PBM1/ * 0.00000E+00, 3.13842E+00,-8.20417E-01, 3.72282E+00,-5.20477E-01, * -3.61867E-01,-2.92604E+00, 3.13013E-01,-1.38865E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.30060E+01, 0.00000E+00, * 0.00000E+00, 1.67696E+00, 9.85990E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-8.46922E-02, 5.59429E-03, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBM2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(6) DATA PCM1/ * 0.00000E+00, 1.78539E+01, 1.07314E+01,-1.13212E+00, 1.59867E-02, * 1.53736E-01, 2.25710E+00,-9.39080E-01,-9.72620E-02, 9.89789E+01, * -5.17469E+00, 0.00000E+00, 0.00000E+00,-2.98597E+00, 0.00000E+00, * 0.00000E+00,-2.04707E+01, 4.92899E+00, 0.00000E+00, 0.00000E+00, * -1.44316E+01, 0.00000E+00,-3.31557E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-6.22743E+00, 0.00000E+00, 0.00000E+00,-4.34344E+00, * -8.29640E+00,-3.03800E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 2.79387E+00,-5.23752E+01, 0.00000E+00, * 0.00000E+00,-2.59963E-02,-1.73426E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-5.37220E+00, 0.00000E+00,-6.53478E-01/ DATA PCM2/ * 3.48181E-01,-1.88980E+00, 1.47787E+00,-7.92670E-01, 6.49224E-01, * 5.96079E-01,-1.04901E+00,-5.24003E-01,-6.77311E-01, 0.00000E+00, * -2.26873E+00, 2.80910E+00,-9.84994E-01,-6.79661E+00,-3.71975E-01, * 1.13310E+00, 1.57164E+00, 2.15176E-01,-5.58583E-01, 1.16045E+00, * 2.05395E-02, 2.27714E-01, 1.41203E-01,-3.92231E-01,-8.82859E-01, * 4.90400E-01, 1.14013E+00,-2.25250E-01,-1.64930E+00, 5.73434E-02, * 1.89857E-01, 4.31221E-01,-1.35345E+00,-2.94189E-01, 6.87530E-01, * -7.78284E-01,-2.88975E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -3.98115E-01,-7.40699E-01,-8.28264E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.02069E+00, 5.00000E+00/ C UN2(7) DATA PBN1/ * 0.00000E+00, 2.08818E+00,-1.96235E+00, 4.55317E+00,-1.76012E+00, * -4.75258E-01,-1.44220E+00,-3.28566E-01,-1.41177E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.49146E+01, 0.00000E+00, * 0.00000E+00, 1.73222E+00, 9.91286E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.35468E-01, 1.91833E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBN2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(7) DATA PCN1/ * 0.00000E+00, 1.25645E+01, 2.43937E+01,-4.89691E-01,-5.46437E-01, * 1.22200E-01, 2.89309E+00,-2.85509E-01,-2.27122E-01, 9.54192E+01, * -4.07394E+00, 0.00000E+00, 0.00000E+00,-3.04354E+00, 0.00000E+00, * 0.00000E+00,-2.36547E+01, 1.04903E+01, 0.00000E+00, 0.00000E+00, * -8.32274E+00, 0.00000E+00,-3.34712E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-7.95953E+00, 0.00000E+00, 0.00000E+00,-5.83474E+00, * -1.48074E+00, 1.02268E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 6.19470E+00,-3.90767E+01, 0.00000E+00, * 0.00000E+00,-3.58136E-03, 1.22289E-03, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-8.49787E+00, 0.00000E+00,-3.97498E+00/ DATA PCN2/ * 3.79580E-01,-1.93595E+00, 2.89114E+00,-4.73457E-01, 7.67548E-01, * 5.66859E-01,-1.28683E+00,-8.37174E-01,-3.48022E-01, 0.00000E+00, * -2.62865E+00, 3.50575E+00,-7.93257E-01,-8.10692E-01,-4.99450E-01, * 1.56654E+00, 1.63039E+00, 7.58900E-02,-4.30952E-01, 1.23068E+00, * 1.06404E-01, 4.73870E-02, 5.50559E-01,-4.11375E-01,-9.94162E-01, * 1.35025E+00, 1.26053E+00,-7.34502E-01,-2.01952E+00, 2.05398E-01, * -4.77248E-02, 2.41549E-01,-9.32522E-01,-5.63663E-01, 5.34833E-01, * -5.77563E-01,-2.65033E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -2.42317E-01,-7.33679E-01,-7.85537E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.56842E-01, 5.00000E+00/ C UN2(8) DATA PBO1/ * 0.00000E+00, 7.00409E-01,-4.17017E-01, 3.24757E+00,-1.28352E+00, * -4.23875E-01, 1.64346E+00,-1.20855E+00,-7.65316E-01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.39417E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 2.68534E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.56444E-01,-4.60043E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBO2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(8) DATA PCO1/ * 0.00000E+00, 7.30129E+00, 3.14811E+01,-7.06834E-02,-2.96193E-01, * 1.73817E-01, 1.62127E+00,-2.71556E-01,-2.05844E-01, 8.02088E+01, * -1.86956E-01, 0.00000E+00, 0.00000E+00,-9.43641E-01,-3.24716E+00, * 0.00000E+00,-2.32748E+01, 1.96724E+01, 0.00000E+00, 0.00000E+00, * -3.95949E+00, 0.00000E+00, 5.44787E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.00161E+01, 0.00000E+00, 0.00000E+00,-4.57422E+00, * 4.31304E+00, 1.49868E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 5.99489E+00,-2.82120E+01, 0.00000E+00, * 0.00000E+00, 4.03624E-02, 1.19463E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-1.39050E+01, 0.00000E+00,-2.65634E+00/ DATA PCO2/ * 6.37036E-01,-1.77461E+00, 3.03103E+00,-1.49839E-01, 7.02027E-01, * 6.08841E-01,-9.27289E-01,-8.52362E-01, 5.61723E-01, 0.00000E+00, * -2.72061E+00, 3.66183E+00,-2.54943E-01, 2.94668E+00,-3.57898E-01, * 1.71858E+00, 1.58782E+00,-2.42995E-01,-3.57783E-01, 1.20157E+00, * 2.58895E-01,-1.05773E-01, 5.79397E-01,-3.30395E-01,-4.03569E-01, * 1.99175E+00, 1.21688E+00,-8.64350E-01,-1.95569E+00, 4.61136E-01, * -8.61382E-02, 3.38859E-01, 0.00000E+00,-5.78864E-01, 4.46659E-01, * -4.57428E-01,-1.99920E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -1.19841E-01,-4.56968E-01, 2.00180E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.07368E+00, 5.00000E+00/ C UN2(9) DATA PBP1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.75863E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 3.18522E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBP2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(9) DATA PCP1/ * 0.00000E+00, 4.61019E-02, 3.50615E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.15349E+01, * 4.28634E+00, 0.00000E+00, 0.00000E+00, 6.03982E+00,-4.72305E+00, * 0.00000E+00,-1.43678E+01, 3.62580E+01, 0.00000E+00, 0.00000E+00, * 1.26574E+00, 0.00000E+00,-2.77285E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.14802E+01, 0.00000E+00, 0.00000E+00,-1.11940E+01, * -1.39535E+00, 2.63070E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-1.53024E+00,-2.14609E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-1.26956E+01, 0.00000E+00, 5.49926E+00/ DATA PCP2/ * 9.80142E-01,-1.19016E+00, 2.75110E+00, 4.23423E-01, 5.89893E-01, * 4.94288E-01,-5.25954E-01,-8.51760E-01, 1.62676E+00, 0.00000E+00, * -1.90027E+00, 3.19950E+00, 4.72739E-01, 7.04179E+00,-1.43685E-03, * 1.43219E+00, 1.32136E+00,-2.92744E-03,-3.43680E-01, 7.75735E-01, * 6.92202E-01,-1.45519E-01, 6.97813E-02,-3.11588E-01, 6.65750E-01, * 2.33809E+00, 1.06694E+00,-5.77590E-01,-1.33717E+00, 8.13367E-01, * -5.05737E-01, 5.99169E-01,-8.83386E-01,-4.38123E-01, 2.63649E-01, * -3.03448E-01,-1.28190E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.45478E-02, 1.45491E-01, 2.40080E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.86910E+00, 5.00000E+00/ C UN2(10) DATA PBQ1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.10647E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 3.13252E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBQ2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(10) DATA PCQ1/ * 0.00000E+00,-3.03260E+00, 3.15488E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.42798E+01, * 7.08849E+00, 0.00000E+00, 0.00000E+00, 1.64773E+01,-6.86505E+00, * 0.00000E+00,-6.27112E+00, 3.78373E+01, 0.00000E+00, 0.00000E+00, * 2.97763E+00, 0.00000E+00,-3.44134E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.19424E+01, 0.00000E+00, 0.00000E+00,-1.64645E+01, * -2.27053E+00, 3.82330E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 1.33140E-01,-2.08131E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-7.04687E+00, 0.00000E+00, 6.52184E+00/ DATA PCQ2/ * 7.31799E-01,-2.75395E-01, 1.92467E+00, 8.71269E-01, 3.72836E-01, * 3.04967E-01, 7.72480E-02,-5.08596E-01, 1.99828E+00, 0.00000E+00, * -5.51169E-01, 2.12420E+00, 8.96069E-01, 1.12092E+01,-4.30438E-02, * 7.38391E-01, 6.12050E-01, 3.62981E-02,-1.02054E-01, 1.82404E-01, * 3.70643E-01,-1.68899E-01,-1.79628E-01,-1.21117E-01, 1.45823E+00, * 2.04352E+00, 7.83711E-01,-3.42979E-02,-2.31363E-01, 7.11253E-01, * -3.16353E-01, 6.21069E-01,-1.05676E+00,-4.03488E-01, 4.11595E-01, * -2.12535E-01,-6.51453E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 1.48238E-01, 6.38716E-01, 2.99311E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.01846E+00, 5.00000E+00/ C UN2(11) DATA PBR1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.21764E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 6.77475E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBR2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(11) DATA PCR1/ * 0.00000E+00,-1.74115E+00, 2.66621E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.13017E+01, * 6.86985E+00, 0.00000E+00, 0.00000E+00, 2.08835E+01,-7.86030E+00, * 0.00000E+00,-3.77141E+00, 3.87788E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 1.31580E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-9.98927E+00, 0.00000E+00, 0.00000E+00,-1.71002E+01, * -9.88358E-01, 4.47756E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 5.95029E-01,-2.11313E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-3.84164E+00, 0.00000E+00, 0.00000E+00/ DATA PCR2/ * 3.07191E-01, 4.79094E-02, 6.72159E-01, 5.54185E-01, 1.82847E-01, * -1.23768E-02, 1.91637E-01,-2.89429E-02, 1.18297E+00, 0.00000E+00, * 2.37450E-01, 9.23551E-01, 6.05670E-01, 1.35990E+01,-1.64210E-01, * 5.38355E-03,-4.91246E-02,-1.06966E-01,-2.09635E-01,-3.23023E-02, * -3.41663E-02,-3.48871E-02,-2.62450E-01, 2.21492E-01, 1.43749E+00, * 1.08677E+00, 3.97778E-01, 3.61526E-01, 5.55950E-01, 3.53058E-01, * -5.93339E-02, 4.14203E-01,-6.05024E-01,-1.38714E-01, 2.78897E-01, * -8.92889E-02,-3.59033E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 9.90623E-02, 4.36170E-01, 7.95418E-02, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.11426E+00, 5.00000E+00/ C UN2(12) DATA PBS1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.07320E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 1.60738E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBS2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(12) DATA PCS1/ * 0.00000E+00, 1.26217E+01, 2.30787E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00029E+01, * -2.88682E+00, 0.00000E+00, 0.00000E+00, 2.09439E+01,-4.56923E+00, * 0.00000E+00,-2.15929E+00, 3.87149E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-7.98039E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-6.63423E+00, 0.00000E+00, 0.00000E+00,-5.84850E+00, * 3.72111E+00, 4.52300E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 3.21872E-01, 0.00000E+00, 0.00000E+00/ DATA PCS2/ * 1.09405E-02,-4.35341E-02, 8.00586E-02, 1.48577E-01, 1.01602E-01, * -1.01104E-01,-1.98993E-02, 3.51174E-02, 2.41112E-01, 0.00000E+00, * 2.76479E-01, 1.97043E-01, 2.68708E-01, 1.39832E+01,-1.56638E-01, * -2.39101E-01,-1.50605E-01,-2.17139E-01,-2.59057E-01,-4.36362E-01, * -1.43496E-01, 7.51305E-02,-2.40850E-01, 1.34858E-01, 7.59193E-01, * 3.52708E-01, 1.29922E-01, 3.27957E-01, 5.35491E-01, 1.19120E-01, * -2.94029E-02, 1.76113E-01,-6.51597E-01, 3.61575E-02, 4.26836E-02, * -2.29297E-02,-4.27373E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * -2.78548E-02, 5.77322E-02,-1.02411E-01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(13) DATA PBT1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.69447E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 2.34073E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBT2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(13) DATA PCT1/ * 0.00000E+00, 1.22096E+01, 1.92342E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.13667E+00, * -6.19078E+00, 0.00000E+00, 0.00000E+00, 2.37009E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-7.87365E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-1.12371E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-2.76047E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 1.85864E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCT2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(14) DATA PBU1/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.01008E+01, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 2.21469E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PBU2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ C UN2(14) DATA PCU1/ * 0.00000E+00,-1.40697E+00, 6.88709E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.67624E+02, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 1.58312E+01, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00,-2.46486E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00,-1.90327E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 1.13248E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00/ DATA PCU2/ * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, * 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.00000E+00/ END fluids-0.1.78/fluids/optional/hwm14.pyf0000644000175000017500000002607013632560624016440 0ustar kurtkurt! -*- f90 -*- ! Note: the context of this file is case sensitive. python module hwm14 ! in interface ! in :hwm14 module hwm ! in :hwm14:hwm14.f90 integer(kind=4), optional :: nmaxgeo=0 real(kind=8), allocatable,dimension(:,:) :: gpbar integer(kind=4), optional :: nmaxdwm=0 real(kind=8), allocatable,dimension(:,:) :: spbar real(kind=8), allocatable,dimension(:,:) :: gwbar real(kind=8), optional :: glatalf=-1.d32 real(kind=8), allocatable,dimension(:,:) :: gvbar integer(kind=4), optional :: nmaxqdc=0 integer(kind=4), optional :: omaxhwm=0 integer(kind=4), optional :: mmaxgeo=0 integer(kind=4), optional :: mmaxdwm=0 logical, optional :: hwminit=.true. real(kind=8), allocatable,dimension(:,:) :: svbar integer(kind=4), optional :: mmaxqdc=0 integer(kind=4), optional :: nmaxhwm=0 real(kind=8), allocatable,dimension(:,:) :: swbar end module hwm subroutine hwm14(iyd,sec,alt,glat,glon,stl,f107a,f107,ap,w) ! in :hwm14:hwm14.f90 use hwm integer(kind=4) intent(in) :: iyd real(kind=4) intent(in) :: sec real(kind=4) intent(in) :: alt real(kind=4) intent(in) :: glat real(kind=4) intent(in) :: glon real(kind=4) intent(in) :: stl real(kind=4) intent(in) :: f107a real(kind=4) intent(in) :: f107 real(kind=4) dimension(2),intent(in) :: ap real(kind=4) dimension(2),intent(out) :: w end subroutine hwm14 module alf ! in :hwm14:hwm14.f90 real(kind=8), allocatable,dimension(:) :: en real(kind=8), allocatable,dimension(:,:) :: bnm real(kind=8), allocatable,dimension(:) :: cm real(kind=8), allocatable,dimension(:,:) :: dnm real(kind=8), allocatable,dimension(:,:) :: anm real(kind=8), allocatable,dimension(:) :: narr real(kind=8), allocatable,dimension(:) :: marr integer(kind=4) :: nmax0 integer(kind=4) :: mmax0 subroutine alfbasis(nmax,mmax,theta,p,v,w) ! in :hwm14:hwm14.f90:alf integer(kind=4) intent(in) :: nmax integer(kind=4) intent(in) :: mmax real(kind=8) intent(in) :: theta real(kind=8) dimension(nmax + 1,mmax + 1),intent(out),depend(nmax,mmax) :: p real(kind=8) dimension(nmax + 1,mmax + 1),intent(out),depend(nmax,mmax) :: v real(kind=8) dimension(nmax + 1,mmax + 1),intent(out),depend(nmax,mmax) :: w end subroutine alfbasis subroutine initalf(nmaxin,mmaxin) ! in :hwm14:hwm14.f90:alf integer(kind=4) intent(in) :: nmaxin integer(kind=4) intent(in) :: mmaxin end subroutine initalf end module alf module qwm ! in :hwm14:hwm14.f90 integer(kind=4) :: lev real(kind=8) :: altsym integer(kind=4) :: nbf real(kind=8), optional,dimension(5) :: previous=-1.0d32 integer(kind=4) :: nnode integer(kind=4) :: maxs integer(kind=4), allocatable,dimension(:) :: nb integer(kind=4), optional :: cseason=0 logical, optional,dimension(5) :: content=.true. integer(kind=4) :: maxn integer(kind=4) :: maxo integer(kind=4) :: maxl integer(kind=4) :: maxm integer(kind=4), optional :: ctide=0 integer(kind=4), optional :: cwave=0 real(kind=8), allocatable,dimension(:,:) :: fs real(kind=8) :: altiso real(kind=8), optional,dimension(4) :: tidefactor=1.0 real(kind=8), allocatable,dimension(:) :: bm real(kind=8) :: alttns real(kind=8), allocatable,dimension(:,:) :: mparm character(len=128), optional :: qwmdefault='hwm123114.bin' real(kind=8) dimension(5) :: e1 real(kind=8), allocatable,dimension(:,:) :: fm real(kind=8), allocatable,dimension(:) :: bz real(kind=8) dimension(5) :: e2 real(kind=8), optional,dimension(4) :: wavefactor=1.0 real(kind=8), parameter,optional :: h=60.0d0 real(kind=8), allocatable,dimension(:) :: vnode integer(kind=4) :: p integer(kind=4), optional :: priornb=0 logical, optional,dimension(2) :: component=.true. real(kind=8), allocatable,dimension(:) :: zwght integer(kind=4) :: nlev logical, optional :: qwminit=.true. real(kind=8), allocatable,dimension(:,:) :: fl integer(kind=4), allocatable,dimension(:,:) :: order real(kind=8), allocatable,dimension(:,:) :: tparm end module qwm module dwm ! in :hwm14:hwm14.f90 integer(kind=4) :: nmax real(kind=4), allocatable,dimension(:,:) :: vshterms real(kind=8), parameter,optional,depend(pi) :: dtor=pi/180.d0 integer(kind=4) :: nvshterm real(kind=4) :: twidth integer(kind=4), allocatable,dimension(:,:) :: termarr real(kind=8), allocatable,dimension(:,:) :: dvbar character(len=128), parameter,optional :: dwmdefault='dwm07b104i.dat' real(kind=8), allocatable,dimension(:,:) :: mltterms real(kind=8), allocatable,dimension(:,:) :: dwbar integer(kind=4) :: mmax integer(kind=4) :: nterm real(kind=4), allocatable,dimension(:) :: coeff real(kind=4), allocatable,dimension(:,:) :: termval logical, optional :: dwminit=.true. real(kind=8), parameter,optional :: pi=3.14159265359 real(kind=8), allocatable,dimension(:,:) :: dpbar end module dwm subroutine inithwm ! in :hwm14:hwm14.f90 use alf, only: initalf use qwm use hwm use dwm end subroutine inithwm subroutine initqwm(filename) ! in :hwm14:hwm14.f90 use qwm use hwm, only: nmaxhwm,omaxhwm character*128 intent(in) :: filename end subroutine initqwm subroutine hwmqt(iyd,sec,alt,glat,glon,stl,f107a,f107,ap,w) ! in :hwm14:hwm14.f90 use alf, only: alfbasis use qwm use hwm integer intent(in) :: iyd real(kind=4) intent(in) :: sec real(kind=4) intent(in) :: alt real(kind=4) intent(in) :: glat real(kind=4) intent(in) :: glon real(kind=4) intent(in) :: stl real(kind=4) intent(in) :: f107a real(kind=4) intent(in) :: f107 real(kind=4) dimension(2),intent(in) :: ap real(kind=4) dimension(2),intent(out) :: w end subroutine hwmqt subroutine vertwght(alt,wght,iz) ! in :hwm14:hwm14.f90 use qwm real(kind=8) intent(in) :: alt real(kind=8) dimension(4),intent(out) :: wght integer(kind=4) intent(out) :: iz end subroutine vertwght subroutine initdwm(nmaxout,mmaxout) ! in :hwm14:hwm14.f90 use hwm use dwm integer(kind=4) intent(out) :: nmaxout integer(kind=4) intent(out) :: mmaxout end subroutine initdwm subroutine dwm07(iyd,sec,alt,glat,glon,ap,dw) ! in :hwm14:hwm14.f90 use hwm use dwm integer intent(in) :: iyd real(kind=4) intent(in) :: sec real(kind=4) intent(in) :: alt real(kind=4) intent(in) :: glat real(kind=4) intent(in) :: glon real(kind=4) dimension(2),intent(in) :: ap real(kind=4) dimension(2),intent(out) :: dw end subroutine dwm07 subroutine dwm07b(mlt,mlat,kp,mmpwind,mzpwind) ! in :hwm14:hwm14.f90 use alf, only: alfbasis use hwm use dwm real(kind=4) intent(in) :: mlt real(kind=4) intent(in) :: mlat real(kind=4) intent(in) :: kp real(kind=4) intent(out) :: mmpwind real(kind=4) intent(out) :: mzpwind end subroutine dwm07b function ap2kp(ap0) ! in :hwm14:hwm14.f90 real(kind=4) :: ap0 real(kind=4) :: ap2kp end function ap2kp module gd2qdc ! in :hwm14:hwm14.f90 integer(kind=4) :: nmax real(kind=8), allocatable,dimension(:) :: xcoeff real(kind=8), parameter,optional,depend(pi) :: dtor=pi/180.0d0 logical, optional :: gd2qdinit=.true. real(kind=8), allocatable,dimension(:) :: ycoeff real(kind=8), allocatable,dimension(:) :: zcoeff real(kind=4) :: alt integer(kind=4) :: mmax integer(kind=4) :: nterm real(kind=8), allocatable,dimension(:,:) :: coeff real(kind=8), parameter,optional :: sineps=0.39781868d0 real(kind=8), allocatable,dimension(:) :: shgradtheta real(kind=4) :: epoch real(kind=8), allocatable,dimension(:) :: sh real(kind=8), allocatable,dimension(:) :: normadj real(kind=8), parameter,optional :: pi=3.1415926535897932d0 real(kind=8), allocatable,dimension(:) :: shgradphi subroutine initgd2qd ! in :hwm14:hwm14.f90:gd2qdc use hwm end subroutine initgd2qd end module gd2qdc subroutine gd2qd(glatin,glon,qlat,qlon,f1e,f1n,f2e,f2n) ! in :hwm14:hwm14.f90 use alf use hwm use gd2qdc real(kind=4) intent(in) :: glatin real(kind=4) intent(in) :: glon real(kind=4) intent(out) :: qlat real(kind=4) intent(out) :: qlon real(kind=4) intent(out) :: f1e real(kind=4) intent(out) :: f1n real(kind=4) intent(out) :: f2e real(kind=4) intent(out) :: f2n end subroutine gd2qd function mltcalc(qlat,qlon,day,ut) ! in :hwm14:hwm14.f90 use alf use hwm use gd2qdc real(kind=4) intent(in) :: qlat real(kind=4) intent(in) :: qlon real(kind=4) intent(in) :: day real(kind=4) intent(in) :: ut real(kind=4) :: mltcalc end function mltcalc subroutine kpspl3(kp,kpterms) ! in :hwm14:hwm14.f90 real(kind=4) intent(in) :: kp real(kind=4) dimension(3),intent(out) :: kpterms end subroutine kpspl3 function latwgt2(mlat,mlt,kp0,twidth) ! in :hwm14:hwm14.f90 real(kind=4) :: mlat real(kind=4) :: mlt real(kind=4) :: kp0 real(kind=4) :: twidth real(kind=4) :: latwgt2 end function latwgt2 subroutine findandopen(datafile,unitid) ! in :hwm14:hwm14.f90 character*128 :: datafile integer :: unitid end subroutine findandopen end interface end python module hwm14 ! This file was auto-generated with f2py (version:2). ! See http://cens.ioc.ee/projects/f2py2e/ fluids-0.1.78/fluids/optional/dwm07b104i.dat0000644000175000017500000001136013632560624017144 0ustar kurtkurt ,       !"#$%&'()*+      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(V==+x@H@ɿ%F*@0xG?Q??>`\@S͹ھ>2>\F'@%?ۏ?Ͳ??{>`v,2l/3>X1?<>??Dn@R w6GA0$̳?ݜr @nU@_\@ͻH#[> "@'8$?@9d?pY@rN @¢K{f3@Vլ>Trm>@@s?>Z@ ,BSB?BBE<9>CvCIôBC$8CYÖg3A*A]$XCT!A"C9I7MC7ènBăC>=TaÐ6´ÒKvBb%'o7C v1 L>EBi) ö|SC QEBBoB*CтgB -*'CEMY쑼CdQpCj€lYn@!;B@B Bn{B*PBq&FBNœ,CA<Ae*@b?^@¸wB@B6nᣤB*~Ad"B]q`@,Q)BFdA̗@,ǏFY*@!Ae!aAiQ7 AzE`R;@ >IL@}@>_@]A~ʉ5@dI=riP?~S6j؋#Я@Q@!rAAFBzB@@x@Afn4j! C<ȶBٺCL9CUuNB~@ ۿ]8-†Bx3 C 0CV CJ]kxv06B_aB wmC1KA9ó<'CP0DBkB+~AIC3CBŸRBÅÌZ׬C–rZB 60 nmax0 = nmaxin mmax0 = mmaxin if (allocated(anm)) deallocate(anm, bnm, cm, dnm, en, marr, narr) allocate( anm(0:nmax0, 0:mmax0) ) allocate( bnm(0:nmax0, 0:mmax0) ) allocate( cm(0:mmax0) ) allocate( dnm(0:nmax0, 0:mmax0) ) allocate( en(0:nmax0) ) allocate( marr(0:mmax0) ) allocate( narr(0:nmax0) ) do n = 1, nmax0 narr(n) = dble(n) en(n) = dsqrt(dble(n*(n+1))) anm(n,0) = dsqrt( dble((2*n-1)*(2*n+1)) ) / narr(n) bnm(n,0) = dsqrt( dble((2*n+1)*(n-1)*(n-1)) / dble(2*n-3) ) / narr(n) end do do m = 1, mmax0 marr(m) = dble(m) cm(m) = dsqrt(dble(2*m+1)/dble(2*m*m*(m+1))) do n = m+1, nmax0 anm(n,m) = dsqrt( dble((2*n-1)*(2*n+1)*(n-1)) / dble((n-m)*(n+m)*(n+1)) ) bnm(n,m) = dsqrt( dble((2*n+1)*(n+m-1)*(n-m-1)*(n-2)*(n-1)) & / dble((n-m)*(n+m)*(2*n-3)*n*(n+1)) ) dnm(n,m) = dsqrt( dble((n-m)*(n+m)*(2*n+1)*(n-1)) / dble((2*n-1)*(n+1)) ) end do enddo return end subroutine initalf end module alf !#################################################################################### ! Model Modules !#################################################################################### module qwm implicit none integer(4) :: nbf ! Count of basis terms per model level integer(4) :: maxn ! latitude integer(4) :: maxs,maxm,maxl ! seasonal,stationary,migrating integer(4) :: maxo integer(4) :: p ! B-splines order, p=4 cubic, p=3 quadratic integer(4) :: nlev ! e.g. Number of B-spline nodes integer(4) :: nnode ! nlev + p real(8) :: alttns ! Transition 1 real(8) :: altsym ! Transition 2 real(8) :: altiso ! Constant Limit real(8) :: e1(0:4) real(8) :: e2(0:4) real(8),parameter :: H = 60.0d0 integer(4),allocatable :: nb(:) ! total number of basis functions @ level integer(4),allocatable :: order(:,:) ! spectral content @ level real(8),allocatable :: vnode(:) ! Vertical Altitude Nodes real(8),allocatable :: mparm(:,:) ! Model Parameters real(8),allocatable :: tparm(:,:) ! Model Parameters real(8) :: previous(1:5) = -1.0d32 integer(4) :: priornb = 0 real(8),allocatable :: fs(:,:),fm(:,:),fl(:,:) real(8),allocatable :: bz(:),bm(:) real(8),allocatable :: zwght(:) integer(4) :: lev integer(4) :: cseason = 0 integer(4) :: cwave = 0 integer(4) :: ctide = 0 logical :: content(5) = .true. ! Season/Waves/Tides logical :: component(0:1) = .true. ! Compute zonal/meridional character(128) :: qwmdefault = 'hwm123114.bin' logical :: qwminit = .true. real(8) :: wavefactor(4) = 1.0 real(8) :: tidefactor(4) = 1.0 end module qwm module dwm implicit none integer(4) :: nterm ! Number of terms in the model integer(4) :: nmax,mmax ! Max latitudinal degree integer(4) :: nvshterm ! # of VSH basis functions integer(4),allocatable :: termarr(:,:) ! 3 x nterm index of coupled terms real(4),allocatable :: coeff(:) ! Model coefficients real(4),allocatable :: vshterms(:,:) ! VSH basis values real(4),allocatable :: termval(:,:) ! Term values to which coefficients are applied real(8),allocatable :: dpbar(:,:) ! Associated lengendre fns real(8),allocatable :: dvbar(:,:) real(8),allocatable :: dwbar(:,:) real(8),allocatable :: mltterms(:,:) ! MLT Fourier terms real(4) :: twidth ! Transition width of high-lat mask real(8), parameter :: pi=3.1415926535897932 real(8), parameter :: dtor=pi/180.d0 logical :: dwminit = .true. character(128), parameter :: dwmdefault = 'dwm07b104i.dat' end module dwm subroutine inithwm() use hwm use qwm use dwm use alf,only:initalf implicit none integer(4) :: nmax0, mmax0 call initqwm(qwmdefault) call initdwm(nmaxdwm, mmaxdwm) nmaxgeo = max(nmaxhwm, nmaxqdc) mmaxgeo = max(omaxhwm, mmaxqdc) nmax0 = max(nmaxgeo, nmaxdwm) mmax0 = max(mmaxgeo, mmaxdwm) call initalf(nmax0,mmax0) ! shared for QWM and DWM, no need to compute twice if (allocated(gpbar)) deallocate(gpbar,gvbar,gwbar) allocate(gpbar(0:nmaxgeo,0:mmaxgeo)) allocate(gvbar(0:nmaxgeo,0:mmaxgeo)) allocate(gwbar(0:nmaxgeo,0:mmaxgeo)) gpbar = 0 gvbar = 0 gwbar = 0 if (allocated(spbar)) deallocate(spbar,svbar,swbar) allocate(spbar(0:nmaxgeo,0:mmaxgeo)) allocate(svbar(0:nmaxgeo,0:mmaxgeo)) allocate(swbar(0:nmaxgeo,0:mmaxgeo)) spbar = 0 svbar = 0 swbar = 0 hwminit = .false. return end subroutine inithwm ! ######################################################################################## ! The quiet time model functions ! ######################################################################################## !============================================================================ ! A routine to load the quiet time HWM coeffiecents into memory !============================================================================ subroutine initqwm(filename) use qwm use hwm,only:omaxhwm,nmaxhwm implicit none character(128),intent(in) :: filename integer(4) :: i,j integer(4) :: ncomp if (allocated(vnode)) then deallocate(order,nb,vnode,mparm,tparm) deallocate(fs,fm,fl,zwght,bz,bm) endif call findandopen(filename,23) read(23) nbf,maxs,maxm,maxl,maxn,ncomp read(23) nlev,p nnode = nlev + p allocate(nb(0:nnode),order(ncomp,0:nnode),vnode(0:nnode)) read(23) vnode vnode(3) = 0.0 allocate(mparm(nbf,0:nlev)) mparm = 0.0d0 do i = 0,nlev-p+1-2 read(23) order(1:ncomp,i) read(23) nb(i) read(23) mparm(1:nbf,i) enddo read(23) e1,e2 close(23) ! Calculate the parity relationship permutations allocate(tparm(nbf,0:nlev)) do i = 0,nlev-p+1-2 call parity(order(:,i),nb(i),mparm(:,i),tparm(:,i)) enddo ! Set transition levels alttns = vnode(nlev-2) altsym = vnode(nlev-1) altiso = vnode(nlev) ! Allocate the global store of quasi-static parameters maxo = max(maxs,maxm,maxl) omaxhwm = maxo nmaxhwm = maxn allocate(fs(0:maxs,2),fm(0:maxm,2),fl(0:maxl,2)) allocate(bz(nbf),bm(nbf)) allocate(zwght(0:p)) bz = 0.0d0 bm = 0.0d0 ! change the initalization flag and reset some other things previous(1:5) = -1.0d32 qwminit = .false. qwmdefault = filename return contains subroutine parity(order,nb,mparm,tparm) implicit none integer(4),intent(in) :: order(8) integer(4),intent(in) :: nb real(8),intent(inout) :: mparm(nb) real(8),intent(out) :: tparm(nb) integer(4) :: c,m,n,s,l integer(4) :: amaxs,amaxn integer(4) :: pmaxm,pmaxs,pmaxn integer(4) :: tmaxl,tmaxs,tmaxn amaxs = order(1) amaxn = order(2) pmaxm = order(3) pmaxs = order(4) pmaxn = order(5) tmaxl = order(6) tmaxs = order(7) tmaxn = order(8) c = 1 do n = 1,amaxn tparm(c) = 0.0 tparm(c+1) = -mparm(c+1) mparm(c+1) = 0.0 c = c + 2 enddo do s = 1,amaxs do n = 1,amaxn tparm(c) = 0.0 tparm(c+1) = 0.0 tparm(c+2) = -mparm(c+2) tparm(c+3) = -mparm(c+3) mparm(c+2) = 0.0 mparm(c+3) = 0.0 c = c + 4 enddo enddo do m = 1,pmaxm do n = m,pmaxn tparm(c) = mparm(c+2) tparm(c+1) = mparm(c+3) tparm(c+2) = -mparm(c) tparm(c+3) = -mparm(c+1) c = c + 4 enddo do s = 1,pmaxs do n = m,pmaxn tparm(c) = mparm(c+2) tparm(c+1) = mparm(c+3) tparm(c+2) = -mparm(c) tparm(c+3) = -mparm(c+1) tparm(c+4) = mparm(c+6) tparm(c+5) = mparm(c+7) tparm(c+6) = -mparm(c+4) tparm(c+7) = -mparm(c+5) c = c + 8 enddo enddo enddo do l = 1,tmaxl do n = l,tmaxn tparm(c) = mparm(c+2) tparm(c+1) = mparm(c+3) tparm(c+2) = -mparm(c) tparm(c+3) = -mparm(c+1) c = c + 4 enddo do s = 1,tmaxs do n = l,tmaxn tparm(c) = mparm(c+2) tparm(c+1) = mparm(c+3) tparm(c+2) = -mparm(c) tparm(c+3) = -mparm(c+1) tparm(c+4) = mparm(c+6) tparm(c+5) = mparm(c+7) tparm(c+6) = -mparm(c+4) tparm(c+7) = -mparm(c+5) c = c + 8 enddo enddo enddo return end subroutine parity end subroutine initqwm ! ------------------------------------------------------------ ! The quiet time only HWM function call ! ------------------------------------------------------------ subroutine hwmqt(IYD,SEC,ALT,GLAT,GLON,STL,F107A,F107,AP,W) use hwm use qwm use alf,only:alfbasis implicit none integer,intent(in) :: IYD real(4),intent(in) :: SEC,ALT,GLAT,GLON,STL,F107A,F107 real(4),intent(in) :: AP(2) real(4),intent(out) :: W(2) ! Local variables real(8) :: input(5) real(8) :: u,v real(8) :: cs,ss,cm,sm,cl,sl real(8) :: cmcs,smcs,cmss,smss real(8) :: clcs,slcs,clss,slss real(8) :: AA,BB,CC,DD real(8) :: vb,wb real(8) :: theta,sc integer(4) :: b,c,d,m,n,s,l integer(4) :: amaxs,amaxn integer(4) :: pmaxm,pmaxs,pmaxn integer(4) :: tmaxl,tmaxs,tmaxn logical :: refresh(5) real(8),parameter :: twoPi = 2.0d0*3.1415926535897932384626433832795d0 real(8),parameter :: deg2rad = twoPi/360.0d0 ! ==================================================================== ! Update VSH model terms based on any change in the input parameters ! ==================================================================== if (qwminit) call initqwm(qwmdefault) input(1) = dble(mod(IYD,1000)) input(2) = dble(sec) input(3) = dble(glon) input(4) = dble(glat) input(5) = dble(alt) refresh(1:5) = .false. ! Seasonal variations if (input(1) .ne. previous(1)) then AA = input(1)*twoPi/365.25d0 do s = 0,MAXS BB = dble(s)*AA fs(s,1) = dcos(BB) fs(s,2) = dsin(BB) enddo refresh(1:5) = .true. previous(1) = input(1) endif ! Hourly time changes, tidal variations if (input(2) .ne. previous(2) .or. input(3) .ne. previous(3)) then AA = mod(input(2)/3600.d0 + input(3)/15.d0 + 48.d0,24.d0) BB = AA*twoPi/24.d0 do l = 0,MAXL CC = dble(l)*BB fl(l,1) = dcos(CC) fl(l,2) = dsin(CC) enddo refresh(3) = .true. ! tides previous(2) = input(2) endif ! Longitudinal variations, stationary planetary waves if (input(3) .ne. previous(3)) then AA = input(3)*deg2rad do m = 0,MAXM BB = dble(m)*AA fm(m,1) = dcos(BB) fm(m,2) = dsin(BB) enddo refresh(2) = .true. ! stationary planetary waves previous(3) = input(3) endif ! Latitude theta = (90.0d0 - input(4))*deg2rad if (input(4) .ne. glatalf) then AA = (90.0d0 - input(4))*deg2rad ! theta = colatitude in radians call alfbasis(maxn,maxm,AA,gpbar,gvbar,gwbar) refresh(1:4) = .true. glatalf = input(4) previous(4) = input(4) endif ! Altitude if (input(5) .ne. previous(5)) then call vertwght(input(5),zwght,lev) previous(5) = input(5) endif ! ==================================================================== ! Calculate the VSH functions ! ==================================================================== u = 0.0d0 v = 0.0d0 do b = 0,p if (zwght(b) .eq. 0.d0) cycle d = b + lev if (priornb .ne. nb(d)) refresh(1:5) = .true. ! recalculate basis functions priornb = nb(d) if (.not. any(refresh)) then c = nb(d) if (component(0)) u = u + zwght(b)*dot_product(bz(1:c),mparm(1:c,d)) if (component(1)) v = v + zwght(b)*dot_product(bz(1:c),tparm(1:c,d)) cycle endif amaxs = order(1,d) amaxn = order(2,d) pmaxm = order(3,d) pmaxs = order(4,d) pmaxn = order(5,d) tmaxl = order(6,d) tmaxs = order(7,d) tmaxn = order(8,d) c = 1 ! ------------- Seasonal - Zonal average (m = 0) ---------------- if (refresh(1) .and. content(1)) then do n = 1,amaxn ! s = 0 bz(c) = -dsin(n*theta) ! bz(c+1) = dsin(n*theta) c = c + 2 enddo do s = 1,amaxs ! Seasonal variations cs = fs(s,1) ss = fs(s,2) do n = 1,amaxn sc = dsin(n*theta) bz(c) = -sc*cs ! Cr A bz(c+1) = sc*ss ! Ci B bz(c+2) = sc*cs bz(c+3) = -sc*ss c = c + 4 enddo enddo cseason = c else c = cseason endif ! ---------------- Stationary planetary waves -------------------- if (refresh(2) .and. content(2)) then do m = 1,pmaxm cm = fm(m,1)*wavefactor(m) sm = fm(m,2)*wavefactor(m) do n = m,pmaxn ! s = 0 vb = gvbar(n,m) wb = gwbar(n,m) bz(c) = -vb*cm ! Cr * (cm) * -vb A bz(c+1) = vb*sm ! Ci * (sm) * vb B bz(c+2) = -wb*sm ! Br * (sm) * -wb C bz(c+3) = -wb*cm ! Bi * (cm) * -wb D c = c + 4 enddo do s = 1,pmaxs cs = fs(s,1) ss = fs(s,2) do n = m,pmaxn vb = gvbar(n,m) wb = gwbar(n,m) bz(c) = -vb*cm*cs ! Crc * (cmcs) * -vb A bz(c+1) = vb*sm*cs ! Cic * (smcs) * vb B bz(c+2) = -wb*sm*cs ! Brc * (smcs) * -wb C bz(c+3) = -wb*cm*cs ! Bic * (cmcs) * -wb D bz(c+4) = -vb*cm*ss ! Crs * (cmss) * -vb E bz(c+5) = vb*sm*ss ! Cis * (smss) * vb F bz(c+6) = -wb*sm*ss ! Brs * (smss) * -wb G bz(c+7) = -wb*cm*ss ! Bis * (cmss) * -wb H c = c + 8 enddo enddo cwave = c enddo else c = cwave endif ! ---------------- Migrating Solar Tides --------------------- if (refresh(3) .and. content(3)) then do l = 1,tmaxl cl = fl(l,1)*tidefactor(l) sl = fl(l,2)*tidefactor(l) do n = l,tmaxn ! s = 0 vb = gvbar(n,l) wb = gwbar(n,l) bz(c) = -vb*cl ! Cr * (cl) * -vb bz(c+1) = vb*sl ! Ci * (sl) * vb bz(c+2) = -wb*sl ! Br * (sl) * -wb bz(c+3) = -wb*cl ! Bi * (cl) * -wb c = c + 4 enddo do s = 1,tmaxs cs = fs(s,1) ss = fs(s,2) do n = l,tmaxn vb = gvbar(n,l) wb = gwbar(n,l) bz(c) = -vb*cl*cs ! Crc * (clcs) * -vb bz(c+1) = vb*sl*cs ! Cic * (slcs) * vb bz(c+2) = -wb*sl*cs ! Brc * (slcs) * -wb bz(c+3) = -wb*cl*cs ! Bic * (clcs) * -wb bz(c+4) = -vb*cl*ss ! Crs * (clss) * -vb bz(c+5) = vb*sl*ss ! Cis * (slss) * vb bz(c+6) = -wb*sl*ss ! Brs * (slss) * -wb bz(c+7) = -wb*cl*ss ! Bis * (clss) * -wb c = c + 8 enddo enddo ctide = c enddo else c = ctide endif ! ---------------- Non-Migrating Solar Tides ------------------ ! TBD c = c - 1 ! ==================================================================== ! Calculate the wind components ! ==================================================================== if (component(0)) u = u + zwght(b)*dot_product(bz(1:c),mparm(1:c,d)) if (component(1)) v = v + zwght(b)*dot_product(bz(1:c),tparm(1:c,d)) enddo w(1) = sngl(v) w(2) = sngl(u) return end subroutine hwmqt subroutine vertwght(alt,wght,iz) use qwm implicit none real(8),intent(in) :: alt real(8),intent(out) :: wght(4) integer(4),intent(out) :: iz real(8) :: we(0:4) iz = findspan(nnode-p-1_4,p,alt,vnode) - p iz = min(iz,26) wght(1) = bspline(p,nnode,vnode,iz,alt) wght(2) = bspline(p,nnode,vnode,iz+1_4,alt) if (iz .le. 25) then wght(3) = bspline(p,nnode,vnode,iz+2_4,alt) wght(4) = bspline(p,nnode,vnode,iz+3_4,alt) return endif if (alt .gt. alttns) then we(0) = 0.0d0 we(1) = 0.0d0 we(2) = 0.0d0 we(3) = exp(-(alt - alttns)/H) we(4) = 1.0d0 else we(0) = bspline(p,nnode,vnode,iz+2_4,alt) we(1) = bspline(p,nnode,vnode,iz+3_4,alt) we(2) = bspline(p,nnode,vnode,iz+4_4,alt) we(3) = 0.0d0 we(4) = 0.0d0 endif wght(3) = dot_product(we,e1) wght(4) = dot_product(we,e2) return contains function bspline(p,m,V,i,u) implicit none real(8) :: bspline integer(4) :: p,m real(8) :: V(0:m) integer(4) :: i real(8) :: u real(8) :: N(0:p+1) real(8) :: Vleft,Vright real(8) :: saved,temp integer(4) :: j,k if ((i .eq. 0) .and. (u .eq. V(0))) then bspline = 1.d0 return endif if ((i .eq. (m-p-1)) .and. (u .eq. V(m))) then bspline = 1.d0 return endif if (u .lt. V(i) .or. u .ge. V(i+p+1)) then bspline = 0.d0 return endif N = 0.0d0 do j = 0,p if (u .ge. V(i+j) .and. u .lt. V(i+j+1)) then N(j) = 1.0d0 else N(j) = 0.0d0 endif enddo do k = 1,p if (N(0) .eq. 0.d0) then saved = 0.d0 else saved = ((u - V(i))*N(0))/(V(i+k) - V(i)) endif do j = 0,p-k Vleft = V(i+j+1) Vright = V(i+j+k+1) if (N(j+1) .eq. 0.d0) then N(j) = saved saved = 0.d0 else temp = N(j+1)/(Vright - Vleft) N(j) = saved + (Vright - u)*temp saved = (u - Vleft)*temp endif enddo enddo bspline = N(0) return end function bspline ! ===================================================== ! Function to locate the knot span ! ===================================================== integer(4) function findspan(n,p,u,V) implicit none integer(4),intent(in) :: n,p real(8),intent(in) :: u real(8),intent(in) :: V(0:n+1) integer(4) :: low,mid,high if (u .ge. V(n+1)) then findspan = n return endif low = p high = n+1 mid = (low + high)/2 do while (u .lt. V(mid) .or. u .ge. V(mid + 1)) if (u .lt. V(mid)) then high = mid else low = mid endif mid = (low + high)/2 end do findspan = mid return end function findspan end subroutine vertwght ! ################################################################################# ! Disturbance Wind Model Functions ! ################################################################################# subroutine initdwm(nmaxout,mmaxout) use hwm use dwm implicit none integer(4),intent(out) :: nmaxout, mmaxout call findandopen(dwmdefault,23) if (allocated(termarr)) deallocate(termarr,coeff) read(23) nterm, mmax, nmax allocate(termarr(0:2, 0:nterm-1)) read(23) termarr allocate(coeff(0:nterm-1)) read(23) coeff read(23) twidth close(23) if (allocated(termval)) deallocate(termval,dpbar,dvbar,dwbar,mltterms,vshterms) nvshterm = ( ((nmax+1)*(nmax+2) - (nmax-mmax)*(nmax-mmax+1))/2 - 1 ) * 4 - 2*nmax allocate(termval(0:1, 0:nterm-1)) allocate(dpbar(0:nmax,0:mmax),dvbar(0:nmax,0:mmax),dwbar(0:nmax,0:mmax)) allocate(mltterms(0:mmax,0:1)) allocate(vshterms(0:1, 0:nvshterm-1)) dpbar = 0 dvbar = 0 dwbar = 0 nmaxout = nmax mmaxout = mmax dwminit = .false. return end subroutine initdwm subroutine dwm07(IYD,SEC,ALT,GLAT,GLON,AP,DW) use hwm use dwm implicit none INTEGER,intent(in) :: IYD REAL(4),intent(in) :: SEC,ALT,GLAT,GLON REAL(4),intent(in) :: AP(2) REAL(4),intent(out) :: DW(2) real(4), save :: day, ut, mlat, mlon, mlt, kp real(4) :: mmpwind, mzpwind real(4), save :: f1e, f1n, f2e, f2n real(4), save :: glatlast=1.0e16, glonlast=1.0e16 real(4), save :: daylast=1.0e16, utlast=1.0e16, aplast=1.0e16 real(4), parameter :: talt=125.0 !, twidth=5.0 real(4), external :: ap2kp, mltcalc !CONVERT AP TO KP if (ap(2) .ne. aplast) then kp = ap2kp(ap(2)) endif !CONVERT GEO LAT/LON TO QD LAT/LON if ((glat .ne. glatlast) .or. (glon .ne. glonlast)) then call gd2qd(glat,glon,mlat,mlon,f1e,f1n,f2e,f2n) endif !COMPUTE QD MAGNETIC LOCAL TIME (LOW-PRECISION) day = real(mod(iyd,1000)) ut = sec / 3600.0 if ((day .ne. daylast) .or. (ut .ne. utlast) .or. & (glat .ne. glatlast) .or. (glon .ne. glonlast)) then mlt = mltcalc(mlat,mlon,day,ut) endif !RETRIEVE DWM WINDS call dwm07b(mlt, mlat, kp, mmpwind, mzpwind) !CONVERT TO GEOGRAPHIC COORDINATES dw(1) = f2n*mmpwind + f1n*mzpwind dw(2) = f2e*mmpwind + f1e*mzpwind !APPLY HEIGHT PROFILE dw = dw / (1 + exp(-(alt - talt)/twidth)) glatlast = glat glonlast = glon daylast = day utlast = ut aplast = ap(2) return end subroutine dwm07 subroutine dwm07b(mlt, mlat, kp, mmpwind, mzpwind) use hwm use dwm use alf,only:alfbasis implicit none real(4),intent(in) :: mlt !Magnetic local time (hours) real(4),intent(in) :: mlat !Magnetic latitude (degrees) real(4),intent(in) :: kp !3-hour Kp real(4),intent(out) :: mmpwind !Mer. disturbance wind (+north, QD coordinates) real(4),intent(out) :: mzpwind !Zon. disturbance wind (+east, QD coordinates) ! Local variables integer(4) :: iterm, ivshterm, n, m real(4) :: termvaltemp(0:1) real(4),save :: kpterms(0:2) real(4) :: latwgtterm real(4),save :: mltlast=1.e16, mlatlast=1.e16, kplast=1.e16 real(8) :: theta, phi, mphi real(4),external :: latwgt2 !LOAD MODEL PARAMETERS IF NECESSARY if (dwminit) call initdwm(nmaxdwm, mmaxdwm) !COMPUTE LATITUDE PART OF VSH TERMS if (mlat .ne. mlatlast) then theta = (90.d0 - dble(mlat))*dtor call alfbasis(nmax,mmax,theta,dpbar,dvbar,dwbar) endif !COMPUTE MLT PART OF VSH TERMS if (mlt .ne. mltlast) then phi = dble(mlt)*dtor*15.d0 do m = 0, mmax mphi = dble(m)*phi mltterms(m,0) = dcos(mphi) mltterms(m,1) = dsin(mphi) enddo endif !COMPUTE VSH TERMS if ((mlat .ne. mlatlast) .or. (mlt .ne. mltlast)) then ivshterm = 0 do n = 1, nmax vshterms(0,ivshterm) = -sngl(dvbar(n,0)*mltterms(0,0)) vshterms(0,ivshterm+1) = sngl(dwbar(n,0)*mltterms(0,0)) vshterms(1,ivshterm) = -vshterms(0,ivshterm+1) vshterms(1,ivshterm+1) = vshterms(0,ivshterm) ivshterm = ivshterm + 2 do m = 1, mmax if (m .gt. n) cycle vshterms(0,ivshterm) = -sngl(dvbar(n,m)*mltterms(m,0)) vshterms(0,ivshterm+1) = sngl(dvbar(n,m)*mltterms(m,1)) vshterms(0,ivshterm+2) = sngl(dwbar(n,m)*mltterms(m,1)) vshterms(0,ivshterm+3) = sngl(dwbar(n,m)*mltterms(m,0)) vshterms(1,ivshterm) = -vshterms(0,ivshterm+2) vshterms(1,ivshterm+1) = -vshterms(0,ivshterm+3) vshterms(1,ivshterm+2) = vshterms(0,ivshterm) vshterms(1,ivshterm+3) = vshterms(0,ivshterm+1) ivshterm = ivshterm + 4 enddo enddo endif !COMPUTE KP TERMS if (kp .ne. kplast) then call kpspl3(kp, kpterms) endif !COMPUTE LATITUDINAL WEIGHTING TERM latwgtterm = latwgt2(mlat, mlt, kp, twidth) !GENERATE COUPLED TERMS do iterm = 0, nterm-1 termvaltemp = (/1.0, 1.0/) if (termarr(0,iterm) .ne. 999) termvaltemp = termvaltemp * vshterms(0:1,termarr(0,iterm)) if (termarr(1,iterm) .ne. 999) termvaltemp = termvaltemp * kpterms(termarr(1,iterm)) if (termarr(2,iterm) .ne. 999) termvaltemp = termvaltemp * latwgtterm termval(0:1,iterm) = termvaltemp(0:1) enddo !APPLY COEFFICIENTS mmpwind = dot_product(coeff, termval(0,0:nterm-1)) mzpwind = dot_product(coeff, termval(1,0:nterm-1)) mlatlast = mlat mltlast = mlt kplast = kp return end subroutine dwm07b !================================================================================= ! Convert Ap to Kp !================================================================================= function ap2kp(ap0) real(4), parameter :: apgrid(0:27) = (/0.,2.,3.,4.,5.,6.,7.,9.,12.,15.,18., & 22.,27.,32.,39.,48.,56.,67.,80.,94., & 111.,132.,154.,179.,207.,236.,300.,400./) real(4), parameter :: kpgrid(0:27) = (/0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11., & 12.,13.,14.,15.,16.,17.,18.,19.,20.,21., & 22.,23.,24.,25.,26.,27./) / 3.0 real(4) :: ap0, ap, ap2kp integer(4) :: i ap = ap0 if (ap .lt. 0) ap = 0 if (ap .gt. 400) ap = 400 i = 1 do while (ap .gt. apgrid(i)) i = i + 1 end do if (ap .eq. apgrid(i)) then ap2kp = kpgrid(i) else ap2kp = kpgrid(i-1) + (ap - apgrid(i-1)) / (3.0 * (apgrid(i) - apgrid(i-1))) end if return end function ap2kp ! ######################################################################## ! Geographic <=> Geomagnetic Coordinate Transformations ! ! Converts geodetic coordinates to Quasi-Dipole coordinates (Richmond, J. Geomag. ! Geoelec., 1995, p. 191), using a spherical harmonic representation. ! ! ######################################################################## module gd2qdc implicit none integer(4) :: nterm, nmax, mmax !Spherical harmonic expansion parameters real(8), allocatable :: coeff(:,:) !Coefficients for spherical harmonic expansion real(8), allocatable :: xcoeff(:) !Coefficients for x coordinate real(8), allocatable :: ycoeff(:) !Coefficients for y coordinate real(8), allocatable :: zcoeff(:) !Coefficients for z coordinate real(8), allocatable :: sh(:) !Array to hold spherical harmonic fuctions real(8), allocatable :: shgradtheta(:) !Array to hold spherical harmonic gradients real(8), allocatable :: shgradphi(:) !Array to hold spherical harmonic gradients real(8), allocatable :: normadj(:) !Adjustment to VSH normalization factor real(4) :: epoch, alt real(8), parameter :: pi = 3.1415926535897932d0 real(8), parameter :: dtor = pi/180.0d0 real(8), parameter :: sineps = 0.39781868d0 logical :: gd2qdinit = .true. contains subroutine initgd2qd() use hwm implicit none character(128), parameter :: datafile='gd2qd.dat' integer(4) :: iterm, n integer(4) :: j call findandopen(datafile,23) read(23) nmax, mmax, nterm, epoch, alt if (allocated(coeff)) then deallocate(coeff,xcoeff,ycoeff,zcoeff,sh,shgradtheta,shgradphi,normadj) endif allocate( coeff(0:nterm-1, 0:2) ) read(23) coeff close(23) allocate( xcoeff(0:nterm-1) ) allocate( ycoeff(0:nterm-1) ) allocate( zcoeff(0:nterm-1) ) allocate( sh(0:nterm-1) ) allocate( shgradtheta(0:nterm-1) ) allocate( shgradphi(0:nterm-1) ) allocate( normadj(0:nmax) ) do iterm = 0, nterm-1 xcoeff(iterm) = coeff(iterm,0) ycoeff(iterm) = coeff(iterm,1) zcoeff(iterm) = coeff(iterm,2) enddo do n = 0, nmax normadj(n) = dsqrt(dble(n*(n+1))) end do nmaxqdc = nmax mmaxqdc = mmax gd2qdinit = .false. return end subroutine initgd2qd end module gd2qdc subroutine gd2qd(glatin,glon,qlat,qlon,f1e,f1n,f2e,f2n) use hwm use gd2qdc use alf implicit none real(4), intent(in) :: glatin, glon real(4), intent(out) :: qlat, qlon real(4), intent(out) :: f1e, f1n, f2e, f2n integer(4) :: n, m, i real(8) :: glat, theta, phi real(8) :: mphi, cosmphi, sinmphi real(8) :: x, y, z real(8) :: cosqlat, cosqlon, sinqlon real(8) :: xgradtheta, ygradtheta, zgradtheta real(8) :: xgradphi, ygradphi, zgradphi real(8) :: qlonrad if (gd2qdinit) call initgd2qd() glat = dble(glatin) if (glat .ne. glatalf) then theta = (90.d0 - glat) * dtor call alfbasis(nmax,mmax,theta,gpbar,gvbar,gwbar) glatalf = glat endif phi = dble(glon) * dtor i = 0 do n = 0, nmax sh(i) = gpbar(n,0) shgradtheta(i) = gvbar(n,0) * normadj(n) shgradphi(i) = 0 i = i + 1 enddo do m = 1, mmax mphi = dble(m) * phi cosmphi = dcos(mphi) sinmphi = dsin(mphi) do n = m, nmax sh(i) = gpbar(n,m) * cosmphi sh(i+1) = gpbar(n,m) * sinmphi shgradtheta(i) = gvbar(n,m) * normadj(n) * cosmphi shgradtheta(i+1) = gvbar(n,m) * normadj(n) * sinmphi shgradphi(i) = -gwbar(n,m) * normadj(n) * sinmphi shgradphi(i+1) = gwbar(n,m) * normadj(n) * cosmphi i = i + 2 enddo enddo x = dot_product(sh, xcoeff) y = dot_product(sh, ycoeff) z = dot_product(sh, zcoeff) qlonrad = datan2(y,x) cosqlon = dcos(qlonrad) sinqlon = dsin(qlonrad) cosqlat = x*cosqlon + y*sinqlon qlat = sngl(datan2(z,cosqlat) / dtor) qlon = sngl(qlonrad / dtor) xgradtheta = dot_product(shgradtheta, xcoeff) ygradtheta = dot_product(shgradtheta, ycoeff) zgradtheta = dot_product(shgradtheta, zcoeff) xgradphi = dot_product(shgradphi, xcoeff) ygradphi = dot_product(shgradphi, ycoeff) zgradphi = dot_product(shgradphi, zcoeff) f1e = sngl(-zgradtheta*cosqlat + (xgradtheta*cosqlon + ygradtheta*sinqlon)*z ) f1n = sngl(-zgradphi*cosqlat + (xgradphi*cosqlon + ygradphi*sinqlon)*z ) f2e = sngl( ygradtheta*cosqlon - xgradtheta*sinqlon ) f2n = sngl( ygradphi*cosqlon - xgradphi*sinqlon ) return end subroutine gd2qd !================================================================================== ! (Function) Calculate Magnetic Local Time !================================================================================== function mltcalc(qlat,qlon,day,ut) use hwm use gd2qdc use alf implicit none real(4), intent(in) :: qlat, qlon, day, ut real(4) :: mltcalc integer(4) :: n, m, i real(8) :: asunglat, asunglon, asunqlon real(8) :: glat, theta, phi real(8) :: mphi, cosmphi, sinmphi real(8) :: x, y real(8) :: cosqlat, cosqlon, sinqlon real(8) :: qlonrad if (gd2qdinit) call initgd2qd() !COMPUTE GEOGRAPHIC COORDINATES OF ANTI-SUNWARD DIRECTION (LOW PRECISION) asunglat = -asin(sin((dble(day)+dble(ut)/24.0d0-80.0d0)*dtor) * sineps) / dtor asunglon = -ut * 15.d0 !COMPUTE MAGNETIC COORDINATES OF ANTI-SUNWARD DIRECTION theta = (90.d0 - asunglat) * dtor call alfbasis(nmax,mmax,theta,spbar,svbar,swbar) phi = asunglon * dtor i = 0 do n = 0, nmax sh(i) = spbar(n,0) i = i + 1 enddo do m = 1, mmax mphi = dble(m) * phi cosmphi = dcos(mphi) sinmphi = dsin(mphi) do n = m, nmax sh(i) = spbar(n,m) * cosmphi sh(i+1) = spbar(n,m) * sinmphi i = i + 2 enddo enddo x = dot_product(sh, xcoeff) y = dot_product(sh, ycoeff) asunqlon = sngl(datan2(y,x) / dtor) !COMPUTE MLT mltcalc = (qlon - asunqlon) / 15.0 return end function mltcalc !================================================================================ ! Cubic Spline interpolation of Kp !================================================================================ subroutine kpspl3(kp, kpterms) implicit none real(4), intent(in) :: kp real(4), intent(out) :: kpterms(0:2) integer(4) :: i, j real(4) :: x, kpspl(0:6) real(4), parameter :: node(0:7)=(/-10., -8., 0., 2., 5., 8., 18., 20./) x = max(kp, 0.0) x = min(x, 8.0) kpterms(0:2) = 0.0 do i = 0, 6 kpspl(i) = 0.0 if ((x .ge. node(i)) .and. (x .lt. node(i+1))) kpspl(i) = 1.0 enddo do j = 2,3 do i = 0, 8-j-1 kpspl(i) = kpspl(i) * (x - node(i)) / (node(i+j-1) - node(i)) & + kpspl(i+1) * (node(i+j) - x) / (node(i+j) - node(i+1)) enddo enddo kpterms(0) = kpspl(0) + kpspl(1) kpterms(1) = kpspl(2) kpterms(2) = kpspl(3) + kpspl(4) return end subroutine kpspl3 !================================================================================ ! (Function) Latitude weighting factors !================================================================================ function latwgt2(mlat, mlt, kp0, twidth) implicit none real(4) :: latwgt2 real(4) :: mlat, mlt, kp0, kp, twidth real(4) :: mltrad, sinmlt, cosmlt, tlat real(4), parameter :: coeff(0:5) = (/ 65.7633, -4.60256, -3.53915, & -1.99971, -0.752193, 0.972388 /) real(4), parameter :: pi=3.141592653590 real(4), parameter :: dtor=pi/180.d0 mltrad = mlt * 15.0 * dtor sinmlt = sin(mltrad) cosmlt = cos(mltrad) kp = max(kp0, 0.0) kp = min(kp, 8.0) tlat = coeff(0) + coeff(1)*cosmlt + coeff(2)*sinmlt + & kp*(coeff(3) + coeff(4)*cosmlt + coeff(5)*sinmlt) latwgt2 = 1.0 / ( 1 + exp(-(abs(mlat)-tlat)/twidth) ) return end function latwgt2 ! ======================================================================== ! Utility to find and open the supporting data files ! ======================================================================== subroutine findandopen(datafile,unitid) implicit none character(128) :: datafile integer :: unitid character(128) :: hwmpath logical :: havefile integer :: i i = index(datafile,'bin') if (i .eq. 0) then inquire(file=trim(datafile),exist=havefile) if (havefile) open(unit=unitid,file=trim(datafile),status='old',form='unformatted') if (.not. havefile) then call get_environment_variable('HWMPATH',hwmpath) inquire(file=trim(hwmpath)//'/'//trim(datafile),exist=havefile) if (havefile) open(unit=unitid, & file=trim(hwmpath)//'/'//trim(datafile),status='old',form='unformatted') endif if (.not. havefile) then inquire(file='../Meta/'//trim(datafile),exist=havefile) if (havefile) open(unit=unitid, & file='../Meta/'//trim(datafile),status='old',form='unformatted') endif else inquire(file=trim(datafile),exist=havefile) if (havefile) open(unit=unitid,file=trim(datafile),status='old',access='stream') if (.not. havefile) then call get_environment_variable('HWMPATH',hwmpath) inquire(file=trim(hwmpath)//'/'//trim(datafile),exist=havefile) if (havefile) open(unit=unitid, & file=trim(hwmpath)//'/'//trim(datafile),status='old',access='stream') endif if (.not. havefile) then inquire(file='../Meta/'//trim(datafile),exist=havefile) if (havefile) open(unit=unitid, & file='../Meta/'//trim(datafile),status='old',access='stream') endif endif if (havefile) then return else print *,"Can not find file ",trim(datafile) stop endif end subroutine findandopen fluids-0.1.78/fluids/optional/hwm93.pyf0000644000175000017500000004105213632560624016444 0ustar kurtkurt! -*- f90 -*- ! Note: the context of this file is case sensitive. python module hwm93 ! in interface ! in :hwm93 subroutine gws5(iyd,sec,alt,glat,glong,stl,f107a,f107,ap,w) ! in :hwm93:hwm93.for integer :: iyd real :: sec real :: alt real :: glat real :: glong real :: stl real :: f107a real :: f107 real dimension(1) :: ap real dimension(2), intent(out) :: w integer dimension(3) :: isdate integer dimension(2) :: istime integer dimension(2) :: name real dimension(25) :: sw integer :: isw real dimension(25) :: swc real dimension(200) :: pwb real dimension(200) :: pwc real dimension(150) :: pwbl real dimension(150) :: pwcl real dimension(150) :: pwbld real dimension(150) :: pwcld real dimension(150) :: pb12 real dimension(150) :: pc12 real dimension(150) :: pb13 real dimension(150) :: pc13 real dimension(150) :: pb14 real dimension(150) :: pc14 real dimension(150) :: pb15 real dimension(150) :: pc15 real dimension(150) :: pb15d real dimension(150) :: pc15d real dimension(100,26) :: pwp integer dimension(3) :: isd integer dimension(2) :: ist integer dimension(2) :: nam real dimension(2) :: wbt real dimension(2) :: wct integer :: nnw common /datime/ isdate,istime,name common /csw/ sw,isw,swc common /parmw5/ pwb,pwc,pwbl,pwcl,pwbld,pwcld,pb12,pc12,pb13,pc13,pb14,pc14,pb15,pc15,pb15d,pc15d,pwp common /datw/ isd,ist,nam common /hwmc/ wbt,wct entry setnw5(nnw) end subroutine gws5 function wprof(z,zl,s,uinf,ulb,ulbd,mn1,zn1,un1,ugn1,mn2,zn2,un2,ugn2) ! in :hwm93:hwm93.for real :: z real :: zl real :: s real :: uinf real :: ulb real :: ulbd integer, optional,check(len(zn1)>=mn1),depend(zn1) :: mn1=len(zn1) real dimension(mn1) :: zn1 real dimension(mn1),depend(mn1) :: un1 real dimension(2) :: ugn1 integer, optional,check(len(zn2)>=mn2),depend(zn2) :: mn2=len(zn2) real dimension(mn2) :: zn2 real dimension(mn2),depend(mn2) :: un2 real dimension(2) :: ugn2 real :: wprof end function wprof subroutine glbw5e(yrd,sec,lat,long_bn,stl,f107a,f107,ap,pb,pc,ww) ! in :hwm93:hwm93.for real :: yrd real :: sec real :: lat real :: long_bn real :: stl real :: f107a real :: f107 real dimension(1) :: ap real dimension(1) :: pb real dimension(1) :: pc real dimension(2) :: ww real :: xvl integer :: lvl integer :: mvl real :: clat real :: slat real dimension(20,20) :: bt real dimension(20,20) :: bp real dimension(25) :: sw integer :: isw real dimension(25) :: swc real :: tll integer :: nsvl real :: cstl real :: sstl real :: c2stl real :: s2stl real :: c3stl real :: s3stl real :: xll integer :: ngvl real :: clong real :: slong real :: c2long real :: s2long real dimension(2) :: wbt real dimension(2) :: wct common /vpoly2/ xvl,lvl,mvl,clat,slat,bt,bp common /csw/ sw,isw,swc common /ltcomp/ tll,nsvl,cstl,sstl,c2stl,s2stl,c3stl,s3stl common /lgcomp/ xll,ngvl,clong,slong,c2long,s2long common /hwmc/ wbt,wct end subroutine glbw5e subroutine glbw5m(yrd,sec,lat,long_bn,stl,f107a,f107,ap,pb,pc,ww) ! in :hwm93:hwm93.for real :: yrd real :: sec real :: lat real :: long_bn real :: stl real :: f107a real :: f107 real dimension(1) :: ap real dimension(1) :: pb real dimension(1) :: pc real dimension(2) :: ww real :: xvl integer :: lvl integer :: mvl real :: clat real :: slat real dimension(20,20) :: bt real dimension(20,20) :: bp real dimension(25) :: sw integer :: isw real dimension(25) :: swc real :: tll integer :: nsvl real :: cstl real :: sstl real :: c2stl real :: s2stl real :: c3stl real :: s3stl real :: xll integer :: ngvl real :: clong real :: slong real :: c2long real :: s2long real dimension(2) :: wbt real dimension(2) :: wct common /vpoly2/ xvl,lvl,mvl,clat,slat,bt,bp common /csw/ sw,isw,swc common /ltcomp/ tll,nsvl,cstl,sstl,c2stl,s2stl,c3stl,s3stl common /lgcomp/ xll,ngvl,clong,slong,c2long,s2long common /hwmc/ wbt,wct end subroutine glbw5m subroutine glbw5s(iyd,lat,long_bn,stl,pb,pc,ww) ! in :hwm93:hwm93.for integer :: iyd real :: lat real :: long_bn real :: stl real dimension(1) :: pb real dimension(1) :: pc real dimension(2) :: ww real :: xvl integer :: lvl integer :: mvl real :: clat real :: slat real dimension(20,20) :: bt real dimension(20,20) :: bp real dimension(25) :: sw integer :: isw real dimension(25) :: swc real :: tll integer :: nsvl real :: cstl real :: sstl real :: c2stl real :: s2stl real :: c3stl real :: s3stl real :: xll integer :: ngvl real :: clong real :: slong real :: c2long real :: s2long real dimension(2) :: wbt real dimension(2) :: wct common /vpoly2/ xvl,lvl,mvl,clat,slat,bt,bp common /csw/ sw,isw,swc common /ltcomp/ tll,nsvl,cstl,sstl,c2stl,s2stl,c3stl,s3stl common /lgcomp/ xll,ngvl,clong,slong,c2long,s2long common /hwmc/ wbt,wct end subroutine glbw5s subroutine tselec(sv) ! in :hwm93:hwm93.for real dimension(1) :: sv real dimension(25) :: sw integer :: isw real dimension(25) :: swc real dimension(1) :: svv common /csw/ sw,isw,swc entry tretrv(svv) end subroutine tselec subroutine vsphr1(c,s,l,m,bt,bp,lmax) ! in :hwm93:hwm93.for real :: c real :: s integer :: l integer :: m real dimension(lmax,1) :: bt real dimension(lmax,1),depend(lmax) :: bp integer, optional,check(shape(bt,0)==lmax),depend(bt) :: lmax=shape(bt,0) end subroutine vsphr1 subroutine legpl1(c,s,l,m,plg,lmax) ! in :hwm93:hwm93.for real :: c real :: s integer :: l integer :: m real dimension(lmax,1) :: plg integer, optional,check(shape(plg,0)==lmax),depend(plg) :: lmax=shape(plg,0) end subroutine legpl1 subroutine spline(x,y,n,yp1,ypn,y2) ! in :hwm93:hwm93.for real dimension(n) :: x real dimension(n),depend(n) :: y integer, optional,check(len(x)>=n),depend(x) :: n=len(x) real :: yp1 real :: ypn real dimension(n),depend(n) :: y2 end subroutine spline subroutine splint(xa,ya,y2a,n,x,y) ! in :hwm93:hwm93.for real dimension(n) :: xa real dimension(n),depend(n) :: ya real dimension(n),depend(n) :: y2a integer, optional,check(len(xa)>=n),depend(xa) :: n=len(xa) real :: x real :: y end subroutine splint block data initw5 ! in :hwm93:hwm93.for real, optional :: xvl=-999.0 integer, optional :: lvl=-1 integer, optional :: mvl=-1 real :: clat real :: slat real dimension(20,20) :: bt real dimension(20,20) :: bp real dimension(25) :: sw integer, optional :: isw=0 real dimension(25) :: swc real, optional :: tll=-999.0 integer, optional :: nsvl=-1 real :: cstl real :: sstl real :: c2stl real :: s2stl real :: c3stl real :: s3stl real, optional :: xll=-999.0 integer, optional :: ngvl=-1 real :: clong real :: slong real :: c2long real :: s2long common /vpoly2/ xvl,lvl,mvl,clat,slat,bt,bp common /csw/ sw,isw,swc common /ltcomp/ tll,nsvl,cstl,sstl,c2stl,s2stl,c3stl,s3stl common /lgcomp/ xll,ngvl,clong,slong,c2long,s2long end block data initw5 block data gwsbk5 ! in :hwm93:hwm93.for character, optional,dimension(3,4),intent(c) :: isdate='28-j' character, optional,dimension(2,4),intent(c) :: istime='20:3' character, optional,dimension(2,4),intent(c) :: name='hwm9' real, optional,dimension(50) :: pba1=0.00000e+00 real, optional,dimension(50) :: pba2=-3.82415e-01 real, optional,dimension(50) :: pba3=0.00000e+00 real, optional,dimension(50) :: pba4=2.08426e+00 real, optional,dimension(50) :: pca1=0.00000e+00 real, optional,dimension(50) :: pca2=-1.36730e+00 real, optional,dimension(50) :: pca3=0.00000e+00 real, optional,dimension(50) :: pca4=-2.31583e+00 real, optional,dimension(50) :: pbb1=6.22831e-01 real, optional,dimension(50) :: pbb2=0.00000e+00 real, optional,dimension(50) :: pbb3=0.00000e+00 real, optional,dimension(50) :: pcb1=5.45009e-01 real, optional,dimension(50) :: pcb2=0.00000e+00 real, optional,dimension(50) :: pcb3=0.00000e+00 real, optional,dimension(50) :: pbc1=6.09940e-01 real, optional,dimension(50) :: pbc2=0.00000e+00 real, optional,dimension(50) :: pbc3=0.00000e+00 real, optional,dimension(50) :: pcc1=5.46739e-01 real, optional,dimension(50) :: pcc2=0.00000e+00 real, optional,dimension(50) :: pcc3=0.00000e+00 real, optional,dimension(50) :: pbd1=4.99007e-01 real, optional,dimension(50) :: pbd2=0.00000e+00 real, optional,dimension(50) :: pbd3=0.00000e+00 real, optional,dimension(50) :: pcd1=0.00000e+00 real, optional,dimension(50) :: pcd2=0.00000e+00 real, optional,dimension(50) :: pcd3=0.00000e+00 real, optional,dimension(50) :: pbe1=0.00000e+00 real, optional,dimension(50) :: pbe2=0.00000e+00 real, optional,dimension(50) :: pbe3=0.00000e+00 real, optional,dimension(50) :: pce1=0.00000e+00 real, optional,dimension(50) :: pce2=0.00000e+00 real, optional,dimension(50) :: pce3=0.00000e+00 real, optional,dimension(50) :: pbf1=0.00000e+00 real, optional,dimension(50) :: pbf2=0.00000e+00 real, optional,dimension(50) :: pbf3=0.00000e+00 real, optional,dimension(50) :: pcf1=0.00000e+00 real, optional,dimension(50) :: pcf2=0.00000e+00 real, optional,dimension(50) :: pcf3=0.00000e+00 real, optional,dimension(50) :: pbg1=0.00000e+00 real, optional,dimension(50) :: pbg2=0.00000e+00 real, optional,dimension(50) :: pbg3=0.00000e+00 real, optional,dimension(50) :: pcg1=0.00000e+00 real, optional,dimension(50) :: pcg2=0.00000e+00 real, optional,dimension(50) :: pcg3=0.00000e+00 real, optional,dimension(50) :: pbh1=0.00000e+00 real, optional,dimension(50) :: pbh2=0.00000e+00 real, optional,dimension(50) :: pbh3=0.00000e+00 real, optional,dimension(50) :: pch1=0.00000e+00 real, optional,dimension(50) :: pch2=0.00000e+00 real, optional,dimension(50) :: pch3=0.00000e+00 real, optional,dimension(50) :: pbi1=0.00000e+00 real, optional,dimension(50) :: pbi2=0.00000e+00 real, optional,dimension(50) :: pci1=0.00000e+00 real, optional,dimension(50) :: pci2=0.00000e+00 real, optional,dimension(50) :: pbj1=0.00000e+00 real, optional,dimension(50) :: pbj2=0.00000e+00 real, optional,dimension(50) :: pcj1=0.00000e+00 real, optional,dimension(50) :: pcj2=-7.33184e-01 real, optional,dimension(50) :: pbk1=0.00000e+00 real, optional,dimension(50) :: pbk2=0.00000e+00 real, optional,dimension(50) :: pck1=0.00000e+00 real, optional,dimension(50) :: pck2=-6.06026e-01 real, optional,dimension(50) :: pbl1=0.00000e+00 real, optional,dimension(50) :: pbl2=0.00000e+00 real, optional,dimension(50) :: pcl1=0.00000e+00 real, optional,dimension(50) :: pcl2=1.63964e-02 real, optional,dimension(50) :: pbm1=0.00000e+00 real, optional,dimension(50) :: pbm2=0.00000e+00 real, optional,dimension(50) :: pcm1=0.00000e+00 real, optional,dimension(50) :: pcm2=3.48181e-01 real, optional,dimension(50) :: pbn1=0.00000e+00 real, optional,dimension(50) :: pbn2=0.00000e+00 real, optional,dimension(50) :: pcn1=0.00000e+00 real, optional,dimension(50) :: pcn2=3.79580e-01 real, optional,dimension(50) :: pbo1=0.00000e+00 real, optional,dimension(50) :: pbo2=0.00000e+00 real, optional,dimension(50) :: pco1=0.00000e+00 real, optional,dimension(50) :: pco2=6.37036e-01 real, optional,dimension(50) :: pbp1=0.00000e+00 real, optional,dimension(50) :: pbp2=0.00000e+00 real, optional,dimension(50) :: pcp1=0.00000e+00 real, optional,dimension(50) :: pcp2=9.80142e-01 real, optional,dimension(50) :: pbq1=0.00000e+00 real, optional,dimension(50) :: pbq2=0.00000e+00 real, optional,dimension(50) :: pcq1=0.00000e+00 real, optional,dimension(50) :: pcq2=7.31799e-01 real, optional,dimension(50) :: pbr1=0.00000e+00 real, optional,dimension(50) :: pbr2=0.00000e+00 real, optional,dimension(50) :: pcr1=0.00000e+00 real, optional,dimension(50) :: pcr2=3.07191e-01 real, optional,dimension(50) :: pbs1=0.00000e+00 real, optional,dimension(50) :: pbs2=0.00000e+00 real, optional,dimension(50) :: pcs1=0.00000e+00 real, optional,dimension(50) :: pcs2=1.09405e-02 real, optional,dimension(50) :: pbt1=0.00000e+00 real, optional,dimension(50) :: pbt2=0.00000e+00 real, optional,dimension(50) :: pct1=0.00000e+00 real, optional,dimension(50) :: pct2=0.00000e+00 real, optional,dimension(50) :: pbu1=0.00000e+00 real, optional,dimension(50) :: pbu2=0.00000e+00 real, optional,dimension(50) :: pcu1=0.00000e+00 real, optional,dimension(50) :: pcu2=0.00000e+00 common /datw/ isdate,istime,name common /parmw5/ pba1,pba2,pba3,pba4,pca1,pca2,pca3,pca4,pbb1,pbb2,pbb3,pcb1,pcb2,pcb3,pbc1,pbc2,pbc3,pcc1,pcc2,pcc3,pbd1,pbd2,pbd3,pcd1,pcd2,pcd3,pbe1,pbe2,pbe3,pce1,pce2,pce3,pbf1,pbf2,pbf3,pcf1,pcf2,pcf3,pbg1,pbg2,pbg3,pcg1,pcg2,pcg3,pbh1,pbh2,pbh3,pch1,pch2,pch3,pbi1,pbi2,pci1,pci2,pbj1,pbj2,pcj1,pcj2,pbk1,pbk2,pck1,pck2,pbl1,pbl2,pcl1,pcl2,pbm1,pbm2,pcm1,pcm2,pbn1,pbn2,pcn1,pcn2,pbo1,pbo2,pco1,pco2,pbp1,pbp2,pcp1,pcp2,pbq1,pbq2,pcq1,pcq2,pbr1,pbr2,pcr1,pcr2,pbs1,pbs2,pcs1,pcs2,pbt1,pbt2,pct1,pct2,pbu1,pbu2,pcu1,pcu2 end block data gwsbk5 end interface end python module hwm93 ! This file was auto-generated with f2py (version:2). ! See http://cens.ioc.ee/projects/f2py2e/ fluids-0.1.78/fluids/separator.py0000644000175000017500000003144413632560624015506 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log, exp, pi from fluids.constants import g, foot, psi from fluids.numerics import splev, implementation_optimize_tck __all__ = ['v_Sounders_Brown', 'K_separator_Watkins', 'K_separator_demister_York', 'K_Sounders_Brown_theoretical'] # 92 points taken from a 2172x3212 page scan, after dewarping the scan, # digitization with Engauge Digitizer, and extensive checking; every 5th point # it produced was selected plus the last point. The initial value is adjusted # to be the lower limit of the graph. tck_Watkins = implementation_optimize_tck([[-5.115995809754082, -5.115995809754082, -5.115995809754082, -5.115995809754082, -4.160106231099973, -3.209113630523477, -1.2175106961204154, 0.4587657198189318, 1.1197669427405068, 1.6925908552310418, 1.6925908552310418, 1.6925908552310418, 1.6925908552310418], [-1.4404286048266364, -1.2375168139385286, -0.9072614905522024, -0.7662335745829165, -0.944537665617708, -1.957339717378027, -3.002614318094637, -3.5936804378352956, -3.8779153181940553, 0.0, 0.0, 0.0, 0.0], 3]) def K_separator_Watkins(x, rhol, rhog, horizontal=False, method='spline'): r'''Calculates the Sounders-Brown `K` factor as used in determining maximum allowable gas velocity in a two-phase separator in either a horizontal or vertical orientation. This function approximates a graph published in [1]_ to determine `K` as used in the following equation: .. math:: v_{max} = K_{SB}\sqrt{\frac{\rho_l-\rho_g}{\rho_g}} The graph has `K_{SB}` on its y-axis, and the following as its x-axis: .. math:: \frac{m_l}{m_g}\sqrt{\rho_g/\rho_l} = \frac{(1-x)}{x}\sqrt{\rho_g/\rho_l} Cubic spline interpolation is the default method of retrieving a value from the graph, which was digitized with Engauge-Digitizer. Also supported are two published curve fits to the graph. The first is that of Blackwell (1984) [2]_, as follows: .. math:: K_{SB} = \exp(-1.942936 -0.814894X -0.179390 X^2 -0.0123790 X^3 + 0.000386235 X^4 + 0.000259550 X^5) X = \log\left[\frac{(1-x)}{x}\sqrt{\rho_g/\rho_l}\right] The second is that of Branan (1999), as follows: .. math:: K_{SB} = \exp(-1.877478097 -0.81145804597X -0.1870744085 X^2 -0.0145228667 X^3 -0.00101148518 X^4) X = \log\left[\frac{(1-x)}{x}\sqrt{\rho_g/\rho_l}\right] Parameters ---------- x : float Quality of fluid entering separator, [-] rhol : float Density of liquid phase [kg/m^3] rhog : float Density of gas phase [kg/m^3] horizontal : bool, optional Whether to use the vertical or horizontal value; horizontal is 1.25 higher method : str One of 'spline, 'blackwell', or 'branan' Returns ------- K : float Sounders Brown horizontal or vertical `K` factor for two-phase separator design only, [m/s] Notes ----- Both the 'branan' and 'blackwell' models are used frequently. However, the spline is much more accurate. No limits checking is enforced. However, the x-axis spans only 0.006 to 5.4, and the function should not be used outside those limits. Examples -------- >>> K_separator_Watkins(0.88, 985.4, 1.3, horizontal=True) 0.07951613600476297 References ---------- .. [1] Watkins (1967). Sizing Separators and Accumulators, Hydrocarbon Processing, November 1967. .. [2] Blackwell, W. Wayne. Chemical Process Design on a Programmable Calculator. New York: Mcgraw-Hill, 1984. .. [3] Branan, Carl R. Pocket Guide to Chemical Engineering. 1st edition. Houston, Tex: Gulf Professional Publishing, 1999. ''' factor = (1. - x)/x*(rhog/rhol)**0.5 if method == 'spline': K = exp(float(splev(log(factor), tck_Watkins))) elif method == 'blackwell': X = log(factor) A = -1.877478097 B = -0.81145804597 C = -0.1870744085 D = -0.0145228667 E = -0.00101148518 K = exp(A + X*(B + X*(C + X*(D + E*X)))) elif method == 'branan': X = log(factor) A = -1.942936 B = -0.814894 C = -0.179390 D = -0.0123790 E = 0.000386235 F = 0.000259550 K = exp(A + X*(B + X*(C + X*(D + X*(E + F*X))))) else: raise Exception("Only methods 'spline', 'branan', and 'blackwell' are supported.") K *= foot # Converts units of ft/s to m/s; the graph and all fits are in ft/s if horizontal: K *= 1.25 # Watkins recommends a factor of 1.25 for horizontal separators over vertical separators return K def K_separator_demister_York(P, horizontal=False): r'''Calculates the Sounders Brown `K` factor as used in determining maximum permissible gas velocity in a two-phase separator in either a horizontal or vertical orientation, *with a demister*. This function is a curve fit to [1]_ published in [2]_ and is widely used. For 1 < P < 15 psia: .. math:: K = 0.1821 + 0.0029P + 0.0460\ln P For 15 <= P <= 40 psia: .. math:: K = 0.35 For P < 5500 psia: .. math:: K = 0.430 - 0.023\ln P In the above equations, P is in units of psia. Parameters ---------- P : float Pressure of separator, [Pa] horizontal : bool, optional Whether to use the vertical or horizontal value; horizontal is 1.25 times higher, [-] Returns ------- K : float Sounders Brown Horizontal or vertical `K` factor for two-phase separator design with a demister, [m/s] Notes ----- If the input pressure is under 1 psia, 1 psia is used. If the input pressure is over 5500 psia, 5500 psia is used. Examples -------- >>> K_separator_demister_York(975*psi) 0.08281536035331669 References ---------- .. [2] Otto H. York Company, "Mist Elimination in Gas Treatment Plants and Refineries," Engineering, Parsippany, NJ. .. [1] Svrcek, W. Y., and W. D. Monnery. "Design Two-Phase Separators within the Right Limits" Chemical Engineering Progress, (October 1, 1993): 53-60. ''' P = P/psi # Correlation in terms of psia if P < 15: if P < 1: P = 1 # Prevent negative K values, but as a consequence be # optimistic for K values; limit is 0.185 ft/s but real values # should probably be lower K = 0.1821 + 0.0029*P + 0.0460*log(P) elif P < 40: K = 0.35 else: if P > 5500: P = 5500 # Do not allow for lower K values above 5500 psia, as # the limit is stated to be 5500 K = 0.430 - 0.023*log(P) K *= foot # Converts units of ft/s to m/s; the graph and all fits are in ft/s if horizontal: # Watkins recommends a factor of 1.25 for horizontal separators over # vertical separators as well K *= 1.25 return K def v_Sounders_Brown(K, rhol, rhog): r'''Calculates the maximum allowable vapor velocity in a two-phase separator to permit separation between entrained droplets and the gas using an empirical `K` factor, named after Sounders and Brown [1]_. This is a simplifying expression for terminal velocity and drag on particles. .. math:: v_{max} = K_{SB} \sqrt{\frac{\rho_l-\rho_g}{\rho_g}} Parameters ---------- K : float Sounders Brown `K` factor for two-phase separator design, [m/s] rhol : float Density of liquid phase [kg/m^3] rhog : float Density of gas phase [kg/m^3] Returns ------- v_max : float Maximum allowable vapor velocity in a two-phase separator to permit separation between entrained droplets and the gas, [m/s] Notes ----- The Sounders Brown K factor is related to the terminal velocity as shown in the following expression. .. math:: v_{term} = v_{max} = \sqrt{\frac{4 g d_p (\rho_p-\rho_f)}{3 C_D \rho_f }} v_{term} = \sqrt{\frac{(\rho_p-\rho_f)}{\rho_f}} \sqrt{\frac{4 g d_p}{3 C_D}} v_{term} = K_{SB} \sqrt{\frac{4 g d_p}{3 C_D}} Note this form corresponds to the Newton's law range (Re > 500), but in reality droplets are normally in the intermediate or Stoke's law region [2]_. For this reason using the drag coefficient expression directly is cleaner, but identical results can be found with the Sounders Brown equation. Examples -------- >>> v_Sounders_Brown(K=0.08, rhol=985.4, rhog=1.3) 2.2010906387516167 References ---------- .. [1] Souders, Mott., and George Granger. Brown. "Design of Fractionating Columns I. Entrainment and Capacity." Industrial & Engineering Chemistry 26, no. 1 (January 1, 1934): 98-103. https://doi.org/10.1021/ie50289a025. .. [2] Vasude, Gael D. Ulrich and Palligarnai T. Chemical Engineering Process Design and Economics : A Practical Guide. 2nd edition. Durham, N.H: Process Publishing, 2004. ''' return K*((rhol - rhog)/rhog)**0.5 def K_Sounders_Brown_theoretical(D, Cd, g=g): r'''Converts a known drag coefficient into a Sounders-Brown `K` factor for two-phase separator design. This factor is the traditional way for separator diameters to be obtained although it is unnecessary and the theoretical drag coefficient method can be used instead. .. math:: K_{SB} = \sqrt{\frac{(\rho_p-\rho_f)}{\rho_f}} = \sqrt{\frac{4 g d_p}{3 C_D}} Parameters ---------- D : float Design diameter of the droplets, [m] Cd : float Drag coefficient [-] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- K : float Sounders Brown `K` factor for two-phase separator design, [m/s] Notes ----- Drag coefficient is a function of velocity; so iteration is needed to obtain the most correct answer. The following example shows the use of iteration to obtain the final velocity: >>> from fluids import * >>> V = 2.0 >>> D = 150E-6 >>> rho = 1.3 >>> rhol = 700. >>> mu = 1E-5 >>> for i in range(10): ... Re = Reynolds(V=V, rho=rho, mu=mu, D=D) ... Cd = drag_sphere(Re) ... K = K_Sounders_Brown_theoretical(D=D, Cd=Cd) ... V = v_Sounders_Brown(K, rhol=rhol, rhog=rho) ... print(V) 0.760933074177 0.562429393401 0.507328950507 0.489571420955 0.483560219469 0.481490760336 0.480774149346 0.480525499591 0.480439162498 0.480409176902 The use of Sounders-Brown constants can be replaced as follows (the v_terminal method includes its own solver for terminal velocity): >>> from fluids.drag import v_terminal >>> v_terminal(D=D, rhop=rhol, rho=rho, mu=mu) 0.4803932186998833 Examples -------- >>> K_Sounders_Brown_theoretical(D=150E-6, Cd=0.5) 0.06263114241333939 References ---------- .. [1] Svrcek, W. Y., and W. D. Monnery. "Design Two-Phase Separators within the Right Limits" Chemical Engineering Progress, (October 1, 1993): 53-60. ''' return (4.0*g*D/(3.0*Cd))**0.5fluids-0.1.78/fluids/core.py0000644000175000017500000022062013632560624014432 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import sin, exp, pi, fabs, copysign from fluids.constants import g, R from fluids.numerics import numpy as np __all__ = ['Reynolds', 'Prandtl', 'Grashof', 'Nusselt', 'Sherwood', 'Rayleigh', 'Schmidt', 'Peclet_heat', 'Peclet_mass', 'Fourier_heat', 'Fourier_mass', 'Graetz_heat', 'Lewis', 'Weber', 'Mach', 'Knudsen', 'Bond', 'Dean', 'Morton', 'Froude', 'Froude_densimetric', 'Strouhal', 'Biot', 'Stanton', 'Euler', 'Cavitation', 'Eckert', 'Jakob', 'Power_number', 'Stokes_number', 'Drag', 'Capillary', 'Bejan_L', 'Bejan_p', 'Boiling', 'Confinement', 'Archimedes', 'Ohnesorge', 'Suratman', 'Hagen', 'thermal_diffusivity', 'c_ideal_gas', 'relative_roughness', 'nu_mu_converter', 'gravity', 'K_from_f', 'K_from_L_equiv', 'L_equiv_from_K', 'L_from_K', 'dP_from_K', 'head_from_K', 'head_from_P', 'P_from_head', 'Eotvos', ] ### Not quite dimensionless groups def thermal_diffusivity(k, rho, Cp): r'''Calculates thermal diffusivity or `alpha` for a fluid with the given parameters. .. math:: \alpha = \frac{k}{\rho Cp} Parameters ---------- k : float Thermal conductivity, [W/m/K] rho : float Density, [kg/m^3] Cp : float Heat capacity, [J/kg/K] Returns ------- alpha : float Thermal diffusivity, [m^2/s] Notes ----- Examples -------- >>> thermal_diffusivity(k=0.02, rho=1., Cp=1000.) 2e-05 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' return k/(rho*Cp) ### Ideal gas fluid properties def c_ideal_gas(T, k, MW): r'''Calculates speed of sound `c` in an ideal gas at temperature T. .. math:: c = \sqrt{kR_{specific}T} Parameters ---------- T : float Temperature of fluid, [K] k : float Isentropic exponent of fluid, [-] MW : float Molecular weight of fluid, [g/mol] Returns ------- c : float Speed of sound in fluid, [m/s] Notes ----- Used in compressible flow calculations. Note that the gas constant used is the specific gas constant: .. math:: R_{specific} = R\frac{1000}{MW} Examples -------- >>> c_ideal_gas(T=303, k=1.4, MW=28.96) 348.9820953185441 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' Rspecific = R*1000./MW return (k*Rspecific*T)**0.5 ### Dimensionless groups with documentation def Reynolds(V, D, rho=None, mu=None, nu=None): r'''Calculates Reynolds number or `Re` for a fluid with the given properties for the specified velocity and diameter. .. math:: Re = \frac{D \cdot V}{\nu} = \frac{\rho V D}{\mu} Inputs either of any of the following sets: * V, D, density `rho` and kinematic viscosity `mu` * V, D, and dynamic viscosity `nu` Parameters ---------- V : float Velocity [m/s] D : float Diameter [m] rho : float, optional Density, [kg/m^3] mu : float, optional Dynamic viscosity, [Pa*s] nu : float, optional Kinematic viscosity, [m^2/s] Returns ------- Re : float Reynolds number [] Notes ----- .. math:: Re = \frac{\text{Momentum}}{\text{Viscosity}} An error is raised if none of the required input sets are provided. Examples -------- >>> Reynolds(2.5, 0.25, 1.1613, 1.9E-5) 38200.65789473684 >>> Reynolds(2.5, 0.25, nu=1.636e-05) 38202.93398533008 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if rho and mu: nu = mu/rho elif not nu: raise Exception('Either density and viscosity, or dynamic viscosity, \ is needed') return V*D/nu def Peclet_heat(V, L, rho=None, Cp=None, k=None, alpha=None): r'''Calculates heat transfer Peclet number or `Pe` for a specified velocity `V`, characteristic length `L`, and specified properties for the given fluid. .. math:: Pe = \frac{VL\rho C_p}{k} = \frac{LV}{\alpha} Inputs either of any of the following sets: * V, L, density `rho`, heat capacity `Cp`, and thermal conductivity `k` * V, L, and thermal diffusivity `alpha` Parameters ---------- V : float Velocity [m/s] L : float Characteristic length [m] rho : float, optional Density, [kg/m^3] Cp : float, optional Heat capacity, [J/kg/K] k : float, optional Thermal conductivity, [W/m/K] alpha : float, optional Thermal diffusivity, [m^2/s] Returns ------- Pe : float Peclet number (heat) [] Notes ----- .. math:: Pe = \frac{\text{Bulk heat transfer}}{\text{Conduction heat transfer}} An error is raised if none of the required input sets are provided. Examples -------- >>> Peclet_heat(1.5, 2, 1000., 4000., 0.6) 20000000.0 >>> Peclet_heat(1.5, 2, alpha=1E-7) 30000000.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if rho and Cp and k: alpha = k/(rho*Cp) elif not alpha: raise Exception('Either heat capacity and thermal conductivity and\ density, or thermal diffusivity is needed') return V*L/alpha def Peclet_mass(V, L, D): r'''Calculates mass transfer Peclet number or `Pe` for a specified velocity `V`, characteristic length `L`, and diffusion coefficient `D`. .. math:: Pe = \frac{L V}{D} Parameters ---------- V : float Velocity [m/s] L : float Characteristic length [m] D : float Diffusivity of a species, [m^2/s] Returns ------- Pe : float Peclet number (mass) [] Notes ----- .. math:: Pe = \frac{\text{Advective transport rate}}{\text{Diffusive transport rate}} Examples -------- >>> Peclet_mass(1.5, 2, 1E-9) 3000000000.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return V*L/D def Fourier_heat(t, L, rho=None, Cp=None, k=None, alpha=None): r'''Calculates heat transfer Fourier number or `Fo` for a specified time `t`, characteristic length `L`, and specified properties for the given fluid. .. math:: Fo = \frac{k t}{C_p \rho L^2} = \frac{\alpha t}{L^2} Inputs either of any of the following sets: * t, L, density `rho`, heat capacity `Cp`, and thermal conductivity `k` * t, L, and thermal diffusivity `alpha` Parameters ---------- t : float time [s] L : float Characteristic length [m] rho : float, optional Density, [kg/m^3] Cp : float, optional Heat capacity, [J/kg/K] k : float, optional Thermal conductivity, [W/m/K] alpha : float, optional Thermal diffusivity, [m^2/s] Returns ------- Fo : float Fourier number (heat) [] Notes ----- .. math:: Fo = \frac{\text{Heat conduction rate}} {\text{Rate of thermal energy storage in a solid}} An error is raised if none of the required input sets are provided. Examples -------- >>> Fourier_heat(t=1.5, L=2, rho=1000., Cp=4000., k=0.6) 5.625e-08 >>> Fourier_heat(1.5, 2, alpha=1E-7) 3.75e-08 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if rho and Cp and k: alpha = k/(rho*Cp) elif not alpha: raise Exception('Either heat capacity and thermal conductivity and \ density, or thermal diffusivity is needed') return t*alpha/L**2 def Fourier_mass(t, L, D): r'''Calculates mass transfer Fourier number or `Fo` for a specified time `t`, characteristic length `L`, and diffusion coefficient `D`. .. math:: Fo = \frac{D t}{L^2} Parameters ---------- t : float time [s] L : float Characteristic length [m] D : float Diffusivity of a species, [m^2/s] Returns ------- Fo : float Fourier number (mass) [] Notes ----- .. math:: Fo = \frac{\text{Diffusive transport rate}}{\text{Storage rate}} Examples -------- >>> Fourier_mass(t=1.5, L=2, D=1E-9) 3.7500000000000005e-10 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return t*D/L**2 def Graetz_heat(V, D, x, rho=None, Cp=None, k=None, alpha=None): r'''Calculates Graetz number or `Gz` for a specified velocity `V`, diameter `D`, axial distance `x`, and specified properties for the given fluid. .. math:: Gz = \frac{VD^2\cdot C_p \rho}{x\cdot k} = \frac{VD^2}{x \alpha} Inputs either of any of the following sets: * V, D, x, density `rho`, heat capacity `Cp`, and thermal conductivity `k` * V, D, x, and thermal diffusivity `alpha` Parameters ---------- V : float Velocity, [m/s] D : float Diameter [m] x : float Axial distance [m] rho : float, optional Density, [kg/m^3] Cp : float, optional Heat capacity, [J/kg/K] k : float, optional Thermal conductivity, [W/m/K] alpha : float, optional Thermal diffusivity, [m^2/s] Returns ------- Gz : float Graetz number [] Notes ----- .. math:: Gz = \frac{\text{Time for radial heat diffusion in a fluid by conduction}} {\text{Time taken by fluid to reach distance x}} .. math:: Gz = \frac{D}{x}RePr An error is raised if none of the required input sets are provided. Examples -------- >>> Graetz_heat(1.5, 0.25, 5, 800., 2200., 0.6) 55000.0 >>> Graetz_heat(1.5, 0.25, 5, alpha=1E-7) 187500.0 References ---------- .. [1] Bergman, Theodore L., Adrienne S. Lavine, Frank P. Incropera, and David P. DeWitt. Introduction to Heat Transfer. 6E. Hoboken, NJ: Wiley, 2011. ''' if rho and Cp and k: alpha = k/(rho*Cp) elif not alpha: raise Exception('Either heat capacity and thermal conductivity and\ density, or thermal diffusivity is needed') return V*D**2/(x*alpha) def Schmidt(D, mu=None, nu=None, rho=None): r'''Calculates Schmidt number or `Sc` for a fluid with the given parameters. .. math:: Sc = \frac{\mu}{D\rho} = \frac{\nu}{D} Inputs can be any of the following sets: * Diffusivity, dynamic viscosity, and density * Diffusivity and kinematic viscosity Parameters ---------- D : float Diffusivity of a species, [m^2/s] mu : float, optional Dynamic viscosity, [Pa*s] nu : float, optional Kinematic viscosity, [m^2/s] rho : float, optional Density, [kg/m^3] Returns ------- Sc : float Schmidt number [] Notes ----- .. math:: Sc =\frac{\text{kinematic viscosity}}{\text{molecular diffusivity}} = \frac{\text{viscous diffusivity}}{\text{species diffusivity}} An error is raised if none of the required input sets are provided. Examples -------- >>> Schmidt(D=2E-6, mu=4.61E-6, rho=800) 0.00288125 >>> Schmidt(D=1E-9, nu=6E-7) 599.9999999999999 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if rho and mu: return mu/(rho*D) elif nu: return nu/D else: raise Exception('Insufficient information provided for Schmidt number calculation') def Lewis(D=None, alpha=None, Cp=None, k=None, rho=None): r'''Calculates Lewis number or `Le` for a fluid with the given parameters. .. math:: Le = \frac{k}{\rho C_p D} = \frac{\alpha}{D} Inputs can be either of the following sets: * Diffusivity and Thermal diffusivity * Diffusivity, heat capacity, thermal conductivity, and density Parameters ---------- D : float Diffusivity of a species, [m^2/s] alpha : float, optional Thermal diffusivity, [m^2/s] Cp : float, optional Heat capacity, [J/kg/K] k : float, optional Thermal conductivity, [W/m/K] rho : float, optional Density, [kg/m^3] Returns ------- Le : float Lewis number [] Notes ----- .. math:: Le=\frac{\text{Thermal diffusivity}}{\text{Mass diffusivity}} = \frac{Sc}{Pr} An error is raised if none of the required input sets are provided. Examples -------- >>> Lewis(D=22.6E-6, alpha=19.1E-6) 0.8451327433628318 >>> Lewis(D=22.6E-6, rho=800., k=.2, Cp=2200) 0.00502815768302494 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. .. [3] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. ''' if k and Cp and rho: alpha = k/(rho*Cp) elif alpha: pass else: raise Exception('Insufficient information provided for Le calculation') return alpha/D def Weber(V, L, rho, sigma): r'''Calculates Weber number, `We`, for a fluid with the given density, surface tension, velocity, and geometric parameter (usually diameter of bubble). .. math:: We = \frac{V^2 L\rho}{\sigma} Parameters ---------- V : float Velocity of fluid, [m/s] L : float Characteristic length, typically bubble diameter [m] rho : float Density of fluid, [kg/m^3] sigma : float Surface tension, [N/m] Returns ------- We : float Weber number [] Notes ----- Used in bubble calculations. .. math:: We = \frac{\text{inertial force}}{\text{surface tension force}} Examples -------- >>> Weber(V=0.18, L=0.001, rho=900., sigma=0.01) 2.916 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. .. [3] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. ''' return V**2*L*rho/sigma def Mach(V, c): r'''Calculates Mach number or `Ma` for a fluid of velocity `V` with speed of sound `c`. .. math:: Ma = \frac{V}{c} Parameters ---------- V : float Velocity of fluid, [m/s] c : float Speed of sound in fluid, [m/s] Returns ------- Ma : float Mach number [] Notes ----- Used in compressible flow calculations. .. math:: Ma = \frac{\text{fluid velocity}}{\text{sonic velocity}} Examples -------- >>> Mach(33., 330) 0.1 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return V/c def Confinement(D, rhol, rhog, sigma, g=g): r'''Calculates Confinement number or `Co` for a fluid in a channel of diameter `D` with liquid and gas densities `rhol` and `rhog` and surface tension `sigma`, under the influence of gravitational force `g`. .. math:: \text{Co}=\frac{\left[\frac{\sigma}{g(\rho_l-\rho_g)}\right]^{0.5}}{D} Parameters ---------- D : float Diameter of channel, [m] rhol : float Density of liquid phase, [kg/m^3] rhog : float Density of gas phase, [kg/m^3] sigma : float Surface tension between liquid-gas phase, [N/m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- Co : float Confinement number [-] Notes ----- Used in two-phase pressure drop and heat transfer correlations. First used in [1]_ according to [3]_. .. math:: \text{Co} = \frac{\frac{\text{surface tension force}} {\text{buoyancy force}}}{\text{Channel area}} Examples -------- >>> Confinement(0.001, 1077, 76.5, 4.27E-3) 0.6596978265315191 References ---------- .. [1] Cornwell, Keith, and Peter A. Kew. "Boiling in Small Parallel Channels." In Energy Efficiency in Process Technology, edited by Dr P. A. Pilavachi, 624-638. Springer Netherlands, 1993. doi:10.1007/978-94-011-1454-7_56. .. [2] Kandlikar, Satish G. Heat Transfer and Fluid Flow in Minichannels and Microchannels. Elsevier, 2006. .. [3] Tran, T. N, M. -C Chyu, M. W Wambsganss, and D. M France. Two-Phase Pressure Drop of Refrigerants during Flow Boiling in Small Channels: An Experimental Investigation and Correlation Development." International Journal of Multiphase Flow 26, no. 11 (November 1, 2000): 1739-54. doi:10.1016/S0301-9322(99)00119-6. ''' return (sigma/(g*(rhol-rhog)))**0.5/D def Morton(rhol, rhog, mul, sigma, g=g): r'''Calculates Morton number or `Mo` for a liquid and vapor with the specified properties, under the influence of gravitational force `g`. .. math:: Mo = \frac{g \mu_l^4(\rho_l - \rho_g)}{\rho_l^2 \sigma^3} Parameters ---------- rhol : float Density of liquid phase, [kg/m^3] rhog : float Density of gas phase, [kg/m^3] mul : float Viscosity of liquid phase, [Pa*s] sigma : float Surface tension between liquid-gas phase, [N/m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- Mo : float Morton number, [-] Notes ----- Used in modeling bubbles in liquid. Examples -------- >>> Morton(1077.0, 76.5, 4.27E-3, 0.023) 2.311183104430743e-07 References ---------- .. [1] Kunes, Josef. Dimensionless Physical Quantities in Science and Engineering. Elsevier, 2012. .. [2] Yan, Xiaokang, Kaixin Zheng, Yan Jia, Zhenyong Miao, Lijun Wang, Yijun Cao, and Jiongtian Liu. “Drag Coefficient Prediction of a Single Bubble Rising in Liquids.” Industrial & Engineering Chemistry Research, April 2, 2018. https://doi.org/10.1021/acs.iecr.7b04743. ''' mul2 = mul*mul return g*mul2*mul2*(rhol - rhog)/(rhol*rhol*sigma*sigma*sigma) def Knudsen(path, L): r'''Calculates Knudsen number or `Kn` for a fluid with mean free path `path` and for a characteristic length `L`. .. math:: Kn = \frac{\lambda}{L} Parameters ---------- path : float Mean free path between molecular collisions, [m] L : float Characteristic length, [m] Returns ------- Kn : float Knudsen number [] Notes ----- Used in mass transfer calculations. .. math:: Kn = \frac{\text{Mean free path length}}{\text{Characteristic length}} Examples -------- >>> Knudsen(1e-10, .001) 1e-07 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return path/L def Prandtl(Cp=None, k=None, mu=None, nu=None, rho=None, alpha=None): r'''Calculates Prandtl number or `Pr` for a fluid with the given parameters. .. math:: Pr = \frac{C_p \mu}{k} = \frac{\nu}{\alpha} = \frac{C_p \rho \nu}{k} Inputs can be any of the following sets: * Heat capacity, dynamic viscosity, and thermal conductivity * Thermal diffusivity and kinematic viscosity * Heat capacity, kinematic viscosity, thermal conductivity, and density Parameters ---------- Cp : float Heat capacity, [J/kg/K] k : float Thermal conductivity, [W/m/K] mu : float, optional Dynamic viscosity, [Pa*s] nu : float, optional Kinematic viscosity, [m^2/s] rho : float Density, [kg/m^3] alpha : float Thermal diffusivity, [m^2/s] Returns ------- Pr : float Prandtl number [] Notes ----- .. math:: Pr=\frac{\text{kinematic viscosity}}{\text{thermal diffusivity}} = \frac{\text{momentum diffusivity}}{\text{thermal diffusivity}} An error is raised if none of the required input sets are provided. Examples -------- >>> Prandtl(Cp=1637., k=0.010, mu=4.61E-6) 0.754657 >>> Prandtl(Cp=1637., k=0.010, nu=6.4E-7, rho=7.1) 0.7438528 >>> Prandtl(nu=6.3E-7, alpha=9E-7) 0.7000000000000001 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. .. [3] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. ''' if k and Cp and mu: return Cp*mu/k elif nu and rho and Cp and k: return nu*rho*Cp/k elif nu and alpha: return nu/alpha else: raise Exception('Insufficient information provided for Pr calculation') def Grashof(L, beta, T1, T2=0, rho=None, mu=None, nu=None, g=g): r'''Calculates Grashof number or `Gr` for a fluid with the given properties, temperature difference, and characteristic length. .. math:: Gr = \frac{g\beta (T_s-T_\infty)L^3}{\nu^2} = \frac{g\beta (T_s-T_\infty)L^3\rho^2}{\mu^2} Inputs either of any of the following sets: * L, beta, T1 and T2, and density `rho` and kinematic viscosity `mu` * L, beta, T1 and T2, and dynamic viscosity `nu` Parameters ---------- L : float Characteristic length [m] beta : float Volumetric thermal expansion coefficient [1/K] T1 : float Temperature 1, usually a film temperature [K] T2 : float, optional Temperature 2, usually a bulk temperature (or 0 if only a difference is provided to the function) [K] rho : float, optional Density, [kg/m^3] mu : float, optional Dynamic viscosity, [Pa*s] nu : float, optional Kinematic viscosity, [m^2/s] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- Gr : float Grashof number [] Notes ----- .. math:: Gr = \frac{\text{Buoyancy forces}}{\text{Viscous forces}} An error is raised if none of the required input sets are provided. Used in free convection problems only. Examples -------- Example 4 of [1]_, p. 1-21 (matches): >>> Grashof(L=0.9144, beta=0.000933, T1=178.2, rho=1.1613, mu=1.9E-5) 4656936556.178915 >>> Grashof(L=0.9144, beta=0.000933, T1=378.2, T2=200, nu=1.636e-05) 4657491516.530312 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if rho and mu: nu = mu/rho elif not nu: raise Exception('Either density and viscosity, or dynamic viscosity, \ is needed') return g*beta*abs(T2-T1)*L**3/nu**2 def Bond(rhol, rhog, sigma, L): r'''Calculates Bond number, `Bo` also known as Eotvos number, for a fluid with the given liquid and gas densities, surface tension, and geometric parameter (usually length). .. math:: Bo = \frac{g(\rho_l-\rho_g)L^2}{\sigma} Parameters ---------- rhol : float Density of liquid, [kg/m^3] rhog : float Density of gas, [kg/m^3] sigma : float Surface tension, [N/m] L : float Characteristic length, [m] Returns ------- Bo : float Bond number [] Examples -------- >>> Bond(1000., 1.2, .0589, 2) 665187.2339558573 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return (g*(rhol-rhog)*L**2/sigma) Eotvos = Bond def Rayleigh(Pr, Gr): r'''Calculates Rayleigh number or `Ra` using Prandtl number `Pr` and Grashof number `Gr` for a fluid with the given properties, temperature difference, and characteristic length used to calculate `Gr` and `Pr`. .. math:: Ra = PrGr Parameters ---------- Pr : float Prandtl number [] Gr : float Grashof number [] Returns ------- Ra : float Rayleigh number [] Notes ----- Used in free convection problems only. Examples -------- >>> Rayleigh(1.2, 4.6E9) 5520000000.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return Pr*Gr def Froude(V, L, g=g, squared=False): r'''Calculates Froude number `Fr` for velocity `V` and geometric length `L`. If desired, gravity can be specified as well. Normally the function returns the result of the equation below; Froude number is also often said to be defined as the square of the equation below. .. math:: Fr = \frac{V}{\sqrt{gL}} Parameters ---------- V : float Velocity of the particle or fluid, [m/s] L : float Characteristic length, no typical definition [m] g : float, optional Acceleration due to gravity, [m/s^2] squared : bool, optional Whether to return the squared form of Froude number Returns ------- Fr : float Froude number, [-] Notes ----- Many alternate definitions including density ratios have been used. .. math:: Fr = \frac{\text{Inertial Force}}{\text{Gravity Force}} Examples -------- >>> Froude(1.83, L=2., g=1.63) 1.0135432593877318 >>> Froude(1.83, L=2., squared=True) 0.17074638128208924 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' Fr = V/(L*g)**0.5 if squared: Fr *= Fr return Fr def Froude_densimetric(V, L, rho1, rho2, heavy=True, g=g): r'''Calculates the densimetric Froude number :math:`Fr_{den}` for velocity `V` geometric length `L`, heavier fluid density `rho1`, and lighter fluid density `rho2`. If desired, gravity can be specified as well. Depending on the application, this dimensionless number may be defined with the heavy phase or the light phase density in the numerator of the square root. For some applications, both need to be calculated. The default is to calculate with the heavy liquid ensity on top; set `heavy` to False to reverse this. .. math:: Fr = \frac{V}{\sqrt{gL}} \sqrt{\frac{\rho_\text{(1 or 2)}} {\rho_1 - \rho_2}} Parameters ---------- V : float Velocity of the specified phase, [m/s] L : float Characteristic length, no typical definition [m] rho1 : float Density of the heavier phase, [kg/m^3] rho2 : float Density of the lighter phase, [kg/m^3] heavy : bool, optional Whether or not the density used in the numerator is the heavy phase or the light phase, [-] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- Fr_den : float Densimetric Froude number, [-] Notes ----- Many alternate definitions including density ratios have been used. .. math:: Fr = \frac{\text{Inertial Force}}{\text{Gravity Force}} Where the gravity force is reduced by the relative densities of one fluid in another. Note that an Exception will be raised if rho1 > rho2, as the square root becomes negative. Examples -------- >>> Froude_densimetric(1.83, L=2., rho1=800, rho2=1.2, g=9.81) 0.4134543386272418 >>> Froude_densimetric(1.83, L=2., rho1=800, rho2=1.2, g=9.81, heavy=False) 0.016013017679205096 References ---------- .. [1] Hall, A, G Stobie, and R Steven. "Further Evaluation of the Performance of Horizontally Installed Orifice Plate and Cone Differential Pressure Meters with Wet Gas Flows." In International SouthEast Asia Hydrocarbon Flow Measurement Workshop, KualaLumpur, Malaysia, 2008. ''' if heavy: rho3 = rho1 else: rho3 = rho2 return V/((g*L)**0.5)*(rho3/(rho1 - rho2))**0.5 def Strouhal(f, L, V): r'''Calculates Strouhal number `St` for a characteristic frequency `f`, characteristic length `L`, and velocity `V`. .. math:: St = \frac{fL}{V} Parameters ---------- f : float Characteristic frequency, usually that of vortex shedding, [Hz] L : float Characteristic length, [m] V : float Velocity of the fluid, [m/s] Returns ------- St : float Strouhal number, [-] Notes ----- Sometimes abbreviated to S or Sr. .. math:: St = \frac{\text{Characteristic flow time}} {\text{Period of oscillation}} Examples -------- >>> Strouhal(8, 2., 4.) 4.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return f*L/V def Nusselt(h, L, k): r'''Calculates Nusselt number `Nu` for a heat transfer coefficient `h`, characteristic length `L`, and thermal conductivity `k`. .. math:: Nu = \frac{hL}{k} Parameters ---------- h : float Heat transfer coefficient, [W/m^2/K] L : float Characteristic length, no typical definition [m] k : float Thermal conductivity of fluid [W/m/K] Returns ------- Nu : float Nusselt number, [-] Notes ----- Do not confuse k, the thermal conductivity of the fluid, with that of within a solid object associated with! .. math:: Nu = \frac{\text{Convective heat transfer}} {\text{Conductive heat transfer}} Examples -------- >>> Nusselt(1000., 1.2, 300.) 4.0 >>> Nusselt(10000., .01, 4000.) 0.025 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Bergman, Theodore L., Adrienne S. Lavine, Frank P. Incropera, and David P. DeWitt. Introduction to Heat Transfer. 6E. Hoboken, NJ: Wiley, 2011. ''' return h*L/k def Sherwood(K, L, D): r'''Calculates Sherwood number `Sh` for a mass transfer coefficient `K`, characteristic length `L`, and diffusivity `D`. .. math:: Sh = \frac{KL}{D} Parameters ---------- K : float Mass transfer coefficient, [m/s] L : float Characteristic length, no typical definition [m] D : float Diffusivity of a species [m/s^2] Returns ------- Sh : float Sherwood number, [-] Notes ----- .. math:: Sh = \frac{\text{Mass transfer by convection}} {\text{Mass transfer by diffusion}} = \frac{K}{D/L} Examples -------- >>> Sherwood(1000., 1.2, 300.) 4.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return K*L/D def Biot(h, L, k): r'''Calculates Biot number `Br` for heat transfer coefficient `h`, geometric length `L`, and thermal conductivity `k`. .. math:: Bi=\frac{hL}{k} Parameters ---------- h : float Heat transfer coefficient, [W/m^2/K] L : float Characteristic length, no typical definition [m] k : float Thermal conductivity, within the object [W/m/K] Returns ------- Bi : float Biot number, [-] Notes ----- Do not confuse k, the thermal conductivity within the object, with that of the medium h is calculated with! .. math:: Bi = \frac{\text{Surface thermal resistance}} {\text{Internal thermal resistance}} Examples -------- >>> Biot(1000., 1.2, 300.) 4.0 >>> Biot(10000., .01, 4000.) 0.025 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return h*L/k def Stanton(h, V, rho, Cp): r'''Calculates Stanton number or `St` for a specified heat transfer coefficient `h`, velocity `V`, density `rho`, and heat capacity `Cp`. .. math:: St = \frac{h}{V\rho Cp} Parameters ---------- h : float Heat transfer coefficient, [W/m^2/K] V : float Velocity, [m/s] rho : float Density, [kg/m^3] Cp : float Heat capacity, [J/kg/K] Returns ------- St : float Stanton number [] Notes ----- .. math:: St = \frac{\text{Heat transfer coefficient}}{\text{Thermal capacity}} Examples -------- >>> Stanton(5000, 5, 800, 2000.) 0.000625 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [1] Bergman, Theodore L., Adrienne S. Lavine, Frank P. Incropera, and David P. DeWitt. Introduction to Heat Transfer. 6E. Hoboken, NJ: Wiley, 2011. ''' return h/(V*rho*Cp) def Euler(dP, rho, V): r'''Calculates Euler number or `Eu` for a fluid of velocity `V` and density `rho` experiencing a pressure drop `dP`. .. math:: Eu = \frac{\Delta P}{\rho V^2} Parameters ---------- dP : float Pressure drop experience by the fluid, [Pa] rho : float Density of the fluid, [kg/m^3] V : float Velocity of fluid, [m/s] Returns ------- Eu : float Euler number [] Notes ----- Used in pressure drop calculations. Rarely, this number is divided by two. Named after Leonhard Euler applied calculus to fluid dynamics. .. math:: Eu = \frac{\text{Pressure drop}}{2\cdot \text{velocity head}} Examples -------- >>> Euler(1E5, 1000., 4) 6.25 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return dP/(rho*V**2) def Cavitation(P, Psat, rho, V): r'''Calculates Cavitation number or `Ca` for a fluid of velocity `V` with a pressure `P`, vapor pressure `Psat`, and density `rho`. .. math:: Ca = \sigma_c = \sigma = \frac{P-P_{sat}}{\frac{1}{2}\rho V^2} Parameters ---------- P : float Internal pressure of the fluid, [Pa] Psat : float Vapor pressure of the fluid, [Pa] rho : float Density of the fluid, [kg/m^3] V : float Velocity of fluid, [m/s] Returns ------- Ca : float Cavitation number [] Notes ----- Used in determining if a flow through a restriction will cavitate. Sometimes, the multiplication by 2 will be omitted; .. math:: Ca = \frac{\text{Pressure - Vapor pressure}} {\text{Inertial pressure}} Examples -------- >>> Cavitation(2E5, 1E4, 1000, 10) 3.8 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return (P-Psat)/(0.5*rho*V**2) def Eckert(V, Cp, dT): r'''Calculates Eckert number or `Ec` for a fluid of velocity `V` with a heat capacity `Cp`, between two temperature given as `dT`. .. math:: Ec = \frac{V^2}{C_p \Delta T} Parameters ---------- V : float Velocity of fluid, [m/s] Cp : float Heat capacity of the fluid, [J/kg/K] dT : float Temperature difference, [K] Returns ------- Ec : float Eckert number [] Notes ----- Used in certain heat transfer calculations. Fairly rare. .. math:: Ec = \frac{\text{Kinetic energy} }{ \text{Enthalpy difference}} Examples -------- >>> Eckert(10, 2000., 25.) 0.002 References ---------- .. [1] Goldstein, Richard J. ECKERT NUMBER. Thermopedia. Hemisphere, 2011. 10.1615/AtoZ.e.eckert_number ''' return V**2/(Cp*dT) def Jakob(Cp, Hvap, Te): r'''Calculates Jakob number or `Ja` for a boiling fluid with sensible heat capacity `Cp`, enthalpy of vaporization `Hvap`, and boiling at `Te` degrees above its saturation boiling point. .. math:: Ja = \frac{C_{P}\Delta T_e}{\Delta H_{vap}} Parameters ---------- Cp : float Heat capacity of the fluid, [J/kg/K] Hvap : float Enthalpy of vaporization of the fluid at its saturation temperature [J/kg] Te : float Temperature difference above the fluid's saturation boiling temperature, [K] Returns ------- Ja : float Jakob number [] Notes ----- Used in boiling heat transfer analysis. Fairly rare. .. math:: Ja = \frac{\Delta \text{Sensible heat}}{\Delta \text{Latent heat}} Examples -------- >>> Jakob(4000., 2E6, 10.) 0.02 References ---------- .. [1] Bergman, Theodore L., Adrienne S. Lavine, Frank P. Incropera, and David P. DeWitt. Introduction to Heat Transfer. 6E. Hoboken, NJ: Wiley, 2011. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return Cp*Te/Hvap def Power_number(P, L, N, rho): r'''Calculates power number, `Po`, for an agitator applying a specified power `P` with a characteristic length `L`, rotational speed `N`, to a fluid with a specified density `rho`. .. math:: Po = \frac{P}{\rho N^3 D^5} Parameters ---------- P : float Power applied, [W] L : float Characteristic length, typically agitator diameter [m] N : float Speed [revolutions/second] rho : float Density of fluid, [kg/m^3] Returns ------- Po : float Power number [] Notes ----- Used in mixing calculations. .. math:: Po = \frac{\text{Power}}{\text{Rotational inertia}} Examples -------- >>> Power_number(P=180, L=0.01, N=2.5, rho=800.) 144000000.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return P/(rho*N**3*L**5) def Drag(F, A, V, rho): r'''Calculates drag coefficient `Cd` for a given drag force `F`, projected area `A`, characteristic velocity `V`, and density `rho`. .. math:: C_D = \frac{F_d}{A\cdot\frac{1}{2}\rho V^2} Parameters ---------- F : float Drag force, [N] A : float Projected area, [m^2] V : float Characteristic velocity, [m/s] rho : float Density, [kg/m^3] Returns ------- Cd : float Drag coefficient, [-] Notes ----- Used in flow around objects, or objects flowing within a fluid. .. math:: C_D = \frac{\text{Drag forces}}{\text{Projected area}\cdot \text{Velocity head}} Examples -------- >>> Drag(1000, 0.0001, 5, 2000) 400.0 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return F/(A*rho*V**2/2.) def Stokes_number(V, Dp, D, rhop, mu): r'''Calculates Stokes Number for a given characteristic velocity `V`, particle diameter `Dp`, characteristic diameter `D`, particle density `rhop`, and fluid viscosity `mu`. .. math:: \text{Stk} = \frac{\rho_p V D_p^2}{18\mu_f D} Parameters ---------- V : float Characteristic velocity (often superficial), [m/s] Dp : float Particle diameter, [m] D : float Characteristic diameter (ex demister wire diameter or cyclone diameter), [m] rhop : float Particle density, [kg/m^3] mu : float Fluid viscosity, [Pa*s] Returns ------- Stk : float Stokes numer, [-] Notes ----- Used in droplet impaction or collection studies. Examples -------- >>> Stokes_number(V=0.9, Dp=1E-5, D=1E-3, rhop=1000, mu=1E-5) 0.5 References ---------- .. [1] Rhodes, Martin J. Introduction to Particle Technology. Wiley, 2013. .. [2] Al-Dughaither, Abdullah S., Ahmed A. Ibrahim, and Waheed A. Al-Masry. "Investigating Droplet Separation Efficiency in Wire-Mesh Mist Eliminators in Bubble Column." Journal of Saudi Chemical Society 14, no. 4 (October 1, 2010): 331-39. https://doi.org/10.1016/j.jscs.2010.04.001. ''' return rhop*V*(Dp*Dp)/(18.0*mu*D) def Capillary(V, mu, sigma): r'''Calculates Capillary number `Ca` for a characteristic velocity `V`, viscosity `mu`, and surface tension `sigma`. .. math:: Ca = \frac{V \mu}{\sigma} Parameters ---------- V : float Characteristic velocity, [m/s] mu : float Dynamic viscosity, [Pa*s] sigma : float Surface tension, [N/m] Returns ------- Ca : float Capillary number, [-] Notes ----- Used in porous media calculations and film flow calculations. Surface tension may gas-liquid, or liquid-liquid. .. math:: Ca = \frac{\text{Viscous forces}} {\text{Surface forces}} Examples -------- >>> Capillary(1.2, 0.01, .1) 0.12 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Kundu, Pijush K., Ira M. Cohen, and David R. Dowling. Fluid Mechanics. Academic Press, 2012. ''' return V*mu/sigma def Archimedes(L, rhof, rhop, mu, g=g): r'''Calculates Archimedes number, `Ar`, for a fluid and particle with the given densities, characteristic length, viscosity, and gravity (usually diameter of particle). .. math:: Ar = \frac{L^3 \rho_f(\rho_p-\rho_f)g}{\mu^2} Parameters ---------- L : float Characteristic length, typically particle diameter [m] rhof : float Density of fluid, [kg/m^3] rhop : float Density of particle, [kg/m^3] mu : float Viscosity of fluid, [N/m] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- Ar : float Archimedes number [] Notes ----- Used in fluid-particle interaction calculations. .. math:: Ar = \frac{\text{Gravitational force}}{\text{Viscous force}} Examples -------- >>> Archimedes(0.002, 2., 3000, 1E-3) 470.4053872 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return L**3*rhof*(rhop-rhof)*g/mu**2 def Ohnesorge(L, rho, mu, sigma): r'''Calculates Ohnesorge number, `Oh`, for a fluid with the given characteristic length, density, viscosity, and surface tension. .. math:: \text{Oh} = \frac{\mu}{\sqrt{\rho \sigma L }} Parameters ---------- L : float Characteristic length [m] rho : float Density of fluid, [kg/m^3] mu : float Viscosity of fluid, [Pa*s] sigma : float Surface tension, [N/m] Returns ------- Oh : float Ohnesorge number [] Notes ----- Often used in spray calculations. Sometimes given the symbol Z. .. math:: Oh = \frac{\sqrt{\text{We}}}{\text{Re}}= \frac{\text{viscous forces}} {\sqrt{\text{Inertia}\cdot\text{Surface tension}} } Examples -------- >>> Ohnesorge(1E-4, 1000., 1E-3, 1E-1) 0.01 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. ''' return mu/(L*rho*sigma)**0.5 def Suratman(L, rho, mu, sigma): r'''Calculates Suratman number, `Su`, for a fluid with the given characteristic length, density, viscosity, and surface tension. .. math:: \text{Su} = \frac{\rho\sigma L}{\mu^2} Parameters ---------- L : float Characteristic length [m] rho : float Density of fluid, [kg/m^3] mu : float Viscosity of fluid, [Pa*s] sigma : float Surface tension, [N/m] Returns ------- Su : float Suratman number [] Notes ----- Also known as Laplace number. Used in two-phase flow, especially the bubbly-slug regime. No confusion regarding the definition of this group has been observed. .. math:: \text{Su} = \frac{\text{Re}^2}{\text{We}} =\frac{\text{Inertia}\cdot \text{Surface tension} }{\text{(viscous forces)}^2} The oldest reference to this group found by the author is in 1963, from [2]_. Examples -------- >>> Suratman(1E-4, 1000., 1E-3, 1E-1) 10000.0 References ---------- .. [1] Sen, Nilava. "Suratman Number in Bubble-to-Slug Flow Pattern Transition under Microgravity." Acta Astronautica 65, no. 3-4 (August 2009): 423-28. doi:10.1016/j.actaastro.2009.02.013. .. [2] Catchpole, John P., and George. Fulford. "DIMENSIONLESS GROUPS." Industrial & Engineering Chemistry 58, no. 3 (March 1, 1966): 46-60. doi:10.1021/ie50675a012. ''' return rho*sigma*L/(mu*mu) def Hagen(Re, fd): r'''Calculates Hagen number, `Hg`, for a fluid with the given Reynolds number and friction factor. .. math:: \text{Hg} = \frac{f_d}{2} Re^2 = \frac{1}{\rho} \frac{\Delta P}{\Delta z} \frac{D^3}{\nu^2} = \frac{\rho\Delta P D^3}{\mu^2 \Delta z} Parameters ---------- Re : float Reynolds number [-] fd : float, optional Darcy friction factor, [-] Returns ------- Hg : float Hagen number, [-] Notes ----- Introduced in [1]_; further use of it is mostly of the correlations introduced in [1]_. Notable for use use in correlations, because it does not have any dependence on velocity. This expression is useful when designing backwards with a pressure drop spec already known. Examples -------- Example from [3]_: >>> Hagen(Re=2610, fd=1.935235) 6591507.17175 References ---------- .. [1] Martin, Holger. "The Generalized Lévêque Equation and Its Practical Use for the Prediction of Heat and Mass Transfer Rates from Pressure Drop." Chemical Engineering Science, Jean-Claude Charpentier Festschrift Issue, 57, no. 16 (August 1, 2002): 3217-23. https://doi.org/10.1016/S0009-2509(02)00194-X. .. [2] Shah, Ramesh K., and Dusan P. Sekulic. Fundamentals of Heat Exchanger Design. 1st edition. Hoboken, NJ: Wiley, 2002. .. [3] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd edition. Berlin; New York:: Springer, 2010. ''' return 0.5*fd*Re*Re def Bejan_L(dP, L, mu, alpha): r'''Calculates Bejan number of a length or `Be_L` for a fluid with the given parameters flowing over a characteristic length `L` and experiencing a pressure drop `dP`. .. math:: Be_L = \frac{\Delta P L^2}{\mu \alpha} Parameters ---------- dP : float Pressure drop, [Pa] L : float Characteristic length, [m] mu : float, optional Dynamic viscosity, [Pa*s] alpha : float Thermal diffusivity, [m^2/s] Returns ------- Be_L : float Bejan number with respect to length [] Notes ----- Termed a dimensionless number by someone in 1988. Examples -------- >>> Bejan_L(1E4, 1, 1E-3, 1E-6) 10000000000000.0 References ---------- .. [1] Awad, M. M. "The Science and the History of the Two Bejan Numbers." International Journal of Heat and Mass Transfer 94 (March 2016): 101-3. doi:10.1016/j.ijheatmasstransfer.2015.11.073. .. [2] Bejan, Adrian. Convection Heat Transfer. 4E. Hoboken, New Jersey: Wiley, 2013. ''' return dP*L**2/(alpha*mu) def Bejan_p(dP, K, mu, alpha): r'''Calculates Bejan number of a permeability or `Be_p` for a fluid with the given parameters and a permeability `K` experiencing a pressure drop `dP`. .. math:: Be_p = \frac{\Delta P K}{\mu \alpha} Parameters ---------- dP : float Pressure drop, [Pa] K : float Permeability, [m^2] mu : float, optional Dynamic viscosity, [Pa*s] alpha : float Thermal diffusivity, [m^2/s] Returns ------- Be_p : float Bejan number with respect to pore characteristics [] Notes ----- Termed a dimensionless number by someone in 1988. Examples -------- >>> Bejan_p(1E4, 1, 1E-3, 1E-6) 10000000000000.0 References ---------- .. [1] Awad, M. M. "The Science and the History of the Two Bejan Numbers." International Journal of Heat and Mass Transfer 94 (March 2016): 101-3. doi:10.1016/j.ijheatmasstransfer.2015.11.073. .. [2] Bejan, Adrian. Convection Heat Transfer. 4E. Hoboken, New Jersey: Wiley, 2013. ''' return dP*K/(alpha*mu) def Boiling(G, q, Hvap): r'''Calculates Boiling number or `Bg` using heat flux, two-phase mass flux, and heat of vaporization of the fluid flowing. Used in two-phase heat transfer calculations. .. math:: \text{Bg} = \frac{q}{G_{tp} \Delta H_{vap}} Parameters ---------- G : float Two-phase mass flux in a channel (combined liquid and vapor) [kg/m^2/s] q : float Heat flux [W/m^2] Hvap : float Heat of vaporization of the fluid [J/kg] Returns ------- Bg : float Boiling number [-] Notes ----- Most often uses the symbol `Bo` instead of `Bg`, but this conflicts with Bond number. .. math:: \text{Bg} = \frac{\text{mass liquid evaporated / area heat transfer surface}}{\text{mass flow rate fluid / flow cross sectional area}} First defined in [4]_, though not named. Examples -------- >>> Boiling(300, 3000, 800000) 1.25e-05 References ---------- .. [1] Winterton, Richard H.S. BOILING NUMBER. Thermopedia. Hemisphere, 2011. 10.1615/AtoZ.b.boiling_number .. [2] Collier, John G., and John R. Thome. Convective Boiling and Condensation. 3rd edition. Clarendon Press, 1996. .. [3] Stephan, Karl. Heat Transfer in Condensation and Boiling. Translated by C. V. Green.. 1992 edition. Berlin; New York: Springer, 2013. .. [4] W. F. Davidson, P. H. Hardie, C. G. R. Humphreys, A. A. Markson, A. R. Mumford and T. Ravese "Studies of heat transmission through boiler tubing at pressures from 500 to 3300 pounds" Trans. ASME, Vol. 65, 9, February 1943, pp. 553-591. ''' return q/(G*Hvap) def Dean(Re, Di, D): r'''Calculates Dean number, `De`, for a fluid with the Reynolds number `Re`, inner diameter `Di`, and a secondary diameter `D`. `D` may be the diameter of curvature, the diameter of a spiral, or some other dimension. .. math:: \text{De} = \sqrt{\frac{D_i}{D}} \text{Re} = \sqrt{\frac{D_i}{D}} \frac{\rho v D}{\mu} Parameters ---------- Re : float Reynolds number [] Di : float Inner diameter [] D : float Diameter of curvature or outer spiral or other dimension [] Returns ------- De : float Dean number [-] Notes ----- Used in flow in curved geometry. .. math:: \text{De} = \frac{\sqrt{\text{centripetal forces}\cdot \text{inertial forces}}}{\text{viscous forces}} Examples -------- >>> Dean(10000, 0.1, 0.4) 5000.0 References ---------- .. [1] Catchpole, John P., and George. Fulford. "DIMENSIONLESS GROUPS." Industrial & Engineering Chemistry 58, no. 3 (March 1, 1966): 46-60. doi:10.1021/ie50675a012. ''' return (Di/D)**0.5*Re def relative_roughness(D, roughness=1.52e-06): r'''Calculates relative roughness `eD` using a diameter and the roughness of the material of the wall. Default roughness is that of steel. .. math:: eD=\frac{\epsilon}{D} Parameters ---------- D : float Diameter of pipe, [m] roughness : float, optional Roughness of pipe wall [m] Returns ------- eD : float Relative Roughness, [-] Examples -------- >>> relative_roughness(0.5, 1E-4) 0.0002 References ---------- .. [1] Green, Don, and Robert Perry. Perry's Chemical Engineers' Handbook, Eighth Edition. McGraw-Hill Professional, 2007. .. [2] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return roughness/D ### Misc utilities def nu_mu_converter(rho, mu=None, nu=None): r'''Calculates either kinematic or dynamic viscosity, depending on inputs. Used when one type of viscosity is known as well as density, to obtain the other type. Raises an error if both types of viscosity or neither type of viscosity is provided. .. math:: \nu = \frac{\mu}{\rho} .. math:: \mu = \nu\rho Parameters ---------- rho : float Density, [kg/m^3] mu : float, optional Dynamic viscosity, [Pa*s] nu : float, optional Kinematic viscosity, [m^2/s] Returns ------- mu or nu : float Dynamic viscosity, Pa*s or Kinematic viscosity, m^2/s Examples -------- >>> nu_mu_converter(998., nu=1.0E-6) 0.000998 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' if (nu and mu) or not rho or (not nu and not mu): raise Exception('Inputs must be rho and one of mu and nu.') if mu: return mu/rho elif nu: return nu*rho def gravity(latitude, H): r'''Calculates local acceleration due to gravity `g` according to [1]_. Uses latitude and height to calculate `g`. .. math:: g = 9.780356(1 + 0.0052885\sin^2\phi - 0.0000059^22\phi) - 3.086\times 10^{-6} H Parameters ---------- latitude : float Degrees, [degrees] H : float Height above earth's surface [m] Returns ------- g : float Acceleration due to gravity, [m/s^2] Notes ----- Better models, such as EGM2008 exist. Examples -------- >>> gravity(55, 1E4) 9.784151976863571 References ---------- .. [1] Haynes, W.M., Thomas J. Bruno, and David R. Lide. CRC Handbook of Chemistry and Physics. [Boca Raton, FL]: CRC press, 2014. ''' lat = latitude*pi/180 g = 9.780356*(1+0.0052885*sin(lat)**2 -0.0000059*sin(2*lat)**2)-3.086E-6*H return g ### Friction loss conversion functions def K_from_f(fd, L, D): r'''Calculates loss coefficient, K, for a given section of pipe at a specified friction factor. .. math:: K = f_dL/D Parameters ---------- fd : float friction factor of pipe, [] L : float Length of pipe, [m] D : float Inner diameter of pipe, [m] Returns ------- K : float Loss coefficient, [] Notes ----- For fittings with a specified L/D ratio, use D = 1 and set L to specified L/D ratio. Examples -------- >>> K_from_f(fd=0.018, L=100., D=.3) 6.0 ''' return fd*L/D def K_from_L_equiv(L_D, fd=0.015): r'''Calculates loss coefficient, for a given equivalent length (L/D). .. math:: K = f_d \frac{L}{D} Parameters ---------- L_D : float Length over diameter, [] fd : float, optional Darcy friction factor, [-] Returns ------- K : float Loss coefficient, [] Notes ----- Almost identical to `K_from_f`, but with a default friction factor for fully turbulent flow in steel pipes. Examples -------- >>> K_from_L_equiv(240) 3.5999999999999996 ''' return fd*L_D def L_equiv_from_K(K, fd=0.015): r'''Calculates equivalent length of pipe (L/D), for a given loss coefficient. .. math:: \frac{L}{D} = \frac{K}{f_d} Parameters ---------- K : float Loss coefficient, [-] fd : float, optional Darcy friction factor, [-] Returns ------- L_D : float Length over diameter, [-] Notes ----- Assumes a default friction factor for fully turbulent flow in steel pipes. Examples -------- >>> L_equiv_from_K(3.6) 240.00000000000003 ''' return K/fd def L_from_K(K, D, fd=0.015): r'''Calculates the length of straight pipe at a specified friction factor required to produce a given loss coefficient `K`. .. math:: L = \frac{K D}{f_d} Parameters ---------- K : float Loss coefficient, [] D : float Inner diameter of pipe, [m] fd : float friction factor of pipe, [] Returns ------- L : float Length of pipe, [m] Examples -------- >>> L_from_K(K=6, D=.3, fd=0.018) 100.0 ''' return K*D/fd def dP_from_K(K, rho, V): r'''Calculates pressure drop, for a given loss coefficient, at a specified density and velocity. .. math:: dP = 0.5K\rho V^2 Parameters ---------- K : float Loss coefficient, [] rho : float Density of fluid, [kg/m^3] V : float Velocity of fluid in pipe, [m/s] Returns ------- dP : float Pressure drop, [Pa] Notes ----- Loss coefficient `K` is usually the sum of several factors, including the friction factor. Examples -------- >>> dP_from_K(K=10, rho=1000, V=3) 45000.0 ''' return K*0.5*rho*V*V def head_from_K(K, V, g=g): r'''Calculates head loss, for a given loss coefficient, at a specified velocity. .. math:: \text{head} = \frac{K V^2}{2g} Parameters ---------- K : float Loss coefficient, [] V : float Velocity of fluid in pipe, [m/s] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- head : float Head loss, [m] Notes ----- Loss coefficient `K` is usually the sum of several factors, including the friction factor. Examples -------- >>> head_from_K(K=10, V=1.5) 1.1471807396001694 ''' return K*0.5*V*V/g def head_from_P(P, rho, g=g): r'''Calculates head for a fluid of specified density at specified pressure. .. math:: \text{head} = {P\over{\rho g}} Parameters ---------- P : float Pressure fluid in pipe, [Pa] rho : float Density of fluid, [kg/m^3] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- head : float Head, [m] Notes ----- By definition. Head varies with location, inversely proportional to the increase in gravitational constant. Examples -------- >>> head_from_P(P=98066.5, rho=1000) 10.000000000000002 ''' return P/rho/g def P_from_head(head, rho, g=g): r'''Calculates head for a fluid of specified density at specified pressure. .. math:: P = \rho g \cdot \text{head} Parameters ---------- head : float Head, [m] rho : float Density of fluid, [kg/m^3] g : float, optional Acceleration due to gravity, [m/s^2] Returns ------- P : float Pressure fluid in pipe, [Pa] Notes ----- Examples -------- >>> P_from_head(head=5., rho=800.) 39226.6 ''' return head*rho*g ### Synonyms alpha = thermal_diffusivity # synonym for thermal diffusivity Pr = Prandtl # Synonym # The following are functions which were deprecated from scipy # but are still desired to be here # Taken from scipy/constants/constants.py as in commit # https://github.com/scipy/scipy/commit/4b7d325cd50e8828b06d628e69426a18283dc5b5 # Also from https://github.com/scipy/scipy/pull/5292 # by Gillu13 (Gilles Aouizerate) # Copyright individual contributors to SciPy # temperature in kelvin zero_Celsius = 273.15 degree_Fahrenheit = 1.0/1.8 # only for differences def C2K(C): """ Convert Celsius to Kelvin Parameters ---------- C : array_like Celsius temperature(s) to be converted. Returns ------- K : float or array of floats Equivalent Kelvin temperature(s). Notes ----- Computes ``K = C + zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import C2K >>> C2K(np.array([-40, 40.0])) array([233.15, 313.15]) """ return np.asanyarray(C) + zero_Celsius def K2C(K): """ Convert Kelvin to Celsius Parameters ---------- K : array_like Kelvin temperature(s) to be converted. Returns ------- C : float or array of floats Equivalent Celsius temperature(s). Notes ----- Computes ``C = K - zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import K2C >>> K2C(np.array([233.15, 313.15])) array([-40., 40.]) """ return np.asanyarray(K) - zero_Celsius def F2C(F): """ Convert Fahrenheit to Celsius Parameters ---------- F : array_like Fahrenheit temperature(s) to be converted. Returns ------- C : float or array of floats Equivalent Celsius temperature(s). Notes ----- Computes ``C = (F - 32) / 1.8``. Examples -------- >>> from fluids.core import F2C >>> F2C(np.array([-40, 40.0])) array([-40. , 4.44444444]) """ return (np.asanyarray(F) - 32.0) / 1.8 def C2F(C): """ Convert Celsius to Fahrenheit Parameters ---------- C : array_like Celsius temperature(s) to be converted. Returns ------- F : float or array of floats Equivalent Fahrenheit temperature(s). Notes ----- Computes ``F = 1.8 * C + 32``. Examples -------- >>> from fluids.core import C2F >>> C2F(np.array([-40, 40.0])) array([-40., 104.]) """ return 1.8 * np.asanyarray(C) + 32.0 def F2K(F): """ Convert Fahrenheit to Kelvin Parameters ---------- F : array_like Fahrenheit temperature(s) to be converted. Returns ------- K : float or array of floats Equivalent Kelvin temperature(s). Notes ----- Computes ``K = (F - 32)/1.8 + zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import F2K >>> F2K(np.array([-40, 104])) array([233.15, 313.15]) """ return (np.asanyarray(F) - 32.0)/1.8 + zero_Celsius def K2F(K): """ Convert Kelvin to Fahrenheit Parameters ---------- K : array_like Kelvin temperature(s) to be converted. Returns ------- F : float or array of floats Equivalent Fahrenheit temperature(s). Notes ----- Computes ``F = 1.8 * (K - zero_Celsius) + 32`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import K2F >>> K2F(np.array([233.15, 313.15])) array([-40., 104.]) """ return 1.8*(np.asanyarray(K) - zero_Celsius) + 32.0 def C2R(C): """ Convert Celsius to Rankine Parameters ---------- C : array_like Celsius temperature(s) to be converted. Returns ------- Ra : float or array of floats Equivalent Rankine temperature(s). Notes ----- Computes ``Ra = 1.8 * (C + zero_Celsius)`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import C2R >>> C2R(np.array([-40, 40.0])) array([419.67, 563.67]) """ return 1.8 * (np.asanyarray(C) + zero_Celsius) def K2R(K): """ Convert Kelvin to Rankine Parameters ---------- K : array_like Kelvin temperature(s) to be converted. Returns ------- Ra : float or array of floats Equivalent Rankine temperature(s). Notes ----- Computes ``Ra = 1.8 * K``. Examples -------- >>> from fluids.core import K2R >>> K2R(np.array([273.15, 0.0])) array([491.67, 0. ]) """ return 1.8 * np.asanyarray(K) def F2R(F): """ Convert Fahrenheit to Rankine Parameters ---------- F : array_like Fahrenheit temperature(s) to be converted. Returns ------- Ra : float or array of floats Equivalent Rankine temperature(s). Notes ----- Computes ``Ra = F - 32 + 1.8 * zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import F2R >>> F2R(np.array([100, 0.0])) array([559.67, 459.67]) """ return np.asanyarray(F) - 32.0 + 1.8 * zero_Celsius def R2C(Ra): """ Convert Rankine to Celsius Parameters ---------- Ra : array_like Rankine temperature(s) to be converted. Returns ------- C : float or array of floats Equivalent Celsius temperature(s). Notes ----- Computes ``C = Ra / 1.8 - zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import R2C >>> R2C(np.array([459.67, 0.0])) array([ -17.77777778, -273.15 ]) """ return np.asanyarray(Ra) / 1.8 - zero_Celsius def R2K(Ra): """ Convert Rankine to Kelvin Parameters ---------- Ra : array_like Rankine temperature(s) to be converted. Returns ------- K : float or array of floats Equivalent Kelvin temperature(s). Notes ----- Computes ``K = Ra / 1.8``. Examples -------- >>> from fluids.core import R2K >>> R2K(np.array([491.67, 0.0])) array([273.15, 0. ]) """ return np.asanyarray(Ra) / 1.8 def R2F(Ra): """ Convert Rankine to Fahrenheit Parameters ---------- Ra : array_like Rankine temperature(s) to be converted. Returns ------- F : float or array of floats Equivalent Fahrenheit temperature(s). Notes ----- Computes ``F = Ra + 32 - 1.8 * zero_Celsius`` where `zero_Celsius` = 273.15, i.e., (the absolute value of) temperature "absolute zero" as measured in Celsius. Examples -------- >>> from fluids.core import R2F >>> R2F(np.array([491.67, 559.67])) array([ 32., 100.]) """ return np.asanyarray(Ra) - 1.8 * zero_Celsius + 32.0 def Engauge_2d_parser(lines, flat=False): '''Not exposed function to read a 2D file generated by engauge-digitizer; for curve fitting. ''' z_values = [] x_lists = [] y_lists = [] working_xs = [] working_ys = [] new_curve = True for line in lines: if line.strip() == '': new_curve = True elif new_curve: z = float(line.split(',')[1]) z_values.append(z) if working_xs and working_ys: x_lists.append(working_xs) y_lists.append(working_ys) working_xs = [] working_ys = [] new_curve = False else: x, y = [float(i) for i in line.strip().split(',')] working_xs.append(x) working_ys.append(y) x_lists.append(working_xs) y_lists.append(working_ys) if flat: all_zs = [] all_xs = [] all_ys = [] for z, xs, ys in zip(z_values, x_lists, y_lists): for x, y in zip(xs, ys): all_zs.append(z) all_xs.append(x) all_ys.append(y) return all_zs, all_xs, all_ys return z_values, x_lists, y_lists fluids-0.1.78/fluids/nrlmsise00/0000755000175000017500000000000013632560624015122 5ustar kurtkurtfluids-0.1.78/fluids/nrlmsise00/__init__.py0000644000175000017500000000302413632560624017232 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from . import nrlmsise_00 from . import nrlmsise_00_header from . import nrlmsise_00_data from .nrlmsise_00 import gtd7 from .nrlmsise_00_header import nrlmsise_output, nrlmsise_input, nrlmsise_flags, ap_array __all__ = ['nrlmsise_00', 'nrlmsise_00_header', 'nrlmsise_00_data'] __all__.extend(nrlmsise_00.__all__) __all__.extend(nrlmsise_00_header.__all__) fluids-0.1.78/fluids/nrlmsise00/nrlmsise_00.py0000644000175000017500000014420613632560624017636 0ustar kurtkurt# -*- coding: utf-8 -*- """ 12/19/2013 Author: Joshua Milas Python Version: 3.3.2 The NRLMSISE-00 model 2001 ported to python Based off of Dominik Brodowski 20100516 version available here http://www.brodo.de/english/pub/nrlmsise/ This is the main program that contains all the functions The MIT License (MIT) Copyright (c) 2016 Joshua Milas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* -------------------------------------------------------------------- */ /* --------- N R L M S I S E - 0 0 M O D E L 2 0 0 1 ---------- */ /* -------------------------------------------------------------------- */ /* This file is part of the NRLMSISE-00 C source code package - release * 20041227 * * The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and * Doug Drob. They also wrote a NRLMSISE-00 distribution package in * FORTRAN which is available at * http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm * * Dominik Brodowski implemented and maintains this C version. You can * reach him at mail@brodo.de. See the file "DOCUMENTATION" for details, * and check http://www.brodo.de/english/pub/nrlmsise/index.html for * updated releases of this package. */ """ from __future__ import division from .nrlmsise_00_header import * from .nrlmsise_00_data import * from math import sin, cos, pow, exp, log, sqrt __all__ = ['gtd7'] """ /* ------------------------------------------------------------------- */ /* ------------------------- SHARED VARIABLES ------------------------ */ /* ------------------------------------------------------------------- */ """ #/* PARMB */ gsurf = [0.0]; re = [0.0]; #/* GTS3C */ dd = 0.0; #/* DMIX */ dm04 = 0.0 dm16 = 0.0 dm28 = 0.0 dm32 = 0.0 dm40 = 0.0 dm01 = 0.0 dm14 = 0.0 #/* MESO7 */ meso_tn1 = [0.0]*5; meso_tn2 = [0.0]*4; meso_tn3 = [0.0]*5; meso_tgn1 = [0.0, 0.0]; meso_tgn2 = [0.0, 0.0]; meso_tgn3 = [0.0, 0.0]; #/* POWER7 */ #/* LOWER7 */ #Dont to need to do anyt of the externs, they are all here #/* LPOLY */ dfa = 0.0 plg = [[0.0 for _ in range(9)] for _ in range(4)] ctloc = 0.0 stloc = 0.0 c2tloc = 0.0 s2tloc = 0.0 s3tloc = 0.0 c3tloc = 0.0 apdf = 0.0 apt = [0.0]*4 #since rgas is used eerywehre usignthe same variable, ill make it glboal #rgas = 831.44621 #rgas = 831.4 """ /* ------------------------------------------------------------------- */ /* ------------------------------ TSELEC ----------------------------- */ /* ------------------------------------------------------------------- */ """ def tselec(flags): for i in range(24): if(i != 9): if(flags.switches[i]==1): flags.sw[i]=1 else: flags.sw[i]=0 if(flags.switches[i]>0): flags.swc[i]=1 else: flags.swc[i]=0 else: flags.sw[i]=flags.switches[i] flags.swc[i]=flags.switches[i] return """ /* ------------------------------------------------------------------- */ /* ------------------------------ GLATF ------------------------------ */ /* ------------------------------------------------------------------- */ """ def glatf(lat, gv, reff): dgtr = 1.74533E-2 c2 = cos(2.0*dgtr*lat) #Need to return these since the c program wants pointers to these gv[0] = 980.616 * (1.0 - 0.0026373 * c2) reff[0] = 2.0 * (gv[0]) / (3.085462E-6 + 2.27E-9 * c2) * 1.0E-5 #The may-be troubled line return #gv, rref """ /* ------------------------------------------------------------------- */ /* ------------------------------ CCOR ------------------------------- */ /* ------------------------------------------------------------------- */ """ def ccor(alt, r, h1, zh): """ /* CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS * ALT - altitude * R - target ratio * H1 - transition scale length * ZH - altitude of 1/2 R */ """ e = (alt - zh) / h1 if(e>70.0): return 1.0 # exp(0) # pragma: no cover elif (e < -70.0): return exp(r) ex = exp(e) e = r / (1.0 + ex) return exp(e) ''' /* ------------------------------------------------------------------- */ /* ------------------------------ CCOR ------------------------------- */ /* ------------------------------------------------------------------- */ ''' def ccor2(alt, r, h1, zh, h2): ''' /* CHEMISTRY/DISSOCIATION CORRECTION FOR MSIS MODELS * ALT - altitude * R - target ratio * H1 - transition scale length * ZH - altitude of 1/2 R * H2 - transition scale length #2 ? */ ''' e1 = (alt - zh) / h1; e2 = (alt - zh) / h2; if ((e1 > 70.0) or (e2 > 70)): # pragma: no cover return 1.0 # exp(0) if ((e1 < -70) and (e2 < -70)): # pragma: no cover return exp(r) ex1 = exp(e1); ex2 = exp(e2); ccor2v = r / (1.0 + 0.5 * (ex1 + ex2)); return exp(ccor2v); """ /* ------------------------------------------------------------------- */ /* ------------------------------- SCALH ----------------------------- */ /* ------------------------------------------------------------------- */ """ def scalh(alt, xm, temp): #rgas = 831.44621 #maybe make this a global constant? rgas = 831.4 g = gsurf[0] / (pow( (1.0 + alt/re[0]),2.0)) g = rgas * temp / (g * xm) return g ''' /* ------------------------------------------------------------------- */ /* -------------------------------- DNET ----------------------------- */ /* ------------------------------------------------------------------- */ ''' def dnet(dd, dm, zhm, xmm, xm): ''' /* TURBOPAUSE CORRECTION FOR MSIS MODELS * Root mean density * DD - diffusive density * DM - full mixed density * ZHM - transition scale length * XMM - full mixed molecular weight * XM - species molecular weight * DNET - combined density */ ''' a = zhm / (xmm-xm) if( not((dm>0) and (dd>0))): # pragma: no cover if((dd==0) and (dm==0)): dd=1 if(dm==0): return dd if(dd==0): return dm ylog = a * log(dm/dd) if(ylog < -10.0): return dd if(ylog>10.0): # pragma: no cover return dm a = dd*pow((1.0 + exp(ylog)),(1.0/a)) return a ''' /* ------------------------------------------------------------------- */ /* ------------------------------- SPLINI ---------------------------- */ /* ------------------------------------------------------------------- */ ''' def splini(xa, ya, y2a, n, x, y): ''' /* INTEGRATE CUBIC SPLINE FUNCTION FROM XA(1) TO X * XA,YA: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X * Y2A: ARRAY OF SECOND DERIVATIVES * N: SIZE OF ARRAYS XA,YA,Y2A * X: ABSCISSA ENDPOINT FOR INTEGRATION * Y: OUTPUT VALUE */ ''' yi = 0 klo = 0 khi = 1 while((x>xa[klo]) and (khi1): k=int((khi+klo)/2); if (xa[k]>x): khi = k else: klo = k h = xa[khi] - xa[klo]; a = (xa[khi] - x)/h; b = (x - xa[klo])/h; yi = a * ya[klo] + b * ya[khi] + ((a*a*a - a) * y2a[klo] + (b*b*b - b) * y2a[khi]) * h * h/6.0; y[0] = yi #may not need this return #yi #or this ''' /* ------------------------------------------------------------------- */ /* ------------------------------- SPLINE ---------------------------- */ /* ------------------------------------------------------------------- */ ''' def spline(x, y, n, yp1, ypn, y2): ''' /* CALCULATE 2ND DERIVATIVES OF CUBIC SPLINE INTERP FUNCTION * ADAPTED FROM NUMERICAL RECIPES BY PRESS ET AL * X,Y: ARRAYS OF TABULATED FUNCTION IN ASCENDING ORDER BY X * N: SIZE OF ARRAYS X,Y * YP1,YPN: SPECIFIED DERIVATIVES AT X[0] AND X[N-1]; VALUES * >= 1E30 SIGNAL SIGNAL SECOND DERIVATIVE ZERO * Y2: OUTPUT ARRAY OF SECOND DERIVATIVES */ ''' u = [0.0]*n #I think this is the same as malloc #no need for the out of memory if (yp1 > 0.99E30): # pragma: no cover y2[0] = 0 u[0] = 0 else: y2[0]=-0.5 u[0]=(3.0/(x[1]-x[0]))*((y[1]-y[0])/(x[1]-x[0])-yp1) for i in range(1, n-1): sig = (x[i]-x[i-1])/(x[i+1] - x[i-1]) p = sig * y2[i-1] + 2.0 y2[i] = (sig - 1.0) / p u[i] = (6.0 * ((y[i+1] - y[i])/(x[i+1] - x[i]) -(y[i] - y[i-1]) / (x[i] - x[i-1]))/(x[i+1] - x[i-1]) - sig * u[i-1])/p; if (ypn>0.99E30): # pragma: no cover qn = 0; un = 0 else: qn = 0.5 un = (3.0 / (x[n-1] - x[n-2])) * (ypn - (y[n-1] - y[n-2])/(x[n-1] - x[n-2])); y2[n-1] = (un - qn * u[n-2]) / (qn * y2[n-2] + 1.0); #it uses a for loop here, but its not something python can do (I dont think) k = n-2 while(k >= 0): y2[k] = y2[k] * y2[k+1] + u[k] k -= 1 #This for loop might work #for k in range(n-2, -1, -1): # y2[k] = y2[k] * y2[k+1] + u[k] #no need to free u here return ''' /* ------------------------------------------------------------------- */ /* ------------------------------- DENSM ----------------------------- */ /* ------------------------------------------------------------------- */ ''' def zeta(zz, zl): return ((zz-zl)*(re[0]+zl)/(re[0]+zz)) #re is the global variable def densm(alt, d0, xm, tz, mn3, zn3, tn3, tgn3, mn2, zn2, tn2, tgn2): ''' /* Calculate Temperature and Density Profiles for lower atmos. */ ''' xs = [0.0]*10 ys = [0.0]*10 y2out = [0.0]*10 rgas = 831.4 #rgas = 831.44621 #maybe make this a global constant? densm_tmp=d0 if (alt>zn2[0]): # pragma: no cover if(xm==0.0): return tz[0] else: return d0 #/* STRATOSPHERE/MESOSPHERE TEMPERATURE */ if (alt>zn2[mn2-1]): z=alt else: z=zn2[mn2-1]; mn=mn2; z1=zn2[0]; z2=zn2[mn-1]; t1=tn2[0]; t2=tn2[mn-1]; zg = zeta(z, z1); zgdif = zeta(z2, z1); #/* set up spline nodes */ for k in range(mn): xs[k]=zeta(zn2[k],z1)/zgdif; ys[k]=1.0 / tn2[k]; yd1=-tgn2[0] / (t1*t1) * zgdif; yd2=-tgn2[1] / (t2*t2) * zgdif * (pow(((re[0]+z2)/(re[0]+z1)),2.0)); #/* calculate spline coefficients */ spline (xs, ys, mn, yd1, yd2, y2out); #No need to change this x = zg/zgdif; y = [0.0] splint (xs, ys, y2out, mn, x, y); #/* temperature at altitude */ tz[0] = 1.0 / y[0]; if (xm!=0.0): #/* calaculate stratosphere / mesospehere density */ glb = gsurf[0] / (pow((1.0 + z1/re[0]),2.0)); gamm = xm * glb * zgdif / rgas; #/* Integrate temperature profile */ yi = [0.0] splini(xs, ys, y2out, mn, x, yi); expl=gamm*yi[0]; if (expl>50.0): # pragma: no cover expl=50.0 #/* Density at altitude */ densm_tmp = densm_tmp * (t1 / tz[0]) * exp(-expl); if (alt>zn3[0]): if (xm==0.0): return tz[0] else: return densm_tmp #/* troposhere / stratosphere temperature */ z = alt; mn = mn3; z1=zn3[0]; z2=zn3[mn-1]; t1=tn3[0]; t2=tn3[mn-1]; zg=zeta(z,z1); zgdif=zeta(z2,z1); #/* set up spline nodes */ for k in range(mn): xs[k] = zeta(zn3[k],z1) / zgdif; ys[k] = 1.0 / tn3[k]; yd1=-tgn3[0] / (t1*t1) * zgdif; yd2=-tgn3[1] / (t2*t2) * zgdif * (pow(((re[0]+z2)/(re[0]+z1)),2.0)); #/* calculate spline coefficients */ spline (xs, ys, mn, yd1, yd2, y2out); x = zg/zgdif; y = [0.0] splint (xs, ys, y2out, mn, x, y); #/* temperature at altitude */ tz[0] = 1.0 / y[0]; if (xm!=0.0): #/* calaculate tropospheric / stratosphere density */ glb = gsurf[0] / (pow((1.0 + z1/re[0]),2.0)); gamm = xm * glb * zgdif / rgas; #/* Integrate temperature profile */ yi = [0.0] splini(xs, ys, y2out, mn, x, yi); expl=gamm*yi[0]; if (expl>50.0): # pragma: no cover expl=50.0; #/* Density at altitude */ densm_tmp = densm_tmp * (t1 / tz[0]) * exp(-expl); if (xm==0.0): return tz[0]; else: return densm_tmp; ''' /* ------------------------------------------------------------------- */ /* ------------------------------- DENSU ----------------------------- */ /* ------------------------------------------------------------------- */ ''' def densu(alt, dlb, tinf, tlb, xm, alpha, tz, zlb, s2, mn1, zn1, tn1, tgn1): ''' /* Calculate Temperature and Density Profiles for MSIS models * New lower thermo polynomial */ tz, zn1, tn1, and tgn1 are simulated pointers ''' rgas = 831.4 #rgas = 831.44621 #maybe make this a global constant? densu_temp = 1.0 xs = [0.0]*5 ys = [0.0]*5 y2out = [0.0]*5 #/* joining altitudes of Bates and spline */ za=zn1[0]; if (alt>za): z=alt; else: z=za; #/* geopotential altitude difference from ZLB */ zg2 = zeta(z, zlb); #/* Bates temperature */ tt = tinf - (tinf - tlb) * exp(-s2*zg2); ta = tt; tz[0] = tt densu_temp = tz[0] if (altzn1[mn1-1]): z=alt; else: z=zn1[mn1-1]; mn=mn1; z1=zn1[0]; z2=zn1[mn-1]; t1=tn1[0]; t2=tn1[mn-1]; #/* geopotental difference from z1 */ zg = zeta (z, z1); zgdif = zeta(z2, z1); #/* set up spline nodes */ for k in range(mn): xs[k] = zeta(zn1[k], z1) / zgdif; ys[k] = 1.0 / tn1[k]; #/* end node derivatives */ yd1 = -tgn1[0] / (t1*t1) * zgdif; yd2 = -tgn1[1] / (t2*t2) * zgdif * pow(((re[0]+z2)/(re[0]+z1)),2.0); #/* calculate spline coefficients */ spline (xs, ys, mn, yd1, yd2, y2out); x = zg / zgdif; y = [0.0] splint (xs, ys, y2out, mn, x, y); #/* temperature at altitude */ tz[0] = 1.0 / y[0]; densu_temp = tz[0]; if (xm==0): return densu_temp; #/* calculate density above za */ glb = gsurf[0] / pow((1.0 + zlb/re[0]),2.0); gamma = xm * glb / (s2 * rgas * tinf); expl = exp(-s2 * gamma * zg2); if (expl>50.0): # pragma: no cover expl=50.0; if (tt<=0): # pragma: no cover expl=50.0; #/* density at altitude */ densa = dlb * pow((tlb/tt),((1.0+alpha+gamma))) * expl; densu_temp=densa; if (alt>=za): return densu_temp; #/* calculate density below za */ glb = gsurf[0] / pow((1.0 + z1/re[0]),2.0); gamm = xm * glb * zgdif / rgas; #/* integrate spline temperatures */ yi = [0] splini (xs, ys, y2out, mn, x, yi); expl = gamm * yi[0]; if (expl>50.0): # pragma: no cover expl=50.0; if (tz[0]<=0): # pragma: no cover expl=50.0; #/* density at altitude */ densu_temp = densu_temp * pow ((t1 / tz[0]),(1.0 + alpha)) * exp(-expl); return densu_temp; ''' /* ------------------------------------------------------------------- */ /* ------------------------------- GLOBE7 ---------------------------- */ /* ------------------------------------------------------------------- */ ''' #/* 3hr Magnetic activity functions */ #/* Eq. A24d */ def g0(a, p): return (a - 4.0 + (p[25] - 1.0) * (a - 4.0 + (exp(-sqrt(p[24]*p[24]) * (a - 4.0)) - 1.0) / sqrt(p[24]*p[24]))); #/* Eq. A24c */ def sumex(ex): return (1.0 + (1.0 - pow(ex,19.0)) / (1.0 - ex) * pow(ex,0.5)); #/* Eq. A24a */ def sg0(ex, p, ap): return (g0(ap[1],p) + (g0(ap[2],p)*ex + g0(ap[3],p)*ex*ex + \ g0(ap[4],p)*pow(ex,3.0) + (g0(ap[5],p)*pow(ex,4.0) + \ g0(ap[6],p)*pow(ex,12.0))*(1.0-pow(ex,8.0))/(1.0-ex)))/sumex(ex); def globe7(p, Input, flags): ''' /* CALCULATE G(L) FUNCTION * Upper Thermosphere Parameters */ ''' t = [0]*15 #modified this, there was a for loop that did this sw9 = 1 sr = 7.2722E-5; dgtr = 1.74533E-2; dr = 1.72142E-2; hr = 0.2618; tloc = Input.lst #for j in range(14): # t[j] = 0 if(flags.sw[9] > 0): sw9 = 1 elif(flags.sw[9] < 0): # pragma: no cover sw9 = -1 xlong = Input.g_long #/* calculate legendre polynomials */ c = sin(Input.g_lat * dgtr); s = cos(Input.g_lat * dgtr); c2 = c*c; c4 = c2*c2; s2 = s*s; plg[0][1] = c; plg[0][2] = 0.5*(3.0*c2 -1.0); plg[0][3] = 0.5*(5.0*c*c2-3.0*c); plg[0][4] = (35.0*c4 - 30.0*c2 + 3.0)/8.0; plg[0][5] = (63.0*c2*c2*c - 70.0*c2*c + 15.0*c)/8.0; plg[0][6] = (11.0*c*plg[0][5] - 5.0*plg[0][4])/6.0; #/* plg[0][7] = (13.0*c*plg[0][6] - 6.0*plg[0][5])/7.0; */ plg[1][1] = s; plg[1][2] = 3.0*c*s; plg[1][3] = 1.5*(5.0*c2-1.0)*s; plg[1][4] = 2.5*(7.0*c2*c-3.0*c)*s; plg[1][5] = 1.875*(21.0*c4 - 14.0*c2 +1.0)*s; plg[1][6] = (11.0*c*plg[1][5]-6.0*plg[1][4])/5.0; #/* plg[1][7] = (13.0*c*plg[1][6]-7.0*plg[1][5])/6.0; */ #/* plg[1][8] = (15.0*c*plg[1][7]-8.0*plg[1][6])/7.0; */ plg[2][2] = 3.0*s2; plg[2][3] = 15.0*s2*c; plg[2][4] = 7.5*(7.0*c2 -1.0)*s2; plg[2][5] = 3.0*c*plg[2][4]-2.0*plg[2][3]; plg[2][6] =(11.0*c*plg[2][5]-7.0*plg[2][4])/4.0; plg[2][7] =(13.0*c*plg[2][6]-8.0*plg[2][5])/5.0; plg[3][3] = 15.0*s2*s; plg[3][4] = 105.0*s2*s*c; plg[3][5] =(9.0*c*plg[3][4]-7.*plg[3][3])/2.0; plg[3][6] =(11.0*c*plg[3][5]-8.*plg[3][4])/3.0; if( not (((flags.sw[7]==0) and (flags.sw[8]==0)) and (flags.sw[14] == 0))): global stloc stloc = sin(hr*tloc); global ctloc ctloc = cos(hr*tloc); global s2tloc s2tloc = sin(2.0*hr*tloc); global c2tloc c2tloc = cos(2.0*hr*tloc); global s3tloc s3tloc = sin(3.0*hr*tloc); global c3tloc c3tloc = cos(3.0*hr*tloc); cd32 = cos(dr*(Input.doy-p[31])); cd18 = cos(2.0*dr*(Input.doy-p[17])); cd14 = cos(dr*(Input.doy-p[13])); cd39 = cos(2.0*dr*(Input.doy-p[38])); p32=p[31]; p18=p[17]; p14=p[13]; p39=p[38]; #/* F10.7 EFFECT */ df = Input.f107 - Input.f107A; global dfa dfa = Input.f107A - 150.0; t[0] = p[19]*df*(1.0+p[59]*dfa) + p[20]*df*df + p[21]*dfa + p[29]*pow(dfa,2.0); f1 = 1.0 + (p[47]*dfa +p[19]*df+p[20]*df*df)*flags.swc[1]; f2 = 1.0 + (p[49]*dfa+p[19]*df+p[20]*df*df)*flags.swc[1]; #/* TIME INDEPENDENT */ t[1] = (p[1]*plg[0][2]+ p[2]*plg[0][4]+p[22]*plg[0][6]) + \ (p[14]*plg[0][2])*dfa*flags.swc[1] +p[26]*plg[0][1]; #/* SYMMETRICAL ANNUAL */ t[2] = p[18]*cd32; #/* SYMMETRICAL SEMIANNUAL */ t[3] = (p[15]+p[16]*plg[0][2])*cd18; #/* ASYMMETRICAL ANNUAL */ t[4] = f1*(p[9]*plg[0][1]+p[10]*plg[0][3])*cd14; #/* ASYMMETRICAL SEMIANNUAL */ t[5] = p[37]*plg[0][1]*cd39; #/* DIURNAL */ if (flags.sw[7]): t71 = (p[11]*plg[1][2])*cd14*flags.swc[5]; t72 = (p[12]*plg[1][2])*cd14*flags.swc[5]; t[6] = f2*((p[3]*plg[1][1] + p[4]*plg[1][3] + p[27]*plg[1][5] + t71) * \ ctloc + (p[6]*plg[1][1] + p[7]*plg[1][3] + p[28]*plg[1][5] \ + t72)*stloc); #/* SEMIDIURNAL */ if (flags.sw[8]): t81 = (p[23]*plg[2][3]+p[35]*plg[2][5])*cd14*flags.swc[5]; t82 = (p[33]*plg[2][3]+p[36]*plg[2][5])*cd14*flags.swc[5]; t[7] = f2*((p[5]*plg[2][2]+ p[41]*plg[2][4] + t81)*c2tloc +(p[8]*plg[2][2] + p[42]*plg[2][4] + t82)*s2tloc); #/* TERDIURNAL */ if (flags.sw[14]): t[13] = f2 * ((p[39]*plg[3][3]+(p[93]*plg[3][4]+p[46]*plg[3][6])*cd14*flags.swc[5])* s3tloc +(p[40]*plg[3][3]+(p[94]*plg[3][4]+p[48]*plg[3][6])*cd14*flags.swc[5])* c3tloc); #/* magnetic activity based on daily ap */ if (flags.sw[9]==-1): ap = Input.ap_a; if (p[51]!=0): exp1 = exp(-10800.0*sqrt(p[51]*p[51])/(1.0+p[138]*(45.0-sqrt(Input.g_lat*Input.g_lat)))); if (exp1>0.99999): # pragma: no cover exp1=0.99999; if (p[24]<1.0E-4): # pragma: no cover p[24]=1.0E-4; apt[0]=sg0(exp1,p,ap.a); #/* apt[1]=sg2(exp1,p,ap->a); # apt[2]=sg0(exp2,p,ap->a); # apt[3]=sg2(exp2,p,ap->a); #*/ if (flags.sw[9]): t[8] = apt[0]*(p[50]+p[96]*plg[0][2]+p[54]*plg[0][4]+ \ (p[125]*plg[0][1]+p[126]*plg[0][3]+p[127]*plg[0][5])*cd14*flags.swc[5]+ \ (p[128]*plg[1][1]+p[129]*plg[1][3]+p[130]*plg[1][5])*flags.swc[7]* \ cos(hr*(tloc-p[131]))); else: apd=Input.ap-4.0; p44=p[43]; p45=p[44]; if (p44<0): # pragma: no cover p44 = 1.0E-5; global apdf apdf = apd + (p45-1.0)*(apd + (exp(-p44 * apd) - 1.0)/p44); if (flags.sw[9]): t[8]=apdf*(p[32]+p[45]*plg[0][2]+p[34]*plg[0][4]+ \ (p[100]*plg[0][1]+p[101]*plg[0][3]+p[102]*plg[0][5])*cd14*flags.swc[5]+ (p[121]*plg[1][1]+p[122]*plg[1][3]+p[123]*plg[1][5])*flags.swc[7]* cos(hr*(tloc-p[124]))); if ((flags.sw[10]) and (Input.g_long>-1000.0)): #/* longitudinal */ if (flags.sw[11]): t[10] = (1.0 + p[80]*dfa*flags.swc[1])* \ ((p[64]*plg[1][2]+p[65]*plg[1][4]+p[66]*plg[1][6]\ +p[103]*plg[1][1]+p[104]*plg[1][3]+p[105]*plg[1][5]\ +flags.swc[5]*(p[109]*plg[1][1]+p[110]*plg[1][3]+p[111]*plg[1][5])*cd14)* \ cos(dgtr*Input.g_long) \ +(p[90]*plg[1][2]+p[91]*plg[1][4]+p[92]*plg[1][6]\ +p[106]*plg[1][1]+p[107]*plg[1][3]+p[108]*plg[1][5]\ +flags.swc[5]*(p[112]*plg[1][1]+p[113]*plg[1][3]+p[114]*plg[1][5])*cd14)* \ sin(dgtr*Input.g_long)); #/* ut and mixed ut, longitude */ if (flags.sw[12]): t[11]=(1.0+p[95]*plg[0][1])*(1.0+p[81]*dfa*flags.swc[1])*\ (1.0+p[119]*plg[0][1]*flags.swc[5]*cd14)*\ ((p[68]*plg[0][1]+p[69]*plg[0][3]+p[70]*plg[0][5])*\ cos(sr*(Input.sec-p[71]))); t[11]+=flags.swc[11]*\ (p[76]*plg[2][3]+p[77]*plg[2][5]+p[78]*plg[2][7])*\ cos(sr*(Input.sec-p[79])+2.0*dgtr*Input.g_long)*(1.0+p[137]*dfa*flags.swc[1]); #/* ut, longitude magnetic activity */ if (flags.sw[13]): if (flags.sw[9]==-1): if (p[51]): t[12]=apt[0]*flags.swc[11]*(1.+p[132]*plg[0][1])*\ ((p[52]*plg[1][2]+p[98]*plg[1][4]+p[67]*plg[1][6])*\ cos(dgtr*(Input.g_long-p[97])))\ +apt[0]*flags.swc[11]*flags.swc[5]*\ (p[133]*plg[1][1]+p[134]*plg[1][3]+p[135]*plg[1][5])*\ cd14*cos(dgtr*(Input.g_long-p[136])) \ +apt[0]*flags.swc[12]* \ (p[55]*plg[0][1]+p[56]*plg[0][3]+p[57]*plg[0][5])*\ cos(sr*(Input.sec-p[58])); else: t[12] = apdf*flags.swc[11]*(1.0+p[120]*plg[0][1])*\ ((p[60]*plg[1][2]+p[61]*plg[1][4]+p[62]*plg[1][6])*\ cos(dgtr*(Input.g_long-p[63])))\ +apdf*flags.swc[11]*flags.swc[5]* \ (p[115]*plg[1][1]+p[116]*plg[1][3]+p[117]*plg[1][5])* \ cd14*cos(dgtr*(Input.g_long-p[118])) \ + apdf*flags.swc[12]* \ (p[83]*plg[0][1]+p[84]*plg[0][3]+p[85]*plg[0][5])* \ cos(sr*(Input.sec-p[75])); #/* parms not used: 82, 89, 99, 139-149 */ tinf = p[30]; for i in range(14): tinf = tinf + abs(flags.sw[i+1])*t[i]; return tinf; ''' /* ------------------------------------------------------------------- */ /* ------------------------------- GLOB7S ---------------------------- */ /* ------------------------------------------------------------------- */ ''' def glob7s(p, Input, flags): ''' /* VERSION OF GLOBE FOR LOWER ATMOSPHERE 10/26/99 */ ''' pset = 2.0 t = [0.0]*14 dr=1.72142E-2; dgtr=1.74533E-2; #/* confirm parameter set */ if (p[99]==0): # pragma: no cover p[99]=pset; #for j in range(14): #Already taken care of # t[j]=0.0; cd32 = cos(dr*(Input.doy-p[31])); cd18 = cos(2.0*dr*(Input.doy-p[17])); cd14 = cos(dr*(Input.doy-p[13])); cd39 = cos(2.0*dr*(Input.doy-p[38])); p32=p[31]; p18=p[17]; p14=p[13]; p39=p[38]; #/* F10.7 */ t[0] = p[21]*dfa; #/* time independent */ t[1]=p[1]*plg[0][2] + p[2]*plg[0][4] + p[22]*plg[0][6] + p[26]*plg[0][1] + p[14]*plg[0][3] + p[59]*plg[0][5]; #/* SYMMETRICAL ANNUAL */ t[2]=(p[18]+p[47]*plg[0][2]+p[29]*plg[0][4])*cd32; #/* SYMMETRICAL SEMIANNUAL */ t[3]=(p[15]+p[16]*plg[0][2]+p[30]*plg[0][4])*cd18; #/* ASYMMETRICAL ANNUAL */ t[4]=(p[9]*plg[0][1]+p[10]*plg[0][3]+p[20]*plg[0][5])*cd14; #/* ASYMMETRICAL SEMIANNUAL */ t[5]=(p[37]*plg[0][1])*cd39; #/* DIURNAL */ if (flags.sw[7]): t71 = p[11]*plg[1][2]*cd14*flags.swc[5]; t72 = p[12]*plg[1][2]*cd14*flags.swc[5]; t[6] = ((p[3]*plg[1][1] + p[4]*plg[1][3] + t71) * ctloc + (p[6]*plg[1][1] + p[7]*plg[1][3] + t72) * stloc) ; #/* SEMIDIURNAL */ if (flags.sw[8]): t81 = (p[23]*plg[2][3]+p[35]*plg[2][5])*cd14*flags.swc[5]; t82 = (p[33]*plg[2][3]+p[36]*plg[2][5])*cd14*flags.swc[5]; t[7] = ((p[5]*plg[2][2] + p[41]*plg[2][4] + t81) * c2tloc + (p[8]*plg[2][2] + p[42]*plg[2][4] + t82) * s2tloc); #/* TERDIURNAL */ if (flags.sw[14]): t[13] = p[39] * plg[3][3] * s3tloc + p[40] * plg[3][3] * c3tloc; #/* MAGNETIC ACTIVITY */ if (flags.sw[9]): if (flags.sw[9]==1): t[8] = apdf * (p[32] + p[45] * plg[0][2] * flags.swc[2]); if (flags.sw[9]==-1): t[8]=(p[50]*apt[0] + p[96]*plg[0][2] * apt[0]*flags.swc[2]); #/* LONGITUDINAL */ if ( not((flags.sw[10]==0) or (flags.sw[11]==0) or (Input.g_long<=-1000.0))): t[10] = (1.0 + plg[0][1]*(p[80]*flags.swc[5]*cos(dr*(Input.doy-p[81]))\ +p[85]*flags.swc[6]*cos(2.0*dr*(Input.doy-p[86])))\ +p[83]*flags.swc[3]*cos(dr*(Input.doy-p[84]))\ +p[87]*flags.swc[4]*cos(2.0*dr*(Input.doy-p[88])))\ *((p[64]*plg[1][2]+p[65]*plg[1][4]+p[66]*plg[1][6]\ +p[74]*plg[1][1]+p[75]*plg[1][3]+p[76]*plg[1][5]\ )*cos(dgtr*Input.g_long)\ +(p[90]*plg[1][2]+p[91]*plg[1][4]+p[92]*plg[1][6]\ +p[77]*plg[1][1]+p[78]*plg[1][3]+p[79]*plg[1][5]\ )*sin(dgtr*Input.g_long)); tt=0; for i in range(14): tt+=abs(flags.sw[i+1])*t[i]; return tt; ''' /* ------------------------------------------------------------------- */ /* ------------------------------- GTD7 ------------------------------ */ /* ------------------------------------------------------------------- */ ''' def gtd7(Input, flags, output): '''The standard model subroutine (GTD7) always computes the ‘‘thermospheric’’ mass density by explicitly summing the masses of the species in equilibrium at the thermospheric temperature T(z). ''' mn3 = 5 zn3 = [32.5,20.0,15.0,10.0,0.0] mn2 = 4 zn2 = [72.5,55.0,45.0,32.5] zmix = 62.5 soutput = nrlmsise_output() tselec(flags); #/* Latitude variation of gravity (none for sw[2]=0) */ xlat=Input.g_lat; if (flags.sw[2]==0): # pragma: no cover xlat=45.0; glatf(xlat, gsurf, re); xmm = pdm[2][4]; #/* THERMOSPHERE / MESOSPHERE (above zn2[0]) */ if (Input.alt>zn2[0]): altt=Input.alt; else: altt=zn2[0]; tmp=Input.alt; Input.alt=altt; gts7(Input, flags, soutput); altt=Input.alt; Input.alt=tmp; if (flags.sw[0]): # pragma: no cover #/* metric adjustment */ dm28m= dm28*1.0E6; else: dm28m = dm28; output.t[0]=soutput.t[0]; output.t[1]=soutput.t[1]; if (Input.alt>=zn2[0]): for i in range(9): output.d[i]=soutput.d[i]; return #/* LOWER MESOSPHERE/UPPER STRATOSPHERE (between zn3[0] and zn2[0]) #* Temperature at nodes and gradients at end nodes #* Inverse temperature a linear function of spherical harmonics #*/ meso_tgn2[0]=meso_tgn1[1]; meso_tn2[0]=meso_tn1[4]; meso_tn2[1]=pma[0][0]*pavgm[0]/(1.0-flags.sw[20]*glob7s(pma[0], Input, flags)); meso_tn2[2]=pma[1][0]*pavgm[1]/(1.0-flags.sw[20]*glob7s(pma[1], Input, flags)); meso_tn2[3]=pma[2][0]*pavgm[2]/(1.0-flags.sw[20]*flags.sw[22]*glob7s(pma[2], Input, flags)); meso_tgn2[1]=pavgm[8]*pma[9][0]*(1.0+flags.sw[20]*flags.sw[22]*glob7s(pma[9], Input, flags))*meso_tn2[3]*meso_tn2[3]/(pow((pma[2][0]*pavgm[2]),2.0)); meso_tn3[0]=meso_tn2[3]; if (Input.altzmix): dmc = 1.0 - (zn2[0]-Input.alt)/(zn2[0] - zmix); dz28=soutput.d[2]; #/**** N2 density ****/ dmr=soutput.d[2] / dm28m - 1.0; tz = [0.0] output.d[2]=densm(Input.alt,dm28m,xmm, tz, mn3, zn3, meso_tn3, meso_tgn3, mn2, zn2, meso_tn2, meso_tgn2); output.d[2]=output.d[2] * (1.0 + dmr*dmc); #/**** HE density ****/ dmr = soutput.d[0] / (dz28 * pdm[0][1]) - 1.0; output.d[0] = output.d[2] * pdm[0][1] * (1.0 + dmr*dmc); #/**** O density ****/ output.d[1] = 0; output.d[8] = 0; #/**** O2 density ****/ dmr = soutput.d[3] / (dz28 * pdm[3][1]) - 1.0; output.d[3] = output.d[2] * pdm[3][1] * (1.0 + dmr*dmc); #/**** AR density ***/ dmr = soutput.d[4] / (dz28 * pdm[4][1]) - 1.0; output.d[4] = output.d[2] * pdm[4][1] * (1.0 + dmr*dmc); #/**** Hydrogen density ****/ output.d[6] = 0; #/**** Atomic nitrogen density ****/ output.d[7] = 0; #/**** Total mass density */ output.d[5] = 1.66E-24 * (4.0 * output.d[0] + 16.0 * output.d[1] + 28.0 * output.d[2] + 32.0 * output.d[3] + 40.0 * output.d[4] + output.d[6] + 14.0 * output.d[7]); if (flags.sw[0]): # pragma: no cover output.d[5]=output.d[5]/1000; #/**** temperature at altitude ****/ global dd dd = densm(Input.alt, 1.0, 0, tz, mn3, zn3, meso_tn3, meso_tgn3, mn2, zn2, meso_tn2, meso_tgn2); output.t[1]=tz[0]; return ''' /* ------------------------------------------------------------------- */ /* ------------------------------- GTD7D ----------------------------- */ /* ------------------------------------------------------------------- */ ''' def gtd7d(Input, flags, output): # pragma: no cover '''A separate subroutine (GTD7D) computes the ‘‘effec- tive’’ mass density by summing the thermospheric mass density and the mass density of the anomalous oxygen component. Below 500 km, the effective mass density is equivalent to the thermospheric mass density, and we drop the distinction. ''' gtd7(Input, flags, output) output.d[5] = 1.66E-24 * (4.0 * output.d[0] + 16.0 * output.d[1] + 28.0 * output.d[2] + 32.0 * output.d[3] + 40.0 * output.d[4] + output.d[6] + 14.0 * output.d[7] + 16.0 * output.d[8]); if (flags.sw[0]): output.d[5]=output.d[5]/1000; return ''' /* ------------------------------------------------------------------- */ /* -------------------------------- GHP7 ----------------------------- */ /* ------------------------------------------------------------------- */ ''' def ghp7(Input, flags, output, press): # pragma: no cover bm = 1.3806E-19; rgas = 831.4; #rgas = 831.44621 #maybe make this a global constant? test = 0.00043; ltest = 12; pl = log10(press) if (pl >= -5.0): if (pl>2.5): zi = 18.06 * (3.00 - pl); elif ((pl>0.075) and (pl<=2.5)): zi = 14.98 * (3.08 - pl); elif ((pl>-1) and (pl<=0.075)): zi = 17.80 * (2.72 - pl); elif ((pl>-2) and (pl<=-1)): zi = 14.28 * (3.64 - pl); elif ((pl>-4) and (pl<=-2)): zi = 12.72 * (4.32 -pl); elif (pl<=-4): zi = 25.3 * (0.11 - pl); cl = Input.g_lat/90.0; cl2 = cl*cl; if (Input.doy<182): cd = (1.0 - float(Input.doy)) / 91.25; else: cd = (float(Input.doy)) / 91.25 - 3.0; ca = 0; if ((pl > -1.11) and (pl<=-0.23)): ca = 1.0; if (pl > -0.23): ca = (2.79 - pl) / (2.79 + 0.23); if ((pl <= -1.11) and (pl>-3)): ca = (-2.93 - pl)/(-2.93 + 1.11); z = zi - 4.87 * cl * cd * ca - 1.64 * cl2 * ca + 0.31 * ca * cl; else: z = 22.0 * pow((pl + 4.0),2.0) + 110.0; #/* iteration loop */ l = 0; while(True): l += 1; Input.alt = z; gtd7(Input, flags, output); z = Input.alt; xn = output.d[0] + output.d[1] + output.d[2] + output.d[3] + output.d[4] + output.d[6] + output.d[7]; p = bm * xn * output.t[1]; if (flags.sw[0]): p = p*1.0E-6; diff = pl - log10(p); if (sqrt(diff*diff) 72.5 km! */ ''' zn1 = [120.0, 110.0, 100.0, 90.0, 72.5] mn1 = 5 dgtr=1.74533E-2; dr=1.72142E-2; alpha = [-0.38, 0.0, 0.0, 0.0, 0.17, 0.0, -0.38, 0.0, 0.0] altl = [200.0, 300.0, 160.0, 250.0, 240.0, 450.0, 320.0, 450.0] za = pdl[1][15]; zn1[0] = za; for j in range(9): output.d[j]=0; #/* TINF VARIATIONS NOT IMPORTANT BELOW ZA OR ZN1(1) */ if (Input.alt>zn1[0]): tinf = ptm[0]*pt[0] * \ (1.0+flags.sw[16]*globe7(pt,Input,flags)); else: tinf = ptm[0]*pt[0]; output.t[0]=tinf; #/* GRADIENT VARIATIONS NOT IMPORTANT BELOW ZN1(5) */ if (Input.alt>zn1[4]): g0 = ptm[3]*ps[0] * \ (1.0+flags.sw[19]*globe7(ps,Input,flags)); else: g0 = ptm[3]*ps[0]; tlb = ptm[1] * (1.0 + flags.sw[17]*globe7(pd[3],Input,flags))*pd[3][0]; s = g0 / (tinf - tlb); #/* Lower thermosphere temp variations not significant for # * density above 300 km */ if (Input.alt<300.0): meso_tn1[1]=ptm[6]*ptl[0][0]/(1.0-flags.sw[18]*glob7s(ptl[0], Input, flags)); meso_tn1[2]=ptm[2]*ptl[1][0]/(1.0-flags.sw[18]*glob7s(ptl[1], Input, flags)); meso_tn1[3]=ptm[7]*ptl[2][0]/(1.0-flags.sw[18]*glob7s(ptl[2], Input, flags)); meso_tn1[4]=ptm[4]*ptl[3][0]/(1.0-flags.sw[18]*flags.sw[20]*glob7s(ptl[3], Input, flags)); meso_tgn1[1]=ptm[8]*pma[8][0]*(1.0+flags.sw[18]*flags.sw[20]*glob7s(pma[8], Input, flags))*meso_tn1[4]*meso_tn1[4]/(pow((ptm[4]*ptl[3][0]),2.0)); else: meso_tn1[1]=ptm[6]*ptl[0][0]; meso_tn1[2]=ptm[2]*ptl[1][0]; meso_tn1[3]=ptm[7]*ptl[2][0]; meso_tn1[4]=ptm[4]*ptl[3][0]; meso_tgn1[1]=ptm[8]*pma[8][0]*meso_tn1[4]*meso_tn1[4]/(pow((ptm[4]*ptl[3][0]),2.0)); z0 = zn1[3]; t0 = meso_tn1[3]; tr12 = 1.0; #/* N2 variation factor at Zlb */ g28=flags.sw[21]*globe7(pd[2], Input, flags); #/* VARIATION OF TURBOPAUSE HEIGHT */ zhf=pdl[1][24]*(1.0+flags.sw[5]*pdl[0][24]*sin(dgtr*Input.g_lat)*cos(dr*(Input.doy-pt[13]))); output.t[0]=tinf; xmm = pdm[2][4]; z = Input.alt; #/**** N2 DENSITY ****/ #/* Diffusive density at Zlb */ db28 = pdm[2][0]*exp(g28)*pd[2][0]; #/* Diffusive density at Alt */ RandomVariable = [output.t[1]] output.d[2]=densu(z,db28,tinf,tlb,28.0,alpha[2],RandomVariable,ptm[5],s,mn1,zn1,meso_tn1,meso_tgn1); output.t[1] = RandomVariable[0] dd=output.d[2]; #/* Turbopause */ zh28=pdm[2][2]*zhf; zhm28=pdm[2][3]*pdl[1][5]; xmd=28.0-xmm; #/* Mixed density at Zlb */ tz = [0] b28=densu(zh28,db28,tinf,tlb,xmd,(alpha[2]-1.0),tz,ptm[5],s,mn1, zn1,meso_tn1,meso_tgn1); if ((flags.sw[15]) and (z<=altl[2])): #/* Mixed density at Alt */ global dm28 dm28=densu(z,b28,tinf,tlb,xmm,alpha[2],tz,ptm[5],s,mn1,zn1,meso_tn1,meso_tgn1); #/* Net density at Alt */ output.d[2]=dnet(output.d[2],dm28,zhm28,xmm,28.0); #/**** HE DENSITY ****/ #/* Density variation factor at Zlb */ g4 = flags.sw[21]*globe7(pd[0], Input, flags); #/* Diffusive density at Zlb */ db04 = pdm[0][0]*exp(g4)*pd[0][0]; #/* Diffusive density at Alt */ RandomVariable = [output.t[1]] output.d[0]=densu(z,db04,tinf,tlb, 4.,alpha[0],RandomVariable,ptm[5],s,mn1,zn1,meso_tn1,meso_tgn1); output.t[1] = RandomVariable[0] dd=output.d[0]; if ((flags.sw[15]) and (z Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* -------------------------------------------------------------------- */ /* --------- N R L M S I S E - 0 0 M O D E L 2 0 0 1 ---------- */ /* -------------------------------------------------------------------- */ /* This file is part of the NRLMSISE-00 C source code package - release * 20041227 * * The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and * Doug Drob. They also wrote a NRLMSISE-00 distribution package in * FORTRAN which is available at * http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm * * Dominik Brodowski implemented and maintains this C version. You can * reach him at mail@brodo.de. See the file "DOCUMENTATION" for details, * and check http://www.brodo.de/english/pub/nrlmsise/index.html for * updated releases of this package. */ """ from __future__ import division __all__ = ['nrlmsise_flags', 'ap_array', 'nrlmsise_input', 'nrlmsise_output'] #/* ------------------------------------------------------------------- */ #/* ------------------------------- INPUT ----------------------------- */ #/* ------------------------------------------------------------------- */ class nrlmsise_flags(object): """ * Switches: to turn on and off particular variations use these switches. * 0 is off, 1 is on, and 2 is main effects off but cross terms on. * * Standard values are 0 for switch 0 and 1 for switches 1 to 23. The * array "switches" needs to be set accordingly by the calling program. * The arrays sw and swc are set internally. * * switches[i]: * i - explanation * ----------------- * 0 - output in centimeters instead of meters * 1 - F10.7 effect on mean * 2 - time independent * 3 - symmetrical annual * 4 - symmetrical semiannual * 5 - asymmetrical annual * 6 - asymmetrical semiannual * 7 - diurnal * 8 - semidiurnal * 9 - daily ap [when this is set to -1 (!) the pointer * ap_a in struct nrlmsise_input must * point to a struct ap_array] * 10 - all UT/long effects * 11 - longitudinal * 12 - UT and mixed UT/long * 13 - mixed AP/UT/LONG * 14 - terdiurnal * 15 - departures from diffusive equilibrium * 16 - all TINF var * 17 - all TLB var * 18 - all TN1 var * 19 - all S var * 20 - all TN2 var * 21 - all NLB var * 22 - all TN3 var * 23 - turbo scale height var """ def __init__(self): self.switches = [0.0]*24 self.sw = [0.0]*24 self.swc = [0.0]*24 class ap_array(object): """ * Array containing the following magnetic values: * 0 : daily AP * 1 : 3 hr AP index for current time * 2 : 3 hr AP index for 3 hrs before current time * 3 : 3 hr AP index for 6 hrs before current time * 4 : 3 hr AP index for 9 hrs before current time * 5 : Average of eight 3 hr AP indicies from 12 to 33 hrs * prior to current time * 6 : Average of eight 3 hr AP indicies from 36 to 57 hrs * prior to current time """ def __init__(self): self.a = [0.0]*7 class nrlmsise_input(object): """ /* * NOTES ON INPUT VARIABLES: * UT, Local Time, and Longitude are used independently in the * model and are not of equal importance for every situation. * For the most physically realistic calculation these three * variables should be consistent (lst=sec/3600 + g_long/15). * The Equation of Time departures from the above formula * for apparent local time can be included if available but * are of minor importance. * * f107 and f107A values used to generate the model correspond * to the 10.7 cm radio flux at the actual distance of the Earth * from the Sun rather than the radio flux at 1 AU. The following * site provides both classes of values: * ftp://ftp.ngdc.noaa.govS/STP/SOLAR_DATA/SOLAR_RADIO/FLUX/ * * f107, f107A, and ap effects are neither large nor well * established below 80 km and these parameters should be set to * 150., 150., and 4. respectively. */ """ def __init__(self, year=0, doy=0, sec=0.0, alt=0.0, g_lat=0.0, g_long=0.0, lst=0.0, f107A=0.0, f107=0.0, ap=0.0, ap_a=None): self.year = year #/* year, currently ignored */ self.doy = doy #/* day of year */ self.sec = sec #/* seconds in day (UT) */ self.alt = alt #/* altitude in kilometes */ self.g_lat = g_lat #/* geodetic latitude */ self.g_long = g_long #/* geodetic longitude */ self.lst = lst #/* local apparent solar time (hours), see note above */ self.f107A = f107A #/* 81 day average of F10.7 flux (centered on doy) */ self.f107 = f107 #/* daily F10.7 flux for previous day */ self.ap = ap #/* magnetic index(daily) */ self.ap_a = ap_a #/* see above */ Set as none for an idiot check #set flags.switches[9] = -1 to use this #/* ------------------------------------------------------------------- */ #/* ------------------------------ OUTPUT ----------------------------- */ #/* ------------------------------------------------------------------- */ class nrlmsise_output(object): """ /* * OUTPUT VARIABLES: * d[0] - HE NUMBER DENSITY(CM-3) * d[1] - O NUMBER DENSITY(CM-3) * d[2] - N2 NUMBER DENSITY(CM-3) * d[3] - O2 NUMBER DENSITY(CM-3) * d[4] - AR NUMBER DENSITY(CM-3) * d[5] - TOTAL MASS DENSITY(GM/CM3) [includes d[8] in td7d] * d[6] - H NUMBER DENSITY(CM-3) * d[7] - N NUMBER DENSITY(CM-3) * d[8] - Anomalous oxygen NUMBER DENSITY(CM-3) * t[0] - EXOSPHERIC TEMPERATURE * t[1] - TEMPERATURE AT ALT * * * O, H, and N are set to zero below 72.5 km * * t[0], Exospheric temperature, is set to global average for * altitudes below 120 km. The 120 km gradient is left at global * average value for altitudes below 72 km. * * d[5], TOTAL MASS DENSITY, is NOT the same for subroutines GTD7 * and GTD7D * * SUBROUTINE GTD7 -- d[5] is the sum of the mass densities of the * species labeled by indices 0-4 and 6-7 in output variable d. * This includes He, O, N2, O2, Ar, H, and N but does NOT include * anomalous oxygen (species index 8). * * SUBROUTINE GTD7D -- d[5] is the "effective total mass density * for drag" and is the sum of the mass densities of all species * in this model, INCLUDING anomalous oxygen. */ """ def __init__(self): self.d = [0.0]*9 #/* densities */ self.t = [0.0]*2 #/* temperatures */ #/* ------------------------------------------------------------------- */ #/* --------------------------- PROTOTYPES ---------------------------- */ #/* ------------------------------------------------------------------- */ # No prototypes are used here, these are here for reference ''' /* GTD7 */ /* Neutral Atmosphere Empircial Model from the surface to lower * exosphere. */ /* GTD7D */ /* This subroutine provides Effective Total Mass Density for output * d[5] which includes contributions from "anomalous oxygen" which can * affect satellite drag above 500 km. See the section "output" for * additional details. */ /* GTS7 */ /* Thermospheric portion of NRLMSISE-00 */ /* GHP7 */ /* To specify outputs at a pressure level (press) rather than at * an altitude. */ ''' fluids-0.1.78/fluids/nrlmsise00/README0000644000175000017500000000075413632560624016010 0ustar kurtkurtThis is a port of the NRLMSISE-00 atmospheric model to python based of the c version from Dominik Brodowski http://www.brodo.de/english/pub/nrlmsise/ It is used the same way as the c version is C program runtime 0.031-0.033 seconds Python runtime 0.038-0.041 seconds It runs at almost comparable speeds after running a few times To use, make an input class, and output class, and a flag class. Set the input and flags with the appropriate settings, then call gtd7(input, flags, output) fluids-0.1.78/fluids/nrlmsise00/LICENSE0000644000175000017500000000211513632560624016126 0ustar kurtkurtThe MIT License (MIT) Copyright (c) 2016 Joshua Milas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.fluids-0.1.78/fluids/nrlmsise00/nrlmsise_00_data.py0000644000175000017500000014031113632560624020620 0ustar kurtkurt# -*- coding: utf-8 -*- """ 12/19/2013 Author: Joshua Milas Python Version: 3.3.2 The NRLMSISE-00 model 2001 ported to python Based off of Dominik Brodowski 20100516 version available here http://www.brodo.de/english/pub/nrlmsise/ This is the external data file used by the main program The MIT License (MIT) Copyright (c) 2016 Joshua Milas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /* -------------------------------------------------------------------- */ /* --------- N R L M S I S E - 0 0 M O D E L 2 0 0 1 ---------- */ /* -------------------------------------------------------------------- */ /* This file is part of the NRLMSISE-00 C source code package - release * 20041227 * * The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and * Doug Drob. They also wrote a NRLMSISE-00 distribution package in * FORTRAN which is available at * http://uap-www.nrl.navy.mil/models_web/msis/msis_home.htm * * Dominik Brodowski implemented and maintains this C version. You can * reach him at mail@brodo.de. See the file "DOCUMENTATION" for details, * and check http://www.brodo.de/english/pub/nrlmsise/index.html for * updated releases of this package. */ """ from __future__ import division __all__ = ['pt', 'pd', 'ps', 'pdl', 'ptm', 'pdm', 'ptl', 'pma', 'sam', 'pavgm'] #TEMPERATURE pt = [9.86573E-01, 1.62228E-02, 1.55270E-02,-1.04323E-01,-3.75801E-03, -1.18538E-03,-1.24043E-01, 4.56820E-03, 8.76018E-03,-1.36235E-01, -3.52427E-02, 8.84181E-03,-5.92127E-03,-8.61650E+00, 0.00000E+00, 1.28492E-02, 0.00000E+00, 1.30096E+02, 1.04567E-02, 1.65686E-03, -5.53887E-06, 2.97810E-03, 0.00000E+00, 5.13122E-03, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.27026E-06, 0.00000E+00, 6.74494E+00, 4.93933E-03, 2.21656E-03, 2.50802E-03, 0.00000E+00, 0.00000E+00,-2.08841E-02,-1.79873E+00, 1.45103E-03, 2.81769E-04,-1.44703E-03,-5.16394E-05, 8.47001E-02, 1.70147E-01, 5.72562E-03, 5.07493E-05, 4.36148E-03, 1.17863E-04, 4.74364E-03, 6.61278E-03, 4.34292E-05, 1.44373E-03, 2.41470E-05, 2.84426E-03, 8.56560E-04, 2.04028E-03, 0.00000E+00,-3.15994E+03,-2.46423E-03, 1.13843E-03, 4.20512E-04, 0.00000E+00,-9.77214E+01, 6.77794E-03, 5.27499E-03, 1.14936E-03, 0.00000E+00,-6.61311E-03,-1.84255E-02, -1.96259E-02, 2.98618E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.44574E+02, 8.84668E-04, 5.05066E-04, 0.00000E+00, 4.02881E+03, -1.89503E-03, 0.00000E+00, 0.00000E+00, 8.21407E-04, 2.06780E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, -1.20410E-02,-3.63963E-03, 9.92070E-05,-1.15284E-04,-6.33059E-05, -6.05545E-01, 8.34218E-03,-9.13036E+01, 3.71042E-04, 0.00000E+00, 4.19000E-04, 2.70928E-03, 3.31507E-03,-4.44508E-03,-4.96334E-03, -1.60449E-03, 3.95119E-03, 2.48924E-03, 5.09815E-04, 4.05302E-03, 2.24076E-03, 0.00000E+00, 6.84256E-03, 4.66354E-04, 0.00000E+00, -3.68328E-04, 0.00000E+00, 0.00000E+00,-1.46870E+02, 0.00000E+00, 0.00000E+00, 1.09501E-03, 4.65156E-04, 5.62583E-04, 3.21596E+00, 6.43168E-04, 3.14860E-03, 3.40738E-03, 1.78481E-03, 9.62532E-04, 5.58171E-04, 3.43731E+00,-2.33195E-01, 5.10289E-04, 0.00000E+00, 0.00000E+00,-9.25347E+04, 0.00000E+00,-1.99639E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00] pd = [ #/* HE DENSITY */ [ 1.09979E+00,-4.88060E-02,-1.97501E-01,-9.10280E-02,-6.96558E-03, 2.42136E-02, 3.91333E-01,-7.20068E-03,-3.22718E-02, 1.41508E+00, 1.68194E-01, 1.85282E-02, 1.09384E-01,-7.24282E+00, 0.00000E+00, 2.96377E-01,-4.97210E-02, 1.04114E+02,-8.61108E-02,-7.29177E-04, 1.48998E-06, 1.08629E-03, 0.00000E+00, 0.00000E+00, 8.31090E-02, 1.12818E-01,-5.75005E-02,-1.29919E-02,-1.78849E-02,-2.86343E-06, 0.00000E+00,-1.51187E+02,-6.65902E-03, 0.00000E+00,-2.02069E-03, 0.00000E+00, 0.00000E+00, 4.32264E-02,-2.80444E+01,-3.26789E-03, 2.47461E-03, 0.00000E+00, 0.00000E+00, 9.82100E-02, 1.22714E-01, -3.96450E-02, 0.00000E+00,-2.76489E-03, 0.00000E+00, 1.87723E-03, -8.09813E-03, 4.34428E-05,-7.70932E-03, 0.00000E+00,-2.28894E-03, -5.69070E-03,-5.22193E-03, 6.00692E-03,-7.80434E+03,-3.48336E-03, -6.38362E-03,-1.82190E-03, 0.00000E+00,-7.58976E+01,-2.17875E-02, -1.72524E-02,-9.06287E-03, 0.00000E+00, 2.44725E-02, 8.66040E-02, 1.05712E-01, 3.02543E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, -6.01364E+03,-5.64668E-03,-2.54157E-03, 0.00000E+00, 3.15611E+02, -5.69158E-03, 0.00000E+00, 0.00000E+00,-4.47216E-03,-4.49523E-03, 4.64428E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.51236E-02, 2.46520E-02, 6.17794E-03, 0.00000E+00, 0.00000E+00, -3.62944E-01,-4.80022E-02,-7.57230E+01,-1.99656E-03, 0.00000E+00, -5.18780E-03,-1.73990E-02,-9.03485E-03, 7.48465E-03, 1.53267E-02, 1.06296E-02, 1.18655E-02, 2.55569E-03, 1.69020E-03, 3.51936E-02, -1.81242E-02, 0.00000E+00,-1.00529E-01,-5.10574E-03, 0.00000E+00, 2.10228E-03, 0.00000E+00, 0.00000E+00,-1.73255E+02, 5.07833E-01, -2.41408E-01, 8.75414E-03, 2.77527E-03,-8.90353E-05,-5.25148E+00, -5.83899E-03,-2.09122E-02,-9.63530E-03, 9.77164E-03, 4.07051E-03, 2.53555E-04,-5.52875E+00,-3.55993E-01,-2.49231E-03, 0.00000E+00, 0.00000E+00, 2.86026E+01, 0.00000E+00, 3.42722E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* O DENSITY */ [ 1.02315E+00,-1.59710E-01,-1.06630E-01,-1.77074E-02,-4.42726E-03, 3.44803E-02, 4.45613E-02,-3.33751E-02,-5.73598E-02, 3.50360E-01, 6.33053E-02, 2.16221E-02, 5.42577E-02,-5.74193E+00, 0.00000E+00, 1.90891E-01,-1.39194E-02, 1.01102E+02, 8.16363E-02, 1.33717E-04, 6.54403E-06, 3.10295E-03, 0.00000E+00, 0.00000E+00, 5.38205E-02, 1.23910E-01,-1.39831E-02, 0.00000E+00, 0.00000E+00,-3.95915E-06, 0.00000E+00,-7.14651E-01,-5.01027E-03, 0.00000E+00,-3.24756E-03, 0.00000E+00, 0.00000E+00, 4.42173E-02,-1.31598E+01,-3.15626E-03, 1.24574E-03,-1.47626E-03,-1.55461E-03, 6.40682E-02, 1.34898E-01, -2.42415E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.13666E-04, -5.40373E-03, 2.61635E-05,-3.33012E-03, 0.00000E+00,-3.08101E-03, -2.42679E-03,-3.36086E-03, 0.00000E+00,-1.18979E+03,-5.04738E-02, -2.61547E-03,-1.03132E-03, 1.91583E-04,-8.38132E+01,-1.40517E-02, -1.14167E-02,-4.08012E-03, 1.73522E-04,-1.39644E-02,-6.64128E-02, -6.85152E-02,-1.34414E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.07916E+02,-4.12220E-03,-2.20996E-03, 0.00000E+00, 1.70277E+03, -4.63015E-03, 0.00000E+00, 0.00000E+00,-2.25360E-03,-2.96204E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.92786E-02, 1.31186E-02,-1.78086E-03, 0.00000E+00, 0.00000E+00, -3.90083E-01,-2.84741E-02,-7.78400E+01,-1.02601E-03, 0.00000E+00, -7.26485E-04,-5.42181E-03,-5.59305E-03, 1.22825E-02, 1.23868E-02, 6.68835E-03,-1.03303E-02,-9.51903E-03, 2.70021E-04,-2.57084E-02, -1.32430E-02, 0.00000E+00,-3.81000E-02,-3.16810E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-9.05762E-04,-2.14590E-03,-1.17824E-03, 3.66732E+00, -3.79729E-04,-6.13966E-03,-5.09082E-03,-1.96332E-03,-3.08280E-03, -9.75222E-04, 4.03315E+00,-2.52710E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* N2 DENSITY */ [ 1.16112E+00, 0.00000E+00, 0.00000E+00, 3.33725E-02, 0.00000E+00, 3.48637E-02,-5.44368E-03, 0.00000E+00,-6.73940E-02, 1.74754E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00, 1.26733E-01, 0.00000E+00, 1.03154E+02, 5.52075E-02, 0.00000E+00, 0.00000E+00, 8.13525E-04, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.50482E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.48894E-03, 6.16053E-04,-5.79716E-04, 2.95482E-03, 8.47001E-02, 1.70147E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* TLB */ [ 9.44846E-01, 0.00000E+00, 0.00000E+00,-3.08617E-02, 0.00000E+00, -2.44019E-02, 6.48607E-03, 0.00000E+00, 3.08181E-02, 4.59392E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00, 2.13260E-02, 0.00000E+00,-3.56958E+02, 0.00000E+00, 1.82278E-04, 0.00000E+00, 3.07472E-04, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.83054E-03, 0.00000E+00, 0.00000E+00, -1.93065E-03,-1.45090E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.23493E-03, 1.36736E-03, 8.47001E-02, 1.70147E-01, 3.71469E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.10250E-03, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.68756E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* O2 DENSITY */ [ 1.35580E+00, 1.44816E-01, 0.00000E+00, 6.07767E-02, 0.00000E+00, 2.94777E-02, 7.46900E-02, 0.00000E+00,-9.23822E-02, 8.57342E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.38636E+01, 0.00000E+00, 7.71653E-02, 0.00000E+00, 8.18751E+01, 1.87736E-02, 0.00000E+00, 0.00000E+00, 1.49667E-02, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.67874E+02, 5.48158E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01, 1.22631E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.17187E-03, 3.71617E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.10826E-03, -3.13640E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, -7.35742E-02,-5.00266E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.94965E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* AR DENSITY */ [ 1.04761E+00, 2.00165E-01, 2.37697E-01, 3.68552E-02, 0.00000E+00, 3.57202E-02,-2.14075E-01, 0.00000E+00,-1.08018E-01,-3.73981E-01, 0.00000E+00, 3.10022E-02,-1.16305E-03,-2.07596E+01, 0.00000E+00, 8.64502E-02, 0.00000E+00, 9.74908E+01, 5.16707E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.46193E+02, 1.34297E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.48509E-03, -1.54689E-04, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01, 1.47753E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.89320E-02, 3.68181E-05, 1.32570E-02, 0.00000E+00, 0.00000E+00, 3.59719E-03, 7.44328E-03,-1.00023E-03,-6.50528E+03, 0.00000E+00, 1.03485E-02,-1.00983E-03,-4.06916E-03,-6.60864E+01,-1.71533E-02, 1.10605E-02, 1.20300E-02,-5.20034E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, -2.62769E+03, 7.13755E-03, 4.17999E-03, 0.00000E+00, 1.25910E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.23595E-03, 4.60217E-03, 5.71794E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, -3.18353E-02,-2.35526E-02,-1.36189E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.03522E-02,-6.67837E+01,-1.09724E-03, 0.00000E+00, -1.38821E-02, 1.60468E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.51574E-02, -5.44470E-04, 0.00000E+00, 7.28224E-02, 6.59413E-02, 0.00000E+00, -5.15692E-03, 0.00000E+00, 0.00000E+00,-3.70367E+03, 0.00000E+00, 0.00000E+00, 1.36131E-02, 5.38153E-03, 0.00000E+00, 4.76285E+00, -1.75677E-02, 2.26301E-02, 0.00000E+00, 1.76631E-02, 4.77162E-03, 0.00000E+00, 5.39354E+00, 0.00000E+00,-7.51710E-03, 0.00000E+00, 0.00000E+00,-8.82736E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* H DENSITY */ [ 1.26376E+00,-2.14304E-01,-1.49984E-01, 2.30404E-01, 2.98237E-02, 2.68673E-02, 2.96228E-01, 2.21900E-02,-2.07655E-02, 4.52506E-01, 1.20105E-01, 3.24420E-02, 4.24816E-02,-9.14313E+00, 0.00000E+00, 2.47178E-02,-2.88229E-02, 8.12805E+01, 5.10380E-02,-5.80611E-03, 2.51236E-05,-1.24083E-02, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01,-3.48190E-02, 0.00000E+00, 0.00000E+00, 2.89885E-05, 0.00000E+00, 1.53595E+02,-1.68604E-02, 0.00000E+00, 1.01015E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.84552E-04, -1.22181E-03, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01, -1.04927E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.91313E-03, -2.30501E-02, 3.14758E-05, 0.00000E+00, 0.00000E+00, 1.26956E-02, 8.35489E-03, 3.10513E-04, 0.00000E+00, 3.42119E+03,-2.45017E-03, -4.27154E-04, 5.45152E-04, 1.89896E-03, 2.89121E+01,-6.49973E-03, -1.93855E-02,-1.48492E-02, 0.00000E+00,-5.10576E-02, 7.87306E-02, 9.51981E-02,-1.49422E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.65503E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.37110E-03, 3.24789E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.14274E-02, 1.00376E-02,-8.41083E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.27099E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, -3.94077E-03,-1.28601E-02,-7.97616E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-6.71465E-03,-1.69799E-03, 1.93772E-03, 3.81140E+00, -7.79290E-03,-1.82589E-02,-1.25860E-02,-1.04311E-02,-3.02465E-03, 2.43063E-03, 3.63237E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* N DENSITY */ [ 7.09557E+01,-3.26740E-01, 0.00000E+00,-5.16829E-01,-1.71664E-03, 9.09310E-02,-6.71500E-01,-1.47771E-01,-9.27471E-02,-2.30862E-01, -1.56410E-01, 1.34455E-02,-1.19717E-01, 2.52151E+00, 0.00000E+00, -2.41582E-01, 5.92939E-02, 4.39756E+00, 9.15280E-02, 4.41292E-03, 0.00000E+00, 8.66807E-03, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 9.74701E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.70217E+01,-1.31660E-03, 0.00000E+00,-1.65317E-02, 0.00000E+00, 0.00000E+00, 8.50247E-02, 2.77428E+01, 4.98658E-03, 6.15115E-03, 9.50156E-03,-2.12723E-02, 8.47001E-02, 1.70147E-01, -2.38645E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.37380E-03, -8.41918E-03, 2.80145E-05, 7.12383E-03, 0.00000E+00,-1.66209E-02, 1.03533E-04,-1.68898E-02, 0.00000E+00, 3.64526E+03, 0.00000E+00, 6.54077E-03, 3.69130E-04, 9.94419E-04, 8.42803E+01,-1.16124E-02, -7.74414E-03,-1.68844E-03, 1.42809E-03,-1.92955E-03, 1.17225E-01, -2.41512E-02, 1.50521E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.60261E+03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.54403E-04,-1.87270E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.76439E-02, 6.43207E-03,-3.54300E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.80221E-02, 8.11228E+01,-6.75255E-04, 0.00000E+00, -1.05162E-02,-3.48292E-03,-6.97321E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.45546E-03,-1.31970E-02,-3.57751E-03,-1.09021E+00, -1.50181E-02,-7.12841E-03,-6.64590E-03,-3.52610E-03,-1.87773E-02, -2.22432E-03,-3.93895E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], #/* HOT O DENSITY */ [ 6.04050E-02, 1.57034E+00, 2.99387E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.51018E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.61650E+00, 1.26454E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.50878E-03, 0.00000E+00, 0.00000E+00, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.23881E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 8.47001E-02, 1.70147E-01, -9.45934E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ] ] #/* S PARAM */ ps = [9.56827E-01, 6.20637E-02, 3.18433E-02, 0.00000E+00, 0.00000E+00, 3.94900E-02, 0.00000E+00, 0.00000E+00,-9.24882E-03,-7.94023E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.74712E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.74677E-03, 0.00000E+00, 1.54951E-02, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-6.99007E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.24362E-02,-5.28756E-03, 8.47001E-02, 1.70147E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.47425E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00] #/* TURBO */ pdl = [ [ 1.09930E+00, 3.90631E+00, 3.07165E+00, 9.86161E-01, 1.63536E+01, 4.63830E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.28840E+00, 3.10302E-02, 1.18339E-01 ], [ 1.00000E+00, 7.00000E-01, 1.15020E+00, 3.44689E+00, 1.28840E+00, 1.00000E+00, 1.08738E+00, 1.22947E+00, 1.10016E+00, 7.34129E-01, 1.15241E+00, 2.22784E+00, 7.95046E-01, 4.01612E+00, 4.47749E+00, 1.23435E+02,-7.60535E-02, 1.68986E-06, 7.44294E-01, 1.03604E+00, 1.72783E+02, 1.15020E+00, 3.44689E+00,-7.46230E-01, 9.49154E-01 ] ] #/* LOWER BOUNDARY */ ptm = [1.04130E+03, 3.86000E+02, 1.95000E+02, 1.66728E+01, 2.13000E+02, 1.20000E+02, 2.40000E+02, 1.87000E+02,-2.00000E+00, 0.00000E+00] pdm = [ [2.45600E+07, 6.71072E-06, 1.00000E+02, 0.00000E+00, 1.10000E+02, 1.00000E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], [ 8.59400E+10, 1.00000E+00, 1.05000E+02,-8.00000E+00, 1.10000E+02, 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00 ], [ 2.81000E+11, 0.00000E+00, 1.05000E+02, 2.80000E+01, 2.89500E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], [ 3.30000E+10, 2.68270E-01, 1.05000E+02, 1.00000E+00, 1.10000E+02, 1.00000E+01, 1.10000E+02,-1.00000E+01, 0.00000E+00, 0.00000E+00 ], [ 1.33000E+09, 1.19615E-02, 1.05000E+02, 0.00000E+00, 1.10000E+02, 1.00000E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00 ], [ 1.76100E+05, 1.00000E+00, 9.50000E+01,-8.00000E+00, 1.10000E+02, 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00, ], [ 1.00000E+07, 1.00000E+00, 1.05000E+02,-8.00000E+00, 1.10000E+02, 1.00000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 0.00000E+00 ], [ 1.00000E+06, 1.00000E+00, 1.05000E+02,-8.00000E+00, 5.50000E+02, 7.60000E+01, 9.00000E+01, 2.00000E+00, 0.00000E+00, 4.00000E+03 ]] ptl = [ #/* TN1(2) */ [ 1.00858E+00, 4.56011E-02,-2.22972E-02,-5.44388E-02, 5.23136E-04, -1.88849E-02, 5.23707E-02,-9.43646E-03, 6.31707E-03,-7.80460E-02, -4.88430E-02, 0.00000E+00, 0.00000E+00,-7.60250E+00, 0.00000E+00, -1.44635E-02,-1.76843E-02,-1.21517E+02, 2.85647E-02, 0.00000E+00, 0.00000E+00, 6.31792E-04, 0.00000E+00, 5.77197E-03, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.90272E+03, 3.30611E-03, 3.02172E-03, 0.00000E+00, -2.13673E-03,-3.20910E-04, 0.00000E+00, 0.00000E+00, 2.76034E-03, 2.82487E-03,-2.97592E-04,-4.21534E-03, 8.47001E-02, 1.70147E-01, 8.96456E-03, 0.00000E+00,-1.08596E-02, 0.00000E+00, 0.00000E+00, 5.57917E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 9.65405E-03, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN1(3) */ [ 9.39664E-01, 8.56514E-02,-6.79989E-03, 2.65929E-02,-4.74283E-03, 1.21855E-02,-2.14905E-02, 6.49651E-03,-2.05477E-02,-4.24952E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.19148E+01, 0.00000E+00, 1.18777E-02,-7.28230E-02,-8.15965E+01, 1.73887E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.44691E-02, 2.80259E-04, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.16584E+02, 3.18713E-03, 7.37479E-03, 0.00000E+00, -2.55018E-03,-3.92806E-03, 0.00000E+00, 0.00000E+00,-2.89757E-03, -1.33549E-03, 1.02661E-03, 3.53775E-04, 8.47001E-02, 1.70147E-01, -9.17497E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.56082E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.00902E-02, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN1(4) */ [ 9.85982E-01,-4.55435E-02, 1.21106E-02, 2.04127E-02,-2.40836E-03, 1.11383E-02,-4.51926E-02, 1.35074E-02,-6.54139E-03, 1.15275E-01, 1.28247E-01, 0.00000E+00, 0.00000E+00,-5.30705E+00, 0.00000E+00, -3.79332E-02,-6.24741E-02, 7.71062E-01, 2.96315E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.81051E-03,-4.34767E-03, 8.66784E-02, 1.58727E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.07003E+01,-2.76907E-03, 4.32474E-04, 0.00000E+00, 1.31497E-03,-6.47517E-04, 0.00000E+00,-2.20621E+01,-1.10804E-03, -8.09338E-04, 4.18184E-04, 4.29650E-03, 8.47001E-02, 1.70147E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, -4.04337E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-9.52550E-04, 8.56253E-04, 4.33114E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.21223E-03, 2.38694E-04, 9.15245E-04, 1.28385E-03, 8.67668E-04,-5.61425E-06, 1.04445E+00, 3.41112E+01, 0.00000E+00,-8.40704E-01,-2.39639E+02, 7.06668E-01,-2.05873E+01,-3.63696E-01, 2.39245E+01, 0.00000E+00, -1.06657E-03,-7.67292E-04, 1.54534E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN1(5) TN2(1) */ [ 1.00320E+00, 3.83501E-02,-2.38983E-03, 2.83950E-03, 4.20956E-03, 5.86619E-04, 2.19054E-02,-1.00946E-02,-3.50259E-03, 4.17392E-02, -8.44404E-03, 0.00000E+00, 0.00000E+00, 4.96949E+00, 0.00000E+00, -7.06478E-03,-1.46494E-02, 3.13258E+01,-1.86493E-03, 0.00000E+00, -1.67499E-02, 0.00000E+00, 0.00000E+00, 5.12686E-04, 8.66784E-02, 1.58727E-01,-4.64167E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.37353E-03,-1.99069E+02, 0.00000E+00,-5.34884E-03, 0.00000E+00, 1.62458E-03, 2.93016E-03, 2.67926E-03, 5.90449E+02, 0.00000E+00, 0.00000E+00,-1.17266E-03,-3.58890E-04, 8.47001E-02, 1.70147E-01, 0.00000E+00, 0.00000E+00, 1.38673E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.60571E-03, 6.28078E-04, 5.05469E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.57829E-03, -4.00855E-04, 5.04077E-05,-1.39001E-03,-2.33406E-03,-4.81197E-04, 1.46758E+00, 6.20332E+00, 0.00000E+00, 3.66476E-01,-6.19760E+01, 3.09198E-01,-1.98999E+01, 0.00000E+00,-3.29933E+02, 0.00000E+00, -1.10080E-03,-9.39310E-05, 1.39638E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ] ]; pma = [ #/* TN2(2) */ [ 9.81637E-01,-1.41317E-03, 3.87323E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.58707E-02, -8.63658E-03, 0.00000E+00, 0.00000E+00,-2.02226E+00, 0.00000E+00, -8.69424E-03,-1.91397E-02, 8.76779E+01, 4.52188E-03, 0.00000E+00, 2.23760E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.07572E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, -4.11210E-03, 3.50060E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.36657E-03, 1.61347E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.45130E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.24152E-03, 6.43365E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.33255E-03, 2.42657E-03, 1.60666E-03,-1.85728E-03,-1.46874E-03,-4.79163E-06, 1.22464E+00, 3.53510E+01, 0.00000E+00, 4.49223E-01,-4.77466E+01, 4.70681E-01, 8.41861E+00,-2.88198E-01, 1.67854E+02, 0.00000E+00, 7.11493E-04, 6.05601E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN2(3) */ [ 1.00422E+00,-7.11212E-03, 5.24480E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.28914E-02, -2.41301E-02, 0.00000E+00, 0.00000E+00,-2.12219E+01,-1.03830E-02, -3.28077E-03, 1.65727E-02, 1.68564E+00,-6.68154E-03, 0.00000E+00, 1.45155E-02, 0.00000E+00, 8.42365E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.34645E-03, 0.00000E+00, 0.00000E+00, 2.16780E-02, 0.00000E+00,-1.38459E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.04573E-03,-4.73204E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.08767E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.08279E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.21769E-04, -2.27387E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.26769E-03, 3.16901E-03, 4.60316E-04,-1.01431E-04, 1.02131E-03, 9.96601E-04, 1.25707E+00, 2.50114E+01, 0.00000E+00, 4.24472E-01,-2.77655E+01, 3.44625E-01, 2.75412E+01, 0.00000E+00, 7.94251E+02, 0.00000E+00, 2.45835E-03, 1.38871E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN2(4) TN3(1) */ [ 1.01890E+00,-2.46603E-02, 1.00078E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-6.70977E-02, -4.02286E-02, 0.00000E+00, 0.00000E+00,-2.29466E+01,-7.47019E-03, 2.26580E-03, 2.63931E-02, 3.72625E+01,-6.39041E-03, 0.00000E+00, 9.58383E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.85291E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.39717E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 9.19771E-03,-3.69121E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.57067E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.07265E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.92953E-03, -2.77739E-03,-4.40092E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.47280E-03, 2.95035E-04,-1.81246E-03, 2.81945E-03, 4.27296E-03, 9.78863E-04, 1.40545E+00,-6.19173E+00, 0.00000E+00, 0.00000E+00,-7.93632E+01, 4.44643E-01,-4.03085E+02, 0.00000E+00, 1.15603E+01, 0.00000E+00, 2.25068E-03, 8.48557E-04,-2.98493E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN3(2) */ [ 9.75801E-01, 3.80680E-02,-3.05198E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.85575E-02, 5.04057E-02, 0.00000E+00, 0.00000E+00,-1.76046E+02, 1.44594E-02, -1.48297E-03,-3.68560E-03, 3.02185E+01,-3.23338E-03, 0.00000E+00, 1.53569E-02, 0.00000E+00,-1.15558E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.89620E-03, 0.00000E+00, 0.00000E+00,-1.00616E-02, -8.21324E-03,-1.57757E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.63564E-03, 4.58410E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.51280E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 9.91215E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-8.73148E-04, -1.29648E-03,-7.32026E-05, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.68110E-03, -4.66003E-03,-1.31567E-03,-7.39390E-04, 6.32499E-04,-4.65588E-04, -1.29785E+00,-1.57139E+02, 0.00000E+00, 2.58350E-01,-3.69453E+01, 4.10672E-01, 9.78196E+00,-1.52064E-01,-3.85084E+03, 0.00000E+00, -8.52706E-04,-1.40945E-03,-7.26786E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN3(3) */ [ 9.60722E-01, 7.03757E-02,-3.00266E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.22671E-02, 4.10423E-02, 0.00000E+00, 0.00000E+00,-1.63070E+02, 1.06073E-02, 5.40747E-04, 7.79481E-03, 1.44908E+02, 1.51484E-04, 0.00000E+00, 1.97547E-02, 0.00000E+00,-1.41844E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.77884E-03, 0.00000E+00, 0.00000E+00, 9.74319E-03, 0.00000E+00,-2.88015E+03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.44902E-03,-2.92760E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.34419E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.36685E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.65325E-04, -5.50628E-04, 3.31465E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.06179E-03, -3.08575E-03,-7.93589E-04,-1.08629E-04, 5.95511E-04,-9.05050E-04, 1.18997E+00, 4.15924E+01, 0.00000E+00,-4.72064E-01,-9.47150E+02, 3.98723E-01, 1.98304E+01, 0.00000E+00, 3.73219E+03, 0.00000E+00, -1.50040E-03,-1.14933E-03,-1.56769E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN3(4) */ [ 1.03123E+00,-7.05124E-02, 8.71615E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-3.82621E-02, -9.80975E-03, 0.00000E+00, 0.00000E+00, 2.89286E+01, 9.57341E-03, 0.00000E+00, 0.00000E+00, 8.66153E+01, 7.91938E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.68917E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.86638E-03, 0.00000E+00, 0.00000E+00, 9.90827E-03, 0.00000E+00, 6.55573E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.00200E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.07457E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.72268E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.04970E-04, 1.21560E-03,-8.05579E-06, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.49941E-03, -4.57256E-04,-1.59311E-04, 2.96481E-04,-1.77318E-03,-6.37918E-04, 1.02395E+00, 1.28172E+01, 0.00000E+00, 1.49903E-01,-2.63818E+01, 0.00000E+00, 4.70628E+01,-2.22139E-01, 4.82292E-02, 0.00000E+00, -8.67075E-04,-5.86479E-04, 5.32462E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TN3(5) SURFACE TEMP TSL */ [ 1.00828E+00,-9.10404E-02,-2.26549E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-2.32420E-02, -9.08925E-03, 0.00000E+00, 0.00000E+00, 3.36105E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.24957E+01,-5.87939E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.79765E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.01237E+03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.75553E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.29699E-03, 1.26659E-03, 2.68402E-04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.17894E-03, 1.48746E-03, 1.06478E-04, 1.34743E-04,-2.20939E-03,-6.23523E-04, 6.36539E-01, 1.13621E+01, 0.00000E+00,-3.93777E-01, 2.38687E+03, 0.00000E+00, 6.61865E+02,-1.21434E-01, 9.27608E+00, 0.00000E+00, 1.68478E-04, 1.24892E-03, 1.71345E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TGN3(2) SURFACE GRAD TSLG */ [ 1.57293E+00,-6.78400E-01, 6.47500E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-7.62974E-02, -3.60423E-01, 0.00000E+00, 0.00000E+00, 1.28358E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 4.68038E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.67898E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.90994E+04, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.15706E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TGN2(1) TGN1(2) */ [ 8.60028E-01, 3.77052E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.17570E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 7.77757E-03, 0.00000E+00, 0.00000E+00, 0.00000E+00, 1.01024E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 6.54251E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.56959E-02, 1.91001E-02, 3.15971E-02, 1.00982E-02,-6.71565E-03, 2.57693E-03, 1.38692E+00, 2.82132E-01, 0.00000E+00, 0.00000E+00, 3.81511E+02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ], #/* TGN3(1) TGN2(2) */ [ 1.06029E+00,-5.25231E-02, 3.73034E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.31072E-02, -3.88409E-01, 0.00000E+00, 0.00000E+00,-1.65295E+02,-2.13801E-01, -4.38916E-02,-3.22716E-01,-8.82393E+01, 1.18458E-01, 0.00000E+00, -4.35863E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-1.19782E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.62229E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-5.37443E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,-4.55788E-01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 3.84009E-02, 3.96733E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.05494E-02, 7.39617E-02, 1.92200E-02,-8.46151E-03,-1.34244E-02, 1.96338E-02, 1.50421E+00, 1.88368E+01, 0.00000E+00, 0.00000E+00,-5.13114E+01, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 5.11923E-02, 3.61225E-02, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 2.00000E+00 ] ]; #/* SEMIANNUAL MULT SAM */ sam = [1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 1.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00] #/* MIDDLE ATMOSPHERE AVERAGES */ pavgm = [ 2.61000E+02, 2.64000E+02, 2.29000E+02, 2.17000E+02, 2.17000E+02, 2.23000E+02, 2.86760E+02,-2.93940E+00, 2.50000E+00, 0.00000E+00 ] fluids-0.1.78/fluids/saltation.py0000644000175000017500000004203713632560624015504 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids.constants import g, pi __all__ = ['Rizk', 'Matsumoto_1974', 'Matsumoto_1975', 'Matsumoto_1977', 'Schade', 'Weber_saltation', 'Geldart_Ling'] def Rizk(mp, dp, rhog, D): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_ as described in [2]_ and many others. .. math:: \mu=\left(\frac{1}{10^{1440d_p+1.96}}\right)\left(Fr_s\right)^{1100d_p+2.5} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Examples -------- Example is from [3]_. >>> Rizk(mp=0.25, dp=100E-6, rhog=1.2, D=.078) 9.8833092829357 References ---------- .. [1] Rizk, F. "Pneumatic conveying at optimal operation conditions and a solution of Bath's equation." Proceedings of Pneumotransport 3, paper D4. BHRA Fluid Engineering, Cranfield, England (1973) .. [2] Klinzing, G. E., F. Rizk, R. Marcus, and L. S. Leung. Pneumatic Conveying of Solids: A Theoretical and Practical Approach. Springer, 2013. .. [3] Rhodes, Martin J. Introduction to Particle Technology. Wiley, 2013. ''' alpha = 1440*dp + 1.96 beta = 1100*dp + 2.5 term1 = 1./10**alpha Frs_sorta = 1/(g*D)**0.5 expression1 = term1*Frs_sorta**beta expression2 = mp/rhog/(pi/4*D**2) return (expression2/expression1)**(1./(1 + beta)) def Matsumoto_1974(mp, rhop, dp, rhog, D, Vterminal=1): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_. Also described in [2]_. .. math:: \mu = 0.448 \left(\frac{\rho_p}{\rho_f}\right)^{0.50}\left(\frac{Fr_p} {10}\right)^{-1.75}\left(\frac{Fr_s}{10}\right)^{3} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: Fr_p = \frac{V_{terminal}}{\sqrt{gd_p}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhop : float Particle density, [kg/m^3] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Vterminal : float Terminal velocity of particle settling in gas, [m/s] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Result looks high, something may be wrong. For particles > 0.3 mm. Examples -------- >>> Matsumoto_1974(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) 19.583617317317895 References ---------- .. [1] Matsumoto, Shigeru, Michio Kara, Shozaburo Saito, and Siro Maeda. "Minimum Transport Velocity for Horizontal Pneumatic Conveying." Journal of Chemical Engineering of Japan 7, no. 6 (1974): 425-30. doi:10.1252/jcej.7.425. .. [2] Jones, Peter J., and L. S. Leung. "A Comparison of Correlations for Saltation Velocity in Horizontal Pneumatic Conveying." Industrial & Engineering Chemistry Process Design and Development 17, no. 4 (October 1, 1978): 571-75. doi:10.1021/i260068a031 ''' A = pi/4*D**2 Frp = Vterminal/(g*dp)**0.5 Frs_sorta = 1./(g*D)**0.5 expression1 = 0.448*(rhop/rhog)**0.5*(Frp/10.)**-1.75*(Frs_sorta/10.)**3 expression2 = mp/rhog/A return (expression2/expression1)**(1/4.) def Matsumoto_1975(mp, rhop, dp, rhog, D, Vterminal=1): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_. Also described in [2]_. .. math:: \mu = 1.11 \left(\frac{\rho_p}{\rho_f}\right)^{0.55}\left(\frac{Fr_p} {10}\right)^{-2.3}\left(\frac{Fr_s}{10}\right)^{3} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: Fr_p = \frac{V_{terminal}}{\sqrt{gd_p}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhop : float Particle density, [kg/m^3] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Vterminal : float Terminal velocity of particle settling in gas, [m/s] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Result looks high, something may be wrong. For particles > 0.3 mm. Examples -------- >>> Matsumoto_1975(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) 18.04523091703009 References ---------- .. [1] Matsumoto, Shigeru, Shundo Harada, Shozaburo Saito, and Siro Maeda. "Saltation Velocity for Horizontal Pneumatic Conveying." Journal of Chemical Engineering of Japan 8, no. 4 (1975): 331-33. doi:10.1252/jcej.8.331. .. [2] Jones, Peter J., and L. S. Leung. "A Comparison of Correlations for Saltation Velocity in Horizontal Pneumatic Conveying." Industrial & Engineering Chemistry Process Design and Development 17, no. 4 (October 1, 1978): 571-75. doi:10.1021/i260068a031 ''' A = pi/4*D**2 Frp = Vterminal/(g*dp)**0.5 Frs_sorta = 1./(g*D)**0.5 expression1 = 1.11*(rhop/rhog)**0.55*(Frp/10.)**-2.3*(Frs_sorta/10.)**3 expression2 = mp/rhog/A return (expression2/expression1)**(1/4.) def Matsumoto_1977(mp, rhop, dp, rhog, D, Vterminal=1): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_ and reproduced in [2]_, [3]_, and [4]_. First equation is used if third equation yields d* higher than dp. Otherwise, use equation 2. .. math:: \mu = 5560\left(\frac{d_p}{D}\right)^{1.43}\left(\frac{Fr_s}{10}\right)^4 .. math:: \mu = 0.373 \left(\frac{\rho_p}{\rho_f}\right)^{1.06}\left(\frac{Fr_p} {10}\right)^{-3.7}\left(\frac{Fr_s}{10}\right)^{3.61} .. math:: \frac{d_p^*}{D} = 1.39\left(\frac{\rho_p}{\rho_f}\right)^{-0.74} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: Fr_p = \frac{V_{terminal}}{\sqrt{gd_p}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhop : float Particle density, [kg/m^3] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Vterminal : float Terminal velocity of particle settling in gas, [m/s] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearanged to be explicit in terms of saltation velocity internally.r Examples -------- Example is only a self-test. Course routine, terminal velocity input is from example in [2]. >>> Matsumoto_1977(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=5.24) 16.64284834446686 References ---------- .. [1] Matsumoto, Shigeru, Makoto Kikuta, and Siro Maeda. "Effect of Particle Size on the Minimum Transport Velocity for Horizontal Pneumatic Conveying of Solids." Journal of Chemical Engineering of Japan 10, no. 4 (1977): 273-79. doi:10.1252/jcej.10.273. .. [2] Klinzing, G. E., F. Rizk, R. Marcus, and L. S. Leung. Pneumatic Conveying of Solids: A Theoretical and Practical Approach. Springer, 2013. .. [3] Gomes, L. M., and A. L. Amarante Mesquita. "On the Prediction of Pickup and Saltation Velocities in Pneumatic Conveying." Brazilian Journal of Chemical Engineering 31, no. 1 (March 2014): 35-46. doi:10.1590/S0104-66322014000100005 .. [4] Rabinovich, Evgeny, and Haim Kalman. "Threshold Velocities of Particle-Fluid Flows in Horizontal Pipes and Ducts: Literature Review." Reviews in Chemical Engineering 27, no. 5-6 (January 1, 2011). doi:10.1515/REVCE.2011.011. ''' limit = 1.39*D*(rhop/rhog)**-0.74 A = pi/4*D**2 if limit < dp: # Coarse routine Frp = Vterminal/(g*dp)**0.5 Frs_sorta = 1./(g*D)**0.5 expression1 = 0.373*(rhop/rhog)**1.06*(Frp/10.)**-3.7*(Frs_sorta/10.)**3.61 expression2 = mp/rhog/A return (expression2/expression1)**(1/4.61) else: Frs_sorta = 1./(g*D)**0.5 expression1 = 5560*(dp/D)**1.43*(Frs_sorta/10.)**4 expression2 = mp/rhog/A return (expression2/expression1)**(0.2) def Schade(mp, rhop, dp, rhog, D): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_ as described in [2]_, [3]_, [4]_, and [5]_. .. math:: Fr_s = \mu^{0.11}\left(\frac{D}{d_p}\right)^{0.025}\left(\frac{\rho_p} {\rho_f}\right)^{0.34} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhop : float Particle density, [kg/m^3] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Examples -------- >>> Schade(mp=1., rhop=1000., dp=1E-3, rhog=1.2, D=0.1) 13.697415809497912 References ---------- .. [1] Schade, B., Zum Ubergang Sprung-Strahnen-forderung bei der Horizontalen Pneumatischen Feststoffordrung. Dissertation, University of Karlsruche (1987) .. [2] Rabinovich, Evgeny, and Haim Kalman. "Threshold Velocities of Particle-Fluid Flows in Horizontal Pipes and Ducts: Literature Review." Reviews in Chemical Engineering 27, no. 5-6 (January 1, 2011). doi:10.1515/REVCE.2011.011. .. [3] Setia, G., S. S. Mallick, R. Pan, and P. W. Wypych. "Modeling Minimum Transport Boundary for Fluidized Dense-Phase Pneumatic Conveying Systems." Powder Technology 277 (June 2015): 244-51. doi:10.1016/j.powtec.2015.02.050. .. [4] Bansal, A., S. S. Mallick, and P. W. Wypych. "Investigating Straight-Pipe Pneumatic Conveying Characteristics for Fluidized Dense-Phase Pneumatic Conveying." Particulate Science and Technology 31, no. 4 (July 4, 2013): 348-56. doi:10.1080/02726351.2012.732677. .. [5] Gomes, L. M., and A. L. Amarante Mesquita. "On the Prediction of Pickup and Saltation Velocities in Pneumatic Conveying." Brazilian Journal of Chemical Engineering 31, no. 1 (March 2014): 35-46. doi:10.1590/S0104-66322014000100005 ''' B = (D/dp)**0.025*(rhop/rhog)**0.34 A = (g*D)**0.5 C = mp/(rhog*pi/4*D**2) return (C**0.11*B*A)**(1/1.11) def Weber_saltation(mp, rhop, dp, rhog, D, Vterminal=4): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_ as described in [2]_, [3]_, [4]_, and [5]_. If Vterminal is under 3 m/s, use equation 1; otherwise, equation 2. .. math:: Fr_s = \left(7 + \frac{8}{3}V_{terminal}\right)\mu^{0.25} \left(\frac{d_p}{D}\right)^{0.1} .. math:: Fr_s = 15\mu^{0.25}\left(\frac{d_p}{D}\right)^{0.1} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhop : float Particle density, [kg/m^3] dp : float Particle diameter, [m] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] Vterminal : float Terminal velocity of particle settling in gas, [m/s] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Examples -------- Examples are only a self-test. >>> Weber_saltation(mp=1, rhop=1000., dp=1E-3, rhog=1.2, D=0.1, Vterminal=4) 15.227445436331474 References ---------- .. [1] Weber, M. 1981. Principles of hydraulic and pneumatic conveying in pipes. Bulk Solids Handling 1: 57-63. .. [2] Rabinovich, Evgeny, and Haim Kalman. "Threshold Velocities of Particle-Fluid Flows in Horizontal Pipes and Ducts: Literature Review." Reviews in Chemical Engineering 27, no. 5-6 (January 1, 2011). doi:10.1515/REVCE.2011.011. .. [3] Setia, G., S. S. Mallick, R. Pan, and P. W. Wypych. "Modeling Minimum Transport Boundary for Fluidized Dense-Phase Pneumatic Conveying Systems." Powder Technology 277 (June 2015): 244-51. doi:10.1016/j.powtec.2015.02.050. .. [4] Bansal, A., S. S. Mallick, and P. W. Wypych. "Investigating Straight-Pipe Pneumatic Conveying Characteristics for Fluidized Dense-Phase Pneumatic Conveying." Particulate Science and Technology 31, no. 4 (July 4, 2013): 348-56. doi:10.1080/02726351.2012.732677. .. [5] Gomes, L. M., and A. L. Amarante Mesquita. "On the Prediction of Pickup and Saltation Velocities in Pneumatic Conveying." Brazilian Journal of Chemical Engineering 31, no. 1 (March 2014): 35-46. doi:10.1590/S0104-66322014000100005 ''' if Vterminal <= 3: term1 = (7 + 8/3.*Vterminal)*(dp/D)**0.1 else: term1 = 15.*(dp/D)**0.1 term2 = 1./(g*D)**0.5 term3 = mp/rhog/(pi/4*D**2) return (term1/term2*term3**0.25)**(1/1.25) def Geldart_Ling(mp, rhog, D, mug): r'''Calculates saltation velocity of the gas for pneumatic conveying, according to [1]_ as described in [2]_ and [3]_. if Gs/D < 47000, use equation 1, otherwise use equation 2. .. math:: V_{salt} = 1.5G_s^{0.465}D^{-0.01} \mu^{0.055}\rho_f^{-0.42} .. math:: V_{salt} = 8.7G_s^{0.302}D^{0.153} \mu^{0.055}\rho_f^{-0.42} .. math:: Fr_s = 15\mu^{0.25}\left(\frac{d_p}{D}\right)^{0.1} .. math:: Fr_s = \frac{V_{salt}}{\sqrt{gD}} .. math:: \mu = \frac{m_p}{\frac{\pi}{4}D^2V \rho_f} .. math:: G_s = \frac{m_p}{A} Parameters ---------- mp : float Solid mass flow rate, [kg/s] rhog : float Gas density, [kg/m^3] D : float Diameter of pipe, [m] mug : float Gas viscosity, [Pa*s] Returns ------- V : float Saltation velocity of gas, [m/s] Notes ----- Model is rearranged to be explicit in terms of saltation velocity internally. Examples -------- >>> Geldart_Ling(1., 1.2, 0.1, 2E-5) 7.467495862402707 References ---------- .. [1] Weber, M. 1981. Principles of hydraulic and pneumatic conveying in pipes. Bulk Solids Handling 1: 57-63. .. [2] Rabinovich, Evgeny, and Haim Kalman. "Threshold Velocities of Particle-Fluid Flows in Horizontal Pipes and Ducts: Literature Review." Reviews in Chemical Engineering 27, no. 5-6 (January 1, 2011). doi:10.1515/REVCE.2011.011. .. [3] Gomes, L. M., and A. L. Amarante Mesquita. "On the Prediction of Pickup and Saltation Velocities in Pneumatic Conveying." Brazilian Journal of Chemical Engineering 31, no. 1 (March 2014): 35-46. doi:10.1590/S0104-66322014000100005 ''' Gs = mp/(pi/4*D**2) if Gs/D <= 47000: return 1.5*Gs**0.465*D**-0.01*mug**0.055*rhog**-0.42 else: return 8.7*Gs**0.302*D**0.153*mug**0.055*rhog**-0.42 fluids-0.1.78/fluids/jet_pump.py0000644000175000017500000005240013632560624015324 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log, pi, sqrt from random import uniform, seed from pprint import pprint from fluids.numerics import newton, brenth __all__ = ['liquid_jet_pump', 'liquid_jet_pump_ancillary'] def liquid_jet_pump_ancillary(rhop, rhos, Kp, Ks, d_nozzle=None, d_mixing=None, Qp=None, Qs=None, P1=None, P2=None): r'''Calculates the remaining variable in a liquid jet pump when solving for one if the inlet variables only and the rest of them are known. The equation comes from conservation of energy and momentum in the mixing chamber. The variable to be solved for must be one of `d_nozzle`, `d_mixing`, `Qp`, `Qs`, `P1`, or `P2`. .. math:: P_1 - P_2 = \frac{1}{2}\rho_pV_n^2(1+K_p) - \frac{1}{2}\rho_s V_3^2(1+K_s) Rearrange to express V3 in terms of Vn, and using the density ratio `C`, the expression becomes: .. math:: P_1 - P_2 = \frac{1}{2}\rho_p V_n^2\left[(1+K_p) - C(1+K_s) \left(\frac{MR}{1-R}\right)^2\right] Using the primary nozzle area and flow rate: .. math:: P_1 - P_2 = \frac{1}{2}\rho_p \left(\frac{Q_p}{A_n}\right)^2 \left[(1+K_p) - C(1+K_s) \left(\frac{MR}{1-R}\right)^2\right] For `P`, `P2`, `Qs`, and `Qp`, the equation can be rearranged explicitly for them. For `d_mixing` and `d_nozzle`, a bounded solver is used searching between 1E-9 m and 20 times the other diameter which was specified. Parameters ---------- rhop : float The density of the primary (motive) fluid, [kg/m^3] rhos : float The density of the secondary fluid (drawn from the vacuum chamber), [kg/m^3] Kp : float The primary nozzle loss coefficient, [-] Ks : float The secondary inlet loss coefficient, [-] d_nozzle : float, optional The inside diameter of the primary fluid's nozle, [m] d_mixing : float, optional The diameter of the mixing chamber, [m] Qp : float, optional The volumetric flow rate of the primary fluid, [m^3/s] Qs : float, optional The volumetric flow rate of the secondary fluid, [m^3/s] P1 : float, optional The pressure of the primary fluid entering its nozzle, [Pa] P2 : float, optional The pressure of the secondary fluid at the entry of the ejector, [Pa] Returns ------- solution : float The parameter not specified (one of `d_nozzle`, `d_mixing`, `Qp`, `Qs`, `P1`, or `P2`), (units of `m`, `m`, `m^3/s`, `m^3/s`, `Pa`, or `Pa` respectively) Notes ----- The following SymPy code was used to obtain the analytical formulas ( they are not shown here due to their length): >>> from sympy import * >>> A_nozzle, A_mixing, Qs, Qp, P1, P2, rhos, rhop, Ks, Kp = symbols('A_nozzle, A_mixing, Qs, Qp, P1, P2, rhos, rhop, Ks, Kp') >>> R = A_nozzle/A_mixing >>> M = Qs/Qp >>> C = rhos/rhop >>> rhs = rhop/2*(Qp/A_nozzle)**2*((1+Kp) - C*(1 + Ks)*((M*R)/(1-R))**2 ) >>> new = Eq(P1 - P2, rhs) >>> #solve(new, Qp) >>> #solve(new, Qs) >>> #solve(new, P1) >>> #solve(new, P2) Examples -------- Calculating primary fluid nozzle inlet pressure P1: >>> liquid_jet_pump_ancillary(rhop=998., rhos=1098., Ks=0.11, Kp=.04, ... P2=133600, Qp=0.01, Qs=0.01, d_mixing=0.045, d_nozzle=0.02238) 426434.60314398084 References ---------- .. [1] Ejectors and Jet Pumps. Design and Performance for Incompressible Liquid Flow. 85032. ESDU International PLC, 1985. ''' unknowns = sum(i is None for i in (d_nozzle, d_mixing, Qs, Qp, P1, P2)) if unknowns > 1: raise Exception('Too many unknowns') elif unknowns < 1: raise Exception('Overspecified') C = rhos/rhop if Qp is not None and Qs is not None: M = Qs/Qp if d_nozzle is not None: A_nozzle = pi/4*d_nozzle*d_nozzle if d_mixing is not None: A_mixing = pi/4*d_mixing*d_mixing R = A_nozzle/A_mixing if P1 is None: return rhop/2*(Qp/A_nozzle)**2*((1+Kp) - C*(1 + Ks)*((M*R)/(1-R))**2 ) + P2 elif P2 is None: return -rhop/2*(Qp/A_nozzle)**2*((1+Kp) - C*(1 + Ks)*((M*R)/(1-R))**2 ) + P1 elif Qs is None: try: return ((-2*A_nozzle**2*P1 + 2*A_nozzle**2*P2 + Kp*Qp**2*rhop + Qp**2*rhop)/(C*rhop*(Ks + 1)))**0.5*(A_mixing - A_nozzle)/A_nozzle except ValueError: return -1j elif Qp is None: return A_nozzle*((2*A_mixing**2*P1 - 2*A_mixing**2*P2 - 4*A_mixing*A_nozzle*P1 + 4*A_mixing*A_nozzle*P2 + 2*A_nozzle**2*P1 - 2*A_nozzle**2*P2 + C*Ks*Qs**2*rhop + C*Qs**2*rhop)/(rhop*(Kp + 1)))**0.5/(A_mixing - A_nozzle) elif d_nozzle is None: def err(d_nozzle): return P1 - liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Kp=Kp, Ks=Ks, d_nozzle=d_nozzle, d_mixing=d_mixing, Qp=Qp, Qs=Qs, P1=None, P2=P2) return brenth(err, 1E-9, d_mixing*20) elif d_mixing is None: def err(d_mixing): return P1 - liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Kp=Kp, Ks=Ks, d_nozzle=d_nozzle, d_mixing=d_mixing, Qp=Qp, Qs=Qs, P1=None, P2=P2) try: return brenth(err, 1E-9, d_nozzle*20) except: return newton(err, d_nozzle*2) def liquid_jet_pump_pressure_ratio(rhop, rhos, Km, Kd, Ks, Kp, d_nozzle=None, d_mixing=None, d_diffuser=None, Qp=None, Qs=None, P1=None, P2=None, P5=None, nozzle_retracted=True): C = rhos/rhop if nozzle_retracted: j = 0.0 else: j = 1.0 R = d_nozzle**2/d_mixing**2 alpha = d_mixing**2/d_diffuser**2 M = Qs/Qp M2, R2, alpha2 = M*M, R*R, alpha*alpha num = 2.0*R + 2*C*M2*R2/(1.0 - R) num -= R2*(1.0 + C*M)*(1.0 + M)*(1.0 + Km + Kd + alpha2) num -= C*M2*R2/(1.0 - R)**2*(1.0 + Ks) den = (1.0 + Kp) - 2.0*R - 2.0*C*M2*R2/(1.0 - R) den += R2*(1.0 + C*M)*(1.0 + M)*(1.0 + Km + Kd + alpha2) den += (1.0 - j)*(C*M2/((1.0 - R)/R)**2)*(1.0 - Ks) N = num/den if P1 is None: P1 = (-P2 + P5*N + P5)/N elif P2 is None: P2 = -P1*N + P5*N + P5 elif P5 is None: P5 = (P1*N + P2)/(N + 1.0) else: return N - (P5 - P2)/(P1 - P5) solution = {} solution['P1'] = P1 solution['P2'] = P2 solution['P5'] = P5 # solution['d_nozzle'] = d_nozzle # solution['d_mixing'] = d_mixing # solution['d_diffuser'] = d_diffuser # solution['Qs'] = Qs # solution['Qp'] = Qp # solution['N'] = N # solution['M'] = M # solution['R'] = R # solution['alpha'] = alpha # solution['efficiency'] = M*N return solution def liquid_jet_pump(rhop, rhos, Kp=0.0, Ks=0.1, Km=.15, Kd=0.1, d_nozzle=None, d_mixing=None, d_diffuser=None, Qp=None, Qs=None, P1=None, P2=None, P5=None, nozzle_retracted=True, max_variations=100): r'''Calculate the remaining two variables in a liquid jet pump, using a model presented in [1]_ as well as [2]_, [3]_, and [4]_. .. math:: N = \frac{2R + \frac{2 C M^2 R^2}{1-R} - R^2 (1+CM) (1+M) (1 + K_m + K_d + \alpha^2) - \frac{CM^2R^2}{(1-R)^2} (1+K_s)} {(1+K_p) - 2R - \frac{2CM^2R^2}{1-R} + R^2(1+CM)(1+M)(1+K_m + K_d + \alpha^2) + (1-j)\left(\frac{CM^2R^2}{({1-R})^2} \right)(1+K_s)} .. math:: P_1 - P_2 = \frac{1}{2}\rho_p \left(\frac{Q_p}{A_n}\right)^2 \left[(1+K_p) - C(1+K_s) \left(\frac{MR}{1-R}\right)^2\right] .. math:: \text{Pressure ratio} = N = \frac{P_5 - P_2}{P_1 - P_5} .. math:: \text{Volume flow ratio} = M = \frac{Q_s}{Q_p} .. math:: \text{Jet pump efficiency} = \eta = M\cdot N = \frac{Q_s(P_5-P_2)}{Q_p(P_1 - P_5)} .. math:: R = \frac{A_n}{A_m} .. math:: C = \frac{\rho_s}{\rho_p} There is no guarantee a solution will be found for the provided variable values, but every combination of two missing variables are supported. Parameters ---------- rhop : float The density of the primary (motive) fluid, [kg/m^3] rhos : float The density of the secondary fluid (drawn from the vacuum chamber), [kg/m^3] Kp : float, optional The primary nozzle loss coefficient, [-] Ks : float, optional The secondary inlet loss coefficient, [-] Km : float, optional The mixing chamber loss coefficient, [-] Kd : float, optional The diffuser loss coefficient, [-] d_nozzle : float, optional The inside diameter of the primary fluid's nozle, [m] d_mixing : float, optional The diameter of the mixing chamber, [m] d_diffuser : float, optional The diameter of the diffuser at its exit, [m] Qp : float, optional The volumetric flow rate of the primary fluid, [m^3/s] Qs : float, optional The volumetric flow rate of the secondary fluid, [m^3/s] P1 : float, optional The pressure of the primary fluid entering its nozzle, [Pa] P2 : float, optional The pressure of the secondary fluid at the entry of the ejector, [Pa] P5 : float, optional The pressure at the exit of the diffuser, [Pa] nozzle_retracted : bool, optional Whether or not the primary nozzle's exit is before the mixing chamber, or somewhat inside it, [-] max_variations : int, optional When the initial guesses do not lead to a converged solution, try this many more guesses at converging the problem, [-] Returns ------- solution : dict Dictionary of calculated parameters, [-] Notes ----- The assumptions of the model are: * The flows are one dimensional except in the mixing chamber. * The mixing chamber has constant cross-sectional area. * The mixing happens entirely in the mixing chamber, prior to entry into the diffuser. * The primary nozzle is in a straight line with the middle of the mixing chamber. * Both fluids are incompressible, and have no excess volume on mixing. * Primary and secondary flows both enter the mixing throat with their own uniform velocity distribution; the mixed stream leaves with a uniform velocity profile. * If the secondary fluid is a gas, it undergoes isothermal compression in the throat and diffuser. * If the secondary fluid is a gas or contains a bubbly gas, it is homogeneously distributed in a continuous liquid phase. * Heat transfer between the fluids is negligible - there is no change in density due to temperature changes * The change in the solubility of a dissolved gas, if there is one, is negigibly changed by temperature or pressure changes. The model can be derived from the equations in :py:func:`~.liquid_jet_pump_ancillary` and the following: Conservation of energy at the primary nozzle, secondary inlet, and diffuser exit: .. math:: P_1 = P_3 + \frac{1}{2}\rho_p V_n^2 + K_p\left(\frac{1}{2}\rho_p V_n^2\right) .. math:: P_2 = P_3 + \frac{1}{2}\rho_s V_3^2 + K_s\left(\frac{1}{2}\rho_s V_3^2\right) .. math:: P_5 = P_4 + \frac{1}{2}\rho_d V_4^2 - K_d\left(\frac{1}{2}\rho_d V_4^2\right) Continuity of the ejector: .. math:: \rho_p Q_p + \rho_s Q_s = \rho_d Q_d Examples -------- >>> ans = liquid_jet_pump(rhop=998., rhos=1098., Km=.186, Kd=0.12, Ks=0.11, ... Kp=0.04, d_mixing=0.045, Qs=0.01, Qp=.01, P2=133600, ... P5=200E3, nozzle_retracted=False, max_variations=10000) >>> s = [] >>> for key, value in ans.items(): ... s.append('%s: %g' %(key, value)) >>> sorted(s) ['M: 1', 'N: 0.293473', 'P1: 426256', 'P2: 133600', 'P5: 200000', 'Qp: 0.01', 'Qs: 0.01', 'R: 0.247404', 'alpha: 1e-06', 'd_diffuser: 45', 'd_mixing: 0.045', 'd_nozzle: 0.0223829', 'efficiency: 0.293473'] References ---------- .. [1] Karassik, Igor J., Joseph P. Messina, Paul Cooper, and Charles C. Heald. Pump Handbook. 4th edition. New York: McGraw-Hill Education, 2007. .. [2] Winoto S. H., Li H., and Shah D. A. "Efficiency of Jet Pumps." Journal of Hydraulic Engineering 126, no. 2 (February 1, 2000): 150-56. https://doi.org/10.1061/(ASCE)0733-9429(2000)126:2(150). .. [3] Elmore, Emily, Khalid Al-Mutairi, Bilal Hussain, and A. Sheriff El-Gizawy. "Development of Analytical Model for Predicting Dual-Phase Ejector Performance," November 11, 2016, V007T09A013. .. [4] Ejectors and Jet Pumps. Design and Performance for Incompressible Liquid Flow. 85032. ESDU International PLC, 1985. ''' solution_vars = ['d_nozzle', 'd_mixing', 'Qp', 'Qs', 'P1', 'P2', 'P5'] unknown_vars = [] for i in solution_vars: if locals()[i] is None: unknown_vars.append(i) if len(unknown_vars) > 2: raise Exception('Too many unknowns') elif len(unknown_vars) < 2: raise Exception('Overspecified') vals = {'d_nozzle': d_nozzle, 'd_mixing': d_mixing, 'Qp': Qp, 'Qs': Qs, 'P1': P1, 'P2': P2, 'P5': P5} var_guesses = [] # Initial guess algorithms for each variable here # No clever algorithms invented yet for v in unknown_vars: if v == 'd_nozzle': try: var_guesses.append(d_mixing*0.4) except: var_guesses.append(0.01) if v == 'd_mixing': try: var_guesses.append(d_nozzle*2) except: var_guesses.append(0.02) elif v == 'P1': try: var_guesses.append(P2*5) except: var_guesses.append(P5*5) elif v == 'P2': try: var_guesses.append((P1 + P5)*0.5) except: try: var_guesses.append(P1/1.1) except: var_guesses.append(P5*1.25) elif v == 'P5': try: var_guesses.append(P1*1.12) except: var_guesses.append(P2*1.12) elif v == 'Qp': try: var_guesses.append(Qs*1.04) except: var_guesses.append(0.01) elif v == 'Qs': try: var_guesses.append(Qp*0.5) except: var_guesses.append(0.01) C = rhos/rhop if nozzle_retracted: j = 0.0 else: j = 1.0 # The diffuser diameter, if not specified, is set to a very large diameter # so as to not alter the results if d_diffuser is None: if d_mixing is not None: d_diffuser = d_mixing*1E3 elif d_nozzle is not None: d_diffuser = d_nozzle*1E3 else: d_diffuser = 1000.0 vals['d_diffuser'] = d_diffuser def obj_err(val): # Use the dictionary `vals` to keep track of the currently iterating # variables for i, v in zip(unknown_vars, val): vals[i] = abs(float(v)) # Keep the pressure limits sane # if 'P1' in unknown_vars: # if 'P5' not in unknown_vars: # vals['P1'] = max(vals['P1'], 1.001*vals['P5']) # elif 'P2' not in unknown_vars: # vals['P1'] = max(vals['P1'], 1.001*vals['P2']) # if 'P2' in unknown_vars: # if 'P1' not in unknown_vars: # vals['P2'] = min(vals['P2'], 0.999*vals['P1']) # if 'P5' not in unknown_vars: # vals['P2'] = max(vals['P2'], 1.001*vals['P2']) # Prelimary numbers A_nozzle = pi/4*vals['d_nozzle']**2 alpha = vals['d_mixing']**2/d_diffuser**2 R = vals['d_nozzle']**2/vals['d_mixing']**2 M = vals['Qs']/vals['Qp'] err1 = liquid_jet_pump_pressure_ratio(rhop=rhop, rhos=rhos, Km=Km, Kd=Kd, Ks=Ks, Kp=Kp, d_nozzle=vals['d_nozzle'], d_mixing=vals['d_mixing'], Qs=vals['Qs'], Qp=vals['Qp'], P2=vals['P2'], P1=vals['P1'], P5=vals['P5'], nozzle_retracted=nozzle_retracted, d_diffuser=d_diffuser) rhs = rhop/2.0*(vals['Qp']/A_nozzle)**2*((1.0 + Kp) - C*(1.0 + Ks)*((M*R)/(1.0 - R))**2 ) err2 = rhs - (vals['P1'] - vals['P2']) vals['N'] = N = (vals['P5'] - vals['P2'])/(vals['P1']-vals['P5']) vals['M'] = M vals['R'] = R vals['alpha'] = alpha vals['efficiency'] = M*N if vals['efficiency'] < 0: if err1 < 0: err1 -= abs(vals['efficiency']) else: err1 += abs(vals['efficiency']) if err2 < 0: err2 -= abs(vals['efficiency']) else: err2 += abs(vals['efficiency']) # elif vals['N'] < 0: # err1, err2 = abs(vals['N']) + err1, abs(vals['N']) + err2 # print(err1, err2) return err1, err2 # Only one unknown var if 'P5' in unknown_vars: ancillary = liquid_jet_pump_ancillary(rhop=rhop, rhos=rhos, Kp=Kp, Ks=Ks, d_nozzle=d_nozzle, d_mixing=d_mixing, Qp=Qp, Qs=Qs, P1=P1, P2=P2) if unknown_vars[0] == 'P5': vals[unknown_vars[1]] = ancillary else: vals[unknown_vars[0]] = ancillary vals['P5'] = liquid_jet_pump_pressure_ratio(rhop=rhop, rhos=rhos, Km=Km, Kd=Kd, Ks=Ks, Kp=Kp, d_nozzle=vals['d_nozzle'], d_mixing=vals['d_mixing'], Qs=vals['Qs'], Qp=vals['Qp'], P2=vals['P2'], P1=vals['P1'], P5=None, nozzle_retracted=nozzle_retracted, d_diffuser=d_diffuser)['P5'] # Compute the remaining parameters obj_err([vals[unknown_vars[0]], vals[unknown_vars[1]]]) return vals from scipy.optimize import fsolve, root def solve_with_fsolve(var_guesses): res = fsolve(obj_err, var_guesses, full_output=True) if sum(abs(res[1]['fvec'])) > 1E-7: raise ValueError('Could not solve') for u, v in zip(unknown_vars, res[0].tolist()): vals[u] = abs(v) return vals try: return solve_with_fsolve(var_guesses) except: pass # Tying different guesses with fsolve is faster than trying different solvers for meth in ['hybr', 'lm', 'broyden1', 'broyden2']: # try: res = root(obj_err, var_guesses, method=meth, tol=1E-9) if sum(abs(res['fun'])) > 1E-7: raise ValueError('Could not solve') for u, v in zip(unknown_vars, res['x'].tolist()): vals[u] = abs(v) return vals except (ValueError, OverflowError): continue # Just do variations on this until it works for _ in range(int(max_variations/8)): for idx in [0, 1]: for r in [(1, 10), (0.1, 1)]: i = uniform(*r) try: l = list(var_guesses) l[idx] = l[idx]*i return solve_with_fsolve(l) except: pass # Vary both parameters at once for _ in range(int(max_variations/8)): for r in [(1, 10), (0.1, 1)]: i = uniform(*r) for s in [(1, 10), (0.1, 1)]: j = uniform(*s) try: l = list(var_guesses) l[0] = l[0]*i l[1] = l[1]*j return solve_with_fsolve(l) except: pass raise ValueError('Could not solve')fluids-0.1.78/fluids/atmosphere.py0000644000175000017500000013566613632560624015670 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017, 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. This module contains models of earth's atmosphere. Models are empirical and based on extensive research, primarily by NASA. For reporting bugs, adding feature requests, or submitting pull requests, please use the `GitHub issue tracker `_ or contact the author at Caleb.Andrew.Bell@gmail.com. .. contents:: :local: Atmospheres ----------- .. autoclass:: ATMOSPHERE_1976 :members: .. autoclass:: ATMOSPHERE_NRLMSISE00 :members: .. autofunction:: airmass Solar Radiation and Position ---------------------------- .. autofunction:: solar_position .. autofunction:: solar_irradiation .. autofunction:: sunrise_sunset .. autofunction:: earthsun_distance Wind Models (requires Fortran compiler!) ---------------------------------------- .. autofunction:: hwm93 .. autofunction:: hwm14 ''' from __future__ import division from math import exp, cos, radians, pi, sin import time from datetime import datetime import os from fluids.constants import N_A, R, au from fluids.numerics import brenth from fluids.numerics import numpy as np __all__ = ['ATMOSPHERE_1976', 'ATMOSPHERE_NRLMSISE00', 'hwm93', 'hwm14', 'earthsun_distance', 'solar_position', 'solar_irradiation', 'sunrise_sunset'] no_gfortran_error = '''This function uses f2py to encapsulate a fortran \ routine. However, f2py did not detect one on installation and could not compile \ this routine. ''' # Needed by hwm14 os.environ["HWMPATH"] = os.path.join(os.path.dirname(__file__), 'optional') H_std = [0.0, 11E3, 20E3, 32E3, 47E3, 51E3, 71E3, 84852.0] T_grad = [-6.5E-3, 0.0, 1E-3, 2.8E-3, 0.0, -2.8E-3, -2E-3, 0.0] T_std = [288.15, 216.65, 216.65, 228.65, 270.65, 270.65, 214.65, 186.946] P_std = [101325, 22632.06397346291, 5474.8886696777745, 868.0186847552279, 110.90630555496608, 66.93887311868738, 3.956420428040732, 0.3733835899762159] r0 = 6356766.0 P0 = 101325.0 M0 = 28.9644 g0 = 9.80665 gamma = 1.400 class ATMOSPHERE_1976(object): r'''US Standard Atmosphere 1976 class, which calculates `T`, `P`, `rho`, `v_sonic`, `mu`, `k`, and `g` as a function of altitude above sea level. Designed to provide reasonable results up to an elevation of 86,000 m (0.4 Pa). The model is also valid under sea level, to -610 meters. Parameters ---------- Z : float Elevation, [m] dT : float, optional Temperature difference from standard conditions used in determining the properties of the atmosphere, [K] Attributes ---------- T : float Temperature of atmosphere at specified conditions, [K] P : float Pressure of atmosphere at specified conditions, [Pa] rho : float Mass density of atmosphere at specified conditions [kg/m^3] H : float Geopotential height, [m] g : float Acceleration due to gravity, [m/s^2] mu : float Viscosity of atmosphere at specified conditions, [Pa*s] k : float Thermal conductivity of atmosphere at specified conditions, [W/m/K] v_sonic : float Speed of sound of atmosphere at specified conditions, [m/s] Examples -------- >>> five_km = ATMOSPHERE_1976(5000) >>> five_km.P, five_km.rho, five_km.mu (54048.28614576141, 0.7364284207799743, 1.628248135362207e-05) >>> five_km.k, five_km.g, five_km.v_sonic (0.02273190295142526, 9.791241076982665, 320.5455196704035) Notes ----- Up to 32 km, the International Standard Atmosphere (ISA) and World Meteorological Organization (WMO) standard atmosphere are identical. This is a revision of the US 1962 atmosphere. References ---------- .. [1] NOAA, NASA, and USAF. "U.S. Standard Atmosphere, 1976" October 15, 1976. http://ntrs.nasa.gov/search.jsp?R=19770009539. .. [2] "ISO 2533:1975 - Standard Atmosphere." ISO. http://www.iso.org/iso/catalogue_detail.htm?csnumber=7472. .. [3] Yager, Robert J. "Calculating Atmospheric Conditions (Temperature, Pressure, Air Density, and Speed of Sound) Using C++," June 2013. http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA588839 ''' R = 8314.32 def __init__(self, Z, dT=0.0): self.Z = Z self.dT = dT self.H = r0*Z/(r0+Z) i = self._get_ind_from_H(self.H) self.T_layer = T_std[i] self.T_increase = T_grad[i] self.P_layer = P_std[i] self.H_layer = H_std[i] self.H_above_layer = self.H - self.H_layer self.T = self.T_layer + self.T_increase*self.H_above_layer if self.T_increase == 0.0: self.P = self.P_layer*exp(-g0*M0*(self.H_above_layer)/(self.R*self.T_layer)) else: self.P = self.P_layer*(self.T_layer/self.T)**(g0*M0/(self.R*self.T_increase)) # Affects only the following properties self.T += dT self.rho = self.density(self.T, self.P) self.v_sonic = self.sonic_velocity(self.T) self.mu = self.viscosity(self.T) self.k = self.thermal_conductivity(self.T) self.g = self.gravity(self.Z) @staticmethod def _get_ind_from_H(H): r'''Method defined in the US Standard Atmosphere 1976 for determining the index of the layer a specified elevation is above. Levels are 0, 11E3, 20E3, 32E3, 47E3, 51E3, 71E3, 84852 meters respectively. ''' if H <= 0.0: return 0 for ind, Hi in enumerate(H_std): if Hi >= H : return ind - 1 return 7 # case for > 84852 m. @staticmethod def thermal_conductivity(T): r'''Method defined in the US Standard Atmosphere 1976 for calculating thermal conductivity of air as a function of `T` only. .. math:: k_g = \frac{2.64638\times10^{-3}T^{1.5}} {T + 245.4\cdot 10^{-12./T}} Parameters ---------- T : float Temperature, [K] Returns ------- kg : float Thermal conductivity, [W/m/K] ''' return 2.64638E-3*T**1.5/(T + 245.4*10**(-12./T)) @staticmethod def viscosity(T): r'''Method defined in the US Standard Atmosphere 1976 for calculating viscosity of air as a function of `T` only. .. math:: \mu_g = \frac{1.458\times10^{-6}T^{1.5}}{T+110.4} Parameters ---------- T : float Temperature, [K] Returns ------- mug : float Viscosity, [Pa*s] ''' return 1.458E-6*T**1.5/(T + 110.4) @staticmethod def density(T, P): r'''Method defined in the US Standard Atmosphere 1976 for calculating density of air as a function of `T` and `P`. MW is defined as 28.9644 g/mol, and R as 8314.32 J/kmol/K .. math:: \rho_g = \frac{P\cdot MW}{T\cdot R\cdot 1000} Parameters ---------- T : float Temperature, [K] P : float Pressure, [Pa] Returns ------- rho : float Mass density, [kg/m^3] ''' # 0.00348367635597379 = M0/R return P*0.00348367635597379/T @staticmethod def sonic_velocity(T): r'''Method defined in the US Standard Atmosphere 1976 for calculating the speed of sound in air as a function of `T` only. .. math:: c = \left(\frac{\gamma R T}{MW}\right)^{0.5} Parameters ---------- T : float Temperature, [K] Returns ------- c : float Speed of sound, [m/s] ''' # 401.87... = gamma*R/MO return (401.87430086589046*T)**0.5 @staticmethod def gravity(Z): r'''Method defined in the US Standard Atmosphere 1976 for calculating the gravitational acceleration above earth as a function of elevation only. .. math:: g = g_0\left(\frac{r_0}{r_0+Z}\right)^2 Parameters ---------- Z : float Elevation above sea level, [m] Returns ------- g : float Acceleration due to gravity, [m/s^2] ''' return g0*(r0/(r0+Z))**2 @staticmethod def pressure_integral(T1, P1, dH): r'''Method to compute an integral of the pressure differential of an elevation difference with a base elevation defined by temperature `T1` and pressure `P1`. This is similar to subtracting the pressures at two different elevations, except it allows for local conditions (temperature and pressure) to be taken into account. This is useful for e.x. evaluating the pressure difference between the top and bottom of a natural draft cooling tower. Parameters ---------- T1 : float Temperature at the lower elevation condition, [K] P1 : float Pressure at the lower elevation condition, [Pa] dH : float Elevation difference for which to evaluate the pressure difference, [m] Returns ------- delta_P : float Pressure difference between the elevations, [Pa] ''' # Compute the elevation to obtain the pressure specified def to_solve(H): return ATMOSPHERE_1976(H).P - P1 H_ref = brenth(to_solve, -610.0, 86000) # Compute the temperature delta dT = T1 - ATMOSPHERE_1976(H_ref).T def to_int(Z): atm = ATMOSPHERE_1976(Z, dT=dT) return atm.g*atm.rho from scipy.integrate import quad return float(quad(to_int, H_ref, H_ref+dH)[0]) class ATMOSPHERE_NRLMSISE00(object): r'''NRLMSISE 00 model for calculating temperature and density of gases in the atmosphere, from ground level to 1000 km, as a function of time of year, longitude and latitude, solar activity and earth's geomagnetic disturbance. NRLMSISE stands for the `US Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Exosphere` model, released in 2001; see [1]_ for details. Parameters ---------- Z : float Elevation, [m] latitude : float, optional Latitude, between -90 and 90 [degrees] longitude : float, optional Longitude, between -180 and 180 or 0 and 360, [degrees] day : float, optional Day of year, 0-366 [day] seconds : float, optional Seconds since start of day, in UT1 time; using UTC provides no loss in accuracy [s] f107 : float, optional Daily average 10.7 cm solar flux measurement of the strength of solar emissions on the 100 MHz band centered on 2800 MHz, averaged hourly; in sfu units, which are multiples of 10^-22 W/m^2/Hz; use 150 as a default [10^-22 W/m^2/Hz] f107_avg : float, optional 81-day sfu average; centered on specified day if possible, otherwise use the previous days [10^-22 W/m^2/Hz] geomagnetic_disturbance_indices : list of float, optional List of the 7 following `Ap` indexes also known as planetary magnetic indexes. Has a negligible effect on the calculation. 4 is the default value often used for each of these values. * Average daily `Ap`. * 3-hour average `Ap` centered on the current time. * 3-hour average `Ap` before the current time. * 6-hour average `Ap` before the current time. * 9-hour average `Ap` before the current time. * Average `Ap` from 12 to 33 hours before the current time, based on eight 3-hour average `Ap` values. * Average `Ap` from 36 to 57 hours before the current time, based on eight 3-hour average `Ap` values. Attributes ---------- rho : float Mass density [kg/m^3] T : float Temperature, [K] P : float Pressure, calculated with ideal gas law [Pa] He_density : float Density of helium atoms [count/m^3] O_density : float Density of monatomic oxygen [count/m^3] N2_density : float Density of nitrogen molecules [count/m^3] O2_density : float Density of oxygen molecules [count/m^3] Ar_density : float Density of Argon atoms [count/m^3] H_density : float Density of hydrogen atoms [count/m^3] N_density : float Density of monatomic nitrogen [count/m^3] O_anomalous_density : float Density of `anomalous` oxygen; see [1]_ for details [count/m^3] particle_density : float Total density of molecules [count/m^3] components : list[str] List of species making up the atmosphere [-] zs : list[float] Mole fractions of each molecule in the atmosphere, in order of `components` [-] Examples -------- >>> atmosphere = ATMOSPHERE_NRLMSISE00(1E3, 45, 45, 150) >>> atmosphere.T, atmosphere.rho (285.54408606237405, 1.1019062026405517) Notes ----- No full description has been published of this model; it has been defined by its implementation only. It was written in FORTRAN, and is accessible at ftp://hanna.ccmc.gsfc.nasa.gov/pub/modelweb/atmospheric/msis/nrlmsise00/ A C port of the model by Dominik Brodowskihas become popular, and is available on his website: http://www.brodo.de/space/nrlmsise/. In 2013 Joshua Milas ported the C port to Python. This is an interface to his excellent port. It is a 1000-sloc model, and has been rigorously tested against the C version, and the online calculation tool available at [3]_ for parametric inputs of latitude, longitude, altitude, time of day and day of year. This model is based on measurements other than gravity; it does not provide a calculation method for `g`. It does not provide transport properties. This model takes on the order of ~2 ms. References ---------- .. [1] Picone, J. M., A. E. Hedin, D. P. Drob, and A. C. Aikin. "NRLMSISE-00 Empirical Model of the Atmosphere: Statistical Comparisons and Scientific Issues." Journal of Geophysical Research: Space Physics 107, no. A12 (December 1, 2002): 1468. doi:10.1029/2002JA009430. .. [2] Tapping, K. F. "The 10.7 Cm Solar Radio Flux (F10.7)." Space Weather 11, no. 7 (July 1, 2013): 394-406. doi:10.1002/swe.20064. .. [3] Natalia Papitashvili. "NRLMSISE-00 Atmosphere Model." Accessed November 27, 2016. http://ccmc.gsfc.nasa.gov/modelweb/models/nrlmsise00.php. ''' components = ['N2', 'O2', 'Ar', 'He', 'O', 'H', 'N'] atrrs = ['N2_density', 'O2_density', 'Ar_density', 'He_density', 'O_density', 'H_density', 'N_density'] MWs = [28.0134, 31.9988, 39.948, 4.002602, 15.9994, 1.00794, 14.0067] def __init__(self, Z, latitude=0.0, longitude=0.0, day=0, seconds=0.0, f107=150., f107_avg=150., geomagnetic_disturbance_indices=None): self.Z = Z self.latitude = latitude self.longitude = longitude self.day = day self.seconds = seconds self.f107 = f107 self.f107_avg = f107_avg self.geomagnetic_disturbance_indices = geomagnetic_disturbance_indices from .nrlmsise00 import gtd7, nrlmsise_output, nrlmsise_input, nrlmsise_flags, ap_array alt = Z/1000. output_obj = nrlmsise_output() input_obj = nrlmsise_input() flags = nrlmsise_flags() flags.switches = [0] + [1]*23 if geomagnetic_disturbance_indices: aph = ap_array() aph.a = geomagnetic_disturbance_indices flags.switches[9] = -1 input_obj.ap = geomagnetic_disturbance_indices[0] input_obj.ap_a = aph input_obj.doy = day input_obj.year = 0 input_obj.sec = seconds input_obj.alt = alt input_obj.g_lat = latitude input_obj.g_long = longitude input_obj.lst = seconds/3600. + longitude/15. input_obj.f107A = f107_avg input_obj.f107 = f107 gtd7(input_obj, flags, output_obj) self.He_density = output_obj.d[0]*1E6 # 1/cm^3 to 1/m^3 self.O_density = output_obj.d[1]*1E6 # 1/cm^3 to 1/m^3 self.N2_density = output_obj.d[2]*1E6 # 1/cm^3 to 1/m^3 self.O2_density = output_obj.d[3]*1E6 # 1/cm^3 to 1/m^3 self.Ar_density = output_obj.d[4]*1E6 # 1/cm^3 to 1/m^3 self.rho = output_obj.d[5]*1000 # gram/cm^3 to kg/m^3 self.H_density = output_obj.d[6]*1E6 # 1/cm^3 to 1/m^3 self.N_density = output_obj.d[7]*1E6 # 1/cm^3 to 1/m^3 self.O_anomalous_density = output_obj.d[8]*1E6 # 1/cm^3 to 1/m^3 self.T_exospheric = output_obj.t[0] self.T = output_obj.t[1] # Calculate pressure with the ideal gas law PV = nRT with V = 1 m^3 self.P = sum([getattr(self, a) for a in self.atrrs])*self.T*R/N_A # Calculate mass density with known MWs self.rho_calculated = sum([getattr(self, a)*MW for c, a, MW in zip(self.components, self.atrrs, self.MWs)])/(1000.*N_A) self.particle_density = sum(getattr(self, a) for a in self.atrrs) self.zs = [getattr(self, a)/self.particle_density for a in self.atrrs] def hwm93(Z, latitude=0, longitude=0, day=0, seconds=0, f107=150., f107_avg=150., geomagnetic_disturbance_index=4): r'''Horizontal Wind Model 1993, for calculating wind velocity in the atmosphere as a function of time of year, longitude and latitude, solar activity and earth's geomagnetic disturbance. The model is described across the publications [1]_, [2]_, and [3]_. Parameters ---------- Z : float Elevation, [m] latitude : float, optional Latitude, between -90 and 90 [degrees] longitude : float, optional Longitude, between -180 and 180 or 0 and 360, [degrees] day : float, optional Day of year, 0-366 [day] seconds : float, optional Seconds since start of day, in UT1 time; using UTC provides no loss in accuracy [s] f107 : float, optional Daily average 10.7 cm solar flux measurement of the strength of solar emissions on the 100 MHz band centered on 2800 MHz, averaged hourly; in sfu units, which are multiples of 10^-22 W/m^2/Hz; use 150 as a default [W/m^2/Hz] f107_avg : float, optional 81-day sfu average; centered on specified day if possible, otherwise use the previous days [W/m^2/Hz] geomagnetic_disturbance_index : float, optional Average daily `Ap` or also known as planetary magnetic index. Returns ------- v_north : float Wind velocity, meridional (Northward) [m/s] v_east : float Wind velocity, zonal (Eastward) [m/s] Examples -------- >>> hwm93(5E5, 45, 50, 365) (-73.00312042236328, 0.1485661268234253) Notes ----- No full description has been published of this model; it has been defined by its implementation only. It was written in FORTRAN, and is accessible at ftp://hanna.ccmc.gsfc.nasa.gov/pub/modelweb/atmospheric/hwm93/. F2PY auto-compilation support is not yet currently supported. To compile this file, run the following command in a shell after navigating to $FLUIDSPATH/fluids/optional/. This should generate the file hwm93.so in that directory. f2py -c hwm93.pyf hwm93.for --f77flags="-std=legacy" If the module is not compiled, an import error will be raised. References ---------- .. [1] Hedin, A. E., N. W. Spencer, and T. L. Killeen. "Empirical Global Model of Upper Thermosphere Winds Based on Atmosphere and Dynamics Explorer Satellite Data." Journal of Geophysical Research: Space Physics 93, no. A9 (September 1, 1988): 9959-78. doi:10.1029/JA093iA09p09959. .. [2] Hedin, A. E., M. A. Biondi, R. G. Burnside, G. Hernandez, R. M. Johnson, T. L. Killeen, C. Mazaudier, et al. "Revised Global Model of Thermosphere Winds Using Satellite and Ground-Based Observations." Journal of Geophysical Research: Space Physics 96, no. A5 (May 1, 1991): 7657-88. doi:10.1029/91JA00251. .. [3] Hedin, A. E., E. L. Fleming, A. H. Manson, F. J. Schmidlin, S. K. Avery, R. R. Clark, S. J. Franke, et al. "Empirical Wind Model for the Upper, Middle and Lower Atmosphere." Journal of Atmospheric and Terrestrial Physics 58, no. 13 (September 1996): 1421-47. doi:10.1016/0021-9169(95)00122-0. ''' try: from .optional.hwm93 import gws5 except: # pragma: no cover raise ImportError(no_gfortran_error) slt_hour = seconds/3600. + longitude/15. ans = gws5(day, seconds, Z/1000., latitude, longitude, slt_hour, f107, f107_avg, geomagnetic_disturbance_index) return tuple(ans.tolist()) def hwm14(Z, latitude=0, longitude=0, day=0, seconds=0, geomagnetic_disturbance_index=4): r'''Horizontal Wind Model 2014, for calculating wind velocity in the atmosphere as a function of time of year, longitude and latitude, and earth's geomagnetic disturbance. The model is described in [1]_. The model no longer accounts for solar flux. Parameters ---------- Z : float Elevation, [m] latitude : float, optional Latitude, between -90 and 90 [degrees] longitude : float, optional Longitude, between -180 and 180 or 0 and 360, [degrees] day : float, optional Day of year, 0-366 [day] seconds : float, optional Seconds since start of day, in UT1 time; using UTC provides no loss in accuracy [s] geomagnetic_disturbance_index : float, optional Average daily `Ap` or also known as planetary magnetic index. Returns ------- v_north : float Wind velocity, meridional (Northward) [m/s] v_east : float Wind velocity, zonal (Eastward) [m/s] Examples -------- >>> hwm14(5E5, 45, 50, 365) (-38.64341354370117, 12.871272087097168) Notes ----- No full description has been published of this model; it has been defined by its implementation only. It was written in FORTRAN, and is accessible at http://onlinelibrary.wiley.com/store/10.1002/2014EA000089/asset/supinfo/ess224-sup-0002-supinfo.tgz?v=1&s=2a957ba70b7cf9dd0612d9430076297c3634ea75. F2PY auto-compilation support is not yet currently supported. To compile this file, run the following command in a shell after navigating to $FLUIDSPATH/fluids/optional/. This should generate the file hwm14.so in that directory. f2py -c hwm14.pyf hwm14.f90 The fortran .pyf signature file is included with this project, but it can also be re-created with the command: f2py -m hwm14 -h hwm14.pyf hwm14.f90 If the module is not compiled, an import error will be raised. No patches were necessary to either the generated pyf or hwm14.f90 file, as the authors of [1]_ have made it F2PY compatible. Developed using 73 million data points taken by 44 instruments over 60 years. References ---------- .. [1] Drob, Douglas P., John T. Emmert, John W. Meriwether, Jonathan J. Makela, Eelco Doornbos, Mark Conde, Gonzalo Hernandez, et al. "An Update to the Horizontal Wind Model (HWM): The Quiet Time Thermosphere." Earth and Space Science 2, no. 7 (July 1, 2015): 2014EA000089. doi:10.1002/2014EA000089. ''' # Needed by hwm14 os.environ["HWMPATH"] = os.path.join(os.path.dirname(__file__), 'optional') try: try: from .optional import hwm14 except: import optional.hwm14 except: # pragma: no cover raise ImportError(no_gfortran_error) ans = hwm14.hwm14(day, seconds, Z/1000., latitude, longitude, 0, 0, 0, np.array([np.nan, geomagnetic_disturbance_index])) return tuple(ans.tolist()) def airmass(func, angle, H_max=86400.0, R_planet=6.371229E6, RI=1.000276): r'''Calculates mass of air per square meter in the atmosphere using a provided atmospheric model. The lowest air mass is calculated straight up; as the angle is lowered to nearer and nearer the horizon, the air mass increases, and can approach 40x or more the minimum airmass. .. math:: m(\gamma) = \int_0^\infty \rho \left\{1 - \left[1 + 2(\text{RI}-1) (1-\rho/\rho_0)\right] \left[\frac{\cos \gamma}{(1+h/R)}\right]^2\right\}^{-1/2} dH Parameters ---------- func : float Function which returns the density of the atmosphere as a function of elevation angle : float Degrees above the horizon (90 = straight up), [degrees] H_max : float, optional Maximum height to compute the integration up to before the contribution of density becomes negligible, [m] R_planet : float, optional The radius of the planet for which the integration is being performed, [m] RI : float, optional The refractive index of the atmosphere (air on earth at 0.7 um as default) assumed a constant, [-] Returns ------- m : float Mass of air per square meter in the atmosphere, [kg/m^2] Notes ----- Numerical integration via SciPy's `quad` is used to perform the calculation. Examples -------- >>> airmass(lambda Z : ATMOSPHERE_1976(Z).rho, 90) 10356.127665863998 References ---------- .. [1] Kasten, Fritz, and Andrew T. Young. "Revised Optical Air Mass Tables and Approximation Formula." Applied Optics 28, no. 22 (November 15, 1989): 4735-38. https://doi.org/10.1364/AO.28.004735. ''' delta0 = RI - 1.0 rho0_inv = 1.0/func(0.0) angle_term = cos(radians(angle)) R_planet_inv = 1.0/R_planet c0 = delta0 + delta0 c1 = c0*rho0_inv c2 = 1.0 + c0 def to_int(Z): Z = float(Z) rho = func(Z) t1 = c2 - rho*c1 x0 = angle_term/(1.0 + Z*R_planet_inv) t2 = x0*x0 t3 = (1.0 - t1*t2)**-0.5 return rho*t3 from scipy.integrate import quad return float(quad(to_int, 0.0, 86400.0)[0]) PVLIB_MISSING_MSG = 'The module pvlib is required for this function; install it first' def earthsun_distance(moment): r'''Calculates the distance between the earth and the sun as a function of date and time. Uses the Reda and Andreas (2004) model described in [1]_, originally incorporated into the excellent `pvlib library `_ Parameters ---------- moment : datetime Time and date for the calculation, in UTC time (or GMT, which is almost the same thing); not local time, [-] Returns ------- distance : float Distance between the center of the earth and the center of the sun, [m] Examples -------- >>> earthsun_distance(datetime(2003, 10, 17, 13, 30, 30)) 149090925951.18338 The distance at perihelion, which occurs at 4:21 according to this algorithm. The real value is 04:38 (January 2nd). >>> earthsun_distance(datetime(2013, 1, 2, 4, 21, 50)) 147098089490.67123 The distance at aphelion, which occurs at 14:44 according to this algorithm. The real value is dead on - 14:44 (July 5). >>> earthsun_distance(datetime(2013, 7, 5, 14, 44, 51, 0)) 152097354414.36044 Notes ----- This function is quite accurate. The difference comes from the impact of the moon. Note this function is not continuous; the sun-earth distance is not sufficiently accurately modeled for the change to be continuous throughout each day. References ---------- .. [1] Reda, Ibrahim, and Afshin Andreas. "Solar Position Algorithm for Solar Radiation Applications." Solar Energy 76, no. 5 (January 1, 2004): 577-89. https://doi.org/10.1016/j.solener.2003.12.003. ''' from fluids.optional import spa delta_t = spa.calculate_deltat(moment.year, moment.month) import calendar unixtime = calendar.timegm(moment.timetuple()) # Convert datetime object to unixtime return float(spa.earthsun_distance(unixtime, delta_t=delta_t))*au def solar_position(moment, latitude, longitude, Z=0.0, T=298.15, P=101325.0, atmos_refract=0.5667): r'''Calculate the position of the sun in the sky. It is defined in terms of two angles - the zenith and the azimith. The azimuth tells where a sundial would see the sun as coming from; the zenith tells how high in the sky it is. The solar elevation angle is returned for convinience; it is the complimentary angle of the zenith. The sun's refraction changes how high it appears as though the sun is; so values are returned with an optional conversion to the aparent angle. This impacts only the zenith/elevation. Uses the Reda and Andreas (2004) model described in [1]_, originally incorporated into the excellent `pvlib library `_ Parameters ---------- moment : datetime Time and date for the calculation, in local UTC time (not daylight savings time), [-] latitude : float Latitude, between -90 and 90 [degrees] longitude : float Longitude, between -180 and 180, [degrees] Z : float, optional Elevation above sea level for the solar position calculation, [m] T : float, optional Temperature of atmosphere at ground level, [K] P : float, optional Pressure of atmosphere at ground level, [Pa] atmos_refract : float, optional Atmospheric refractivity, [degrees] Returns ------- apparent_zenith : float Zenith of the sun as observed from the ground based after accounting for atmospheric refraction, [degrees] zenith : float Actual zenith of the sun (ignores atmospheric refraction), [degrees] apparent_altitude : float Altitude of the sun as observed from the ground based after accounting for atmospheric refraction, [degrees] altitude : float Actual altitude of the sun (ignores atmospheric refraction), [degrees] azimuth : float The azimuth of the sun, [degrees] equation_of_time : float Equation of time - the number of seconds to be added to the day's mean solar time to obtain the apparent solar noon time, [seconds] Examples -------- >>> solar_position(datetime(2003, 10, 17, 13, 30, 30), 45, 45) [140.8367913391112, 140.8367913391112, -50.83679133911118, -50.83679133911118, 329.9096671679604, 878.4902950980904] Sunrise occurs when the zenith is 90 degrees (Calgary, AB): >>> solar_position(datetime(2018, 4, 15, 6, 43, 5), 51.0486, -114.07)[0] 90.00054676987014 Sunrise also occurs when the zenith is 90 degrees (13.5 hours later): >>> solar_position(datetime(2018, 4, 15, 20, 30, 28), 51.0486, -114.07) [89.9995695661236, 90.54103812161853, 0.00043043387640950836, -0.5410381216185247, 286.8313781904518, 6.631429525878048] Notes ----- If you were standing at the same longitude of the sun such that it was no further east or west than you were, the amount of angle it was south or north of you is the *zenith*. If it were directly overhead it would be 0°; a little north or south and it would be a little positive; near sunset or sunrise, near 90°; and at night, between 90° and 180°. The *solar altitude angle* is defined as 90° -`zenith`. Note the *elevation* angle is just another name for the *altitude* angle. The *azimuth* the angle in degrees that the sun is East of the North angle. It is positive North eastwards 0° to 360°. Other conventions may be used. Note that due to differences in atmospheric refractivity, estimation of sunset and sunrise are accuract to no more than one minute. Refraction conditions truly vary across the atmosphere; so characterizing it by an average value is limiting as well. References ---------- .. [1] Reda, Ibrahim, and Afshin Andreas. "Solar Position Algorithm for Solar Radiation Applications." Solar Energy 76, no. 5 (January 1, 2004): 577-89. https://doi.org/10.1016/j.solener.2003.12.003. .. [2] "Navigation - What Azimuth Description Systems Are in Use? - Astronomy Stack Exchange." https://astronomy.stackexchange.com/questions/237/what-azimuth-description-systems-are-in-use?rq=1. ''' from fluids.optional import spa delta_t = spa.calculate_deltat(moment.year, moment.month) unixtime = time.mktime(moment.timetuple()) # Input pressure in milibar; input temperature in deg C result = spa.solar_position_numpy(unixtime, lat=latitude, lon=longitude, elev=Z, pressure=P*1E-2, temp=T-273.15, delta_t=delta_t, atmos_refract=atmos_refract, sst=False, esd=False) # confirmed equation of time https://www.minasi.com/figeot.asp # Convert minutes to seconds; sometimes negative, sometimes positive result[-1] = result[-1]*60.0 return result def sunrise_sunset(moment, latitude, longitude): r'''Calculates the times at which the sun is at sunset; sunrise; and halfway between sunrise and sunset (transit). Uses the Reda and Andreas (2004) model described in [1]_, originally incorporated into the excellent `pvlib library `_ Parameters ---------- moment : datetime Date for the calculation; needs to contain only the year, month, and day, [-] latitude : float Latitude, between -90 and 90 [degrees] longitude : float Longitude, between -180 and 180, [degrees] Returns ------- sunrise : datetime The time at the specified day when the sun rises **IN UTC**, [-] sunset : datetime The time at the specified day when the sun sets **IN UTC**, [-] transit : datetime The time at the specified day when the sun is at solar noon - halfway between sunrise and sunset **IN UTC**, [-] Examples -------- >>> sunrise, sunset, transit = sunrise_sunset(datetime(2018, 4, 17), ... 51.0486, -114.07) >>> sunrise datetime.datetime(2018, 4, 17, 12, 36, 55, 782660) >>> sunset datetime.datetime(2018, 4, 18, 2, 34, 4, 249326) >>> transit datetime.datetime(2018, 4, 17, 19, 35, 46, 686265) Notes ----- This functions takes on the order of 2 ms per calculation. The reason the function cannot return the time correct the local timezone is that the function does not know the timezone at the specified lat/long. References ---------- .. [1] Reda, Ibrahim, and Afshin Andreas. "Solar Position Algorithm for Solar Radiation Applications." Solar Energy 76, no. 5 (January 1, 2004): 577-89. https://doi.org/10.1016/j.solener.2003.12.003. ''' from fluids.optional import spa delta_t = spa.calculate_deltat(moment.year, moment.month) # Strip the part of the day moment = datetime(moment.year, moment.month, moment.day) import calendar unixtime = calendar.timegm(moment.timetuple()) unixtime = unixtime - unixtime % (86400) # Remove the remainder of the value, rounding it to the day it is transit, sunrise, sunset = spa.transit_sunrise_sunset(np.array([unixtime]), lat=latitude, lon=longitude, delta_t=delta_t, numthreads=1) transit = datetime.utcfromtimestamp(float(transit)) sunrise = datetime.utcfromtimestamp(float(sunrise)) sunset = datetime.utcfromtimestamp(float(sunset)) return sunrise, sunset, transit apparent_zenith_airmass_models = set(['simple', 'kasten1966', 'kastenyoung1989', 'gueymard1993', 'pickering2002']) true_zenith_airmass_models = set(['youngirvine1967', 'young1994']) def _get_extra_radiation_shim(datetime_or_doy, solar_constant=1366.1, method='spencer', epoch_year=2014, **kwargs): if method == 'spencer': if not isinstance(datetime_or_doy, (float, int)): dayofyear = datetime_or_doy.timetuple().tm_yday else: dayofyear = datetime_or_doy B = (2.*pi/365.)*(dayofyear - 1) RoverR0sqrd = (1.00011 + 0.034221*cos(B) + 0.00128*sin(B) + 0.000719*cos(2.0*B) + 7.7e-05*sin(2.0*B)) Ea = solar_constant * RoverR0sqrd return Ea from pvlib import get_extra_radiation return get_extra_radiation(datetime_or_doy=datetime_or_doy, solar_constant=solar_constant, method=method, epoch_year=epoch_year, **kwargs) def solar_irradiation(latitude, longitude, Z, moment, surface_tilt, surface_azimuth, T=None, P=None, solar_constant=1366.1, atmos_refract=0.5667, albedo=0.25, linke_turbidity=None, extraradiation_method='spencer', airmass_model='kastenyoung1989', cache=None): r'''Calculates the amount of solar radiation and radiation reflected back the atmosphere which hits a surface at a specified tilt, and facing a specified azimuth. This functions is a wrapper for the incredibly comprehensive `pvlib library `_, and requires it to be installed. Parameters ---------- latitude : float Latitude, between -90 and 90 [degrees] longitude : float Longitude, between -180 and 180, [degrees] Z : float, optional Elevation above sea level for the position, [m] moment : datetime Time and date for the calculation, in local UTC time (not daylight savings time), [-] surface_tilt : float The angle above the horizontal of the object being hit by radiation, [degrees] surface_azimuth : float The angle the object is facing (positive North eastwards 0° to 360°), [degrees] T : float, optional Temperature of atmosphere at ground level, [K] P : float, optional Pressure of atmosphere at ground level, [Pa] solar_constant : float, optional The amount of solar radiation which reaches earth's disk (at a standardized distance of 1 AU); this constant is independent of activity or conditions on earth, but will vary throughout the sun's lifetime and may increase or decrease slightly due to solar activity, [W/m^2] atmos_refract : float, optional Atmospheric refractivity at sunrise/sunset (0.5667 deg is an often used value; this varies substantially and has an impact of a few minutes on when sunrise and sunset is), [degrees] albedo : float, optional The average amount of reflection of the terrain surrounding the object at quite a distance; this impacts how much sunlight reflected off the ground, gest reflected back off clouds, [-] linke_turbidity : float, optional The amount of pollution/water in the sky versus a perfect clear sky; If not specified, this will be retrieved from a historical grid; typical values are 3 for cloudy, and 7 for severe pollution around a city, [-] extraradiation_method : str, optional The specified method to calculate the effect of earth's position on the amount of radiation which reaches earth according to the methods available in the `pvlib` library, [-] airmass_model : str, optional The specified method to calculate the amount of air the sunlight needs to travel through to reach the earth according to the methods available in the `pvlib` library, [-] cache : dict, optional Dictionary to to check for values to use to skip some calculations; `apparent_zenith`, `zenith`, `azimuth` supported, [-] Returns ------- poa_global : float The total irradiance in the plane of the surface, [W/m^2] poa_direct : float The total beam irradiance in the plane of the surface, [W/m^2] poa_diffuse : float The total diffuse irradiance in the plane of the surface, [W/m^2] poa_sky_diffuse : float The sky component of the diffuse irradiance, excluding the impact from the ground, [W/m^2] poa_ground_diffuse : float The ground-sky diffuse irradiance component, [W/m^2] Examples -------- >>> solar_irradiation(Z=1100.0, latitude=51.0486, longitude=-114.07, ... moment=datetime(2018, 4, 15, 13, 43, 5), surface_tilt=41.0, ... surface_azimuth=180.0) (1065.7621896280812, 945.2656564506323, 120.49653317744884, 95.31535344213178, 25.181179735317063) >>> cache = {'apparent_zenith': 41.099082295767545, 'zenith': 41.11285376417578, 'azimuth': 182.5631874250523} >>> solar_irradiation(Z=1100.0, latitude=51.0486, longitude=-114.07, ... moment=datetime(2018, 4, 15, 13, 43, 5), surface_tilt=41.0, ... linke_turbidity=3, T=300, P=1E5, ... surface_azimuth=180.0, cache=cache) (1042.5677703677097, 918.2377548545295, 124.33001551318027, 99.6228657378363, 24.70714977534396) At night, there is no solar radiation and this function returns zeros: >>> solar_irradiation(Z=1100.0, latitude=51.0486, longitude=-114.07, ... moment=datetime(2018, 4, 15, 2, 43, 5), surface_tilt=41.0, ... surface_azimuth=180.0) (0.0, -0.0, 0.0, 0.0, 0.0) Notes ----- The retrieval of `linke_turbidity` requires the pytables library (and Pandas); if it is not installed, specify a value of `linke_turbidity` to avoid the dependency. There is some redundancy of the calculated results, according to the following relations. The total irradiance is normally that desired for engineering calculations. poa_diffuse = poa_ground_diffuse + poa_sky_diffuse poa_global = poa_direct + poa_diffuse FOr a surface such as a pipe or vessel, an approach would be to split it into a number of rectangles and sum up the radiation absorbed by each. This calculation is fairly slow. References ---------- .. [1] Will Holmgren, Calama-Consulting, Tony Lorenzo, Uwe Krien, bmu, DaCoEx, mayudong, et al. Pvlib/Pvlib-Python: 0.5.1. Zenodo, 2017. https://doi.org/10.5281/zenodo.1016425. ''' # Atmospheric refraction at sunrise/sunset (0.5667 deg is an often used value) from fluids.optional import spa from fluids.optional.irradiance import (get_relative_airmass, get_absolute_airmass, ineichen, get_relative_airmass, get_absolute_airmass, get_total_irradiance) # try: # import pvlib # except: # raise ImportError(PVLIB_MISSING_MSG) moment_timetuple = moment.timetuple() moment_arg_dni = (moment_timetuple.tm_yday if extraradiation_method == 'spencer' else moment) dni_extra = _get_extra_radiation_shim(moment_arg_dni, solar_constant=solar_constant, method=extraradiation_method, epoch_year=moment.year) if T is None or P is None: atmosphere = ATMOSPHERE_NRLMSISE00(Z=Z, latitude=latitude, longitude=longitude, day=moment_timetuple.tm_yday) if T is None: T = atmosphere.T if P is None: P = atmosphere.P if cache is not None and 'zenith' in cache: zenith = cache['zenith'] apparent_zenith = cache['apparent_zenith'] azimuth = cache['azimuth'] else: apparent_zenith, zenith, _, _, azimuth, _ = solar_position(moment=moment, latitude=latitude, longitude=longitude, Z=Z, T=T, P=P, atmos_refract=atmos_refract) if linke_turbidity is None: from pvlib.clearsky import lookup_linke_turbidity import pandas as pd linke_turbidity = float(lookup_linke_turbidity( pd.DatetimeIndex([moment]), latitude, longitude).values) if airmass_model in apparent_zenith_airmass_models: used_zenith = apparent_zenith elif airmass_model in true_zenith_airmass_models: used_zenith = zenith else: raise Exception('Unrecognized airmass model') relative_airmass = get_relative_airmass(used_zenith, model=airmass_model) airmass_absolute = get_absolute_airmass(relative_airmass, pressure=P) ans = ineichen(apparent_zenith=apparent_zenith, airmass_absolute=airmass_absolute, linke_turbidity=linke_turbidity, altitude=Z, dni_extra=solar_constant, perez_enhancement=True) ghi = ans['ghi'] dni = ans['dni'] dhi = ans['dhi'] # from pvlib.irradiance import get_total_irradiance ans = get_total_irradiance(surface_tilt=surface_tilt, surface_azimuth=surface_azimuth, solar_zenith=apparent_zenith, solar_azimuth=azimuth, dni=dni, ghi=ghi, dhi=dhi, dni_extra=dni_extra, airmass=airmass_absolute, albedo=albedo) poa_global = float(ans['poa_global']) poa_direct = float(ans['poa_direct']) poa_diffuse = float(ans['poa_diffuse']) poa_sky_diffuse = float(ans['poa_sky_diffuse']) poa_ground_diffuse = float(ans['poa_ground_diffuse']) return (poa_global, poa_direct, poa_diffuse, poa_sky_diffuse, poa_ground_diffuse) fluids-0.1.78/fluids/compressible.py0000644000175000017500000021352613632560624016200 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import log, pi, exp, isinf from fluids.constants import R from fluids.numerics import newton, ridder, lambertw __all__ = ['Panhandle_A', 'Panhandle_B', 'Weymouth', 'Spitzglass_high', 'Spitzglass_low', 'Oliphant', 'Fritzsche', 'Muller', 'IGT', 'isothermal_gas', 'isothermal_work_compression', 'polytropic_exponent', 'isentropic_work_compression', 'isentropic_efficiency', 'isentropic_T_rise_compression', 'T_critical_flow', 'P_critical_flow', 'P_isothermal_critical_flow', 'is_critical_flow', 'stagnation_energy', 'P_stagnation', 'T_stagnation', 'T_stagnation_ideal'] def isothermal_work_compression(P1, P2, T, Z=1): r'''Calculates the work of compression or expansion of a gas going through an isothermal process. .. math:: W = zRT\ln\left(\frac{P_2}{P_1}\right) Parameters ---------- P1 : float Inlet pressure, [Pa] P2 : float Outlet pressure, [Pa] T : float Temperature of the gas going through an isothermal process, [K] Z : float Constant compressibility factor of the gas, [-] Returns ------- W : float Work performed per mole of gas compressed/expanded [J/mol] Notes ----- The full derivation with all forms is as follows: .. math:: W = \int_{P_1}^{P_2} V dP = zRT\int_{P_1}^{P_2} \frac{1}{P} dP .. math:: W = zRT\ln\left(\frac{P_2}{P_1}\right) = P_1 V_1 \ln\left(\frac{P_2} {P_1}\right) = P_2 V_2 \ln\left(\frac{P_2}{P_1}\right) The substitutions are according to the ideal gas law with compressibility: .. math: PV = ZRT The work of compression/expansion is the change in enthalpy of the gas. Returns negative values for expansion and positive values for compression. An average compressibility factor can be used where Z changes. For further accuracy, this expression can be used repeatedly with small changes in pressure and the work from each step summed. This is the best possible case for compression; all actual compresssors require more work to do the compression. By making the compression take a large number of stages and cooling the gas between stages, this can be approached reasonable closely. Integrally geared compressors are often used for this purpose. Examples -------- >>> isothermal_work_compression(1E5, 1E6, 300) 5743.427304244769 References ---------- .. [1] Couper, James R., W. Roy Penney, and James R. Fair. Chemical Process Equipment: Selection and Design. 2nd ed. Amsterdam ; Boston: Gulf Professional Publishing, 2009. ''' return Z*R*T*log(P2/P1) def isentropic_work_compression(T1, k, Z=1, P1=None, P2=None, W=None, eta=None): r'''Calculation function for dealing with compressing or expanding a gas going through an isentropic, adiabatic process assuming constant Cp and Cv. The polytropic model is the same equation; just provide `n` instead of `k` and use a polytropic efficiency for `eta` instead of a isentropic efficiency. Can calculate any of the following, given all the other inputs: * W, Work of compression * P2, Pressure after compression * P1, Pressure before compression * eta, isentropic efficiency of compression .. math:: W = \left(\frac{k}{k-1}\right)ZRT_1\left[\left(\frac{P_2}{P_1} \right)^{(k-1)/k}-1\right]/\eta_{isentropic} Parameters ---------- T1 : float Initial temperature of the gas, [K] k : float Isentropic exponent of the gas (Cp/Cv) or polytropic exponent `n` to use this as a polytropic model instead [-] Z : float, optional Constant compressibility factor of the gas, [-] P1 : float, optional Inlet pressure, [Pa] P2 : float, optional Outlet pressure, [Pa] W : float, optional Work performed per mole of gas compressed/expanded [J/mol] eta : float, optional Isentropic efficiency of the process or polytropic efficiency of the process to use this as a polytropic model instead [-] Returns ------- W, P1, P2, or eta : float The missing input which was solved for [base SI] Notes ----- For the same compression ratio, this is always of larger magnitude than the isothermal case. The full derivation is as follows: For constant-heat capacity "isentropic" fluid, .. math:: V = \frac{P_1^{1/k}V_1}{P^{1/k}} .. math:: W = \int_{P_1}^{P_2} V dP = \int_{P_1}^{P_2}\frac{P_1^{1/k}V_1} {P^{1/k}}dP .. math:: W = \frac{P_1^{1/k} V_1}{1 - \frac{1}{k}}\left[P_2^{1-1/k} - P_1^{1-1/k}\right] After performing the integration and substantial mathematical manipulation we can obtain: .. math:: W = \left(\frac{k}{k-1}\right) P_1 V_1 \left[\left(\frac{P_2}{P_1} \right)^{(k-1)/k}-1\right] Using PV = ZRT: .. math:: W = \left(\frac{k}{k-1}\right)ZRT_1\left[\left(\frac{P_2}{P_1} \right)^{(k-1)/k}-1\right] The work of compression/expansion is the change in enthalpy of the gas. Returns negative values for expansion and positive values for compression. An average compressibility factor should be used as Z changes. For further accuracy, this expression can be used repeatedly with small changes in pressure and new values of isentropic exponent, and the work from each step summed. For the polytropic case this is not necessary, as `eta` corrects for the simplification. Examples -------- >>> isentropic_work_compression(P1=1E5, P2=1E6, T1=300, k=1.4, eta=0.78) 10416.876986384483 References ---------- .. [1] Couper, James R., W. Roy Penney, and James R. Fair. Chemical Process Equipment: Selection and Design. 2nd ed. Amsterdam ; Boston: Gulf Professional Publishing, 2009. ''' if W is None and (None not in [eta, P1, P2]): return k/(k - 1.0)*Z*R*T1*((P2/P1)**((k-1.)/k) - 1.0)/eta elif P1 is None and (None not in [eta, W, P2]): return P2*(1.0 + W*eta/(R*T1*Z) - W*eta/(R*T1*Z*k))**(-k/(k - 1.0)) elif P2 is None and (None not in [eta, W, P1]): return P1*(1.0 + W*eta/(R*T1*Z) - W*eta/(R*T1*Z*k))**(k/(k - 1.0)) elif eta is None and (None not in [P1, P2, W]): return R*T1*Z*k*((P2/P1)**((k - 1.0)/k) - 1.0)/(W*(k - 1.0)) else: raise Exception('Three of W, P1, P2, and eta must be specified.') def isentropic_T_rise_compression(T1, P1, P2, k, eta=1): r'''Calculates the increase in temperature of a fluid which is compressed or expanded under isentropic, adiabatic conditions assuming constant Cp and Cv. The polytropic model is the same equation; just provide `n` instead of `k` and use a polytropic efficienty for `eta` instead of a isentropic efficiency. .. math:: T_2 = T_1 + \frac{\Delta T_s}{\eta_s} = T_1 \left\{1 + \frac{1} {\eta_s}\left[\left(\frac{P_2}{P_1}\right)^{(k-1)/k}-1\right]\right\} Parameters ---------- T1 : float Initial temperature of gas [K] P1 : float Initial pressure of gas [Pa] P2 : float Final pressure of gas [Pa] k : float Isentropic exponent of the gas (Cp/Cv) or polytropic exponent `n` to use this as a polytropic model instead [-] eta : float Isentropic efficiency of the process or polytropic efficiency of the process to use this as a polytropic model instead [-] Returns ------- T2 : float Final temperature of gas [K] Notes ----- For the ideal case (`eta`=1), the model simplifies to: .. math:: \frac{T_2}{T_1} = \left(\frac{P_2}{P_1}\right)^{(k-1)/k} Examples -------- >>> isentropic_T_rise_compression(286.8, 54050, 432400, 1.4) 519.5230938217768 References ---------- .. [1] Couper, James R., W. Roy Penney, and James R. Fair. Chemical Process Equipment: Selection and Design. 2nd ed. Amsterdam ; Boston: Gulf Professional Publishing, 2009. .. [2] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. ''' dT = T1*((P2/P1)**((k - 1.0)/k) - 1.0)/eta return T1 + dT def isentropic_efficiency(P1, P2, k, eta_s=None, eta_p=None): r'''Calculates either isentropic or polytropic efficiency from the other type of efficiency. .. math:: \eta_s = \frac{(P_2/P_1)^{(k-1)/k}-1} {(P_2/P_1)^{\frac{k-1}{k\eta_p}}-1} .. math:: \eta_p = \frac{\left(k - 1\right) \log{\left (\frac{P_{2}}{P_{1}} \right )}}{k \log{\left (\frac{1}{\eta_{s}} \left(\eta_{s} + \left(\frac{P_{2}}{P_{1}}\right)^{\frac{1}{k} \left(k - 1\right)} - 1\right) \right )}} Parameters ---------- P1 : float Initial pressure of gas [Pa] P2 : float Final pressure of gas [Pa] k : float Isentropic exponent of the gas (Cp/Cv) [-] eta_s : float, optional Isentropic (adiabatic) efficiency of the process, [-] eta_p : float, optional Polytropic efficiency of the process, [-] Returns ------- eta_s or eta_p : float Isentropic or polytropic efficiency, depending on input, [-] Notes ----- The form for obtained `eta_p` from `eta_s` was derived with SymPy. Examples -------- >>> isentropic_efficiency(1E5, 1E6, 1.4, eta_p=0.78) 0.7027614191263858 References ---------- .. [1] Couper, James R., W. Roy Penney, and James R. Fair. Chemical Process Equipment: Selection and Design. 2nd ed. Amsterdam ; Boston: Gulf Professional Publishing, 2009. ''' if eta_s is None and eta_p: return ((P2/P1)**((k-1.0)/k)-1.0)/((P2/P1)**((k-1.0)/(k*eta_p))-1.0) elif eta_p is None and eta_s: return (k - 1.0)*log(P2/P1)/(k*log( (eta_s + (P2/P1)**((k - 1.0)/k) - 1.0)/eta_s)) else: raise Exception('Either eta_s or eta_p is required') def polytropic_exponent(k, n=None, eta_p=None): r'''Calculates one of: * Polytropic exponent from polytropic efficiency * Polytropic efficiency from the polytropic exponent .. math:: n = \frac{k\eta_p}{1 - k(1-\eta_p)} .. math:: \eta_p = \frac{\left(\frac{n}{n-1}\right)}{\left(\frac{k}{k-1} \right)} = \frac{n(k-1)}{k(n-1)} Parameters ---------- k : float Isentropic exponent of the gas (Cp/Cv) [-] n : float, optional Polytropic exponent of the process [-] eta_p : float, optional Polytropic efficiency of the process, [-] Returns ------- n or eta_p : float Polytropic exponent or polytropic efficiency, depending on input, [-] Notes ----- Examples -------- >>> polytropic_exponent(1.4, eta_p=0.78) 1.5780346820809246 References ---------- .. [1] Couper, James R., W. Roy Penney, and James R. Fair. Chemical Process Equipment: Selection and Design. 2nd ed. Amsterdam ; Boston: Gulf Professional Publishing, 2009. ''' if n is None and eta_p: return k*eta_p/(1.0 - k*(1.0 - eta_p)) elif eta_p is None and n: return n*(k - 1.0)/(k*(n - 1.0)) else: raise Exception('Either n or eta_p is required') def T_critical_flow(T, k): r'''Calculates critical flow temperature `Tcf` for a fluid with the given isentropic coefficient. `Tcf` is in a flow (with Ma=1) whose stagnation conditions are known. Normally used with converging/diverging nozzles. .. math:: \frac{T^*}{T_0} = \frac{2}{k+1} Parameters ---------- T : float Stagnation temperature of a fluid with Ma=1 [K] k : float Isentropic coefficient [] Returns ------- Tcf : float Critical flow temperature at Ma=1 [K] Notes ----- Assumes isentropic flow. Examples -------- Example 12.4 in [1]_: >>> T_critical_flow(473, 1.289) 413.2809086937528 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return T*2.0/(k + 1.0) def P_critical_flow(P, k): r'''Calculates critical flow pressure `Pcf` for a fluid with the given isentropic coefficient. `Pcf` is in a flow (with Ma=1) whose stagnation conditions are known. Normally used with converging/diverging nozzles. .. math:: \frac{P^*}{P_0} = \left(\frac{2}{k+1}\right)^{k/(k-1)} Parameters ---------- P : float Stagnation pressure of a fluid with Ma=1 [Pa] k : float Isentropic coefficient [] Returns ------- Pcf : float Critical flow pressure at Ma=1 [Pa] Notes ----- Assumes isentropic flow. Examples -------- Example 12.4 in [1]_: >>> P_critical_flow(1400000, 1.289) 766812.9022792266 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return P*(2.0/(k + 1.))**(k/(k - 1.0)) def P_isothermal_critical_flow(P, fd, D, L): r'''Calculates critical flow pressure `Pcf` for a fluid flowing isothermally and suffering pressure drop caused by a pipe's friction factor. .. math:: P_2 = P_{1} e^{\frac{1}{2 D} \left(D \left(\operatorname{LambertW} {\left (- e^{\frac{1}{D} \left(- D - L f_d\right)} \right )} + 1\right) + L f_d\right)} Parameters ---------- P : float Inlet pressure [Pa] fd : float Darcy friction factor for flow in pipe [-] D : float Diameter of pipe, [m] L : float Length of pipe, [m] Returns ------- Pcf : float Critical flow pressure of a compressible gas flowing from `P1` to `Pcf` in a tube of length L and friction factor `fd` [Pa] Notes ----- Assumes isothermal flow. Developed based on the `isothermal_gas` model, using SymPy. The isothermal gas model is solved for maximum mass flow rate; any pressure drop under it is impossible due to the formation of a shock wave. Examples -------- >>> P_isothermal_critical_flow(P=1E6, fd=0.00185, L=1000., D=0.5) 389699.7317645518 References ---------- .. [1] Wilkes, James O. Fluid Mechanics for Chemical Engineers with Microfluidics and CFD. 2 edition. Upper Saddle River, NJ: Prentice Hall, 2005. ''' # Correct branch of lambertw found by trial and error lambert_term = float(lambertw(-exp((-D - L*fd)/D), -1).real) return P*exp((D*(lambert_term + 1.0) + L*fd)/(2.0*D)) def P_upstream_isothermal_critical_flow(P, fd, D, L): '''Not part of the public API. Reverses `P_isothermal_critical_flow`. Examples -------- >>> P_upstream_isothermal_critical_flow(P=389699.7317645518, fd=0.00185, ... L=1000., D=0.5) 1000000.0000000001 ''' lambertw_term = float(lambertw(-exp(-(fd*L+D)/D), -1).real) return exp(-0.5*(D*lambertw_term+fd*L+D)/D)*P def is_critical_flow(P1, P2, k): r'''Determines if a flow of a fluid driven by pressure gradient P1 - P2 is critical, for a fluid with the given isentropic coefficient. This function calculates critical flow pressure, and checks if this is larger than P2. If so, the flow is critical and choked. Parameters ---------- P1 : float Higher, source pressure [Pa] P2 : float Lower, downstream pressure [Pa] k : float Isentropic coefficient [] Returns ------- flowtype : bool True if the flow is choked; otherwise False Notes ----- Assumes isentropic flow. Uses P_critical_flow function. Examples -------- Examples 1-2 from API 520. >>> is_critical_flow(670E3, 532E3, 1.11) False >>> is_critical_flow(670E3, 101E3, 1.11) True References ---------- .. [1] API. 2014. API 520 - Part 1 Sizing, Selection, and Installation of Pressure-relieving Devices, Part I - Sizing and Selection, 9E. ''' Pcf = P_critical_flow(P1, k) return Pcf > P2 def stagnation_energy(V): r'''Calculates the increase in enthalpy `dH` which is provided by a fluid's velocity `V`. .. math:: \Delta H = \frac{V^2}{2} Parameters ---------- V : float Velocity [m/s] Returns ------- dH : float Incease in enthalpy [J/kg] Notes ----- The units work out. This term is pretty small, but not trivial. Examples -------- >>> stagnation_energy(125) 7812.5 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return 0.5*V*V def P_stagnation(P, T, Tst, k): r'''Calculates stagnation flow pressure `Pst` for a fluid with the given isentropic coefficient and specified stagnation temperature and normal temperature. Normally used with converging/diverging nozzles. .. math:: \frac{P_0}{P}=\left(\frac{T_0}{T}\right)^{\frac{k}{k-1}} Parameters ---------- P : float Normal pressure of a fluid [Pa] T : float Normal temperature of a fluid [K] Tst : float Stagnation temperature of a fluid moving at a certain velocity [K] k : float Isentropic coefficient [] Returns ------- Pst : float Stagnation pressure of a fluid moving at a certain velocity [Pa] Notes ----- Assumes isentropic flow. Examples -------- Example 12-1 in [1]_. >>> P_stagnation(54050., 255.7, 286.8, 1.4) 80772.80495900588 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return P*(Tst/T)**(k/(k - 1.0)) def T_stagnation(T, P, Pst, k): r'''Calculates stagnation flow temperature `Tst` for a fluid with the given isentropic coefficient and specified stagnation pressure and normal pressure. Normally used with converging/diverging nozzles. .. math:: T=T_0\left(\frac{P}{P_0}\right)^{\frac{k-1}{k}} Parameters ---------- T : float Normal temperature of a fluid [K] P : float Normal pressure of a fluid [Pa] Pst : float Stagnation pressure of a fluid moving at a certain velocity [Pa] k : float Isentropic coefficient [] Returns ------- Tst : float Stagnation temperature of a fluid moving at a certain velocity [K] Notes ----- Assumes isentropic flow. Examples -------- Example 12-1 in [1]_. >>> T_stagnation(286.8, 54050, 54050*8, 1.4) 519.5230938217768 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return T*(Pst/P)**((k - 1.0)/k) def T_stagnation_ideal(T, V, Cp): r'''Calculates the ideal stagnation temperature `Tst` calculated assuming the fluid has a constant heat capacity `Cp` and with a specified velocity `V` and temperature `T`. .. math:: T^* = T + \frac{V^2}{2C_p} Parameters ---------- T : float Tempearture [K] V : float Velocity [m/s] Cp : float Ideal heat capacity [J/kg/K] Returns ------- Tst : float Stagnation temperature [J/kg] Examples -------- Example 12-1 in [1]_. >>> T_stagnation_ideal(255.7, 250, 1005.) 286.79452736318405 References ---------- .. [1] Cengel, Yunus, and John Cimbala. Fluid Mechanics: Fundamentals and Applications. Boston: McGraw Hill Higher Education, 2006. ''' return T + 0.5*V*V/Cp def isothermal_gas(rho, fd, P1=None, P2=None, L=None, D=None, m=None): r'''Calculation function for dealing with flow of a compressible gas in a pipeline for the complete isothermal flow equation. Can calculate any of the following, given all other inputs: * Mass flow rate * Upstream pressure (numerical) * Downstream pressure (analytical or numerical if an overflow occurs) * Diameter of pipe (numerical) * Length of pipe A variety of forms of this equation have been presented, differing in their use of the ideal gas law and choice of gas constant. The form here uses density explicitly, allowing for non-ideal values to be used. .. math:: \dot m^2 = \frac{\left(\frac{\pi D^2}{4}\right)^2 \rho_{avg} \left(P_1^2-P_2^2\right)}{P_1\left(f_d\frac{L}{D} + 2\ln\frac{P_1}{P_2} \right)} Parameters ---------- rho : float Average density of gas in pipe, [kg/m^3] fd : float Darcy friction factor for flow in pipe [-] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] m : float, optional Mass flow rate of gas through pipe, [kg/s] Returns ------- m, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- The solution for P2 has the following closed form, derived using Maple: .. math:: P_2={P_1 \left( {{ e}^{0.5\cdot{\frac {1}{{m}^{2}} \left( -C{m}^{2} +\text{ lambertW} \left(-{\frac {BP_1}{{m}^{2}}{{ e}^{-{\frac {-C{m}^{ 2}+BP_1}{{m}^{2}}}}}}\right){}{m}^{2}+BP_1 \right) }}} \right) ^{-1}} .. math:: B = \frac{\pi^2 D^4}{4^2} \rho_{avg} .. math:: C = f_d \frac{L}{D} A wide range of conditions are impossible due to choked flow. See `P_isothermal_critical_flow` for details. An exception is raised when they occur. The 2 multiplied by the logarithm is often shown as a power of the pressure ratio; this is only the case when the pressure ratio is raised to the power of 2 before its logarithm is taken. A number of limitations exist for this model: * Density dependence is that of an ideal gas. * If calculating the pressure drop, the average gas density cannot be known immediately; iteration must be used to correct this. * The friction factor depends on both the gas density and velocity, so it should be solved for iteratively as well. It changes throughout the pipe as the gas expands and velocity increases. * The model is not easily adapted to include elevation effects due to the acceleration term included in it. * As the gas expands, it will change temperature slightly, further altering the density and friction factor. There are many commercial packages which perform the actual direct integration of the flow, such as OLGA Dynamic Multiphase Flow Simulator, or ASPEN Hydraulics. This expression has also been presented with the ideal gas assumption directly incorporated into it [4]_ (note R is the specific gas constant, in units of J/kg/K): .. math:: \dot m^2 = \frac{\left(\frac{\pi D^2}{4}\right)^2 \left(P_1^2-P_2^2\right)}{RT\left(f_d\frac{L}{D} + 2\ln\frac{P_1}{P_2} \right)} Examples -------- >>> isothermal_gas(rho=11.3, fd=0.00185, P1=1E6, P2=9E5, L=1000, D=0.5) 145.4847572636031 References ---------- .. [1] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [2] Kim, J. and Singh, N. "A Novel Equation for Isothermal Pipe Flow.". Chemical Engineering, June 2012, http://www.chemengonline.com/a-novel-equation-for-isothermal-pipe-flow/?printmode=1 .. [3] Wilkes, James O. Fluid Mechanics for Chemical Engineers with Microfluidics and CFD. 2 edition. Upper Saddle River, NJ: Prentice Hall, 2005. .. [4] Rennels, Donald C., and Hobart M. Hudson. Pipe Flow: A Practical and Comprehensive Guide. 1st edition. Hoboken, N.J: Wiley, 2012. ''' if m is None and (None not in [P1, P2, L, D]): Pcf = P_isothermal_critical_flow(P=P1, fd=fd, D=D, L=L) if P2 < Pcf: raise Exception('Given outlet pressure is not physically possible \ due to the formation of choked flow at P2=%f, specified outlet pressure was %f' % (Pcf, P2)) if P2 > P1: raise Exception('Specified outlet pressure is larger than the \ inlet pressure; fluid will flow backwards.') return (0.0625*pi*pi*D**4*rho/(P1*(fd*L/D + 2.0*log(P1/P2)))*(P1*P1 - P2*P2))**0.5 elif L is None and (None not in [P1, P2, D, m]): return D*(pi*pi*D**4*rho*(P1*P1 - P2*P2) - 32.0*P1*m*m*log(P1/P2))/(16.0*P1*fd*m*m) elif P1 is None and (None not in [L, P2, D, m]): Pcf = P_upstream_isothermal_critical_flow(P=P2, fd=fd, D=D, L=L) def to_solve(P1): return m - isothermal_gas(rho, fd, P1=P1, P2=P2, L=L, D=D) try: # Use the explicit solution for P2 with different P1 guesses; # newton doesn't like solving for m. def to_solve_P2_basis(P1): return abs(P2 - isothermal_gas(rho, fd, m=m, P1=P1, P2=None, L=L, D=D)) P1 = newton(to_solve_P2_basis, (P2+Pcf)/2.) assert P2 <= P1 return P1 except: try: return ridder(to_solve, a=P2, b=Pcf) except: m_max = isothermal_gas(rho, fd, P1=Pcf, P2=P2, L=L, D=D) raise Exception('The desired mass flow rate of %f kg/s cannot ' 'be achieved with the specified downstream pressure; the maximum flowrate is ' '%f kg/s at an upstream pressure of %f Pa' %(m, m_max, Pcf)) elif P2 is None and (None not in [L, P1, D, m]): try: Pcf = P_isothermal_critical_flow(P=P1, fd=fd, D=D, L=L) m_max = isothermal_gas(rho, fd, P1=P1, P2=Pcf, L=L, D=D) assert m <= m_max C = fd*L/D B = (pi/4*D**2)**2*rho arg = -B/m**2*P1*exp(-(-C*m**2+B*P1)/m**2) # Consider the two real branches of the lambertw function. # The k=-1 branch produces the higher P2 values; the k=0 branch is # physically impossible. lambert_ans = float(lambertw(arg, k=-1).real) # Large overflow problem here; also divide by zero problems! # Fail and try a numerical solution if it doesn't work. assert not isinf(lambert_ans) P2 = P1/exp((-C*m**2+lambert_ans*m**2+B*P1)/m**2/2.) assert P2 < P1 return P2 except: Pcf = P_isothermal_critical_flow(P=P1, fd=fd, D=D, L=L) def to_solve(P2): return m - isothermal_gas(rho, fd, P1=P1, P2=P2, L=L, D=D) # return abs(m - isothermal_gas(rho, fd, P1=P1, P2=P2, L=L, D=D)) # return fminbound(to_solve, x1=Pcf, x2=P1) try: return ridder(to_solve, a=Pcf, b=P1) # m_max = isothermal_gas(rho, fd, P1=P1, P2=Pcf, L=L, D=D) # assert m < m_max # assert P > Pcv # return m except: m_max = isothermal_gas(rho, fd, P1=P1, P2=Pcf, L=L, D=D) raise Exception('The desired mass flow rate cannot be achieved ' 'with the specified upstream pressure of %f Pa; the maximum flowrate is %f ' 'kg/s at a downstream pressure of %f' %(P1, m_max, Pcf)) # A solver which respects its boundaries is required here. # ridder cuts the time down from 2 ms to 200 mircoseconds. # Is is believed Pcf and P1 will always bracked the root, however # leave the commented code for testing elif D is None and (None not in [P2, P1, L, m]): def to_solve(D): return m - isothermal_gas(rho, fd, P1=P1, P2=P2, L=L, D=D) return newton(to_solve, 0.1) else: raise Exception('This function solves for either mass flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Panhandle_A(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=0.92): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Panhandle A formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the Panhandle A equation. Here, a new form is developed with all units in base SI, based on the work of [1]_. .. math:: Q = 158.02053 E \left(\frac{T_s}{P_s}\right)^{1.0788}\left[\frac{P_1^2 -P_2^2}{L \cdot {SG}^{0.8539} T_{avg}Z_{avg}}\right]^{0.5394}D^{2.6182} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- [1]_'s original constant was 4.5965E-3, and it has units of km (length), kPa, mm (diameter), and flowrate in m^3/day. The form in [2]_ has the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour; its leading constant is 1.9152E-4. The GPSA [3]_ has a leading constant of 0.191, a bracketed power of 0.5392, a specific gravity power of 0.853, and otherwise the same constants. It is in units of mm (diameter) and kPa and m^3/day; length is stated to be in km, but according to the errata is in m. [4]_ has a leading constant of 1.198E7, a specific gravity of power of 0.8541, and a power of diameter which is under the root of 4.854 and is otherwise the same. It has units of kPa and m^3/day, but is otherwise in base SI units. [5]_ has a leading constant of 99.5211, but its reference correction has no exponent; other exponents are the same as here. It is entirely in base SI units. [6]_ has pressures in psi, diameter in inches, length in miles, Q in ft^3/day, T in degrees Rankine, and a constant of 435.87. Its reference condition power is 1.07881, and it has a specific gravity correction outside any other term with a power of 0.4604. Examples -------- >>> Panhandle_A(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 42.56082051195928 References ---------- .. [1] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [2] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [3] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. .. [4] Campbell, John M. Gas Conditioning and Processing, Vol. 2: The Equipment Modules. 7th edition. Campbell Petroleum Series, 1992. .. [5] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. .. [6] Ikoku, Chi U. Natural Gas Production Engineering. Malabar, Fla: Krieger Pub Co, 1991. ''' c1 = 1.0788 c2 = 0.8539 c3 = 0.5394 c4 = 2.6182 c5 = 158.0205328706957220332831680508433862787 # 45965*10**(591/1250)/864 if Q is None and (None not in [L, D, P1, P2]): return c5*E*(Ts/Ps)**c1*((P1**2 - P2**2)/(L*SG**c2*Tavg*Zavg))**c3*D**c4 elif D is None and (None not in [L, Q, P1, P2]): return (Q*(Ts/Ps)**(-c1)*(SG**(-c2)*(P1**2 - P2**2)/(L*Tavg*Zavg))**(-c3)/(E*c5))**(1./c4) elif P1 is None and (None not in [L, Q, D, P2]): return (L*SG**c2*Tavg*Zavg*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(1./c3) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*SG**c2*Tavg*Zavg*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(1./c3) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return SG**(-c2)*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(-1./c3)*(P1**2 - P2**2)/(Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Panhandle_B(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=0.92): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Panhandle B formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the Panhandle B equation. Here, a new form is developed with all units in base SI, based on the work of [1]_. .. math:: Q = 152.88116 E \left(\frac{T_s}{P_s}\right)^{1.02}\left[\frac{P_1^2 -P_2^2}{L \cdot {SG}^{0.961} T_{avg}Z_{avg}}\right]^{0.51}D^{2.53} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- [1]_'s original constant was 1.002E-2, and it has units of km (length), kPa, mm (diameter), and flowrate in m^3/day. The form in [2]_ has the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour; its leading constant is 4.1749E-4. The GPSA [3]_ has a leading constant of 0.339, and otherwise the same constants. It is in units of mm (diameter) and kPa and m^3/day; length is stated to be in km, but according to the errata is in m. [4]_ has a leading constant of 1.264E7, a diameter power of 4.961 which is also under the 0.51 power, and is otherwise the same. It has units of kPa and m^3/day, but is otherwise in base SI units. [5]_ has a leading constant of 135.8699, but its reference correction has no exponent and its specific gravity has a power of 0.9608; the other exponents are the same as here. It is entirely in base SI units. [6]_ has pressures in psi, diameter in inches, length in miles, Q in ft^3/day, T in degrees Rankine, and a constant of 737 with the exponents the same as here. Examples -------- >>> Panhandle_B(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 42.35366178004172 References ---------- .. [1] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [2] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [3] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. .. [4] Campbell, John M. Gas Conditioning and Processing, Vol. 2: The Equipment Modules. 7th edition. Campbell Petroleum Series, 1992. .. [5] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. .. [6] Ikoku, Chi U. Natural Gas Production Engineering. Malabar, Fla: Krieger Pub Co, 1991. ''' c1 = 1.02 # reference condition power c2 = 0.961 # sg power c3 = 0.51 # main power c4 = 2.53 # diameter power c5 = 152.8811634298055458624385985866624419060 # 4175*10**(3/25)/36 if Q is None and (None not in [L, D, P1, P2]): return c5*E*(Ts/Ps)**c1*((P1**2 - P2**2)/(L*SG**c2*Tavg*Zavg))**c3*D**c4 elif D is None and (None not in [L, Q, P1, P2]): return (Q*(Ts/Ps)**(-c1)*(SG**(-c2)*(P1**2 - P2**2)/(L*Tavg*Zavg))**(-c3)/(E*c5))**(1./c4) elif P1 is None and (None not in [L, Q, D, P2]): return (L*SG**c2*Tavg*Zavg*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(1./c3) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*SG**c2*Tavg*Zavg*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(1./c3) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return SG**(-c2)*(D**(-c4)*Q*(Ts/Ps)**(-c1)/(E*c5))**(-1./c3)*(P1**2 - P2**2)/(Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Weymouth(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=0.92): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Weymouth formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the Weymouth equation. Here, a new form is developed with all units in base SI, based on the work of [1]_. .. math:: Q = 137.32958 E \frac{T_s}{P_s}\left[\frac{P_1^2 -P_2^2}{L \cdot {SG} \cdot T_{avg}Z_{avg}}\right]^{0.5}D^{2.667} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- [1]_'s original constant was 3.7435E-3, and it has units of km (length), kPa, mm (diameter), and flowrate in m^3/day. The form in [2]_ has the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour; its leading constant is 1.5598E-4. The GPSA [3]_ has a leading constant of 0.1182, and otherwise the same constants. It is in units of mm (diameter) and kPa and m^3/day; length is stated to be in km, but according to the errata is in m. [4]_ has a leading constant of 1.162E7, a diameter power of 5.333 which is also under the 0.50 power, and is otherwise the same. It has units of kPa and m^3/day, but is otherwise in base SI units. [5]_ has a leading constant of 137.2364; the other exponents are the same as here. It is entirely in base SI units. [6]_ has pressures in psi, diameter in inches, length in miles, Q in ft^3/hour, T in degrees Rankine, and a constant of 18.062 with the exponents the same as here. Examples -------- >>> Weymouth(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 32.07729055913029 References ---------- .. [1] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [2] Crane Co. Flow of Fluids Through Valves, Fittings, and Pipe. Crane, 2009. .. [3] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. .. [4] Campbell, John M. Gas Conditioning and Processing, Vol. 2: The Equipment Modules. 7th edition. Campbell Petroleum Series, 1992. .. [5] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. .. [6] Ikoku, Chi U. Natural Gas Production Engineering. Malabar, Fla: Krieger Pub Co, 1991. ''' c3 = 0.5 # main power c4 = 2.667 # diameter power c5 = 137.3295809942512546732179684618143090992 # 37435*10**(501/1000)/864 if Q is None and (None not in [L, D, P1, P2]): return c5*E*(Ts/Ps)*((P1**2 - P2**2)/(L*SG*Tavg*Zavg))**c3*D**c4 elif D is None and (None not in [L, Q, P1, P2]): return (Ps*Q*((P1**2 - P2**2)/(L*SG*Tavg*Zavg))**(-c3)/(E*Ts*c5))**(1./c4) elif P1 is None and (None not in [L, Q, D, P2]): return (L*SG*Tavg*Zavg*(D**(-c4)*Ps*Q/(E*Ts*c5))**(1./c3) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*SG*Tavg*Zavg*(D**(-c4)*Ps*Q/(E*Ts*c5))**(1./c3) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return (D**(-c4)*Ps*Q/(E*Ts*c5))**(-1./c3)*(P1**2 - P2**2)/(SG*Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Spitzglass_high(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=1.): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Spitzglass (high pressure drop) formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe (numerical solution) * Length of pipe A variety of different constants and expressions have been presented for the Spitzglass (high pressure drop) formula. Here, the form as in [1]_ is used but with a more precise metric conversion from inches to m. .. math:: Q = 125.1060 E \left(\frac{T_s}{P_s}\right)\left[\frac{P_1^2 -P_2^2}{L \cdot {SG} T_{avg}Z_{avg} (1 + 0.09144/D + \frac{150}{127}D)} \right]^{0.5}D^{2.5} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- This equation is often presented without any correction for reference conditions for specific gravity. This model is also presented in [2]_ with a leading constant of 1.0815E-2, the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour. Examples -------- >>> Spitzglass_high(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 29.42670246281681 References ---------- .. [1] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. .. [2] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. ''' c3 = 1.181102362204724409448818897637795275591 # 0.03/inch or 150/127 c4 = 0.09144 c5 = 125.1060 if Q is None and (None not in [L, D, P1, P2]): return (c5*E*Ts/Ps*D**2.5*((P1**2-P2**2) /(L*SG*Zavg*Tavg*(1 + c4/D + c3*D)))**0.5) elif D is None and (None not in [L, Q, P1, P2]): to_solve = lambda D : Q - Spitzglass_high(SG=SG, Tavg=Tavg, L=L, D=D, P1=P1, P2=P2, Ts=Ts, Ps=Ps, Zavg=Zavg, E=E) return newton(to_solve, 0.5) elif P1 is None and (None not in [L, Q, D, P2]): return ((D**6*E**2*P2**2*Ts**2*c5**2 + D**2*L*Ps**2*Q**2*SG*Tavg*Zavg*c3 + D*L*Ps**2*Q**2*SG*Tavg*Zavg + L*Ps**2*Q**2*SG*Tavg*Zavg*c4)/(D**6*E**2*Ts**2*c5**2))**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return ((D**6*E**2*P1**2*Ts**2*c5**2 - D**2*L*Ps**2*Q**2*SG*Tavg*Zavg*c3 - D*L*Ps**2*Q**2*SG*Tavg*Zavg - L*Ps**2*Q**2*SG*Tavg*Zavg*c4)/(D**6*E**2*Ts**2*c5**2))**0.5 elif L is None and (None not in [P2, Q, D, P1]): return (D**6*E**2*Ts**2*c5**2*(P1**2 - P2**2) /(Ps**2*Q**2*SG*Tavg*Zavg*(D**2*c3 + D + c4))) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Spitzglass_low(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=1.): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Spitzglass (low pressure drop) formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe (numerical solution) * Length of pipe A variety of different constants and expressions have been presented for the Spitzglass (low pressure drop) formula. Here, the form as in [1]_ is used but with a more precise metric conversion from inches to m. .. math:: Q = 125.1060 E \left(\frac{T_s}{P_s}\right)\left[\frac{2(P_1 -P_2)(P_s+1210)}{L \cdot {SG} \cdot T_{avg}Z_{avg} (1 + 0.09144/D + \frac{150}{127}D)}\right]^{0.5}D^{2.5} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- This equation is often presented without any correction for reference conditions for specific gravity. This model is also presented in [2]_ with a leading constant of 5.69E-2, the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour. However, it is believed to contain a typo, and gives results <1/3 of the correct values. It is also present in [2]_ in imperial form; this is believed correct, but makes a slight assumption not done in [1]_. This model is present in [3]_ without reference corrections. The 1210 constant in [1]_ is an approximation necessary for the reference correction to function without a square of the pressure difference. The GPSA version is as follows, and matches this formulation very closely: .. math:: Q = 0.821 \left[\frac{(P_1-P_2)D^5}{L \cdot {SG} (1 + 91.44/D + 0.0018D)}\right]^{0.5} The model is also shown in [4]_, with diameter in inches, length in feet, flow in MMSCFD, pressure drop in inH2O, and a rounded leading constant of 0.09; this makes its predictions several percent higher than the model here. Examples -------- >>> Spitzglass_low(D=0.154051, P1=6720.3199, P2=0, L=54.864, SG=0.6, Tavg=288.7) 0.9488775242530617 References ---------- .. [1] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. .. [2] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [3] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. .. [4] PetroWiki. "Pressure Drop Evaluation along Pipelines" Accessed September 11, 2016. http://petrowiki.org/Pressure_drop_evaluation_along_pipelines#Spitzglass_equation_2. ''' c3 = 1.181102362204724409448818897637795275591 # 0.03/inch or 150/127 c4 = 0.09144 c5 = 125.1060 if Q is None and (None not in [L, D, P1, P2]): return c5*Ts/Ps*D**2.5*E*(((P1-P2)*2*(Ps+1210.))/(L*SG*Tavg*Zavg*(1 + c4/D + c3*D)))**0.5 elif D is None and (None not in [L, Q, P1, P2]): to_solve = lambda D : Q - Spitzglass_low(SG=SG, Tavg=Tavg, L=L, D=D, P1=P1, P2=P2, Ts=Ts, Ps=Ps, Zavg=Zavg, E=E) return newton(to_solve, 0.5) elif P1 is None and (None not in [L, Q, D, P2]): return 0.5*(2.0*D**6*E**2*P2*Ts**2*c5**2*(Ps + 1210.0) + D**2*L*Ps**2*Q**2*SG*Tavg*Zavg*c3 + D*L*Ps**2*Q**2*SG*Tavg*Zavg + L*Ps**2*Q**2*SG*Tavg*Zavg*c4)/(D**6*E**2*Ts**2*c5**2*(Ps + 1210.0)) elif P2 is None and (None not in [L, Q, D, P1]): return 0.5*(2.0*D**6*E**2*P1*Ts**2*c5**2*(Ps + 1210.0) - D**2*L*Ps**2*Q**2*SG*Tavg*Zavg*c3 - D*L*Ps**2*Q**2*SG*Tavg*Zavg - L*Ps**2*Q**2*SG*Tavg*Zavg*c4)/(D**6*E**2*Ts**2*c5**2*(Ps + 1210.0)) elif L is None and (None not in [P2, Q, D, P1]): return 2.0*D**6*E**2*Ts**2*c5**2*(P1*Ps + 1210.0*P1 - P2*Ps - 1210.0*P2)/(Ps**2*Q**2*SG*Tavg*Zavg*(D**2*c3 + D + c4)) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Oliphant(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=0.92): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Oliphant formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe (numerical solution) * Length of pipe This model is a more complete conversion to metric of the Imperial version presented in [1]_. .. math:: Q = 84.5872\left(D^{2.5} + 0.20915D^3\right)\frac{T_s}{P_s}\left(\frac {P_1^2 - P_2^2}{L\cdot {SG} \cdot T_{avg}}\right)^{0.5} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- Recommended in [1]_ for use between vacuum and 100 psi. The model is simplified by grouping constants here; however, it is presented in the imperial unit set inches (diameter), miles (length), psi, Rankine, and MMSCFD in [1]_: .. math:: Q = 42(24)\left(D^{2.5} + \frac{D^3}{30}\right)\left(\frac{14.4}{P_s} \right)\left(\frac{T_s}{520}\right)\left[\left(\frac{0.6}{SG}\right) \left(\frac{520}{T_{avg}}\right)\left(\frac{P_1^2 - P_2^2}{L}\right) \right]^{0.5} Examples -------- >>> Oliphant(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 28.851535408143057 References ---------- .. [1] GPSA. GPSA Engineering Data Book. 13th edition. Gas Processors Suppliers Association, Tulsa, OK, 2012. .. [2] F. N. Oliphant, "Production of Natural Gas," Report. USGS, 1902. ''' # c1 = 42*24*Q*foot**3/day*(mile)**0.5*9/5.*(5/9.)**0.5*psi*(1/psi)*14.4/520.*0.6**0.5*520**0.5/inch**2.5 c1 = 84.587176139918568651410168968141078948974609375000 c2 = 0.2091519350460528670065940559652517549694 # 1/(30.*0.0254**0.5) if Q is None and (None not in [L, D, P1, P2]): return c1*(D**2.5 + c2*D**3)*Ts/Ps*((P1**2-P2**2)/(L*SG*Tavg))**0.5 elif D is None and (None not in [L, Q, P1, P2]): to_solve = lambda D : Q - Oliphant(SG=SG, Tavg=Tavg, L=L, D=D, P1=P1, P2=P2, Ts=Ts, Ps=Ps, Zavg=Zavg, E=E) return newton(to_solve, 0.5) elif P1 is None and (None not in [L, Q, D, P2]): return (L*Ps**2*Q**2*SG*Tavg/(Ts**2*c1**2*(D**3*c2 + D**2.5)**2) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*Ps**2*Q**2*SG*Tavg/(Ts**2*c1**2*(D**3*c2 + D**2.5)**2) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return Ts**2*c1**2*(P1**2 - P2**2)*(D**3*c2 + D**2.5)**2/(Ps**2*Q**2*SG*Tavg) else: raise Exception('This function solves for either flow, upstream \ pressure, downstream pressure, diameter, or length; all other inputs \ must be provided.') def Fritzsche(SG, Tavg, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=1): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Fritzsche formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the Fritzsche formula. Here, the form as in [1]_ is used but with all inputs in base SI units. .. math:: Q = 93.500 \frac{T_s}{P_s}\left(\frac{P_1^2 - P_2^2} {L\cdot {SG}^{0.8587} \cdot T_{avg}}\right)^{0.538}D^{2.69} Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- This model is also presented in [1]_ with a leading constant of 2.827, the same exponents as used here, units of mm (diameter), kPa, km (length), and flow in m^3/hour. This model is shown in base SI units in [2]_, and with a leading constant of 94.2565, a diameter power of 2.6911, main group power of 0.5382 and a specific gravity power of 0.858. The difference is very small. Examples -------- >>> Fritzsche(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, Tavg=277.15) 39.421535157535565 References ---------- .. [1] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [2] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. ''' # Rational('2.827E-3')/(3600*24)*(1000)**Rational('2.69')*(1000)**Rational('0.538')*1000/(1000**2)**Rational('0.538') c5 = 93.50009798751128188757518688244137811221 # 14135*10**(57/125)/432 c2 = 0.8587 c3 = 0.538 c4 = 2.69 if Q is None and (None not in [L, D, P1, P2]): return c5*E*(Ts/Ps)*((P1**2 - P2**2)/(SG**c2*Tavg*L*Zavg))**c3*D**c4 elif D is None and (None not in [L, Q, P1, P2]): return (Ps*Q*(SG**(-c2)*(P1**2 - P2**2)/(L*Tavg*Zavg))**(-c3)/(E*Ts*c5))**(1./c4) elif P1 is None and (None not in [L, Q, D, P2]): return (L*SG**c2*Tavg*Zavg*(D**(-c4)*Ps*Q/(E*Ts*c5))**(1./c3) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*SG**c2*Tavg*Zavg*(D**(-c4)*Ps*Q/(E*Ts*c5))**(1./c3) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return SG**(-c2)*(D**(-c4)*Ps*Q/(E*Ts*c5))**(-1./c3)*(P1**2 - P2**2)/(Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream pressure, downstream pressure, diameter, or length; all other inputs must be provided.') def Muller(SG, Tavg, mu, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=1): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the Muller formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the Muller formula. Here, the form as in [1]_ is used but with all inputs in base SI units. .. math:: Q = 15.7743\frac{T_s}{P_s}E\left(\frac{P_1^2 - P_2^2}{L \cdot Z_{avg} \cdot T_{avg}}\right)^{0.575} \left(\frac{D^{2.725}}{\mu^{0.15} SG^{0.425}}\right) Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] mu : float Average viscosity of the fluid in the pipeline, [Pa*s] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- This model is presented in [1]_ with a leading constant of 0.4937, the same exponents as used here, units of inches (diameter), psi, feet (length), Rankine, pound/(foot*second) for viscosity, and 1000 ft^3/hour. This model is also presented in [2]_ in both SI and imperial form. The SI form was incorrectly converted and yields much higher flow rates. The imperial version has a leading constant of 85.7368, the same powers as used here except with rounded values of powers of viscosity (0.2609) and specific gravity (0.7391) rearranged to be inside the bracketed group; its units are inches (diameter), psi, miles (length), Rankine, pound/(foot*second) for viscosity, and ft^3/day. This model is shown in base SI units in [3]_, and with a leading constant of 15.7650, a diameter power of 2.724, main group power of 0.5747, a specific gravity power of 0.74, and a viscosity power of 0.1494. Examples -------- >>> Muller(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, ... Tavg=277.15) 60.45796698148659 References ---------- .. [1] Mohitpour, Mo, Golshan, and Allan Murray. Pipeline Design and Construction: A Practical Approach. 3rd edition. New York: Amer Soc Mechanical Engineers, 2006. .. [2] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [3] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. ''' # 1000*foot**3/hour*0.4937/inch**2.725*foot**0.575*(5/9.)**0.575*9/5.*(pound/foot)**0.15*psi*(1/psi**2)**0.575 c5 = 15.77439908642077352939746374951659525108 # 5642991*196133**(17/20)*2**(3/5)*3**(11/40)*5**(7/40)/30645781250 c2 = 0.575 # main power c3 = 2.725 # D power c4 = 0.425 # SG power c1 = 0.15 # mu power if Q is None and (None not in [L, D, P1, P2]): return c5*Ts/Ps*E*((P1**2-P2**2)/Tavg/L/Zavg)**c2*D**c3/SG**c4/mu**c1 elif D is None and (None not in [L, Q, P1, P2]): return (Ps*Q*SG**c4*mu**c1*((P1**2 - P2**2)/(L*Tavg*Zavg))**(-c2)/(E*Ts*c5))**(1./c3) elif P1 is None and (None not in [L, Q, D, P2]): return (L*Tavg*Zavg*(D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(1/c2) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*Tavg*Zavg*(D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(1/c2) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return (D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(-1/c2)*(P1**2 - P2**2)/(Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream pressure, downstream pressure, diameter, or length; all other inputs must be provided.') def IGT(SG, Tavg, mu, L=None, D=None, P1=None, P2=None, Q=None, Ts=288.7, Ps=101325., Zavg=1, E=1): r'''Calculation function for dealing with flow of a compressible gas in a pipeline with the IGT formula. Can calculate any of the following, given all other inputs: * Flow rate * Upstream pressure * Downstream pressure * Diameter of pipe * Length of pipe A variety of different constants and expressions have been presented for the IGT formula. Here, the form as in [1]_ is used but with all inputs in base SI units. .. math:: Q = 24.6241\frac{T_s}{P_s}E\left(\frac{P_1^2 - P_2^2}{L \cdot Z_{avg} \cdot T_{avg}}\right)^{5/9} \left(\frac{D^{8/3}}{\mu^{1/9} SG^{4/9}}\right) Parameters ---------- SG : float Specific gravity of fluid with respect to air at the reference temperature and pressure `Ts` and `Ps`, [-] Tavg : float Average temperature of the fluid in the pipeline, [K] mu : float Average viscosity of the fluid in the pipeline, [Pa*s] L : float, optional Length of pipe, [m] D : float, optional Diameter of pipe, [m] P1 : float, optional Inlet pressure to pipe, [Pa] P2 : float, optional Outlet pressure from pipe, [Pa] Q : float, optional Flow rate of gas through pipe, [m^3/s] Ts : float, optional Reference temperature for the specific gravity of the gas, [K] Ps : float, optional Reference pressure for the specific gravity of the gas, [Pa] Zavg : float, optional Average compressibility factor for gas, [-] E : float, optional Pipeline efficiency, a correction factor between 0 and 1 Returns ------- Q, P1, P2, D, or L : float The missing input which was solved for [base SI] Notes ----- This model is presented in [1]_ with a leading constant of 0.6643, the same exponents as used here, units of inches (diameter), psi, feet (length), Rankine, pound/(foot*second) for viscosity, and 1000 ft^3/hour. This model is also presented in [2]_ in both SI and imperial form. Both forms are correct. The imperial version has a leading constant of 136.9, the same powers as used here except with rounded values of powers of viscosity (0.2) and specific gravity (0.8) rearranged to be inside the bracketed group; its units are inches (diameter), psi, miles (length), Rankine, pound/(foot*second) for viscosity, and ft^3/day. This model is shown in base SI units in [3]_, and with a leading constant of 24.6145, and the same powers as used here. Examples -------- >>> IGT(D=0.340, P1=90E5, P2=20E5, L=160E3, SG=0.693, mu=1E-5, Tavg=277.15) 48.92351786788815 References ---------- .. [1] Mohitpour, Mo, Golshan, and Allan Murray. Pipeline Design and Construction: A Practical Approach. 3rd edition. New York: Amer Soc Mechanical Engineers, 2006. .. [2] Menon, E. Shashi. Gas Pipeline Hydraulics. 1st edition. Boca Raton, FL: CRC Press, 2005. .. [3] Coelho, Paulo M., and Carlos Pinho. "Considerations about Equations for Steady State Flow in Natural Gas Pipelines." Journal of the Brazilian Society of Mechanical Sciences and Engineering 29, no. 3 (September 2007): 262-73. doi:10.1590/S1678-58782007000300005. ''' # 1000*foot**3/hour*0.6643/inch**(8/3.)*foot**(5/9.)*(5/9.)**(5/9.)*9/5.*(pound/foot)**(1/9.)*psi*(1/psi**2)**(5/9.) c5 = 24.62412451461407054875301709443930350550 # 1084707*196133**(8/9)*2**(1/9)*6**(1/3)/4377968750 c2 = 5/9. # main power c3 = 8/3. # D power c4 = 4/9. # SG power c1 = 1/9. # mu power if Q is None and (None not in [L, D, P1, P2]): return c5*Ts/Ps*E*((P1**2-P2**2)/Tavg/L/Zavg)**c2*D**c3/SG**c4/mu**c1 elif D is None and (None not in [L, Q, P1, P2]): return (Ps*Q*SG**c4*mu**c1*((P1**2 - P2**2)/(L*Tavg*Zavg))**(-c2)/(E*Ts*c5))**(1./c3) elif P1 is None and (None not in [L, Q, D, P2]): return (L*Tavg*Zavg*(D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(1/c2) + P2**2)**0.5 elif P2 is None and (None not in [L, Q, D, P1]): return (-L*Tavg*Zavg*(D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(1/c2) + P1**2)**0.5 elif L is None and (None not in [P2, Q, D, P1]): return (D**(-c3)*Ps*Q*SG**c4*mu**c1/(E*Ts*c5))**(-1/c2)*(P1**2 - P2**2)/(Tavg*Zavg) else: raise Exception('This function solves for either flow, upstream pressure, downstream pressure, diameter, or length; all other inputs must be provided.') fluids-0.1.78/fluids/filters.py0000644000175000017500000002444713632560624015163 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import radians, cos from fluids.numerics import interp, implementation_optimize_tck, splev __all__ = ['round_edge_screen', 'round_edge_open_mesh', 'square_edge_screen', 'square_edge_grill', 'round_edge_grill'] round_Res = [20.0, 30.0, 40.0, 60.0, 80.0, 100.0, 200.0, 400.0] round_betas = [1.3, 1.1, 0.95, 0.83, 0.75, 0.7, 0.6, 0.52] '''Quadratic interpolation with no smoothing, constant value extremities returned when outside table limits''' round_thetas = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 85.0] round_gammas = [1.0, 0.97, 0.88, 0.75, 0.59, 0.45, 0.3, 0.23, 0.15, 0.09] '''Quadratic interpolation with no smoothing, constant value extremities returned when outside table limits''' '''Quadratic interpolation with no smoothing, constant value extremities returned when outside table limits. Last actual value in the original table is K=1000 at alpha=0.05; the rest are extrapolated.''' square_alphas = [0.0015625, 0.003125, 0.00625, 0.0125, 0.025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 1.] square_Ks = [1024000., 256000, 64000, 16000, 4000, 1000., 250., 85., 52., 30., 17., 11., 7.7, 5.5, 3.8, 2.8, 2, 1.5, 1.1, 0.78, 0.53, 0.35, 0.08, 0.] grills_rounded_alphas = [0.3, 0.4, 0.5, 0.6, 0.7] grills_rounded_Ks = [2.0, 1.0, 0.6, 0.4, 0.2] '''Cubic interpolation with no smoothing, constant value extremities returned when outside table limits''' grills_rounded_tck = implementation_optimize_tck([[0.3, 0.3, 0.3, 0.45, 0.55, 0.7, 0.7, 0.7], [2.0, 1.0014285714285716, 0.5799999999999998, 0.3585714285714287, 0.2, 0.0, 0.0, 0.0], 2]) def round_edge_screen(alpha, Re, angle=0): r'''Returns the loss coefficient for a round edged wire screen or bar screen, as shown in [1]_. Angle of inclination may be specified as well. Parameters ---------- alpha : float Fraction of screen open to flow [-] Re : float Reynolds number of flow through screen with D = space between rods, [] angle : float, optional Angle of inclination, with 0 being straight and 90 being parallel to flow [degrees] Returns ------- K : float Loss coefficient [-] Notes ----- Linear interpolation between a table of values. Re table extends from 20 to 400, with constant values outside of the table. This behavior should be adequate. alpha should be between 0.05 and 0.8. If angle is over 85 degrees, the value at 85 degrees is used. The velocity the loss coefficient relates to is the approach velocity before the screen. Examples -------- >>> round_edge_screen(0.5, 100) 2.0999999999999996 >>> round_edge_screen(0.5, 100, 45) 1.05 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' beta = interp(Re, round_Res, round_betas) alpha2 = alpha*alpha K = beta*(1.0 - alpha2)/alpha2 if angle: if angle <= 45: K *= cos(radians(angle))**2 else: K *= interp(angle, round_thetas, round_gammas) return K def round_edge_open_mesh(alpha, subtype='diamond pattern wire', angle=0): r'''Returns the loss coefficient for a round edged open net/screen made of one of the following patterns, according to [1]_: 'round bar screen': .. math:: K = 0.95(1-\alpha) + 0.2(1-\alpha)^2 'diamond pattern wire': .. math:: K = 0.67(1-\alpha) + 1.3(1-\alpha)^2 'knotted net': .. math:: K = 0.70(1-\alpha) + 4.9(1-\alpha)^2 'knotless net': .. math:: K = 0.72(1-\alpha) + 2.1(1-\alpha)^2 Parameters ---------- alpha : float Fraction of net/screen open to flow [-] subtype : str One of 'round bar screen', 'diamond pattern wire', 'knotted net' or 'knotless net'. angle : float, optional Angle of inclination, with 0 being straight and 90 being parallel to flow [degrees] Returns ------- K : float Loss coefficient [-] Notes ----- `alpha` should be between 0.85 and 1 for these correlations. Flow should be turbulent, with Re > 500. The velocity the loss coefficient relates to is the approach velocity before the mesh. Examples -------- >>> round_edge_open_mesh(0.96, angle=33.) 0.02031327712601458 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' if subtype == 'round bar screen': K = 0.95*(1-alpha) + 0.2*(1-alpha)**2 elif subtype == 'diamond pattern wire': K = 0.67*(1-alpha) + 1.3*(1-alpha)**2 elif subtype == 'knotted net': K = 0.70*(1-alpha) + 4.9*(1-alpha)**2 elif subtype == 'knotless net': K = 0.72*(1-alpha) + 2.1*(1-alpha)**2 else: raise Exception('Subtype not recognized') if angle: if angle < 45: K *= cos(radians(angle))**2 else: K *= interp(angle, round_thetas, round_gammas) return K def square_edge_screen(alpha): r'''Returns the loss coefficient for a square wire screen or square bar screen or perforated plate with squared edges, as shown in [1]_. Parameters ---------- alpha : float Fraction of screen open to flow [-] Returns ------- K : float Loss coefficient [-] Notes ----- Linear interpolation between a table of values. The velocity the loss coefficient relates to is the approach velocity before the screen. Examples -------- >>> square_edge_screen(0.99) 0.008000000000000007 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' return interp(alpha, square_alphas, square_Ks) def square_edge_grill(alpha, l=None, Dh=None, fd=None): r'''Returns the loss coefficient for a square grill or square bar screen or perforated plate with squared edges of thickness l, as shown in [1]_. for Dh < l < 50D .. math:: K = \frac{0.5(1-\alpha) + (1-\alpha^2)}{\alpha^2} else: .. math:: K = \frac{0.5(1-\alpha) + (1-\alpha^2) + f{l}/D}{\alpha^2} Parameters ---------- alpha : float Fraction of grill open to flow [-] l : float, optional Thickness of the grill or plate [m] Dh : float, optional Hydraulic diameter of gap in grill, [m] fd : float, optional Darcy friction factor [-] Returns ------- K : float Loss coefficient [-] Notes ----- If l, Dh, or fd is not provided, the first expression is used instead. The alteration of the expression to include friction factor is there if the grill is long enough to have considerable friction along the surface of the grill. The velocity the loss coefficient relates to is the approach velocity before the grill. Examples -------- >>> square_edge_grill(.45) 5.296296296296296 >>> square_edge_grill(.45, l=.15, Dh=.002, fd=.0185) 12.148148148148147 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' if Dh and l and fd and l > 50*Dh: return (0.5*(1-alpha) + (1-alpha**2) + fd*l/Dh)/alpha**2 else: return (0.5*(1-alpha) + (1-alpha**2))/alpha**2 def round_edge_grill(alpha, l=None, Dh=None, fd=None): r'''Returns the loss coefficient for a rounded square grill or square bar screen or perforated plate with rounded edges of thickness l, as shown in [1]_. for Dh < l < 50D .. math:: K = lookup(alpha) else: .. math:: K = lookup(alpha) + \frac{fl}{\alpha^2D} Parameters ---------- alpha : float Fraction of grill open to flow [-] l : float, optional Thickness of the grill or plate [m] Dh : float, optional Hydraulic diameter of gap in grill, [m] fd : float, optional Darcy friction factor [-] Returns ------- K : float Loss coefficient [-] Notes ----- If l, Dh, or fd is not provided, the first expression is used instead. The alteration of the expression to include friction factor is there if the grill is long enough to have considerable friction along the surface of the grill. alpha must be between 0.3 and 0.7. The velocity the loss coefficient relates to is the approach velocity before the grill. Examples -------- >>> round_edge_grill(.4) 1.0 >>> round_edge_grill(.4, l=.15, Dh=.002, fd=.0185) 2.3874999999999997 References ---------- .. [1] Blevins, Robert D. Applied Fluid Dynamics Handbook. New York, N.Y.: Van Nostrand Reinhold Co., 1984. ''' t1 = float(splev(alpha, grills_rounded_tck)) if Dh and l and fd and l > 50*Dh: return t1 + fd*l/Dh else: return t1 fluids-0.1.78/fluids/numerics/0000755000175000017500000000000013632560624014753 5ustar kurtkurtfluids-0.1.78/fluids/numerics/arrays.py0000644000175000017500000003557513632560624016645 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2019 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import sin, exp, pi, fabs, copysign, log, isinf, acos, cos, sin import sys from sys import float_info try: import numpy as np except ImportError: np = None try: # The right way imports the platform module which costs to ms to load! # implementation = platform.python_implementation() IS_PYPY = 'PyPy' in sys.version except AttributeError: IS_PYPY = False __all__ = ['dot', 'inv', 'det', 'solve', 'norm2', 'inner_product', 'eye', 'array_as_tridiagonals', 'solve_tridiagonal', 'subset_matrix'] def det(matrix): '''Seem sto work fine. >> from sympy import * >> from sympy.abc import * >> Matrix([[a, b], [c, d]]).det() a*d - b*c >> Matrix([[a, b, c], [d, e, f], [g, h, i]]).det() a*e*i - a*f*h - b*d*i + b*f*g + c*d*h - c*e*g A few terms can be slightly factored out of the 3x dim. >> Matrix([[a, b, c, d], [e, f, g, h], [i, j, k, l], [m, n, o, p]]).det() a*f*k*p - a*f*l*o - a*g*j*p + a*g*l*n + a*h*j*o - a*h*k*n - b*e*k*p + b*e*l*o + b*g*i*p - b*g*l*m - b*h*i*o + b*h*k*m + c*e*j*p - c*e*l*n - c*f*i*p + c*f*l*m + c*h*i*n - c*h*j*m - d*e*j*o + d*e*k*n + d*f*i*o - d*f*k*m - d*g*i*n + d*g*j*m 72 mult vs ~48 in cse'd version' Commented out - takes a few seconds >> #Matrix([[a, b, c, d, e], [f, g, h, i, j], [k, l, m, n, o], [p, q, r, s, t], [u, v, w, x, y]]).det() 260 multiplies with cse; 480 without it. ''' size = len(matrix) if size == 1: return matrix[0] elif size == 2: (a, b), (c, d) = matrix return a*d - c*b elif size == 3: (a, b, c), (d, e, f), (g, h, i) = matrix return a*(e*i - h*f) - d*(b*i - h*c) + g*(b*f - e*c) elif size == 4: (a, b, c, d), (e, f, g, h), (i, j, k, l), (m, n, o, p) = matrix return (a*f*k*p - a*f*l*o - a*g*j*p + a*g*l*n + a*h*j*o - a*h*k*n - b*e*k*p + b*e*l*o + b*g*i*p - b*g*l*m - b*h*i*o + b*h*k*m + c*e*j*p - c*e*l*n - c*f*i*p + c*f*l*m + c*h*i*n - c*h*j*m - d*e*j*o + d*e*k*n + d*f*i*o - d*f*k*m - d*g*i*n + d*g*j*m) elif size == 5: (a, b, c, d, e), (f, g, h, i, j), (k, l, m, n, o), (p, q, r, s, t), (u, v, w, x, y) = matrix x0 = s*y x1 = a*g*m x2 = t*w x3 = a*g*n x4 = r*x x5 = a*g*o x6 = t*x x7 = a*h*l x8 = q*y x9 = a*h*n x10 = s*v x11 = a*h*o x12 = r*y x13 = a*i*l x14 = t*v x15 = a*i*m x16 = q*w x17 = a*i*o x18 = s*w x19 = a*j*l x20 = q*x x21 = a*j*m x22 = r*v x23 = a*j*n x24 = b*f*m x25 = b*f*n x26 = b*f*o x27 = b*h*k x28 = t*u x29 = b*h*n x30 = p*x x31 = b*h*o x32 = b*i*k x33 = p*y x34 = b*i*m x35 = r*u x36 = b*i*o x37 = b*j*k x38 = s*u x39 = b*j*m x40 = p*w x41 = b*j*n x42 = c*f*l x43 = c*f*n x44 = c*f*o x45 = c*g*k x46 = c*g*n x47 = c*g*o x48 = c*i*k x49 = c*i*l x50 = p*v x51 = c*i*o x52 = c*j*k x53 = c*j*l x54 = q*u x55 = c*j*n x56 = d*f*l x57 = d*f*m x58 = d*f*o x59 = d*g*k x60 = d*g*m x61 = d*g*o x62 = d*h*k x63 = d*h*l x64 = d*h*o x65 = d*j*k x66 = d*j*l x67 = d*j*m x68 = e*f*l x69 = e*f*m x70 = e*f*n x71 = e*g*k x72 = e*g*m x73 = e*g*n x74 = e*h*k x75 = e*h*l x76 = e*h*n x77 = e*i*k x78 = e*i*l x79 = e*i*m return (x0*x1 - x0*x24 + x0*x27 + x0*x42 - x0*x45 - x0*x7 - x1*x6 + x10*x11 - x10*x21 - x10*x44 + x10*x52 + x10*x69 - x10*x74 - x11*x20 + x12*x13 + x12*x25 - x12*x3 - x12*x32 - x12*x56 + x12*x59 - x13*x2 + x14*x15 + x14*x43 - x14*x48 - x14*x57 + x14*x62 - x14*x9 - x15*x8 + x16*x17 - x16*x23 - x16*x58 + x16*x65 + x16*x70 - x16*x77 - x17*x22 + x18*x19 + x18*x26 - x18*x37 - x18*x5 - x18*x68 + x18*x71 - x19*x4 - x2*x25 + x2*x3 + x2*x32 + x2*x56 - x2*x59 + x20*x21 + x20*x44 - x20*x52 - x20*x69 + x20*x74 + x22*x23 + x22*x58 - x22*x65 - x22*x70 + x22*x77 + x24*x6 - x26*x4 - x27*x6 + x28*x29 - x28*x34 - x28*x46 + x28*x49 + x28*x60 - x28*x63 - x29*x33 + x30*x31 - x30*x39 - x30*x47 + x30*x53 + x30*x72 - x30*x75 - x31*x38 + x33*x34 + x33*x46 - x33*x49 - x33*x60 + x33*x63 + x35*x36 - x35*x41 - x35*x61 + x35*x66 + x35*x73 - x35*x78 - x36*x40 + x37*x4 + x38*x39 + x38*x47 - x38*x53 - x38*x72 + x38*x75 + x4*x5 + x4*x68 - x4*x71 + x40*x41 + x40*x61 - x40*x66 - x40*x73 + x40*x78 - x42*x6 - x43*x8 + x45*x6 + x48*x8 + x50*x51 - x50*x55 - x50*x64 + x50*x67 + x50*x76 - x50*x79 - x51*x54 + x54*x55 + x54*x64 - x54*x67 - x54*x76 + x54*x79 + x57*x8 + x6*x7 - x62*x8 + x8*x9) else: # TODO algorithm? import numpy as np return float(np.linalg.det(matrix)) def inv(matrix): ''' 5 has way too many multiplies. >> from sympy import * >> from sympy.abc import * >> Matrix([a]).inv() Matrix([[1/a]]) >> cse(Matrix([[a, b], [c, d]]).inv()) Matrix([ [1/a + b*c/(a**2*(d - b*c/a)), -b/(a*(d - b*c/a))], [ -c/(a*(d - b*c/a)), 1/(d - b*c/a)]]) >> m_3 = Matrix([[a, b, c], [d, e, f], [g, h, i]]) >> #cse(m_3.inv()) >> m_4 = Matrix([[a, b, c, d], [e, f, g, h], [i, j, k, l], [m, n, o, p]]) >> cse(m_4.inv()) # Note: for 3, 4 - forgot to generate code using optimizations='basic' ''' size = len(matrix) if size == 1: try: return [1.0/matrix[0]] except: return [1.0/matrix[0][0]] elif size == 2: try: (a, b), (c, d) = matrix x0 = 1.0/a x1 = b*x0 x2 = 1.0/(d - c*x1) x3 = c*x2 return [[x0 + b*x3*x0*x0, -x1*x2], [-x0*x3, x2]] except: return np.linalg.inv(matrix).tolist() elif size == 3: (a, b, c), (d, e, f), (g, h, i) = matrix x0 = 1./a x1 = b*d x2 = e - x0*x1 x3 = 1./x2 x4 = b*g x5 = h - x0*x4 x6 = x0*x3 x7 = d*x6 x8 = -g*x0 + x5*x7 x9 = c*d x10 = f - x0*x9 x11 = b*x6 x12 = c*x0 - x10*x11 x13 = a*e x14 = -x1 + x13 x15 = 1./(-a*f*h - c*e*g + f*x4 + h*x9 - i*x1 + i*x13) x16 = x14*x15 x17 = x12*x16 x18 = x14*x15*x3 x19 = x18*x5 x20 = x10*x18 return [[x0 - x17*x8 + x1*x3*x0*x0, -x11 + x12*x19, -x17], [-x20*x8 - x7, x10*x16*x5*x2**-2 + x3, -x20], [ x16*x8, -x19, x16]] elif size == 4: (a, b, c, d), (e, f, g, h), (i, j, k, l), (m, n, o, p) = matrix x0 = 1./a x1 = b*e x2 = f - x0*x1 x3 = 1./x2 x4 = i*x0 x5 = -b*x4 + j x6 = x0*x3 x7 = e*x6 x8 = -x4 + x5*x7 x9 = c*x0 x10 = -e*x9 + g x11 = b*x6 x12 = -x10*x11 + x9 x13 = a*f x14 = -x1 + x13 x15 = k*x13 x16 = b*g*i x17 = c*e*j x18 = a*g*j x19 = k*x1 x20 = c*f*i x21 = x15 + x16 + x17 - x18 - x19 - x20 x22 = 1/x21 x23 = x14*x22 x24 = x12*x23 x25 = m*x0 x26 = -b*x25 + n x27 = x26*x3 x28 = -m*x9 + o - x10*x27 x29 = x23*x8 x30 = -x25 + x26*x7 - x28*x29 x31 = d*x0 x32 = -e*x31 + h x33 = x3*x32 x34 = -i*x31 + l - x33*x5 x35 = -x11*x32 - x24*x34 + x31 x36 = a*n x37 = g*l x38 = h*o x39 = l*o x40 = b*m x41 = h*k x42 = c*l x43 = f*m x44 = c*h x45 = i*n x46 = d*k x47 = e*n x48 = d*o x49 = d*g x50 = j*m x51 = 1.0/(a*j*x38 - b*i*x38 - e*j*x48 + f*i*x48 + p*x15 + p*x16 + p*x17 - p*x18 - p*x19 - p*x20 + x1*x39 - x13*x39 + x36*x37 - x36*x41 - x37*x40 + x40*x41 + x42*x43 - x42*x47 - x43*x46 + x44*x45 - x44*x50 - x45*x49 + x46*x47 + x49*x50) x52 = x21*x51 x53 = x35*x52 x54 = x14*x22*x3 x55 = x5*x54 x56 = -x27 + x28*x55 x57 = x52*x56 x58 = x14*x51 x59 = x28*x58 x60 = x10*x54 x61 = x33 - x34*x60 x62 = x52*x61 x63 = x34*x58 return [[x0 - x24*x8 - x30*x53 + x1*x3*x0*x0, -x11 + x12*x55 - x35*x57, -x24 + x35*x59, -x53], [-x30*x62 - x60*x8 - x7, x10*x23*x5*x2**-2 + x3 - x56*x62, x59*x61 - x60, -x62], [x29 - x30*x63, -x55 - x56*x63, x14*x14*x22*x28*x34*x51 + x23, -x63], [x30*x52, x57, -x59, x52]] else: return inv_lu(matrix) # TODO algorithm? # import numpy as np # return np.linalg.inv(matrix).tolist() def eye(N): mat = [] for i in range(N): r = [0.0]*N r[i] = 1.0 mat.append(r) return mat def dot(a, b): try: ab = [sum([ri*bi for ri, bi in zip(row, b)]) for row in a] except: ab = [sum([ai*bi for ai, bi in zip(a, b)])] return ab def inner_product(a, b): tot = 0.0 for i in range(len(a)): tot += a[i]*b[i] return tot def inplace_LU(A, ipivot, N): Np1 = N+1 for j in range(1, Np1): for i in range(1, j): tot = A[i][j] for k in range(1, i): tot -= A[i][k]*A[k][j] A[i][j] = tot apiv = 0.0 for i in range(j, Np1): tot = A[i][j] for k in range(1, j): tot -= A[i][k]*A[k][j] A[i][j] = tot if apiv < abs(A[i][j]): apiv, ipiv = abs(A[i][j]), i if apiv == 0: raise ValueError("Singular matrix") ipivot[j] = ipiv if ipiv != j: for k in range(1, Np1): t = A[ipiv][k] A[ipiv][k] = A[j][k] A[j][k] = t Ajjinv = 1.0/A[j][j] for i in range(j+1, Np1): A[i][j] *= Ajjinv return None def solve_from_lu(A, pivots, b, N): Np1 = N + 1 # Note- list call is very slow faster to replace with [i for i in row] b = [0.0] + [i for i in b] #list(b) for i in range(1, Np1): tot = b[pivots[i]] b[pivots[i]] = b[i] for j in range(1, i): tot -= A[i][j]*b[j] b[i] = tot for i in range(N, 0, -1): tot = b[i] for j in range(i+1, Np1): tot -= A[i][j]*b[j] b[i] = tot/A[i][i] return b def solve_LU_decomposition(A, b): N = len(b) A_copy = [[0.0]*(N+1)] for row in A: # Note- list call is very slow faster to replace with [i for i in row] r = [0.0] + [i for i in row] # r = list(row) # r.insert(0, 0.0) A_copy.append(r) pivots = [0.0]*(N+1) inplace_LU(A_copy, pivots, N) return solve_from_lu(A_copy, pivots, b, N)[1:] def inv_lu(a): N = len(a) Np1 = N + 1 A_copy = [[0.0]*Np1] for row in a: # Note- list call is very slow faster to replace with [i for i in row] r = list(row) r.insert(0, 0.0) A_copy.append(r) a = A_copy ainv = [[0.0]*N for i in range(N)] pivots = [0]*Np1 inplace_LU(a, pivots, N) for j in range(N): b = [0.0]*N b[j] = 1.0 b = solve_from_lu(a, pivots, b, N)[1:] for i in range(N): ainv[i][j] = b[i] return ainv def solve(a, b): if len(a) > 4: if IS_PYPY or np is None: return solve_LU_decomposition(a, b) return np.linalg.solve(a, b).tolist() else: return dot(inv(a), b) def norm2(arr): tot = 0.0 for i in arr: tot += i*i return tot**0.5 def array_as_tridiagonals(arr): row_last = arr[0] a, b, c = [], [row_last[0]], [] for i in range(1, len(row_last)): row = arr[i] b.append(row[i]) c.append(row_last[i]) a.append(row[i-1]) row_last = row return a, b, c def tridiagonals_as_array(a, b, c, zero=0.0): N = len(b) arr = [[zero]*N for _ in range(N)] row_last = arr[0] row_last[0] = b[0] for i in range(1, N): row = arr[i] row[i] = b[i] # set the middle row back row[i-1] = a[i-1] row_last[i] = c[i-1] row_last = row return arr def solve_tridiagonal(a, b, c, d): b, d = [i for i in b], [i for i in d] N = len(d) for i in range(N - 1): m = a[i]/b[i] b[i+1] -= m*c[i] d[i+1] -= m*d[i] b[-1] = d[-1]/b[-1] for i in range(N-2, -1, -1): b[i] = (d[i] - c[i]*b[i+1])/b[i] return b def subset_matrix(whole, subset): if type(subset) is slice: subset = range(subset.start, subset.stop, subset.step) # N = len(subset) # new = [[None]*N for i in range(N)] # for ni, i in enumerate(subset): # for nj,j in enumerate(subset): # new[ni][nj] = whole[i][j] new = [] for i in subset: whole_i = whole[i] # r = [whole_i[j] for j in subset] # new.append(r) new.append([whole_i[j] for j in subset]) # r = [] # for j in subset: # r.append(whole_i[j]) return new fluids-0.1.78/fluids/numerics/__init__.py0000644000175000017500000024651713632560624017103 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2018 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import sin, exp, pi, fabs, copysign, log, isinf, acos, cos, sin import sys from sys import float_info from .arrays import solve as py_solve, inv, dot, norm2, inner_product, eye, array_as_tridiagonals, tridiagonals_as_array, solve_tridiagonal, subset_matrix from functools import wraps __all__ = ['isclose', 'horner', 'horner_and_der', 'horner_and_der2', 'horner_and_der3', 'chebval', 'interp', 'linspace', 'logspace', 'cumsum', 'diff', 'is_poly_negative', 'is_poly_positive', 'implementation_optimize_tck', 'tck_interp2d_linear', 'bisect', 'ridder', 'brenth', 'newton', 'secant', 'splev', 'bisplev', 'derivative', 'jacobian', 'hessian', 'normalize', 'oscillation_checker', 'IS_PYPY', 'roots_cubic', 'roots_quartic', 'newton_system', 'broyden2', 'lambertw', 'ellipe', 'gamma', 'gammaincc', 'erf', 'i1', 'i0', 'k1', 'k0', 'iv', 'numpy', 'polyint_over_x', 'horner_log', 'polyint', 'chebder', 'polyder', 'make_damp_initial', 'OscillationError', 'UnconvergedError', 'caching_decorator', 'NoSolutionError', 'damping_maintain_sign', 'oscillation_checking_wrapper', 'trunc_exp', 'trunc_log', 'fit_integral_linear_extrapolation', 'fit_integral_over_T_linear_extrapolation', 'best_fit_integral_value', 'best_fit_integral_over_T_value', 'evaluate_linear_fits', 'evaluate_linear_fits_d', 'evaluate_linear_fits_d2', 'best_bounding_bounds', 'newton_minimize', 'array_as_tridiagonals', 'tridiagonals_as_array', 'solve_tridiagonal', 'subset_matrix', 'assert_close', 'translate_bound_func', 'translate_bound_jac', 'translate_bound_f_jac', ] nan = float("nan") inf = float("inf") class FakePackage(object): pkg = None def __getattr__(self, name): raise ImportError('%s in not installed and required by this feature' %(self.pkg)) def __init__(self, pkg): self.pkg = pkg try: # The right way imports the platform module which costs to ms to load! # implementation = platform.python_implementation() IS_PYPY = 'PyPy' in sys.version except AttributeError: IS_PYPY = False try: # Regardless of actual interpreter, fall back to pure python implementations # if scipy and numpy are not available. import numpy import scipy except ImportError: # Allow a fake numpy to be imported, but will raise an excption on any use numpy = FakePackage('numpy') IS_PYPY = True np = numpy #IS_PYPY = True epsilon = float_info.epsilon one_epsilon_larger = 1.0 + float_info.epsilon one_epsilon_smaller = 1.0 - float_info.epsilon zero_epsilon_smaller = 1.0 - float_info.epsilon _iter = 100 _xtol = 1e-12 _rtol = float_info.epsilon*2.0 third = 1.0/3.0 sixth = 1.0/6.0 ninth = 1.0/9.0 twelfth = 1.0/12.0 two_thirds = 2.0/3.0 four_thirds = 4.0/3.0 root_three = (3.0)**0.5 one_27 = 1.0/27.0 complex_factor = 0.8660254037844386j # (sqrt(3)*0.5j) def trunc_exp(x, trunc=1e30): try: return exp(x) except OverflowError: # Really exp(709.7) 1.6549840276802644e+308 return trunc def trunc_log(x): try: return log(x) except ValueError as e: if x == 0: # -30 is like log(1e-14) but the real answer is ~log(1e-300) = -690.7 return -670.0 else: raise e from cmath import sqrt as csqrt def roots_cubic_a1(b, c, d): t1 = b*b t2 = t1*b t4 = c*b t9 = c*c t16 = d*d t19 = csqrt(12.0*t9*c + 12.0*t2*d - 54.0*t4*d - 3.0*t1*t9 + 81.0*t16) t22 = (-8.0*t2 + 36.0*t4 - 108.0*d + 12.0*t19)**third root1 = t22*sixth - 6.0*(c*third - t1*ninth)/t22 - b*third t28 = (c*third - t1*ninth)/t22 t101 = -t22*twelfth + 3.0*t28 - b*third t102 = root_three*(t22*sixth + 6.0*t28) root2 = t101 + 0.5j*t102 root3 = t101 - 0.5j*t102 return [root1, root2, root3] def roots_cubic_a2(a, b, c, d): t2 = a*a t3 = d*d t10 = c*c t14 = b*b t15 = t14*b t20 = csqrt(-18.0*a*b*c*d + 4.0*a*t10*c + 4.0*t15*d - t14*t10 + 27.0*t2*t3) t31 = (36.0*c*b*a + 12.0*root_three*t20*a - 108.0*d*t2 - 8.0*t15)**third t32 = 1.0/a root1 = t31*t32*sixth - two_thirds*(3.0*a*c - t14)*t32/t31 - b*t32*third t33 = t31*t32 t40 = (3.0*a*c - t14)*t32/t31 t50 = -t33*twelfth + t40*third - b*t32*third t51 = 0.5j*root_three *(t33*sixth + two_thirds*t40) root2 = t50 + t51 root3 = t50 - t51 return [root1, root2, root3] from math import sqrt def roots_cubic(a, b, c, d): r'''Cubic equation solver based on a variety of sources, algorithms, and numerical tools. It seems evident after some work that no analytical solution using floating points will ever have high-precision results for all cases of inputs. Some other solvers, such as NumPy's roots which uses eigenvalues derived using some BLAS, seem to provide bang-on answers for all values coefficients. However, they can be quite slow - and where possible there is still a need for analytical solutions to obtain 15-35x speed, such as when using PyPy. A particular focus of this routine is where a=1, b is a small number in the range -10 to 10 - a common occurence in cubic equations of state. Parameters ---------- a : float Coefficient of x^3, [-] b : float Coefficient of x^2, [-] c : float Coefficient of x, [-] d : float Added coefficient, [-] Returns ------- roots : tuple(float) The evaluated roots of the polynomial, 1 value when a and b are zero, two values when a is zero, and three otherwise, [-] Notes ----- For maximum speed, provide Python floats. Compare the speed with numpy via: %timeit roots_cubic(1.0, 100.0, 1000.0, 10.0) %timeit np.roots([1.0, 100.0, 1000.0, 10.0]) %timeit roots_cubic(1.0, 2.0, 3.0, 4.0) %timeit np.roots([1.0, 2.0, 3.0, 4.0]) The speed is ~15-35 times faster; or using PyPy, 240-370 times faster. Examples -------- >>> roots_cubic(1.0, 100.0, 1000.0, 10.0) (-0.010010019045111562, -88.73128838313305, -11.258701597821826) References ---------- .. [1] "Solving Cubic Equations." Accessed January 5, 2019. http://www.1728.org/cubic2.htm. ''' ''' Notes ----- Known issue is inputs that look like 1, -0.999999999978168, 1.698247818501352e-11, -8.47396642608142e-17 Errors grown unbound, starting when b is -.99999 and close to 1. ''' if b == 0.0 and a == 0.0: return (-d/c, ) elif a == 0.0: D = c*c - 4.0*b*d b_inv_2 = 0.5/b if D < 0.0: D = (-D)**0.5 x1 = (-c + D*1.0j)*b_inv_2 x2 = (-c - D*1.0j)*b_inv_2 else: D = D**0.5 x1 = (D - c)*b_inv_2 x2 = -(c + D)*b_inv_2 return (x1, x2) a_inv = 1.0/a a_inv2 = a_inv*a_inv bb = b*b '''Herbie modifications for f: c*a_inv - b_a*b_a*third ''' b_a = b*a_inv b_a2 = b_a*b_a f = c*a_inv - b_a2*third # f = (3.0*c*a_inv - bb*a_inv2)*third g = ((2.0*(bb*b) * a_inv2*a_inv) - (9.0*b*c)*(a_inv2) + (27.0*d*a_inv))*one_27 # g = (((2.0/(a/b))/((a/b) * (a/b)) + d*27.0/a) - (9.0/a*b)*c/a)/27.0 h = (0.25*(g*g) + (f*f*f)*one_27) # print(f, g, h) '''h has no savings on precicion - 0.4 error to 0.2. ''' # print(f, g, h, 'f, g, h') if h == 0.0 and g == 0.0 and f == 0.0: if d/a >= 0.0: x = -((d*a_inv)**(third)) else: x = (-d*a_inv)**(third) return (x, x, x) elif h > 0.0: # print('basic') # 1 real root, 2 imag root_h = h**0.5 R = -(0.5*g) + root_h if R >= 0.0: S = R**third else: S = -((-R)**third) T = -(0.5*g) - root_h if T >= 0.0: U = (T**(third)) else: U = -(((-T)**(third))) SU = S + U b_3a = b*(third*a_inv) t1 = -0.5*SU - b_3a t2 = (S - U)*complex_factor x1 = SU - b_3a # x1 is OK actually in some tests? the issue is x2, x3? x2 = t1 + t2 x3 = t1 - t2 else: # elif h <= 0.0: t2 = a*a t3 = d*d t10 = c*c t14 = b*b t15 = t14*b '''This method is inaccurate when choice_term is too small; but still more accurate than the other method. ''' choice_term = -18.0*a*b*c*d + 4.0*a*t10*c + 4.0*t15*d - t14*t10 + 27.0*t2*t3 if abs(choice_term) > 1e-12 or abs(b + 1.0) < 1e-7: # print('mine') t32 = 1.0/a t20 = csqrt(choice_term) t31 = (36.0*c*b*a + 12.0*root_three*t20*a - 108.0*d*t2 - 8.0*t15)**third t33 = t31*t32 t32_t31 = t32/t31 x1 = (t33*sixth - two_thirds*(3.0*a*c - t14)*t32_t31 - b*t32*third).real t40 = (3.0*a*c - t14)*t32_t31 t50 = -t33*twelfth + t40*third - b*t32*third t51 = 0.5j*root_three*(t33*sixth + two_thirds*t40) x2 = (t50 + t51).real x3 = (t50 - t51).real else: # print('other') # 3 real roots # example is going in here i = (((g*g)*0.25) - h)**0.5 j = i**third # There was a saving for j but it was very weird with if statements! '''Clamied nothing saved for k. ''' k = acos(-(g/(2.0*i))) L = -j # Would be nice to be able to compute the sin and cos at the same time k_third = k*third M = cos(k_third) N = root_three*sin(k_third) P = -b_a*third # Direct formula for x1 x1 = 2.0*j*M - b_a*third x2 = L*(M + N) + P x3 = L*(M - N) + P return (x1, x2, x3) def roots_quartic(a, b, c, d, e): # There is no divide by zero check. A should be 1 for best numerical results # Multiple order of magnitude differences still can cause problems # Like [1, 0.0016525874561771799, 106.8665062954208, 0.0032802613917246727, 0.16036091315844248] x0 = 1.0/a x1 = b*x0 x2 = -x1*0.25 x3 = c*x0 x4 = b*b*x0*x0 x5 = -two_thirds*x3 + 0.25*x4 x6 = x3 - 0.375*x4 x6_2 = x6*x6 x7 = x6_2*x6 x8 = d*x0 x9 = x1*(-0.5*x3 + 0.125*x4) x10 = (x8 + x9)*(x8 + x9) x11 = e*x0 x12 = x1*(x1*(-0.0625*x3 + 0.01171875*x4) + 0.25*x8) # 0.01171875 = 3/256 x13 = x6*(x11 - x12) x14 = -.125*x10 + x13*third - x7/108.0 x15 = 2.0*(x14 + 0.0j)**(third) x16 = csqrt(-x15 + x5) x17 = 0.5*x16 x18 = -x17 + x2 x19 = -four_thirds*x3 x20 = 0.5*x4 x21 = x15 + x19 + x20 x22 = 2.0*x8 + 2.0*x9 x23 = x22/x16 x24 = csqrt(x21 + x23)*0.5 x25 = -x11 + x12 - twelfth*x6_2 x27 = (0.0625*x10 - x13*sixth + x7/216.0 + csqrt(0.25*x14*x14 + one_27*x25*x25*x25))**(third) x28 = 2.0*x27 x29 = two_thirds*x25/(x27) x30 = csqrt(x28 - x29 + x5) x31 = 0.5*x30 x32 = x2 - x31 x33 = x19 + x20 - x28 + x29 x34 = x22/x30 x35 = csqrt(x33 + x34)*0.5 x36 = x17 + x2 x37 = csqrt(x21 - x23)*0.5 x38 = x2 + x31 x39 = csqrt(x33 - x34)*0.5 return ((x32 - x35), (x32 + x35), (x38 - x39), (x38 + x39)) def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None): '''Port of numpy's linspace to pure python. Does not support dtype, and returns lists of floats. ''' num = int(num) start = start * 1. stop = stop * 1. if num <= 0: return [] if endpoint: if num == 1: return [start] step = (stop-start)/float((num-1)) if num == 1: step = nan y = [start] for _ in range(num-2): y.append(y[-1] + step) y.append(stop) else: step = (stop-start)/float(num) if num == 1: step = nan y = [start] for _ in range(num-1): y.append(y[-1] + step) if retstep: return y, step else: return y def logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None): y = linspace(start, stop, num=num, endpoint=endpoint) for i in range(len(y)): y[i] = base**y[i] # return [base**yi for yi in y] return y def product(l): # Helper in some functions tot = 1.0 for i in l: tot *= i return tot def cumsum(a): # Does not support multiple dimensions sums = [a[0]] for i in a[1:]: sums.append(sums[-1] + i) return sums def diff(a, n=1, axis=-1): if n == 0: return a if n < 0: raise ValueError( "order must be non-negative but got %s" %(n)) # nd = 1 # hardcode diffs = [] for i in range(1, len(a)): delta = a[i] - a[i-1] diffs.append(delta) if n > 1: return diff(diffs, n-1) return diffs central_diff_weights_precomputed = { (1, 3): [-0.5, 0.0, 0.5], (1, 5): [0.08333333333333333, -0.6666666666666666, 0.0, 0.6666666666666666, -0.08333333333333333], (1, 7): [-0.016666666666666666, 0.15, -0.75, 0.0, 0.75, -0.15, 0.016666666666666666], (1, 9): [0.0035714285714285713, -0.0380952380952381, 0.2, -0.8, 0.0, 0.8, -0.2, 0.0380952380952381, -0.0035714285714285713], (1, 11): [-0.0007936507936507937, 0.00992063492063492, -0.05952380952380952, 0.23809523809523808, -0.8333333333333334, 0.0, 0.8333333333333334, -0.23809523809523808, 0.05952380952380952, -0.00992063492063492, 0.0007936507936507937], (1, 13): [0.00018037518037518038, -0.0025974025974025974, 0.017857142857142856, -0.07936507936507936, 0.26785714285714285, -0.8571428571428571, 0.0, 0.8571428571428571, -0.26785714285714285, 0.07936507936507936, -0.017857142857142856, 0.0025974025974025974, -0.00018037518037518038], (1, 15): [-4.1625041625041625e-05, 0.0006798756798756799, -0.005303030303030303, 0.026515151515151516, -0.09722222222222222, 0.2916666666666667, -0.875, 0.0, 0.875, -0.2916666666666667, 0.09722222222222222, -0.026515151515151516, 0.005303030303030303, -0.0006798756798756799, 4.1625041625041625e-05], (1, 17): [9.712509712509713e-06, -0.0001776001776001776, 0.001554001554001554, -0.008702408702408702, 0.03535353535353535, -0.11313131313131314, 0.3111111111111111, -0.8888888888888888, 0.0, 0.8888888888888888, -0.3111111111111111, 0.11313131313131314, -0.03535353535353535, 0.008702408702408702, -0.001554001554001554, 0.0001776001776001776, -9.712509712509713e-06], (1, 19): [-2.285296402943462e-06, 4.6277252159605104e-05, -0.00044955044955044955, 0.002797202797202797, -0.012587412587412588, 0.044055944055944055, -0.12727272727272726, 0.32727272727272727, -0.9, 0.0, 0.9, -0.32727272727272727, 0.12727272727272726, -0.044055944055944055, 0.012587412587412588, -0.002797202797202797, 0.00044955044955044955, -4.6277252159605104e-05, 2.285296402943462e-06], (2, 3): [1.0, -2.0, 1.0], (2, 5): [-0.08333333333333333, 1.3333333333333333, -2.5, 1.3333333333333333, -0.08333333333333333], (2, 7): [0.011111111111111112, -0.15, 1.5, -2.7222222222222223, 1.5, -0.15, 0.011111111111111112], (2, 9): [-0.0017857142857142857, 0.025396825396825397, -0.2, 1.6, -2.8472222222222223, 1.6, -0.2, 0.025396825396825397, -0.0017857142857142857], (2, 11): [0.00031746031746031746, -0.00496031746031746, 0.03968253968253968, -0.23809523809523808, 1.6666666666666667, -2.9272222222222224, 1.6666666666666667, -0.23809523809523808, 0.03968253968253968, -0.00496031746031746, 0.00031746031746031746], (2, 13): [-6.012506012506013e-05, 0.001038961038961039, -0.008928571428571428, 0.05291005291005291, -0.26785714285714285, 1.7142857142857142, -2.9827777777777778, 1.7142857142857142, -0.26785714285714285, 0.05291005291005291, -0.008928571428571428, 0.001038961038961039, -6.012506012506013e-05], (2, 15): [1.1892869035726179e-05, -0.00022662522662522663, 0.0021212121212121214, -0.013257575757575758, 0.06481481481481481, -0.2916666666666667, 1.75, -3.02359410430839, 1.75, -0.2916666666666667, 0.06481481481481481, -0.013257575757575758, 0.0021212121212121214, -0.00022662522662522663, 1.1892869035726179e-05], (2, 17): [-2.428127428127428e-06, 5.074290788576503e-05, -0.000518000518000518, 0.003480963480963481, -0.017676767676767676, 0.07542087542087542, -0.3111111111111111, 1.7777777777777777, -3.05484410430839, 1.7777777777777777, -0.3111111111111111, 0.07542087542087542, -0.017676767676767676, 0.003480963480963481, -0.000518000518000518, 5.074290788576503e-05, -2.428127428127428e-06], (2, 19): [5.078436450985471e-07, -1.1569313039901276e-05, 0.00012844298558584272, -0.0009324009324009324, 0.005034965034965035, -0.022027972027972027, 0.08484848484848485, -0.32727272727272727, 1.8, -3.0795354623330815, 1.8, -0.32727272727272727, 0.08484848484848485, -0.022027972027972027, 0.005034965034965035, -0.0009324009324009324, 0.00012844298558584272, -1.1569313039901276e-05, 5.078436450985471e-07], (3, 5): [-0.5, 1.0, 0.0, -1.0, 0.5], (3, 7): [0.125, -1.0, 1.625, 0.0, -1.625, 1.0, -0.125], (3, 9): [-0.029166666666666667, 0.30000000000000004, -1.4083333333333332, 2.033333333333333, 0.0, -2.033333333333333, 1.4083333333333332, -0.30000000000000004, 0.029166666666666667], (3, 11): [0.006779100529100529, -0.08339947089947089, 0.48303571428571435, -1.7337301587301588, 2.3180555555555555, 0.0, -2.3180555555555555, 1.7337301587301588, -0.48303571428571435, 0.08339947089947089, -0.006779100529100529], (3, 13): [-0.0015839947089947089, 0.02261904761904762, -0.1530952380952381, 0.6572751322751322, -1.9950892857142857, 2.527142857142857, 0.0, -2.527142857142857, 1.9950892857142857, -0.6572751322751322, 0.1530952380952381, -0.02261904761904762, 0.0015839947089947089], (3, 15): [0.0003724747474747475, -0.006053691678691679, 0.04682990620490621, -0.2305699855699856, 0.8170667989417989, -2.2081448412698412, 2.6869345238095237, 0.0, -2.6869345238095237, 2.2081448412698412, -0.8170667989417989, 0.2305699855699856, -0.04682990620490621, 0.006053691678691679, -0.0003724747474747475], (3, 17): [-8.810006131434702e-05, 0.0016058756058756059, -0.013982697196982911, 0.07766492766492766, -0.31074104136604136, 0.9613746993746994, -2.384521164021164, 2.81291761148904, 0.0, -2.81291761148904, 2.384521164021164, -0.9613746993746994, 0.31074104136604136, -0.07766492766492766, 0.013982697196982911, -0.0016058756058756059, 8.810006131434702e-05], (3, 19): [2.0943672729387014e-05, -0.00042319882498453924, 0.00409817266067266, -0.025376055161769447, 0.11326917130488559, -0.3904945471195471, 1.0909741462241462, -2.532634817563389, 2.9147457482993198, 0.0, -2.9147457482993198, 2.532634817563389, -1.0909741462241462, 0.3904945471195471, -0.11326917130488559, 0.025376055161769447, -0.00409817266067266, 0.00042319882498453924, -2.0943672729387014e-05], (4, 5): [1.0, -4.0, 6.0, -4.0, 1.0], (4, 7): [-0.16666666666666666, 2.0, -6.5, 9.333333333333334, -6.5, 2.0, -0.16666666666666666], (4, 9): [0.029166666666666667, -0.4, 2.8166666666666664, -8.133333333333333, 11.375, -8.133333333333333, 2.8166666666666664, -0.4, 0.029166666666666667], (4, 11): [-0.005423280423280424, 0.08339947089947089, -0.644047619047619, 3.4674603174603176, -9.272222222222222, 12.741666666666665, -9.272222222222222, 3.4674603174603176, -0.644047619047619, 0.08339947089947089, -0.005423280423280424], (4, 13): [0.0010559964726631393, -0.018095238095238095, 0.1530952380952381, -0.8763668430335096, 3.9901785714285714, -10.108571428571429, 13.717407407407407, -10.108571428571429, 3.9901785714285714, -0.8763668430335096, 0.1530952380952381, -0.018095238095238095, 0.0010559964726631393], (5, 7): [-0.5, 2.0, -2.5, 0.0, 2.5, -2.0, 0.5], (5, 9): [0.16666666666666669, -1.5, 4.333333333333333, -4.833333333333334, 0.0, 4.833333333333334, -4.333333333333333, 1.5, -0.16666666666666669], (5, 11): [-0.04513888888888889, 0.5277777777777778, -2.71875, 6.5, -6.729166666666667, 0.0, 6.729166666666667, -6.5, 2.71875, -0.5277777777777778, 0.04513888888888889], (5, 13): [0.011491402116402117, -0.16005291005291006, 1.033399470899471, -3.9828042328042326, 8.39608134920635, -8.246031746031747, 0.0, 8.246031746031747, -8.39608134920635, 3.9828042328042326, -1.033399470899471, 0.16005291005291006, -0.011491402116402117] } def central_diff_weights(points, divisions=1): # Check the cache if (divisions, points) in central_diff_weights_precomputed: return central_diff_weights_precomputed[(divisions, points)] if points < divisions + 1: raise ValueError("Points < divisions + 1, cannot compute") if points % 2 == 0: raise ValueError("Odd number of points required") ho = points >> 1 x = [[xi] for xi in range(-ho, ho+1)] X = [] for xi in x: line = [1.0] + [xi[0]**k for k in range(1, points)] X.append(line) factor = product(range(1, divisions + 1)) # from scipy.linalg import inv from sympy import Matrix # The above coefficients were generated from a routine which used Fractions # Additional coefficients cannot reliable be computed with numpy or floating # point numbers - the error is too great # sympy must be used for reliability inverted = [[float(j) for j in i] for i in Matrix(X).inv().tolist()] w = [i*factor for i in inverted[divisions]] # w = [i*factor for i in (inv(X)[divisions]).tolist()] central_diff_weights_precomputed[(divisions, points)] = w return w def derivative(func, x0, dx=1.0, n=1, args=(), order=3, scalar=True): '''Reimplementation of SciPy's derivative function, with more cached coefficients and without using numpy. If new coefficients not cached are needed, they are only calculated once and are remembered. Support for vector value functions has also been added. ''' if order < n + 1: raise ValueError if order % 2 == 0: raise ValueError weights = central_diff_weights(order, n) ho = order >> 1 denominator = 1.0/product([dx]*n) if scalar: tot = 0.0 for k in range(order): if weights[k] != 0.0: tot += weights[k]*func(x0 + (k - ho)*dx, *args) return tot*denominator else: numerators = None for k in range(order): f = func(x0 + (k - ho)*dx, *args) if numerators is None: N = len(f) numerators = [0.0]*N for i in range(N): numerators[i] += weights[k]*f[i] return [num*denominator for num in numerators] def jacobian(f, x0, scalar=True, perturbation=1e-9, zero_offset=1e-7, args=(), **kwargs): ''' def test_fun(x): # test case - 2 inputs, 3 outputs - should work fine x2 = x[0]*x[0] return np.array([x2*exp(x[1]), x2*sin(x[1]), x2*cos(x[1])]) def easy_fun(x): x = x[0] return 5*x*x - 3*x - 100 ''' # For scalar - returns list, size of input variables # For vector - returns list of list - size of input variables * output variables # Could add backwards/complex, multiple evaluations, detection of poor condition # types and limits base = f(x0, *args, **kwargs) x = list(x0) nx = len(x0) gradient = [] for i in range(nx): delta = x0[i]*(perturbation) if delta == 0: delta = zero_offset x[i] += delta point = f(x, *args, **kwargs) if scalar: dy = (point - base)/delta gradient.append(dy) else: delta_inv = 1.0/delta dys = [delta_inv*(p - b) for p, b in zip(point, base)] gradient.append(dys) x[i] -= delta if not scalar: # Transpose to be in standard form return list(map(list, zip(*gradient))) return gradient def hessian(f, x0, scalar=True, perturbation=1e-9, zero_offset=1e-7, full=True, args=(), **kwargs): # Takes n**2/2 + 3*n/2 + 1 function evaluations! Can still be quite fast. # For scalar - returns list[list], size of input variables # For vector - returns list of list of list - size of input variables * input variables * output variables # Could add backwards/complex, multiple evaluations, detection of poor condition # types and limits, jacobian as output, fevals base = f(x0, *args, **kwargs) nx = len(x0) if not isinstance(base, (float, int, complex)): try: ny = len(base) except: ny = 1 else: ny = 1 deltas = [] for i in range(nx): delta = x0[i]*(perturbation) if delta == 0.0: delta = zero_offset deltas.append(delta) deltas_inv = [1.0/di for di in deltas] x_perturb = list(x0) fs_perturb_i = [] for i in range(nx): x_perturb[i] += deltas[i] f_perturb_i = f(x_perturb, *args, **kwargs) fs_perturb_i.append(f_perturb_i) x_perturb[i] -= deltas[i] if full: hessian = [[None]*nx for _ in range(nx)] else: hessian = [] for i in range(nx): if not full: row = [] f_perturb_i = fs_perturb_i[i] x_perturb[i] += deltas[i] for j in range(i+1): f_perturb_j = fs_perturb_i[j] x_perturb[j] += deltas[j] f_perturb_ij = f(x_perturb, *args, **kwargs) if scalar: dii0 = (f_perturb_i - base)*deltas_inv[i] dii1 = (f_perturb_ij - f_perturb_j)*deltas_inv[i] dij = (dii1 - dii0)*deltas_inv[j] else: # dii0s = [(fi - bi)*deltas_inv[i] for fi, bi in zip(f_perturb_i, base)] # dii1s = [(fij - fj)*deltas_inv[i] for fij, fj in zip(f_perturb_ij, f_perturb_j)] # dij = [(di1 - di0)*deltas_inv[j] for di1, di0 in zip(dii1s, dii0s)] # Saves a good amount of time dij = [((f_perturb_ij[m] - f_perturb_j[m]) - (f_perturb_i[m] - base[m]))*deltas_inv[j]*deltas_inv[i] for m in range(ny)] if not full: row.append(dij) else: hessian[i][j] = hessian[j][i] = dij x_perturb[j] -= deltas[j] if not full: hessian.append(row) x_perturb[i] -= deltas[i] return hessian def horner(coeffs, x): r'''Evaluates a polynomial defined by coefficienfs `coeffs` at a specified scalar `x` value, using the horner method. This is the most efficient formula to evaluate a polynomial (assuming non-zero coefficients for all terms). This has been added to the `fluids` library because of the need to frequently evaluate polynomials; and `NumPy`'s polyval is actually quite slow for scalar values. Note that the coefficients are reversed compared to the common form; the first value is the coefficient of the highest-powered x term, and the last value in `coeffs` is the constant offset value. Parameters ---------- coeffs : iterable[float] Coefficients of polynomial, [-] x : float Point at which to evaluate the polynomial, [-] Returns ------- val : float The evaluated value of the polynomial, [-] Notes ----- For maximum speed, provide a list of Python floats and `x` should also be of type `float` to avoid either `NumPy` types or slow python ints. Compare the speed with numpy via: >>> coeffs = np.random.uniform(0, 1, size=15) >>> coeffs_list = coeffs.tolist() %timeit np.polyval(coeffs, 10.0) `np.polyval` takes on the order of 15 us; `horner`, 1 us. Examples -------- >>> horner([1.0, 3.0], 2.0) 5.0 >>> horner([21.24288737657324, -31.326919865992743, 23.490607246508382, -14.318875366457021, 6.993092901276407, -2.6446094897570775, 0.7629439408284319, -0.16825320656035953, 0.02866101768198035, -0.0038190069303978003, 0.0004027586707189051, -3.394447111198843e-05, 2.302586717011523e-06, -1.2627393196517083e-07, 5.607585274731649e-09, -2.013760843818914e-10, 5.819957519561292e-12, -1.3414794055766234e-13, 2.430101267966631e-15, -3.381444175898971e-17, 3.4861255675373234e-19, -2.5070616549039004e-21, 1.122234904781319e-23, -2.3532795334141448e-26], 300.0) 1.9900667478569642e+58 References ---------- .. [1] "Horner’s Method." Wikipedia, October 6, 2018. https://en.wikipedia.org/w/index.php?title=Horner%27s_method&oldid=862709437. ''' tot = 0.0 for c in coeffs: tot = tot*x + c return tot def horner_and_der(coeffs, x): # Coefficients in same order as for horner f = 0.0 der = 0.0 for a in coeffs: der = x*der + f f = x*f + a return (f, der) def horner_and_der2(coeffs, x): # Coefficients in same order as for horner f, der, der2 = 0.0, 0.0, 0.0 for a in coeffs: der2 = x*der2 + der der = x*der + f f = x*f + a return (f, der, der2 + der2) def horner_and_der3(coeffs, x): # Coefficients in same order as for horner # Tested f, der, der2, der3 = 0.0, 0.0, 0.0, 0.0 for a in coeffs: der3 = x*der3 + der2 der2 = x*der2 + der der = x*der + f f = x*f + a return (f, der, der2 + der2, der3*6.0) def is_poly_positive(poly, domain=None, rand_pts=10, j_tol=1e-12, root_perturb=1e-12): # Returns True if positive everywhere in the specified domain (or globally) if domain is None: # 1e-100 to 1e100 pts = logspace(-100, 100, rand_pts//2) pts += [-i for i in pts] else: pts = linspace(domain[0], domain[1], rand_pts) for p in pts: if horner(poly, p) < 0.0: return False roots = np.roots(poly) for root in roots: r = root.real if abs(root.imag/r) < j_tol: if (domain is not None) and (r < domain[0] or r > domain[1]): continue eps_high, eps_low = r*(1.0 + root_perturb), r*(1.0 - root_perturb) if horner(poly, eps_high) < 0: return False if horner(poly, eps_low) < 0: return False return True def is_poly_negative(poly, domain=None, rand_pts=10, j_tol=1e-12, root_perturb=1e-12): # Returns True if negative everywhere in the specified domain (or globally) poly = [-i for i in poly]# Changes the sign of all polynomial calculated values return is_poly_positive(poly, domain=domain, rand_pts=rand_pts, j_tol=j_tol, root_perturb=root_perturb) def polyder(c, m=1, scl=1, axis=0): '''not quite a copy of numpy's version because this was faster to implement. ''' c = list(c) cnt = int(m) if cnt == 0: return c n = len(c) if cnt >= n: c = c[:1]*0 else: for i in range(cnt): n = n - 1 c *= scl der = [0.0 for _ in range(n)] for j in range(n, 0, -1): der[j - 1] = j*c[j] c = der return c def polyint(coeffs): '''not quite a copy of numpy's version because this was faster to implement''' return ([0.0] + [c/(i+1) for i, c in enumerate(coeffs[::-1])])[::-1] def polyint_over_x(coeffs): coeffs = coeffs[::-1] log_coef = coeffs[0] poly_terms = [0.0] for i in range(1, len(coeffs)): poly_terms.append(coeffs[i]/i) return list(reversed(poly_terms)), log_coef def chebder(c, m=1, scl=1): '''not quite a copy of numpy's version because this was faster to implement''' c = list(c) cnt = int(m) if cnt == 0: return c n = len(c) if cnt >= n: c = c[:1]*0 else: for i in range(cnt): n = n - 1 c *= scl der = [0.0 for _ in range(n)] for j in range(n, 2, -1): der[j - 1] = (j + j)*c[j] c[j - 2] += (j*c[j])/(j - 2.0) if n > 1: der[1] = 4.0*c[2] der[0] = c[1] c = der return c def horner_log(coeffs, log_coeff, x): '''Technically possible to save one addition of the last term of coeffs is removed but benchmarks said nothing was saved''' tot = 0.0 for c in coeffs: tot = tot*x + c return tot + log_coeff*log(x) def fit_integral_linear_extrapolation(T1, T2, int_coeffs, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope): # Order T1, T2 so T2 is always larger for simplicity flip = T1 > T2 if flip: T1, T2 = T2, T1 tot = 0.0 if T1 < Tmin: T2_low = T2 if T2 < Tmin else Tmin x1 = Tmin_value - Tmin_slope*Tmin tot += T2_low*(0.5*Tmin_slope*T2_low + x1) - T1*(0.5*Tmin_slope*T1 + x1) if (Tmin <= T1 <= Tmax) or (Tmin <= T2 <= Tmax) or (T1 <= Tmin and T2 >= Tmax): T1_mid = T1 if T1 > Tmin else Tmin T2_mid = T2 if T2 < Tmax else Tmax tot += (horner(int_coeffs, T2_mid) - horner(int_coeffs, T1_mid)) if T2 > Tmax: T1_high = T1 if T1 > Tmax else Tmax x1 = Tmax_value - Tmax_slope*Tmax tot += T2*(0.5*Tmax_slope*T2 + x1) - T1_high*(0.5*Tmax_slope*T1_high + x1) if flip: return -tot return tot def best_fit_integral_value(T, int_coeffs, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope): # Can still save 1 horner evaluation (all of them for hight T), but will be VERY messy. if T < Tmin: x1 = Tmin_value - Tmin_slope*Tmin tot = T*(0.5*Tmin_slope*T + x1) return tot if (Tmin <= T <= Tmax): tot1 = horner(int_coeffs, T) - horner(int_coeffs, Tmin) x1 = Tmin_value - Tmin_slope*Tmin tot = Tmin*(0.5*Tmin_slope*Tmin + x1) return tot + tot1 else: x1 = Tmin_value - Tmin_slope*Tmin tot = Tmin*(0.5*Tmin_slope*Tmin + x1) tot1 = horner(int_coeffs, Tmax) - horner(int_coeffs, Tmin) x1 = Tmax_value - Tmax_slope*Tmax tot2 = T*(0.5*Tmax_slope*T + x1) - Tmax*(0.5*Tmax_slope*Tmax + x1) return tot1 + tot + tot2 def fit_integral_over_T_linear_extrapolation(T1, T2, T_int_T_coeffs, best_fit_log_coeff, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope): # Order T1, T2 so T2 is always larger for simplicity flip = T1 > T2 if flip: T1, T2 = T2, T1 tot = 0.0 if T1 < Tmin: T2_low = T2 if T2 < Tmin else Tmin x1 = Tmin_value - Tmin_slope*Tmin tot += (Tmin_slope*T2_low + x1*log(T2_low)) - (Tmin_slope*T1 + x1*log(T1)) if (Tmin <= T1 <= Tmax) or (Tmin <= T2 <= Tmax) or (T1 <= Tmin and T2 >= Tmax): T1_mid = T1 if T1 > Tmin else Tmin T2_mid = T2 if T2 < Tmax else Tmax tot += (horner_log(T_int_T_coeffs, best_fit_log_coeff, T2_mid) - horner_log(T_int_T_coeffs, best_fit_log_coeff, T1_mid)) if T2 > Tmax: T1_high = T1 if T1 > Tmax else Tmax x1 = Tmax_value - Tmax_slope*Tmax tot += (Tmax_slope*T2 + x1*log(T2)) - (Tmax_slope*T1_high + x1*log(T1_high)) if flip: return -tot return tot def best_fit_integral_over_T_value(T, T_int_T_coeffs, best_fit_log_coeff, Tmin, Tmax, Tmin_value, Tmax_value, Tmin_slope, Tmax_slope): if T < Tmin: x1 = Tmin_value - Tmin_slope*Tmin tot = (Tmin_slope*T + x1*log(T)) return tot if (Tmin <= T <= Tmax): tot1 = (horner_log(T_int_T_coeffs, best_fit_log_coeff, T) - horner_log(T_int_T_coeffs, best_fit_log_coeff, Tmin)) x1 = Tmin_value - Tmin_slope*Tmin tot = (Tmin_slope*Tmin + x1*log(Tmin)) return tot + tot1 else: x1 = Tmin_value - Tmin_slope*Tmin tot = (Tmin_slope*Tmin + x1*log(Tmin)) tot1 = (horner_log(T_int_T_coeffs, best_fit_log_coeff, Tmax) - horner_log(T_int_T_coeffs, best_fit_log_coeff, Tmin)) x2 = Tmax_value -Tmax*Tmax_slope tot2 = (-Tmax_slope*(Tmax - T) + x2*log(T) - x2*log(Tmax)) return tot1 + tot + tot2 def evaluate_linear_fits(data, x): calc = [] low_limits, high_limits, coeffs = data[0], data[3], data[6] for i in range(len(data[0])): if x < low_limits[i]: v = (x - low_limits[i])*data[1][i] + data[2][i] elif x > high_limits[i]: v = (x - high_limits[i])*data[4][i] + data[5][i] else: v = 0.0 for c in coeffs[i]: v = v*x + c # v = horner(coeffs[i], x) calc.append(v) return calc def evaluate_linear_fits_d(data, x): calc = [] low_limits, high_limits, dcoeffs = data[0], data[3], data[7] for i in range(len(data[0])): if x < low_limits[i]: dv = data[1][i] elif x > high_limits[i]: dv = data[4][i] else: dv = 0.0 for c in dcoeffs[i]: dv = dv*x + c calc.append(dv) return calc def evaluate_linear_fits_d2(data, x): calc = [] low_limits, high_limits, d2coeffs = data[0], data[3], data[8] for i in range(len(data[0])): d2v = 0.0 if low_limits[i] < x < high_limits[i]: for c in d2coeffs[i]: d2v = d2v*x + c calc.append(d2v) return calc def chebval(x, c): # Pure Python implementation of numpy.polynomial.chebyshev.chebval # This routine is faster in CPython as well as PyPy len_c = len(c) if len_c == 1: c0, c1 = c[0], 0.0 elif len_c == 2: c0, c1 = c[0], c[1] else: x2 = 2.0*x c0, c1 = c[-2], c[-1] for i in range(3, len_c + 1): c0_prev = c0 c0 = c[-i] - c1 c1 = c0_prev + c1*x2 return c0 + c1*x def binary_search(key, arr, size=None): if size is None: size = len(arr) imin = 0 imax = size if key > arr[size - 1]: return size while imin < imax: imid = imin + ((imax - imin) >> 1) if key >= arr[imid]: imin = imid + 1 else: imax = imid return imin - 1 def isclose(a, b, rel_tol=1e-9, abs_tol=0.0): '''Pure python and therefore slow version of the standard library isclose. Works on older versions of python though! Hasn't been unit tested, but has been tested. manual unit testing: from math import isclose as isclose2 from random import uniform for i in range(10000000): a = uniform(-1, 1) b = uniform(-1, 1) rel_tol = uniform(0, 1) abs_tol = uniform(0, .001) ans1 = isclose(a, b, rel_tol, abs_tol) ans2 = isclose2(a, b, rel_tol=rel_tol, abs_tol=abs_tol) try: assert ans1 == ans2 except: print(a, b, rel_tol, abs_tol) ''' if (rel_tol < 0.0 or abs_tol < 0.0 ): raise ValueError('Negative tolerances') if ((a.real == b.real) and (a.imag == b.imag)): return True if (isinf(a.real) or isinf(a.imag) or isinf(b.real) or isinf(b.imag)): return False diff = abs(a - b) return (((diff <= rel_tol*abs(b)) or (diff <= rel_tol*abs(a))) or (diff <= abs_tol)) try: from math import isclose except ImportError: pass def assert_close(a, b, rtol=1e-7, atol=0.0): try: assert isclose(a, b, rel_tol=rtol, abs_tol=atol) except: from numpy.testing import assert_allclose return assert_allclose(a, b, rtol=rtol, atol=atol) def interp(x, dx, dy, left=None, right=None): '''One-dimensional linear interpolation routine inspired/ reimplemented from NumPy for extra speed for scalar values (and also numpy). Returns the one-dimensional piecewise linear interpolant to a function with a given value at discrete data-points. Parameters ---------- x : float X-coordinate of the interpolated values, [-] dx : list[float] X-coordinates of the data points, must be increasing, [-] dy : list[float] Y-coordinates of the data points; same length as `dx`, [-] left : float, optional Value to return for `x < dx[0]`, default is `dy[0]`, [-] right : float, optional Value to return for `x > dx[-1]`, default is `dy[-1]`, [-] Returns ------- y : float The interpolated value, [-] Notes ----- This function is "unsafe" in that it assumes the x-coordinates are increasing. It also does not check for nan's, that `dx` and `dy` are the same length, and that `x` is scalar. Performance is 40-50% of that of NumPy under CPython. Examples -------- >>> interp(2.5, [1, 2, 3], [3, 2, 0]) 1.0 ''' lendx = len(dx) j = binary_search(x, dx, lendx) if (j == -1): if left is not None: return left else: return dy[0] elif (j == lendx - 1): return dy[j] elif (j == lendx): if right is not None: return right else: return dy[-1] else: return (dy[j + 1] - dy[j])/(dx[j + 1] - dx[j])*(x - dx[j]) + dy[j] def implementation_optimize_tck(tck): '''Converts 1-d or 2-d splines calculated with SciPy's `splrep` or `bisplrep` to a format for fastest computation - lists in PyPy, and numpy arrays otherwise. Only implemented for 3 and 5 length `tck`s. ''' if IS_PYPY: return tck else: if len(tck) == 3: tck[0] = np.array(tck[0]) tck[1] = np.array(tck[1]) elif len(tck) == 5: tck[0] = np.array(tck[0]) tck[1] = np.array(tck[1]) tck[2] = np.array(tck[2]) else: raise NotImplementedError return tck def tck_interp2d_linear(x, y, z, kx=1, ky=1): if kx != 1 or ky != 1: raise ValueError("Only linear formulations are currently implemented") # copy is not a method of lists in python 2 x = list(x) x.insert(0, x[0]) x.append(x[-1]) y = list(y) y.insert(0, y[0]) y.append(y[-1]) # c needs to be transposed, and made 1d c = [z[j][i] for i in range(len(z[0])) for j in range(len(z))] tck = [x, y, c, 1, 1] return implementation_optimize_tck(tck) def caching_decorator(f, full=False): cache = {} info_cache = {} @wraps(f) def wrapper(x, *args, **kwargs): has_info = 'info' in kwargs if x in cache: if 'info' in kwargs: kwargs['info'][:] = info_cache[x] return cache[x] err = f(x, *args, **kwargs) cache[x] = err if has_info: info_cache[x] = list(kwargs['info']) return err if full: return wrapper, cache, info_cache return wrapper def translate_bound_func(func, bounds=None, low=None, high=None): if bounds is not None: low = [i[0] for i in bounds] high = [i[1] for i in bounds] def new_f(x): '''Function for a solver to call when using the bounded variables.''' x = [float(i) for i in x] for i in range(len(x)): x[i] = (low[i] + (high[i] - low[i])/(1.0 + exp(-x[i]))) # Return the actual results return func(x) def translate_into(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = -log((high[i] - x[i])/(x[i] - low[i])) return x def translate_outof(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = (low[i] + (high[i] - low[i])/(1.0 + exp(-x[i]))) return x return new_f, translate_into, translate_outof def translate_bound_jac(jac, bounds=None, low=None, high=None): if bounds is not None: low = [i[0] for i in bounds] high = [i[1] for i in bounds] def new_j(x): x_base = [float(i) for i in x] N = len(x) for i in range(N): x_base[i] = (low[i] + (high[i] - low[i])/(1.0 + exp(-x[i]))) jac_base = jac(x_base) try: jac_base = [i for i in jac_base] for i in range(N): v = (high[i] - low[i])*exp(-x[i])*jac_base[i] v *= (1.0 + exp(-x[i]))**-2 jac_base[i] = v return jac_base except: raise NotImplementedError("Fail") def translate_into(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = -log((high[i] - x[i])/(x[i] - low[i])) return x def translate_outof(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = (low[i] + (high[i] - low[i])/(1.0 + exp(-x[i]))) return x return new_j, translate_into, translate_outof def translate_bound_f_jac(f, jac, bounds=None, low=None, high=None, inplace_jac=False, as_np=False): if bounds is not None: low = [i[0] for i in bounds] high = [i[1] for i in bounds] exp_terms = [0.0]*len(low) def new_f_j(x): x_base = [float(i) for i in x] N = len(x) for i in range(N): exp_terms[i] = ei = exp(-x[i]) x_base[i] = (low[i] + (high[i] - low[i])/(1.0 + ei)) if jac is True: f_base, jac_base = f(x_base) else: f_base = f(x_base) jac_base = jac(x_base) try: if not inplace_jac: jac_base = [i for i in jac_base] for i in range(N): t = (1.0 + exp_terms[i]) jac_base[i] = (high[i] - low[i])*exp_terms[i]*jac_base[i]/(t*t) if as_np: jac_base = np.array(jac_base) return f_base, jac_base except: raise NotImplementedError("Fail") def translate_into(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = -log((high[i] - x[i])/(x[i] - low[i])) return x def translate_outof(x): x = [float(i) for i in x] for i in range(len(x)): x[i] = (low[i] + (high[i] - low[i])/(1.0 + exp(-x[i]))) return x return new_f_j, translate_into, translate_outof class OscillationError(Exception): '''Error raised when a derivative-based method is not converging. ''' class UnconvergedError(Exception): '''Error raised when maxiter has been reached in an optimization problem. ''' class NoSolutionError(Exception): '''Error raised when detected that there is no actual solution to a problem. ''' class NotBoundedError(Exception): '''Error raised when a bisection type algorithm fails because its initial bounds do not bound the solution. ''' class DiscontinuityError(Exception): '''Error raised when a bisection type algorithm fails because there is a discontinuity. ''' def damping_maintain_sign(x, step, damping=1.0, factor=0.5): '''Damping function which will maintain the sign of the variable being manipulated. If the step puts it at the other sign, the distance between `x` and `step` will be shortened by the multiple of `factor`; i.e. if factor is `x`, the new value of `x` will be 0 exactly. The provided `damping` is applied as well. Parameters ---------- x : float Previous value in iteration, [-] step : float Change in `x`, [-] damping : float, optional The damping factor to be applied always, [-] factor : float, optional If the calculated step changes sign, this factor will be used instead of the step, [-] Returns ------- x_new : float The new value in the iteration, [-] Notes ----- Examples -------- >>> damping_maintain_sign(100, -200, factor=.5) 50.0 ''' if isinstance(x, list): return [damping_maintain_sign(x[i], step[i], damping, factor) for i in range(len(x))] positive = x > 0.0 step_x = x + step if (positive and step_x < 0) or (not positive and step_x > 0.0): # print('damping') step = -factor*x return x + step*damping def make_damp_initial(steps=5, damping=1.0): steps_holder = [steps] def damping_func(x, step, damping=damping): if steps_holder[0] <= 0: # Do not dampen at all if isinstance(x, list): return [xi + dxi for xi, dxi in zip(x, step)] return x + step else: steps_holder[0] -= 1 if isinstance(x, list): return [xi + dxi*damping for xi, dxi in zip(x, step)] return x + step*damping return damping_func def oscillation_checking_wrapper(f, minimum_progress=0.3, both_sides=False, full=True, good_err=None): checker = oscillation_checker(minimum_progress=minimum_progress, both_sides=both_sides, good_err=good_err) @wraps(f) def wrapper(x, *args, **kwargs): err_test = err = f(x, *args, **kwargs) if not isinstance(err, (float, int, complex)): err_test = err[0] try: oscillating = checker(x, err_test) except: oscillating = False # Zero division error probably if oscillating: raise OscillationError("Oscillating") return err if full: return wrapper, checker return wrapper class oscillation_checker(object): def __init__(self, minimum_progress=0.3, both_sides=False, good_err=None): self.minimum_progress = minimum_progress self.both_sides = both_sides self.xs_neg = [] self.xs_pos = [] self.ys_neg = [] self.ys_pos = [] # Provide a number that if the error is under this, no longer be able to return False # For example, near phase boundaries newton could be bisecting as it overshoots # each step, but is still converging fine self.good_err = good_err def clear(self): self.xs_neg = [] self.xs_pos = [] self.ys_neg = [] self.ys_pos = [] def is_solve_oscilating(self, x, y): if y == 0.0: return False xs_neg, xs_pos, ys_neg, ys_pos = self.xs_neg, self.xs_pos, self.ys_neg, self.ys_pos minimum_progress = self.minimum_progress if y < 0.0: xs_neg.append(x) ys_neg.append(y) else: xs_pos.append(x) ys_pos.append(y) if len(xs_pos) > 1 and len(xs_neg) > 1: if y < 0: dy_cur = y - ys_neg[-2] dy_other = ys_pos[-1] - ys_pos[-2] gain_neg = abs(dy_cur/y) gain_pos = abs(dy_other/ys_pos[-1]) else: dy_cur = y - ys_pos[-2] dy_other = ys_neg[-1] - ys_neg[-2] gain_pos = abs(dy_cur/y) gain_neg = abs(dy_other/ys_neg[-1]) # print(gain_pos, gain_neg, y) if self.both_sides: if gain_pos < minimum_progress and gain_neg < minimum_progress: if self.good_err is not None and min(abs(ys_neg[-1]), abs(ys_pos[-1])) < self.good_err: return False return True else: if gain_pos < minimum_progress or gain_neg < minimum_progress: if self.good_err is not None and min(abs(ys_neg[-1]), abs(ys_pos[-1])) < self.good_err: return False return True return False __call__ = is_solve_oscilating def best_bounding_bounds(low, high, f=None, xs_pos=None, ys_pos=None, xs_neg=None, ys_neg=None, fa=None, fb=None): r'''Given: 1) A presumed bracketing interval such as very far out limits on physical bounds 2) A history of a non-bounded search algorithm which did not converge Find the best bracketing points which get the algorithm as close to the solution as possible. Parameters ---------- low : float Low bracketing interval (`f` has oposite sign at `low` than `high`), [-] high : float High bracketing interval (`f` has oposite sign at `high` than `low`), [-] f : callable, optional 1D function to be solved, [-] xs_pos : list[float] Unsorted list of `x` values of points with positive `y` values previously evaluated, [-] ys_pos : list[float] Unsorted list of `y` values of points with positive `y` values previously evaluated, [-] xs_neg : list[float] Unsorted list of `x` values of points with negative `y` values previously evaluated, [-] ys_neg : list[float] Unsorted list of `y` values of points with negative `y` values previously evaluated, [-] fa : float, optional Value of function at `low`, used instead of recalculating if provided, [-] fb : float, optional Value of function at `high`, used instead of recalculating if provided, [-] Returns ------- low : float Low bracketing interval (`f` has oposite sign at `low` than `high`), [-] high : float High bracketing interval (`f` has oposite sign at `high` than `low`), [-] fa : float Value of function at `low`, [-] fb : float, optional Value of function at `high`, [-] Notes ----- Negative and/or positive history values can be omitted, but both the `x` and `y` lists should be skipped if so. More work could be done to handle better the case if the bounds not bracketing the root but the function history doing so. ''' if fa is None: fa = f(low) if fb is None: fb = f(high) if ys_pos: y_min_pos = min(ys_pos) x_min_pos = xs_pos[ys_pos.index(y_min_pos)] if fa > 0: if y_min_pos < fa: fa, low = y_min_pos, x_min_pos else: if y_min_pos < fb: fb, high = y_min_pos, x_min_pos if ys_neg: y_min_neg = max(ys_neg) x_min_neg = xs_neg[ys_neg.index(y_min_neg)] if fa < 0: if y_min_neg > fa: fa, low = y_min_neg, x_min_neg else: if y_min_pos > fb: fb, high = y_min_neg, x_min_neg if fa*fb > 0: raise ValueError("Bounds and previous history do not contain bracketing points") return low, high, fa, fb def py_bisect(f, a, b, args=(), xtol=_xtol, rtol=_rtol, maxiter=_iter, ytol=None, full_output=False, disp=True, gap_detection=False, dy_dx_limit=1e100): '''Port of SciPy's C bisect routine. ''' fa = f(a, *args) fb = f(b, *args) if fa*fb > 0.0: raise ValueError("f(a) and f(b) must have different signs") elif fa == 0.0: return a elif fb == 0.0: return b dm = b - a iterations = 0.0 for i in range(maxiter): dm *= 0.5 xm = a + dm fm = f(xm, *args) if fm*fa >= 0.0: a = xm abs_dm = fabs(dm) if fm == 0.0: return xm elif ytol is not None: if (abs_dm < (xtol + rtol*abs_dm)) and abs(fm) < ytol: return xm elif (abs_dm < (xtol + rtol*abs_dm)): return xm elif gap_detection: dy_dx = abs((fm - fa)/(a-b)) if dy_dx > dy_dx_limit: raise DiscontinuityError("Discontinuity detected") raise UnconvergedError("Failed to converge after %d iterations" %maxiter) def py_ridder(f, a, b, args=(), xtol=_xtol, rtol=_rtol, maxiter=_iter, full_output=False, disp=True): a_abs, b_abs = fabs(a), fabs(b) tol = xtol + rtol*(a_abs if a_abs < b_abs else b_abs) fa = f(a, *args) fb = f(b, *args) if fa*fb > 0.0: raise ValueError("f(a) and f(b) must have different signs") elif fa == 0.0: return a elif fb == 0.0: return b for i in range(maxiter): dm = 0.5*(b - a) xm = a + dm fm = f(xm, *args) dn = copysign((fm*fm - fa*fb)**-0.5, fb - fa)*fm*dm dn_abs, dm_abs_tol = fabs(dn), fabs(dm) - 0.5*tol xn = xm - copysign((dn_abs if dn_abs < dm_abs_tol else dm_abs_tol), dn) fn = f(xn, *args) if (fn*fm < 0.0): a = xn fa = fn b = xm fb = fm elif (fn*fa < 0.0): b = xn fb = fn else: a = xn fa = fn tol = xtol + rtol*xn if (fn == 0.0 or fabs(b - a) < tol): return xn raise UnconvergedError("Failed to converge after %d iterations" %maxiter) def py_brenth(f, xa, xb, args=(), xtol=_xtol, rtol=_rtol, maxiter=_iter, ytol=None, full_output=False, disp=True, q=False, fa=None, fb=None, kwargs={}): xpre = xa xcur = xb xblk = 0.0 fblk = 0.0 spre = 0.0 scur = 0.0 if fa is None: fpre = f(xpre, *args, **kwargs) else: fpre = fa if fb is None: fcur = f(xcur, *args, **kwargs) else: fcur = fb if fpre*fcur > 0.0: raise NotBoundedError("f(a) and f(b) must have different signs") elif fpre == 0.0: return xa elif fcur == 0.0: return xb for i in range(maxiter): if fpre*fcur < 0.0: xblk = xpre fblk = fpre spre = scur = xcur - xpre # Breaks a bunch of tests # if fpre == fcur: # raise UnconvergedError("Failed to converge - reached equal points after %d iterations" %i) if abs(fblk) < abs(fcur): xpre = xcur xcur = xblk xblk = xpre fpre = fcur fcur = fblk fblk = fpre delta = 0.5*(xtol + rtol*abs(xcur)) sbis = 0.5*(xblk - xcur) if ytol is not None: if fcur == 0.0 or (abs(sbis) < delta) and abs(fcur) < ytol: return xcur else: if fcur == 0.0 or (abs(sbis) < delta): return xcur if (abs(spre) > delta and abs(fcur) < abs(fpre)): if xpre == xblk: # interpolate stry = -fcur*(xcur - xpre)/(fcur - fpre) else: # extrapolate dpre = (fpre - fcur)/(xpre - xcur) dblk = (fblk - fcur)/(xblk - xcur) if q: stry = -fcur*(fblk*dblk - fpre*dpre)/(dblk*dpre*(fblk - fpre)) else: stry = -fcur*(fblk - fpre)/(fblk*dpre - fpre*dblk) if (abs(stry + stry) < min(abs(spre), 3.0*abs(sbis) - delta)): # accept step spre = scur scur = stry else: # bisect spre = sbis scur = sbis else: # bisect spre = sbis scur = sbis xpre = xcur fpre = fcur if abs(scur) > delta: xcur += scur else: if sbis > 0.0: xcur += delta else: xcur -= delta fcur = f(xcur, *args, **kwargs) raise UnconvergedError("Failed to converge after %d iterations" %maxiter) def secant(func, x0, args=(), maxiter=_iter, low=None, high=None, damping=1.0, xtol=1.48e-8, ytol=None, x1=None, require_eval=False, f0=None, f1=None, bisection=False, same_tol=1.0, kwargs={}, require_xtol=True): p0 = 1.0*x0 # Logic to take a small step to calculate the approximate derivative if x1 is not None: p1 = x1 else: if x0 >= 0.0: p1 = x0*1.0001 + 1e-4 else: p1 = x0*1.0001 - 1e-4 # May need to truncate p1 if low is not None and p1 < low: p1 = low if high is not None and p1 > high: p1 = high # Are we already converged on either point? Do not consider checking xtol # if so. if f0 is None: q0 = func(p0, *args) else: q0 = f0 if (ytol is not None and abs(q0) < ytol and not require_xtol) or q0 == 0.0: return p0 if f1 is None: q1 = func(p1, *args, **kwargs) else: q1 = f1 if (ytol is not None and abs(q1) < ytol and not require_xtol) or q1 == 0.0: return p1 if bisection: a, b = None, None if q1 < 0.0: a = p1 else: b = p1 if q0 < 0.0: a = p0 else: b = p0 for _ in range(maxiter): # Calculate new point, and truncate if necessary if q1 != q0: p = p1 - q1*(p1 - p0)/(q1 - q0)*damping else: p = p1 if low is not None and p < low: p = low if high is not None and p > high: p = high # After computing new point if bisection and a is not None and b is not None: if not (a < p < b) or (b < p < a): p = 0.5*(a + b) # Check the exit conditions if ytol is not None and xtol is not None: # Meet both tolerance - new value is under ytol, and old value if abs(p0 - p1) <= abs(xtol*p0) and abs(q1) < ytol: if require_eval: return p1 return p elif xtol is not None: if abs(p0 - p1) <= abs(xtol*p0) and not (p0 == p1 and (p0 == low or p0 == high)): if require_eval: return p1 return p elif ytol is not None: if abs(q1) < ytol: if require_eval: return p1 return p # Check to quit after convergence check - may meet criteria if q1 == q0: # Are we close enough? Run the checks again if xtol is not None: xtol *= same_tol if ytol is not None: ytol *= same_tol if ytol is not None and xtol is not None: # Meet both tolerance - new value is under ytol, and old value if abs(p0 - p1) <= abs(xtol * p0) and abs(q1) < ytol: return p elif xtol is not None: if abs(p0 - p1) <= abs(xtol * p0) and not (p0 == p1 and (p0 == low or p0 == high)): return p elif ytol is not None: if abs(q1) < ytol: return p # Cannot proceed, raise an error raise ValueError("Convergence failed - previous points are the same (%g at %g, %g at %g)"%(q1, p1, q0, p0) ) # Swap the points around p0 = p1 q0 = q1 p1 = p q1 = func(p1, *args, **kwargs) if bisection: if q1 < 0.0: a = p1 else: b = p1 raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%f " %(maxiter, p)) def py_newton(func, x0, fprime=None, args=(), tol=None, maxiter=_iter, fprime2=None, low=None, high=None, damping=1.0, ytol=None, xtol=1.48e-8, require_eval=False, damping_func=None, bisection=False, gap_detection=False, dy_dx_limit=1e100, max_bound_hits=4, kwargs={}): '''Newton's method designed to be mostly compatible with SciPy's implementation, with a few features added and others now implemented. 1) No tracking of how many iterations have progressed. 2) No ability to return a RootResults object 3) No warnings on some cases of bad input (low tolerance, no iterations) 4) Ability to accept True for either fprime or fprime2, which means that they are included in the return value of func 5) No handling for inf or nan! 6) Special handling for functions which need to ensure an evaluation at the final point 7) Damping as a constant or a fraction 8) Ability to perform bisection, optionally specifying a maximum range 9) Ability to specify minimum and maximum iteration values 10) Ability to specify a tolerance in the `y` direction 11) Ability to pass in keyword arguments as well as positional arguments From scipy, with some modifications! https://github.com/scipy/scipy/blob/v1.1.0/scipy/optimize/zeros.py#L66-L206 ''' if tol is not None: xtol = tol p0 = 1.0*x0 # p1 = p0 = 1.0*x0 # fval0 = None if bisection: a, b = None, None fa, fb = None, None if fprime is not None: fprime2_included = fprime2 == True fprime_included = fprime == True hit_low, hit_high = 0, 0 for iter in range(maxiter): if fprime2_included: fval, fder, fder2 = func(p0, *args, **kwargs) elif fprime_included: fval, fder = func(p0, *args, **kwargs) elif fprime2 is not None: fval = func(p0, *args, **kwargs) fder = fprime(p0, *args, **kwargs) fder2 = fprime2(p0, *args, **kwargs) else: fval = func(p0, *args, **kwargs) fder = fprime(p0, *args, **kwargs) if fval == 0.0: return p0 # Cannot coninue or already finished elif fder == 0.0: if ytol is None or abs(fval) < ytol: return p0 else: raise UnconvergedError("Derivative became zero; maxiter (%d) reached, value=%f " %(maxiter, p0)) if bisection: if fval < 0.0: a = p0 fa = fval else: b = p0 # b always has positive value of error fb = fval fder_inv = 1.0/fder # Compute the next point step = fval*fder_inv if damping_func is not None: if fprime2 is not None: step = step/(1.0 - 0.5*step*fder2*fder_inv) p = damping_func(p0, -step, damping) # variable, derivative, damping_factor elif fprime2 is None: p = p0 - step*damping else: p = p0 - step/(1.0 - 0.5*step*fder2*fder_inv)*damping if bisection and a is not None and b is not None: if (not (a < p < b) and not (b < p < a)): # if p < 0.0: # if p < a: # print('bisecting') p = 0.5*(a + b) # else: # if p > b: # p = 0.5*(a + b) if gap_detection: # Change in function value required to get goal in worst case dy_dx = abs((fa- fb)/(a-b)) if dy_dx > dy_dx_limit: #or dy_dx > abs(fder)*10: raise DiscontinuityError("Discontinuity detected") if low is not None and p < low: hit_low += 1 if p0 == low and hit_low > max_bound_hits: if abs(fval) < ytol: return low else: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%f " % (maxiter, p)) # Stuck - not going to converge, hammering the boundary. Check ytol p = low if high is not None and p > high: hit_high += 1 if p0 == high and hit_high > max_bound_hits: if abs(fval) < ytol: return high else: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%f " % (maxiter, p)) p = high # p0 is last point (fval at that point), p is new if ytol is not None and xtol is not None: # Meet both tolerance - new value is under ytol, and old value if abs(p - p0) < abs(xtol*p) and abs(fval) < ytol: if require_eval: return p0 return p elif xtol is not None: if abs(p - p0) < abs(xtol*p): if require_eval: return p0 return p elif ytol is not None: if abs(fval) < ytol: if require_eval: return p0 return p # fval0, fval1 = fval, fval0 # p0, p1 = p, p0 # need a history of fval also p0 = p else: return secant(func, x0, args=args, maxiter=maxiter, low=low, high=high, damping=damping, xtol=xtol, ytol=ytol, kwargs=kwargs) raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%f " %(maxiter, p)) def newton_system(f, x0, jac, xtol=None, ytol=None, maxiter=100, damping=1.0, args=(), damping_func=None): jac_also = True if jac == True else False def err(F): err = sum([abs(i) for i in F]) return err if jac_also: fcur, j = f(x0, *args) else: fcur = f(x0, *args) if ytol is not None and err(fcur) < ytol: return x0, 0 else: x = x0 if not jac_also: j = jac(x, *args) iter = 1 while iter < maxiter: dx = py_solve(j, [-v for v in fcur]) if damping_func is None: x = [xi + dxi*damping for xi, dxi in zip(x, dx)] else: x = damping_func(x, dx, damping) if jac_also: fcur, j = f(x, *args) else: fcur = f(x, *args) iter += 1 if xtol is not None and norm2(fcur) < xtol: break if ytol is not None and err(fcur) < ytol: break if not jac_also: j = jac(x, *args) if xtol is not None and norm2(fcur) > xtol: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%s" %(maxiter, x)) if ytol is not None and err(fcur) > ytol: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%s" %(maxiter, x)) return x, iter def newton_minimize(f, x0, jac, hess, xtol=None, ytol=None, maxiter=100, damping=1.0, args=(), damping_func=None): jac_also = True if jac == True else False hess_also = True if hess == True else False def err(F): err = sum([abs(i) for i in F]) return err if hess_also: fcur, j, h = f(x0, *args) elif jac_also: fcur, j = f(x0, *args) h = hess(x0, *args) else: fcur = f(x0, *args) j = jac(x0, *args) h = hess(x0, *args) iter = 0 x = x0 while iter < maxiter: dx = py_solve(h, [-v for v in j]) if damping_func is None: x = [xi + dxi*damping for xi, dxi in zip(x, dx)] else: x = damping_func(x, dx, damping) if hess_also: fcur, j, h = f(x, *args) elif jac_also: fcur, j = f(x, *args) h = hess(x, *args) else: fcur = f(x, *args) j = jac(x, *args) h = hess(x, *args) iter += 1 if xtol is not None and norm2(j) < xtol: break if ytol is not None and err(j) < ytol: break if xtol is not None and norm2(j) > xtol: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%s " %(maxiter, x)) if ytol is not None and err(j) > ytol: raise UnconvergedError("Failed to converge; maxiter (%d) reached, value=%s " %(maxiter, x)) return x, iter def broyden2(xs, fun, jac, xtol=1e-7, maxiter=100, jac_has_fun=False, skip_J=False): iter = 0 if skip_J: fcur = fun(xs) N = len(fcur) J = eye(N) elif jac_has_fun: fcur, J = jac(xs) J = inv(J) else: fcur = fun(xs) J = inv(jac(xs)) N = len(fcur) eqns = range(N) err = 0.0 for fi in fcur: err += abs(fi) while err > xtol and iter < maxiter: s = dot(J, fcur) xs = [xs[i] - s[i] for i in eqns] fnew = fun(xs) z = [fnew[i] - fcur[i] for i in eqns] u = dot(J, z) d = [-i for i in s] dmu = [d[i]-u[i] for i in eqns] dmu_d = inner_product(dmu, d) den_inv = 1.0/inner_product(d, u) factor = den_inv*dmu_d J_delta = [[factor*j for j in row] for row in J] for i in eqns: for j in eqns: J[i][j] += J_delta[i][j] fcur = fnew iter += 1 err = 0.0 for fi in fcur: err += abs(fi) return xs, iter def normalize(values): r'''Simple function which normalizes a series of values to be from 0 to 1, and for their sum to add to 1. .. math:: x = \frac{x}{sum_i x_i} Parameters ---------- values : array-like array of values Returns ------- fractions : array-like Array of values from 0 to 1 Notes ----- Does not work on negative values, or handle the case where the sum is zero. Examples -------- >>> normalize([3, 2, 1]) [0.5, 0.3333333333333333, 0.16666666666666666] ''' tot_inv = 1.0/sum(values) return [i*tot_inv for i in values] def py_splev(x, tck, ext=0): '''Evaluate a B-spline using a pure-python port of FITPACK's splev. This is not fully featured in that it does not support calculating derivatives. Takes the knots and coefficients of a B-spline tuple, and returns the value of the smoothing polynomial. Parameters ---------- x : float or list[float] An point or array of points at which to calculate and return the value of the spline, [-] tck : 3-tuple Ssequence of length 3 returned by `splrep` containing the knots, coefficients, and degree of the spline, [-] ext : int, optional, default 0 If `x` is not within the range of the spline, this handles the calculation of the results. * For ext=0, extrapolate the value * For ext=1, return 0 as the value * For ext=2, raise a ValueError on that point and fail to return values * For ext=3, return the boundary value as the value Returns ------- y : list The array of calculated values; the spline function evaluated at the points in `x`, [-] Notes ----- The speed of this for a scalar value in CPython is approximately 15% slower than SciPy's FITPACK interface. In PyPy, this is 10-20 times faster than using it (benchmarked on PyPy 6). There could be more bugs in this port. ''' e = ext t, c, k = tck if isinstance(x, (float, int, complex)): x = [x] # NOTE: the first value of each array is used; it is only the indexes that # are adjusted for fortran def func_35(arg, t, l, l1, k2, nk1): # minus 1 index if arg >= t[l-1] or l1 == k2: arg, t, l, l1, nk1, leave = func_40(arg, t, l, l1, nk1) # Always leaves here return arg, t, l, l1, k2, nk1 l1 = l l = l - 1 arg, t, l, l1, k2, nk1 = func_35(arg, t, l, l1, k2, nk1) return arg, t, l, l1, k2, nk1 def func_40(arg, t, l, l1, nk1): if arg < t[l1-1] or l == nk1: # minus 1 index return arg, t, l, l1, nk1, 1 l = l1 l1 = l + 1 arg, t, l, l1, nk1, leave = func_40(arg, t, l, l1, nk1) return arg, t, l, l1, nk1, leave m = len(x) n = len(t) y = [] # output array k1 = k + 1 k2 = k1 + 1 nk1 = n - k1 tb = t[k1-1] # -1 to get right index te = t[nk1 ] # -1 to get right index; + 1 - 1 l = k1 l1 = l + 1 for i in range(0, m): # m is only 1 # i only used in loop for 1 arg = x[i] if arg < tb or arg > te: if e == 0: arg, t, l, l1, k2, nk1 = func_35(arg, t, l, l1, k2, nk1) elif e == 1: y.append(0.0) continue elif e == 2: raise ValueError("X value not in domain; set `ext` to 0 to " "extrapolate") elif e == 3: if arg < tb: arg = tb else: arg = te arg, t, l, l1, k2, nk1 = func_35(arg, t, l, l1, k2, nk1) else: arg, t, l, l1, k2, nk1 = func_35(arg, t, l, l1, k2, nk1) # Local arrays used in fpbspl and to carry its result h = [0.0]*20 hh = [0.0]*19 fpbspl(t, n, k, arg, l, h, hh) sp = 0.0E0 ll = l - k1 for j in range(0, k1): ll = ll + 1 sp = sp + c[ll-1]*h[j] # -1 to get right index y.append(sp) if len(y) == 1: return y[0] return y def py_bisplev(x, y, tck, dx=0, dy=0): '''Evaluate a bivariate B-spline or its derivatives. For scalars, returns a float; for other inputs, mimics the formats of SciPy's `bisplev`. Parameters ---------- x : float or list[float] x value (rank 1), [-] y : float or list[float] y value (rank 1), [-] tck : tuple(list, list, list, int, int) Tuple of knot locations, coefficients, and the degree of the spline, [tx, ty, c, kx, ky], [-] dx : int, optional Order of partial derivative with respect to `x`, [-] dy : int, optional Order of partial derivative with respect to `y`, [-] Returns ------- values : float or list[list[float]] Calculated values from spline or their derivatives; according to the same format as SciPy's `bisplev`, [-] Notes ----- Use `bisplrep` to generate the `tck` representation; there is no Python port of it. ''' tx, ty, c, kx, ky = tck if isinstance(x, (float, int)): x = [x] if isinstance(y, (float, int)): y = [y] z = [[cy_bispev(tx, ty, c, kx, ky, [xi], [yi])[0] for yi in y] for xi in x] if len(x) == len(y) == 1: return z[0][0] return z def fpbspl(t, n, k, x, l, h, hh): """ subroutine fpbspl evaluates the (k+1) non-zero b-splines of degree k at t(l) <= x < t(l+1) using the stable recurrence relation of de boor and cox. All arrays are 1d! Optimized the assignment and order and so on. """ h[0] = 1.0 for j in range(1, k + 1): hh[0:j] = h[0:j] h[0] = 0.0 for i in range(j): li = l+i f = hh[i]/(t[li] - t[li - j]) h[i] = h[i] + f*(t[li] - x) h[i + 1] = f*(x - t[li - j]) def init_w(t, k, x, lx, w): tb = t[k] n = len(t) m = len(x) h = [0]*6 hh = [0]*5 te = t[n - k - 1] l1 = k + 1 l2 = l1 + 1 for i in range(m): arg = x[i] if arg < tb: arg = tb if arg > te: arg = te while not (arg < t[l1] or l1 == (n - k - 1)): l1 = l2 l2 = l1 + 1 fpbspl(t, n, k, arg, l1, h, hh) lx[i] = l1 - k - 1 for j in range(k + 1): w[i][j] = h[j] def cy_bispev(tx, ty, c, kx, ky, x, y): '''Possible optimization: Do not evaluate derivatives, ever. ''' nx = len(tx) ny = len(ty) mx = len(x) my = len(y) kx1 = kx + 1 ky1 = ky + 1 nkx1 = nx - kx1 nky1 = ny - ky1 wx = [[0.0]*kx1]*mx wy = [[0.0]*ky1]*my lx = [0]*mx ly = [0]*my size_z = mx*my z = [0.0]*size_z init_w(tx, kx, x, lx, wx) init_w(ty, ky, y, ly, wy) for j in range(my): for i in range(mx): sp = 0.0 err = 0.0 for i1 in range(kx1): for j1 in range(ky1): l2 = lx[i]*nky1 + ly[j] + i1*nky1 + j1 a = c[l2]*wx[i][i1]*wy[j][j1] - err tmp = sp + a err = (tmp - sp) - a sp = tmp z[j*mx + i] += sp return z brenth = py_brenth # interp, horner, derivative methods (and maybe newton?) should always be used. if not IS_PYPY: from scipy.interpolate import splev, bisplev from scipy.optimize import newton, bisect, ridder#, brenth else: splev, bisplev = py_splev, py_bisplev newton, bisect, ridder, brenth = py_newton, py_bisect, py_ridder, py_brenth # Try out mpmath for special functions anyway has_scipy = False try: import scipy has_scipy = True except ImportError: has_scipy = False erf = None try: from math import erf except ImportError: # python 2.6 or other implementations? pass from math import gamma # Been there a while def my_lambertw(y): def err(x): return x*exp(x) - y return py_brenth(err, 1e-300, 700.0) #has_scipy = False if has_scipy: from scipy.special import lambertw, ellipe, gammaincc, gamma # fluids from scipy.special import i1, i0, k1, k0, iv # ht from scipy.special import hyp2f1 if erf is None: from scipy.special import erf else: import mpmath # scipy is not available... fall back to mpmath as a Pure-Python implementation from mpmath import lambertw # Same branches as scipy, supports .real lambertw = my_lambertw from mpmath import ellipe # seems the same so far # Figured out this definition from test_precompute_gammainc.py in scipy gammaincc = lambda a, x: mpmath.gammainc(a, a=x, regularized=True) iv = mpmath.besseli i1 = lambda x: mpmath.besseli(1, x) i0 = lambda x: mpmath.besseli(0, x) k1 = lambda x: mpmath.besselk(1, x) k0 = lambda x: mpmath.besselk(0, x) if erf is None: from mpmath import erf fluids-0.1.78/fluids/mixing.py0000644000175000017500000003117013632560624014775 0ustar kurtkurt # -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from fluids.constants import g from math import log, pi __all__ = ['agitator_time_homogeneous', 'Kp_helical_ribbon_Rieger', 'time_helical_ribbon_Grenville', 'size_tee', 'COV_motionless_mixer', 'K_motionless_mixer'] max_Fo_for_turbulent = 1/1225. min_regime_constant_for_turbulent = 6370. def adjust_homogeneity(fraction): '''Base: 95% homogeneity''' multiplier = log(1-fraction)/log(0.05) return multiplier def agitator_time_homogeneous(N, P, T, H, mu, rho, D=None, homogeneity=.95): r'''Calculates time for a fluid mizing in a tank with an impeller to reach a specified level of homogeneity, according to [1]_. .. math:: N_p = \frac{Pg}{\rho N^3 D^5} .. math:: Re_{imp} = \frac{\rho D^2 N}{\mu} .. math:: \text{constant} = N_p^{1/3} Re_{imp} .. math:: Fo = 5.2/\text{constant} \text{for turbulent regime} .. math:: Fo = (183/\text{constant})^2 \text{for transition regime} Parameters ---------- N : float: Speed of impeller, [revolutions/s] P : float Actual power required to mix, ignoring mechanical inefficiencies [W] T : float Tank diameter, [m] H : float Tank height, [m] mu : float Mixture viscosity, [Pa*s] rho : float Mixture density, [kg/m^3] D : float, optional Impeller diameter [m] homogeneity : float, optional Fraction completion of mixing, [] Returns ------- t : float Time for specified degree of homogeneity [s] Notes ----- If impeller diameter is not specified, assumed to be 0.5 tank diameters. The first example is solved forward rather than backwards here. A rather different result is obtained, but is accurate. No check to see if the mixture if laminar is currently implemented. This would under predict the required time. Examples -------- >>> agitator_time_homogeneous(D=36*.0254, N=56/60., P=957., T=1.83, H=1.83, mu=0.018, rho=1020, homogeneity=.995) 15.143198226374668 >>> agitator_time_homogeneous(D=1, N=125/60., P=298., T=3, H=2.5, mu=.5, rho=980, homogeneity=.95) 67.7575069865228 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. ''' if not D: D = T*0.5 Np = P*g/rho/N**3/D**5 Re_imp = rho/mu*D**2*N regime_constant = Np**(1/3.)*Re_imp if regime_constant >= min_regime_constant_for_turbulent: Fo = (5.2/regime_constant) else: Fo = (183./regime_constant)**2 time = rho*T**1.5*H**0.5/mu*Fo multiplier = adjust_homogeneity(homogeneity) return time*multiplier def Kp_helical_ribbon_Rieger(D, h, nb, pitch, width, T): r'''Calculates product of power number and Reynolds number for a specified geometry for a heilical ribbon mixer in the laminar regime. One of several correlations listed in [1]_, it used more data than other listed correlations and was recommended. .. math:: K_p = 82.8\frac{h}{D}\left(\frac{c}{D}\right)^{-0.38} \left(\frac{p}{D}\right)^{-0.35} \left(\frac{w}{D}\right)^{0.20} n_b^{0.78} Parameters ---------- D : float Impeller diameter [m] h : float Ribbon mixer height, [m] nb : float: Number of blades, [-] pitch : float Height of one turn around a helix [m] width : float Width of one blade [m] T : float Tank diameter, [m] Returns ------- Kp : float Product of Power number and Reynolds number for laminar regime [] Notes ----- Example is from example 9-6 in [1]_. Confirmed. Examples -------- >>> Kp_helical_ribbon_Rieger(D=1.9, h=1.9, nb=2, pitch=1.9, width=.19, T=2) 357.39749163259256 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. .. [2] Rieger, F., V. Novak, and D. Havelkov (1988). The influence of the geometrical shape on the power requirements of ribbon impellers, Int. Chem. Eng., 28, 376-383. ''' c = 0.5*(T - D) return 82.8*h/D*(c/D)**-.38*(pitch/D)**-0.35*(width/D)**0.2*nb**0.78 def time_helical_ribbon_Grenville(Kp, N): r'''Calculates product of time required for mixing in a helical ribbon coil in the laminar regime according to the Grenville [2]_ method recommended in [1]_. .. math:: t = 896\times10^3K_p^{-1.69}/N Parameters ---------- Kp : float Product of power number and Reynolds number for laminar regime [] N : float Speed of impeller, [revolutions/s] Returns ------- t : float Time for homogeneity [s] Notes ----- Degree of homogeneity is not specified. Example is from example 9-6 in [1]_. Confirmed. Examples -------- >>> time_helical_ribbon_Grenville(357.4, 4/60.) 650.980654028894 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. .. [2] Grenville, R. K., T. M. Hutchinson, and R. W. Higbee (2001). Optimisation of helical ribbon geometry for blending in the laminar regime, presented at MIXING XVIII, NAMF. ''' return 896E3*Kp**-1.69/N ### Tee mixer def size_tee(Q1, Q2, D, D2, n=1, pipe_diameters=5): r'''Calculates CoV of an optimal or specified tee for mixing at a tee according to [1]_. Assumes turbulent flow. The smaller stream in injected into the main pipe, which continues straight. COV calculation is according to [2]_. .. math:: TODO Parameters ---------- Q1 : float Volumetric flow rate of larger stream [m^3/s] Q2 : float Volumetric flow rate of smaller stream [m^3/s] D : float Diameter of pipe after tee [m] D2 : float Diameter of mixing inlet, optional (optimally calculated if not specified) [m] n : float Number of jets, 1 to 4 [] pipe_diameters : float Number of diameters along tail pipe for CoV calculation, 0 to 5 [] Returns ------- CoV : float Standard deviation of dimensionless concentration [-] Notes ----- Not specified if this works for liquid also, though probably not. Example is from example Example 9-6 in [1]_. Low precision used in example. Examples -------- >>> size_tee(Q1=11.7, Q2=2.74, D=0.762, D2=None, n=1, pipe_diameters=5) 0.2940930233038544 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. .. [2] Giorges, Aklilu T. G., Larry J. Forney, and Xiaodong Wang. "Numerical Study of Multi-Jet Mixing." Chemical Engineering Research and Design, Fluid Flow, 79, no. 5 (July 2001): 515-22. doi:10.1205/02638760152424280. ''' V1 = Q1/(pi/4*D**2) Cv = Q2/(Q1 + Q2) COV0 = ((1-Cv)/Cv)**0.5 if not D2: D2 = (Q2/Q1)**(2/3.)*D V2 = Q2/(pi/4*D2**2) B = n**2*(D2/D)**2*(V2/V1)**2 if not n == 1 and not n == 2 and not n == 3 and not n ==4: raise Exception('Only 1 or 4 side streams investigated') if n == 1: if B < 0.7: E = 1.33 else: E = 1/33. + 0.95*log(B/0.7) elif n == 2: if B < 0.8: E = 1.44 else: E = 1.44 + 0.95*log(B/0.8)**1.5 elif n == 3: if B < 0.8: E = 1.75 else: E = 1.75 + 0.95*log(B/0.8)**1.8 else: if B < 2: E = 1.97 else: E = 1.97 + 0.95*log(B/2.)**2 COV = (0.32/B**0.86*(pipe_diameters)**-E )**0.5 return COV ### Commercial motionless mixers '''Data from: Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004.''' StatixMixers = {} StatixMixers['KMS'] = {'Name': 'KMS', 'Vendor': 'Chemineer', 'Description': 'Twisted ribbon. Alternating left and right twists.', 'KL': 6.9, 'KiL': 0.87, 'KT': 150, 'KiT': 0.5} StatixMixers['SMX'] = {'Name': 'SMX', 'Vendor': 'Koch-Glitsch', 'Description': 'Guide vanes 45 degrees to pipe axis. Adjacent elements rotated 90 degrees.', 'KL': 37.5, 'KiL': 0.63, 'KT': 500, 'KiT': 0.46} StatixMixers['SMXL'] = {'Name': 'SMXL', 'Vendor': 'Koch-Glitsch', 'Description': 'Similar to SMX, but intersection bars at 30 degrees to pipe axis.', 'KL': 7.8, 'KiL': 0.85, 'KT': 100, 'KiT': 0.87} StatixMixers['SMF'] = {'Name': 'SMF', 'Vendor': 'Koch-Glitsch', 'Description': 'Three guide vanes projecting from the tube wall in a way as to not contact. Designed for applications subject to plugging.', 'KL': 5.6, 'KiL': 0.83, 'KT': 130, 'KiT': 0.4} def COV_motionless_mixer(Ki, Q1, Q2, pipe_diameters): r'''Calculates CoV of a motionless mixer with a regression parameter in [1]_ and originally in [2]_. .. math:: \frac{CoV}{CoV_0} = K_i^{L/D} Parameters ---------- Ki : float Correlation parameter specific to a mixer's design, [-] Q1 : float Volumetric flow rate of larger stream [m^3/s] Q2 : float Volumetric flow rate of smaller stream [m^3/s] pipe_diameters : float Number of diameters along tail pipe for CoV calculation, 0 to 5 [] Returns ------- CoV : float Standard deviation of dimensionless concentration [-] Notes ----- Example 7-8.3.2 in [1]_, solved backwards. Examples -------- >>> COV_motionless_mixer(Ki=.33, Q1=11.7, Q2=2.74, pipe_diameters=4.74/.762) 0.0020900028665727685 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. .. [2] Streiff, F. A., S. Jaffer, and G. Schneider (1999). Design and application of motionless mixer technology, Proc. ISMIP3, Osaka, pp. 107-114. ''' Cv = Q2/(Q1 + Q2) COV0 = ((1-Cv)/Cv)**0.5 COVr = Ki**(pipe_diameters) COV = COV0*COVr return COV def K_motionless_mixer(K, L, D, fd): r'''Calculates loss coefficient of a motionless mixer with a regression parameter in [1]_ and originally in [2]_. .. math:: K = K_{L/T}f\frac{L}{D} Parameters ---------- K : float Correlation parameter specific to a mixer's design, [-] Also specific to laminar or turbulent regime. L : float Length of the motionless mixer [m] D : float Diameter of pipe [m] fd : float Darcy friction factor [-] Returns ------- K : float Loss coefficient of mixer [-] Notes ----- Related to example 7-8.3.2 in [1]_. Examples -------- >>> K_motionless_mixer(K=150, L=.762*5, D=.762, fd=.01) 7.5 References ---------- .. [1] Paul, Edward L, Victor A Atiemo-Obeng, and Suzanne M Kresta. Handbook of Industrial Mixing: Science and Practice. Hoboken, N.J.: Wiley-Interscience, 2004. .. [2] Streiff, F. A., S. Jaffer, and G. Schneider (1999). Design and application of motionless mixer technology, Proc. ISMIP3, Osaka, pp. 107-114. ''' return L/D*fd*K fluids-0.1.78/fluids/design_climate.py0000644000175000017500000010727613632560624016464 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, 2017 Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division __all__ = ['get_clean_isd_history', 'IntegratedSurfaceDatabaseStation', 'get_closest_station', 'get_station_year_text', 'gsod_day_parser', 'StationDataGSOD', 'heating_degree_days', 'cooling_degree_days', 'stations', # 'geopy_geolocator', 'geopy_cache', 'SimpleGeolocatorCache', 'geocode'] try: # pragma: no cover from cStringIO import StringIO except: # pragma: no cover from io import BytesIO as StringIO import os import gzip import datetime from calendar import isleap from collections import namedtuple import numpy as np from fluids.core import F2K from fluids.constants import mile, knot, inch from scipy.spatial import KDTree, cKDTree from scipy.stats import scoreatpercentile try: # pragma: no cover from urllib.request import urlopen from urllib.error import HTTPError except ImportError: # pragma: no cover from urllib2 import urlopen from urllib2 import HTTPError try: # pragma: no cover from appdirs import user_data_dir, user_config_dir data_dir = user_config_dir('fluids') except ImportError: # pragma: no cover data_dir = '' try: # pragma: no cover import geopy from geopy.location import Location # No point loading cPickle or sqlite for this reason import sqlite3 except ImportError: # pragma: no cover geopy = None Location = None try: # pragma: no cover # python 3 compat import cPickle as pickle except: # pragma: no cover import pickle # Geopy cache/lookup layer, also requires appdirs for caching, can work without geolocator = None geolocator_user_agent = 'fluids' geolocator_disk_cache_name = 'simple_geolocator_cache.sqlite3' geolocator_disk_cache_loc = os.path.join(data_dir, geolocator_disk_cache_name) simple_geopy_cache = None geopy_missing_msg = '''Geocoder module `geopy` is required for this functionality.''' def geopy_geolocator(): '''Lazy loader for geocoder from geopy. This currently loads the `Nominatim` geocode and returns an instance of it, taking ~2 us. ''' global geolocator if geolocator is None: try: from geopy.geocoders import Nominatim except ImportError: return None geolocator = Nominatim(user_agent=geolocator_user_agent) return geolocator return geolocator def geopy_cache(): '''Lazy loader for the singleton `SimpleGeolocatorCache`. This creates a sqlite database if one does not exist and initializes a connection to it. ''' global simple_geopy_cache if simple_geopy_cache is None: simple_geopy_cache = SimpleGeolocatorCache(geolocator_disk_cache_loc) return simple_geopy_cache return simple_geopy_cache class SimpleGeolocatorCache(object): '''Very basic on-disk address -> (lat, lon) cache, using Python's sqlite database for on-disk persistence. Offers very reasonable performance compared to online lookups. ''' def __init__(self, file_name): self.connection = conn = sqlite3.connect(file_name) cursor = self.connection.cursor() cursor.execute('CREATE TABLE IF NOT EXISTS geopy ( ' 'address STRING PRIMARY KEY, latitude real, longitude real )') self.connection.commit() def cached_address(self, address): cursor = self.connection.cursor() cursor.execute('SELECT latitude, longitude FROM geopy WHERE address=?', (address, )) res = cursor.fetchone() if res is None: return None return res def cache_address(self, address, latitude, longitude): cursor = self.connection.cursor() cursor.execute('INSERT INTO geopy(address, latitude, longitude) VALUES(?, ?, ?)', (address, latitude, longitude)) self.connection.commit() def geocode(address): '''Query function to obtain a latitude and longitude from a location string such as `Houston, TX` or`Colombia`. This uses an online lookup, currently wrapping the `geopy` library, and providing an on-disk cache of queries. Parameters ---------- address : str Search string to retrieve the location, [-] Returns ------- latitude : float Latitude of address, [degrees] longitude : float Longitude of address, [degrees] Notes ----- If a query has been retrieved before, this function will take under 1 ms; it takes several seconds otherwise. Examples -------- >>> geocode('Fredericton, NB') (45.966425, -66.645813) ''' loc_tuple = None try: cache = geopy_cache() loc_tuple = cache.cached_address(address) except: # Handle bugs in the cache, i.e. if there is no space on disk to create # the database, by ignoring them pass if loc_tuple is not None: return loc_tuple else: geocoder = geopy_geolocator() if geocoder is None: return geopy_missing_msg location = geocoder.geocode(address) try: cache.cache_address(address, location.latitude, location.longitude) except: pass return (location.latitude, location.longitude) folder = os.path.join(os.path.dirname(__file__), 'data') def heating_degree_days(T, T_base=F2K(65), truncate=True): r'''Calculates the heating degree days for a period of time. .. math:: \text{heating degree days} = max(T - T_{base}, 0) Parameters ---------- T : float Measured temperature; sometimes an average over a length of time is used, other times the average of the lowest and highest temperature in a period are used, [K] T_base : float, optional Reference temperature for the degree day calculation, defaults to 65 °F (18.33 °C, 291.483 K), the value most used in the US, [K] truncate : bool If truncate is True, no negative values will be returned; if negative, the value is truncated to 0, [-] Returns ------- heating_degree_days : float Degree above the base temperature multiplied by the length of time of the measurement, normally days [day*K] Notes ----- Some common base temperatures are 18 °C (Canada), 15.5 °C (EU), 17 °C (Denmark, Finland), 12 °C Switzerland. The base temperature should always be presented with the results. The time unit does not have to be days; it can be any time unit, and the calculation behaves the same. Examples -------- >>> heating_degree_days(303.8) 12.31666666666672 >>> heating_degree_days(273) 0.0 >>> heating_degree_days(322, T_base=300) 22 References ---------- .. [1] "Heating Degree Day." Wikipedia, January 24, 2018. https://en.wikipedia.org/w/index.php?title=Heating_degree_day&oldid=822187764. ''' dd = T - T_base if truncate and dd < 0.0: dd = 0.0 return dd def cooling_degree_days(T, T_base=283.15, truncate=True): r'''Calculates the cooling degree days for a period of time. .. math:: \text{cooling degree days} = max(T_{base} - T, 0) Parameters ---------- T : float Measured temperature; sometimes an average over a length of time is used, other times the average of the lowest and highest temperature in a period are used, [K] T_base : float, optional Reference temperature for the degree day calculation, defaults to 10 °C, 283.15 K, a common value, [K] truncate : bool If truncate is True, no negative values will be returned; if negative, the value is truncated to 0, [-] Returns ------- cooling_degree_days : float Degree below the base temperature multiplied by the length of time of the measurement, normally days [day*K] Notes ----- The base temperature should always be presented with the results. The time unit does not have to be days; it can be time unit, and the calculation behaves the same. Examples -------- >>> cooling_degree_days(250) 33.14999999999998 >>> cooling_degree_days(300) 0.0 >>> cooling_degree_days(250, T_base=300) 50 References ---------- .. [1] "Heating Degree Day." Wikipedia, January 24, 2018. https://en.wikipedia.org/w/index.php?title=Heating_degree_day&oldid=822187764. ''' dd = T_base - T if truncate and dd < 0.0: dd = 0.0 return dd def get_clean_isd_history(dest=os.path.join(folder, 'isd-history-cleaned.tsv'), url="ftp://ftp.ncdc.noaa.gov/pub/data/noaa/isd-history.csv"): # pragma: no cover '''Basic method to update the isd-history file from the NOAA. This is useful as new weather stations are updated all the time. This function requires pandas to run. If fluids is installed for the superuser, this method must be called in an instance of Python running as the superuser (administrator). Retrieving the file from ftp typically takes several seconds. Pandas reads the file in ~30 ms and writes it in ~220 ms. Reading it with the code below takes ~220 ms but is necessary to prevent a pandas dependency. Parameters ---------- dest : str, optional The file to store the data retrieved; leave as the default argument for it to be accessible by fluids. url : str, optional The location of the data file; this can be anywhere that can be read by pandas, including a local file as would be useful in an offline situation. ''' import pandas as pd df = pd.read_csv(url) df.to_csv(dest, sep='\t', index=False, header=False) class IntegratedSurfaceDatabaseStation(object): '''Class to hold data on a weather station in the Integrated Surface Database. License information for the database can be found at the following link: https://data.noaa.gov/dataset/global-surface-summary-of-the-day-gsod Note: Of the 28000 + stations in the database, approximately 3000 have WBAN identifiers; 26000 have unique names; 24000 have USAF identifiers; and there are only 25800 unique lat/lon pairs. To uniquely represent a weather station, a combination of identifiers must be used. (Name, USAF, WBAN) makes a good choice. Parameters ---------- USAF : int or None if unassigned Air Force station ID. May contain a letter in the first position. WBAN : int or None if unassigned NCDC WBAN number NAME : str Name of the station; ex. 'CENTRAL COLORADO REGIONAL AP' CTRY : str or None if unspecified FIPS country ID ST : str or None if not in the US State for US stations ICAO : str or None if not an airport ICAO airport code LAT : float Latitude with a precision of one thousandths of a decimal degree, [degrees] LON : float Longitude with a precision of one thousandths of a decimal degree, [degrees] ELEV : float Elevation of weather station, [m] BEGIN : float Beginning Period Of Record (YYYYMMDD). There may be reporting gaps within the P.O.R. END : Ending Period Of Record (YYYYMMDD). There may be reporting gaps within the P.O.R. ''' __slots__ = ['USAF', 'WBAN', 'NAME', 'CTRY', 'ST', 'ICAO', 'LAT', 'LON', 'ELEV', 'BEGIN', 'END', 'raw_data', 'parsed_data'] def __repr__(self): s = ('' ) return s%(self.NAME, self.CTRY, self.USAF, self.WBAN, self.LAT, self.LON, str(self.BEGIN)[0:4], str(self.END)[0:4]) def __init__(self, USAF, WBAN, NAME, CTRY, ST, ICAO, LAT, LON, ELEV, BEGIN, END): try: self.USAF = int(USAF) except TypeError: self.USAF = USAF # Nones try: self.WBAN = int(WBAN) except TypeError: self.WBAN = WBAN self.NAME = NAME self.CTRY = CTRY self.ST = ST self.ICAO = ICAO self.LAT = LAT self.LON = LON self.ELEV = ELEV self.BEGIN = int(BEGIN) self.END = int(END) class StationDataGSOD(object): # Holds data, caches and retrieves data def __init__(self, station): self.station = station self.begin = datetime.datetime.strptime(str(self.station.BEGIN), '%Y%m%d') self.end = datetime.datetime.strptime(str(self.station.END), '%Y%m%d') self.year_range = range(self.begin.year, self.end.year + 1) # Would be nice to create these later, when using a download_data method self.raw_text = {} self.raw_data = {} self.parsed_data = {} self.load_empty_vectors() self.download_data() self.parse_data() def load_empty_vectors(self): for year in self.year_range: days_in_year = 366 if isleap(year) else 365 self.raw_data[year] = [None]*days_in_year self.parsed_data[year] = [None]*days_in_year self.raw_text[year] = None # days = [None]*days_in_year(y) def download_data(self): for year in self.year_range: if self.raw_text[year] is None: try: year_data = get_station_year_text(self.station.USAF, self.station.WBAN, year) self.raw_text[year] = year_data except: pass def parse_data(self): for year, data in self.raw_text.items(): if data is not None: days = self.parsed_data[year] for line in data.split('\n')[1:-1]: parsed = gsod_day_parser(line) doy = parsed.DATE.timetuple().tm_yday-1 days[doy] = parsed def coldest_month(self, older_year=None, newer_year=None, minimum_days=23): # Tested month_data = self.month_average_temperature(older_year=older_year, newer_year=newer_year, minimum_days=minimum_days) return month_data.index(min(month_data)) def warmest_month(self, older_year=None, newer_year=None, minimum_days=23): # Tested month_data = self.month_average_temperature(older_year=older_year, newer_year=newer_year, minimum_days=minimum_days) return month_data.index(max(month_data)) def month_average_temperature(self, older_year=None, newer_year=None, include_yearly=False, minimum_days=23): ''' >> station = get_closest_station(38.8572, -77.0369) >> station_data = StationDataGSOD(station) >> station_data.month_average_temperature(1990, 2000, include_yearly=False) [276.1599380905833, 277.5375516246206, 281.1881231671554, 286.7367003367004, 291.8689638318671, 296.79545454545456, 299.51868686868687, 298.2097914630174, 294.4116161616162, 288.25883023786247, 282.3188552188553, 277.8282339524275] ''' # Take years, make them inclusive; add minimum valid days. year_month_averages = {} year_month_counts = {} for year, data in self.parsed_data.items(): if not (older_year <= year <= newer_year): continue # Ignore out-of-range years easily year_month_averages[year] = [0.0]*12 year_month_counts[year] = [0]*12 for i, day in enumerate(data): if day is None: continue # Don't do these comparisons to make it fast if day.DATE.year < older_year or day.DATE.year > newer_year: continue # Ignore out-of-range days as possible T = day.TEMP if T is None: continue # Cache these lookups year_month_averages[year][day.DATE.month-1] += T year_month_counts[year][day.DATE.month-1] += 1 for month in range(12): count = year_month_counts[year][month] if count < minimum_days: ans = None else: ans = year_month_averages[year][month]/count year_month_averages[year][month] = ans # Compute the average of the month actual_averages = [0.0]*12 actual_averages_counts = [0]*12 for year, average in year_month_averages.items(): for month in range(12): if average is not None and average[month] is not None: count = actual_averages_counts[month] if count is None: count = 1 else: count += 1 actual_averages_counts[month] = count month_average_sum = actual_averages[month] if month_average_sum is None: month_average_sum = average[month] else: month_average_sum += average[month] actual_averages[month] = month_average_sum for month in range(12): actual_averages[month] = actual_averages[month]/actual_averages_counts[month] # Don't set anything as properties - too many variables used in calculating thems # Speed is not that important. if include_yearly: return actual_averages, year_month_averages else: return actual_averages # Copy and paste def month_average_windspeed(self, older_year=None, newer_year=None, include_yearly=False, minimum_days=23): # Take years, make them inclusive; add minimum valid days. year_month_averages = {} year_month_counts = {} for year, data in self.parsed_data.items(): if not (older_year <= year <= newer_year): continue # Ignore out-of-range years easily year_month_averages[year] = [0.0]*12 year_month_counts[year] = [0]*12 for i, day in enumerate(data): if day is None: continue # Don't do these comparisons to make it fast if day.DATE.year < older_year or day.DATE.year > newer_year: continue # Ignore out-of-range days as possible wind_speed = day.WDSP if wind_speed is None: continue # Cache these lookups year_month_averages[year][day.DATE.month-1] += wind_speed year_month_counts[year][day.DATE.month-1] += 1 for month in range(12): count = year_month_counts[year][month] if count < minimum_days: ans = None else: ans = year_month_averages[year][month]/count year_month_averages[year][month] = ans # Compute the average of the month actual_averages = [0.0]*12 actual_averages_counts = [0]*12 for year, average in year_month_averages.items(): for month in range(12): if average is not None and average[month] is not None: count = actual_averages_counts[month] if count is None: count = 1 else: count += 1 actual_averages_counts[month] = count month_average_sum = actual_averages[month] if month_average_sum is None: month_average_sum = average[month] else: month_average_sum += average[month] actual_averages[month] = month_average_sum for month in range(12): actual_averages[month] = actual_averages[month]/actual_averages_counts[month] # Don't set anything as properties - too many variables used in calculating thems # Speed is not that important. if include_yearly: return actual_averages, year_month_averages else: return actual_averages def percentile_extreme_condition(self, older_year=None, newer_year=None, include_yearly=False, minimum_days=23, attr='WDSP'): # Really need to normalize data with interpolation etc here. # Need to get the data, and process it and score interpolation regimes. # Or could just randomly drop data and try to fill it in. accepted_values = [] for year, data in self.parsed_data.items(): if not (older_year <= year <= newer_year): continue # Ignore out-of-range years easily stations = [] _latlongs = [] '''Read in the parsed data into 1) a list of latitudes and longitudes, temporary, which will get converted to a numpy array for use in KDTree 2) a list of IntegratedSurfaceDatabaseStation objects; the query will return the index of the nearest weather stations. ''' with open(os.path.join(folder, 'isd-history-cleaned.tsv')) as f: for line in f: values = line.split('\t') for i in range(0, 11): v = values[i] if not v: values[i] = None # '' case else: try: values[i] = float(v) if int(v) == 99999: values[i] = None except: continue lat, lon = values[6], values[7] if lat and lon: # Some stations have no lat-long; this isn't useful stations.append(IntegratedSurfaceDatabaseStation(*values)) _latlongs.append((lat, lon)) _latlongs = np.array(_latlongs) station_count = len(stations) kd_tree = cKDTree(_latlongs) # _latlongs must be unchanged as data is not copied def get_closest_station(latitude, longitude, minumum_recent_data=20140000, match_max=100): '''Query function to find the nearest weather station to a particular set of coordinates. Optionally allows for a recent date by which the station is required to be still active at. Parameters ---------- latitude : float Latitude to search for nearby weather stations at, [degrees] longitude : float Longitude to search for nearby weather stations at, [degrees] minumum_recent_data : int, optional Date that the weather station is required to have more recent weather data than; format YYYYMMDD; set this to 0 to not restrict data by date. match_max : int, optional The maximum number of results in the KDTree to search for before applying the filtering criteria; an internal parameter which is increased automatically if the default value is insufficient [-] Returns ------- station : IntegratedSurfaceDatabaseStation Instance of IntegratedSurfaceDatabaseStation which was nearest to the requested coordinates and with sufficiently recent data available [-] Notes ----- Searching for 100 stations is a reasonable choice as it takes, ~70 microseconds vs 50 microsecond to find only 1 station. The search does get slower as more points are requested. Bad data is returned from a KDTree search if more points are requested than are available. Examples -------- >>> get_closest_station(51.02532675, -114.049868485806, 20150000) ''' # Both station strings may be important # Searching for 100 stations is fine, 70 microseconds vs 50 microsecond for 1 # but there's little point for more points, it gets slower. # bad data is returned if k > station_count distances, indexes = kd_tree.query([latitude, longitude], k=min(match_max, station_count)) # for i in indexes: latlon = _latlongs[i] enddate = stations[i].END # Iterate for all indexes until one is found whose date is current if enddate > minumum_recent_data: return stations[i] if match_max < station_count: return get_closest_station(latitude, longitude, minumum_recent_data=minumum_recent_data, match_max=match_max*10) raise Exception('Could not find a station with more recent data than ' 'specified near the specified coordinates.') # This should be aggressively cached def get_station_year_text(WMO, WBAN, year): '''Basic method to download data from the GSOD database, given a station identifier and year. Parameters ---------- WMO : int or None World Meteorological Organization (WMO) identifiers, [-] WBAN : int or None Weather Bureau Army Navy (WBAN) weather station identifier, [-] year : int Year data should be retrieved from, [year] Returns ------- data : str Downloaded data file ''' if WMO is None: WMO = 999999 if WBAN is None: WBAN = 99999 station = str(int(WMO)) + '-' + str(int(WBAN)) gsod_year_dir = os.path.join(data_dir, 'gsod', str(year)) path = os.path.join(gsod_year_dir, station + '.op') if os.path.exists(path): data = open(path).read() if data and data != 'Exception': return data else: raise Exception(data) toget = ('ftp://ftp.ncdc.noaa.gov/pub/data/gsod/' + str(year) + '/' + station + '-' + str(year) +'.op.gz') try: data = urlopen(toget, timeout=5) except Exception as e: if not os.path.exists(gsod_year_dir): os.makedirs(gsod_year_dir) open(path, 'w').write('Exception') raise Exception('Could not obtain desired data; check ' 'if the year has data published for the ' 'specified station and the station was specified ' 'in the correct form. The full error is %s' %(e)) data = data.read() data_thing = StringIO(data) f = gzip.GzipFile(fileobj=data_thing, mode="r") year_station_data = f.read() try: year_station_data = year_station_data.decode('utf-8') except: pass # Cache the data for future use if not os.path.exists(gsod_year_dir): os.makedirs(gsod_year_dir) open(path, 'w').write(year_station_data) return year_station_data gsod_fields = ['DATE', # 15-18 int year; 19-22 int month/day 'TEMP', # 25-30 Real Mean temperature for the day in degrees Fahrenheit to tenths. Missing = 9999.9 'TEMP_COUNT', # 32-33 Int. Number of observations used in calculating mean temperature 'DEWP', # 36-41 Real Mean dew point for the day in degrees Fahrenheit to tenths. Missing = 9999.9 'DEWP_COUNT', # 43-44 Int. Number of observations used in calculating mean dew point 'SLP', # 47-52 Real Mean sea level pressure for the day in millibars to tenths. Missing = 9999.9 'SLP_COUNT', # 54-55 Int. Number of observations used in calculating mean sea level pressure 'STP', # 58-63 Real Mean station pressure for the day in millibars to tenths. Missing = 9999.9 'STP_COUNT', # 65-66 Int. Number of observations used in calculating mean station pressure 'VISIB', # 69-73 Real Mean visibility for the day in miles to tenths. Missing = 999.9 'VISIB_COUNT', # 75-76 Int. Number of observations used in calculating mean visibility 'WDSP', # 79-83 Real Mean wind speed for the day in knots to tenths. Missing = 999.9 'WDSP_COUNT', # 85-86 Int. Number of observations used in calculating mean wind speed 'MXSPD', # 89-93 Real Maximum sustained wind speed reported for the day in knots to tenths. Missing = 999.9 'GUST', # 96-100 Real Maximum wind gust reported for the day in knots to tenths. Missing = 999.9 'MAX', # 103-108 Real Maximum temperature reported during the # day in Fahrenheit to tenths--time of max temp report varies by country and # region, so this will sometimes not be the max for the calendar day. # Missing = 9999.9; FLAG of '*' is present on 109-109! 'MIN', # 111-116 Real Minimum temperature reported during the day in Fahrenheit to tenths--time of min # temp report varies by country and region, so this will sometimes not be # the min for the calendar day. Missing = 9999.9 FLAG of '*' is present on 117-117! 'PRCP', # 119-123 Real Total precipitation (rain and/or melted snow) reported during the day in inches # and hundredths; will usually not end with the midnight observation--i.e., # may include latter part of previous day. .00 indicates no measurable # precipitation (includes a trace). # Missing = 99.99 'SNDP', # 126-130 Real Snow depth in inches to tenths--last report for the day if reported more than # once. Missing = 999.9 Note: Most stations do not report '0' on days with no snow on the # ground--therefore, '999.9' will often appear on these days. 'FRSHTT' # 133-138 Int. Indicators (1 = yes, 0 = no/not reported) for the occurrence during the day of: # Fog ('F' - 1st digit). # Rain or Drizzle ('R' - 2nd digit). # Snow or Ice Pellets ('S' - 3rd digit). # Hail ('H' - 4th digit). # Thunder ('T' - 5th digit). # Tornado or Funnel Cloud ('T' - 6th digit). ] # Use TEMP and DEWP and STP to calculate wet bulb temperatures # Values to be converted to floats always gsod_float_fields = ('TEMP', 'DEWP', 'SLP', 'STP', 'VISIB', 'WDSP', 'MXSPD', 'GUST', 'MAX', 'MIN', 'PRCP', 'SNDP') # Values to be converted to ints always gsod_int_fields = ('TEMP_COUNT', 'DEWP_COUNT', 'SLP_COUNT', 'STP_COUNT', 'VISIB_COUNT', 'WDSP_COUNT') # Values which signify flags gsod_flag_chars = '*ABCDEFGHI' # Values which should be converted to None, as normally there is no value gsod_bad_values = set(['99.99', '999.9', '9999.9']) gsod_indicator_names = ['fog', 'rain', 'snow_ice', 'hail', 'thunder', 'tornado'] five_ninths = 5.0/9.0 gsod_day = namedtuple('gsod_day', gsod_fields + gsod_indicator_names) def gsod_day_parser(line, SI=True, to_datetime=True): '''One line (one file) parser of data in the format of the GSOD database. Returns all parsed results as a namedtuple for reduced memory consumption. Will convert all data to base SI units unless the `SI` flag is set to False. As the values are rounded to one or two decimal places in the GSOD database in Imperial units, it may be useful to look at the values directly. The names columns of the columns in the GSOD database are retained and used as the attributes of the namedtuple results. The day, month, and year are normally converted to a datetime instance in resulting namedtuple; this behavior can be disabled by setting the `datetime` flag to False; it will be a string in the format YYYYMMDD if so. This may be useful because datetime conversion roughly doubles the speed of this function. Parameters ---------- line : str Line in format of GSOD documentation, [-] SI : bool Whether or not the results get converted to base SI units, [-] to_datetime : bool Whether or not the date gets converted to a datetime instance or stays as a string, [-] Returns ------- gsod_day_instance : gsod_day namedtuple with fields described in the source (all values in SI units, if `SI` is True, i.e. meters, m/s, Kelvin, Pascal; otherwise the original unit set is used), [-] ''' # Ignore STN--- and WBAN, 8-12 characters fields = line.strip().split()[2:] # For the case the field is blank, set it to None; strip it either way for i in range(len(fields)): field = fields[i].strip() if not field: field = None fields[i] = field obj = dict(zip(gsod_fields, fields)) # Convert the date to a datetime object if specified if to_datetime and obj['DATE'] is not None: obj['DATE'] = datetime.datetime.strptime(obj['DATE'], '%Y%m%d') # Parse float values as floats for field in gsod_float_fields: value = obj[field].rstrip(gsod_flag_chars) if value in gsod_bad_values: value = None else: value = float(value) obj[field] = value if SI: # All temperatures are in deg F for field in ('TEMP', 'DEWP', 'MAX', 'MIN'): value = obj[field] if value is not None: # F2K inline for efficiency unfortunately obj[field] = (value + 459.67)*five_ninths # Convert visibility, wind speed, pressures # to si units of meters, Pascal, and meters/second. if obj['VISIB'] is not None: obj['VISIB'] = obj['VISIB']*mile if obj['PRCP'] is not None: obj['PRCP'] = obj['PRCP']*inch if obj['SNDP'] is not None: obj['SNDP'] = obj['SNDP']*inch if obj['WDSP'] is not None: obj['WDSP'] = obj['WDSP']*knot if obj['MXSPD'] is not None: obj['MXSPD'] = obj['MXSPD']*knot if obj['GUST'] is not None: obj['GUST'] = obj['GUST']*knot if obj['SLP'] is not None: obj['SLP'] = obj['SLP']*100.0 if obj['STP'] is not None: obj['STP'] = obj['STP']*100.0 # Parse int values as ints for field in gsod_int_fields: value = obj[field] if value is not None: obj[field] = int(value) indicator_values = [flag == '1' for flag in obj['FRSHTT']] obj.update(zip(gsod_indicator_names, indicator_values)) return gsod_day(**obj) fluids-0.1.78/fluids/packed_bed.py0000644000175000017500000011671613632560624015555 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from __future__ import division from math import exp, pi __all__ = ['dP_packed_bed', 'Ergun', 'Kuo_Nydegger', 'Jones_Krier', 'Carman', 'Hicks', 'Brauer', 'KTA', 'Erdim_Akgiray_Demir', 'Fahien_Schriver', 'Tallmadge', 'Idelchik', 'Harrison_Brunner_Hecker', 'Montillet_Akkari_Comiti', 'Guo_Sun', 'voidage_Benyahia_Oneil', 'voidage_Benyahia_Oneil_spherical', 'voidage_Benyahia_Oneil_cylindrical'] def Ergun(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_ and [3]_. Eighteenth most accurate correlation overall in the review of [2]_. Most often presented in the following form: .. math:: \Delta P = \frac{150\mu (1-\epsilon)^2 v_s L}{\epsilon^3 d_p^2} + \frac{1.75 (1-\epsilon) \rho v_s^2 L}{\epsilon^3 d_p} It is also often presented with a term for sphericity, which is multiplied by particle diameter everywhere in the equation. However, this is highly empirical and better correlations for beds of differently-shaped particles exist. To use sphericity in this model, multiple the input particle diameter by the spericity separately. In the review of [2]_, it is expressed in terms of a parameter `fp`, shown below. This is a convenient means of expressing all forms of pressure drop in packed beds correlations in a way that allows for easy comparison. .. math:: f_p = \left(150 + 1.75\left(\frac{Re}{1-\epsilon}\right)\right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- The first term in this equation represents laminar loses, and the second, turbulent loses. Developed with data from spheres, sand, and pulverized coke. Fluids tested were carbon dioxide, nitrogen, methane, and hydrogen. Validity range shown in [3]_ is :math:`1 < Re_{Erg} < 2300`. Over predicts pressure drop for :math:`Re_{Erg} > 700`. Examples -------- >>> Ergun(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1338.8671874999995 References ---------- .. [1] Ergun, S. (1952) "Fluid flow through packed columns", Chem. Eng. Prog., 48, 89-94. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [3] Jones, D. P., and H. Krier. "Gas Flow Resistance Measurements Through Packed Beds at High Reynolds Numbers." Journal of Fluids Engineering 105, no. 2 (June 1, 1983): 168-172. doi:10.1115/1.3240959. ''' Re = dp*rho*vs/mu fp = (150 + 1.75*(Re/(1-voidage)))*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Kuo_Nydegger(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_ and [3]. Thirty-eighth most accurate correlation overall in the review of [2]_. .. math:: f_p = \left(276.23 + 5.05\left(\frac{Re}{1-\epsilon}\right)^{0.87} \right)\frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Validity range shown in [2]_ as for a range of :math:`460 < Re < 14600`. :math:`0.3760 < \epsilon < 0.3901`. Developed with data from rough granular ball propellants beds, with air. Examples -------- >>> Kuo_Nydegger(dp=8E-1, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 0.025651460973648624 References ---------- .. [1] Kuo, K. K. and Nydegger, C., "Flow Resistance Measurement and Correlation in Packed Beds of WC 870 Ball Propellants," Journal of Ballistics , Vol. 2, No. 1, pp. 1-26, 1978. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [3] Jones, D. P., and H. Krier. "Gas Flow Resistance Measurements Through Packed Beds at High Reynolds Numbers." Journal of Fluids Engineering 105, no. 2 (June 1, 1983): 168-172. doi:10.1115/1.3240959. ''' Re = dp*rho*vs/mu fp = (276.23 + 5.05*(Re/(1-voidage))**0.87)*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Tallmadge(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_ and [3]. .. math:: f_p = \left(150 + 4.2\left(\frac{Re}{1-\epsilon}\right)^{5/6} \right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- The validity range shown in [2]_ is a range of :math:`0.1 < Re < 100000`. Examples -------- >>> Tallmadge(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1365.2739144209424 References ---------- .. [1] Tallmadge, J. A. "Packed Bed Pressure Drop-an Extension to Higher Reynolds Numbers." AIChE Journal 16, no. 6 (November 1, 1970): 1092-93. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [3] Montillet, A., E. Akkari, and J. Comiti. "About a Correlating Equation for Predicting Pressure Drops through Packed Beds of Spheres in a Large Range of Reynolds Numbers." Chemical Engineering and Processing: Process Intensification 46, no. 4 (April 2007): 329-33. doi:10.1016/j.cep.2006.07.002. ''' Re = dp*rho*vs/mu fp = (150.0 + 4.2*(Re/(1-voidage))**(5.0/6.0))*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Jones_Krier(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, also shown in [2]_. Tenth most accurate correlation overall in the review of [2]_. .. math:: f_p = \left(150 + 3.89\left(\frac{Re}{1-\epsilon}\right)^{0.87}\right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Validity range shown in [1]_ as for a range of :math:`733 < Re < 126,670`. :math:`0.3804 < \epsilon < 0.4304`. Developed from data of spherical glass beads. Examples -------- >>> Jones_Krier(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1362.2719449873746 References ---------- .. [1] Jones, D. P., and H. Krier. "Gas Flow Resistance Measurements Through Packed Beds at High Reynolds Numbers." Journal of Fluids Engineering 105, no. 2 (June 1, 1983): 168-172. doi:10.1115/1.3240959. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. ''' Re = dp*rho*vs/mu fp = (150 + 3.89*(Re/(1-voidage))**0.87)*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Carman(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_. Fifth most accurate correlation overall in the review of [2]_. Also shown in [3]_. .. math:: f_p = \left(180 + 2.871\left(\frac{Re}{1-\epsilon}\right)^{0.9}\right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Valid in [1]_, [2]_, and [3]_ for a range of :math:`300 < Re_{Erg} < 60,000`. Examples -------- >>> Carman(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1614.721678121775 References ---------- .. [1] P.C. Carman, Fluid flow through granular beds, Transactions of the London Institute of Chemical Engineers 15 (1937) 150-166. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [3] Allen, K. G., T. W. von Backstrom, and D. G. Kroger. "Packed Bed Pressure Drop Dependence on Particle Shape, Size Distribution, Packing Arrangement and Roughness." Powder Technology 246 (September 2013): 590-600. doi:10.1016/j.powtec.2013.06.022. ''' Re = dp*rho*vs/mu fp = (180 + 2.871*(Re/(1-voidage))**0.9)*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Hicks(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_. Twenty-third most accurate correlation overall in the review of [2]_. Also shown in [3]_. .. math:: f_p = 6.8 \frac{(1-\epsilon)^{1.2}}{Re^{0.2}\epsilon^3} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Valid in [1]_, [2]_, and [3]_ for a range of :math:`300 < Re_{Erg} < 60,000`. Examples -------- >>> Hicks(dp=0.01, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 3.631703956680737 References ---------- .. [1] Hicks, R. E. "Pressure Drop in Packed Beds of Spheres." Industrial Engineering Chemistry Fundamentals 9, no. 3 (August 1, 1970): 500-502. doi:10.1021/i160035a032. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [3] Allen, K. G., T. W. von Backstrom, and D. G. Kroger. "Packed Bed Pressure Drop Dependence on Particle Shape, Size Distribution, Packing Arrangement and Roughness." Powder Technology 246 (September 2013): 590-600. doi:10.1016/j.powtec.2013.06.022. ''' Re = dp*rho*vs/mu fp = 6.8*(1-voidage)**1.2/Re**0.2/voidage**3 return fp*rho*vs**2*L/dp def Brauer(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_. Seventh most accurate correlation overall in the review of [2]_. Also shown in [3]_. .. math:: f_p = \left(160 + 3\left(\frac{Re}{1-\epsilon}\right)^{0.9}\right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Original has not been reviewed. In [2]_, is stated as for a range of :math:`2 < Re_{Erg} < 20,000`. In [3]_, is stated as for a range of :math:`0.01 < Re_{Erg} < 40,000`. Examples -------- >>> Brauer(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1441.5479196020563 References ---------- .. [1] H. Brauer, Grundlagen der Einphasen -und Mehrphasenstromungen, Sauerlander AG, Aarau, 1971. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. .. [2] Allen, K. G., T. W. von Backstrom, and D. G. Kroger. "Packed Bed Pressure Drop Dependence on Particle Shape, Size Distribution, Packing Arrangement and Roughness." Powder Technology 246 (September 2013): 590-600. doi:10.1016/j.powtec.2013.06.022. ''' Re = dp*rho*vs/mu fp = (160 + 3.1*(Re/(1-voidage))**0.9)*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def KTA(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_. Third most accurate correlation overall in the review of [2]_. .. math:: f_p = \left(160 + 3\left(\frac{Re}{1-\epsilon}\right)^{0.9}\right) \frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re= \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Developed for gas flow through pebbles in nuclear reactors. In [2]_, stated as for a range of :math:`1 < RE_{Erg} <100,000`. In [1]_, a limit on porosity is stated as :math:`0.36 < \epsilon < 0.42`. Examples -------- >>> KTA(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1440.409277034248 References ---------- .. [1] KTA. KTA 3102.3 Reactor Core Design of High-Temperature Gas-Cooled Reactors Part 3: Loss of Pressure through Friction in Pebble Bed Cores. Germany, 1981. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. ''' Re = dp*rho*vs/mu fp = (160 + 3*(Re/(1-voidage))**0.9)*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Erdim_Akgiray_Demir(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, claiming to be the best model to date. .. math:: f_v = 160 + 2.81Re_{Erg}^{0.904} .. math:: f_v = \frac{\Delta P d_p^2}{\mu v_s L}\frac{\epsilon^3}{(1-\epsilon)^2} .. math:: Re_{Erg} = \frac{\rho v_s d_p}{\mu(1-\epsilon)} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Developed with data in the range of: .. math:: 2 < Re_{Erg} <3582\\ 4 < d_t/d_p < 34.1\\ 0.377 < \epsilon <0.470 Examples -------- >>> Erdim_Akgiray_Demir(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1438.2826958844414 References ---------- .. [1] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. ''' Rem = dp*rho*vs/mu/(1-voidage) fv = 160 + 2.81*Rem**0.904 return fv*(mu*vs*L/dp**2)*(1-voidage)**2/voidage**3 def Fahien_Schriver(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, as shown in [2]_. Second most accurate correlation overall in the review of [2]_. .. math:: f_p = \left(q\frac{f_{1L}}{Re_{Erg}} + (1-q)\left(f_2 + \frac{f_{1T}} {Re_{Erg}}\right)\right)\frac{1-\epsilon}{\epsilon^3} .. math:: q = \exp\left(-\frac{\epsilon^2(1-\epsilon)}{12.6}Re_{Erg}\right) .. math:: f_{1L}=\frac{136}{(1-\epsilon)^{0.38}} .. math:: f_{1T} = \frac{29}{(1-\epsilon)^{1.45}\epsilon^2} .. math:: f_2 = \frac{1.87\epsilon^{0.75}}{(1-\epsilon)^{0.26}} .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re_{Erg} = \frac{\rho v_s d_p}{\mu(1-\epsilon)} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- No range of validity available. Examples -------- >>> Fahien_Schriver(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1470.6175541844711 References ---------- .. [1] R.W. Fahien, C.B. Schriver, Paper presented at the 1961 Denver meeting of AIChE, in: R.W. Fahien, Fundamentals of Transport Phenomena, McGraw-Hill, New York, 1983. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. ''' Rem = dp*rho*vs/mu/(1-voidage) q = exp(-voidage**2*(1-voidage)/12.6*Rem) f1L = 136/(1-voidage)**0.38 f1T = 29/((1-voidage)**1.45*voidage**2) f2 = 1.87*voidage**0.75/(1-voidage)**0.26 fp = (q*f1L/Rem + (1-q)*(f2 + f1T/Rem))*(1-voidage)/voidage**3 return fp*rho*vs**2*L/dp def Idelchik(dp, voidage, vs, rho, mu, L=1): r'''Calculates pressure drop across a packed bed of spheres as in [2]_, originally in [1]_. .. math:: \frac{\Delta P}{L\rho v_s^2} d_p = \frac{0.765}{\epsilon^{4.2}} \left(\frac{30}{Re_l} + \frac{3}{Re_l^{0.7}} + 0.3\right) .. math:: Re_l = (0.45/\epsilon^{0.5})Re_{Erg} .. math:: Re_{Erg} = \frac{\rho v_s D_p}{\mu(1-\epsilon)} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- :math:`0.001 < Re_{Erg} <1000` This equation is valid for void fractions between 0.3 and 0.8. Cited as by Bernshtein. Examples -------- >>> Idelchik(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1571.909125999067 References ---------- .. [1] Idelchik, I. E. Flow Resistance: A Design Guide for Engineers. Hemisphere Publishing Corporation, New York, 1989. .. [2] Allen, K. G., T. W. von Backstrom, and D. G. Kroger. "Packed Bed Pressure Drop Dependence on Particle Shape, Size Distribution, Packing Arrangement and Roughness." Powder Technology 246 (September 2013): 590-600. doi:10.1016/j.powtec.2013.06.022. ''' Re = rho*vs*dp/mu/(1-voidage) Re = (0.45/voidage**0.5)*Re right = 0.765/voidage**4.2*(30./Re + 3./Re**0.7 + 0.3) left = dp/L/rho/vs**2 return right/left def Harrison_Brunner_Hecker(dp, voidage, vs, rho, mu, L=1, Dt=None): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_, also shown in [2]_. Fourth most accurate correlation overall in the review of [2]_. Applies a wall correction if diameter of tube is provided. .. math:: f_p = \left(119.8A + 4.63B\left(\frac{Re}{1-\epsilon}\right)^{5/6} \right)\frac{(1-\epsilon)^2}{\epsilon^3 Re} .. math:: A = \left(1 + \pi \frac{d_p}{6(1-\epsilon)D_t}\right)^2 .. math:: B = 1 - \frac{\pi^2 d_p}{24D_t}\left(1 - \frac{0.5d_p}{D_t}\right) .. math:: f_p = \frac{\Delta P d_p}{\rho v_s^2 L} .. math:: Re = \frac{\rho v_s d_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Dt : float, optional Diameter of the tube, [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Uses data from other sources only. Correlation will underestimate pressure drop if tube diameter is not provided. Limits are specified in [1]_ as: .. math:: 0.72 < Re < 7700 \\ 8.3 < d_t/d_p < 50 \\ 0.33 < \epsilon < 0.88 Examples -------- >>> Harrison_Brunner_Hecker(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=1E-2) 1255.1625662548427 References ---------- .. [1] KTA. KTA 3102.3 Reactor Core Design of High-Temperature Gas-Cooled Reactors Part 3: Loss of Pressure through Friction in Pebble Bed Cores. Germany, 1981. .. [2] Erdim, Esra, Ömer Akgiray, and İbrahim Demir. "A Revisit of Pressure Drop-Flow Rate Correlations for Packed Beds of Spheres." Powder Technology 283 (October 2015): 488-504. doi:10.1016/j.powtec.2015.06.017. ''' Re = dp*rho*vs/mu if not Dt: A, B = 1, 1 else: A = (1 + pi*dp/(6*(1-voidage)*Dt))**2 B = 1 - pi**2*dp/24/Dt*(1 - dp/(2*Dt)) fp = (119.8*A + 4.63*B*(Re/(1-voidage))**(5/6.))*(1-voidage)**2/(voidage**3*Re) return fp*rho*vs**2*L/dp def Montillet_Akkari_Comiti(dp, voidage, vs, rho, mu, L=1, Dt=None): r'''Calculates pressure drop across a packed bed of spheres as in [2]_, originally in [1]_. Wall effect adjustment is used if `Dt` is provided. .. math:: \frac{\Delta P}{L\rho V_s^2} D_p \frac{\epsilon^3}{(1-\epsilon)} = a\left(\frac{D_c}{D_p}\right)^{0.20} \left(\frac{1000}{Re_{p}} + \frac{60}{Re_{p}^{0.5}} + 12 \right) .. math:: Re_{p} = \frac{\rho v_s D_p}{\mu} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Dt : float, optional Diameter of the tube, [m] Returns ------- dP : float Pressure drop across bed [Pa] Notes ----- :math:`10 < REp <2500` if Dc/D > 50, set to 2.2. a = 0.061 for epsilon < 0.4, 0.050 for > 0.4. Examples -------- Custom example: >>> Montillet_Akkari_Comiti(dp=0.0008, voidage=0.4, L=0.5, vs=0.00132629120, rho=1000., mu=1.00E-003) 1148.1905244077548 References ---------- .. [1] Montillet, A., E. Akkari, and J. Comiti. "About a Correlating Equation for Predicting Pressure Drops through Packed Beds of Spheres in a Large Range of Reynolds Numbers." Chemical Engineering and Processing: Process Intensification 46, no. 4 (April 2007): 329-33. doi:10.1016/j.cep.2006.07.002. .. [2] Allen, K. G., T. W. von Backstrom, and D. G. Kroger. "Packed Bed Pressure Drop Dependence on Particle Shape, Size Distribution, Packing Arrangement and Roughness." Powder Technology 246 (September 2013): 590-600. doi:10.1016/j.powtec.2013.06.022. ''' Re = rho*vs*dp/mu if voidage < 0.4: a = 0.061 else: a = 0.05 if not Dt or Dt/dp > 50: Dterm = 2.2 else: Dterm = (Dt/dp)**0.2 right = a*Dterm*(1000./Re + 60/Re**0.5 + 12) left = dp/L/rho/vs**2*voidage**3/(1-voidage) return right/left def Guo_Sun(dp, voidage, vs, rho, mu, Dt, L=1): r'''Calculates pressure drop across a packed bed of spheres using a correlation developed in [1]_. This is valid for highly-packed particles at particle/tube diameter ratios between 2 and 3, where a ring packing structure occurs. If a packing ratio is so low, it is important to use this model because in some cases its predictions are as low as half those of other models! .. math:: f_v = 180 + \left(9.5374\frac{d_p}{D_t} - 2.8054\right)Re_{Erg}^{0.97} .. math:: f_v = \frac{\Delta P d_p^2}{\mu v_s L}\frac{\epsilon^3}{(1-\epsilon)^2} .. math:: Re_{Erg} = \frac{\rho v_s d_p}{\mu(1-\epsilon)} Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area)[m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] Dt : float Diameter of the tube, [m] L : float, optional Length the fluid flows in the packed bed [m] Returns ------- dP : float Pressure drop across the bed [Pa] Notes ----- Developed with data in the range of: .. math:: 100 < Re_{m} <33000\\ 2 < d_t/d_p < 3 1\\ 0.476 < \epsilon <0.492 Examples -------- >>> Guo_Sun(dp=14.2E-3, voidage=0.492, vs=0.6, rho=1E3, mu=1E-3, Dt=40.9E-3) 42019.529911473706 References ---------- .. [1] Guo, Zehua, Zhongning Sun, Nan Zhang, Ming Ding, and Jiaqing Liu. "Pressure Drop in Slender Packed Beds with Novel Packing Arrangement." Powder Technology 321 (November 2017): 286-92. doi:10.1016/j.powtec.2017.08.024. ''' # 2 < D/d < 3, particles in contact with the wall tend to form a highly ordered ring structure. Rem = dp*rho*vs/mu/(1-voidage) fv = 180 + (9.5374*dp/Dt - 2.8054)*Rem**0.97 return fv*(mu*vs*L/dp**2)*(1-voidage)**2/voidage**3 # Format: Nice nane : (formula, uses_dt) packed_beds_correlations = { 'Ergun': (Ergun, False), 'Tallmadge': (Tallmadge, False), 'Kuo & Nydegger': (Kuo_Nydegger, False), 'Jones & Krier': (Jones_Krier, False), 'Carman': (Carman, False), 'Hicks': (Hicks, False), 'Brauer': (Brauer, False), 'KTA': (KTA, False), 'Erdim, Akgiray & Demir': (Erdim_Akgiray_Demir, False), 'Fahien & Schriver': (Fahien_Schriver, False), 'Idelchik': (Idelchik, False), 'Harrison, Brunner & Hecker': (Harrison_Brunner_Hecker, True), 'Montillet, Akkari & Comiti': (Montillet_Akkari_Comiti, True), 'Guo, Sun, Zhang, Ding & Liu': (Guo_Sun, True) } def dP_packed_bed(dp, voidage, vs, rho, mu, L=1, Dt=None, sphericity=None, Method=None, AvailableMethods=False): r'''This function handles choosing which pressure drop in a packed bed correlation is used. Automatically select which correlation to use if none is provided. Returns None if insufficient information is provided. Preferred correlations are 'Erdim, Akgiray & Demir' when tube diameter is not provided, and 'Harrison, Brunner & Hecker' when tube diameter is provided. If you are using a particles in a narrow tube between 2 and 3 particle diameters, expect higher than normal voidages (0.4-0.5) and used the method 'Guo, Sun, Zhang, Ding & Liu'. Examples -------- >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3) 1438.2826958844414 >>> dP_packed_bed(dp=8E-4, voidage=0.4, vs=1E-3, rho=1E3, mu=1E-3, Dt=0.01) 1255.1625662548427 >>> dP_packed_bed(dp=0.05, voidage=0.492, vs=0.1, rho=1E3, mu=1E-3, Dt=0.015, Method='Guo, Sun, Zhang, Ding & Liu') 18782.499710673364 Parameters ---------- dp : float Particle diameter of spheres [m] voidage : float Void fraction of bed packing [-] vs : float Superficial velocity of the fluid (volumetric flow rate/cross-sectional area) [m/s] rho : float Density of the fluid [kg/m^3] mu : float Viscosity of the fluid, [Pa*s] L : float, optional Length the fluid flows in the packed bed [m] Dt : float, optional Diameter of the tube, [m] sphericity : float, optional Sphericity of the particles [-] Returns ------- dP : float Pressure drop across the bed [Pa] methods : list, only returned if AvailableMethods == True List of methods which can be used to calculate `dP` with the given inputs Other Parameters ---------------- Method : string, optional A string of the function name to use, as in the dictionary packed_beds_correlations AvailableMethods : bool, optional If True, function will consider which methods which can be used to calculate `dP` with the given inputs and return them as a list ''' def list_methods(): methods = [] if all((dp, voidage, vs, rho, mu, L)): for key, values in packed_beds_correlations.items(): if Dt or not values[1]: methods.append(key) if 'Harrison, Brunner & Hecker' in methods: methods.remove('Harrison, Brunner & Hecker') methods.insert(0, 'Harrison, Brunner & Hecker') elif 'Erdim, Akgiray & Demir' in methods: methods.remove('Erdim, Akgiray & Demir') methods.insert(0, 'Erdim, Akgiray & Demir') return methods if AvailableMethods: return list_methods() if not Method: Method = list_methods()[0] if dp and sphericity: dp = dp*sphericity if Method in packed_beds_correlations: if packed_beds_correlations[Method][1]: return packed_beds_correlations[Method][0](dp=dp, voidage=voidage, vs=vs, rho=rho, mu=mu, L=L, Dt=Dt) else: return packed_beds_correlations[Method][0](dp=dp, voidage=voidage, vs=vs, rho=rho, mu=mu, L=L) else: raise Exception('Failure in in function') #import matplotlib.pyplot as plt #import numpy as np # #voidage = 0.4 #rho = 1000. #mu = 1E-3 #vs = 0.1 #dp = 0.0001 #methods = dP_packed_bed(dp, voidage, vs, rho, mu, L=1, AvailableMethods=True) #dps = np.logspace(-4, -1, 100) # #for method in methods: # dPs = [dP_packed_bed(dp, voidage, vs, rho, mu, Method=method) for dp in dps] # plt.semilogx(dps, dPs, label=method) #plt.legend() #plt.show() ### Voidage correlations def voidage_Benyahia_Oneil(Dpe, Dt, sphericity): r'''Calculates voidage of a bed of arbitraryily shaped uniform particles packed into a bed or tube of diameter `Dt`, with equivalent sphere diameter `Dp`. Shown in [1]_, and cited by various authors. Correlations exist also for spheres, solid cylinders, hollow cylinders, and 4-hole cylinders. Based on a series of physical measurements. .. math:: \epsilon = 0.1504 + \frac{0.2024}{\phi} + \frac{1.0814} {\left(\frac{d_{t}}{d_{pe}}+0.1226\right)^2} Parameters ---------- Dpe : float Equivalent spherical particle diameter (diameter of a sphere with the same volume), [m] Dt : float Diameter of the tube, [m] sphericity : float Sphericity of particles in bed [] Returns ------- voidage : float Void fraction of bed packing [] Notes ----- Average error of 5.2%; valid 1.5 < dtube/dp < 50 and 0.42 < sphericity < 1 Examples -------- >>> voidage_Benyahia_Oneil(Dpe=1E-3, Dt=1E-2, sphericity=.8) 0.41395363849210065 References ---------- .. [1] Benyahia, F., and K. E. O’Neill. "Enhanced Voidage Correlations for Packed Beds of Various Particle Shapes and Sizes." Particulate Science and Technology 23, no. 2 (April 1, 2005): 169-77. doi:10.1080/02726350590922242. ''' return 0.1504 + 0.2024/sphericity + 1.0814/(Dt/Dpe + 0.1226)**2 def voidage_Benyahia_Oneil_spherical(Dp, Dt): r'''Calculates voidage of a bed of spheres packed into a bed or tube of diameter `Dt`, with sphere diameters `Dp`. Shown in [1]_, and cited by various authors. Correlations exist also for solid cylinders, hollow cylinders, and 4-hole cylinders. Based on a series of physical measurements. .. math:: \epsilon = 0.390+\frac{1.740}{\left(\frac{d_{cyl}}{d_p}+1.140\right)^2} Parameters ---------- Dp : float Spherical particle diameter, [m] Dt : float Diameter of the tube, [m] Returns ------- voidage : float Void fraction of bed packing [] Notes ----- Average error 1.5%, 1.5 < ratio < 50. Examples -------- >>> voidage_Benyahia_Oneil_spherical(Dp=.001, Dt=.05) 0.3906653157443224 References ---------- .. [1] Benyahia, F., and K. E. O’Neill. "Enhanced Voidage Correlations for Packed Beds of Various Particle Shapes and Sizes." Particulate Science and Technology 23, no. 2 (April 1, 2005): 169-77. doi:10.1080/02726350590922242. ''' return 0.390 + 1.740/(Dt/Dp + 1.140)**2 def voidage_Benyahia_Oneil_cylindrical(Dpe, Dt, sphericity): r'''Calculates voidage of a bed of cylindrical uniform particles packed into a bed or tube of diameter `Dt`, with equivalent sphere diameter `Dpe`. Shown in [1]_, and cited by various authors. Correlations exist also for spheres, solid cylinders, hollow cylinders, and 4-hole cylinders. Based on a series of physical measurements. .. math:: \epsilon = 0.373+\frac{1.703}{\left(\frac{d_{cyl}}{d_p}+0.611\right)^2} Parameters ---------- Dpe : float Equivalent spherical particle diameter (diameter of a sphere with the same volume), [m] Dt : float Diameter of the tube, [m] sphericity : float Sphericity of particles in bed [] Returns ------- voidage : float Void fraction of bed packing [] Notes ----- Average error 1.6%; 1.7 < ratio < 26.3. Examples -------- >>> voidage_Benyahia_Oneil_cylindrical(Dpe=.01, Dt=.1, sphericity=.6) 0.38812523109607894 References ---------- .. [1] Benyahia, F., and K. E. O’Neill. "Enhanced Voidage Correlations for Packed Beds of Various Particle Shapes and Sizes." Particulate Science and Technology 23, no. 2 (April 1, 2005): 169-77. doi:10.1080/02726350590922242. ''' return 0.373 + 1.703/(Dt/Dpe + 0.611)**2 fluids-0.1.78/.coveragerc0000644000175000017500000000030613632560624013760 0ustar kurtkurt# .coveragerc to control coverage.py [run] branch = True omit = # omit anything in a .local directory anywhere *nrlmsise_00.py [report] exclude_lines = pragma: no cover def __repr__ fluids-0.1.78/environment.yml0000644000175000017500000000015313632560624014726 0ustar kurtkurtname: fluids dependencies: - python - numpy - matplotlib - pandas - scipy - pip: - fluids fluids-0.1.78/setup.py0000644000175000017500000000720113632560624013352 0ustar kurtkurt# -*- coding: utf-8 -*- '''Chemical Engineering Design Library (ChEDL). Utilities for process modeling. Copyright (C) 2016, Caleb Bell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.''' from setuptools import setup classifiers = [ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Manufacturing', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', 'Operating System :: POSIX :: BSD', 'Operating System :: POSIX :: Linux', 'Operating System :: Unix', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Education', 'Topic :: Scientific/Engineering :: Atmospheric Science', 'Topic :: Scientific/Engineering :: Chemistry', 'Topic :: Scientific/Engineering :: Physics', ] description = 'Fluid dynamics component of Chemical Engineering Design Library (ChEDL)' keywords = ('fluid dynamics atmosphere pipe fluids compressible fluid dynamics ' 'chemical engineering mechanical engineering valve open channel ' 'tank friction pressure drop two phase pump drag reynolds ' 'sedimentation engineering pipeline process simulation particle ' 'size distribution') setup( name='fluids', packages=['fluids'], license='MIT', version='0.1.78', download_url='https://github.com/CalebBell/fluids/tarball/0.1.78', description=description, long_description=open('README.rst').read(), install_requires=["numpy>=1.5.0", "scipy>=0.9.0"], extras_require={ 'Coverage documentation': ['wsgiref>=0.1.2', 'coverage>=4.0.3', 'pint'] }, author='Caleb Bell', author_email='Caleb.Andrew.Bell@gmail.com', platforms=['Windows', 'Linux', 'Mac OS', 'Unix'], url='https://github.com/CalebBell/fluids', keywords=keywords, classifiers=classifiers, package_data={ 'fluids': [ 'data/*', 'nrlmsise00/*', 'optional/*', 'numerics/*', 'constants/*' ] }, ) fluids-0.1.78/.travis.yml0000644000175000017500000000203213632560624013746 0ustar kurtkurtlanguage: c os: - osx - linux compiler: - "2.7" - "3.5" - "3.6" env: - SCIPY_VER="scipy>=0.12.0" # safelist branches: only: - release matrix: fast_finish: true # include: # - os: "linux" # compiler: "2.7" # env: SCIPY_VER="scipy=0.18.0" notifications: email: false install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then CONDA_OS='Linux'; else CONDA_OS='MacOSX'; fi; - wget http://repo.continuum.io/miniconda/Miniconda3-latest-${CONDA_OS}-x86_64.sh -O miniconda.sh; - bash miniconda.sh -b -p $HOME/miniconda - export PATH="$HOME/miniconda/bin:$PATH" - hash -r - conda config --set always_yes yes --set changeps1 no - conda update -q conda - conda info -a - conda create -q -n test-environment python=$CC numpy pandas - source activate test-environment - conda install $SCIPY_VER - pip install -r requirements_test.txt - python setup.py -q install script: - py.test . -v --cov-report html --cov=fluids --cov-report term-missing -m "not online and not thermo" after_success: - coveralls fluids-0.1.78/requirements.txt0000644000175000017500000000003213632560624015117 0ustar kurtkurtnumpy>=1.5.0 scipy>=0.9.0 fluids-0.1.78/requirements_test.txt0000644000175000017500000000007013632560624016160 0ustar kurtkurtscipy pytest pytest-cov coveralls sympy fuzzywuzzy pint fluids-0.1.78/.gitignore0000644000175000017500000000123613632560624013632 0ustar kurtkurt*.pyc .gitignore .pypirc dist MANIFEST .coverage htmlcov .cache __pycache__ *kate-swp .spyproject fluids.egg-info prof # Compiled source # ################### *.com *.class *.dll *.exe *.o *.so *.pyo *.idea # Packages # ############ # it's better to unpack these files and commit the raw source # git has its own built in compression methods *.7z *.dmg *.gz *.iso *.jar *.rar *.tar #*.zip # Logs and databases # ###################### *.log *.sql *.sqlite # OS generated files # ###################### .DS_Store .DS_Store? .ipynb_checkpoints ._* _* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db .pytest_cache/ word_whitelist.txt simple_geolocator_cache.sqlite3 fluids-0.1.78/pytest.ini0000644000175000017500000000054313632560624013673 0ustar kurtkurt[pytest] addopts = --ignore='setup.py' markers = slow: slow tests thermo: relies on the thermo library, for integration testing online: needs internet mpmath: needs mpmath to check results against a higher-precision result fuzz: test not relevant to normal development, but can reveal bugs or provide certainty the results are correct