8962 lines
464 KiB
SAS
Executable File
8962 lines
464 KiB
SAS
Executable File
|
|
|
|
%global appLoc serverName;
|
|
%let compiled_apploc=/Public/app/angular-seed-app;
|
|
|
|
%let serverName=SASApp;
|
|
|
|
%let appLoc=%sysfunc(coalescec(&appLoc,&compiled_apploc));
|
|
|
|
%let sasjs_clickmeservice=clickme;
|
|
%let syscc=0;
|
|
options ps=max nonotes nosgen nomprint nomlogic nosource2 nosource noquotelenmax;
|
|
/* user supplied build vars */
|
|
|
|
|
|
/* user supplied build vars end */
|
|
/* system macro dependencies for build process */
|
|
|
|
|
|
|
|
%macro mf_getattrn(
|
|
libds
|
|
,attr
|
|
)/*/STORE SOURCE*/;
|
|
%local dsid rc;
|
|
%let dsid=%sysfunc(open(&libds,is));
|
|
%if &dsid = 0 %then %do;
|
|
%put %str(WARN)ING: Cannot open %trim(&libds), system message below;
|
|
%put %sysfunc(sysmsg());
|
|
-1
|
|
%end;
|
|
%else %do;
|
|
%sysfunc(attrn(&dsid,&attr))
|
|
%let rc=%sysfunc(close(&dsid));
|
|
%end;
|
|
%mend mf_getattrn;
|
|
|
|
|
|
%macro mf_nobs(libds
|
|
)/*/STORE SOURCE*/;
|
|
%mf_getattrn(&libds,NLOBS)
|
|
%mend mf_nobs;
|
|
|
|
|
|
%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%if not(%eval(%unquote(&iftrue))) %then %return;
|
|
|
|
%put NOTE: /// mf_abort macro executing //;
|
|
%if %length(&mac)>0 %then %put NOTE- called by &mac;
|
|
%put NOTE - &msg;
|
|
|
|
%abort;
|
|
|
|
%mend mf_abort;
|
|
|
|
/** @endcond */
|
|
|
|
|
|
|
|
%macro mf_verifymacvars(
|
|
verifyVars /* list of macro variable NAMES */
|
|
,makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */
|
|
,mAbort=SOFT
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%local verifyIterator verifyVar abortmsg;
|
|
%do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( )));
|
|
%let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( ));
|
|
%if not %symexist(&verifyvar) %then %do;
|
|
%let abortmsg= Variable &verifyVar is MISSING;
|
|
%goto exit_err;
|
|
%end;
|
|
%if %length(%trim(&&&verifyVar))=0 %then %do;
|
|
%let abortmsg= Variable &verifyVar is EMPTY;
|
|
%goto exit_err;
|
|
%end;
|
|
%if &makeupcase=YES %then %do;
|
|
%let &verifyVar=%upcase(&&&verifyvar);
|
|
%end;
|
|
%end;
|
|
|
|
%goto exit_success;
|
|
%exit_err:
|
|
%put &abortmsg;
|
|
%mf_abort(iftrue=(&mabort ne SOFT),
|
|
mac=mf_verifymacvars,
|
|
msg=%str(&abortmsg)
|
|
)
|
|
0
|
|
%return;
|
|
%exit_success:
|
|
1
|
|
|
|
%mend mf_verifymacvars;
|
|
|
|
|
|
|
|
%macro mm_getDirectories(
|
|
path=
|
|
,outds=work.mm_getDirectories
|
|
,mDebug=0
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%local mD;
|
|
%if &mDebug=1 %then %let mD=;
|
|
%else %let mD=%str(*);
|
|
%&mD.put Executing mm_getDirectories.sas;
|
|
%&mD.put _local_;
|
|
|
|
data &outds (keep=directoryuri name directoryname directorydesc );
|
|
length directoryuri name directoryname directorydesc $256;
|
|
call missing(of _all_);
|
|
__i+1;
|
|
%if %length(&path)=0 %then %do;
|
|
do while
|
|
(metadata_getnobj("omsobj:Directory?@Id contains '.'",__i,directoryuri)>0);
|
|
%end; %else %do;
|
|
do while(
|
|
metadata_getnobj("omsobj:Directory?@DirectoryName='&path'",__i,directoryuri)
|
|
>0
|
|
);
|
|
%end;
|
|
__rc1=metadata_getattr(directoryuri, "Name", name);
|
|
__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);
|
|
__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);
|
|
&mD.putlog (_all_) (=);
|
|
drop __:;
|
|
__i+1;
|
|
if sum(of __rc1-__rc3)=0 then output;
|
|
end;
|
|
run;
|
|
|
|
%mend mm_getDirectories;
|
|
|
|
|
|
|
|
%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);
|
|
%local rc fname;
|
|
%if &prefix=0 %then %do;
|
|
%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));
|
|
%if &rc %then %put %sysfunc(sysmsg());
|
|
&fname
|
|
%end;
|
|
%else %do;
|
|
%local x len;
|
|
%let len=%eval(8-%length(&prefix));
|
|
%let x=0;
|
|
%do x=0 %to &maxtries;
|
|
%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);
|
|
%if %sysfunc(fileref(&fname)) > 0 %then %do;
|
|
%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));
|
|
%if &rc %then %put %sysfunc(sysmsg());
|
|
&fname
|
|
%return;
|
|
%end;
|
|
%end;
|
|
%put unable to find available fileref after &maxtries attempts;
|
|
%end;
|
|
%mend mf_getuniquefileref;
|
|
|
|
|
|
%macro mm_updatestpsourcecode(stp=
|
|
,stpcode=
|
|
,minify=NO
|
|
,mdebug=0
|
|
);
|
|
|
|
/* first, check if STP exists */
|
|
%local tsuri;
|
|
%let tsuri=stopifempty ;
|
|
|
|
data _null_;
|
|
format type uri tsuri value $200.;
|
|
call missing (of _all_);
|
|
path="&stp.(StoredProcess)";
|
|
/* first, find the STP ID */
|
|
if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;
|
|
/* get sourcecode */
|
|
cnt=1;
|
|
do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);
|
|
rc=metadata_getattr(tsuri,"Name",value);
|
|
%if &mdebug=1 %then %do;
|
|
put tsuri= value=;
|
|
%end;
|
|
if value="SourceCode" then do;
|
|
/* found it! */
|
|
rc=metadata_getattr(tsuri,"Id",value);
|
|
call symputx('tsuri',value,'l');
|
|
stop;
|
|
end;
|
|
cnt+1;
|
|
end;
|
|
end;
|
|
else put (_all_)(=);
|
|
run;
|
|
|
|
%if &tsuri=stopifempty %then %do;
|
|
%put %str(WARN)ING: &stp.(StoredProcess) not found!;
|
|
%return;
|
|
%end;
|
|
|
|
%if %length(&stpcode)<2 %then %do;
|
|
%put %str(WARN)ING: No SAS code supplied!!;
|
|
%return;
|
|
%end;
|
|
|
|
%local frefin frefout;
|
|
%let frefin=%mf_getuniquefileref();
|
|
%let frefout=%mf_getuniquefileref();
|
|
|
|
/* write header XML */
|
|
data _null_;
|
|
file &frefin;
|
|
put "<UpdateMetadata><Reposid>$METAREPOSITORY</Reposid>
|
|
<Metadata><TextStore id='&tsuri' StoredText='";
|
|
run;
|
|
|
|
/* escape code so it can be stored as XML */
|
|
/* write contents */
|
|
%if %length(&stpcode)>2 %then %do;
|
|
data _null_;
|
|
file &frefin lrecl=32767 mod;
|
|
infile &stpcode lrecl=32767;
|
|
length outstr $32767;
|
|
input outstr ;
|
|
/* escape code so it can be stored as XML */
|
|
outstr=tranwrd(_infile_,'&','&');
|
|
outstr=tranwrd(outstr,'<','<');
|
|
outstr=tranwrd(outstr,'>','>');
|
|
outstr=tranwrd(outstr,"'",''');
|
|
outstr=tranwrd(outstr,'"','"');
|
|
outstr=tranwrd(outstr,'0A'x,'
');
|
|
outstr=tranwrd(outstr,'0D'x,'
');
|
|
outstr=tranwrd(outstr,'$','$');
|
|
%if &minify=YES %then %do;
|
|
outstr=cats(outstr);
|
|
if outstr ne '';
|
|
if not (outstr=:'/*' and subpad(left(reverse(outstr)),1,2)='/*');
|
|
%end;
|
|
outstr=trim(outstr);
|
|
put outstr ' ';
|
|
run;
|
|
%end;
|
|
|
|
data _null_;
|
|
file &frefin mod;
|
|
put "'></TextStore></Metadata><NS>SAS</NS><Flags>268435456</Flags>
|
|
</UpdateMetadata>";
|
|
run;
|
|
|
|
proc metadata in= &frefin out=&frefout;
|
|
run;
|
|
|
|
%if &mdebug=1 %then %do;
|
|
/* write the response to the log for debugging */
|
|
data _null_;
|
|
infile &frefout lrecl=32767;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
%end;
|
|
%else %do;
|
|
filename &frefin clear;
|
|
filename &frefout clear;
|
|
%end;
|
|
|
|
%mend mm_updatestpsourcecode;
|
|
|
|
|
|
|
|
%macro mm_getrepos(
|
|
outds=work.mm_getrepos
|
|
)/*/STORE SOURCE*/;
|
|
|
|
|
|
* use a temporary fileref to hold the response;
|
|
filename response temp;
|
|
/* get list of libraries */
|
|
proc metadata in=
|
|
"<GetRepositories><Repositories/><Flags>1</Flags><Options/></GetRepositories>"
|
|
out=response;
|
|
run;
|
|
|
|
/* write the response to the log for debugging */
|
|
/*
|
|
data _null_;
|
|
infile response lrecl=1048576;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
*/
|
|
|
|
/* create an XML map to read the response */
|
|
filename sxlemap temp;
|
|
data _null_;
|
|
file sxlemap;
|
|
put '<SXLEMAP version="1.2" name="SASRepos"><TABLE name="SASRepos">';
|
|
put "<TABLE-PATH syntax='XPath'>/GetRepositories/Repositories/Repository";
|
|
put "</TABLE-PATH>";
|
|
put '<COLUMN name="id">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Id";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="name">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Name";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="desc">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Desc";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="DefaultNS">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@DefaultNS</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="RepositoryType">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@RepositoryType</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>20</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="RepositoryFormat">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@RepositoryFormat</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>10</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="Access">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@Access</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="CurrentAccess">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@CurrentAccess</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="PauseState">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@PauseState</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>16</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="Path">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Path";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>256</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="Engine">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Engine";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>8</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="Options">';
|
|
put "<PATH syntax='XPath'>/GetRepositories/Repositories/Repository/@Options";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>32</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="MetadataCreated">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@MetadataCreated</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="MetadataUpdated">';
|
|
put "<PATH syntax='XPath'>";
|
|
put "/GetRepositories/Repositories/Repository/@MetadataUpdated</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>24</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '</TABLE></SXLEMAP>';
|
|
run;
|
|
libname _XML_ xml xmlfileref=response xmlmap=sxlemap;
|
|
|
|
proc sort data= _XML_.SASRepos out=&outds;
|
|
by name;
|
|
run;
|
|
|
|
/* clear references */
|
|
filename sxlemap clear;
|
|
filename response clear;
|
|
libname _XML_ clear;
|
|
|
|
%mend mm_getrepos;
|
|
|
|
|
|
%macro mm_getservercontexts(
|
|
outds=work.mm_getrepos
|
|
)/*/STORE SOURCE*/;
|
|
%local repo repocnt x;
|
|
%let repo=%sysfunc(getoption(metarepository));
|
|
|
|
/* first get list of available repos */
|
|
%mm_getrepos(outds=work.repos)
|
|
%let repocnt=0;
|
|
data _null_;
|
|
set repos;
|
|
where repositorytype in('CUSTOM','FOUNDATION');
|
|
keep id name ;
|
|
call symputx(cats('repo',_n_),name,'l');
|
|
call symputx('repocnt',_n_,'l');
|
|
run;
|
|
|
|
filename __mc1 temp;
|
|
filename __mc2 temp;
|
|
data &outds;
|
|
length serveruri servername $200;
|
|
call missing (of _all_);
|
|
stop;
|
|
run;
|
|
%do x=1 %to &repocnt;
|
|
options metarepository=&&repo&x;
|
|
proc metadata in=
|
|
"<GetMetadataObjects><Reposid>$METAREPOSITORY</Reposid>
|
|
<Type>ServerContext</Type><Objects/><NS>SAS</NS>
|
|
<Flags>0</Flags><Options/></GetMetadataObjects>"
|
|
out=__mc1;
|
|
run;
|
|
/*
|
|
data _null_;
|
|
infile __mc1 lrecl=1048576;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
*/
|
|
data _null_;
|
|
file __mc2;
|
|
put '<SXLEMAP version="1.2" name="SASContexts"><TABLE name="SASContexts">';
|
|
put "<TABLE-PATH syntax='XPath'>/GetMetadataObjects/Objects/ServerContext";
|
|
put "</TABLE-PATH>";
|
|
put '<COLUMN name="serveruri">';
|
|
put "<PATH syntax='XPath'>/GetMetadataObjects/Objects/ServerContext/@Id";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '<COLUMN name="servername">';
|
|
put "<PATH syntax='XPath'>/GetMetadataObjects/Objects/ServerContext/@Name";
|
|
put "</PATH>";
|
|
put "<TYPE>character</TYPE><DATATYPE>string</DATATYPE><LENGTH>200</LENGTH>";
|
|
put '</COLUMN>';
|
|
put '</TABLE></SXLEMAP>';
|
|
run;
|
|
libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;
|
|
proc append base=&outds data=__mc3.SASContexts;run;
|
|
libname __mc3 clear;
|
|
%end;
|
|
|
|
options metarepository=&repo;
|
|
|
|
filename __mc1 clear;
|
|
filename __mc2 clear;
|
|
|
|
%mend mm_getservercontexts;
|
|
|
|
|
|
%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)
|
|
, errds=work.mp_abort_errds
|
|
, mode=REGULAR
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;
|
|
%local fref fid i;
|
|
|
|
%if not(%eval(%unquote(&iftrue))) %then %return;
|
|
|
|
%put NOTE: /// mp_abort macro executing //;
|
|
%if %length(&mac)>0 %then %put NOTE- called by &mac;
|
|
%put NOTE - &msg;
|
|
|
|
%if %symexist(_SYSINCLUDEFILEDEVICE)
|
|
/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */
|
|
and %superq(SYSPROCESSNAME) ne %str(Compute Server)
|
|
%then %do;
|
|
%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;
|
|
data &errds;
|
|
iftrue='1=1';
|
|
length mac $100 msg $5000;
|
|
mac=symget('mac');
|
|
msg=symget('msg');
|
|
run;
|
|
data _null_;
|
|
abort cancel FILE;
|
|
run;
|
|
%return;
|
|
%end;
|
|
%end;
|
|
|
|
/* Web App Context */
|
|
%if %symexist(_PROGRAM)
|
|
or %superq(SYSPROCESSNAME) = %str(Compute Server)
|
|
or &mode=INCLUDE
|
|
%then %do;
|
|
options obs=max replace mprint;
|
|
%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"
|
|
%then %do;
|
|
options nosyntaxcheck;
|
|
%end;
|
|
|
|
%if &mode=INCLUDE %then %do;
|
|
%if %sysfunc(exist(&errds))=1 %then %do;
|
|
data _null_;
|
|
set &errds;
|
|
call symputx('iftrue',iftrue,'l');
|
|
call symputx('mac',mac,'l');
|
|
call symputx('msg',msg,'l');
|
|
putlog (_all_)(=);
|
|
run;
|
|
%if (&iftrue)=0 %then %return;
|
|
%end;
|
|
%else %do;
|
|
%put &sysmacroname: No include errors found;
|
|
%return;
|
|
%end;
|
|
%end;
|
|
|
|
/* extract log errs / warns, if exist */
|
|
%local logloc logline;
|
|
%global logmsg; /* capture global messages */
|
|
%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;
|
|
%else %let logloc=%qsysfunc(getoption(LOG));
|
|
proc printto log=log;run;
|
|
%let logline=0;
|
|
%if %length(&logloc)>0 %then %do;
|
|
data _null_;
|
|
infile &logloc lrecl=5000;
|
|
input; putlog _infile_;
|
|
i=1;
|
|
retain logonce 0;
|
|
if (
|
|
_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"
|
|
) and logonce=0 then
|
|
do;
|
|
call symputx('logline',_n_);
|
|
logonce+1;
|
|
end;
|
|
run;
|
|
/* capture log including lines BEFORE the err */
|
|
%if &logline>0 %then %do;
|
|
data _null_;
|
|
infile &logloc lrecl=5000;
|
|
input;
|
|
i=1;
|
|
stoploop=0;
|
|
if _n_ ge &logline-15 and stoploop=0 then do until (i>22);
|
|
call symputx('logmsg',catx('\n',symget('logmsg'),_infile_));
|
|
input;
|
|
i+1;
|
|
stoploop=1;
|
|
end;
|
|
if stoploop=1 then stop;
|
|
run;
|
|
%end;
|
|
%end;
|
|
|
|
%if %symexist(SYS_JES_JOB_URI) %then %do;
|
|
/* setup webout for Viya */
|
|
options nobomfile;
|
|
%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;
|
|
filename _webout temp lrecl=999999 mod;
|
|
%end;
|
|
%else %do;
|
|
filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"
|
|
name="_webout.json" lrecl=999999 mod;
|
|
%end;
|
|
%end;
|
|
%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;
|
|
options nobomfile;
|
|
/* set up http header for SASjs Server */
|
|
%let fid=%sysfunc(fopen(&fref,A));
|
|
%if &fid=0 %then %do;
|
|
%put %str(ERR)OR: %sysfunc(sysmsg());
|
|
%return;
|
|
%end;
|
|
%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));
|
|
%let rc=%sysfunc(fwrite(&fid));
|
|
%let rc=%sysfunc(fclose(&fid));
|
|
%let rc=%sysfunc(filename(&fref));
|
|
%end;
|
|
|
|
/* send response in SASjs JSON format */
|
|
data _null_;
|
|
file _webout mod lrecl=32000 encoding='utf-8';
|
|
length msg syswarningtext syserrortext $32767 mode $10 ;
|
|
sasdatetime=datetime();
|
|
msg=symget('msg');
|
|
%if &logline>0 %then %do;
|
|
msg=cats(msg,'\n\nLog Extract:\n',symget('logmsg'));
|
|
%end;
|
|
/* escape the escapes */
|
|
msg=tranwrd(msg,'\','\\');
|
|
/* escape the quotes */
|
|
msg=tranwrd(msg,'"','\"');
|
|
/* ditch the CRLFs as chrome complains */
|
|
msg=compress(msg,,'kw');
|
|
/* quote without quoting the quotes (which are escaped instead) */
|
|
msg=cats('"',msg,'"');
|
|
if symexist('_debug') then debug=quote(trim(symget('_debug')));
|
|
else debug='""';
|
|
if symget('sasjsprocessmode')='Stored Program' then mode='SASJS';
|
|
if mode ne 'SASJS' then put '>>weboutBEGIN<<';
|
|
put '{"SYSDATE" : "' "&SYSDATE" '"';
|
|
put ',"SYSTIME" : "' "&SYSTIME" '"';
|
|
put ',"sasjsAbort" : [{';
|
|
put ' "MSG":' msg ;
|
|
put ' ,"MAC": "' "&mac" '"}]';
|
|
put ",""SYSUSERID"" : ""&sysuserid"" ";
|
|
put ',"_DEBUG":' debug ;
|
|
if symexist('_metauser') then do;
|
|
_METAUSER=quote(trim(symget('_METAUSER')));
|
|
put ",""_METAUSER"": " _METAUSER;
|
|
_METAPERSON=quote(trim(symget('_METAPERSON')));
|
|
put ',"_METAPERSON": ' _METAPERSON;
|
|
end;
|
|
if symexist('SYS_JES_JOB_URI') then do;
|
|
SYS_JES_JOB_URI=quote(trim(symget('SYS_JES_JOB_URI')));
|
|
put ',"SYS_JES_JOB_URI": ' SYS_JES_JOB_URI;
|
|
end;
|
|
_PROGRAM=quote(trim(resolve(symget('_PROGRAM'))));
|
|
put ',"_PROGRAM" : ' _PROGRAM ;
|
|
put ",""SYSCC"" : ""&syscc"" ";
|
|
syserrortext=cats('"',tranwrd(symget('syserrortext'),'"','\"'),'"');
|
|
put ",""SYSERRORTEXT"" : " syserrortext;
|
|
put ",""SYSHOSTNAME"" : ""&syshostname"" ";
|
|
put ",""SYSJOBID"" : ""&sysjobid"" ";
|
|
put ",""SYSSCPL"" : ""&sysscpl"" ";
|
|
put ",""SYSSITE"" : ""&syssite"" ";
|
|
sysvlong=quote(trim(symget('sysvlong')));
|
|
put ',"SYSVLONG" : ' sysvlong;
|
|
syswarningtext=cats('"',tranwrd(symget('syswarningtext'),'"','\"'),'"');
|
|
put ",""SYSWARNINGTEXT"" : " syswarningtext;
|
|
put ',"END_DTTM" : "' "%sysfunc(datetime(),E8601DT26.6)" '" ';
|
|
put "}" ;
|
|
if mode ne 'SASJS' then put '>>weboutEND<<';
|
|
run;
|
|
|
|
%put _all_;
|
|
|
|
%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;
|
|
data _null_;
|
|
putlog 'stpsrvset program err and syscc';
|
|
rc=stpsrvset('program error', 0);
|
|
call symputx("syscc",0,"g");
|
|
run;
|
|
%if &sysscp=WIN
|
|
and 1=0 /* deprecating this logic until we figure out a consistent abort */
|
|
and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"
|
|
and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;
|
|
/* skip approach (below) does not work in windows m6+ envs */
|
|
endsas;
|
|
%end;
|
|
%else %do;
|
|
/**
|
|
* endsas kills 9.4m3 deployments by orphaning multibridges.
|
|
* Abort variants are ungraceful (non zero return code)
|
|
* This approach lets SAS run silently until the end :-)
|
|
* Caution - fails when called within a %include within a macro
|
|
* Use mp_include() to handle this.
|
|
*/
|
|
filename skip temp;
|
|
data _null_;
|
|
file skip;
|
|
put '%macro skip();';
|
|
comment '%mend skip; -> fix lint ';
|
|
put '%macro skippy();';
|
|
comment '%mend skippy; -> fix lint ';
|
|
run;
|
|
%inc skip;
|
|
%end;
|
|
%end;
|
|
%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;
|
|
/* endsas kills the session making it harder to fetch results */
|
|
data _null_;
|
|
syswarningtext=symget('syswarningtext');
|
|
syserrortext=symget('syserrortext');
|
|
abort_msg=symget('msg');
|
|
syscc=symget('syscc');
|
|
sysuserid=symget('sysuserid');
|
|
iftrue=symget('iftrue');
|
|
put (_all_)(/=);
|
|
call symputx('syscc',0);
|
|
abort cancel nolist;
|
|
run;
|
|
%end;
|
|
%else %do;
|
|
%abort cancel;
|
|
%end;
|
|
%end;
|
|
%else %do;
|
|
%put _all_;
|
|
%abort cancel;
|
|
%end;
|
|
%mend mp_abort;
|
|
|
|
/** @endcond */
|
|
|
|
|
|
|
|
%macro mf_isblank(param
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%sysevalf(%superq(param)=,boolean)
|
|
|
|
%mend mf_isblank;
|
|
|
|
|
|
%macro mp_dropmembers(
|
|
list /* space separated list of datasets / views */
|
|
,libref=WORK /* can only drop from a single library at a time */
|
|
,iftrue=%str(1=1)
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%if not(%eval(%unquote(&iftrue))) %then %return;
|
|
|
|
%if %mf_isblank(&list) %then %do;
|
|
%put NOTE: nothing to drop!;
|
|
%return;
|
|
%end;
|
|
|
|
proc datasets lib=&libref nolist;
|
|
delete &list;
|
|
delete &list /mtype=view;
|
|
run;
|
|
%mend mp_dropmembers;
|
|
|
|
|
|
%macro mm_createstp(
|
|
stpname=Macro People STP
|
|
,stpdesc=This stp was created automatically by the mm_createstp macro
|
|
,filename=mm_createstp.sas
|
|
,directory=SASEnvironment/SASCode
|
|
,tree=/User Folders/sasdemo
|
|
,package=false
|
|
,streaming=true
|
|
,outds=work.mm_createstp
|
|
,mDebug=0
|
|
,server=SASApp
|
|
,stptype=1
|
|
,minify=NO
|
|
,frefin=mm_in
|
|
,frefout=mm_out
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%local mD;
|
|
%if &mDebug=1 %then %let mD=;
|
|
%else %let mD=%str(*);
|
|
%&mD.put Executing mm_CreateSTP.sas;
|
|
%&mD.put _local_;
|
|
|
|
%mp_abort(
|
|
iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)
|
|
,mac=&sysmacroname
|
|
,msg=%str(Empty inputs: stpname filename directory tree)
|
|
)
|
|
|
|
%mp_dropmembers(%scan(&outds,2,.))
|
|
|
|
/**
|
|
* check tree exists
|
|
*/
|
|
data _null_;
|
|
length type uri $256;
|
|
rc=metadata_pathobj("","&tree","Folder",type,uri);
|
|
call symputx('foldertype',type,'l');
|
|
call symputx('treeuri',uri,'l');
|
|
run;
|
|
%if &foldertype ne Tree %then %do;
|
|
%put %str(WARN)ING: Tree &tree does not exist!;
|
|
%return;
|
|
%end;
|
|
|
|
/**
|
|
* Check STP does not exist already
|
|
*/
|
|
%local cmtype;
|
|
data _null_;
|
|
length type uri $256;
|
|
rc=metadata_pathobj("","&tree/&stpname",'StoredProcess',type,uri);
|
|
call symputx('cmtype',type,'l');
|
|
call symputx('stpuri',uri,'l');
|
|
run;
|
|
%if &cmtype = ClassifierMap %then %do;
|
|
%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;
|
|
%return;
|
|
%end;
|
|
|
|
/**
|
|
* Check that the physical file exists
|
|
*/
|
|
%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;
|
|
%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;
|
|
%return;
|
|
%end;
|
|
|
|
%if &stptype=1 %then %do;
|
|
/* type 1 STP - where code is stored on filesystem */
|
|
%if %sysevalf(&sysver lt 9.2) %then %do;
|
|
%put %str(WARN)ING: Version 9.2 or later required;
|
|
%return;
|
|
%end;
|
|
|
|
/* check directory object (where 9.2 source code reference is stored) */
|
|
data _null_;
|
|
length id $20 dirtype $256;
|
|
rc=metadata_resolve("&directory",dirtype,id);
|
|
call symputx('checkdirtype',dirtype,'l');
|
|
run;
|
|
|
|
%if &checkdirtype ne Directory %then %do;
|
|
%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)
|
|
%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;
|
|
%put %str(WARN)ING: The directory object does not exist for &directory;
|
|
%return;
|
|
%end;
|
|
%end;
|
|
%else %do;
|
|
data &outds;
|
|
directoryuri="&directory";
|
|
run;
|
|
%end;
|
|
|
|
data &outds (keep=stpuri prompturi fileuri texturi);
|
|
length stpuri prompturi fileuri texturi serveruri $256 ;
|
|
if _n_=1 then call missing (of _all_);
|
|
set &outds;
|
|
|
|
/* final checks on uris */
|
|
length id $20 type $256;
|
|
__rc=metadata_resolve("&treeuri",type,id);
|
|
if type ne 'Tree' then do;
|
|
putlog "%str(WARN)ING: Invalid tree URI: &treeuri";
|
|
stopme=1;
|
|
end;
|
|
__rc=metadata_resolve(directoryuri,type,id);
|
|
if type ne 'Directory' then do;
|
|
putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;
|
|
stopme=1;
|
|
end;
|
|
|
|
/* get server info */
|
|
__rc=metadata_resolve("&server",type,serveruri);
|
|
if type ne 'LogicalServer' then do;
|
|
__rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri);
|
|
if serveruri='' then do;
|
|
putlog "%str(WARN)ING: Invalid server: &server";
|
|
stopme=1;
|
|
end;
|
|
end;
|
|
|
|
if stopme=1 then do;
|
|
putlog (_all_)(=);
|
|
stop;
|
|
end;
|
|
|
|
/* create empty prompt */
|
|
rc1=METADATA_NEWOBJ('PromptGroup',prompturi,'Parameters');
|
|
rc2=METADATA_SETATTR(prompturi, 'UsageVersion', '1000000');
|
|
rc3=METADATA_SETATTR(prompturi, 'GroupType','2');
|
|
rc4=METADATA_SETATTR(prompturi, 'Name','Parameters');
|
|
rc5=METADATA_SETATTR(prompturi, 'PublicType','Embedded:PromptGroup');
|
|
GroupInfo=
|
|
"<PromptGroup promptId='PromptGroup_%sysfunc(datetime())_&sysprocessid'"
|
|
!!" version='1.0'><Label><Text xml:lang='en-GB'>Parameters</Text>"
|
|
!!"</Label></PromptGroup>";
|
|
rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo);
|
|
|
|
if sum(of rc1-rc6) ne 0 then do;
|
|
putlog "%str(WARN)ING: Issue creating prompt.";
|
|
if prompturi ne . then do;
|
|
putlog ' Removing orphan: ' prompturi;
|
|
rc = METADATA_DELOBJ(prompturi);
|
|
put rc=;
|
|
end;
|
|
stop;
|
|
end;
|
|
|
|
/* create a file uri */
|
|
rc7=METADATA_NEWOBJ('File',fileuri,'SP Source File');
|
|
rc8=METADATA_SETATTR(fileuri, 'FileName',"&filename");
|
|
rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1');
|
|
rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri);
|
|
if sum(of rc7-rc10) ne 0 then do;
|
|
putlog "%str(WARN)ING: Issue creating file.";
|
|
if fileuri ne . then do;
|
|
putlog ' Removing orphans:' prompturi fileuri;
|
|
rc = METADATA_DELOBJ(prompturi);
|
|
rc = METADATA_DELOBJ(fileuri);
|
|
put (_all_)(=);
|
|
end;
|
|
stop;
|
|
end;
|
|
|
|
/* create a TextStore object */
|
|
rc11= METADATA_NEWOBJ('TextStore',texturi,'Stored Process');
|
|
rc12= METADATA_SETATTR(texturi, 'TextRole','StoredProcessConfiguration');
|
|
rc13= METADATA_SETATTR(texturi, 'TextType','XML');
|
|
storedtext='<?xml version="1.0" encoding="UTF-8"?><StoredProcess>'
|
|
!!"<ResultCapabilities Package='&package' Streaming='&streaming'/>"
|
|
!!"<OutputParameters/></StoredProcess>";
|
|
rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext);
|
|
if sum(of rc11-rc14) ne 0 then do;
|
|
putlog "%str(WARN)ING: Issue creating TextStore.";
|
|
if texturi ne . then do;
|
|
putlog ' Removing orphans: ' prompturi fileuri texturi;
|
|
rc = METADATA_DELOBJ(prompturi);
|
|
rc = METADATA_DELOBJ(fileuri);
|
|
rc = METADATA_DELOBJ(texturi);
|
|
put (_all_)(=);
|
|
end;
|
|
stop;
|
|
end;
|
|
|
|
/* create meta obj */
|
|
rc15= METADATA_NEWOBJ('ClassifierMap',stpuri,"&stpname");
|
|
rc16= METADATA_SETASSN(stpuri, 'Trees','MODIFY',treeuri);
|
|
rc17= METADATA_SETASSN(stpuri, 'ComputeLocations','MODIFY',serveruri);
|
|
rc18= METADATA_SETASSN(stpuri, 'SourceCode','MODIFY',fileuri);
|
|
rc19= METADATA_SETASSN(stpuri, 'Prompts','MODIFY',prompturi);
|
|
rc20= METADATA_SETASSN(stpuri, 'Notes','MODIFY',texturi);
|
|
rc21= METADATA_SETATTR(stpuri, 'PublicType', 'StoredProcess');
|
|
rc22= METADATA_SETATTR(stpuri, 'TransformRole', 'StoredProcess');
|
|
rc23= METADATA_SETATTR(stpuri, 'UsageVersion', '1000000');
|
|
rc24= METADATA_SETATTR(stpuri, 'Desc', "&stpdesc");
|
|
|
|
/* tidy up if err */
|
|
if sum(of rc15-rc24) ne 0 then do;
|
|
putlog "%str(WARN)ING: Issue creating STP.";
|
|
if stpuri ne . then do;
|
|
putlog ' Removing orphans: ' prompturi fileuri texturi stpuri;
|
|
rc = METADATA_DELOBJ(prompturi);
|
|
rc = METADATA_DELOBJ(fileuri);
|
|
rc = METADATA_DELOBJ(texturi);
|
|
rc = METADATA_DELOBJ(stpuri);
|
|
put (_all_)(=);
|
|
end;
|
|
end;
|
|
else do;
|
|
fullpath=cats('_program=',treepath,"/&stpname");
|
|
putlog "NOTE: Stored Process Created!";
|
|
putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;
|
|
putlog "NOTE- "; putlog "NOTE-";
|
|
end;
|
|
output;
|
|
stop;
|
|
run;
|
|
%end;
|
|
%else %if &stptype=2 %then %do;
|
|
/* type 2 stp - code is stored in metadata */
|
|
%if %sysevalf(&sysver lt 9.3) %then %do;
|
|
%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;
|
|
%return;
|
|
%end;
|
|
/* check we have the correct ServerContext */
|
|
%mm_getservercontexts(outds=contexts)
|
|
%local serveruri; %let serveruri=NOTFOUND;
|
|
data _null_;
|
|
set contexts;
|
|
where upcase(servername)="%upcase(&server)";
|
|
call symputx('serveruri',serveruri);
|
|
run;
|
|
%if &serveruri=NOTFOUND %then %do;
|
|
%put %str(WARN)ING: ServerContext *&server* not found!;
|
|
%return;
|
|
%end;
|
|
|
|
/**
|
|
* First, create a Hello World type 2 stored process
|
|
*/
|
|
filename &frefin temp;
|
|
data _null_;
|
|
file &frefin;
|
|
treeuri=quote(symget('treeuri'));
|
|
serveruri=quote(symget('serveruri'));
|
|
stpdesc=quote(symget('stpdesc'));
|
|
stpname=quote(symget('stpname'));
|
|
|
|
put "<AddMetadata><Reposid>$METAREPOSITORY</Reposid><Metadata> "/
|
|
'<ClassifierMap UsageVersion="2000000" IsHidden="0" IsUserDefined="0" '/
|
|
' IsActive="1" PublicType="StoredProcess" TransformRole="StoredProcess" '/
|
|
' Name=' stpname ' Desc=' stpdesc '>'/
|
|
" <ComputeLocations>"/
|
|
" <ServerContext ObjRef=" serveruri "/>"/
|
|
" </ComputeLocations>"/
|
|
"<Notes> "/
|
|
' <TextStore IsHidden="0" Name="SourceCode" UsageVersion="0" '/
|
|
' TextRole="StoredProcessSourceCode" StoredText="%put hello world!;" />'/
|
|
' <TextStore IsHidden="0" Name="Stored Process" UsageVersion="0" '/
|
|
' TextRole="StoredProcessConfiguration" TextType="XML" '/
|
|
' StoredText="<?xml version="1.0" encoding="UTF-8&qu'@@
|
|
'ot;?><StoredProcess><ServerContext LogicalServerType="S'@@
|
|
'ps" OtherAllowed="false"/><ResultCapabilities Packa'@@
|
|
'ge="' @@ "&package" @@ '" Streaming="' @@ "&streaming" @@
|
|
'"/><OutputParameters/></StoredProcess>" />' /
|
|
" </Notes> "/
|
|
" <Prompts> "/
|
|
' <PromptGroup Name="Parameters" GroupType="2" IsHidden="0" '/
|
|
' PublicType="Embedded:PromptGroup" UsageVersion="1000000" '/
|
|
' GroupInfo="<PromptGroup promptId="PromptGroup_1502797359253'@@
|
|
'_802080" version="1.0"><Label><Text xml:lang='@@
|
|
'"en-US">Parameters</Text></Label></PromptGro'@@
|
|
'up>" />'/
|
|
" </Prompts> "/
|
|
"<Trees><Tree ObjRef=" treeuri "/></Trees>"/
|
|
"</ClassifierMap></Metadata><NS>SAS</NS>"/
|
|
"<Flags>268435456</Flags></AddMetadata>";
|
|
run;
|
|
|
|
filename &frefout temp;
|
|
|
|
proc metadata in= &frefin out=&frefout ;
|
|
run;
|
|
|
|
%if &mdebug=1 %then %do;
|
|
/* write the response to the log for debugging */
|
|
data _null_;
|
|
infile &frefout lrecl=1048576;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
%end;
|
|
|
|
/**
|
|
* Next, add the source code
|
|
*/
|
|
%mm_updatestpsourcecode(stp=&tree/&stpname
|
|
,stpcode="&directory/&filename"
|
|
,mdebug=&mdebug
|
|
,minify=&minify)
|
|
|
|
|
|
%end;
|
|
%else %do;
|
|
%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;
|
|
%end;
|
|
|
|
%mend mm_createstp;
|
|
|
|
|
|
%macro mf_getuser(
|
|
)/*/STORE SOURCE*/;
|
|
%local user;
|
|
|
|
%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;
|
|
%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;
|
|
%let user=&SYS_COMPUTE_SESSION_OWNER;
|
|
%end;
|
|
%else %if %symexist(_metaperson) %then %do;
|
|
%if %length(&_metaperson)=0 %then %let user=&sysuserid;
|
|
/* sometimes SAS will add @domain extension - remove for consistency */
|
|
/* but be sure to quote in case of usernames with commas */
|
|
%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));
|
|
%end;
|
|
%else %let user=&sysuserid;
|
|
|
|
%quote(&user)
|
|
|
|
%mend mf_getuser;
|
|
|
|
|
|
|
|
%macro mm_createfolder(path=,mDebug=0);
|
|
%put &sysmacroname: execution started for &path;
|
|
%local dbg errorcheck;
|
|
%if &mDebug=0 %then %let dbg=*;
|
|
|
|
%local parentFolderObjId child errorcheck paths;
|
|
%let paths=0;
|
|
%let errorcheck=1;
|
|
|
|
%if &syscc ge 4 %then %do;
|
|
%put SYSCC=&syscc - this macro requires a clean session;
|
|
%return;
|
|
%end;
|
|
|
|
data _null_;
|
|
length objId parentId objType parent child $200
|
|
folderPath $1000;
|
|
call missing (of _all_);
|
|
folderPath = "%trim(&path)";
|
|
|
|
* remove any trailing slash ;
|
|
if ( substr(folderPath,length(folderPath),1) = '/' ) then
|
|
folderPath=substr(folderPath,1,length(folderPath)-1);
|
|
|
|
* name must not be blank;
|
|
if ( folderPath = '' ) then do;
|
|
put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";
|
|
end;
|
|
|
|
* must have a starting slash ;
|
|
if ( substr(folderPath,1,1) ne '/' ) then do;
|
|
put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";
|
|
stop;
|
|
end;
|
|
|
|
* check if folder already exists ;
|
|
rc=metadata_pathobj('',cats(folderPath,"(Folder)"),"",objType,objId);
|
|
if rc ge 1 then do;
|
|
put "NOTE: Folder " folderPath " already exists!";
|
|
stop;
|
|
end;
|
|
|
|
* do not create a root (one level) folder ;
|
|
if countc(folderPath,'/')=1 then do;
|
|
put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";
|
|
stop;
|
|
end;
|
|
|
|
* check that root folder exists ;
|
|
root=cats('/',scan(folderpath,1,'/'),"(Folder)");
|
|
if metadata_pathobj('',root,"",objType,parentId)<1 then do;
|
|
put "%str(ERR)OR: " root " does not exist!";
|
|
stop;
|
|
end;
|
|
|
|
* check that parent folder exists ;
|
|
child=scan(folderPath,-1,'/');
|
|
parent=substr(folderpath,1,length(folderpath)-length(child)-1);
|
|
rc=metadata_pathobj('',cats(parent,"(Folder)"),"",objType,parentId);
|
|
if rc<1 then do;
|
|
putlog 'The following folders will be created:';
|
|
/* folder does not exist - so start from top and work down */
|
|
length newpath $1000;
|
|
paths=0;
|
|
do x=2 to countw(folderpath,'/');
|
|
newpath='';
|
|
do i=1 to x;
|
|
newpath=cats(newpath,'/',scan(folderpath,i,'/'));
|
|
end;
|
|
rc=metadata_pathobj('',cats(newpath,"(Folder)"),"",objType,parentId);
|
|
if rc<1 then do;
|
|
paths+1;
|
|
call symputx(cats('path',paths),newpath);
|
|
putlog newpath;
|
|
end;
|
|
call symputx('paths',paths);
|
|
end;
|
|
end;
|
|
else putlog "parent " parent " exists";
|
|
|
|
call symputx('parentFolderObjId',parentId,'l');
|
|
call symputx('child',child,'l');
|
|
call symputx('errorcheck',0,'l');
|
|
|
|
&dbg put (_all_)(=);
|
|
run;
|
|
|
|
%if &errorcheck=1 or &syscc ge 4 %then %return;
|
|
|
|
%if &paths>0 %then %do x=1 %to &paths;
|
|
%put executing recursive call for &&path&x;
|
|
%mm_createfolder(path=&&path&x)
|
|
%end;
|
|
%else %do;
|
|
filename __newdir temp;
|
|
options noquotelenmax;
|
|
%local inmeta;
|
|
%put creating: &path;
|
|
%let inmeta=<AddMetadata><Reposid>$METAREPOSITORY</Reposid><Metadata>
|
|
<Tree Name='&child' PublicType='Folder' TreeType='BIP Folder'
|
|
UsageVersion='1000000'><ParentTree><Tree ObjRef='&parentFolderObjId'/>
|
|
</ParentTree></Tree></Metadata><NS>SAS</NS><Flags>268435456</Flags>
|
|
</AddMetadata>;
|
|
|
|
proc metadata in="&inmeta" out=__newdir verbose;
|
|
run ;
|
|
|
|
/* check it was successful */
|
|
data _null_;
|
|
length objId parentId objType parent child $200 ;
|
|
call missing (of _all_);
|
|
rc=metadata_pathobj('',cats("&path","(Folder)"),"",objType,objId);
|
|
if rc ge 1 then do;
|
|
putlog "SUCCCESS! &path created.";
|
|
end;
|
|
else do;
|
|
putlog "%str(ERR)OR: unsuccessful attempt to create &path";
|
|
call symputx('syscc',8);
|
|
end;
|
|
run;
|
|
|
|
/* write the response to the log for debugging */
|
|
%if &mDebug ne 0 %then %do;
|
|
data _null_;
|
|
infile __newdir lrecl=32767;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
%end;
|
|
filename __newdir clear;
|
|
%end;
|
|
|
|
%put &sysmacroname: execution finished for &path;
|
|
%mend mm_createfolder;
|
|
|
|
|
|
%macro mm_deletestp(
|
|
target=
|
|
)/*/STORE SOURCE*/;
|
|
|
|
/**
|
|
* Check STP does exist
|
|
*/
|
|
%local cmtype;
|
|
data _null_;
|
|
length type uri $256;
|
|
rc=metadata_pathobj("","&target",'StoredProcess',type,uri);
|
|
call symputx('cmtype',type,'l');
|
|
call symputx('stpuri',uri,'l');
|
|
run;
|
|
%if &cmtype ne ClassifierMap %then %do;
|
|
%put NOTE: No Stored Process found at ⌖
|
|
%return;
|
|
%end;
|
|
|
|
filename __in temp lrecl=10000;
|
|
filename __out temp lrecl=10000;
|
|
data _null_ ;
|
|
file __in ;
|
|
put "<DeleteMetadata><Metadata><ClassifierMap Id='&stpuri'/>";
|
|
put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
|
|
put "</DeleteMetadata>";
|
|
run ;
|
|
proc metadata in=__in out=__out verbose;run;
|
|
|
|
/* list the result */
|
|
data _null_;infile __out; input; list; run;
|
|
|
|
filename __in clear;
|
|
filename __out clear;
|
|
|
|
/**
|
|
* Check deletion
|
|
*/
|
|
%local isgone;
|
|
data _null_;
|
|
length type uri $256;
|
|
call missing (of _all_);
|
|
rc=metadata_pathobj("","&target",'Note',type,uri);
|
|
call symputx('isgone',type,'l');
|
|
run;
|
|
%if &isgone = ClassifierMap %then %do;
|
|
%put %str(ERR)OR: STP not deleted from ⌖
|
|
%let syscc=4;
|
|
%return;
|
|
%end;
|
|
|
|
%mend mm_deletestp;
|
|
|
|
/* system macro dependencies for build process end*/
|
|
/* system macros for build process */
|
|
|
|
|
|
%macro mm_createwebservice(path=
|
|
,name=initService
|
|
,precode=
|
|
,code=ft15f001
|
|
,desc=This stp was created automagically by the mm_createwebservice macro
|
|
,mDebug=0
|
|
,server=SASApp
|
|
,replace=YES
|
|
,adapter=sasjs
|
|
)/*/STORE SOURCE*/;
|
|
|
|
%if &syscc ge 4 %then %do;
|
|
%put &=syscc - &sysmacroname will not execute in this state;
|
|
%return;
|
|
%end;
|
|
|
|
%local mD;
|
|
%if &mDebug=1 %then %let mD=;
|
|
%else %let mD=%str(*);
|
|
%&mD.put Executing mm_createwebservice.sas;
|
|
%&mD.put _local_;
|
|
|
|
* remove any trailing slash ;
|
|
%if "%substr(&path,%length(&path),1)" = "/" %then
|
|
%let path=%substr(&path,1,%length(&path)-1);
|
|
|
|
/**
|
|
* Add webout macro
|
|
* These put statements are auto generated - to change the macro, change the
|
|
* source (mm_webout) and run `build.py`
|
|
*/
|
|
filename sasjs temp;
|
|
data _null_;
|
|
file sasjs lrecl=3000 ;
|
|
put "/* Created on %sysfunc(datetime(),datetime19.) by %mf_getuser() */";
|
|
/* WEBOUT BEGIN */
|
|
put ' ';
|
|
put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y ';
|
|
put ' ,engine=DATASTEP ';
|
|
put ' ,missing=NULL ';
|
|
put ' ,showmeta=N ';
|
|
put ' ,maxobs=MAX ';
|
|
put ')/*/STORE SOURCE*/; ';
|
|
put '%local tempds colinfo fmtds i numcols stmt_obs; ';
|
|
put '%let numcols=0; ';
|
|
put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;); ';
|
|
put ' ';
|
|
put '%if &action=OPEN %then %do; ';
|
|
put ' options nobomfile; ';
|
|
put ' data _null_;file &jref encoding=''utf-8'' lrecl=200; ';
|
|
put ' put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"''; ';
|
|
put ' run; ';
|
|
put '%end; ';
|
|
put '%else %if (&action=ARR or &action=OBJ) %then %do; ';
|
|
put ' /* force variable names to always be uppercase in the JSON */ ';
|
|
put ' options validvarname=upcase; ';
|
|
put ' /* To avoid issues with _webout on EBI - such as encoding diffs and truncation ';
|
|
put ' (https://support.sas.com/kb/49/325.html) we use temporary files */ ';
|
|
put ' filename _sjs1 temp lrecl=200 ; ';
|
|
put ' data _null_; file _sjs1 encoding=''utf-8''; ';
|
|
put ' put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":"; ';
|
|
put ' run; ';
|
|
put ' /* now write to _webout 1 char at a time */ ';
|
|
put ' data _null_; ';
|
|
put ' infile _sjs1 lrecl=1 recfm=n; ';
|
|
put ' file &jref mod lrecl=1 recfm=n; ';
|
|
put ' input sourcechar $char1. @@; ';
|
|
put ' format sourcechar hex2.; ';
|
|
put ' put sourcechar char1. @@; ';
|
|
put ' run; ';
|
|
put ' filename _sjs1 clear; ';
|
|
put ' ';
|
|
put ' /* grab col defs */ ';
|
|
put ' proc contents noprint data=&ds ';
|
|
put ' out=_data_(keep=name type length format formatl formatd varnum label); ';
|
|
put ' run; ';
|
|
put ' %let colinfo=%scan(&syslast,2,.); ';
|
|
put ' proc sort data=&colinfo; ';
|
|
put ' by varnum; ';
|
|
put ' run; ';
|
|
put ' /* move meta to mac vars */ ';
|
|
put ' data _null_; ';
|
|
put ' if _n_=1 then call symputx(''numcols'',nobs,''l''); ';
|
|
put ' set &colinfo end=last nobs=nobs; ';
|
|
put ' name=upcase(name); ';
|
|
put ' /* fix formats */ ';
|
|
put ' if type=2 or type=6 then do; ';
|
|
put ' typelong=''char''; ';
|
|
put ' length fmt $49.; ';
|
|
put ' if format='''' then fmt=cats(''$'',length,''.''); ';
|
|
put ' else if formatl=0 then fmt=cats(format,''.''); ';
|
|
put ' else fmt=cats(format,formatl,''.''); ';
|
|
put ' end; ';
|
|
put ' else do; ';
|
|
put ' typelong=''num''; ';
|
|
put ' if format='''' then fmt=''best.''; ';
|
|
put ' else if formatl=0 then fmt=cats(format,''.''); ';
|
|
put ' else if formatd=0 then fmt=cats(format,formatl,''.''); ';
|
|
put ' else fmt=cats(format,formatl,''.'',formatd); ';
|
|
put ' end; ';
|
|
put ' /* 32 char unique name */ ';
|
|
put ' newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27); ';
|
|
put ' ';
|
|
put ' call symputx(cats(''name'',_n_),name,''l''); ';
|
|
put ' call symputx(cats(''newname'',_n_),newname,''l''); ';
|
|
put ' call symputx(cats(''length'',_n_),length,''l''); ';
|
|
put ' call symputx(cats(''fmt'',_n_),fmt,''l''); ';
|
|
put ' call symputx(cats(''type'',_n_),type,''l''); ';
|
|
put ' call symputx(cats(''typelong'',_n_),typelong,''l''); ';
|
|
put ' call symputx(cats(''label'',_n_),coalescec(label,name),''l''); ';
|
|
put ' run; ';
|
|
put ' ';
|
|
put ' %let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32); ';
|
|
put ' ';
|
|
put ' %if &engine=PROCJSON %then %do; ';
|
|
put ' %if &missing=STRING %then %do; ';
|
|
put ' %put &sysmacroname: Special Missings not supported in proc json.; ';
|
|
put ' %put &sysmacroname: Switching to DATASTEP engine; ';
|
|
put ' %goto datastep; ';
|
|
put ' %end; ';
|
|
put ' data &tempds; ';
|
|
put ' set &ds; ';
|
|
put ' &stmt_obs; ';
|
|
put ' %if &fmt=N %then format _numeric_ best32.;; ';
|
|
put ' /* PRETTY is necessary to avoid line truncation in large files */ ';
|
|
put ' filename _sjs2 temp lrecl=131068 encoding=''utf-8''; ';
|
|
put ' proc json out=_sjs2 pretty ';
|
|
put ' %if &action=ARR %then nokeys ; ';
|
|
put ' ;export &tempds / nosastags fmtnumeric; ';
|
|
put ' run; ';
|
|
put ' /* send back to webout */ ';
|
|
put ' data _null_; ';
|
|
put ' infile _sjs2 lrecl=1 recfm=n; ';
|
|
put ' file &jref mod lrecl=1 recfm=n; ';
|
|
put ' input sourcechar $char1. @@; ';
|
|
put ' format sourcechar hex2.; ';
|
|
put ' put sourcechar char1. @@; ';
|
|
put ' run; ';
|
|
put ' filename _sjs2 clear; ';
|
|
put ' %end; ';
|
|
put ' %else %if &engine=DATASTEP %then %do; ';
|
|
put ' %datastep: ';
|
|
put ' %if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1 ';
|
|
put ' %then %do; ';
|
|
put ' %put &sysmacroname: &ds NOT FOUND!!!; ';
|
|
put ' %return; ';
|
|
put ' %end; ';
|
|
put ' ';
|
|
put ' %if &fmt=Y %then %do; ';
|
|
put ' data _data_; ';
|
|
put ' /* rename on entry */ ';
|
|
put ' set &ds(rename=( ';
|
|
put ' %do i=1 %to &numcols; ';
|
|
put ' &&name&i=&&newname&i ';
|
|
put ' %end; ';
|
|
put ' )); ';
|
|
put ' %do i=1 %to &numcols; ';
|
|
put ' /* formatted values can be up to length 32767 */ ';
|
|
put ' length &&name&i $32767; ';
|
|
put ' %if &&typelong&i=num %then %do; ';
|
|
put ' &&name&i=left(put(&&newname&i,&&fmt&i)); ';
|
|
put ' %end; ';
|
|
put ' %else %do; ';
|
|
put ' &&name&i=put(&&newname&i,&&fmt&i); ';
|
|
put ' %end; ';
|
|
put ' drop &&newname&i; ';
|
|
put ' %end; ';
|
|
put ' if _error_ then call symputx(''syscc'',1012); ';
|
|
put ' run; ';
|
|
put ' %let fmtds=&syslast; ';
|
|
put ' %end; ';
|
|
put ' ';
|
|
put ' proc format; /* credit yabwon for special null removal */ ';
|
|
put ' value bart (default=40) ';
|
|
put ' %if &missing=NULL %then %do; ';
|
|
put ' ._ - .z = null ';
|
|
put ' %end; ';
|
|
put ' %else %do; ';
|
|
put ' ._ = [quote()] ';
|
|
put ' . = null ';
|
|
put ' .a - .z = [quote()] ';
|
|
put ' %end; ';
|
|
put ' other = [best.]; ';
|
|
put ' ';
|
|
put ' data &tempds; ';
|
|
put ' attrib _all_ label=''''; ';
|
|
put ' %do i=1 %to &numcols; ';
|
|
put ' %if &&typelong&i=char or &fmt=Y %then %do; ';
|
|
put ' length &&name&i $32767; ';
|
|
put ' format &&name&i $32767.; ';
|
|
put ' %end; ';
|
|
put ' %end; ';
|
|
put ' %if &fmt=Y %then %do; ';
|
|
put ' set &fmtds; ';
|
|
put ' %end; ';
|
|
put ' %else %do; ';
|
|
put ' set &ds; ';
|
|
put ' %end; ';
|
|
put ' &stmt_obs; ';
|
|
put ' format _numeric_ bart.; ';
|
|
put ' %do i=1 %to &numcols; ';
|
|
put ' %if &&typelong&i=char or &fmt=Y %then %do; ';
|
|
put ' if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do; ';
|
|
put ' &&name&i=''"''!!trim( ';
|
|
put ' prxchange(''s/"/\\"/'',-1, /* double quote */ ';
|
|
put ' prxchange(''s/\x0A/\n/'',-1, /* new line */ ';
|
|
put ' prxchange(''s/\x0D/\r/'',-1, /* carriage return */ ';
|
|
put ' prxchange(''s/\x09/\\t/'',-1, /* tab */ ';
|
|
put ' prxchange(''s/\x00/\\u0000/'',-1, /* NUL */ ';
|
|
put ' prxchange(''s/\x0E/\\u000E/'',-1, /* SS */ ';
|
|
put ' prxchange(''s/\x0F/\\u000F/'',-1, /* SF */ ';
|
|
put ' prxchange(''s/\x01/\\u0001/'',-1, /* SOH */ ';
|
|
put ' prxchange(''s/\x02/\\u0002/'',-1, /* STX */ ';
|
|
put ' prxchange(''s/\x10/\\u0010/'',-1, /* DLE */ ';
|
|
put ' prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */ ';
|
|
put ' prxchange(''s/\\/\\\\/'',-1,&&name&i) ';
|
|
put ' ))))))))))))!!''"''; ';
|
|
put ' end; ';
|
|
put ' else &&name&i=quote(cats(&&name&i)); ';
|
|
put ' %end; ';
|
|
put ' %end; ';
|
|
put ' run; ';
|
|
put ' ';
|
|
put ' filename _sjs3 temp lrecl=131068 ; ';
|
|
put ' data _null_; ';
|
|
put ' file _sjs3 encoding=''utf-8''; ';
|
|
put ' if _n_=1 then put "["; ';
|
|
put ' set &tempds; ';
|
|
put ' if _n_>1 then put "," @; put ';
|
|
put ' %if &action=ARR %then "[" ; %else "{" ; ';
|
|
put ' %do i=1 %to &numcols; ';
|
|
put ' %if &i>1 %then "," ; ';
|
|
put ' %if &action=OBJ %then """&&name&i"":" ; ';
|
|
put ' "&&name&i"n /* name literal for reserved variable names */ ';
|
|
put ' %end; ';
|
|
put ' %if &action=ARR %then "]" ; %else "}" ; ; ';
|
|
put ' ';
|
|
put ' /* close out the table */ ';
|
|
put ' data _null_; ';
|
|
put ' file _sjs3 mod encoding=''utf-8''; ';
|
|
put ' put '']''; ';
|
|
put ' run; ';
|
|
put ' data _null_; ';
|
|
put ' infile _sjs3 lrecl=1 recfm=n; ';
|
|
put ' file &jref mod lrecl=1 recfm=n; ';
|
|
put ' input sourcechar $char1. @@; ';
|
|
put ' format sourcechar hex2.; ';
|
|
put ' put sourcechar char1. @@; ';
|
|
put ' run; ';
|
|
put ' filename _sjs3 clear; ';
|
|
put ' %end; ';
|
|
put ' ';
|
|
put ' proc sql; ';
|
|
put ' drop table &colinfo, &tempds; ';
|
|
put ' ';
|
|
put ' %if %substr(&showmeta,1,1)=Y %then %do; ';
|
|
put ' filename _sjs4 temp lrecl=131068 encoding=''utf-8''; ';
|
|
put ' data _null_; ';
|
|
put ' file _sjs4; ';
|
|
put ' length label $350; ';
|
|
put ' put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{"; ';
|
|
put ' do i=1 to &numcols; ';
|
|
put ' name=quote(trim(symget(cats(''name'',i)))); ';
|
|
put ' format=quote(trim(symget(cats(''fmt'',i)))); ';
|
|
put ' label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i))))); ';
|
|
put ' length=quote(trim(symget(cats(''length'',i)))); ';
|
|
put ' type=quote(trim(symget(cats(''typelong'',i)))); ';
|
|
put ' if i>1 then put "," @@; ';
|
|
put ' put name '':{"format":'' format '',"label":'' label ';
|
|
put ' '',"length":'' length '',"type":'' type ''}''; ';
|
|
put ' end; ';
|
|
put ' put ''}}''; ';
|
|
put ' run; ';
|
|
put ' /* send back to webout */ ';
|
|
put ' data _null_; ';
|
|
put ' infile _sjs4 lrecl=1 recfm=n; ';
|
|
put ' file &jref mod lrecl=1 recfm=n; ';
|
|
put ' input sourcechar $char1. @@; ';
|
|
put ' format sourcechar hex2.; ';
|
|
put ' put sourcechar char1. @@; ';
|
|
put ' run; ';
|
|
put ' filename _sjs4 clear; ';
|
|
put ' %end; ';
|
|
put '%end; ';
|
|
put ' ';
|
|
put '%else %if &action=CLOSE %then %do; ';
|
|
put ' data _null_; file &jref encoding=''utf-8'' mod ; ';
|
|
put ' put "}"; ';
|
|
put ' run; ';
|
|
put '%end; ';
|
|
put '%mend mp_jsonout; ';
|
|
put ' ';
|
|
put '%macro mf_getuser( ';
|
|
put ')/*/STORE SOURCE*/; ';
|
|
put ' %local user; ';
|
|
put ' ';
|
|
put ' %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; ';
|
|
put ' %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; ';
|
|
put ' %let user=&SYS_COMPUTE_SESSION_OWNER; ';
|
|
put ' %end; ';
|
|
put ' %else %if %symexist(_metaperson) %then %do; ';
|
|
put ' %if %length(&_metaperson)=0 %then %let user=&sysuserid; ';
|
|
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
|
|
put ' /* but be sure to quote in case of usernames with commas */ ';
|
|
put ' %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); ';
|
|
put ' %end; ';
|
|
put ' %else %let user=&sysuserid; ';
|
|
put ' ';
|
|
put ' %quote(&user) ';
|
|
put ' ';
|
|
put '%mend mf_getuser; ';
|
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL ';
|
|
put ' ,showmeta=N,maxobs=MAX ';
|
|
put '); ';
|
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug ';
|
|
put ' sasjs_tables; ';
|
|
put '%local i tempds jsonengine; ';
|
|
put ' ';
|
|
put '/* see https://github.com/sasjs/core/issues/41 */ ';
|
|
put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON; ';
|
|
put '%else %let jsonengine=DATASTEP; ';
|
|
put ' ';
|
|
put ' ';
|
|
put '%if &action=FETCH %then %do; ';
|
|
put ' %if %str(&_debug) ge 131 %then %do; ';
|
|
put ' options mprint notes mprintnest; ';
|
|
put ' %end; ';
|
|
put ' %let _webin_file_count=%eval(&_webin_file_count+0); ';
|
|
put ' /* now read in the data */ ';
|
|
put ' %do i=1 %to &_webin_file_count; ';
|
|
put ' %if &_webin_file_count=1 %then %do; ';
|
|
put ' %let _webin_fileref1=&_webin_fileref; ';
|
|
put ' %let _webin_name1=&_webin_name; ';
|
|
put ' %end; ';
|
|
put ' data _null_; ';
|
|
put ' infile &&_webin_fileref&i termstr=crlf; ';
|
|
put ' input; ';
|
|
put ' call symputx(''input_statement'',_infile_); ';
|
|
put ' putlog "&&_webin_name&i input statement: " _infile_; ';
|
|
put ' stop; ';
|
|
put ' data &&_webin_name&i; ';
|
|
put ' infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8''; ';
|
|
put ' input &input_statement; ';
|
|
put ' %if %str(&_debug) ge 131 %then %do; ';
|
|
put ' if _n_<20 then putlog _infile_; ';
|
|
put ' %end; ';
|
|
put ' run; ';
|
|
put ' %let sasjs_tables=&sasjs_tables &&_webin_name&i; ';
|
|
put ' %end; ';
|
|
put '%end; ';
|
|
put ' ';
|
|
put '%else %if &action=OPEN %then %do; ';
|
|
put ' /* fix encoding */ ';
|
|
put ' OPTIONS NOBOMFILE; ';
|
|
put ' ';
|
|
put ' /** ';
|
|
put ' * check xengine type to avoid the below err message: ';
|
|
put ' * > Function is only valid for filerefs using the CACHE access method. ';
|
|
put ' */ ';
|
|
put ' data _null_; ';
|
|
put ' set sashelp.vextfl(where=(fileref="_WEBOUT")); ';
|
|
put ' if xengine=''STREAM'' then do; ';
|
|
put ' rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8"); ';
|
|
put ' end; ';
|
|
put ' run; ';
|
|
put ' ';
|
|
put ' /* setup json */ ';
|
|
put ' data _null_;file &fref encoding=''utf-8''; ';
|
|
put ' %if %str(&_debug) ge 131 %then %do; ';
|
|
put ' put ''>>weboutBEGIN<<''; ';
|
|
put ' %end; ';
|
|
put ' put ''{"SYSDATE" : "'' "&SYSDATE" ''"''; ';
|
|
put ' put '',"SYSTIME" : "'' "&SYSTIME" ''"''; ';
|
|
put ' run; ';
|
|
put ' ';
|
|
put '%end; ';
|
|
put ' ';
|
|
put '%else %if &action=ARR or &action=OBJ %then %do; ';
|
|
put ' %mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref ';
|
|
put ' ,engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs ';
|
|
put ' ) ';
|
|
put '%end; ';
|
|
put '%else %if &action=CLOSE %then %do; ';
|
|
put ' /* To avoid issues with _webout on EBI we use a temporary file */ ';
|
|
put ' filename _sjsref temp lrecl=131068; ';
|
|
put ' %if %str(&_debug) ge 131 %then %do; ';
|
|
put ' /* if debug mode, send back first 10 records of each work table also */ ';
|
|
put ' data;run;%let tempds=%scan(&syslast,2,.); ';
|
|
put ' ods output Members=&tempds; ';
|
|
put ' proc datasets library=WORK memtype=data; ';
|
|
put ' %local wtcnt;%let wtcnt=0; ';
|
|
put ' data _null_; ';
|
|
put ' set &tempds; ';
|
|
put ' if not (upcase(name) =:"DATA"); /* ignore temp datasets */ ';
|
|
put ' i+1; ';
|
|
put ' call symputx(cats(''wt'',i),name,''l''); ';
|
|
put ' call symputx(''wtcnt'',i,''l''); ';
|
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
|
put ' put ",""WORK"":{"; ';
|
|
put ' %do i=1 %to &wtcnt; ';
|
|
put ' %let wt=&&wt&i; ';
|
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
|
put ' dsid=open("WORK.&wt",''is''); ';
|
|
put ' nlobs=attrn(dsid,''NLOBS''); ';
|
|
put ' nvars=attrn(dsid,''NVARS''); ';
|
|
put ' rc=close(dsid); ';
|
|
put ' if &i>1 then put '',''@; ';
|
|
put ' put " ""&wt"" : {"; ';
|
|
put ' put ''"nlobs":'' nlobs; ';
|
|
put ' put '',"nvars":'' nvars; ';
|
|
put ' %mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10) ';
|
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
|
put ' put "}"; ';
|
|
put ' %end; ';
|
|
put ' data _null_; file _sjsref mod encoding=''utf-8''; ';
|
|
put ' put "}"; ';
|
|
put ' run; ';
|
|
put ' %end; ';
|
|
put ' /* close off json */ ';
|
|
put ' data _null_;file _sjsref mod encoding=''utf-8''; ';
|
|
put ' length SYSPROCESSNAME syserrortext syswarningtext autoexec $512; ';
|
|
put ' put ",""_DEBUG"" : ""&_debug"" "; ';
|
|
put ' _METAUSER=quote(trim(symget(''_METAUSER''))); ';
|
|
put ' put ",""_METAUSER"": " _METAUSER; ';
|
|
put ' _METAPERSON=quote(trim(symget(''_METAPERSON''))); ';
|
|
put ' put '',"_METAPERSON": '' _METAPERSON; ';
|
|
put ' _PROGRAM=quote(trim(resolve(symget(''_PROGRAM'')))); ';
|
|
put ' put '',"_PROGRAM" : '' _PROGRAM ; ';
|
|
put ' autoexec=quote(urlencode(trim(getoption(''autoexec'')))); ';
|
|
put ' put '',"AUTOEXEC" : '' autoexec; ';
|
|
put ' put ",""MF_GETUSER"" : ""%mf_getuser()"" "; ';
|
|
put ' put ",""SYSCC"" : ""&syscc"" "; ';
|
|
put ' put ",""SYSENCODING"" : ""&sysencoding"" "; ';
|
|
put ' syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"''); ';
|
|
put ' put '',"SYSERRORTEXT" : '' syserrortext; ';
|
|
put ' put ",""SYSHOSTNAME"" : ""&syshostname"" "; ';
|
|
put ' put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" "; ';
|
|
put ' put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" "; ';
|
|
put ' SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME))); ';
|
|
put ' put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME; ';
|
|
put ' put ",""SYSJOBID"" : ""&sysjobid"" "; ';
|
|
put ' put ",""SYSSCPL"" : ""&sysscpl"" "; ';
|
|
put ' put ",""SYSSITE"" : ""&syssite"" "; ';
|
|
put ' put ",""SYSUSERID"" : ""&sysuserid"" "; ';
|
|
put ' sysvlong=quote(trim(symget(''sysvlong''))); ';
|
|
put ' put '',"SYSVLONG" : '' sysvlong; ';
|
|
put ' syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"''); ';
|
|
put ' put '',"SYSWARNINGTEXT" : '' syswarningtext; ';
|
|
put ' put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" ''; ';
|
|
put ' length memsize $32; ';
|
|
put ' memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)"; ';
|
|
put ' memsize=quote(cats(memsize)); ';
|
|
put ' put '',"MEMSIZE" : '' memsize; ';
|
|
put ' put "}" @; ';
|
|
put ' %if %str(&_debug) ge 131 %then %do; ';
|
|
put ' put ''>>weboutEND<<''; ';
|
|
put ' %end; ';
|
|
put ' run; ';
|
|
put ' /* now write to _webout 1 char at a time */ ';
|
|
put ' data _null_; ';
|
|
put ' infile _sjsref lrecl=1 recfm=n; ';
|
|
put ' file &fref mod lrecl=1 recfm=n; ';
|
|
put ' input sourcechar $char1. @@; ';
|
|
put ' format sourcechar hex2.; ';
|
|
put ' put sourcechar char1. @@; ';
|
|
put ' run; ';
|
|
put ' filename _sjsref clear; ';
|
|
put ' ';
|
|
put '%end; ';
|
|
put ' ';
|
|
put '%mend mm_webout; ';
|
|
/* WEBOUT END */
|
|
put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO);';
|
|
put ' %mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt,missing=&missing';
|
|
put ' ,showmeta=&showmeta';
|
|
put ' )';
|
|
put '%mend;';
|
|
run;
|
|
|
|
/* add precode and code */
|
|
%local work tmpfile;
|
|
%let work=%sysfunc(pathname(work));
|
|
%let tmpfile=__mm_createwebservice.temp;
|
|
%local x fref freflist mod;
|
|
%let freflist= &adapter &precode &code ;
|
|
%do x=1 %to %sysfunc(countw(&freflist));
|
|
%if &x>1 %then %let mod=mod;
|
|
|
|
%let fref=%scan(&freflist,&x);
|
|
%&mD.put &sysmacroname: adding &fref;
|
|
data _null_;
|
|
file "&work/&tmpfile" lrecl=3000 &mod;
|
|
infile &fref;
|
|
input;
|
|
put _infile_;
|
|
run;
|
|
%end;
|
|
|
|
/* create the metadata folder if not already there */
|
|
%mm_createfolder(path=&path)
|
|
%if &syscc ge 4 %then %return;
|
|
|
|
%if %upcase(&replace)=YES %then %do;
|
|
%mm_deletestp(target=&path/&name)
|
|
%end;
|
|
|
|
/* create the web service */
|
|
%mm_createstp(stpname=&name
|
|
,filename=&tmpfile
|
|
,directory=&work
|
|
,tree=&path
|
|
,stpdesc=&desc
|
|
,mDebug=&mdebug
|
|
,server=&server
|
|
,stptype=2)
|
|
|
|
/* find the web app url */
|
|
%local url;
|
|
%let url=localhost/SASStoredProcess;
|
|
data _null_;
|
|
length url $128;
|
|
rc=METADATA_GETURI("Stored Process Web App",url);
|
|
if rc=0 then call symputx('url',url,'l');
|
|
run;
|
|
|
|
%put &sysmacroname: STP &name successfully created in &path;
|
|
%put Check it out here:;
|
|
%put ;%put ;%put ;
|
|
%put &url?_PROGRAM=&path/&name;
|
|
%put ;%put ;%put ;
|
|
|
|
%mend mm_createwebservice;
|
|
|
|
|
|
/* system macros for build process end */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%let path=services;
|
|
|
|
%let path=services/common;
|
|
|
|
%let service=appinit;
|
|
filename sascode temp lrecl=32767;
|
|
data _null_;
|
|
file sascode;
|
|
|
|
put '%macro mf_getuser(';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local user;';
|
|
put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;';
|
|
put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;';
|
|
put '%let user=&SYS_COMPUTE_SESSION_OWNER;';
|
|
put '%end;';
|
|
put '%else %if %symexist(_metaperson) %then %do;';
|
|
put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;';
|
|
put '/* sometimes SAS will add @domain extension - remove for consistency */';
|
|
put '/* but be sure to quote in case of usernames with commas */';
|
|
put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));';
|
|
put '%end;';
|
|
put '%else %let user=&sysuserid;';
|
|
put '%quote(&user)';
|
|
put '%mend mf_getuser;';
|
|
put '/**';
|
|
put '@file mp_jsonout.sas';
|
|
put '@brief Writes JSON in SASjs format to a fileref';
|
|
put '@details This macro can be used to OPEN a JSON stream and send one or more';
|
|
put 'tables as arrays of rows, where each row can be an object or a nested array.';
|
|
put 'There are two engines available - DATASTEP or PROCJSON.';
|
|
put 'PROC JSON is fast but will produce errs like the ones below if';
|
|
put 'special chars are encountered.';
|
|
put '> (ERR)OR: Some code points did not transcode.';
|
|
put '> An object or array close is not valid at this point in the JSON text.';
|
|
put '> Date value out of range';
|
|
put 'If this happens, try running with ENGINE=DATASTEP.';
|
|
put 'The DATASTEP engine is used to handle special SAS missing numerics, and';
|
|
put 'can also convert entire datasets to formatted values. Output JSON is always';
|
|
put 'in UTF-8.';
|
|
put 'Usage:';
|
|
put 'filename tmp temp;';
|
|
put 'data class; set sashelp.class;run;';
|
|
put '%mp_jsonout(OPEN,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)';
|
|
put '%mp_jsonout(CLOSE,jref=tmp)';
|
|
put 'data _null_;';
|
|
put 'infile tmp;';
|
|
put 'input;putlog _infile_;';
|
|
put 'run;';
|
|
put 'If you are building web apps with SAS then you are strongly encouraged to use';
|
|
put 'the mX_createwebservice macros in combination with the';
|
|
put '[sasjs adapter](https://github.com/sasjs/adapter).';
|
|
put 'For more information see https://sasjs.io';
|
|
put '@param [in] action Valid values:';
|
|
put '@li OPEN - opens the JSON';
|
|
put '@li OBJ - sends a table with each row as an object';
|
|
put '@li ARR - sends a table with each row in an array';
|
|
put '@li CLOSE - closes the JSON';
|
|
put '@param [in] ds The dataset to send. Must be a work table.';
|
|
put '@param [out] jref= (_webout) The fileref to which to send the JSON';
|
|
put '@param [out] dslabel= The name to give the table in the exported JSON';
|
|
put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table';
|
|
put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:';
|
|
put '@li PROCJSON (default)';
|
|
put '@li DATASTEP (more reliable when data has non standard characters)';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to JSON';
|
|
put '<h4> Related Macros </h4>';
|
|
put '@li mp_ds2fmtds.sas';
|
|
put '@version 9.2';
|
|
put '@author Allan Bowe';
|
|
put '@source https://github.com/sasjs/core';
|
|
put '**/';
|
|
put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y';
|
|
put ',engine=DATASTEP';
|
|
put ',missing=NULL';
|
|
put ',showmeta=N';
|
|
put ',maxobs=MAX';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local tempds colinfo fmtds i numcols stmt_obs;';
|
|
put '%let numcols=0;';
|
|
put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);';
|
|
put '%if &action=OPEN %then %do;';
|
|
put 'options nobomfile;';
|
|
put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;';
|
|
put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if (&action=ARR or &action=OBJ) %then %do;';
|
|
put '/* force variable names to always be uppercase in the JSON */';
|
|
put 'options validvarname=upcase;';
|
|
put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation';
|
|
put '(https://support.sas.com/kb/49/325.html) we use temporary files */';
|
|
put 'filename _sjs1 temp lrecl=200 ;';
|
|
put 'data _null_; file _sjs1 encoding=''utf-8'';';
|
|
put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs1 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs1 clear;';
|
|
put '/* grab col defs */';
|
|
put 'proc contents noprint data=&ds';
|
|
put 'out=_data_(keep=name type length format formatl formatd varnum label);';
|
|
put 'run;';
|
|
put '%let colinfo=%scan(&syslast,2,.);';
|
|
put 'proc sort data=&colinfo;';
|
|
put 'by varnum;';
|
|
put 'run;';
|
|
put '/* move meta to mac vars */';
|
|
put 'data _null_;';
|
|
put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');';
|
|
put 'set &colinfo end=last nobs=nobs;';
|
|
put 'name=upcase(name);';
|
|
put '/* fix formats */';
|
|
put 'if type=2 or type=6 then do;';
|
|
put 'typelong=''char'';';
|
|
put 'length fmt $49.;';
|
|
put 'if format='''' then fmt=cats(''$'',length,''.'');';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'');';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'typelong=''num'';';
|
|
put 'if format='''' then fmt=''best.'';';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else if formatd=0 then fmt=cats(format,formatl,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'',formatd);';
|
|
put 'end;';
|
|
put '/* 32 char unique name */';
|
|
put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);';
|
|
put 'call symputx(cats(''name'',_n_),name,''l'');';
|
|
put 'call symputx(cats(''newname'',_n_),newname,''l'');';
|
|
put 'call symputx(cats(''length'',_n_),length,''l'');';
|
|
put 'call symputx(cats(''fmt'',_n_),fmt,''l'');';
|
|
put 'call symputx(cats(''type'',_n_),type,''l'');';
|
|
put 'call symputx(cats(''typelong'',_n_),typelong,''l'');';
|
|
put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');';
|
|
put 'run;';
|
|
put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);';
|
|
put '%if &engine=PROCJSON %then %do;';
|
|
put '%if &missing=STRING %then %do;';
|
|
put '%put &sysmacroname: Special Missings not supported in proc json.;';
|
|
put '%put &sysmacroname: Switching to DATASTEP engine;';
|
|
put '%goto datastep;';
|
|
put '%end;';
|
|
put 'data &tempds;';
|
|
put 'set &ds;';
|
|
put '&stmt_obs;';
|
|
put '%if &fmt=N %then format _numeric_ best32.;;';
|
|
put '/* PRETTY is necessary to avoid line truncation in large files */';
|
|
put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'proc json out=_sjs2 pretty';
|
|
put '%if &action=ARR %then nokeys ;';
|
|
put ';export &tempds / nosastags fmtnumeric;';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs2 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs2 clear;';
|
|
put '%end;';
|
|
put '%else %if &engine=DATASTEP %then %do;';
|
|
put '%datastep:';
|
|
put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1';
|
|
put '%then %do;';
|
|
put '%put &sysmacroname: &ds NOT FOUND!!!;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'data _data_;';
|
|
put '/* rename on entry */';
|
|
put 'set &ds(rename=(';
|
|
put '%do i=1 %to &numcols;';
|
|
put '&&name&i=&&newname&i';
|
|
put '%end;';
|
|
put '));';
|
|
put '%do i=1 %to &numcols;';
|
|
put '/* formatted values can be up to length 32767 */';
|
|
put 'length &&name&i $32767;';
|
|
put '%if &&typelong&i=num %then %do;';
|
|
put '&&name&i=left(put(&&newname&i,&&fmt&i));';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '&&name&i=put(&&newname&i,&&fmt&i);';
|
|
put '%end;';
|
|
put 'drop &&newname&i;';
|
|
put '%end;';
|
|
put 'if _error_ then call symputx(''syscc'',1012);';
|
|
put 'run;';
|
|
put '%let fmtds=&syslast;';
|
|
put '%end;';
|
|
put 'proc format; /* credit yabwon for special null removal */';
|
|
put 'value bart (default=40)';
|
|
put '%if &missing=NULL %then %do;';
|
|
put '._ - .z = null';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '._ = [quote()]';
|
|
put '. = null';
|
|
put '.a - .z = [quote()]';
|
|
put '%end;';
|
|
put 'other = [best.];';
|
|
put 'data &tempds;';
|
|
put 'attrib _all_ label='''';';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'length &&name&i $32767;';
|
|
put 'format &&name&i $32767.;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'set &fmtds;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'set &ds;';
|
|
put '%end;';
|
|
put '&stmt_obs;';
|
|
put 'format _numeric_ bart.;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;';
|
|
put '&&name&i=''"''!!trim(';
|
|
put 'prxchange(''s/"/\\"/'',-1, /* double quote */';
|
|
put 'prxchange(''s/\x0A/\n/'',-1, /* new line */';
|
|
put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */';
|
|
put 'prxchange(''s/\x09/\\t/'',-1, /* tab */';
|
|
put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */';
|
|
put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */';
|
|
put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */';
|
|
put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */';
|
|
put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */';
|
|
put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */';
|
|
put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */';
|
|
put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)';
|
|
put '))))))))))))!!''"'';';
|
|
put 'end;';
|
|
put 'else &&name&i=quote(cats(&&name&i));';
|
|
put '%end;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put 'filename _sjs3 temp lrecl=131068 ;';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 encoding=''utf-8'';';
|
|
put 'if _n_=1 then put "[";';
|
|
put 'set &tempds;';
|
|
put 'if _n_>1 then put "," @; put';
|
|
put '%if &action=ARR %then "[" ; %else "{" ;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &i>1 %then "," ;';
|
|
put '%if &action=OBJ %then """&&name&i"":" ;';
|
|
put '"&&name&i"n /* name literal for reserved variable names */';
|
|
put '%end;';
|
|
put '%if &action=ARR %then "]" ; %else "}" ; ;';
|
|
put '/* close out the table */';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 mod encoding=''utf-8'';';
|
|
put 'put '']'';';
|
|
put 'run;';
|
|
put 'data _null_;';
|
|
put 'infile _sjs3 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs3 clear;';
|
|
put '%end;';
|
|
put 'proc sql;';
|
|
put 'drop table &colinfo, &tempds;';
|
|
put '%if %substr(&showmeta,1,1)=Y %then %do;';
|
|
put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'data _null_;';
|
|
put 'file _sjs4;';
|
|
put 'length label $350;';
|
|
put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";';
|
|
put 'do i=1 to &numcols;';
|
|
put 'name=quote(trim(symget(cats(''name'',i))));';
|
|
put 'format=quote(trim(symget(cats(''fmt'',i))));';
|
|
put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));';
|
|
put 'length=quote(trim(symget(cats(''length'',i))));';
|
|
put 'type=quote(trim(symget(cats(''typelong'',i))));';
|
|
put 'if i>1 then put "," @@;';
|
|
put 'put name '':{"format":'' format '',"label":'' label';
|
|
put ''',"length":'' length '',"type":'' type ''}'';';
|
|
put 'end;';
|
|
put 'put ''}}'';';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs4 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs4 clear;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put 'data _null_; file &jref encoding=''utf-8'' mod ;';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%mend mp_jsonout;';
|
|
put '/**';
|
|
put '@file mm_webout.sas';
|
|
put '@brief Send data to/from SAS Stored Processes';
|
|
put '@details This macro should be added to the start of each Stored Process,';
|
|
put '**immediately** followed by a call to:';
|
|
put '%mm_webout(FETCH)';
|
|
put 'This will read all the input data and create same-named SAS datasets in the';
|
|
put 'WORK library. You can then insert your code, and send data back using the';
|
|
put 'following syntax:';
|
|
put 'data some datasets; * make some data ;';
|
|
put 'retain some columns;';
|
|
put 'run;';
|
|
put '%mm_webout(OPEN)';
|
|
put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;';
|
|
put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;';
|
|
put 'Finally, wrap everything up send some helpful system variables too';
|
|
put '%mm_webout(CLOSE)';
|
|
put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE';
|
|
put '@param [in] ds The dataset to send back to the frontend';
|
|
put '@param [out] dslabel= Value to use instead of table name for sending to JSON';
|
|
put '@param [in] fmt=(Y) Set to N to send back unformatted values';
|
|
put '@param [out] fref= (_webout) The fileref to which to write the JSON';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to output JSON';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '@li mp_jsonout.sas';
|
|
put '@version 9.3';
|
|
put '@author Allan Bowe';
|
|
put '**/';
|
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL';
|
|
put ',showmeta=N,maxobs=MAX';
|
|
put ');';
|
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug';
|
|
put 'sasjs_tables;';
|
|
put '%local i tempds jsonengine;';
|
|
put '/* see https://github.com/sasjs/core/issues/41 */';
|
|
put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;';
|
|
put '%else %let jsonengine=DATASTEP;';
|
|
put '%if &action=FETCH %then %do;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'options mprint notes mprintnest;';
|
|
put '%end;';
|
|
put '%let _webin_file_count=%eval(&_webin_file_count+0);';
|
|
put '/* now read in the data */';
|
|
put '%do i=1 %to &_webin_file_count;';
|
|
put '%if &_webin_file_count=1 %then %do;';
|
|
put '%let _webin_fileref1=&_webin_fileref;';
|
|
put '%let _webin_name1=&_webin_name;';
|
|
put '%end;';
|
|
put 'data _null_;';
|
|
put 'infile &&_webin_fileref&i termstr=crlf;';
|
|
put 'input;';
|
|
put 'call symputx(''input_statement'',_infile_);';
|
|
put 'putlog "&&_webin_name&i input statement: " _infile_;';
|
|
put 'stop;';
|
|
put 'data &&_webin_name&i;';
|
|
put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';';
|
|
put 'input &input_statement;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'if _n_<20 then putlog _infile_;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=OPEN %then %do;';
|
|
put '/* fix encoding */';
|
|
put 'OPTIONS NOBOMFILE;';
|
|
put '/**';
|
|
put '* check xengine type to avoid the below err message:';
|
|
put '* > Function is only valid for filerefs using the CACHE access method.';
|
|
put '*/';
|
|
put 'data _null_;';
|
|
put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));';
|
|
put 'if xengine=''STREAM'' then do;';
|
|
put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");';
|
|
put 'end;';
|
|
put 'run;';
|
|
put '/* setup json */';
|
|
put 'data _null_;file &fref encoding=''utf-8'';';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutBEGIN<<'';';
|
|
put '%end;';
|
|
put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';';
|
|
put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if &action=ARR or &action=OBJ %then %do;';
|
|
put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref';
|
|
put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs';
|
|
put ')';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put '/* To avoid issues with _webout on EBI we use a temporary file */';
|
|
put 'filename _sjsref temp lrecl=131068;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put '/* if debug mode, send back first 10 records of each work table also */';
|
|
put 'data;run;%let tempds=%scan(&syslast,2,.);';
|
|
put 'ods output Members=&tempds;';
|
|
put 'proc datasets library=WORK memtype=data;';
|
|
put '%local wtcnt;%let wtcnt=0;';
|
|
put 'data _null_;';
|
|
put 'set &tempds;';
|
|
put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */';
|
|
put 'i+1;';
|
|
put 'call symputx(cats(''wt'',i),name,''l'');';
|
|
put 'call symputx(''wtcnt'',i,''l'');';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put ",""WORK"":{";';
|
|
put '%do i=1 %to &wtcnt;';
|
|
put '%let wt=&&wt&i;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'dsid=open("WORK.&wt",''is'');';
|
|
put 'nlobs=attrn(dsid,''NLOBS'');';
|
|
put 'nvars=attrn(dsid,''NVARS'');';
|
|
put 'rc=close(dsid);';
|
|
put 'if &i>1 then put '',''@;';
|
|
put 'put " ""&wt"" : {";';
|
|
put 'put ''"nlobs":'' nlobs;';
|
|
put 'put '',"nvars":'' nvars;';
|
|
put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put '%end;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '/* close off json */';
|
|
put 'data _null_;file _sjsref mod encoding=''utf-8'';';
|
|
put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;';
|
|
put 'put ",""_DEBUG"" : ""&_debug"" ";';
|
|
put '_METAUSER=quote(trim(symget(''_METAUSER'')));';
|
|
put 'put ",""_METAUSER"": " _METAUSER;';
|
|
put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));';
|
|
put 'put '',"_METAPERSON": '' _METAPERSON;';
|
|
put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));';
|
|
put 'put '',"_PROGRAM" : '' _PROGRAM ;';
|
|
put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));';
|
|
put 'put '',"AUTOEXEC" : '' autoexec;';
|
|
put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";';
|
|
put 'put ",""SYSCC"" : ""&syscc"" ";';
|
|
put 'put ",""SYSENCODING"" : ""&sysencoding"" ";';
|
|
put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSERRORTEXT" : '' syserrortext;';
|
|
put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";';
|
|
put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";';
|
|
put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";';
|
|
put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));';
|
|
put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;';
|
|
put 'put ",""SYSJOBID"" : ""&sysjobid"" ";';
|
|
put 'put ",""SYSSCPL"" : ""&sysscpl"" ";';
|
|
put 'put ",""SYSSITE"" : ""&syssite"" ";';
|
|
put 'put ",""SYSUSERID"" : ""&sysuserid"" ";';
|
|
put 'sysvlong=quote(trim(symget(''sysvlong'')));';
|
|
put 'put '',"SYSVLONG" : '' sysvlong;';
|
|
put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;';
|
|
put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';';
|
|
put 'length memsize $32;';
|
|
put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";';
|
|
put 'memsize=quote(cats(memsize));';
|
|
put 'put '',"MEMSIZE" : '' memsize;';
|
|
put 'put "}" @;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutEND<<'';';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjsref lrecl=1 recfm=n;';
|
|
put 'file &fref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjsref clear;';
|
|
put '%end;';
|
|
put '%mend mm_webout;';
|
|
put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);';
|
|
put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt';
|
|
put ',missing=&missing';
|
|
put ',showmeta=&showmeta';
|
|
put ',maxobs=&maxobs';
|
|
put ') %mend;';
|
|
put '/* provide additional debug info */';
|
|
put '%global _program;';
|
|
put '%put &=syscc;';
|
|
put '%put user=%mf_getuser();';
|
|
put '%put pgm=&_program;';
|
|
put '%put timestamp=%sysfunc(datetime(),datetime19.);';
|
|
put '* Service Variables start;';
|
|
put '* Service Variables end;';
|
|
put '* SAS Macros start;';
|
|
put '* SAS Macros end;';
|
|
put '* SAS Includes start;';
|
|
put '* SAS Includes end;';
|
|
put '* Binary Files start;';
|
|
put '* Binary Files end;';
|
|
put '* ServiceInit start;';
|
|
put 'libname mydb (work);';
|
|
put 'data mydb.springs ;';
|
|
put 'attrib';
|
|
put 'Latitude length= 8';
|
|
put 'Longitude length= 8';
|
|
put 'Name length= $34';
|
|
put 'Area length= $14';
|
|
put 'Type length= $9';
|
|
put 'Farenheit length= 8';
|
|
put 'Celsius length= 8';
|
|
put ';';
|
|
put 'infile cards dsd;';
|
|
put 'input';
|
|
put 'Latitude';
|
|
put 'Longitude';
|
|
put 'Name :$char.';
|
|
put 'Area :$char.';
|
|
put 'Type :$char.';
|
|
put 'Farenheit';
|
|
put 'Celsius';
|
|
put ';';
|
|
put 'missing 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 z _;';
|
|
put 'datalines4;';
|
|
put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104';
|
|
put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77';
|
|
put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H';
|
|
put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H';
|
|
put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H';
|
|
put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H';
|
|
put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H';
|
|
put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H';
|
|
put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H';
|
|
put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154';
|
|
put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H';
|
|
put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102';
|
|
put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101';
|
|
put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100';
|
|
put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99';
|
|
put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92';
|
|
put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89';
|
|
put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83';
|
|
put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82';
|
|
put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81';
|
|
put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81';
|
|
put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80';
|
|
put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H';
|
|
put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H';
|
|
put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20';
|
|
put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.';
|
|
put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W';
|
|
put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W';
|
|
put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W';
|
|
put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W';
|
|
put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W';
|
|
put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W';
|
|
put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W';
|
|
put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W';
|
|
put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H';
|
|
put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H';
|
|
put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H';
|
|
put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H';
|
|
put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H';
|
|
put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H';
|
|
put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H';
|
|
put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H';
|
|
put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H';
|
|
put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H';
|
|
put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H';
|
|
put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43';
|
|
put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51';
|
|
put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50';
|
|
put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50';
|
|
put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50';
|
|
put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50';
|
|
put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50';
|
|
put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49';
|
|
put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49';
|
|
put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49';
|
|
put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47';
|
|
put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47';
|
|
put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52';
|
|
put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44';
|
|
put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43';
|
|
put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75';
|
|
put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43';
|
|
put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38';
|
|
put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34';
|
|
put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33';
|
|
put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30';
|
|
put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28';
|
|
put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26';
|
|
put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23';
|
|
put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21';
|
|
put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20';
|
|
put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47';
|
|
put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61';
|
|
put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71';
|
|
put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70';
|
|
put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68';
|
|
put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67';
|
|
put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67';
|
|
put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67';
|
|
put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66';
|
|
put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65';
|
|
put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65';
|
|
put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63';
|
|
put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53';
|
|
put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62';
|
|
put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60';
|
|
put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41';
|
|
put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60';
|
|
put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74';
|
|
put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59';
|
|
put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57';
|
|
put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57';
|
|
put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56';
|
|
put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55';
|
|
put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54';
|
|
put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54';
|
|
put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53';
|
|
put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63';
|
|
put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28';
|
|
put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35';
|
|
put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25';
|
|
put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23';
|
|
put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26';
|
|
put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64';
|
|
put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33';
|
|
put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39';
|
|
put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37';
|
|
put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37';
|
|
put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37';
|
|
put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36';
|
|
put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33';
|
|
put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46';
|
|
put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33';
|
|
put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32';
|
|
put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32';
|
|
put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32';
|
|
put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32';
|
|
put '33.075,-109.298,Seep,Clifton,Hotspring,95,35';
|
|
put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40';
|
|
put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48';
|
|
put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48';
|
|
put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53';
|
|
put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56';
|
|
put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59';
|
|
put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60';
|
|
put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82';
|
|
put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H';
|
|
put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W';
|
|
put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30';
|
|
put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44';
|
|
put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33';
|
|
put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39';
|
|
put '34.445,-112.693,Spring,Prescott,Hotspring,72,22';
|
|
put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25';
|
|
put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24';
|
|
put '33.253,-110.703,Spring,Mesa,Hotspring,75,24';
|
|
put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24';
|
|
put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21';
|
|
put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26';
|
|
put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22';
|
|
put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23';
|
|
put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22';
|
|
put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22';
|
|
put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22';
|
|
put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20';
|
|
put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36';
|
|
put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30';
|
|
put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23';
|
|
put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28';
|
|
put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30';
|
|
put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23';
|
|
put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26';
|
|
put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29';
|
|
put '33.163,-110.662,Spring,Mesa,Hotspring,82,28';
|
|
put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27';
|
|
put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30';
|
|
put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26';
|
|
put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30';
|
|
put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26';
|
|
put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26';
|
|
put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26';
|
|
put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28';
|
|
put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52';
|
|
put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49';
|
|
put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51';
|
|
put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52';
|
|
put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51';
|
|
put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51';
|
|
put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51';
|
|
put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50';
|
|
put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50';
|
|
put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49';
|
|
put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54';
|
|
put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48';
|
|
put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49';
|
|
put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49';
|
|
put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57';
|
|
put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62';
|
|
put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62';
|
|
put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44';
|
|
put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61';
|
|
put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48';
|
|
put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59';
|
|
put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60';
|
|
put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57';
|
|
put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55';
|
|
put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57';
|
|
put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56';
|
|
put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56';
|
|
put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56';
|
|
put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56';
|
|
put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55';
|
|
put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58';
|
|
put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42';
|
|
put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43';
|
|
put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43';
|
|
put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43';
|
|
put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43';
|
|
put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43';
|
|
put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44';
|
|
put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42';
|
|
put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44';
|
|
put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42';
|
|
put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41';
|
|
put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41';
|
|
put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41';
|
|
put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41';
|
|
put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40';
|
|
put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42';
|
|
put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45';
|
|
put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48';
|
|
put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47';
|
|
put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47';
|
|
put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46';
|
|
put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46';
|
|
put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46';
|
|
put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43';
|
|
put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45';
|
|
put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45';
|
|
put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45';
|
|
put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62';
|
|
put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44';
|
|
put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78';
|
|
put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44';
|
|
put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48';
|
|
put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45';
|
|
put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98';
|
|
put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H';
|
|
put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H';
|
|
put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H';
|
|
put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H';
|
|
put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96';
|
|
put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99';
|
|
put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97';
|
|
put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97';
|
|
put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97';
|
|
put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96';
|
|
put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96';
|
|
put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77';
|
|
put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101';
|
|
put '35.888,-116.258,Springs,Trona,Hotspring,W,W';
|
|
put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90';
|
|
put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40';
|
|
put '41.196,-120.475,Springs,Alturas,Hotspring,W,W';
|
|
put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W';
|
|
put '37.929,-121.965,Springs,San Jose,Hotspring,W,W';
|
|
put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W';
|
|
put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W';
|
|
put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W';
|
|
put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95';
|
|
put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W';
|
|
put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69';
|
|
put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79';
|
|
put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78';
|
|
put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77';
|
|
put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76';
|
|
put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75';
|
|
put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96';
|
|
put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73';
|
|
put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69';
|
|
put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69';
|
|
put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67';
|
|
put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66';
|
|
put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66';
|
|
put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66';
|
|
put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74';
|
|
put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88';
|
|
put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95';
|
|
put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95';
|
|
put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95';
|
|
put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93';
|
|
put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93';
|
|
put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93';
|
|
put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82';
|
|
put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90';
|
|
put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88';
|
|
put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85';
|
|
put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84';
|
|
put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83';
|
|
put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82';
|
|
put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64';
|
|
put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93';
|
|
put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24';
|
|
put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25';
|
|
put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25';
|
|
put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25';
|
|
put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25';
|
|
put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24';
|
|
put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28';
|
|
put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24';
|
|
put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26';
|
|
put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24';
|
|
put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24';
|
|
put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20';
|
|
put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27';
|
|
put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28';
|
|
put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28';
|
|
put '41.484,-120.764,Spring,Alturas,Hotspring,81,27';
|
|
put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27';
|
|
put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27';
|
|
put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27';
|
|
put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26';
|
|
put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27';
|
|
put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26';
|
|
put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27';
|
|
put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26';
|
|
put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26';
|
|
put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26';
|
|
put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26';
|
|
put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24';
|
|
put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27';
|
|
put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20';
|
|
put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24';
|
|
put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21';
|
|
put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21';
|
|
put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21';
|
|
put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21';
|
|
put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21';
|
|
put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22';
|
|
put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21';
|
|
put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22';
|
|
put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20';
|
|
put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20';
|
|
put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20';
|
|
put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20';
|
|
put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92';
|
|
put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39';
|
|
put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21';
|
|
put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23';
|
|
put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27';
|
|
put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23';
|
|
put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23';
|
|
put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23';
|
|
put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23';
|
|
put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23';
|
|
put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21';
|
|
put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23';
|
|
put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24';
|
|
put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23';
|
|
put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22';
|
|
put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22';
|
|
put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22';
|
|
put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22';
|
|
put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22';
|
|
put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23';
|
|
put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36';
|
|
put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34';
|
|
put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37';
|
|
put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37';
|
|
put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37';
|
|
put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36';
|
|
put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27';
|
|
put '40.019,-121.036,Spring,Susanville,Hotspring,99,37';
|
|
put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28';
|
|
put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38';
|
|
put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35';
|
|
put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35';
|
|
put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35';
|
|
put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35';
|
|
put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34';
|
|
put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34';
|
|
put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36';
|
|
put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38';
|
|
put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39';
|
|
put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39';
|
|
put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39';
|
|
put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38';
|
|
put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38';
|
|
put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38';
|
|
put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37';
|
|
put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38';
|
|
put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36';
|
|
put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38';
|
|
put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38';
|
|
put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38';
|
|
put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38';
|
|
put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38';
|
|
put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30';
|
|
put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31';
|
|
put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31';
|
|
put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31';
|
|
put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30';
|
|
put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30';
|
|
put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31';
|
|
put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34';
|
|
put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30';
|
|
put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36';
|
|
put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29';
|
|
put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29';
|
|
put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29';
|
|
put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29';
|
|
put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29';
|
|
put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30';
|
|
put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33';
|
|
put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29';
|
|
put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31';
|
|
put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33';
|
|
put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33';
|
|
put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33';
|
|
put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33';
|
|
put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33';
|
|
put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32';
|
|
put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32';
|
|
put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32';
|
|
put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33';
|
|
put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32';
|
|
put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32';
|
|
put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32';
|
|
put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32';
|
|
put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32';
|
|
put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56';
|
|
put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83';
|
|
put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44';
|
|
put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44';
|
|
put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46';
|
|
put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48';
|
|
put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51';
|
|
put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52';
|
|
put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52';
|
|
put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56';
|
|
put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46';
|
|
put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57';
|
|
put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58';
|
|
put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58';
|
|
put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60';
|
|
put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64';
|
|
put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69';
|
|
put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71';
|
|
put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80';
|
|
put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41';
|
|
put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42';
|
|
put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75';
|
|
put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27';
|
|
put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20';
|
|
put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23';
|
|
put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24';
|
|
put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25';
|
|
put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25';
|
|
put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27';
|
|
put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28';
|
|
put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28';
|
|
put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30';
|
|
put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30';
|
|
put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32';
|
|
put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32';
|
|
put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33';
|
|
put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33';
|
|
put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36';
|
|
put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37';
|
|
put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40';
|
|
put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38';
|
|
put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40';
|
|
put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38';
|
|
put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39';
|
|
put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42';
|
|
put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32';
|
|
put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26';
|
|
put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27';
|
|
put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30';
|
|
put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23';
|
|
put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24';
|
|
put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24';
|
|
put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25';
|
|
put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26';
|
|
put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31';
|
|
put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20';
|
|
put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36';
|
|
put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W';
|
|
put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32';
|
|
put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29';
|
|
put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59';
|
|
put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59';
|
|
put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64';
|
|
put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60';
|
|
put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65';
|
|
put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59';
|
|
put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59';
|
|
put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59';
|
|
put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58';
|
|
put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58';
|
|
put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59';
|
|
put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60';
|
|
put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60';
|
|
put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60';
|
|
put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61';
|
|
put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61';
|
|
put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62';
|
|
put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62';
|
|
put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62';
|
|
put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63';
|
|
put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63';
|
|
put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64';
|
|
put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52';
|
|
put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57';
|
|
put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60';
|
|
put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55';
|
|
put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51';
|
|
put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51';
|
|
put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51';
|
|
put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51';
|
|
put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52';
|
|
put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52';
|
|
put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52';
|
|
put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52';
|
|
put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78';
|
|
put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52';
|
|
put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54';
|
|
put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54';
|
|
put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53';
|
|
put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56';
|
|
put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56';
|
|
put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56';
|
|
put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56';
|
|
put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55';
|
|
put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54';
|
|
put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55';
|
|
put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55';
|
|
put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55';
|
|
put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55';
|
|
put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57';
|
|
put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55';
|
|
put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H';
|
|
put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76';
|
|
put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H';
|
|
put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95';
|
|
put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H';
|
|
put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93';
|
|
put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H';
|
|
put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H';
|
|
put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W';
|
|
put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W';
|
|
put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W';
|
|
put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W';
|
|
put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W';
|
|
put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51';
|
|
put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34';
|
|
put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73';
|
|
put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66';
|
|
put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66';
|
|
put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66';
|
|
put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67';
|
|
put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67';
|
|
put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68';
|
|
put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68';
|
|
put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69';
|
|
put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70';
|
|
put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70';
|
|
put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70';
|
|
put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71';
|
|
put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H';
|
|
put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72';
|
|
put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73';
|
|
put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75';
|
|
put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75';
|
|
put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76';
|
|
put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80';
|
|
put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82';
|
|
put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84';
|
|
put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85';
|
|
put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85';
|
|
put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88';
|
|
put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88';
|
|
put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92';
|
|
put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71';
|
|
put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34';
|
|
put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38';
|
|
put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28';
|
|
put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29';
|
|
put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29';
|
|
put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30';
|
|
put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30';
|
|
put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31';
|
|
put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31';
|
|
put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32';
|
|
put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32';
|
|
put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32';
|
|
put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28';
|
|
put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33';
|
|
put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35';
|
|
put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34';
|
|
put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35';
|
|
put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35';
|
|
put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36';
|
|
put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36';
|
|
put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37';
|
|
put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38';
|
|
put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38';
|
|
put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38';
|
|
put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38';
|
|
put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33';
|
|
put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24';
|
|
put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20';
|
|
put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20';
|
|
put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20';
|
|
put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20';
|
|
put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21';
|
|
put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21';
|
|
put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22';
|
|
put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22';
|
|
put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22';
|
|
put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22';
|
|
put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22';
|
|
put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22';
|
|
put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50';
|
|
put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23';
|
|
put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28';
|
|
put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24';
|
|
put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24';
|
|
put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24';
|
|
put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25';
|
|
put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25';
|
|
put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25';
|
|
put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26';
|
|
put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26';
|
|
put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26';
|
|
put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27';
|
|
put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23';
|
|
put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47';
|
|
put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27';
|
|
put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44';
|
|
put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44';
|
|
put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45';
|
|
put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45';
|
|
put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45';
|
|
put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45';
|
|
put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45';
|
|
put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45';
|
|
put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46';
|
|
put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44';
|
|
put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47';
|
|
put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43';
|
|
put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47';
|
|
put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48';
|
|
put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48';
|
|
put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48';
|
|
put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49';
|
|
put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49';
|
|
put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49';
|
|
put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49';
|
|
put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50';
|
|
put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50';
|
|
put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38';
|
|
put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47';
|
|
put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42';
|
|
put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39';
|
|
put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39';
|
|
put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40';
|
|
put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41';
|
|
put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41';
|
|
put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41';
|
|
put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41';
|
|
put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41';
|
|
put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41';
|
|
put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41';
|
|
put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41';
|
|
put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41';
|
|
put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44';
|
|
put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41';
|
|
put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42';
|
|
put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42';
|
|
put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42';
|
|
put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43';
|
|
put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43';
|
|
put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43';
|
|
put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43';
|
|
put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43';
|
|
put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43';
|
|
put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43';
|
|
put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43';
|
|
put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43';
|
|
put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41';
|
|
put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24';
|
|
put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50';
|
|
put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29';
|
|
put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30';
|
|
put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30';
|
|
put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38';
|
|
put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43';
|
|
put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44';
|
|
put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44';
|
|
put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45';
|
|
put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45';
|
|
put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47';
|
|
put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48';
|
|
put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20';
|
|
put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50';
|
|
put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28';
|
|
put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51';
|
|
put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53';
|
|
put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53';
|
|
put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55';
|
|
put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57';
|
|
put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58';
|
|
put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59';
|
|
put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60';
|
|
put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60';
|
|
put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66';
|
|
put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68';
|
|
put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73';
|
|
put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50';
|
|
put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24';
|
|
put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20';
|
|
put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20';
|
|
put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20';
|
|
put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21';
|
|
put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21';
|
|
put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21';
|
|
put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21';
|
|
put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22';
|
|
put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22';
|
|
put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22';
|
|
put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23';
|
|
put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29';
|
|
put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24';
|
|
put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28';
|
|
put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24';
|
|
put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25';
|
|
put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25';
|
|
put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25';
|
|
put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25';
|
|
put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26';
|
|
put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26';
|
|
put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26';
|
|
put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26';
|
|
put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26';
|
|
put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27';
|
|
put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28';
|
|
put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23';
|
|
put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76';
|
|
put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78';
|
|
put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83';
|
|
put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70';
|
|
put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68';
|
|
put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42';
|
|
put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36';
|
|
put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45';
|
|
put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44';
|
|
put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44';
|
|
put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38';
|
|
put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38';
|
|
put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38';
|
|
put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37';
|
|
put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47';
|
|
put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37';
|
|
put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54';
|
|
put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34';
|
|
put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34';
|
|
put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37';
|
|
put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51';
|
|
put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53';
|
|
put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34';
|
|
put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54';
|
|
put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49';
|
|
put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58';
|
|
put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59';
|
|
put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65';
|
|
put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66';
|
|
put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74';
|
|
put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76';
|
|
put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87';
|
|
put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H';
|
|
put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W';
|
|
put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54';
|
|
put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21';
|
|
put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24';
|
|
put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23';
|
|
put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22';
|
|
put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22';
|
|
put '34.698,-107.129,Spring,Socorro,Hotspring,71,22';
|
|
put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26';
|
|
put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21';
|
|
put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22';
|
|
put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21';
|
|
put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20';
|
|
put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20';
|
|
put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20';
|
|
put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33';
|
|
put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52';
|
|
put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21';
|
|
put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31';
|
|
put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33';
|
|
put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21';
|
|
put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33';
|
|
put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26';
|
|
put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31';
|
|
put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31';
|
|
put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30';
|
|
put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29';
|
|
put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28';
|
|
put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28';
|
|
put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28';
|
|
put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27';
|
|
put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27';
|
|
put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26';
|
|
put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26';
|
|
put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58';
|
|
put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61';
|
|
put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61';
|
|
put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60';
|
|
put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60';
|
|
put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59';
|
|
put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58';
|
|
put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58';
|
|
put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62';
|
|
put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58';
|
|
put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57';
|
|
put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57';
|
|
put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72';
|
|
put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59';
|
|
put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69';
|
|
put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43';
|
|
put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57';
|
|
put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72';
|
|
put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72';
|
|
put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71';
|
|
put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71';
|
|
put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72';
|
|
put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70';
|
|
put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63';
|
|
put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66';
|
|
put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66';
|
|
put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65';
|
|
put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65';
|
|
put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64';
|
|
put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64';
|
|
put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63';
|
|
put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70';
|
|
put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46';
|
|
put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43';
|
|
put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49';
|
|
put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48';
|
|
put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48';
|
|
put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50';
|
|
put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46';
|
|
put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50';
|
|
put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45';
|
|
put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45';
|
|
put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44';
|
|
put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44';
|
|
put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74';
|
|
put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43';
|
|
put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96';
|
|
put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46';
|
|
put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56';
|
|
put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56';
|
|
put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55';
|
|
put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55';
|
|
put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54';
|
|
put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54';
|
|
put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49';
|
|
put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53';
|
|
put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56';
|
|
put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53';
|
|
put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53';
|
|
put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52';
|
|
put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51';
|
|
put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50';
|
|
put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50';
|
|
put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53';
|
|
put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H';
|
|
put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98';
|
|
put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H';
|
|
put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H';
|
|
put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H';
|
|
put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H';
|
|
put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H';
|
|
put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W';
|
|
put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H';
|
|
put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W';
|
|
put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H';
|
|
put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B';
|
|
put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99';
|
|
put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98';
|
|
put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98';
|
|
put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98';
|
|
put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H';
|
|
put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W';
|
|
put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.';
|
|
put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W';
|
|
put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W';
|
|
put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.066,-114.99,Spring,Wells,Hotspring,W,W';
|
|
put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H';
|
|
put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W';
|
|
put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97';
|
|
put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W';
|
|
put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W';
|
|
put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W';
|
|
put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W';
|
|
put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W';
|
|
put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W';
|
|
put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82';
|
|
put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98';
|
|
put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84';
|
|
put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84';
|
|
put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83';
|
|
put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82';
|
|
put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86';
|
|
put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82';
|
|
put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86';
|
|
put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82';
|
|
put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81';
|
|
put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80';
|
|
put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80';
|
|
put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79';
|
|
put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79';
|
|
put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77';
|
|
put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82';
|
|
put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93';
|
|
put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39';
|
|
put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42';
|
|
put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96';
|
|
put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95';
|
|
put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95';
|
|
put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93';
|
|
put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77';
|
|
put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92';
|
|
put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92';
|
|
put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90';
|
|
put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88';
|
|
put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88';
|
|
put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86';
|
|
put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86';
|
|
put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94';
|
|
put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24';
|
|
put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28';
|
|
put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25';
|
|
put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25';
|
|
put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25';
|
|
put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25';
|
|
put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41';
|
|
put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26';
|
|
put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40';
|
|
put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26';
|
|
put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24';
|
|
put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24';
|
|
put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24';
|
|
put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24';
|
|
put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24';
|
|
put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24';
|
|
put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24';
|
|
put '41.322,-119.206,Springs,Vya,Hotspring,75,24';
|
|
put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26';
|
|
put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28';
|
|
put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27';
|
|
put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27';
|
|
put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27';
|
|
put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27';
|
|
put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27';
|
|
put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25';
|
|
put '41.338,-119.168,Springs,Vya,Hotspring,79,26';
|
|
put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23';
|
|
put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26';
|
|
put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26';
|
|
put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26';
|
|
put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26';
|
|
put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26';
|
|
put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26';
|
|
put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26';
|
|
put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27';
|
|
put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22';
|
|
put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22';
|
|
put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22';
|
|
put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21';
|
|
put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21';
|
|
put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21';
|
|
put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24';
|
|
put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22';
|
|
put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21';
|
|
put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21';
|
|
put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21';
|
|
put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21';
|
|
put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20';
|
|
put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20';
|
|
put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21';
|
|
put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23';
|
|
put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25';
|
|
put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23';
|
|
put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23';
|
|
put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23';
|
|
put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23';
|
|
put '39.853,-119.719,Spring,Reno,Hotspring,73,23';
|
|
put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23';
|
|
put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22';
|
|
put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23';
|
|
put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22';
|
|
put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23';
|
|
put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22';
|
|
put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22';
|
|
put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22';
|
|
put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22';
|
|
put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22';
|
|
put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24';
|
|
put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23';
|
|
put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34';
|
|
put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32';
|
|
put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35';
|
|
put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35';
|
|
put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35';
|
|
put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34';
|
|
put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34';
|
|
put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35';
|
|
put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34';
|
|
put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36';
|
|
put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34';
|
|
put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33';
|
|
put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33';
|
|
put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33';
|
|
put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33';
|
|
put '39.068,-119.786,Springs,Reno,Hotspring,90,32';
|
|
put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32';
|
|
put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34';
|
|
put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28';
|
|
put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41';
|
|
put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41';
|
|
put '41.53,-118.57,Spring,Vya,Hotspring,104,40';
|
|
put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40';
|
|
put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40';
|
|
put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39';
|
|
put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35';
|
|
put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39';
|
|
put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39';
|
|
put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39';
|
|
put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38';
|
|
put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38';
|
|
put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38';
|
|
put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37';
|
|
put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36';
|
|
put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36';
|
|
put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24';
|
|
put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28';
|
|
put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29';
|
|
put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29';
|
|
put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29';
|
|
put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29';
|
|
put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28';
|
|
put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29';
|
|
put '41.398,-119.165,Spring,Vya,Hotspring,84,29';
|
|
put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28';
|
|
put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29';
|
|
put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28';
|
|
put '39.917,-114.667,Spring,Ely,Hotspring,83,28';
|
|
put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28';
|
|
put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28';
|
|
put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32';
|
|
put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28';
|
|
put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39';
|
|
put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28';
|
|
put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32';
|
|
put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32';
|
|
put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32';
|
|
put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32';
|
|
put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29';
|
|
put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32';
|
|
put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30';
|
|
put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31';
|
|
put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31';
|
|
put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31';
|
|
put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30';
|
|
put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30';
|
|
put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30';
|
|
put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30';
|
|
put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30';
|
|
put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30';
|
|
put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31';
|
|
put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30';
|
|
put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22';
|
|
put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61';
|
|
put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52';
|
|
put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57';
|
|
put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58';
|
|
put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58';
|
|
put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60';
|
|
put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62';
|
|
put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61';
|
|
put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61';
|
|
put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62';
|
|
put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63';
|
|
put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60';
|
|
put '44.867,-121.228,Springs,Bend,Hotspring,125,52';
|
|
put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52';
|
|
put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49';
|
|
put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49';
|
|
put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47';
|
|
put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46';
|
|
put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46';
|
|
put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45';
|
|
put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45';
|
|
put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68';
|
|
put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43';
|
|
put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96';
|
|
put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44';
|
|
put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87';
|
|
put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35';
|
|
put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43';
|
|
put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W';
|
|
put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W';
|
|
put '43.893,-117.596,Springs,Boise,Hotspring,W,W';
|
|
put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H';
|
|
put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H';
|
|
put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97';
|
|
put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92';
|
|
put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92';
|
|
put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88';
|
|
put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71';
|
|
put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86';
|
|
put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86';
|
|
put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81';
|
|
put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80';
|
|
put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79';
|
|
put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78';
|
|
put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78';
|
|
put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77';
|
|
put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74';
|
|
put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73';
|
|
put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73';
|
|
put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72';
|
|
put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90';
|
|
put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21';
|
|
put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25';
|
|
put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24';
|
|
put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23';
|
|
put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23';
|
|
put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22';
|
|
put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22';
|
|
put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22';
|
|
put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22';
|
|
put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22';
|
|
put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22';
|
|
put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22';
|
|
put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25';
|
|
put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21';
|
|
put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25';
|
|
put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21';
|
|
put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21';
|
|
put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21';
|
|
put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20';
|
|
put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20';
|
|
put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20';
|
|
put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20';
|
|
put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43';
|
|
put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35';
|
|
put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21';
|
|
put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35';
|
|
put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41';
|
|
put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41';
|
|
put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41';
|
|
put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41';
|
|
put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40';
|
|
put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40';
|
|
put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38';
|
|
put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37';
|
|
put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37';
|
|
put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24';
|
|
put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36';
|
|
put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26';
|
|
put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34';
|
|
put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27';
|
|
put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26';
|
|
put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36';
|
|
put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26';
|
|
put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33';
|
|
put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27';
|
|
put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27';
|
|
put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27';
|
|
put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28';
|
|
put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28';
|
|
put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29';
|
|
put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29';
|
|
put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32';
|
|
put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24';
|
|
put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31';
|
|
put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36';
|
|
put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47';
|
|
put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45';
|
|
put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41';
|
|
put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37';
|
|
put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32';
|
|
put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30';
|
|
put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37';
|
|
put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38';
|
|
put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30';
|
|
put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31';
|
|
put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32';
|
|
put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32';
|
|
put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32';
|
|
put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32';
|
|
put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33';
|
|
put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28';
|
|
put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38';
|
|
put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40';
|
|
put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40';
|
|
put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33';
|
|
put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30';
|
|
put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29';
|
|
put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42';
|
|
put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28';
|
|
put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28';
|
|
put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28';
|
|
put '39.887,-113.413,North Springs,Delta,Hotspring,82,28';
|
|
put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27';
|
|
put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27';
|
|
put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27';
|
|
put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27';
|
|
put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26';
|
|
put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26';
|
|
put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29';
|
|
put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56';
|
|
put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23';
|
|
put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86';
|
|
put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85';
|
|
put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83';
|
|
put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82';
|
|
put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77';
|
|
put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76';
|
|
put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64';
|
|
put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61';
|
|
put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60';
|
|
put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59';
|
|
put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41';
|
|
put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56';
|
|
put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42';
|
|
put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54';
|
|
put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51';
|
|
put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48';
|
|
put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44';
|
|
put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44';
|
|
put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43';
|
|
put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42';
|
|
put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42';
|
|
put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25';
|
|
put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57';
|
|
put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21';
|
|
put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22';
|
|
put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22';
|
|
put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22';
|
|
put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22';
|
|
put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22';
|
|
put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21';
|
|
put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21';
|
|
put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21';
|
|
put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21';
|
|
put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21';
|
|
put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25';
|
|
put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22';
|
|
put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23';
|
|
put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21';
|
|
put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21';
|
|
put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20';
|
|
put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20';
|
|
put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20';
|
|
put '40.172,-112.426,Davis,Tooele,Hotspring,68,20';
|
|
put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20';
|
|
put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20';
|
|
put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20';
|
|
put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20';
|
|
put '38.762,-112.87,Springs,Richfield,Hotspring,68,20';
|
|
put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20';
|
|
put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20';
|
|
put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21';
|
|
put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23';
|
|
put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21';
|
|
put '39.899,-112.045,Springs,Delta,Hotspring,72,22';
|
|
put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25';
|
|
put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24';
|
|
put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24';
|
|
put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24';
|
|
put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24';
|
|
put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24';
|
|
put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24';
|
|
put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24';
|
|
put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23';
|
|
put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23';
|
|
put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22';
|
|
put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22';
|
|
put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22';
|
|
put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22';
|
|
put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23';
|
|
put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22';
|
|
put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23';
|
|
put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25';
|
|
put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23';
|
|
put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25';
|
|
put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23';
|
|
put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23';
|
|
put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22';
|
|
put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29';
|
|
put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41';
|
|
put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22';
|
|
put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35';
|
|
put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30';
|
|
put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24';
|
|
put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24';
|
|
put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23';
|
|
put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22';
|
|
put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25';
|
|
put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22';
|
|
put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72';
|
|
put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50';
|
|
put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50';
|
|
put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50';
|
|
put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50';
|
|
put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36';
|
|
put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50';
|
|
put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50';
|
|
put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53';
|
|
put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66';
|
|
put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88';
|
|
put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90';
|
|
put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130';
|
|
put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H';
|
|
put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60';
|
|
put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30';
|
|
put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38';
|
|
put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49';
|
|
put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22';
|
|
put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22';
|
|
put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24';
|
|
put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25';
|
|
put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29';
|
|
put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32';
|
|
put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37';
|
|
put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38';
|
|
put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42';
|
|
put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48';
|
|
put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49';
|
|
put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27';
|
|
put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21';
|
|
put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23';
|
|
put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22';
|
|
put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22';
|
|
put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22';
|
|
put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94';
|
|
put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94';
|
|
put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94';
|
|
put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94';
|
|
put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94';
|
|
put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94';
|
|
put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94';
|
|
put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95';
|
|
put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95';
|
|
put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95';
|
|
put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95';
|
|
put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95';
|
|
put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95';
|
|
put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94';
|
|
put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95';
|
|
put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92';
|
|
put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92';
|
|
put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92';
|
|
put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92';
|
|
put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92';
|
|
put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92';
|
|
put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92';
|
|
put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92';
|
|
put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93';
|
|
put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93';
|
|
put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96';
|
|
put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93';
|
|
put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93';
|
|
put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93';
|
|
put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93';
|
|
put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93';
|
|
put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93';
|
|
put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93';
|
|
put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H';
|
|
put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H';
|
|
put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H';
|
|
put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H';
|
|
put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H';
|
|
put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W';
|
|
put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W';
|
|
put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H';
|
|
put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H';
|
|
put '44.563,-110.834,River Group,Ashton,Hotspring,205,96';
|
|
put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96';
|
|
put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B';
|
|
put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H';
|
|
put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H';
|
|
put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H';
|
|
put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92';
|
|
put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96';
|
|
put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H';
|
|
put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H';
|
|
put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H';
|
|
put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89';
|
|
put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54';
|
|
put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39';
|
|
put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41';
|
|
put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44';
|
|
put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45';
|
|
put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45';
|
|
put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46';
|
|
put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46';
|
|
put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90';
|
|
put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54';
|
|
put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35';
|
|
put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55';
|
|
put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56';
|
|
put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58';
|
|
put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58';
|
|
put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58';
|
|
put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59';
|
|
put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51';
|
|
put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29';
|
|
put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20';
|
|
put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20';
|
|
put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21';
|
|
put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21';
|
|
put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22';
|
|
put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24';
|
|
put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24';
|
|
put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25';
|
|
put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37';
|
|
put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27';
|
|
put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36';
|
|
put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30';
|
|
put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30';
|
|
put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30';
|
|
put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32';
|
|
put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33';
|
|
put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35';
|
|
put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62';
|
|
put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27';
|
|
put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89';
|
|
put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60';
|
|
put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86';
|
|
put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86';
|
|
put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87';
|
|
put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87';
|
|
put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88';
|
|
put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88';
|
|
put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89';
|
|
put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85';
|
|
put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89';
|
|
put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85';
|
|
put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90';
|
|
put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91';
|
|
put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91';
|
|
put '44.556,-110.832,River Group,Ashton,Hotspring,196,91';
|
|
put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91';
|
|
put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92';
|
|
put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89';
|
|
put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72';
|
|
put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92';
|
|
put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62';
|
|
put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67';
|
|
put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68';
|
|
put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68';
|
|
put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69';
|
|
put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69';
|
|
put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70';
|
|
put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86';
|
|
put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72';
|
|
put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61';
|
|
put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73';
|
|
put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73';
|
|
put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75';
|
|
put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79';
|
|
put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82';
|
|
put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83';
|
|
put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84';
|
|
put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85';
|
|
put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70';
|
|
put ';;;;';
|
|
put 'run;';
|
|
put '* ServiceInit end;';
|
|
put '* Service start;';
|
|
put '/**';
|
|
put '@file appinit.sas';
|
|
put '@brief Initialisation service - runs on app startup';
|
|
put '@details This is always the first service called when the app is opened.';
|
|
put 'The deployed code includes the `serviceinit.sas`, as defined in the';
|
|
put '`sasjs/sasjsconfig.json` file.';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '**/';
|
|
put 'proc sql;';
|
|
put 'create table areas as select distinct area';
|
|
put 'from mydb.springs;';
|
|
put '%webout(OPEN)';
|
|
put '%webout(OBJ,areas)';
|
|
put '%webout(CLOSE)';
|
|
put '* Service end;';
|
|
|
|
run;
|
|
%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes)
|
|
filename sascode clear;
|
|
|
|
|
|
%let service=getdata;
|
|
filename sascode temp lrecl=32767;
|
|
data _null_;
|
|
file sascode;
|
|
|
|
put '%macro mf_getuser(';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local user;';
|
|
put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;';
|
|
put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;';
|
|
put '%let user=&SYS_COMPUTE_SESSION_OWNER;';
|
|
put '%end;';
|
|
put '%else %if %symexist(_metaperson) %then %do;';
|
|
put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;';
|
|
put '/* sometimes SAS will add @domain extension - remove for consistency */';
|
|
put '/* but be sure to quote in case of usernames with commas */';
|
|
put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));';
|
|
put '%end;';
|
|
put '%else %let user=&sysuserid;';
|
|
put '%quote(&user)';
|
|
put '%mend mf_getuser;';
|
|
put '/**';
|
|
put '@file mp_jsonout.sas';
|
|
put '@brief Writes JSON in SASjs format to a fileref';
|
|
put '@details This macro can be used to OPEN a JSON stream and send one or more';
|
|
put 'tables as arrays of rows, where each row can be an object or a nested array.';
|
|
put 'There are two engines available - DATASTEP or PROCJSON.';
|
|
put 'PROC JSON is fast but will produce errs like the ones below if';
|
|
put 'special chars are encountered.';
|
|
put '> (ERR)OR: Some code points did not transcode.';
|
|
put '> An object or array close is not valid at this point in the JSON text.';
|
|
put '> Date value out of range';
|
|
put 'If this happens, try running with ENGINE=DATASTEP.';
|
|
put 'The DATASTEP engine is used to handle special SAS missing numerics, and';
|
|
put 'can also convert entire datasets to formatted values. Output JSON is always';
|
|
put 'in UTF-8.';
|
|
put 'Usage:';
|
|
put 'filename tmp temp;';
|
|
put 'data class; set sashelp.class;run;';
|
|
put '%mp_jsonout(OPEN,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)';
|
|
put '%mp_jsonout(CLOSE,jref=tmp)';
|
|
put 'data _null_;';
|
|
put 'infile tmp;';
|
|
put 'input;putlog _infile_;';
|
|
put 'run;';
|
|
put 'If you are building web apps with SAS then you are strongly encouraged to use';
|
|
put 'the mX_createwebservice macros in combination with the';
|
|
put '[sasjs adapter](https://github.com/sasjs/adapter).';
|
|
put 'For more information see https://sasjs.io';
|
|
put '@param [in] action Valid values:';
|
|
put '@li OPEN - opens the JSON';
|
|
put '@li OBJ - sends a table with each row as an object';
|
|
put '@li ARR - sends a table with each row in an array';
|
|
put '@li CLOSE - closes the JSON';
|
|
put '@param [in] ds The dataset to send. Must be a work table.';
|
|
put '@param [out] jref= (_webout) The fileref to which to send the JSON';
|
|
put '@param [out] dslabel= The name to give the table in the exported JSON';
|
|
put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table';
|
|
put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:';
|
|
put '@li PROCJSON (default)';
|
|
put '@li DATASTEP (more reliable when data has non standard characters)';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to JSON';
|
|
put '<h4> Related Macros </h4>';
|
|
put '@li mp_ds2fmtds.sas';
|
|
put '@version 9.2';
|
|
put '@author Allan Bowe';
|
|
put '@source https://github.com/sasjs/core';
|
|
put '**/';
|
|
put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y';
|
|
put ',engine=DATASTEP';
|
|
put ',missing=NULL';
|
|
put ',showmeta=N';
|
|
put ',maxobs=MAX';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local tempds colinfo fmtds i numcols stmt_obs;';
|
|
put '%let numcols=0;';
|
|
put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);';
|
|
put '%if &action=OPEN %then %do;';
|
|
put 'options nobomfile;';
|
|
put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;';
|
|
put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if (&action=ARR or &action=OBJ) %then %do;';
|
|
put '/* force variable names to always be uppercase in the JSON */';
|
|
put 'options validvarname=upcase;';
|
|
put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation';
|
|
put '(https://support.sas.com/kb/49/325.html) we use temporary files */';
|
|
put 'filename _sjs1 temp lrecl=200 ;';
|
|
put 'data _null_; file _sjs1 encoding=''utf-8'';';
|
|
put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs1 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs1 clear;';
|
|
put '/* grab col defs */';
|
|
put 'proc contents noprint data=&ds';
|
|
put 'out=_data_(keep=name type length format formatl formatd varnum label);';
|
|
put 'run;';
|
|
put '%let colinfo=%scan(&syslast,2,.);';
|
|
put 'proc sort data=&colinfo;';
|
|
put 'by varnum;';
|
|
put 'run;';
|
|
put '/* move meta to mac vars */';
|
|
put 'data _null_;';
|
|
put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');';
|
|
put 'set &colinfo end=last nobs=nobs;';
|
|
put 'name=upcase(name);';
|
|
put '/* fix formats */';
|
|
put 'if type=2 or type=6 then do;';
|
|
put 'typelong=''char'';';
|
|
put 'length fmt $49.;';
|
|
put 'if format='''' then fmt=cats(''$'',length,''.'');';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'');';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'typelong=''num'';';
|
|
put 'if format='''' then fmt=''best.'';';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else if formatd=0 then fmt=cats(format,formatl,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'',formatd);';
|
|
put 'end;';
|
|
put '/* 32 char unique name */';
|
|
put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);';
|
|
put 'call symputx(cats(''name'',_n_),name,''l'');';
|
|
put 'call symputx(cats(''newname'',_n_),newname,''l'');';
|
|
put 'call symputx(cats(''length'',_n_),length,''l'');';
|
|
put 'call symputx(cats(''fmt'',_n_),fmt,''l'');';
|
|
put 'call symputx(cats(''type'',_n_),type,''l'');';
|
|
put 'call symputx(cats(''typelong'',_n_),typelong,''l'');';
|
|
put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');';
|
|
put 'run;';
|
|
put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);';
|
|
put '%if &engine=PROCJSON %then %do;';
|
|
put '%if &missing=STRING %then %do;';
|
|
put '%put &sysmacroname: Special Missings not supported in proc json.;';
|
|
put '%put &sysmacroname: Switching to DATASTEP engine;';
|
|
put '%goto datastep;';
|
|
put '%end;';
|
|
put 'data &tempds;';
|
|
put 'set &ds;';
|
|
put '&stmt_obs;';
|
|
put '%if &fmt=N %then format _numeric_ best32.;;';
|
|
put '/* PRETTY is necessary to avoid line truncation in large files */';
|
|
put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'proc json out=_sjs2 pretty';
|
|
put '%if &action=ARR %then nokeys ;';
|
|
put ';export &tempds / nosastags fmtnumeric;';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs2 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs2 clear;';
|
|
put '%end;';
|
|
put '%else %if &engine=DATASTEP %then %do;';
|
|
put '%datastep:';
|
|
put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1';
|
|
put '%then %do;';
|
|
put '%put &sysmacroname: &ds NOT FOUND!!!;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'data _data_;';
|
|
put '/* rename on entry */';
|
|
put 'set &ds(rename=(';
|
|
put '%do i=1 %to &numcols;';
|
|
put '&&name&i=&&newname&i';
|
|
put '%end;';
|
|
put '));';
|
|
put '%do i=1 %to &numcols;';
|
|
put '/* formatted values can be up to length 32767 */';
|
|
put 'length &&name&i $32767;';
|
|
put '%if &&typelong&i=num %then %do;';
|
|
put '&&name&i=left(put(&&newname&i,&&fmt&i));';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '&&name&i=put(&&newname&i,&&fmt&i);';
|
|
put '%end;';
|
|
put 'drop &&newname&i;';
|
|
put '%end;';
|
|
put 'if _error_ then call symputx(''syscc'',1012);';
|
|
put 'run;';
|
|
put '%let fmtds=&syslast;';
|
|
put '%end;';
|
|
put 'proc format; /* credit yabwon for special null removal */';
|
|
put 'value bart (default=40)';
|
|
put '%if &missing=NULL %then %do;';
|
|
put '._ - .z = null';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '._ = [quote()]';
|
|
put '. = null';
|
|
put '.a - .z = [quote()]';
|
|
put '%end;';
|
|
put 'other = [best.];';
|
|
put 'data &tempds;';
|
|
put 'attrib _all_ label='''';';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'length &&name&i $32767;';
|
|
put 'format &&name&i $32767.;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'set &fmtds;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'set &ds;';
|
|
put '%end;';
|
|
put '&stmt_obs;';
|
|
put 'format _numeric_ bart.;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;';
|
|
put '&&name&i=''"''!!trim(';
|
|
put 'prxchange(''s/"/\\"/'',-1, /* double quote */';
|
|
put 'prxchange(''s/\x0A/\n/'',-1, /* new line */';
|
|
put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */';
|
|
put 'prxchange(''s/\x09/\\t/'',-1, /* tab */';
|
|
put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */';
|
|
put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */';
|
|
put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */';
|
|
put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */';
|
|
put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */';
|
|
put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */';
|
|
put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */';
|
|
put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)';
|
|
put '))))))))))))!!''"'';';
|
|
put 'end;';
|
|
put 'else &&name&i=quote(cats(&&name&i));';
|
|
put '%end;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put 'filename _sjs3 temp lrecl=131068 ;';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 encoding=''utf-8'';';
|
|
put 'if _n_=1 then put "[";';
|
|
put 'set &tempds;';
|
|
put 'if _n_>1 then put "," @; put';
|
|
put '%if &action=ARR %then "[" ; %else "{" ;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &i>1 %then "," ;';
|
|
put '%if &action=OBJ %then """&&name&i"":" ;';
|
|
put '"&&name&i"n /* name literal for reserved variable names */';
|
|
put '%end;';
|
|
put '%if &action=ARR %then "]" ; %else "}" ; ;';
|
|
put '/* close out the table */';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 mod encoding=''utf-8'';';
|
|
put 'put '']'';';
|
|
put 'run;';
|
|
put 'data _null_;';
|
|
put 'infile _sjs3 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs3 clear;';
|
|
put '%end;';
|
|
put 'proc sql;';
|
|
put 'drop table &colinfo, &tempds;';
|
|
put '%if %substr(&showmeta,1,1)=Y %then %do;';
|
|
put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'data _null_;';
|
|
put 'file _sjs4;';
|
|
put 'length label $350;';
|
|
put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";';
|
|
put 'do i=1 to &numcols;';
|
|
put 'name=quote(trim(symget(cats(''name'',i))));';
|
|
put 'format=quote(trim(symget(cats(''fmt'',i))));';
|
|
put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));';
|
|
put 'length=quote(trim(symget(cats(''length'',i))));';
|
|
put 'type=quote(trim(symget(cats(''typelong'',i))));';
|
|
put 'if i>1 then put "," @@;';
|
|
put 'put name '':{"format":'' format '',"label":'' label';
|
|
put ''',"length":'' length '',"type":'' type ''}'';';
|
|
put 'end;';
|
|
put 'put ''}}'';';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs4 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs4 clear;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put 'data _null_; file &jref encoding=''utf-8'' mod ;';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%mend mp_jsonout;';
|
|
put '/**';
|
|
put '@file mm_webout.sas';
|
|
put '@brief Send data to/from SAS Stored Processes';
|
|
put '@details This macro should be added to the start of each Stored Process,';
|
|
put '**immediately** followed by a call to:';
|
|
put '%mm_webout(FETCH)';
|
|
put 'This will read all the input data and create same-named SAS datasets in the';
|
|
put 'WORK library. You can then insert your code, and send data back using the';
|
|
put 'following syntax:';
|
|
put 'data some datasets; * make some data ;';
|
|
put 'retain some columns;';
|
|
put 'run;';
|
|
put '%mm_webout(OPEN)';
|
|
put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;';
|
|
put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;';
|
|
put 'Finally, wrap everything up send some helpful system variables too';
|
|
put '%mm_webout(CLOSE)';
|
|
put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE';
|
|
put '@param [in] ds The dataset to send back to the frontend';
|
|
put '@param [out] dslabel= Value to use instead of table name for sending to JSON';
|
|
put '@param [in] fmt=(Y) Set to N to send back unformatted values';
|
|
put '@param [out] fref= (_webout) The fileref to which to write the JSON';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to output JSON';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '@li mp_jsonout.sas';
|
|
put '@version 9.3';
|
|
put '@author Allan Bowe';
|
|
put '**/';
|
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL';
|
|
put ',showmeta=N,maxobs=MAX';
|
|
put ');';
|
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug';
|
|
put 'sasjs_tables;';
|
|
put '%local i tempds jsonengine;';
|
|
put '/* see https://github.com/sasjs/core/issues/41 */';
|
|
put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;';
|
|
put '%else %let jsonengine=DATASTEP;';
|
|
put '%if &action=FETCH %then %do;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'options mprint notes mprintnest;';
|
|
put '%end;';
|
|
put '%let _webin_file_count=%eval(&_webin_file_count+0);';
|
|
put '/* now read in the data */';
|
|
put '%do i=1 %to &_webin_file_count;';
|
|
put '%if &_webin_file_count=1 %then %do;';
|
|
put '%let _webin_fileref1=&_webin_fileref;';
|
|
put '%let _webin_name1=&_webin_name;';
|
|
put '%end;';
|
|
put 'data _null_;';
|
|
put 'infile &&_webin_fileref&i termstr=crlf;';
|
|
put 'input;';
|
|
put 'call symputx(''input_statement'',_infile_);';
|
|
put 'putlog "&&_webin_name&i input statement: " _infile_;';
|
|
put 'stop;';
|
|
put 'data &&_webin_name&i;';
|
|
put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';';
|
|
put 'input &input_statement;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'if _n_<20 then putlog _infile_;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=OPEN %then %do;';
|
|
put '/* fix encoding */';
|
|
put 'OPTIONS NOBOMFILE;';
|
|
put '/**';
|
|
put '* check xengine type to avoid the below err message:';
|
|
put '* > Function is only valid for filerefs using the CACHE access method.';
|
|
put '*/';
|
|
put 'data _null_;';
|
|
put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));';
|
|
put 'if xengine=''STREAM'' then do;';
|
|
put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");';
|
|
put 'end;';
|
|
put 'run;';
|
|
put '/* setup json */';
|
|
put 'data _null_;file &fref encoding=''utf-8'';';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutBEGIN<<'';';
|
|
put '%end;';
|
|
put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';';
|
|
put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if &action=ARR or &action=OBJ %then %do;';
|
|
put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref';
|
|
put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs';
|
|
put ')';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put '/* To avoid issues with _webout on EBI we use a temporary file */';
|
|
put 'filename _sjsref temp lrecl=131068;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put '/* if debug mode, send back first 10 records of each work table also */';
|
|
put 'data;run;%let tempds=%scan(&syslast,2,.);';
|
|
put 'ods output Members=&tempds;';
|
|
put 'proc datasets library=WORK memtype=data;';
|
|
put '%local wtcnt;%let wtcnt=0;';
|
|
put 'data _null_;';
|
|
put 'set &tempds;';
|
|
put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */';
|
|
put 'i+1;';
|
|
put 'call symputx(cats(''wt'',i),name,''l'');';
|
|
put 'call symputx(''wtcnt'',i,''l'');';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put ",""WORK"":{";';
|
|
put '%do i=1 %to &wtcnt;';
|
|
put '%let wt=&&wt&i;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'dsid=open("WORK.&wt",''is'');';
|
|
put 'nlobs=attrn(dsid,''NLOBS'');';
|
|
put 'nvars=attrn(dsid,''NVARS'');';
|
|
put 'rc=close(dsid);';
|
|
put 'if &i>1 then put '',''@;';
|
|
put 'put " ""&wt"" : {";';
|
|
put 'put ''"nlobs":'' nlobs;';
|
|
put 'put '',"nvars":'' nvars;';
|
|
put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put '%end;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '/* close off json */';
|
|
put 'data _null_;file _sjsref mod encoding=''utf-8'';';
|
|
put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;';
|
|
put 'put ",""_DEBUG"" : ""&_debug"" ";';
|
|
put '_METAUSER=quote(trim(symget(''_METAUSER'')));';
|
|
put 'put ",""_METAUSER"": " _METAUSER;';
|
|
put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));';
|
|
put 'put '',"_METAPERSON": '' _METAPERSON;';
|
|
put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));';
|
|
put 'put '',"_PROGRAM" : '' _PROGRAM ;';
|
|
put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));';
|
|
put 'put '',"AUTOEXEC" : '' autoexec;';
|
|
put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";';
|
|
put 'put ",""SYSCC"" : ""&syscc"" ";';
|
|
put 'put ",""SYSENCODING"" : ""&sysencoding"" ";';
|
|
put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSERRORTEXT" : '' syserrortext;';
|
|
put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";';
|
|
put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";';
|
|
put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";';
|
|
put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));';
|
|
put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;';
|
|
put 'put ",""SYSJOBID"" : ""&sysjobid"" ";';
|
|
put 'put ",""SYSSCPL"" : ""&sysscpl"" ";';
|
|
put 'put ",""SYSSITE"" : ""&syssite"" ";';
|
|
put 'put ",""SYSUSERID"" : ""&sysuserid"" ";';
|
|
put 'sysvlong=quote(trim(symget(''sysvlong'')));';
|
|
put 'put '',"SYSVLONG" : '' sysvlong;';
|
|
put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;';
|
|
put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';';
|
|
put 'length memsize $32;';
|
|
put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";';
|
|
put 'memsize=quote(cats(memsize));';
|
|
put 'put '',"MEMSIZE" : '' memsize;';
|
|
put 'put "}" @;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutEND<<'';';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjsref lrecl=1 recfm=n;';
|
|
put 'file &fref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjsref clear;';
|
|
put '%end;';
|
|
put '%mend mm_webout;';
|
|
put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);';
|
|
put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt';
|
|
put ',missing=&missing';
|
|
put ',showmeta=&showmeta';
|
|
put ',maxobs=&maxobs';
|
|
put ') %mend;';
|
|
put '/* provide additional debug info */';
|
|
put '%global _program;';
|
|
put '%put &=syscc;';
|
|
put '%put user=%mf_getuser();';
|
|
put '%put pgm=&_program;';
|
|
put '%put timestamp=%sysfunc(datetime(),datetime19.);';
|
|
put '* Service Variables start;';
|
|
put '* Service Variables end;';
|
|
put '* SAS Macros start;';
|
|
put '* SAS Macros end;';
|
|
put '* SAS Includes start;';
|
|
put '* SAS Includes end;';
|
|
put '* Binary Files start;';
|
|
put '* Binary Files end;';
|
|
put '* ServiceInit start;';
|
|
put 'libname mydb (work);';
|
|
put 'data mydb.springs ;';
|
|
put 'attrib';
|
|
put 'Latitude length= 8';
|
|
put 'Longitude length= 8';
|
|
put 'Name length= $34';
|
|
put 'Area length= $14';
|
|
put 'Type length= $9';
|
|
put 'Farenheit length= 8';
|
|
put 'Celsius length= 8';
|
|
put ';';
|
|
put 'infile cards dsd;';
|
|
put 'input';
|
|
put 'Latitude';
|
|
put 'Longitude';
|
|
put 'Name :$char.';
|
|
put 'Area :$char.';
|
|
put 'Type :$char.';
|
|
put 'Farenheit';
|
|
put 'Celsius';
|
|
put ';';
|
|
put 'missing 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 z _;';
|
|
put 'datalines4;';
|
|
put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104';
|
|
put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77';
|
|
put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H';
|
|
put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H';
|
|
put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H';
|
|
put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H';
|
|
put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H';
|
|
put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H';
|
|
put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H';
|
|
put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154';
|
|
put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H';
|
|
put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102';
|
|
put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101';
|
|
put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100';
|
|
put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99';
|
|
put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92';
|
|
put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89';
|
|
put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83';
|
|
put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82';
|
|
put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81';
|
|
put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81';
|
|
put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80';
|
|
put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H';
|
|
put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H';
|
|
put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20';
|
|
put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.';
|
|
put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W';
|
|
put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W';
|
|
put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W';
|
|
put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W';
|
|
put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W';
|
|
put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W';
|
|
put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W';
|
|
put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W';
|
|
put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H';
|
|
put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H';
|
|
put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H';
|
|
put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H';
|
|
put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H';
|
|
put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H';
|
|
put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H';
|
|
put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H';
|
|
put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H';
|
|
put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H';
|
|
put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H';
|
|
put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43';
|
|
put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51';
|
|
put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50';
|
|
put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50';
|
|
put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50';
|
|
put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50';
|
|
put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50';
|
|
put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49';
|
|
put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49';
|
|
put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49';
|
|
put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47';
|
|
put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47';
|
|
put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52';
|
|
put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44';
|
|
put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43';
|
|
put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75';
|
|
put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43';
|
|
put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38';
|
|
put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34';
|
|
put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33';
|
|
put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30';
|
|
put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28';
|
|
put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26';
|
|
put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23';
|
|
put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21';
|
|
put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20';
|
|
put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47';
|
|
put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61';
|
|
put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71';
|
|
put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70';
|
|
put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68';
|
|
put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67';
|
|
put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67';
|
|
put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67';
|
|
put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66';
|
|
put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65';
|
|
put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65';
|
|
put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63';
|
|
put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53';
|
|
put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62';
|
|
put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60';
|
|
put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41';
|
|
put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60';
|
|
put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74';
|
|
put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59';
|
|
put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57';
|
|
put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57';
|
|
put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56';
|
|
put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55';
|
|
put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54';
|
|
put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54';
|
|
put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53';
|
|
put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63';
|
|
put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28';
|
|
put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35';
|
|
put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25';
|
|
put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23';
|
|
put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26';
|
|
put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64';
|
|
put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33';
|
|
put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39';
|
|
put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37';
|
|
put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37';
|
|
put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37';
|
|
put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36';
|
|
put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33';
|
|
put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46';
|
|
put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33';
|
|
put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32';
|
|
put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32';
|
|
put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32';
|
|
put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32';
|
|
put '33.075,-109.298,Seep,Clifton,Hotspring,95,35';
|
|
put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40';
|
|
put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48';
|
|
put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48';
|
|
put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53';
|
|
put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56';
|
|
put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59';
|
|
put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60';
|
|
put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82';
|
|
put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H';
|
|
put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W';
|
|
put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30';
|
|
put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44';
|
|
put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33';
|
|
put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39';
|
|
put '34.445,-112.693,Spring,Prescott,Hotspring,72,22';
|
|
put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25';
|
|
put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24';
|
|
put '33.253,-110.703,Spring,Mesa,Hotspring,75,24';
|
|
put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24';
|
|
put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21';
|
|
put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26';
|
|
put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22';
|
|
put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23';
|
|
put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22';
|
|
put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22';
|
|
put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22';
|
|
put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20';
|
|
put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36';
|
|
put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30';
|
|
put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23';
|
|
put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28';
|
|
put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30';
|
|
put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23';
|
|
put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26';
|
|
put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29';
|
|
put '33.163,-110.662,Spring,Mesa,Hotspring,82,28';
|
|
put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27';
|
|
put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30';
|
|
put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26';
|
|
put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30';
|
|
put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26';
|
|
put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26';
|
|
put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26';
|
|
put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28';
|
|
put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52';
|
|
put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49';
|
|
put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51';
|
|
put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52';
|
|
put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51';
|
|
put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51';
|
|
put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51';
|
|
put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50';
|
|
put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50';
|
|
put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49';
|
|
put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54';
|
|
put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48';
|
|
put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49';
|
|
put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49';
|
|
put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57';
|
|
put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62';
|
|
put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62';
|
|
put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44';
|
|
put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61';
|
|
put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48';
|
|
put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59';
|
|
put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60';
|
|
put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57';
|
|
put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55';
|
|
put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57';
|
|
put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56';
|
|
put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56';
|
|
put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56';
|
|
put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56';
|
|
put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55';
|
|
put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58';
|
|
put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42';
|
|
put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43';
|
|
put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43';
|
|
put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43';
|
|
put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43';
|
|
put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43';
|
|
put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44';
|
|
put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42';
|
|
put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44';
|
|
put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42';
|
|
put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41';
|
|
put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41';
|
|
put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41';
|
|
put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41';
|
|
put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40';
|
|
put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42';
|
|
put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45';
|
|
put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48';
|
|
put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47';
|
|
put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47';
|
|
put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46';
|
|
put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46';
|
|
put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46';
|
|
put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43';
|
|
put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45';
|
|
put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45';
|
|
put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45';
|
|
put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62';
|
|
put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44';
|
|
put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78';
|
|
put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44';
|
|
put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48';
|
|
put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45';
|
|
put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98';
|
|
put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H';
|
|
put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H';
|
|
put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H';
|
|
put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H';
|
|
put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96';
|
|
put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99';
|
|
put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97';
|
|
put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97';
|
|
put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97';
|
|
put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96';
|
|
put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96';
|
|
put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77';
|
|
put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101';
|
|
put '35.888,-116.258,Springs,Trona,Hotspring,W,W';
|
|
put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90';
|
|
put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40';
|
|
put '41.196,-120.475,Springs,Alturas,Hotspring,W,W';
|
|
put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W';
|
|
put '37.929,-121.965,Springs,San Jose,Hotspring,W,W';
|
|
put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W';
|
|
put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W';
|
|
put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W';
|
|
put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95';
|
|
put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W';
|
|
put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69';
|
|
put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79';
|
|
put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78';
|
|
put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77';
|
|
put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76';
|
|
put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75';
|
|
put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96';
|
|
put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73';
|
|
put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69';
|
|
put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69';
|
|
put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67';
|
|
put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66';
|
|
put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66';
|
|
put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66';
|
|
put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74';
|
|
put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88';
|
|
put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95';
|
|
put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95';
|
|
put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95';
|
|
put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93';
|
|
put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93';
|
|
put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93';
|
|
put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82';
|
|
put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90';
|
|
put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88';
|
|
put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85';
|
|
put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84';
|
|
put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83';
|
|
put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82';
|
|
put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64';
|
|
put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93';
|
|
put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24';
|
|
put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25';
|
|
put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25';
|
|
put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25';
|
|
put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25';
|
|
put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24';
|
|
put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28';
|
|
put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24';
|
|
put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26';
|
|
put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24';
|
|
put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24';
|
|
put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20';
|
|
put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27';
|
|
put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28';
|
|
put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28';
|
|
put '41.484,-120.764,Spring,Alturas,Hotspring,81,27';
|
|
put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27';
|
|
put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27';
|
|
put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27';
|
|
put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26';
|
|
put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27';
|
|
put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26';
|
|
put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27';
|
|
put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26';
|
|
put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26';
|
|
put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26';
|
|
put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26';
|
|
put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24';
|
|
put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27';
|
|
put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20';
|
|
put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24';
|
|
put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21';
|
|
put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21';
|
|
put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21';
|
|
put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21';
|
|
put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21';
|
|
put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22';
|
|
put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21';
|
|
put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22';
|
|
put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20';
|
|
put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20';
|
|
put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20';
|
|
put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20';
|
|
put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92';
|
|
put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39';
|
|
put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21';
|
|
put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23';
|
|
put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27';
|
|
put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23';
|
|
put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23';
|
|
put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23';
|
|
put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23';
|
|
put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23';
|
|
put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21';
|
|
put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23';
|
|
put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24';
|
|
put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23';
|
|
put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22';
|
|
put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22';
|
|
put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22';
|
|
put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22';
|
|
put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22';
|
|
put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23';
|
|
put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36';
|
|
put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34';
|
|
put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37';
|
|
put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37';
|
|
put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37';
|
|
put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36';
|
|
put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27';
|
|
put '40.019,-121.036,Spring,Susanville,Hotspring,99,37';
|
|
put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28';
|
|
put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38';
|
|
put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35';
|
|
put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35';
|
|
put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35';
|
|
put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35';
|
|
put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34';
|
|
put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34';
|
|
put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36';
|
|
put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38';
|
|
put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39';
|
|
put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39';
|
|
put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39';
|
|
put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38';
|
|
put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38';
|
|
put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38';
|
|
put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37';
|
|
put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38';
|
|
put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36';
|
|
put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38';
|
|
put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38';
|
|
put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38';
|
|
put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38';
|
|
put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38';
|
|
put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30';
|
|
put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31';
|
|
put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31';
|
|
put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31';
|
|
put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30';
|
|
put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30';
|
|
put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31';
|
|
put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34';
|
|
put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30';
|
|
put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36';
|
|
put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29';
|
|
put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29';
|
|
put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29';
|
|
put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29';
|
|
put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29';
|
|
put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30';
|
|
put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33';
|
|
put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29';
|
|
put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31';
|
|
put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33';
|
|
put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33';
|
|
put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33';
|
|
put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33';
|
|
put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33';
|
|
put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32';
|
|
put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32';
|
|
put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32';
|
|
put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33';
|
|
put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32';
|
|
put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32';
|
|
put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32';
|
|
put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32';
|
|
put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32';
|
|
put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56';
|
|
put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83';
|
|
put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44';
|
|
put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44';
|
|
put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46';
|
|
put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48';
|
|
put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51';
|
|
put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52';
|
|
put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52';
|
|
put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56';
|
|
put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46';
|
|
put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57';
|
|
put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58';
|
|
put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58';
|
|
put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60';
|
|
put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64';
|
|
put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69';
|
|
put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71';
|
|
put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80';
|
|
put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41';
|
|
put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42';
|
|
put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75';
|
|
put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27';
|
|
put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20';
|
|
put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23';
|
|
put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24';
|
|
put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25';
|
|
put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25';
|
|
put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27';
|
|
put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28';
|
|
put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28';
|
|
put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30';
|
|
put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30';
|
|
put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32';
|
|
put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32';
|
|
put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33';
|
|
put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33';
|
|
put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36';
|
|
put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37';
|
|
put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40';
|
|
put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38';
|
|
put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40';
|
|
put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38';
|
|
put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39';
|
|
put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42';
|
|
put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32';
|
|
put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26';
|
|
put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27';
|
|
put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30';
|
|
put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23';
|
|
put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24';
|
|
put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24';
|
|
put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25';
|
|
put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26';
|
|
put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31';
|
|
put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20';
|
|
put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36';
|
|
put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W';
|
|
put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32';
|
|
put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29';
|
|
put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59';
|
|
put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59';
|
|
put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64';
|
|
put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60';
|
|
put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65';
|
|
put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59';
|
|
put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59';
|
|
put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59';
|
|
put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58';
|
|
put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58';
|
|
put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59';
|
|
put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60';
|
|
put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60';
|
|
put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60';
|
|
put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61';
|
|
put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61';
|
|
put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62';
|
|
put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62';
|
|
put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62';
|
|
put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63';
|
|
put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63';
|
|
put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64';
|
|
put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52';
|
|
put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57';
|
|
put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60';
|
|
put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55';
|
|
put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51';
|
|
put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51';
|
|
put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51';
|
|
put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51';
|
|
put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52';
|
|
put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52';
|
|
put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52';
|
|
put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52';
|
|
put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78';
|
|
put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52';
|
|
put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54';
|
|
put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54';
|
|
put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53';
|
|
put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56';
|
|
put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56';
|
|
put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56';
|
|
put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56';
|
|
put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55';
|
|
put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54';
|
|
put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55';
|
|
put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55';
|
|
put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55';
|
|
put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55';
|
|
put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57';
|
|
put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55';
|
|
put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H';
|
|
put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76';
|
|
put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H';
|
|
put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95';
|
|
put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H';
|
|
put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93';
|
|
put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H';
|
|
put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H';
|
|
put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W';
|
|
put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W';
|
|
put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W';
|
|
put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W';
|
|
put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W';
|
|
put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51';
|
|
put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34';
|
|
put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73';
|
|
put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66';
|
|
put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66';
|
|
put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66';
|
|
put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67';
|
|
put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67';
|
|
put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68';
|
|
put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68';
|
|
put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69';
|
|
put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70';
|
|
put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70';
|
|
put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70';
|
|
put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71';
|
|
put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H';
|
|
put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72';
|
|
put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73';
|
|
put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75';
|
|
put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75';
|
|
put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76';
|
|
put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80';
|
|
put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82';
|
|
put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84';
|
|
put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85';
|
|
put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85';
|
|
put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88';
|
|
put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88';
|
|
put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92';
|
|
put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71';
|
|
put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34';
|
|
put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38';
|
|
put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28';
|
|
put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29';
|
|
put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29';
|
|
put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30';
|
|
put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30';
|
|
put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31';
|
|
put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31';
|
|
put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32';
|
|
put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32';
|
|
put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32';
|
|
put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28';
|
|
put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33';
|
|
put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35';
|
|
put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34';
|
|
put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35';
|
|
put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35';
|
|
put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36';
|
|
put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36';
|
|
put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37';
|
|
put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38';
|
|
put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38';
|
|
put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38';
|
|
put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38';
|
|
put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33';
|
|
put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24';
|
|
put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20';
|
|
put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20';
|
|
put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20';
|
|
put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20';
|
|
put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21';
|
|
put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21';
|
|
put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22';
|
|
put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22';
|
|
put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22';
|
|
put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22';
|
|
put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22';
|
|
put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22';
|
|
put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50';
|
|
put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23';
|
|
put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28';
|
|
put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24';
|
|
put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24';
|
|
put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24';
|
|
put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25';
|
|
put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25';
|
|
put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25';
|
|
put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26';
|
|
put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26';
|
|
put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26';
|
|
put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27';
|
|
put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23';
|
|
put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47';
|
|
put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27';
|
|
put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44';
|
|
put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44';
|
|
put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45';
|
|
put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45';
|
|
put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45';
|
|
put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45';
|
|
put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45';
|
|
put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45';
|
|
put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46';
|
|
put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44';
|
|
put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47';
|
|
put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43';
|
|
put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47';
|
|
put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48';
|
|
put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48';
|
|
put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48';
|
|
put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49';
|
|
put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49';
|
|
put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49';
|
|
put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49';
|
|
put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50';
|
|
put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50';
|
|
put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38';
|
|
put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47';
|
|
put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42';
|
|
put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39';
|
|
put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39';
|
|
put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40';
|
|
put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41';
|
|
put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41';
|
|
put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41';
|
|
put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41';
|
|
put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41';
|
|
put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41';
|
|
put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41';
|
|
put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41';
|
|
put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41';
|
|
put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44';
|
|
put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41';
|
|
put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42';
|
|
put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42';
|
|
put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42';
|
|
put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43';
|
|
put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43';
|
|
put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43';
|
|
put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43';
|
|
put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43';
|
|
put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43';
|
|
put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43';
|
|
put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43';
|
|
put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43';
|
|
put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41';
|
|
put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24';
|
|
put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50';
|
|
put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29';
|
|
put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30';
|
|
put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30';
|
|
put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38';
|
|
put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43';
|
|
put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44';
|
|
put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44';
|
|
put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45';
|
|
put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45';
|
|
put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47';
|
|
put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48';
|
|
put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20';
|
|
put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50';
|
|
put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28';
|
|
put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51';
|
|
put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53';
|
|
put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53';
|
|
put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55';
|
|
put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57';
|
|
put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58';
|
|
put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59';
|
|
put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60';
|
|
put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60';
|
|
put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66';
|
|
put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68';
|
|
put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73';
|
|
put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50';
|
|
put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24';
|
|
put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20';
|
|
put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20';
|
|
put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20';
|
|
put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21';
|
|
put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21';
|
|
put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21';
|
|
put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21';
|
|
put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22';
|
|
put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22';
|
|
put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22';
|
|
put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23';
|
|
put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29';
|
|
put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24';
|
|
put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28';
|
|
put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24';
|
|
put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25';
|
|
put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25';
|
|
put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25';
|
|
put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25';
|
|
put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26';
|
|
put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26';
|
|
put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26';
|
|
put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26';
|
|
put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26';
|
|
put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27';
|
|
put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28';
|
|
put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23';
|
|
put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76';
|
|
put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78';
|
|
put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83';
|
|
put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70';
|
|
put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68';
|
|
put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42';
|
|
put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36';
|
|
put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45';
|
|
put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44';
|
|
put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44';
|
|
put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38';
|
|
put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38';
|
|
put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38';
|
|
put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37';
|
|
put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47';
|
|
put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37';
|
|
put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54';
|
|
put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34';
|
|
put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34';
|
|
put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37';
|
|
put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51';
|
|
put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53';
|
|
put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34';
|
|
put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54';
|
|
put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49';
|
|
put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58';
|
|
put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59';
|
|
put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65';
|
|
put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66';
|
|
put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74';
|
|
put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76';
|
|
put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87';
|
|
put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H';
|
|
put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W';
|
|
put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54';
|
|
put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21';
|
|
put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24';
|
|
put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23';
|
|
put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22';
|
|
put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22';
|
|
put '34.698,-107.129,Spring,Socorro,Hotspring,71,22';
|
|
put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26';
|
|
put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21';
|
|
put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22';
|
|
put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21';
|
|
put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20';
|
|
put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20';
|
|
put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20';
|
|
put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33';
|
|
put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52';
|
|
put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21';
|
|
put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31';
|
|
put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33';
|
|
put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21';
|
|
put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33';
|
|
put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26';
|
|
put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31';
|
|
put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31';
|
|
put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30';
|
|
put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29';
|
|
put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28';
|
|
put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28';
|
|
put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28';
|
|
put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27';
|
|
put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27';
|
|
put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26';
|
|
put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26';
|
|
put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58';
|
|
put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61';
|
|
put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61';
|
|
put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60';
|
|
put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60';
|
|
put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59';
|
|
put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58';
|
|
put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58';
|
|
put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62';
|
|
put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58';
|
|
put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57';
|
|
put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57';
|
|
put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72';
|
|
put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59';
|
|
put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69';
|
|
put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43';
|
|
put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57';
|
|
put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72';
|
|
put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72';
|
|
put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71';
|
|
put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71';
|
|
put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72';
|
|
put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70';
|
|
put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63';
|
|
put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66';
|
|
put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66';
|
|
put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65';
|
|
put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65';
|
|
put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64';
|
|
put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64';
|
|
put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63';
|
|
put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70';
|
|
put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46';
|
|
put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43';
|
|
put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49';
|
|
put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48';
|
|
put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48';
|
|
put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50';
|
|
put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46';
|
|
put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50';
|
|
put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45';
|
|
put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45';
|
|
put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44';
|
|
put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44';
|
|
put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74';
|
|
put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43';
|
|
put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96';
|
|
put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46';
|
|
put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56';
|
|
put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56';
|
|
put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55';
|
|
put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55';
|
|
put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54';
|
|
put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54';
|
|
put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49';
|
|
put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53';
|
|
put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56';
|
|
put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53';
|
|
put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53';
|
|
put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52';
|
|
put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51';
|
|
put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50';
|
|
put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50';
|
|
put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53';
|
|
put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H';
|
|
put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98';
|
|
put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H';
|
|
put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H';
|
|
put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H';
|
|
put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H';
|
|
put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H';
|
|
put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W';
|
|
put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H';
|
|
put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W';
|
|
put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H';
|
|
put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B';
|
|
put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99';
|
|
put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98';
|
|
put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98';
|
|
put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98';
|
|
put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H';
|
|
put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W';
|
|
put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.';
|
|
put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W';
|
|
put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W';
|
|
put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.066,-114.99,Spring,Wells,Hotspring,W,W';
|
|
put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H';
|
|
put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W';
|
|
put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97';
|
|
put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W';
|
|
put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W';
|
|
put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W';
|
|
put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W';
|
|
put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W';
|
|
put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W';
|
|
put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82';
|
|
put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98';
|
|
put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84';
|
|
put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84';
|
|
put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83';
|
|
put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82';
|
|
put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86';
|
|
put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82';
|
|
put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86';
|
|
put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82';
|
|
put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81';
|
|
put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80';
|
|
put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80';
|
|
put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79';
|
|
put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79';
|
|
put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77';
|
|
put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82';
|
|
put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93';
|
|
put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39';
|
|
put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42';
|
|
put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96';
|
|
put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95';
|
|
put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95';
|
|
put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93';
|
|
put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77';
|
|
put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92';
|
|
put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92';
|
|
put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90';
|
|
put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88';
|
|
put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88';
|
|
put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86';
|
|
put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86';
|
|
put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94';
|
|
put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24';
|
|
put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28';
|
|
put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25';
|
|
put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25';
|
|
put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25';
|
|
put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25';
|
|
put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41';
|
|
put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26';
|
|
put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40';
|
|
put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26';
|
|
put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24';
|
|
put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24';
|
|
put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24';
|
|
put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24';
|
|
put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24';
|
|
put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24';
|
|
put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24';
|
|
put '41.322,-119.206,Springs,Vya,Hotspring,75,24';
|
|
put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26';
|
|
put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28';
|
|
put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27';
|
|
put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27';
|
|
put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27';
|
|
put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27';
|
|
put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27';
|
|
put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25';
|
|
put '41.338,-119.168,Springs,Vya,Hotspring,79,26';
|
|
put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23';
|
|
put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26';
|
|
put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26';
|
|
put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26';
|
|
put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26';
|
|
put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26';
|
|
put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26';
|
|
put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26';
|
|
put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27';
|
|
put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22';
|
|
put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22';
|
|
put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22';
|
|
put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21';
|
|
put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21';
|
|
put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21';
|
|
put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24';
|
|
put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22';
|
|
put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21';
|
|
put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21';
|
|
put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21';
|
|
put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21';
|
|
put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20';
|
|
put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20';
|
|
put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21';
|
|
put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23';
|
|
put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25';
|
|
put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23';
|
|
put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23';
|
|
put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23';
|
|
put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23';
|
|
put '39.853,-119.719,Spring,Reno,Hotspring,73,23';
|
|
put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23';
|
|
put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22';
|
|
put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23';
|
|
put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22';
|
|
put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23';
|
|
put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22';
|
|
put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22';
|
|
put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22';
|
|
put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22';
|
|
put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22';
|
|
put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24';
|
|
put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23';
|
|
put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34';
|
|
put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32';
|
|
put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35';
|
|
put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35';
|
|
put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35';
|
|
put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34';
|
|
put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34';
|
|
put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35';
|
|
put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34';
|
|
put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36';
|
|
put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34';
|
|
put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33';
|
|
put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33';
|
|
put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33';
|
|
put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33';
|
|
put '39.068,-119.786,Springs,Reno,Hotspring,90,32';
|
|
put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32';
|
|
put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34';
|
|
put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28';
|
|
put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41';
|
|
put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41';
|
|
put '41.53,-118.57,Spring,Vya,Hotspring,104,40';
|
|
put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40';
|
|
put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40';
|
|
put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39';
|
|
put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35';
|
|
put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39';
|
|
put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39';
|
|
put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39';
|
|
put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38';
|
|
put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38';
|
|
put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38';
|
|
put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37';
|
|
put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36';
|
|
put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36';
|
|
put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24';
|
|
put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28';
|
|
put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29';
|
|
put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29';
|
|
put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29';
|
|
put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29';
|
|
put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28';
|
|
put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29';
|
|
put '41.398,-119.165,Spring,Vya,Hotspring,84,29';
|
|
put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28';
|
|
put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29';
|
|
put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28';
|
|
put '39.917,-114.667,Spring,Ely,Hotspring,83,28';
|
|
put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28';
|
|
put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28';
|
|
put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32';
|
|
put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28';
|
|
put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39';
|
|
put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28';
|
|
put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32';
|
|
put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32';
|
|
put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32';
|
|
put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32';
|
|
put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29';
|
|
put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32';
|
|
put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30';
|
|
put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31';
|
|
put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31';
|
|
put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31';
|
|
put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30';
|
|
put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30';
|
|
put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30';
|
|
put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30';
|
|
put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30';
|
|
put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30';
|
|
put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31';
|
|
put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30';
|
|
put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22';
|
|
put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61';
|
|
put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52';
|
|
put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57';
|
|
put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58';
|
|
put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58';
|
|
put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60';
|
|
put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62';
|
|
put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61';
|
|
put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61';
|
|
put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62';
|
|
put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63';
|
|
put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60';
|
|
put '44.867,-121.228,Springs,Bend,Hotspring,125,52';
|
|
put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52';
|
|
put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49';
|
|
put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49';
|
|
put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47';
|
|
put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46';
|
|
put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46';
|
|
put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45';
|
|
put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45';
|
|
put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68';
|
|
put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43';
|
|
put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96';
|
|
put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44';
|
|
put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87';
|
|
put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35';
|
|
put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43';
|
|
put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W';
|
|
put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W';
|
|
put '43.893,-117.596,Springs,Boise,Hotspring,W,W';
|
|
put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H';
|
|
put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H';
|
|
put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97';
|
|
put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92';
|
|
put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92';
|
|
put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88';
|
|
put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71';
|
|
put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86';
|
|
put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86';
|
|
put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81';
|
|
put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80';
|
|
put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79';
|
|
put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78';
|
|
put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78';
|
|
put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77';
|
|
put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74';
|
|
put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73';
|
|
put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73';
|
|
put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72';
|
|
put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90';
|
|
put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21';
|
|
put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25';
|
|
put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24';
|
|
put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23';
|
|
put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23';
|
|
put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22';
|
|
put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22';
|
|
put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22';
|
|
put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22';
|
|
put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22';
|
|
put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22';
|
|
put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22';
|
|
put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25';
|
|
put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21';
|
|
put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25';
|
|
put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21';
|
|
put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21';
|
|
put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21';
|
|
put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20';
|
|
put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20';
|
|
put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20';
|
|
put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20';
|
|
put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43';
|
|
put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35';
|
|
put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21';
|
|
put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35';
|
|
put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41';
|
|
put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41';
|
|
put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41';
|
|
put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41';
|
|
put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40';
|
|
put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40';
|
|
put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38';
|
|
put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37';
|
|
put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37';
|
|
put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24';
|
|
put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36';
|
|
put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26';
|
|
put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34';
|
|
put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27';
|
|
put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26';
|
|
put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36';
|
|
put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26';
|
|
put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33';
|
|
put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27';
|
|
put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27';
|
|
put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27';
|
|
put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28';
|
|
put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28';
|
|
put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29';
|
|
put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29';
|
|
put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32';
|
|
put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24';
|
|
put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31';
|
|
put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36';
|
|
put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47';
|
|
put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45';
|
|
put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41';
|
|
put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37';
|
|
put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32';
|
|
put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30';
|
|
put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37';
|
|
put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38';
|
|
put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30';
|
|
put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31';
|
|
put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32';
|
|
put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32';
|
|
put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32';
|
|
put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32';
|
|
put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33';
|
|
put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28';
|
|
put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38';
|
|
put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40';
|
|
put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40';
|
|
put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33';
|
|
put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30';
|
|
put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29';
|
|
put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42';
|
|
put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28';
|
|
put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28';
|
|
put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28';
|
|
put '39.887,-113.413,North Springs,Delta,Hotspring,82,28';
|
|
put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27';
|
|
put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27';
|
|
put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27';
|
|
put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27';
|
|
put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26';
|
|
put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26';
|
|
put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29';
|
|
put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56';
|
|
put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23';
|
|
put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86';
|
|
put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85';
|
|
put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83';
|
|
put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82';
|
|
put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77';
|
|
put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76';
|
|
put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64';
|
|
put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61';
|
|
put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60';
|
|
put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59';
|
|
put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41';
|
|
put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56';
|
|
put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42';
|
|
put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54';
|
|
put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51';
|
|
put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48';
|
|
put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44';
|
|
put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44';
|
|
put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43';
|
|
put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42';
|
|
put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42';
|
|
put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25';
|
|
put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57';
|
|
put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21';
|
|
put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22';
|
|
put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22';
|
|
put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22';
|
|
put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22';
|
|
put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22';
|
|
put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21';
|
|
put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21';
|
|
put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21';
|
|
put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21';
|
|
put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21';
|
|
put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25';
|
|
put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22';
|
|
put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23';
|
|
put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21';
|
|
put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21';
|
|
put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20';
|
|
put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20';
|
|
put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20';
|
|
put '40.172,-112.426,Davis,Tooele,Hotspring,68,20';
|
|
put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20';
|
|
put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20';
|
|
put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20';
|
|
put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20';
|
|
put '38.762,-112.87,Springs,Richfield,Hotspring,68,20';
|
|
put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20';
|
|
put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20';
|
|
put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21';
|
|
put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23';
|
|
put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21';
|
|
put '39.899,-112.045,Springs,Delta,Hotspring,72,22';
|
|
put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25';
|
|
put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24';
|
|
put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24';
|
|
put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24';
|
|
put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24';
|
|
put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24';
|
|
put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24';
|
|
put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24';
|
|
put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23';
|
|
put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23';
|
|
put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22';
|
|
put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22';
|
|
put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22';
|
|
put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22';
|
|
put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23';
|
|
put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22';
|
|
put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23';
|
|
put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25';
|
|
put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23';
|
|
put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25';
|
|
put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23';
|
|
put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23';
|
|
put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22';
|
|
put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29';
|
|
put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41';
|
|
put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22';
|
|
put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35';
|
|
put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30';
|
|
put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24';
|
|
put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24';
|
|
put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23';
|
|
put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22';
|
|
put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25';
|
|
put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22';
|
|
put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72';
|
|
put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50';
|
|
put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50';
|
|
put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50';
|
|
put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50';
|
|
put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36';
|
|
put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50';
|
|
put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50';
|
|
put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53';
|
|
put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66';
|
|
put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88';
|
|
put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90';
|
|
put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130';
|
|
put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H';
|
|
put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60';
|
|
put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30';
|
|
put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38';
|
|
put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49';
|
|
put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22';
|
|
put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22';
|
|
put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24';
|
|
put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25';
|
|
put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29';
|
|
put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32';
|
|
put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37';
|
|
put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38';
|
|
put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42';
|
|
put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48';
|
|
put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49';
|
|
put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27';
|
|
put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21';
|
|
put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23';
|
|
put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22';
|
|
put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22';
|
|
put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22';
|
|
put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94';
|
|
put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94';
|
|
put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94';
|
|
put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94';
|
|
put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94';
|
|
put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94';
|
|
put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94';
|
|
put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95';
|
|
put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95';
|
|
put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95';
|
|
put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95';
|
|
put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95';
|
|
put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95';
|
|
put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94';
|
|
put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95';
|
|
put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92';
|
|
put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92';
|
|
put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92';
|
|
put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92';
|
|
put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92';
|
|
put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92';
|
|
put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92';
|
|
put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92';
|
|
put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93';
|
|
put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93';
|
|
put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96';
|
|
put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93';
|
|
put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93';
|
|
put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93';
|
|
put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93';
|
|
put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93';
|
|
put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93';
|
|
put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93';
|
|
put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H';
|
|
put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H';
|
|
put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H';
|
|
put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H';
|
|
put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H';
|
|
put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W';
|
|
put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W';
|
|
put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H';
|
|
put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H';
|
|
put '44.563,-110.834,River Group,Ashton,Hotspring,205,96';
|
|
put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96';
|
|
put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B';
|
|
put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H';
|
|
put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H';
|
|
put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H';
|
|
put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92';
|
|
put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96';
|
|
put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H';
|
|
put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H';
|
|
put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H';
|
|
put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89';
|
|
put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54';
|
|
put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39';
|
|
put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41';
|
|
put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44';
|
|
put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45';
|
|
put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45';
|
|
put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46';
|
|
put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46';
|
|
put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90';
|
|
put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54';
|
|
put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35';
|
|
put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55';
|
|
put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56';
|
|
put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58';
|
|
put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58';
|
|
put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58';
|
|
put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59';
|
|
put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51';
|
|
put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29';
|
|
put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20';
|
|
put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20';
|
|
put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21';
|
|
put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21';
|
|
put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22';
|
|
put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24';
|
|
put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24';
|
|
put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25';
|
|
put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37';
|
|
put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27';
|
|
put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36';
|
|
put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30';
|
|
put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30';
|
|
put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30';
|
|
put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32';
|
|
put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33';
|
|
put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35';
|
|
put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62';
|
|
put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27';
|
|
put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89';
|
|
put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60';
|
|
put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86';
|
|
put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86';
|
|
put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87';
|
|
put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87';
|
|
put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88';
|
|
put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88';
|
|
put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89';
|
|
put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85';
|
|
put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89';
|
|
put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85';
|
|
put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90';
|
|
put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91';
|
|
put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91';
|
|
put '44.556,-110.832,River Group,Ashton,Hotspring,196,91';
|
|
put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91';
|
|
put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92';
|
|
put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89';
|
|
put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72';
|
|
put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92';
|
|
put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62';
|
|
put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67';
|
|
put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68';
|
|
put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68';
|
|
put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69';
|
|
put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69';
|
|
put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70';
|
|
put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86';
|
|
put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72';
|
|
put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61';
|
|
put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73';
|
|
put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73';
|
|
put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75';
|
|
put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79';
|
|
put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82';
|
|
put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83';
|
|
put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84';
|
|
put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85';
|
|
put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70';
|
|
put ';;;;';
|
|
put 'run;';
|
|
put '* ServiceInit end;';
|
|
put '* Service start;';
|
|
put '/**';
|
|
put '@file getdata.sas';
|
|
put '@brief Get Data service - runs on app startup';
|
|
put '@details This is always the first service called when the app is opened.';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '**/';
|
|
put '/* this macro converts the JS input to a WORK table - work.areas */';
|
|
put '%webout(FETCH)';
|
|
put 'proc sql;';
|
|
put 'create table springs as select *';
|
|
put 'from mydb.springs';
|
|
put 'where area in (select area from work.areas);';
|
|
put '/* these macros open the JSON, send the table back, and close the JSON */';
|
|
put '%webout(OPEN)';
|
|
put '%webout(OBJ,springs)';
|
|
put '%webout(CLOSE)';
|
|
put '* Service end;';
|
|
|
|
run;
|
|
%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes)
|
|
filename sascode clear;
|
|
|
|
|
|
%let path=services/files;
|
|
|
|
%let service=upload;
|
|
filename sascode temp lrecl=32767;
|
|
data _null_;
|
|
file sascode;
|
|
|
|
put '%macro mf_getuser(';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local user;';
|
|
put '%if %symexist(_sasjs_username) %then %let user=&_sasjs_username;';
|
|
put '%else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do;';
|
|
put '%let user=&SYS_COMPUTE_SESSION_OWNER;';
|
|
put '%end;';
|
|
put '%else %if %symexist(_metaperson) %then %do;';
|
|
put '%if %length(&_metaperson)=0 %then %let user=&sysuserid;';
|
|
put '/* sometimes SAS will add @domain extension - remove for consistency */';
|
|
put '/* but be sure to quote in case of usernames with commas */';
|
|
put '%else %let user=%unquote(%scan(%quote(&_metaperson),1,@));';
|
|
put '%end;';
|
|
put '%else %let user=&sysuserid;';
|
|
put '%quote(&user)';
|
|
put '%mend mf_getuser;';
|
|
put '/**';
|
|
put '@file mp_jsonout.sas';
|
|
put '@brief Writes JSON in SASjs format to a fileref';
|
|
put '@details This macro can be used to OPEN a JSON stream and send one or more';
|
|
put 'tables as arrays of rows, where each row can be an object or a nested array.';
|
|
put 'There are two engines available - DATASTEP or PROCJSON.';
|
|
put 'PROC JSON is fast but will produce errs like the ones below if';
|
|
put 'special chars are encountered.';
|
|
put '> (ERR)OR: Some code points did not transcode.';
|
|
put '> An object or array close is not valid at this point in the JSON text.';
|
|
put '> Date value out of range';
|
|
put 'If this happens, try running with ENGINE=DATASTEP.';
|
|
put 'The DATASTEP engine is used to handle special SAS missing numerics, and';
|
|
put 'can also convert entire datasets to formatted values. Output JSON is always';
|
|
put 'in UTF-8.';
|
|
put 'Usage:';
|
|
put 'filename tmp temp;';
|
|
put 'data class; set sashelp.class;run;';
|
|
put '%mp_jsonout(OPEN,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,jref=tmp)';
|
|
put '%mp_jsonout(OBJ,class,dslabel=class2,jref=tmp,showmeta=Y)';
|
|
put '%mp_jsonout(CLOSE,jref=tmp)';
|
|
put 'data _null_;';
|
|
put 'infile tmp;';
|
|
put 'input;putlog _infile_;';
|
|
put 'run;';
|
|
put 'If you are building web apps with SAS then you are strongly encouraged to use';
|
|
put 'the mX_createwebservice macros in combination with the';
|
|
put '[sasjs adapter](https://github.com/sasjs/adapter).';
|
|
put 'For more information see https://sasjs.io';
|
|
put '@param [in] action Valid values:';
|
|
put '@li OPEN - opens the JSON';
|
|
put '@li OBJ - sends a table with each row as an object';
|
|
put '@li ARR - sends a table with each row in an array';
|
|
put '@li CLOSE - closes the JSON';
|
|
put '@param [in] ds The dataset to send. Must be a work table.';
|
|
put '@param [out] jref= (_webout) The fileref to which to send the JSON';
|
|
put '@param [out] dslabel= The name to give the table in the exported JSON';
|
|
put '@param [in] fmt= (Y) Whether to keep (Y) or strip (N) formats from the table';
|
|
put '@param [in] engine= (DATASTEP) Which engine to use to send the JSON. Options:';
|
|
put '@li PROCJSON (default)';
|
|
put '@li DATASTEP (more reliable when data has non standard characters)';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to JSON';
|
|
put '<h4> Related Macros </h4>';
|
|
put '@li mp_ds2fmtds.sas';
|
|
put '@version 9.2';
|
|
put '@author Allan Bowe';
|
|
put '@source https://github.com/sasjs/core';
|
|
put '**/';
|
|
put '%macro mp_jsonout(action,ds,jref=_webout,dslabel=,fmt=Y';
|
|
put ',engine=DATASTEP';
|
|
put ',missing=NULL';
|
|
put ',showmeta=N';
|
|
put ',maxobs=MAX';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local tempds colinfo fmtds i numcols stmt_obs;';
|
|
put '%let numcols=0;';
|
|
put '%if &maxobs ne MAX %then %let stmt_obs=%str(if _n_>&maxobs then stop;);';
|
|
put '%if &action=OPEN %then %do;';
|
|
put 'options nobomfile;';
|
|
put 'data _null_;file &jref encoding=''utf-8'' lrecl=200;';
|
|
put 'put ''{"PROCESSED_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if (&action=ARR or &action=OBJ) %then %do;';
|
|
put '/* force variable names to always be uppercase in the JSON */';
|
|
put 'options validvarname=upcase;';
|
|
put '/* To avoid issues with _webout on EBI - such as encoding diffs and truncation';
|
|
put '(https://support.sas.com/kb/49/325.html) we use temporary files */';
|
|
put 'filename _sjs1 temp lrecl=200 ;';
|
|
put 'data _null_; file _sjs1 encoding=''utf-8'';';
|
|
put 'put ", ""%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":";';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs1 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs1 clear;';
|
|
put '/* grab col defs */';
|
|
put 'proc contents noprint data=&ds';
|
|
put 'out=_data_(keep=name type length format formatl formatd varnum label);';
|
|
put 'run;';
|
|
put '%let colinfo=%scan(&syslast,2,.);';
|
|
put 'proc sort data=&colinfo;';
|
|
put 'by varnum;';
|
|
put 'run;';
|
|
put '/* move meta to mac vars */';
|
|
put 'data _null_;';
|
|
put 'if _n_=1 then call symputx(''numcols'',nobs,''l'');';
|
|
put 'set &colinfo end=last nobs=nobs;';
|
|
put 'name=upcase(name);';
|
|
put '/* fix formats */';
|
|
put 'if type=2 or type=6 then do;';
|
|
put 'typelong=''char'';';
|
|
put 'length fmt $49.;';
|
|
put 'if format='''' then fmt=cats(''$'',length,''.'');';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'');';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'typelong=''num'';';
|
|
put 'if format='''' then fmt=''best.'';';
|
|
put 'else if formatl=0 then fmt=cats(format,''.'');';
|
|
put 'else if formatd=0 then fmt=cats(format,formatl,''.'');';
|
|
put 'else fmt=cats(format,formatl,''.'',formatd);';
|
|
put 'end;';
|
|
put '/* 32 char unique name */';
|
|
put 'newname=''sasjs''!!substr(cats(put(md5(name),$hex32.)),1,27);';
|
|
put 'call symputx(cats(''name'',_n_),name,''l'');';
|
|
put 'call symputx(cats(''newname'',_n_),newname,''l'');';
|
|
put 'call symputx(cats(''length'',_n_),length,''l'');';
|
|
put 'call symputx(cats(''fmt'',_n_),fmt,''l'');';
|
|
put 'call symputx(cats(''type'',_n_),type,''l'');';
|
|
put 'call symputx(cats(''typelong'',_n_),typelong,''l'');';
|
|
put 'call symputx(cats(''label'',_n_),coalescec(label,name),''l'');';
|
|
put 'run;';
|
|
put '%let tempds=%substr(_%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32);';
|
|
put '%if &engine=PROCJSON %then %do;';
|
|
put '%if &missing=STRING %then %do;';
|
|
put '%put &sysmacroname: Special Missings not supported in proc json.;';
|
|
put '%put &sysmacroname: Switching to DATASTEP engine;';
|
|
put '%goto datastep;';
|
|
put '%end;';
|
|
put 'data &tempds;';
|
|
put 'set &ds;';
|
|
put '&stmt_obs;';
|
|
put '%if &fmt=N %then format _numeric_ best32.;;';
|
|
put '/* PRETTY is necessary to avoid line truncation in large files */';
|
|
put 'filename _sjs2 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'proc json out=_sjs2 pretty';
|
|
put '%if &action=ARR %then nokeys ;';
|
|
put ';export &tempds / nosastags fmtnumeric;';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs2 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs2 clear;';
|
|
put '%end;';
|
|
put '%else %if &engine=DATASTEP %then %do;';
|
|
put '%datastep:';
|
|
put '%if %sysfunc(exist(&ds)) ne 1 & %sysfunc(exist(&ds,VIEW)) ne 1';
|
|
put '%then %do;';
|
|
put '%put &sysmacroname: &ds NOT FOUND!!!;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'data _data_;';
|
|
put '/* rename on entry */';
|
|
put 'set &ds(rename=(';
|
|
put '%do i=1 %to &numcols;';
|
|
put '&&name&i=&&newname&i';
|
|
put '%end;';
|
|
put '));';
|
|
put '%do i=1 %to &numcols;';
|
|
put '/* formatted values can be up to length 32767 */';
|
|
put 'length &&name&i $32767;';
|
|
put '%if &&typelong&i=num %then %do;';
|
|
put '&&name&i=left(put(&&newname&i,&&fmt&i));';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '&&name&i=put(&&newname&i,&&fmt&i);';
|
|
put '%end;';
|
|
put 'drop &&newname&i;';
|
|
put '%end;';
|
|
put 'if _error_ then call symputx(''syscc'',1012);';
|
|
put 'run;';
|
|
put '%let fmtds=&syslast;';
|
|
put '%end;';
|
|
put 'proc format; /* credit yabwon for special null removal */';
|
|
put 'value bart (default=40)';
|
|
put '%if &missing=NULL %then %do;';
|
|
put '._ - .z = null';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '._ = [quote()]';
|
|
put '. = null';
|
|
put '.a - .z = [quote()]';
|
|
put '%end;';
|
|
put 'other = [best.];';
|
|
put 'data &tempds;';
|
|
put 'attrib _all_ label='''';';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'length &&name&i $32767;';
|
|
put 'format &&name&i $32767.;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%if &fmt=Y %then %do;';
|
|
put 'set &fmtds;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'set &ds;';
|
|
put '%end;';
|
|
put '&stmt_obs;';
|
|
put 'format _numeric_ bart.;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &&typelong&i=char or &fmt=Y %then %do;';
|
|
put 'if findc(&&name&i,''"\''!!''0A0D09000E0F01021011''x) then do;';
|
|
put '&&name&i=''"''!!trim(';
|
|
put 'prxchange(''s/"/\\"/'',-1, /* double quote */';
|
|
put 'prxchange(''s/\x0A/\n/'',-1, /* new line */';
|
|
put 'prxchange(''s/\x0D/\r/'',-1, /* carriage return */';
|
|
put 'prxchange(''s/\x09/\\t/'',-1, /* tab */';
|
|
put 'prxchange(''s/\x00/\\u0000/'',-1, /* NUL */';
|
|
put 'prxchange(''s/\x0E/\\u000E/'',-1, /* SS */';
|
|
put 'prxchange(''s/\x0F/\\u000F/'',-1, /* SF */';
|
|
put 'prxchange(''s/\x01/\\u0001/'',-1, /* SOH */';
|
|
put 'prxchange(''s/\x02/\\u0002/'',-1, /* STX */';
|
|
put 'prxchange(''s/\x10/\\u0010/'',-1, /* DLE */';
|
|
put 'prxchange(''s/\x11/\\u0011/'',-1, /* DC1 */';
|
|
put 'prxchange(''s/\\/\\\\/'',-1,&&name&i)';
|
|
put '))))))))))))!!''"'';';
|
|
put 'end;';
|
|
put 'else &&name&i=quote(cats(&&name&i));';
|
|
put '%end;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put 'filename _sjs3 temp lrecl=131068 ;';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 encoding=''utf-8'';';
|
|
put 'if _n_=1 then put "[";';
|
|
put 'set &tempds;';
|
|
put 'if _n_>1 then put "," @; put';
|
|
put '%if &action=ARR %then "[" ; %else "{" ;';
|
|
put '%do i=1 %to &numcols;';
|
|
put '%if &i>1 %then "," ;';
|
|
put '%if &action=OBJ %then """&&name&i"":" ;';
|
|
put '"&&name&i"n /* name literal for reserved variable names */';
|
|
put '%end;';
|
|
put '%if &action=ARR %then "]" ; %else "}" ; ;';
|
|
put '/* close out the table */';
|
|
put 'data _null_;';
|
|
put 'file _sjs3 mod encoding=''utf-8'';';
|
|
put 'put '']'';';
|
|
put 'run;';
|
|
put 'data _null_;';
|
|
put 'infile _sjs3 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs3 clear;';
|
|
put '%end;';
|
|
put 'proc sql;';
|
|
put 'drop table &colinfo, &tempds;';
|
|
put '%if %substr(&showmeta,1,1)=Y %then %do;';
|
|
put 'filename _sjs4 temp lrecl=131068 encoding=''utf-8'';';
|
|
put 'data _null_;';
|
|
put 'file _sjs4;';
|
|
put 'length label $350;';
|
|
put 'put ", ""$%lowcase(%sysfunc(coalescec(&dslabel,&ds)))"":{""vars"":{";';
|
|
put 'do i=1 to &numcols;';
|
|
put 'name=quote(trim(symget(cats(''name'',i))));';
|
|
put 'format=quote(trim(symget(cats(''fmt'',i))));';
|
|
put 'label=quote(prxchange(''s/\\/\\\\/'',-1,trim(symget(cats(''label'',i)))));';
|
|
put 'length=quote(trim(symget(cats(''length'',i))));';
|
|
put 'type=quote(trim(symget(cats(''typelong'',i))));';
|
|
put 'if i>1 then put "," @@;';
|
|
put 'put name '':{"format":'' format '',"label":'' label';
|
|
put ''',"length":'' length '',"type":'' type ''}'';';
|
|
put 'end;';
|
|
put 'put ''}}'';';
|
|
put 'run;';
|
|
put '/* send back to webout */';
|
|
put 'data _null_;';
|
|
put 'infile _sjs4 lrecl=1 recfm=n;';
|
|
put 'file &jref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjs4 clear;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put 'data _null_; file &jref encoding=''utf-8'' mod ;';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%mend mp_jsonout;';
|
|
put '/**';
|
|
put '@file mm_webout.sas';
|
|
put '@brief Send data to/from SAS Stored Processes';
|
|
put '@details This macro should be added to the start of each Stored Process,';
|
|
put '**immediately** followed by a call to:';
|
|
put '%mm_webout(FETCH)';
|
|
put 'This will read all the input data and create same-named SAS datasets in the';
|
|
put 'WORK library. You can then insert your code, and send data back using the';
|
|
put 'following syntax:';
|
|
put 'data some datasets; * make some data ;';
|
|
put 'retain some columns;';
|
|
put 'run;';
|
|
put '%mm_webout(OPEN)';
|
|
put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;';
|
|
put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;';
|
|
put 'Finally, wrap everything up send some helpful system variables too';
|
|
put '%mm_webout(CLOSE)';
|
|
put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE';
|
|
put '@param [in] ds The dataset to send back to the frontend';
|
|
put '@param [out] dslabel= Value to use instead of table name for sending to JSON';
|
|
put '@param [in] fmt=(Y) Set to N to send back unformatted values';
|
|
put '@param [out] fref= (_webout) The fileref to which to write the JSON';
|
|
put '@param [in] missing= (NULL) Special numeric missing values can be sent as NULL';
|
|
put '(eg `null`) or as STRING values (eg `".a"` or `".b"`)';
|
|
put '@param [in] showmeta= (N) Set to Y to output metadata alongside each table,';
|
|
put 'such as the column formats and types. The metadata is contained inside an';
|
|
put 'object with the same name as the table but prefixed with a dollar sign - ie,';
|
|
put '`,"$tablename":{"formats":{"col1":"$CHAR1"},"types":{"COL1":"C"}}`';
|
|
put '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows';
|
|
put 'that should be converted to output JSON';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '@li mp_jsonout.sas';
|
|
put '@version 9.3';
|
|
put '@author Allan Bowe';
|
|
put '**/';
|
|
put '%macro mm_webout(action,ds,dslabel=,fref=_webout,fmt=Y,missing=NULL';
|
|
put ',showmeta=N,maxobs=MAX';
|
|
put ');';
|
|
put '%global _webin_file_count _webin_fileref1 _webin_name1 _program _debug';
|
|
put 'sasjs_tables;';
|
|
put '%local i tempds jsonengine;';
|
|
put '/* see https://github.com/sasjs/core/issues/41 */';
|
|
put '%if "%upcase(&SYSENCODING)" ne "UTF-8" %then %let jsonengine=PROCJSON;';
|
|
put '%else %let jsonengine=DATASTEP;';
|
|
put '%if &action=FETCH %then %do;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'options mprint notes mprintnest;';
|
|
put '%end;';
|
|
put '%let _webin_file_count=%eval(&_webin_file_count+0);';
|
|
put '/* now read in the data */';
|
|
put '%do i=1 %to &_webin_file_count;';
|
|
put '%if &_webin_file_count=1 %then %do;';
|
|
put '%let _webin_fileref1=&_webin_fileref;';
|
|
put '%let _webin_name1=&_webin_name;';
|
|
put '%end;';
|
|
put 'data _null_;';
|
|
put 'infile &&_webin_fileref&i termstr=crlf;';
|
|
put 'input;';
|
|
put 'call symputx(''input_statement'',_infile_);';
|
|
put 'putlog "&&_webin_name&i input statement: " _infile_;';
|
|
put 'stop;';
|
|
put 'data &&_webin_name&i;';
|
|
put 'infile &&_webin_fileref&i firstobs=2 dsd termstr=crlf encoding=''utf-8'';';
|
|
put 'input &input_statement;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'if _n_<20 then putlog _infile_;';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '%let sasjs_tables=&sasjs_tables &&_webin_name&i;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &action=OPEN %then %do;';
|
|
put '/* fix encoding */';
|
|
put 'OPTIONS NOBOMFILE;';
|
|
put '/**';
|
|
put '* check xengine type to avoid the below err message:';
|
|
put '* > Function is only valid for filerefs using the CACHE access method.';
|
|
put '*/';
|
|
put 'data _null_;';
|
|
put 'set sashelp.vextfl(where=(fileref="_WEBOUT"));';
|
|
put 'if xengine=''STREAM'' then do;';
|
|
put 'rc=stpsrv_header(''Content-type'',"text/html; encoding=utf-8");';
|
|
put 'end;';
|
|
put 'run;';
|
|
put '/* setup json */';
|
|
put 'data _null_;file &fref encoding=''utf-8'';';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutBEGIN<<'';';
|
|
put '%end;';
|
|
put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';';
|
|
put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %if &action=ARR or &action=OBJ %then %do;';
|
|
put '%mp_jsonout(&action,&ds,dslabel=&dslabel,fmt=&fmt,jref=&fref';
|
|
put ',engine=&jsonengine,missing=&missing,showmeta=&showmeta,maxobs=&maxobs';
|
|
put ')';
|
|
put '%end;';
|
|
put '%else %if &action=CLOSE %then %do;';
|
|
put '/* To avoid issues with _webout on EBI we use a temporary file */';
|
|
put 'filename _sjsref temp lrecl=131068;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put '/* if debug mode, send back first 10 records of each work table also */';
|
|
put 'data;run;%let tempds=%scan(&syslast,2,.);';
|
|
put 'ods output Members=&tempds;';
|
|
put 'proc datasets library=WORK memtype=data;';
|
|
put '%local wtcnt;%let wtcnt=0;';
|
|
put 'data _null_;';
|
|
put 'set &tempds;';
|
|
put 'if not (upcase(name) =:"DATA"); /* ignore temp datasets */';
|
|
put 'i+1;';
|
|
put 'call symputx(cats(''wt'',i),name,''l'');';
|
|
put 'call symputx(''wtcnt'',i,''l'');';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put ",""WORK"":{";';
|
|
put '%do i=1 %to &wtcnt;';
|
|
put '%let wt=&&wt&i;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'dsid=open("WORK.&wt",''is'');';
|
|
put 'nlobs=attrn(dsid,''NLOBS'');';
|
|
put 'nvars=attrn(dsid,''NVARS'');';
|
|
put 'rc=close(dsid);';
|
|
put 'if &i>1 then put '',''@;';
|
|
put 'put " ""&wt"" : {";';
|
|
put 'put ''"nlobs":'' nlobs;';
|
|
put 'put '',"nvars":'' nvars;';
|
|
put '%mp_jsonout(OBJ,&wt,jref=_sjsref,dslabel=first10rows,showmeta=Y,maxobs=10)';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put '%end;';
|
|
put 'data _null_; file _sjsref mod encoding=''utf-8'';';
|
|
put 'put "}";';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '/* close off json */';
|
|
put 'data _null_;file _sjsref mod encoding=''utf-8'';';
|
|
put 'length SYSPROCESSNAME syserrortext syswarningtext autoexec $512;';
|
|
put 'put ",""_DEBUG"" : ""&_debug"" ";';
|
|
put '_METAUSER=quote(trim(symget(''_METAUSER'')));';
|
|
put 'put ",""_METAUSER"": " _METAUSER;';
|
|
put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));';
|
|
put 'put '',"_METAPERSON": '' _METAPERSON;';
|
|
put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));';
|
|
put 'put '',"_PROGRAM" : '' _PROGRAM ;';
|
|
put 'autoexec=quote(urlencode(trim(getoption(''autoexec''))));';
|
|
put 'put '',"AUTOEXEC" : '' autoexec;';
|
|
put 'put ",""MF_GETUSER"" : ""%mf_getuser()"" ";';
|
|
put 'put ",""SYSCC"" : ""&syscc"" ";';
|
|
put 'put ",""SYSENCODING"" : ""&sysencoding"" ";';
|
|
put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSERRORTEXT" : '' syserrortext;';
|
|
put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";';
|
|
put 'put ",""SYSPROCESSID"" : ""&SYSPROCESSID"" ";';
|
|
put 'put ",""SYSPROCESSMODE"" : ""&SYSPROCESSMODE"" ";';
|
|
put 'SYSPROCESSNAME=quote(urlencode(cats(SYSPROCESSNAME)));';
|
|
put 'put ",""SYSPROCESSNAME"" : " SYSPROCESSNAME;';
|
|
put 'put ",""SYSJOBID"" : ""&sysjobid"" ";';
|
|
put 'put ",""SYSSCPL"" : ""&sysscpl"" ";';
|
|
put 'put ",""SYSSITE"" : ""&syssite"" ";';
|
|
put 'put ",""SYSUSERID"" : ""&sysuserid"" ";';
|
|
put 'sysvlong=quote(trim(symget(''sysvlong'')));';
|
|
put 'put '',"SYSVLONG" : '' sysvlong;';
|
|
put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');';
|
|
put 'put '',"SYSWARNINGTEXT" : '' syswarningtext;';
|
|
put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';';
|
|
put 'length memsize $32;';
|
|
put 'memsize="%sysfunc(INPUTN(%sysfunc(getoption(memsize)), best.),sizekmg.)";';
|
|
put 'memsize=quote(cats(memsize));';
|
|
put 'put '',"MEMSIZE" : '' memsize;';
|
|
put 'put "}" @;';
|
|
put '%if %str(&_debug) ge 131 %then %do;';
|
|
put 'put ''>>weboutEND<<'';';
|
|
put '%end;';
|
|
put 'run;';
|
|
put '/* now write to _webout 1 char at a time */';
|
|
put 'data _null_;';
|
|
put 'infile _sjsref lrecl=1 recfm=n;';
|
|
put 'file &fref mod lrecl=1 recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put 'filename _sjsref clear;';
|
|
put '%end;';
|
|
put '%mend mm_webout;';
|
|
put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);';
|
|
put '%mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt';
|
|
put ',missing=&missing';
|
|
put ',showmeta=&showmeta';
|
|
put ',maxobs=&maxobs';
|
|
put ') %mend;';
|
|
put '/* provide additional debug info */';
|
|
put '%global _program;';
|
|
put '%put &=syscc;';
|
|
put '%put user=%mf_getuser();';
|
|
put '%put pgm=&_program;';
|
|
put '%put timestamp=%sysfunc(datetime(),datetime19.);';
|
|
put '* Service Variables start;';
|
|
put '* Service Variables end;';
|
|
put '* SAS Macros start;';
|
|
put '%macro mp_abort(mac=mp_abort.sas, type=, msg=, iftrue=%str(1=1)';
|
|
put ', errds=work.mp_abort_errds';
|
|
put ', mode=REGULAR';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%global sysprocessmode sysprocessname sasjs_stpsrv_header_loc sasjsprocessmode;';
|
|
put '%local fref fid i;';
|
|
put '%if not(%eval(%unquote(&iftrue))) %then %return;';
|
|
put '%put NOTE: /// mp_abort macro executing //;';
|
|
put '%if %length(&mac)>0 %then %put NOTE- called by &mac;';
|
|
put '%put NOTE - &msg;';
|
|
put '%if %symexist(_SYSINCLUDEFILEDEVICE)';
|
|
put '/* abort cancel FILE does not restart outside the INCLUDE on Viya 3.5 */';
|
|
put 'and %superq(SYSPROCESSNAME) ne %str(Compute Server)';
|
|
put '%then %do;';
|
|
put '%if "*&_SYSINCLUDEFILEDEVICE*" ne "**" %then %do;';
|
|
put 'data &errds;';
|
|
put 'iftrue=''1=1'';';
|
|
put 'length mac $100 msg $5000;';
|
|
put 'mac=symget(''mac'');';
|
|
put 'msg=symget(''msg'');';
|
|
put 'run;';
|
|
put 'data _null_;';
|
|
put 'abort cancel FILE;';
|
|
put 'run;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '/* Web App Context */';
|
|
put '%if %symexist(_PROGRAM)';
|
|
put 'or %superq(SYSPROCESSNAME) = %str(Compute Server)';
|
|
put 'or &mode=INCLUDE';
|
|
put '%then %do;';
|
|
put 'options obs=max replace mprint;';
|
|
put '%if "%substr(&sysver,1,1)" ne "4" and "%substr(&sysver,1,1)" ne "5"';
|
|
put '%then %do;';
|
|
put 'options nosyntaxcheck;';
|
|
put '%end;';
|
|
put '%if &mode=INCLUDE %then %do;';
|
|
put '%if %sysfunc(exist(&errds))=1 %then %do;';
|
|
put 'data _null_;';
|
|
put 'set &errds;';
|
|
put 'call symputx(''iftrue'',iftrue,''l'');';
|
|
put 'call symputx(''mac'',mac,''l'');';
|
|
put 'call symputx(''msg'',msg,''l'');';
|
|
put 'putlog (_all_)(=);';
|
|
put 'run;';
|
|
put '%if (&iftrue)=0 %then %return;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '%put &sysmacroname: No include errors found;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '/* extract log errs / warns, if exist */';
|
|
put '%local logloc logline;';
|
|
put '%global logmsg; /* capture global messages */';
|
|
put '%if %symexist(SYSPRINTTOLOG) %then %let logloc=&SYSPRINTTOLOG;';
|
|
put '%else %let logloc=%qsysfunc(getoption(LOG));';
|
|
put 'proc printto log=log;run;';
|
|
put '%let logline=0;';
|
|
put '%if %length(&logloc)>0 %then %do;';
|
|
put 'data _null_;';
|
|
put 'infile &logloc lrecl=5000;';
|
|
put 'input; putlog _infile_;';
|
|
put 'i=1;';
|
|
put 'retain logonce 0;';
|
|
put 'if (';
|
|
put '_infile_=:"%str(WARN)ING" or _infile_=:"%str(ERR)OR"';
|
|
put ') and logonce=0 then';
|
|
put 'do;';
|
|
put 'call symputx(''logline'',_n_);';
|
|
put 'logonce+1;';
|
|
put 'end;';
|
|
put 'run;';
|
|
put '/* capture log including lines BEFORE the err */';
|
|
put '%if &logline>0 %then %do;';
|
|
put 'data _null_;';
|
|
put 'infile &logloc lrecl=5000;';
|
|
put 'input;';
|
|
put 'i=1;';
|
|
put 'stoploop=0;';
|
|
put 'if _n_ ge &logline-15 and stoploop=0 then do until (i>22);';
|
|
put 'call symputx(''logmsg'',catx(''\n'',symget(''logmsg''),_infile_));';
|
|
put 'input;';
|
|
put 'i+1;';
|
|
put 'stoploop=1;';
|
|
put 'end;';
|
|
put 'if stoploop=1 then stop;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%if %symexist(SYS_JES_JOB_URI) %then %do;';
|
|
put '/* setup webout for Viya */';
|
|
put 'options nobomfile;';
|
|
put '%if "X&SYS_JES_JOB_URI.X"="XX" %then %do;';
|
|
put 'filename _webout temp lrecl=999999 mod;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'filename _webout filesrvc parenturi="&SYS_JES_JOB_URI"';
|
|
put 'name="_webout.json" lrecl=999999 mod;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if %sysfunc(filename(fref,&sasjs_stpsrv_header_loc))=0 %then %do;';
|
|
put 'options nobomfile;';
|
|
put '/* set up http header for SASjs Server */';
|
|
put '%let fid=%sysfunc(fopen(&fref,A));';
|
|
put '%if &fid=0 %then %do;';
|
|
put '%put %str(ERR)OR: %sysfunc(sysmsg());';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%let rc=%sysfunc(fput(&fid,%str(Content-Type: application/json)));';
|
|
put '%let rc=%sysfunc(fwrite(&fid));';
|
|
put '%let rc=%sysfunc(fclose(&fid));';
|
|
put '%let rc=%sysfunc(filename(&fref));';
|
|
put '%end;';
|
|
put '/* send response in SASjs JSON format */';
|
|
put 'data _null_;';
|
|
put 'file _webout mod lrecl=32000 encoding=''utf-8'';';
|
|
put 'length msg syswarningtext syserrortext $32767 mode $10 ;';
|
|
put 'sasdatetime=datetime();';
|
|
put 'msg=symget(''msg'');';
|
|
put '%if &logline>0 %then %do;';
|
|
put 'msg=cats(msg,''\n\nLog Extract:\n'',symget(''logmsg''));';
|
|
put '%end;';
|
|
put '/* escape the escapes */';
|
|
put 'msg=tranwrd(msg,''\'',''\\'');';
|
|
put '/* escape the quotes */';
|
|
put 'msg=tranwrd(msg,''"'',''\"'');';
|
|
put '/* ditch the CRLFs as chrome complains */';
|
|
put 'msg=compress(msg,,''kw'');';
|
|
put '/* quote without quoting the quotes (which are escaped instead) */';
|
|
put 'msg=cats(''"'',msg,''"'');';
|
|
put 'if symexist(''_debug'') then debug=quote(trim(symget(''_debug'')));';
|
|
put 'else debug=''""'';';
|
|
put 'if symget(''sasjsprocessmode'')=''Stored Program'' then mode=''SASJS'';';
|
|
put 'if mode ne ''SASJS'' then put ''>>weboutBEGIN<<'';';
|
|
put 'put ''{"SYSDATE" : "'' "&SYSDATE" ''"'';';
|
|
put 'put '',"SYSTIME" : "'' "&SYSTIME" ''"'';';
|
|
put 'put '',"sasjsAbort" : [{'';';
|
|
put 'put '' "MSG":'' msg ;';
|
|
put 'put '' ,"MAC": "'' "&mac" ''"}]'';';
|
|
put 'put ",""SYSUSERID"" : ""&sysuserid"" ";';
|
|
put 'put '',"_DEBUG":'' debug ;';
|
|
put 'if symexist(''_metauser'') then do;';
|
|
put '_METAUSER=quote(trim(symget(''_METAUSER'')));';
|
|
put 'put ",""_METAUSER"": " _METAUSER;';
|
|
put '_METAPERSON=quote(trim(symget(''_METAPERSON'')));';
|
|
put 'put '',"_METAPERSON": '' _METAPERSON;';
|
|
put 'end;';
|
|
put 'if symexist(''SYS_JES_JOB_URI'') then do;';
|
|
put 'SYS_JES_JOB_URI=quote(trim(symget(''SYS_JES_JOB_URI'')));';
|
|
put 'put '',"SYS_JES_JOB_URI": '' SYS_JES_JOB_URI;';
|
|
put 'end;';
|
|
put '_PROGRAM=quote(trim(resolve(symget(''_PROGRAM''))));';
|
|
put 'put '',"_PROGRAM" : '' _PROGRAM ;';
|
|
put 'put ",""SYSCC"" : ""&syscc"" ";';
|
|
put 'syserrortext=cats(''"'',tranwrd(symget(''syserrortext''),''"'',''\"''),''"'');';
|
|
put 'put ",""SYSERRORTEXT"" : " syserrortext;';
|
|
put 'put ",""SYSHOSTNAME"" : ""&syshostname"" ";';
|
|
put 'put ",""SYSJOBID"" : ""&sysjobid"" ";';
|
|
put 'put ",""SYSSCPL"" : ""&sysscpl"" ";';
|
|
put 'put ",""SYSSITE"" : ""&syssite"" ";';
|
|
put 'sysvlong=quote(trim(symget(''sysvlong'')));';
|
|
put 'put '',"SYSVLONG" : '' sysvlong;';
|
|
put 'syswarningtext=cats(''"'',tranwrd(symget(''syswarningtext''),''"'',''\"''),''"'');';
|
|
put 'put ",""SYSWARNINGTEXT"" : " syswarningtext;';
|
|
put 'put '',"END_DTTM" : "'' "%sysfunc(datetime(),E8601DT26.6)" ''" '';';
|
|
put 'put "}" ;';
|
|
put 'if mode ne ''SASJS'' then put ''>>weboutEND<<'';';
|
|
put 'run;';
|
|
put '%put _all_;';
|
|
put '%if "&sysprocessmode " = "SAS Stored Process Server " %then %do;';
|
|
put 'data _null_;';
|
|
put 'putlog ''stpsrvset program err and syscc'';';
|
|
put 'rc=stpsrvset(''program error'', 0);';
|
|
put 'call symputx("syscc",0,"g");';
|
|
put 'run;';
|
|
put '%if &sysscp=WIN';
|
|
put 'and 1=0 /* deprecating this logic until we figure out a consistent abort */';
|
|
put 'and "%substr(%str(&sysvlong ),1,8)"="9.04.01M"';
|
|
put 'and "%substr(%str(&sysvlong ),9,1)">"5" %then %do;';
|
|
put '/* skip approach (below) does not work in windows m6+ envs */';
|
|
put 'endsas;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '/**';
|
|
put '* endsas kills 9.4m3 deployments by orphaning multibridges.';
|
|
put '* Abort variants are ungraceful (non zero return code)';
|
|
put '* This approach lets SAS run silently until the end :-)';
|
|
put '* Caution - fails when called within a %include within a macro';
|
|
put '* Use mp_include() to handle this.';
|
|
put '*/';
|
|
put 'filename skip temp;';
|
|
put 'data _null_;';
|
|
put 'file skip;';
|
|
put 'put ''%macro skip();'';';
|
|
put 'comment ''%mend skip; -> fix lint '';';
|
|
put 'put ''%macro skippy();'';';
|
|
put 'comment ''%mend skippy; -> fix lint '';';
|
|
put 'run;';
|
|
put '%inc skip;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if "&sysprocessmode " = "SAS Compute Server " %then %do;';
|
|
put '/* endsas kills the session making it harder to fetch results */';
|
|
put 'data _null_;';
|
|
put 'syswarningtext=symget(''syswarningtext'');';
|
|
put 'syserrortext=symget(''syserrortext'');';
|
|
put 'abort_msg=symget(''msg'');';
|
|
put 'syscc=symget(''syscc'');';
|
|
put 'sysuserid=symget(''sysuserid'');';
|
|
put 'iftrue=symget(''iftrue'');';
|
|
put 'put (_all_)(/=);';
|
|
put 'call symputx(''syscc'',0);';
|
|
put 'abort cancel nolist;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '%abort cancel;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '%put _all_;';
|
|
put '%abort cancel;';
|
|
put '%end;';
|
|
put '%mend mp_abort;';
|
|
put '/** @endcond */';
|
|
put '%macro mf_isdir(path';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local rc did is_directory fref_t;';
|
|
put '%let is_directory = 0;';
|
|
put '%let rc = %sysfunc(filename(fref_t, %superq(path)));';
|
|
put '%let did = %sysfunc(dopen(&fref_t.));';
|
|
put '%if &did. ^= 0 %then %do;';
|
|
put '%let is_directory = 1;';
|
|
put '%let rc = %sysfunc(dclose(&did.));';
|
|
put '%end;';
|
|
put '%let rc = %sysfunc(filename(fref_t));';
|
|
put '&is_directory';
|
|
put '%mend mf_isdir;';
|
|
put '%macro mf_existds(libds';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;';
|
|
put '%else 1;';
|
|
put '%mend mf_existds;';
|
|
put '%macro mf_getvarlist(libds';
|
|
put ',dlm=%str( )';
|
|
put ',quote=no';
|
|
put ',typefilter=A';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '/* declare local vars */';
|
|
put '%local outvar dsid nvars x rc dlm q var vtype;';
|
|
put '/* credit Rowland Hale - byte34 is double quote, 39 is single quote */';
|
|
put '%if %upcase("e)=DOUBLE %then %let q=%qsysfunc(byte(34));';
|
|
put '%else %if %upcase("e)=SINGLE %then %let q=%qsysfunc(byte(39));';
|
|
put '/* open dataset in macro */';
|
|
put '%let dsid=%sysfunc(open(&libds));';
|
|
put '%if &dsid %then %do;';
|
|
put '%let nvars=%sysfunc(attrn(&dsid,NVARS));';
|
|
put '%if &nvars>0 %then %do;';
|
|
put '/* add variables with supplied delimeter */';
|
|
put '%do x=1 %to &nvars;';
|
|
put '/* get variable type */';
|
|
put '%let vtype=%sysfunc(vartype(&dsid,&x));';
|
|
put '%if &vtype=&typefilter or &typefilter=A %then %do;';
|
|
put '%let var=&q.%sysfunc(varname(&dsid,&x))&q.;';
|
|
put '%if &var=&q&q %then %do;';
|
|
put '%put &sysmacroname: Empty column found in &libds!;';
|
|
put '%let var=&q. &q.;';
|
|
put '%end;';
|
|
put '%if %quote(&outvar)=%quote() %then %let outvar=&var;';
|
|
put '%else %let outvar=&outvar.&dlm.&var.;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%let rc=%sysfunc(close(&dsid));';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '%put &sysmacroname: Unable to open &libds (rc=&dsid);';
|
|
put '%put &sysmacroname: SYSMSG= %sysfunc(sysmsg());';
|
|
put '%let rc=%sysfunc(close(&dsid));';
|
|
put '%end;';
|
|
put '%do;%unquote(&outvar)%end;';
|
|
put '%mend mf_getvarlist;';
|
|
put '%macro mf_wordsInStr1ButNotStr2(';
|
|
put 'Str1= /* string containing words to extract */';
|
|
put ',Str2= /* used to compare with the extract string */';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local count_base count_extr i i2 extr_word base_word match outvar;';
|
|
put '%if %length(&str1)=0 or %length(&str2)=0 %then %do;';
|
|
put '%put base string (str1)= &str1;';
|
|
put '%put compare string (str2) = &str2;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%let count_base=%sysfunc(countw(&Str2));';
|
|
put '%let count_extr=%sysfunc(countw(&Str1));';
|
|
put '%do i=1 %to &count_extr;';
|
|
put '%let extr_word=%scan(&Str1,&i,%str( ));';
|
|
put '%let match=0;';
|
|
put '%do i2=1 %to &count_base;';
|
|
put '%let base_word=%scan(&Str2,&i2,%str( ));';
|
|
put '%if &extr_word=&base_word %then %let match=1;';
|
|
put '%end;';
|
|
put '%if &match=0 %then %let outvar=&outvar &extr_word;';
|
|
put '%end;';
|
|
put '&outvar';
|
|
put '%mend mf_wordsInStr1ButNotStr2;';
|
|
put '%macro mf_isblank(param';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%sysevalf(%superq(param)=,boolean)';
|
|
put '%mend mf_isblank;';
|
|
put '%macro mp_dropmembers(';
|
|
put 'list /* space separated list of datasets / views */';
|
|
put ',libref=WORK /* can only drop from a single library at a time */';
|
|
put ',iftrue=%str(1=1)';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%if not(%eval(%unquote(&iftrue))) %then %return;';
|
|
put '%if %mf_isblank(&list) %then %do;';
|
|
put '%put NOTE: nothing to drop!;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put 'proc datasets lib=&libref nolist;';
|
|
put 'delete &list;';
|
|
put 'delete &list /mtype=view;';
|
|
put 'run;';
|
|
put '%mend mp_dropmembers;';
|
|
put '%macro mp_dirlist(path=%sysfunc(pathname(work))';
|
|
put ', fref=0';
|
|
put ', outds=work.mp_dirlist';
|
|
put ', getattrs=NO';
|
|
put ', maxdepth=0';
|
|
put ', level=0 /* The level of recursion to perform. For internal use only. */';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%let getattrs=%upcase(&getattrs)XX;';
|
|
put '/* temp table */';
|
|
put '%local out_ds;';
|
|
put 'data;run;';
|
|
put '%let out_ds=%str(&syslast);';
|
|
put '/* drop main (top) table if it exists */';
|
|
put '%if &level=0 %then %do;';
|
|
put '%mp_dropmembers(%scan(&outds,-1,.), libref=WORK)';
|
|
put '%end;';
|
|
put 'data &out_ds(compress=no';
|
|
put 'keep=file_or_folder filepath filename ext msg directory level';
|
|
put ');';
|
|
put 'length directory filepath $500 fref fref2 $8 file_or_folder $6 filename $80';
|
|
put 'ext $20 msg $200 foption $16;';
|
|
put 'if _n_=1 then call missing(of _all_);';
|
|
put 'retain level &level;';
|
|
put '%if &fref=0 %then %do;';
|
|
put 'rc = filename(fref, "&path");';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'fref="&fref";';
|
|
put 'rc=0;';
|
|
put '%end;';
|
|
put 'if rc = 0 then do;';
|
|
put 'did = dopen(fref);';
|
|
put 'if did=0 then do;';
|
|
put 'putlog "NOTE: This directory is empty, or does not exist - &path";';
|
|
put 'msg=sysmsg();';
|
|
put 'put msg;';
|
|
put 'put _all_;';
|
|
put 'stop;';
|
|
put 'end;';
|
|
put '/* attribute is OS-dependent - could be "Directory" or "Directory Name" */';
|
|
put 'numopts=doptnum(did);';
|
|
put 'do i=1 to numopts;';
|
|
put 'foption=doptname(did,i);';
|
|
put 'if foption=:''Directory'' then i=numopts;';
|
|
put 'end;';
|
|
put 'directory=dinfo(did,foption);';
|
|
put 'rc = filename(fref);';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'msg=sysmsg();';
|
|
put 'put _all_;';
|
|
put 'stop;';
|
|
put 'end;';
|
|
put 'dnum = dnum(did);';
|
|
put 'do i = 1 to dnum;';
|
|
put 'filename = dread(did, i);';
|
|
put 'filepath=cats(directory,''/'',filename);';
|
|
put 'rc = filename(fref2,filepath);';
|
|
put 'midd=dopen(fref2);';
|
|
put 'dmsg=sysmsg();';
|
|
put 'if did > 0 then file_or_folder=''folder'';';
|
|
put 'rc=dclose(midd);';
|
|
put 'midf=fopen(fref2);';
|
|
put 'fmsg=sysmsg();';
|
|
put 'if midf > 0 then file_or_folder=''file'';';
|
|
put 'rc=fclose(midf);';
|
|
put 'if index(fmsg,''File is in use'') or index(dmsg,''is not a directory'')';
|
|
put 'then file_or_folder=''file'';';
|
|
put 'else if index(fmsg,''Insufficient authorization'') then file_or_folder=''file'';';
|
|
put 'else if file_or_folder='''' then file_or_folder=''locked'';';
|
|
put 'if file_or_folder=''file'' then do;';
|
|
put 'ext = prxchange(''s/.*\.{1,1}(.*)/$1/'', 1, filename);';
|
|
put 'if filename = ext then ext = '' '';';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'ext='''';';
|
|
put 'file_or_folder=''folder'';';
|
|
put 'end;';
|
|
put 'output;';
|
|
put 'end;';
|
|
put 'rc = dclose(did);';
|
|
put 'stop;';
|
|
put 'run;';
|
|
put '%if %substr(&getattrs,1,1)=Y %then %do;';
|
|
put 'data &out_ds;';
|
|
put 'set &out_ds;';
|
|
put 'length infoname infoval $60 fref $8;';
|
|
put 'if _n_=1 then call missing(fref);';
|
|
put 'rc=filename(fref,filepath);';
|
|
put 'drop rc infoname fid i close fref;';
|
|
put 'if file_or_folder=''file'' then do;';
|
|
put 'fid=fopen(fref);';
|
|
put 'if fid le 0 then do;';
|
|
put 'msg=sysmsg();';
|
|
put 'putlog "Could not open file:" filepath fid= ;';
|
|
put 'sasname=''_MCNOTVALID_'';';
|
|
put 'output;';
|
|
put 'end;';
|
|
put 'else do i=1 to foptnum(fid);';
|
|
put 'infoname=foptname(fid,i);';
|
|
put 'infoval=finfo(fid,infoname);';
|
|
put 'sasname=compress(infoname, ''_'', ''adik'');';
|
|
put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));';
|
|
put 'if upcase(sasname) ne ''FILENAME'' then output;';
|
|
put 'end;';
|
|
put 'close=fclose(fid);';
|
|
put 'end;';
|
|
put 'else do;';
|
|
put 'fid=dopen(fref);';
|
|
put 'if fid le 0 then do;';
|
|
put 'msg=sysmsg();';
|
|
put 'putlog "Could not open folder:" filepath fid= ;';
|
|
put 'sasname=''_MCNOTVALID_'';';
|
|
put 'output;';
|
|
put 'end;';
|
|
put 'else do i=1 to doptnum(fid);';
|
|
put 'infoname=doptname(fid,i);';
|
|
put 'infoval=dinfo(fid,infoname);';
|
|
put 'sasname=compress(infoname, ''_'', ''adik'');';
|
|
put 'if anydigit(sasname)=1 then sasname=substr(sasname,anyalpha(sasname));';
|
|
put 'if upcase(sasname) ne ''FILENAME'' then output;';
|
|
put 'end;';
|
|
put 'close=dclose(fid);';
|
|
put 'end;';
|
|
put 'run;';
|
|
put 'proc sort;';
|
|
put 'by filepath sasname;';
|
|
put 'proc transpose data=&out_ds out=&out_ds(drop=_:);';
|
|
put 'id sasname;';
|
|
put 'var infoval;';
|
|
put 'by filepath file_or_folder filename ext ;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put 'data &out_ds;';
|
|
put 'set &out_ds(where=(filepath ne ''''));';
|
|
put 'run;';
|
|
put '/**';
|
|
put '* The above transpose can mean that some updates create additional columns.';
|
|
put '* This necessitates the occasional use of datastep over proc append.';
|
|
put '*/';
|
|
put '%if %mf_existds(&outds) %then %do;';
|
|
put '%local basevars appvars newvars;';
|
|
put '%let basevars=%mf_getvarlist(&outds);';
|
|
put '%let appvars=%mf_getvarlist(&out_ds);';
|
|
put '%let newvars=%length(%mf_wordsinstr1butnotstr2(Str1=&appvars,Str2=&basevars));';
|
|
put '%if &newvars>0 %then %do;';
|
|
put 'data &outds;';
|
|
put 'set &outds &out_ds;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'proc append base=&outds data=&out_ds force nowarn;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'proc append base=&outds data=&out_ds;';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '/* recursive call */';
|
|
put '%if &maxdepth>&level or &maxdepth=MAX %then %do;';
|
|
put 'data _null_;';
|
|
put 'set &out_ds;';
|
|
put 'where file_or_folder=''folder'';';
|
|
put 'length code $10000;';
|
|
put 'code=cats(''%nrstr(%mp_dirlist(path='',filepath,",outds=&outds"';
|
|
put ',",getattrs=&getattrs,level=%eval(&level+1),maxdepth=&maxdepth))");';
|
|
put 'put code=;';
|
|
put 'call execute(code);';
|
|
put 'run;';
|
|
put '%end;';
|
|
put '/* tidy up */';
|
|
put 'proc sql;';
|
|
put 'drop table &out_ds;';
|
|
put '%mend mp_dirlist;';
|
|
put '%macro mp_binarycopy(';
|
|
put 'inloc= /* full path and filename of the object to be copied */';
|
|
put ',outloc= /* full path and filename of object to be created */';
|
|
put ',inref=____in /* override default to use own filerefs */';
|
|
put ',outref=____out /* override default to use own filerefs */';
|
|
put ',mode=CREATE';
|
|
put ',iftrue=%str(1=1)';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local mod;';
|
|
put '%if not(%eval(%unquote(&iftrue))) %then %return;';
|
|
put '%if &mode=APPEND %then %let mod=mod;';
|
|
put '/* these IN and OUT filerefs can point to anything */';
|
|
put '%if &inref = ____in %then %do;';
|
|
put 'filename &inref &inloc lrecl=1048576 ;';
|
|
put '%end;';
|
|
put '%if &outref=____out %then %do;';
|
|
put 'filename &outref &outloc lrecl=1048576 &mod;';
|
|
put '%end;';
|
|
put '/* copy the file byte-for-byte */';
|
|
put 'data _null_;';
|
|
put 'infile &inref lrecl=1 recfm=n;';
|
|
put 'file &outref &mod recfm=n;';
|
|
put 'input sourcechar $char1. @@;';
|
|
put 'format sourcechar hex2.;';
|
|
put 'put sourcechar char1. @@;';
|
|
put 'run;';
|
|
put '%if &inref = ____in %then %do;';
|
|
put 'filename &inref clear;';
|
|
put '%end;';
|
|
put '%if &outref=____out %then %do;';
|
|
put 'filename &outref clear;';
|
|
put '%end;';
|
|
put '%mend mp_binarycopy;';
|
|
put '%macro mf_mval(var);';
|
|
put '%if %symexist(&var) %then %do;';
|
|
put '%superq(&var)';
|
|
put '%end;';
|
|
put '%mend mf_mval;';
|
|
put '%macro mf_trimstr(basestr,trimstr);';
|
|
put '%local baselen trimlen trimval;';
|
|
put '/* return if basestr is shorter than trimstr (or 0) */';
|
|
put '%let baselen=%length(%superq(basestr));';
|
|
put '%let trimlen=%length(%superq(trimstr));';
|
|
put '%if &baselen < &trimlen or &baselen=0 %then %return;';
|
|
put '/* obtain the characters from the end of basestr */';
|
|
put '%let trimval=%qsubstr(%superq(basestr)';
|
|
put ',%length(%superq(basestr))-&trimlen+1';
|
|
put ',&trimlen);';
|
|
put '/* compare and if matching, chop it off! */';
|
|
put '%if %superq(basestr)=%superq(trimstr) %then %do;';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%else %if %superq(trimval)=%superq(trimstr) %then %do;';
|
|
put '%qsubstr(%superq(basestr),1,%length(%superq(basestr))-&trimlen)';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '&basestr';
|
|
put '%end;';
|
|
put '%mend mf_trimstr;';
|
|
put '%macro mf_getplatform(switch';
|
|
put ')/*/STORE SOURCE*/;';
|
|
put '%local a b c;';
|
|
put '%if &switch.NONE=NONE %then %do;';
|
|
put '%if %symexist(sasjsprocessmode) %then %do;';
|
|
put '%if &sasjsprocessmode=Stored Program %then %do;';
|
|
put 'SASJS';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%if %symexist(sysprocessmode) %then %do;';
|
|
put '%if "&sysprocessmode"="SAS Object Server"';
|
|
put 'or "&sysprocessmode"= "SAS Compute Server" %then %do;';
|
|
put 'SASVIYA';
|
|
put '%end;';
|
|
put '%else %if "&sysprocessmode"="SAS Stored Process Server"';
|
|
put 'or "&sysprocessmode"="SAS Workspace Server"';
|
|
put '%then %do;';
|
|
put 'SASMETA';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'BASESAS';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if %symexist(_metaport) or %symexist(_metauser) %then %do;';
|
|
put 'SASMETA';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put 'BASESAS';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%else %if &switch=SASSTUDIO %then %do;';
|
|
put '/* return the version of SAS Studio else 0 */';
|
|
put '%if %mf_mval(_CLIENTAPP)=%str(SAS Studio) %then %do;';
|
|
put '%let a=%mf_mval(_CLIENTVERSION);';
|
|
put '%let b=%scan(&a,1,.);';
|
|
put '%if %eval(&b >2) %then %do;';
|
|
put '&b';
|
|
put '%end;';
|
|
put '%else 0;';
|
|
put '%end;';
|
|
put '%else 0;';
|
|
put '%end;';
|
|
put '%else %if &switch=VIYARESTAPI %then %do;';
|
|
put '%mf_trimstr(%sysfunc(getoption(servicesbaseurl)),/)';
|
|
put '%end;';
|
|
put '%mend mf_getplatform;';
|
|
put '%macro mf_getuniquefileref(prefix=_,maxtries=1000,lrecl=32767);';
|
|
put '%local rc fname;';
|
|
put '%if &prefix=0 %then %do;';
|
|
put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));';
|
|
put '%if &rc %then %put %sysfunc(sysmsg());';
|
|
put '&fname';
|
|
put '%end;';
|
|
put '%else %do;';
|
|
put '%local x len;';
|
|
put '%let len=%eval(8-%length(&prefix));';
|
|
put '%let x=0;';
|
|
put '%do x=0 %to &maxtries;';
|
|
put '%let fname=&prefix%substr(%sysfunc(ranuni(0)),3,&len);';
|
|
put '%if %sysfunc(fileref(&fname)) > 0 %then %do;';
|
|
put '%let rc=%sysfunc(filename(fname,,temp,lrecl=&lrecl));';
|
|
put '%if &rc %then %put %sysfunc(sysmsg());';
|
|
put '&fname';
|
|
put '%return;';
|
|
put '%end;';
|
|
put '%end;';
|
|
put '%put unable to find available fileref after &maxtries attempts;';
|
|
put '%end;';
|
|
put '%mend mf_getuniquefileref;';
|
|
put '%macro mp_webin();';
|
|
put '/* prepare global variables */';
|
|
put '%global _webin_file_count';
|
|
put '_webin_filename _webin_filename1';
|
|
put '_webin_fileref _webin_fileref1';
|
|
put '_webin_fileuri _webin_fileuri1';
|
|
put '_webin_name _webin_name1';
|
|
put ';';
|
|
put '/* create initial versions */';
|
|
put '%let _webin_file_count=%eval(&_webin_file_count+0);';
|
|
put '%let _webin_filename1=%sysfunc(coalescec(&_webin_filename1,&_webin_filename));';
|
|
put '%let _webin_fileref1=%sysfunc(coalescec(&_webin_fileref1,&_webin_fileref));';
|
|
put '%let _webin_fileuri1=%sysfunc(coalescec(&_webin_fileuri1,&_webin_fileuri));';
|
|
put '%let _webin_name1=%sysfunc(coalescec(&_webin_name1,&_webin_name));';
|
|
put '/* If Viya, create temporary fileref(s) */';
|
|
put '%local i;';
|
|
put '%if %mf_getplatform()=SASVIYA %then %do i=1 %to &_webin_file_count;';
|
|
put '%let _webin_fileref&i=%mf_getuniquefileref();';
|
|
put 'filename &&_webin_fileref&i filesrvc "&&_webin_fileuri&i";';
|
|
put '%end;';
|
|
put '%mend mp_webin;';
|
|
put '* SAS Macros end;';
|
|
put '* SAS Includes start;';
|
|
put '* SAS Includes end;';
|
|
put '* Binary Files start;';
|
|
put '* Binary Files end;';
|
|
put '* ServiceInit start;';
|
|
put 'libname mydb (work);';
|
|
put 'data mydb.springs ;';
|
|
put 'attrib';
|
|
put 'Latitude length= 8';
|
|
put 'Longitude length= 8';
|
|
put 'Name length= $34';
|
|
put 'Area length= $14';
|
|
put 'Type length= $9';
|
|
put 'Farenheit length= 8';
|
|
put 'Celsius length= 8';
|
|
put ';';
|
|
put 'infile cards dsd;';
|
|
put 'input';
|
|
put 'Latitude';
|
|
put 'Longitude';
|
|
put 'Name :$char.';
|
|
put 'Area :$char.';
|
|
put 'Type :$char.';
|
|
put 'Farenheit';
|
|
put 'Celsius';
|
|
put ';';
|
|
put 'missing 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 z _;';
|
|
put 'datalines4;';
|
|
put '51.925,-177.16,Fumaroles on Kanaga Island,Adak,Hotspring,219,104';
|
|
put '65.858,-164.71,Serpentine Hot Springs,Bendeleben,Hotspring,171,77';
|
|
put '53.851,-166.918,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,H,H';
|
|
put '53.877,-166.448,Hot Springs Near Summer Bay,Unalaska,Hotspring,H,H';
|
|
put '52.27,-174.042,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.34,-174.26,Hot Springs on Atka Island,Atka,Hotspring,H,H';
|
|
put '52.358,-172.317,Hot Spring on Seguam Island,Seguam,Hotspring,H,H';
|
|
put '52.84,-169.9,Chuginadak Hot Springs,Samalga Island,Hotspring,H,H';
|
|
put '52.96,-169.71,Hot Spring on Kagamil Island,Samalga Island,Hotspring,H,H';
|
|
put '51.94,-178.5,Hot Spring on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.963,-178.491,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '51.775,-178.793,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,H,H';
|
|
put '53.207,-168.445,Hot Springs Near Geyser Bight,Umnak,Hotspring,H,H';
|
|
put '53.892,-166.93,Makushin Volcano Fumaroles,Unalaska,Hotspring,310,154';
|
|
put '54.9,-162.885,Hot Spring on Amagat Island,False Pass,Hotspring,H,H';
|
|
put '53.213,-168.463,Hot Springs Near Geyser Bight,Umnak,Hotspring,216,102';
|
|
put '53.223,-168.477,Hot Springs Near Geyser Bight,Umnak,Hotspring,214,101';
|
|
put '53.443,-168.092,Thermal Springs In Okmok Caldera,Umnak,Hotspring,212,100';
|
|
put '52.042,-176.108,Hot Springs on Great Sitkin Island,Adak,Hotspring,210,99';
|
|
put '55.983,-131.661,Bailey Hot Spring,Ketchikan,Hotspring,198,92';
|
|
put '53.242,-168.365,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,192,89';
|
|
put '54.157,-165.85,Hot Springs Near Hot Springs Bay,Unimak,Hotspring,181,83';
|
|
put '58.033,-136.017,Hot Springs North End Tenakee Inle,Mt. Fairweathe,Hotspring,180,82';
|
|
put '65.093,-164.922,Pilgrim Springs,Bendeleben,Hotspring,178,81';
|
|
put '57.831,-156.513,W Ukinek Spring,Ugashik,Hotspring,178,81';
|
|
put '65.459,-153.312,Little Melozitna Hot Springs,Melozitna,Hotspring,176,80';
|
|
put '51.81,-177.79,Hot Spring on Tanaga Island,Adak,Hotspring,H,H';
|
|
put '65.233,-144.483,Hot Springs on Big Windy Creek,Circle,Hotspring,H,H';
|
|
put '55.334,-162.137,Hot Spring at West End Emmons Lake,Cold Bay,Hotspring,68,20';
|
|
put '66.197,-154.006,Tunalkten Lake Hot Spring,Hughes,Hotspring,.,.';
|
|
put '67.403,-153.883,Hot Spring Near Arrigetch Peaks,Survey Pass,Hotspring,W,W';
|
|
put '65.047,-142.848,Hot Spring on Flat Creek,Charley River,Hotspring,W,W';
|
|
put '63.683,-151.233,Hot Springs Near Glacier,Mt. Mckinley,Hotspring,W,W';
|
|
put '63.883,-150.717,Hot Springs East of Diamond,Mt. Mckinley,Hotspring,W,W';
|
|
put '62.45,-157.933,Hot Spring Near Flat,Iditarod,Hotspring,W,W';
|
|
put '60.837,-142.42,Hot Spring on Twelvemile Creek,Bering Glacier,Hotspring,W,W';
|
|
put '56.58,-132.18,South Stikine Spring,Petersburg,Hotspring,W,W';
|
|
put '52.87,-173.13,Hot Spring on Attu Island,Attu,Hotspring,W,W';
|
|
put '65.908,-154.993,Deniktow Ridge Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '53.95,-168.037,Hot Springs on Bogoslof Island,Umnak,Hotspring,H,H';
|
|
put '65.45,-150,Hot Spring Near Little Minook Cr,Tanana,Hotspring,H,H';
|
|
put '51.967,-178.444,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '64.002,-156.3,Hot Spring on Tributary of Innoko,Nulato,Hotspring,H,H';
|
|
put '61.058,-160.692,Hot Spring Near Tuluksak River,Russian Missio,Hotspring,H,H';
|
|
put '61.363,-157.733,Hot Springs on Upper Chuilnuk Rive,Sleetmute,Hotspring,H,H';
|
|
put '61.267,-151.238,Hot Lake In Bottom of Crater Peak,Tyonek,Hotspring,H,H';
|
|
put '58.24,-155.09,Hot Spring Near Katmai Pass,Mt. Katmai,Hotspring,H,H';
|
|
put '58.27,-154.89,Hot Springs Near Mt Katmai,Mt. Katmai,Hotspring,H,H';
|
|
put '58.92,-153.98,Hot Spring West of Cape Douglas,Afognak,Hotspring,H,H';
|
|
put '55.368,-161.961,Fumarole,Port Moller,Hotspring,H,H';
|
|
put '54.18,-165.41,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.23,-165.66,Hot Springs on Akun Island,Unimak,Hotspring,H,H';
|
|
put '54.66,-164.55,Hot Spring on Unimak Island,Unimak,Hotspring,H,H';
|
|
put '65.97,-154.033,Pocahontas Hot Springs,Melozitna,Hotspring,H,H';
|
|
put '65.216,-149.993,Hutlinana Hot Springs,Livengood,Hotspring,109,43';
|
|
put '57.085,-134.839,Baranof Warm Springs,Sitka,Hotspring,124,51';
|
|
put '67.283,-155.067,Reed River Hot Spring,Survey Pass,Hotspring,122,50';
|
|
put '66.15,-157.117,Hot Springs Near South Bm,Shungnak,Hotspring,122,50';
|
|
put '66.233,-157.583,Hot Springs on Hawk River,Shungnak,Hotspring,122,50';
|
|
put '65.81,-151.237,Kilo Hot Spring,Tanana,Hotspring,122,50';
|
|
put '56.717,-132.005,Chief Shakes Hot Springs,Petersburg,Hotspring,122,50';
|
|
put '69.33,-144.044,Okpilak Springs,Mt. Michelson,Hotspring,119,49';
|
|
put '65.367,-161.25,Granite Mountain Hot Springs,Candle,Hotspring,120,49';
|
|
put '57.644,-135.333,Nylen Hot Springs,Sitka,Hotspring,120,49';
|
|
put '65.963,-150.919,Ray River Hot Spring,Tanana,Hotspring,117,47';
|
|
put '64.924,-154.837,Horner Hot Springs,Ruby,Hotspring,117,47';
|
|
put '65.267,-155.28,Hot Springs Near Dulbi River,Melozitna,Hotspring,126,52';
|
|
put '57.807,-136.341,White Sulphur Springs (Hooniah H S,Sitka,Hotspring,111,44';
|
|
put '57.781,-135.217,Tenakee Hot Springs,Sitka,Hotspring,109,43';
|
|
put '52.19,-174.25,Hot Springs on Atka Island,Atka,Hotspring,167,75';
|
|
put '55.334,-133.641,Dalton (Craig) Hot Springs,Craig,Hotspring,109,43';
|
|
put '51.944,-178.547,Fumaroles on Little Sitkin Island,Rat Islands,Hotspring,H,H';
|
|
put '57.771,-135.82,Hot Spring North Arm Peril Strait,Sitka,Hotspring,100,38';
|
|
put '53.848,-166.873,Hot Springs Near Makushin Volcano,Unalaska,Hotspring,94,34';
|
|
put '69.627,-146.027,Red Hill Spring,Mt. Michelson,Hotspring,91,33';
|
|
put '62.081,-145.007,Upper Klawasi Warm Springs,Gulkana,Hotspring,86,30';
|
|
put '62.058,-145.222,Mineral Spring (Lower Klawasi Cone,Gulkana,Hotspring,82,28';
|
|
put '56.68,-131.882,Barnes Lake Hot Springs,Bradfield Cana,Hotspring,79,26';
|
|
put '56.928,-158.12,Surprise Lake Hot Spring,Chignik,Hotspring,73,23';
|
|
put '56.667,-132.28,Twin Lakes Hot Springs,Petersburg,Hotspring,70,21';
|
|
put '66.383,-157.517,Warm Spring Near Purcell Mountain,Shungnak,Hotspring,68,20';
|
|
put '57.348,-135.385,Hot Spring Near Fish Bay,Sitka,Hotspring,117,47';
|
|
put '65.983,-150.56,Hot Springs on Lower Ray River,Tanana,Hotspring,142,61';
|
|
put '55.863,-160.493,Hot Spring Near Port Moller,Port Moller,Hotspring,160,71';
|
|
put '53.253,-168.358,Hot Springs Near Hot Springs Cove,Umnak,Hotspring,158,70';
|
|
put '51.97,-176.61,Hot Springs on Adak Island,Adak,Hotspring,154,68';
|
|
put '65.053,-146.057,Chena Hot Springs,Circle,Hotspring,153,67';
|
|
put '58.37,-137.09,Hot Springs Near Icy Point,Mt. Fairweathe,Hotspring,153,67';
|
|
put '56.836,-135.374,Goddard Hot Springs,Port Alexander,Hotspring,153,67';
|
|
put '66.342,-150.85,Kanuti Hot Springs,Bettles,Hotspring,151,66';
|
|
put '64.85,-162.3,Clear Creek Hot Springs,Solomon,Hotspring,149,65';
|
|
put '53.233,-168.3,Hot Spring on Umnak Island,Umnak,Hotspring,149,65';
|
|
put '61.2,-159.863,Hot Springs Near Ophir Creek,Russian Missio,Hotspring,145,63';
|
|
put '57.865,-156.499,Gas Rocks Hot Spring,Ugashik,Hotspring,127,53';
|
|
put '51.762,-178.77,Fumaroles on Gareloi Island,Gareloi Island,Hotspring,144,62';
|
|
put '66.367,-156.767,Hot Springs Near Division Bm,Shungnak,Hotspring,140,60';
|
|
put '64.7,-162.467,Hot Spring Near Kwiniuk River,Solomon,Hotspring,106,41';
|
|
put '65.274,-148.847,Tolovana Hot Springs,Livengood,Hotspring,140,60';
|
|
put '55.933,-131.559,Bell Island Hot Springs,Ketchikan,Hotspring,165,74';
|
|
put '57.178,-157.015,Hot Spring Near Mother Goose Lake,Ugashik,Hotspring,138,59';
|
|
put '65.483,-144.637,Circle Hot Springs,Circle,Hotspring,135,57';
|
|
put '56.233,-131.267,Bradfield Canal Hot Springs,Bradfield Cana,Hotspring,135,57';
|
|
put '65.006,-150.633,Manley Hot Springs,Tanana,Hotspring,133,56';
|
|
put '65.129,-154.692,Melozi (Melozitna) Springs,Melozitna,Hotspring,131,55';
|
|
put '66.217,-149.547,Dall Hot Springs,Beaver,Hotspring,129,54';
|
|
put '55.217,-162.483,Hot Springs East of Cold Bay,Cold Bay,Hotspring,129,54';
|
|
put '65.217,-162.9,Hot Springs Near Lava Creek,Bendeleben,Hotspring,127,53';
|
|
put '54.944,-163.251,Hot Springs Near Morzhovoi,False Pass,Hotspring,145,63';
|
|
put '36.48,-91.053,Warm Springs,Poplar Bluff,Hotspring,82,28';
|
|
put '34.384,-93.607,Caddo Gap Springs,Little Rock,Hotspring,95,35';
|
|
put '34.321,-93.739,Spring on Redland Mountain,Little Rock,Hotspring,77,25';
|
|
put '34.406,-93.908,Spring on Little Missouri River,Little Rock,Hotspring,74,23';
|
|
put '34.542,-93.024,Big Chalybeate Spring,Little Rock,Hotspring,79,26';
|
|
put '34.513,-93.053,Hot Springs,Little Rock,Hotspring,147,64';
|
|
put '33.008,-109.778,Grapevine Spring,Clifton,Hotspring,91,33';
|
|
put '32.984,-113.324,Agua Caliente Springs,Ajo,Hotspring,102,39';
|
|
put '34.563,-113.497,Kaiser Hot Spring,Prescott,Hotspring,99,37';
|
|
put '34.076,-111.708,Spring (Hot),Holbrook,Hotspring,99,37';
|
|
put '33.17,-110.528,Coolidge Dam Warm Spring,Mesa,Hotspring,99,37';
|
|
put '34.695,-113.572,Cofer Hot Spring,Prescott,Hotspring,97,36';
|
|
put '33.209,-110.818,Pioneer Spring,Mesa,Hotspring,91,33';
|
|
put '33.988,-112.362,Castle Hot Springs,Phoenix,Hotspring,115,46';
|
|
put '32.345,-110.247,Warm Springs,Tucson,Hotspring,91,33';
|
|
put '36.196,-113.081,Lava Warm Springs,Grand Canyon,Hotspring,90,32';
|
|
put '33.068,-109.975,Warm Spring,Clifton,Hotspring,90,32';
|
|
put '31.943,-113.013,Quitobaquito Springs,Lukeville,Hotspring,90,32';
|
|
put '31.695,-110.963,Agua Caliente Spring,Nogales,Hotspring,90,32';
|
|
put '33.075,-109.298,Seep,Clifton,Hotspring,95,35';
|
|
put '34.357,-111.71,Verde Hot Springs,Holbrook,Hotspring,104,40';
|
|
put '32.998,-109.901,Indian Hot Springs,Silver City,Hotspring,118,48';
|
|
put '33.669,-111.165,Roosevelt Dam Springs,Mesa,Hotspring,118,48';
|
|
put '32.336,-110.24,Hookers Hot Springs,Tucson,Hotspring,127,53';
|
|
put '33.4,-109.152,Hannah Hot Spring,Clifton,Hotspring,133,56';
|
|
put '33.08,-109.303,Hot Spring,Clifton,Hotspring,138,59';
|
|
put '32.741,-114.068,Radium Hot Springs,El Centro,Hotspring,140,60';
|
|
put '32.971,-109.35,Gillard Hot Springs,Silver City,Hotspring,180,82';
|
|
put '35.984,-114.742,Hot Spring,Kingman,Hotspring,H,H';
|
|
put '33.78,-110.317,Warm Spring,Mesa,Hotspring,W,W';
|
|
put '36.418,-113.956,Pakoon Springs,Grand Canyon,Hotspring,86,30';
|
|
put '33.493,-112.94,El Dorado Hot Springs,Phoenix South,Hotspring,112,44';
|
|
put '34.896,-114.308,Oatman Warm Springs,Needles,Hotspring,91,33';
|
|
put '33.055,-109.295,Clifton Hot Springs,Clifton,Hotspring,102,39';
|
|
put '34.445,-112.693,Spring,Prescott,Hotspring,72,22';
|
|
put '32.337,-110.708,Mercer Spring,Tucson,Hotspring,77,25';
|
|
put '34.649,-111.744,Soda Spring,Holbrook,Hotspring,75,24';
|
|
put '33.253,-110.703,Spring,Mesa,Hotspring,75,24';
|
|
put '31.362,-109.265,Astin Spring,Douglas,Hotspring,75,24';
|
|
put '35.169,-113.851,Frost Mine Spring,Williams,Hotspring,70,21';
|
|
put '31.673,-109.902,Antelope Spring,Douglas,Hotspring,79,26';
|
|
put '35.213,-113.425,Casa Grande Spring,Williams,Hotspring,72,22';
|
|
put '33.51,-110.403,Cassadore Spring,Mesa,Hotspring,73,23';
|
|
put '34.32,-111.453,Tonto Natural Bridge Spring,Holbrook,Hotspring,72,22';
|
|
put '34.405,-111.602,Spring,Holbrook,Hotspring,72,22';
|
|
put '34.436,-109.402,Salado Springs,Saint Johns,Hotspring,72,22';
|
|
put '31.592,-109.51,Lewis Spring,Douglas,Hotspring,68,20';
|
|
put '33.046,-109.44,Eagle Creek Hot Springs,Clifton,Hotspring,97,36';
|
|
put '36.509,-111.852,Colorado Pool,Marble Canyon,Hotspring,86,30';
|
|
put '33.062,-109.482,Warm Spring,Clifton,Hotspring,73,23';
|
|
put '31.637,-110.703,Monkey Spring,Nogales,Hotspring,82,28';
|
|
put '32.281,-110.73,Agua Caliente,Tucson,Hotspring,86,30';
|
|
put '32.327,-110.228,N-O Spring,Tucson,Hotspring,73,23';
|
|
put '32.983,-110.373,Warm Spring,Tucson,Hotspring,79,26';
|
|
put '33.152,-110.639,Mescal Warm Spring,Mesa,Hotspring,84,29';
|
|
put '33.163,-110.662,Spring,Mesa,Hotspring,82,28';
|
|
put '35.077,-113.267,Trout Creek Spring,Williams,Hotspring,81,27';
|
|
put '33.438,-110.213,Warm Springs,Mesa,Hotspring,86,30';
|
|
put '36.895,-113.913,Springs,Grand Canyon,Hotspring,79,26';
|
|
put '35.96,-114.725,Hot Spring,Kingman,Hotspring,86,30';
|
|
put '34.925,-114.221,Caliche Spring,Needles,Hotspring,79,26';
|
|
put '33.915,-112.332,Mitchell Spring,Phoenix,Hotspring,79,26';
|
|
put '33.831,-110.574,Salt Banks,Mesa,Hotspring,78,26';
|
|
put '34.91,-113.608,Tom Brown Warm Spring,Prescott,Hotspring,82,28';
|
|
put '38.873,-122.689,Seigler Springs,Santa Rosa,Hotspring,126,52';
|
|
put '36.814,-117.763,Palm Spring,Death Valley,Hotspring,120,49';
|
|
put '34.498,-119.341,Stingleys Hot Springs,Los Angeles,Hotspring,123,51';
|
|
put '33.67,-117.325,"Wrenden Hot Sprs, Elsinore Hot Spr",Santa Ana,Hotspring,125,52';
|
|
put '37.253,-118.373,Keough Hot Springs,Mariposa,Hotspring,124,51';
|
|
put '36.229,-118.302,Jordan Hot Springs,Fresno,Hotspring,124,51';
|
|
put '34.502,-119.346,Vickers Hot Springs,Los Angeles,Hotspring,124,51';
|
|
put '36.123,-121.64,Slates Hot Springs,Santa Cruz,Hotspring,122,50';
|
|
put '35.881,-118.67,California Hot Springs,Bakersfield,Hotspring,122,50';
|
|
put '38.788,-122.777,Sulphur Creek,Santa Rosa,Hotspring,120,49';
|
|
put '37.648,-118.806,Hot Springs,Mariposa,Hotspring,129,54';
|
|
put '36.703,-120.86,Mercey Hot Springs,Santa Cruz,Hotspring,119,48';
|
|
put '33.589,-117.511,San Juan Hot Springs,Santa Ana,Hotspring,120,49';
|
|
put '38.785,-122.655,Harbin Springs,Santa Rosa,Hotspring,120,49';
|
|
put '37.677,-118.79,Dehy Hot Spring,Mariposa,Hotspring,134,57';
|
|
put '39.183,-122.7,Bartlett Springs,Ukiah,Hotspring,144,62';
|
|
put '36.234,-121.546,Tassajara Hot Springs,Santa Cruz,Hotspring,144,62';
|
|
put '36.144,-120.555,Coalinga Mineral Springs,Santa Cruz,Hotspring,112,44';
|
|
put '39.033,-122.445,Jones Fountain of Life Spring,Ukiah,Hotspring,142,61';
|
|
put '35.575,-118.534,"Miracle Hot Sprs, Hobo Hot Sprs",Bakersfield,Hotspring,119,48';
|
|
put '33.284,-116.631,Warner Hot Spring,Santa Ana,Hotspring,138,59';
|
|
put '38.237,-119.326,Buckeye Hot Spring,Walker Lake,Hotspring,140,60';
|
|
put '41.266,-120.08,Hot Springs (Menlo Baths),Alturas,Hotspring,135,57';
|
|
put '33.753,-117.495,Glen Ivy Hot Springs,Santa Ana,Hotspring,131,55';
|
|
put '37.802,-118.532,Benton Hot Springs,Mariposa,Hotspring,134,57';
|
|
put '38.691,-123.024,Skaggs Springs,Santa Rosa,Hotspring,135,56';
|
|
put '35.62,-118.473,Scovern Hot Springs,Bakersfield,Hotspring,133,56';
|
|
put '34.538,-119.56,Agua Caliente Spring,Los Angeles,Hotspring,133,56';
|
|
put '33.558,-117.154,Murrietta Hot Springs,Santa Ana,Hotspring,132,56';
|
|
put '39.226,-120.01,Brockway Hot Springs,Chico,Hotspring,131,55';
|
|
put '41.036,-121.926,Hunt Hot Spring,Alturas,Hotspring,136,58';
|
|
put '34.582,-119.044,Willett Hot Springs,Los Angeles,Hotspring,108,42';
|
|
put '37.234,-118.881,Blaney Meadows Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '36.477,-118.404,Kern Hot Spring,Fresno,Hotspring,109,43';
|
|
put '36.806,-117.771,Lower Warm Springs,Death Valley,Hotspring,110,43';
|
|
put '34.482,-119.302,Matilija Hot Springs,Los Angeles,Hotspring,109,43';
|
|
put '34.537,-119.879,San Marcos Hot Spring,Los Angeles,Hotspring,110,43';
|
|
put '33.896,-117.057,Eden Hot Springs,Santa Ana,Hotspring,109,43';
|
|
put '39.573,-120.348,Campbell Hot Springs,Chico,Hotspring,111,44';
|
|
put '38.994,-122.742,Horseshoe Spring,Santa Rosa,Hotspring,108,42';
|
|
put '33.969,-116.942,Highland Springs,Santa Ana,Hotspring,112,44';
|
|
put '34.34,-117.173,"Warm Spring, Hot Spring",San Bernardino,Hotspring,108,42';
|
|
put '41.219,-120.066,Squaw Baths,Alturas,Hotspring,106,41';
|
|
put '40.142,-120.935,Indian Valley Hot Springs,Susanville,Hotspring,106,41';
|
|
put '39.292,-122.821,Crabtree Hot Springs,Ukiah,Hotspring,106,41';
|
|
put '37.108,-121.478,Gilroy Hot Springs,San Jose,Hotspring,106,41';
|
|
put '39.227,-123.362,Orrs Springs,Ukiah,Hotspring,104,40';
|
|
put '38.773,-122.705,Anderson Springs,Santa Rosa,Hotspring,108,42';
|
|
put '38.858,-122.671,Howard Springs,Santa Rosa,Hotspring,113,45';
|
|
put '34.461,-119.637,Montecito Hot Springs,Los Angeles,Hotspring,118,48';
|
|
put '33.551,-117.167,Temecula Hot Springs,Santa Ana,Hotspring,116,47';
|
|
put '33.835,-116.988,Gilman Hot Springs,Santa Ana,Hotspring,117,47';
|
|
put '37.618,-119.074,Reds Meadow Hot Springs,Mariposa,Hotspring,115,46';
|
|
put '35.528,-118.665,Democrat Hot Springs,Bakersfield,Hotspring,115,46';
|
|
put '33.731,-118.348,Whites Point Hot Springs,Long Beach,Hotspring,115,46';
|
|
put '37.532,-119.025,Fish Creek Hot Springs,Mariposa,Hotspring,110,43';
|
|
put '39.032,-122.432,"Blank Spring, Manzanita Mine Sprs",Ukiah,Hotspring,112,45';
|
|
put '37.327,-119.018,Mono Hot Springs,Mariposa,Hotspring,109,43';
|
|
put '38.225,-119.217,The Hot Springs,Walker Lake,Hotspring,113,45';
|
|
put '35.727,-118.408,Hot Spring,Bakersfield,Hotspring,113,45';
|
|
put '41.6,-120.088,Leonards Hot Springs,Alturas,Hotspring,144,62';
|
|
put '38.874,-123.518,Point Arena Hot Springs,Santa Rosa,Hotspring,111,44';
|
|
put '41.126,-121.028,Kellog Hot Springs,Alturas,Hotspring,172,78';
|
|
put '35.558,-118.612,Delonegha Hot Springs,Bakersfield,Hotspring,112,44';
|
|
put '35.871,-116.23,Tecopa Hot Springs,Trona,Hotspring,118,48';
|
|
put '41.86,-120.158,Fort Bidwell Hot Spring,Alturas,Hotspring,113,45';
|
|
put '41.534,-120.078,Hot Springs (Surprise Valley),Alturas,Hotspring,208,98';
|
|
put '33.345,-115.588,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.012,-121.274,Hot Springs,Alturas,Hotspring,H,H';
|
|
put '39.922,-120.024,Zamboni Hot Springs,Chico,Hotspring,H,H';
|
|
put '38.979,-122.659,Fumarole,Santa Rosa,Hotspring,H,H';
|
|
put '37.622,-119.028,Fumaroles,Mariposa,Hotspring,H,H';
|
|
put '40.364,-120.243,Hot Spring,Susanville,Hotspring,204,96';
|
|
put '38.767,-122.748,Little Geysers,Santa Rosa,Hotspring,210,99';
|
|
put '33.328,-115.583,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '41.67,-120.206,Lake City Hot Springs,Alturas,Hotspring,207,97';
|
|
put '36.036,-117.802,Devils Kitchen,Death Valley,Hotspring,207,97';
|
|
put '36.045,-117.769,Coso Hot Springs,Death Valley,Hotspring,207,97';
|
|
put '40.382,-121.513,Morgan Hot Spring,Susanville,Hotspring,205,96';
|
|
put '40.421,-121.375,Terminal Geyser,Susanville,Hotspring,205,96';
|
|
put '41.19,-120.383,West Valley Reservoir Hot Spring,Alturas,Hotspring,171,77';
|
|
put '38.802,-122.81,The Geysers,Santa Rosa,Hotspring,214,101';
|
|
put '35.888,-116.258,Springs,Trona,Hotspring,W,W';
|
|
put '34.185,-117.262,"Arrowhead Springs, Waterman Hot Sp",San Bernardino,Hotspring,194,90';
|
|
put '33.823,-116.542,Palm Springs (Agua Caliente Spring,Santa Ana,Hotspring,104,40';
|
|
put '41.196,-120.475,Springs,Alturas,Hotspring,W,W';
|
|
put '41.959,-120.936,Warm Spring,Alturas,Hotspring,W,W';
|
|
put '37.929,-121.965,Springs,San Jose,Hotspring,W,W';
|
|
put '36.83,-117.736,Upper Warm Spring,Death Valley,Hotspring,W,W';
|
|
put '33.343,-115.573,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.536,-118.651,Spring (Hot),Bakersfield,Hotspring,W,W';
|
|
put '33.332,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '35.967,-116.931,Warm Spring,Trona,Hotspring,W,W';
|
|
put '33.28,-115.592,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.288,-115.575,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.312,-115.577,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '33.313,-115.605,Mud Volcanoes,Salton Sea,Hotspring,W,W';
|
|
put '40.393,-121.507,Growler Hot Spring,Susanville,Hotspring,203,95';
|
|
put '35.148,-118.783,Warm Spring,Bakersfield,Hotspring,W,W';
|
|
put '41.973,-122.202,Klamath Hot Spring,Weed,Hotspring,156,69';
|
|
put '41.143,-121.11,Bassett Hot Springs,Alturas,Hotspring,174,79';
|
|
put '38.58,-122.575,Calistoga Hot Springs,Santa Rosa,Hotspring,172,78';
|
|
put '37.656,-118.834,Hot Creek Springs,Mariposa,Hotspring,171,77';
|
|
put '41.229,-121.405,Little Hot Spring,Alturas,Hotspring,169,76';
|
|
put '37.664,-118.802,The Tub,Mariposa,Hotspring,167,75';
|
|
put '40.355,-120.257,Wendel Hot Springs,Susanville,Hotspring,205,96';
|
|
put '38.768,-122.717,Castle Rock Springs,Santa Rosa,Hotspring,163,73';
|
|
put '38.245,-119.205,Travertine Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '39.002,-122.664,Sulphur Bank,Ukiah,Hotspring,156,69';
|
|
put '39.057,-122.475,Elgin Mine,Ukiah,Hotspring,156,69';
|
|
put '39.039,-122.421,Wilbur Springs,Ukiah,Hotspring,153,67';
|
|
put '40.444,-121.409,Drakesbad,Susanville,Hotspring,151,66';
|
|
put '40.457,-121.545,Mill Creek Springs,Susanville,Hotspring,150,66';
|
|
put '38.048,-119.081,Hot Spring,Walker Lake,Hotspring,151,66';
|
|
put '37.647,-118.859,Casa Diablo Hot Pool,Mariposa,Hotspring,165,74';
|
|
put '41.607,-121.523,Hot Spot,Alturas,Hotspring,191,88';
|
|
put '40.44,-121.434,Devils Kitchen,Susanville,Hotspring,203,95';
|
|
put '40.302,-120.195,Amedee Hot Springs,Susanville,Hotspring,203,95';
|
|
put '36.031,-117.833,Fumarole,Death Valley,Hotspring,203,95';
|
|
put '40.447,-121.536,"Sulphur Works, Tophet Hot Springs",Susanville,Hotspring,199,93';
|
|
put '40.455,-121.501,Bumpass Hell,Susanville,Hotspring,199,93';
|
|
put '37.648,-118.914,Casa Diablo Hot Springs And Geyser,Mariposa,Hotspring,199,93';
|
|
put '37.692,-118.839,Little Hot Creek Spring,Mariposa,Hotspring,180,82';
|
|
put '34.596,-118.998,Sespe Hot Springs,Los Angeles,Hotspring,194,90';
|
|
put '38.348,-119.4,Fales Hot Springs,Walker Lake,Hotspring,180,82';
|
|
put '40.434,-121.399,Boiling Springs Lake,Susanville,Hotspring,190,88';
|
|
put '41.615,-120.102,Seyferth Hot Springs,Alturas,Hotspring,185,85';
|
|
put '41.407,-122.197,"Hot Spring, Fumaroles",Weed,Hotspring,183,84';
|
|
put '37.993,-119.028,Paoha Island Springs,Mariposa,Hotspring,181,83';
|
|
put '41.025,-121.924,Big Bend Hot Springs,Alturas,Hotspring,180,82';
|
|
put '38.699,-119.846,Grovers Hot Springs,Walker Lake,Hotspring,147,64';
|
|
put '37.665,-118.828,Hot Creek Gorge Springs,Mariposa,Hotspring,199,93';
|
|
put '39.43,-122.538,"Sulphur Spring, Salt Spring",Ukiah,Hotspring,75,24';
|
|
put '38.925,-122.77,Hildebrande Spring,Santa Rosa,Hotspring,77,25';
|
|
put '38.203,-119.118,Warm Spring,Walker Lake,Hotspring,77,25';
|
|
put '36.938,-121.565,Sargent Estate Warm Spring,Santa Cruz,Hotspring,77,25';
|
|
put '34.826,-116.677,Newberry Spring,San Bernardino,Hotspring,77,25';
|
|
put '41.919,-122.369,Bogus Soda Springs,Weed,Hotspring,76,24';
|
|
put '39.053,-122.597,Quigley Soda Spring,Ukiah,Hotspring,82,28';
|
|
put '41.252,-120.521,Warm Spring,Alturas,Hotspring,75,24';
|
|
put '38.85,-122.693,Pine Cone Spring,Santa Rosa,Hotspring,78,26';
|
|
put '38.339,-122.259,Napa Vichy Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.892,-122.533,Baker Soda Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.897,-122.882,England Springs,Santa Rosa,Hotspring,76,24';
|
|
put '38.916,-122.799,Carlsbad Spring,Santa Rosa,Hotspring,76,24';
|
|
put '38.192,-120.827,Valley Springs,Sacramento,Hotspring,75,24';
|
|
put '38.85,-120.025,Myers Warm Spring,Sacramento,Hotspring,75,24';
|
|
put '37.708,-118.813,Hot Spring,Mariposa,Hotspring,68,20';
|
|
put '36.122,-117.217,Warm Sulphur Springs,Death Valley,Hotspring,80,27';
|
|
put '35.682,-116.422,Saratoga Spring,Trona,Hotspring,82,28';
|
|
put '33.733,-114.907,Mccoy Spring,Salton Sea,Hotspring,82,28';
|
|
put '41.484,-120.764,Spring,Alturas,Hotspring,81,27';
|
|
put '39.657,-123.585,Jackson Valley Mud Springs,Ukiah,Hotspring,80,27';
|
|
put '39.198,-122.505,Pseudo Complexion Spring,Ukiah,Hotspring,81,27';
|
|
put '38.85,-122.667,Bad Creek Spring,Santa Rosa,Hotspring,81,27';
|
|
put '32.97,-116.423,Vallecitos Spring,San Diego,Hotspring,79,26';
|
|
put '36.765,-120.901,Spring,Santa Cruz,Hotspring,81,27';
|
|
put '34.159,-118.499,El Encino Springs,Los Angeles,Hotspring,79,26';
|
|
put '35.879,-116.153,Resting Spring,Trona,Hotspring,80,27';
|
|
put '41.828,-120.917,Pothole Spring,Alturas,Hotspring,78,26';
|
|
put '39.348,-122.668,Fouts Springs,Ukiah,Hotspring,79,26';
|
|
put '38.519,-122.26,"Napa Rock Soda Spring, Phillips So",Santa Rosa,Hotspring,78,26';
|
|
put '38.838,-122.653,Spiers Springs,Santa Rosa,Hotspring,79,26';
|
|
put '35.141,-116.101,Soda Station Springs,Trona,Hotspring,75,24';
|
|
put '37.503,-121.904,Alameda Warm Springs,San Jose,Hotspring,80,27';
|
|
put '39.429,-123.308,Muir Springs,Ukiah,Hotspring,68,20';
|
|
put '37.924,-122.046,Sulphur Spring,San Francisco,Hotspring,75,24';
|
|
put '40.58,-120.265,Tipton Springs,Susanville,Hotspring,70,21';
|
|
put '39.697,-123.478,Pinches Spring,Ukiah,Hotspring,70,21';
|
|
put '38.755,-122.285,Zim Zim Spring,Santa Rosa,Hotspring,70,21';
|
|
put '37.083,-121.042,Spring In Oneill Forebay,San Jose,Hotspring,70,21';
|
|
put '37.632,-121.762,Crohare Spring,San Jose,Hotspring,70,21';
|
|
put '33.625,-115.325,Corn Spring,Salton Sea,Hotspring,72,22';
|
|
put '36.117,-118.776,Ward Spring,Fresno,Hotspring,70,21';
|
|
put '34.423,-119.538,Boron Spring,Los Angeles,Hotspring,72,22';
|
|
put '39.002,-122.498,Grizzly Spring,Ukiah,Hotspring,68,20';
|
|
put '39.088,-122.525,Sulphur Spring,Ukiah,Hotspring,68,20';
|
|
put '38.125,-122.188,Vallejo White Sulphur Springs,Santa Rosa,Hotspring,68,20';
|
|
put '38.31,-122.053,Tolenas Springs,Santa Rosa,Hotspring,68,20';
|
|
put '41.45,-120.834,Kelly Hot Spring,Alturas,Hotspring,198,92';
|
|
put '36.512,-116.821,Nevares Springs,Death Valley,Hotspring,102,39';
|
|
put '37.888,-118.487,Bertrand Ranch Springs,Mariposa,Hotspring,70,21';
|
|
put '35.483,-119.917,Mize Spring,Bakersfield,Hotspring,73,23';
|
|
put '36.698,-117.848,Little Hunter Canyon Springs,Death Valley,Hotspring,81,27';
|
|
put '38.995,-122.642,Davis Soda Spring,Santa Rosa,Hotspring,73,23';
|
|
put '37.432,-121.308,Salt Grass Springs,San Jose,Hotspring,73,23';
|
|
put '37.573,-121.445,Lone Tree Mineral Spring,San Jose,Hotspring,73,23';
|
|
put '37.638,-118.887,Chance Spring,Mariposa,Hotspring,73,23';
|
|
put '36.295,-120.985,Sulphur Springs,Santa Cruz,Hotspring,73,23';
|
|
put '41.16,-120.403,Warm Spring,Alturas,Hotspring,70,21';
|
|
put '35.4,-120.25,Cameta Warm Spring,San Luis Obisp,Hotspring,73,23';
|
|
put '37.719,-118.735,Springs,Mariposa,Hotspring,75,24';
|
|
put '35.588,-116.359,Sheep Creek Spring,Trona,Hotspring,73,23';
|
|
put '40.568,-120.325,Sellicks Springs,Susanville,Hotspring,72,22';
|
|
put '38.833,-122.357,One Shot Mining Co,Santa Rosa,Hotspring,72,22';
|
|
put '38.95,-122.572,Soda Spring In Cache Formation,Santa Rosa,Hotspring,72,22';
|
|
put '37.635,-118.72,Springs,Mariposa,Hotspring,72,22';
|
|
put '36.13,-118.816,Soda Spring,Fresno,Hotspring,72,22';
|
|
put '36.773,-120.898,Iridat Spring,Santa Cruz,Hotspring,73,23';
|
|
put '33.545,-115.654,Canyon Spring,Salton Sea,Hotspring,97,36';
|
|
put '36.675,-116.923,Keane Wonder Spring,Death Valley,Hotspring,93,34';
|
|
put '36.331,-121.367,Paraiso Springs (Sulphur Spring),Santa Cruz,Hotspring,98,37';
|
|
put '35.122,-120.542,Newsom Springs,San Luis Obisp,Hotspring,99,37';
|
|
put '34.503,-120.219,Las Cruces Hot Springs,Santa Maria,Hotspring,99,37';
|
|
put '38.49,-122.498,St Helena White Sulphur Spring,Santa Rosa,Hotspring,97,36';
|
|
put '35.946,-116.189,Chappo Spring,Trona,Hotspring,80,27';
|
|
put '40.019,-121.036,Spring,Susanville,Hotspring,99,37';
|
|
put '40.44,-121.42,Hot Springs Valley,Susanville,Hotspring,83,28';
|
|
put '32.947,-116.305,Agua Caliente Springs,San Diego,Hotspring,101,38';
|
|
put '39.196,-122.714,Newman Springs,Ukiah,Hotspring,94,35';
|
|
put '37.63,-118.808,Whitmore Hot Springs,Mariposa,Hotspring,95,35';
|
|
put '35.269,-120.851,Pecho Warm Springs,San Luis Obisp,Hotspring,95,35';
|
|
put '33.514,-117.604,Spring,Santa Ana,Hotspring,95,35';
|
|
put '38.958,-122.701,Riviera Beach Spring,Santa Rosa,Hotspring,93,34';
|
|
put '36.33,-117.948,Dirty Socks Hot Spring,Death Valley,Hotspring,93,34';
|
|
put '37.847,-121.635,Byron Hot Springs,San Jose,Hotspring,96,36';
|
|
put '35.433,-118.478,Yates Hot Springs,Bakersfield,Hotspring,100,38';
|
|
put '35.663,-120.692,Paso Robles Artesian Spring,San Luis Obisp,Hotspring,102,39';
|
|
put '34.507,-119.291,Wheeler Springs,Los Angeles,Hotspring,102,39';
|
|
put '33.8,-116.927,Soboda Hot Springs,Santa Ana,Hotspring,102,39';
|
|
put '40.223,-122.747,Stinking Springs,Redding,Hotspring,101,38';
|
|
put '38.8,-123.17,Hoods Hot Springs,Santa Rosa,Hotspring,100,38';
|
|
put '37.029,-117.383,Grapevine Springs,Goldfield,Hotspring,100,38';
|
|
put '36.084,-121.584,Dolans Hot Spring,Santa Cruz,Hotspring,98,37';
|
|
put '36.21,-118.176,Soda Springs,Fresno,Hotspring,100,38';
|
|
put '33.664,-117.913,Fairview Hot Spring,Santa Ana,Hotspring,96,36';
|
|
put '35.143,-116.813,Paradise Spring,Trona,Hotspring,100,38';
|
|
put '33.837,-117.145,Lakeview Hot Springs,Santa Ana,Hotspring,100,38';
|
|
put '33.201,-115.577,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.212,-115.591,Mud Pots,Salton Sea,Hotspring,100,38';
|
|
put '33.217,-115.58,Wister Mud Pot,Salton Sea,Hotspring,100,38';
|
|
put '32.617,-116.189,Jacumba Hot Springs,San Diego,Hotspring,101,38';
|
|
put '36.618,-121.845,Sulphur Hot Spring,Santa Cruz,Hotspring,100,38';
|
|
put '36.495,-117.893,Springs,Death Valley,Hotspring,86,30';
|
|
put '38.033,-118.902,Mono Basin Warm Springs,Walker Lake,Hotspring,88,31';
|
|
put '35.908,-120.367,Table Mountain (Spring),San Luis Obisp,Hotspring,88,31';
|
|
put '34.271,-116.838,Pan Hot Springs,San Bernardino,Hotspring,88,31';
|
|
put '40.238,-122.11,Tuscan Springs,Redding,Hotspring,86,30';
|
|
put '40.245,-120.007,High Rock Spring,Susanville,Hotspring,86,30';
|
|
put '38.55,-122.72,Mark West Springs,Santa Rosa,Hotspring,88,31';
|
|
put '43.513,-119.903,Springs at Tecolote Tunnel,Los Angeles,Hotspring,93,34';
|
|
put '39.728,-120.547,Mclear Warm Springs,Chico,Hotspring,86,30';
|
|
put '38.835,-122.731,Gordon Warm Springs,Santa Rosa,Hotspring,97,36';
|
|
put '39.166,-123.159,Vichy Springs,Ukiah,Hotspring,85,29';
|
|
put '38.936,-122.907,Highland Springs,Santa Rosa,Hotspring,84,29';
|
|
put '37.398,-121.794,Mineral Springs,San Jose,Hotspring,84,29';
|
|
put '33.436,-117.324,De Luz Warm Springs,Santa Ana,Hotspring,85,29';
|
|
put '33.512,-115.827,Dos Palmas Spring,Salton Sea,Hotspring,84,29';
|
|
put '39.022,-122.444,Abbott Mine,Ukiah,Hotspring,86,30';
|
|
put '34.605,-118.561,Warm Spring,Los Angeles,Hotspring,92,33';
|
|
put '41.659,-123.319,Sulphur Springs,Weed,Hotspring,84,29';
|
|
put '38.394,-122.552,Los Guilicos Warm Springs,Santa Rosa,Hotspring,88,31';
|
|
put '41.492,-120.7,Essex Springs,Alturas,Hotspring,91,33';
|
|
put '38.654,-122.484,Aetna Springs,Santa Rosa,Hotspring,91,33';
|
|
put '35.842,-117.38,Bainter Spring,Trona,Hotspring,92,33';
|
|
put '34.228,-117.483,Tylers Bath Spring,San Bernardino,Hotspring,92,33';
|
|
put '33.363,-117.017,Agua Tibia Spring,Santa Ana,Hotspring,92,33';
|
|
put '41.167,-120.032,Bare Ranch Spring,Alturas,Hotspring,90,32';
|
|
put '35.978,-116.273,Shoshone Spring,Trona,Hotspring,90,32';
|
|
put '33.407,-116.035,Fish Springs,Santa Ana,Hotspring,90,32';
|
|
put '35.582,-120.666,Santa Ysabel Springs (Sulphur Spr),San Luis Obisp,Hotspring,92,33';
|
|
put '34.537,-119.613,Little Caliente Spring,Los Angeles,Hotspring,90,32';
|
|
put '39.006,-122.787,Big Soda Spring,Ukiah,Hotspring,90,32';
|
|
put '35.439,-119.846,Carneros Spring,Bakersfield,Hotspring,90,32';
|
|
put '36.441,-116.829,Travertine Springs,Death Valley,Hotspring,90,32';
|
|
put '37.88,-122.627,Rocky Point Springs,San Francisco,Hotspring,90,32';
|
|
put '39.227,-107.224,Penny Hot Springs,Leadville,Hotspring,133,56';
|
|
put '38.732,-106.178,Hortense Hot Spring,Montrose,Hotspring,181,83';
|
|
put '37.4,-107.849,Tripp Hot Springs,Durango,Hotspring,111,44';
|
|
put '40.073,-106.113,Hot Sulphur Springs,Craig,Hotspring,111,44';
|
|
put '39.739,-105.512,Idaho Springs,Denver,Hotspring,115,46';
|
|
put '39.552,-107.412,South Canyon Hot Springs,Leadville,Hotspring,118,48';
|
|
put '39.548,-107.322,Glenwood Springs,Leadville,Hotspring,124,51';
|
|
put '38.133,-107.736,Orvis Hot Spring,Montrose,Hotspring,126,52';
|
|
put '39.017,-105.793,Hartsel Hot Springs,Denver,Hotspring,126,52';
|
|
put '38.733,-106.162,Mount Princeton Hot Springs,Montrose,Hotspring,133,56';
|
|
put '37.752,-108.131,Paradise Warm Spring,Cortez,Hotspring,115,46';
|
|
put '37.747,-106.831,Wagon Wheel Gap Hot Springs,Durango,Hotspring,135,57';
|
|
put '37.263,-107.011,Pagosa Springs,Durango,Hotspring,136,58';
|
|
put '38.812,-106.226,Cottonwood Hot Springs,Montrose,Hotspring,136,58';
|
|
put '38.168,-105.924,Mineral Hot Springs,Pueblo,Hotspring,140,60';
|
|
put '40.559,-106.849,Routt Hot Springs,Craig,Hotspring,147,64';
|
|
put '38.021,-107.672,Ouray Hot Springs,Montrose,Hotspring,156,69';
|
|
put '38.498,-106.076,Poncha Hot Springs,Montrose,Hotspring,160,71';
|
|
put '38.514,-106.508,Upper Waunita Hot Springs,Montrose,Hotspring,176,80';
|
|
put '38.272,-107.1,Cebolla Hot Springs,Montrose,Hotspring,106,41';
|
|
put '37.313,-107.344,Piedra River Hot Springs,Durango,Hotspring,108,42';
|
|
put '38.517,-106.515,Lower Waunita Hot Springs,Montrose,Hotspring,167,75';
|
|
put '38.816,-106.873,Ranger Hot Spring,Montrose,Hotspring,81,27';
|
|
put '37.294,-105.784,Dexter Spring,Trinidad,Hotspring,68,20';
|
|
put '38.634,-106.072,Browns Grotto Warm Spring,Montrose,Hotspring,73,23';
|
|
put '39.164,-106.062,Rhodes Warm Spring,Leadville,Hotspring,75,24';
|
|
put '38.836,-106.825,Cement Creek Hot Spring,Montrose,Hotspring,77,25';
|
|
put '38.653,-106.056,Browns Canyon Warm Spring,Montrose,Hotspring,77,25';
|
|
put '37.033,-106.805,Stinking Springs,Durango,Hotspring,81,27';
|
|
put '37.747,-108.117,Geyser Warm Spring,Cortez,Hotspring,82,28';
|
|
put '38.479,-105.891,Swissvale Warm Springs,Pueblo,Hotspring,82,28';
|
|
put '37.751,-106.317,Shaw Springs,Durango,Hotspring,86,30';
|
|
put '37.728,-107.054,Birdsie Warm Spring,Durango,Hotspring,86,30';
|
|
put '37.741,-107.034,Antelope Spring,Durango,Hotspring,90,32';
|
|
put '39.628,-107.106,Dotsero Warm Springs,Leadville,Hotspring,90,32';
|
|
put '38.485,-105.91,Wellsville Warm Spring,Pueblo,Hotspring,91,33';
|
|
put '38.014,-108.054,Lemon Hot Spring,Moab,Hotspring,91,33';
|
|
put '37.391,-107.846,"Trimble Hot Spr, Stratten Warm Spr",Durango,Hotspring,97,36';
|
|
put '38.192,-105.816,Valley View Hot Springs,Pueblo,Hotspring,99,37';
|
|
put '38.433,-105.261,Canon City Hot Springs,Pueblo,Hotspring,104,40';
|
|
put '39.012,-106.891,Conundrum Hot Springs,Leadville,Hotspring,100,38';
|
|
put '37.511,-106.945,Rainbow Hot Springs,Durango,Hotspring,104,40';
|
|
put '40.467,-107.952,Juniper Hot Springs,Craig,Hotspring,100,38';
|
|
put '40.483,-106.827,Steamboat Springs,Craig,Hotspring,102,39';
|
|
put '37.771,-108.091,Dunton Hot Spring,Cortez,Hotspring,108,42';
|
|
put '37.453,-107.803,Pinkerton Hot Springs,Durango,Hotspring,90,32';
|
|
put '39.932,-105.277,Eldorado Springs,Denver,Hotspring,79,26';
|
|
put '27.074,-82.233,Little Salt Spring,Tampa,Hotspring,81,27';
|
|
put '27.06,-82.261,Warm Mineral Springs (Big Salt Spr,Tampa,Hotspring,86,30';
|
|
put '32.92,-84.438,Barker Spring,Phenix City,Hotspring,73,23';
|
|
put '32.964,-84.499,Thundering Spring,Phenix City,Hotspring,75,24';
|
|
put '33.018,-84.327,Taylor Spring,Atlanta,Hotspring,75,24';
|
|
put '32.862,-84.65,Parkman Spring,Phenix City,Hotspring,77,25';
|
|
put '33.037,-84.374,Lifsey Spring,Atlanta,Hotspring,79,26';
|
|
put '32.893,-84.69,Warm Springs,Phenix City,Hotspring,88,31';
|
|
put '32.873,-84.547,Tom Brown Spring,Phenix City,Hotspring,68,20';
|
|
put '19.407,-155.277,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.46,-154.847,Isaac Hale Park Spring,Hawaii,Hotspring,97,36';
|
|
put '19.496,-154.876,Warm Vapor,Hawaii,Hotspring,W,W';
|
|
put '19.373,-155.188,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.39,-155.311,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.434,-155.272,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.486,-155.598,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.466,-154.943,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.421,-155.62,Steam Vents,Hawaii,Hotspring,H,H';
|
|
put '19.201,-155.384,Waiwelawela Point Spring,Hawaii,Hotspring,90,32';
|
|
put '19.593,-154.928,Akins Spring,Hawaii,Hotspring,84,29';
|
|
put '44.721,-115.01,Thomas Creek Ranch Hot Spring,Challis,Hotspring,138,59';
|
|
put '45.431,-116.015,Cow Flats Hot Spring,Grangeville,Hotspring,138,59';
|
|
put '44.062,-115.685,Pine Flat Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.382,-115.841,Dash Creek Hot Springs,Challis,Hotspring,138,59';
|
|
put '44.077,-115.553,Haven Lodge Hot Spring,Challis,Hotspring,147,64';
|
|
put '43.647,-114.816,Skillern Hot Springs,Hailey,Hotspring,140,60';
|
|
put '43.789,-115.434,Dutch Frank Hot Spring,Hailey,Hotspring,149,65';
|
|
put '43.54,-115.288,Bridge Hot Springs,Hailey,Hotspring,138,59';
|
|
put '43.72,-115.617,Smith Cabin Hot Spring,Hailey,Hotspring,138,59';
|
|
put '42.688,-114.826,Banbury Hot Spring,Twin Falls,Hotspring,138,59';
|
|
put '45.035,-115.561,Sheep Creek Hot Spring,Elk City,Hotspring,136,58';
|
|
put '44.245,-114.885,Elkhorn Hot Spring,Challis,Hotspring,136,58';
|
|
put '44.642,-115.693,Mollys Hot Spring,Challis,Hotspring,138,59';
|
|
put '43.811,-115.116,Atlanta Hot Springs,Hailey,Hotspring,140,60';
|
|
put '44.679,-116.231,White Licks Hot Spring,Baker,Hotspring,140,60';
|
|
put '45.512,-115.046,Barth Hot Springs,Elk City,Hotspring,140,60';
|
|
put '43.696,-115.658,Sheep Creek Bridge Hot Spring,Hailey,Hotspring,142,61';
|
|
put '44.914,-115.722,Teapot Hot Spring,Challis,Hotspring,142,61';
|
|
put '43.788,-115.444,Straight Creek Hot Spring,Hailey,Hotspring,144,62';
|
|
put '43.116,-115.305,Latty Hot Spring,Hailey,Hotspring,144,62';
|
|
put '45.039,-116.291,Zims Resort Hot Springs,Grangeville,Hotspring,144,62';
|
|
put '43.049,-114.952,White Arrow Hot Spring,Hailey,Hotspring,145,63';
|
|
put '44.645,-114.739,Upper Loon Creek Hot Springs,Challis,Hotspring,145,63';
|
|
put '43.383,-114.931,Wardrop Hot Spring,Hailey,Hotspring,147,64';
|
|
put '44.531,-116.754,Fairchild Hot Spring,Baker,Hotspring,126,52';
|
|
put '44.661,-114.652,Foster Ranch Hot Springs,Challis,Hotspring,135,57';
|
|
put '44.051,-115.829,Dan Hodges Hot Spring,Challis,Hotspring,140,60';
|
|
put '43.506,-114.354,Hailey Hot Springs,Hailey,Hotspring,131,55';
|
|
put '43.982,-114.486,West Pass Hot Spring,Hailey,Hotspring,124,51';
|
|
put '43.641,-114.487,Warfield Hot Spring,Hailey,Hotspring,124,51';
|
|
put '44.145,-112.554,Lidy Hot Springs,Dubois,Hotspring,124,51';
|
|
put '44.054,-115.907,Hot Spring Campground,Challis,Hotspring,124,51';
|
|
put '42.032,-115.363,Murphy Hot Springs,Twin Falls,Hotspring,126,52';
|
|
put '43.561,-114.415,Clarendon Hot Springs,Hailey,Hotspring,126,52';
|
|
put '43.423,-114.627,Elk Creek Hot Spring,Hailey,Hotspring,126,52';
|
|
put '43.553,-115.267,Paradise Hot Springs,Hailey,Hotspring,126,52';
|
|
put '42.308,-111.707,Maple Grove Hot Springs,Preston,Hotspring,172,78';
|
|
put '45.013,-113.605,Sharkey Hot Spring,Dillon,Hotspring,126,52';
|
|
put '44.73,-114.993,Sunflower Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.974,-114.499,Lower Bowery Hot Spring,Hailey,Hotspring,129,54';
|
|
put '43.724,-115.604,Loftus Hot Spring,Hailey,Hotspring,129,54';
|
|
put '44.676,-115.943,Gold Fork Hot Spring,Challis,Hotspring,127,53';
|
|
put '44.044,-115.851,Donlay Ranch Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.264,-114.818,Basin Creek Hot Spring,Challis,Hotspring,133,56';
|
|
put '44.652,-114.734,Owen Cabin Hot Spring,Challis,Hotspring,133,56';
|
|
put '43.605,-115.664,Rattlesnake Hot Spring,Hailey,Hotspring,133,56';
|
|
put '43.605,-114.948,Lightfoot Hot Springs,Hailey,Hotspring,133,56';
|
|
put '45.788,-115.198,Red River Hot Springs,Elk City,Hotspring,131,55';
|
|
put '44.632,-115.697,South Fork Plunge,Challis,Hotspring,129,54';
|
|
put '44.853,-116.442,Starkey Hot Springs,Baker,Hotspring,131,55';
|
|
put '42.692,-114.859,Hot Sulphur (Miracle Hot) Springs,Twin Falls,Hotspring,131,55';
|
|
put '44.045,-115.842,Corder Hot Spring,Challis,Hotspring,131,55';
|
|
put '44.247,-114.676,Robinson Bar Hot Springs,Challis,Hotspring,131,55';
|
|
put '44.785,-114.855,Cox Hot Springs,Challis,Hotspring,131,55';
|
|
put '43.637,-115.13,Willow Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.803,-115.401,Granite Creek Hot Spring,Hailey,Hotspring,131,55';
|
|
put '43.129,-115.34,Coyote Hot Spring,Hailey,Hotspring,135,57';
|
|
put '44.211,-116.71,Cove Creek Hot Spring,Baker,Hotspring,131,55';
|
|
put '44.16,-115.167,Grandjean Hot Spring,Challis,Hotspring,H,H';
|
|
put '43.755,-115.571,Ninemeyer Hot Springs,Hailey,Hotspring,169,76';
|
|
put '43.701,-114.738,Big Smokey Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.831,-115.192,Queens River Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.817,-115.046,Leggit Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.718,-115.563,Basset Hot Spring,Hailey,Hotspring,H,H';
|
|
put '43.588,-115.988,Mores Creek Hot Spring,Hailey,Hotspring,H,H';
|
|
put '44.951,-114.704,Mormon Ranch Warm Spring,Challis,Hotspring,H,H';
|
|
put '44.896,-114.563,Forge Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.77,-115.663,Billy Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.628,-115.197,Sheepeater Hot Springs,Challis,Hotspring,H,H';
|
|
put '44.585,-115.072,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '44.554,-115.301,Sulphur Creek Hot Spring,Challis,Hotspring,H,H';
|
|
put '42.107,-113.39,Blm Well (Frazier Hot Spring),Pocatello,Hotspring,203,95';
|
|
put '44.4,-115.82,Goat Hot Springs,Challis,Hotspring,H,H';
|
|
put '45.307,-114.338,Big Creek Hot Springs,Elk City,Hotspring,199,93';
|
|
put '44.583,-116.112,Cascade Reservoir Hot Spring,Baker,Hotspring,H,H';
|
|
put '45.17,-115.807,Secesh Hot Spring,Elk City,Hotspring,H,H';
|
|
put '46.235,-114.707,Prospector Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.138,-115.09,Stuart Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '46.006,-115.021,Marten Hot Springs,Hamilton,Hotspring,H,H';
|
|
put '42.374,-111.726,Mound Valley Warm Spring,Preston,Hotspring,W,W';
|
|
put '43.255,-114.829,Mormon Reservoir Warm Spring,Hailey,Hotspring,W,W';
|
|
put '44.639,-115.671,Warm Lake Springs,Challis,Hotspring,W,W';
|
|
put '44.445,-115.239,Bear Valley Hot Spring,Challis,Hotspring,W,W';
|
|
put '44.354,-117.071,Old Homestead Warm Spring,Baker,Hotspring,W,W';
|
|
put '43.327,-113.918,Condie Hot Springs,Idaho Falls,Hotspring,124,51';
|
|
put '43.038,-112.004,Alkali Flats Warm Spring,Idaho Falls,Hotspring,93,34';
|
|
put '44.43,-115.762,Bull Creek Hot Springs,Challis,Hotspring,H,H';
|
|
put '42.119,-111.928,Squaw Hot Springs,Preston,Hotspring,163,73';
|
|
put '42.333,-111.716,Cleveland Hot Springs,Preston,Hotspring,151,66';
|
|
put '43.671,-115.696,Twin Springs,Hailey,Hotspring,151,66';
|
|
put '43.951,-116.353,Roystone Hot Springs,Boise,Hotspring,151,66';
|
|
put '42.704,-114.856,Salmon Falls Hot Spring,Twin Falls,Hotspring,153,67';
|
|
put '44.16,-115.177,Sacajawea Hot Springs,Challis,Hotspring,153,67';
|
|
put '43.738,-115.583,Vaughn Hot Spring,Hailey,Hotspring,154,68';
|
|
put '44.669,-116.305,Council Mtn Hot Springs,Baker,Hotspring,154,68';
|
|
put '44.831,-115.215,Kwiskwis Hot Spring,Challis,Hotspring,156,69';
|
|
put '43.684,-114.41,Guyer Hot Springs,Hailey,Hotspring,158,70';
|
|
put '43.155,-115.518,Hot Springs,Hailey,Hotspring,158,70';
|
|
put '44.586,-116.63,Lakey Hot Spring,Baker,Hotspring,158,70';
|
|
put '42.333,-115.65,Indian Hot Springs,Twin Falls,Hotspring,160,71';
|
|
put '42.637,-114.892,Poison Springs,Twin Falls,Hotspring,H,H';
|
|
put '44.813,-115.123,Middle Fork Indian Creek Hot Sprin,Challis,Hotspring,162,72';
|
|
put '44.072,-115.543,Kirkham Hot Springs,Challis,Hotspring,149,65';
|
|
put '43.328,-114.399,Magic Hot Springs,Hailey,Hotspring,163,73';
|
|
put '43.293,-114.908,Barrons Hot Spring,Hailey,Hotspring,167,75';
|
|
put '44.154,-115.993,Warm Springs Creek Hot Springs,Challis,Hotspring,167,75';
|
|
put '44.268,-114.748,Sunbeam Hot Springs,Challis,Hotspring,169,76';
|
|
put '44.092,-116.052,Deer Hot Springs,Baker,Hotspring,176,80';
|
|
put '43.563,-114.798,Worswick Hot Springs,Hailey,Hotspring,180,82';
|
|
put '42.133,-111.928,Battle Creek Hot Springs,Preston,Hotspring,183,84';
|
|
put '44.364,-115.856,Boiling Springs,Challis,Hotspring,185,85';
|
|
put '44.157,-115.314,Bonneville Hot Springs,Challis,Hotspring,185,85';
|
|
put '44.799,-115.129,Indian Creek Hot Spring,Challis,Hotspring,190,88';
|
|
put '44.568,-115.695,Vulcan Hot Springs,Challis,Hotspring,190,88';
|
|
put '44.306,-116.745,Crane Creek Hot Springs,Baker,Hotspring,198,92';
|
|
put '44.416,-116.031,Cabarton Hot Spring,Baker,Hotspring,160,71';
|
|
put '42.781,-111.983,Portneuf River Warm Spring,Preston,Hotspring,93,34';
|
|
put '44.621,-115.985,Badley Warm Spring,Challis,Hotspring,100,38';
|
|
put '45.201,-116.312,Boulder Creek Spring,Grangeville,Hotspring,82,28';
|
|
put '42.24,-113.588,Sears Spring,Pocatello,Hotspring,84,29';
|
|
put '44.257,-112.639,Warm Springs,Dubois,Hotspring,84,29';
|
|
put '42.911,-111.556,Henry Warm Spring,Preston,Hotspring,86,30';
|
|
put '43.021,-111.695,Wilson Lake Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.495,-116.732,Keithly Warm Spring,Baker,Hotspring,86,30';
|
|
put '42.655,-111.643,Steamboat Hot Spring,Preston,Hotspring,88,31';
|
|
put '45.152,-116.296,Stinky Warm Spring,Grangeville,Hotspring,88,31';
|
|
put '42.725,-112.872,Indian Springs,Pocatello,Hotspring,90,32';
|
|
put '43.114,-112.167,Yandell Springs,Idaho Falls,Hotspring,90,32';
|
|
put '44.64,-116.045,Arling Hot Spring,Baker,Hotspring,90,32';
|
|
put '42.657,-111.604,Soda Springs,Preston,Hotspring,82,28';
|
|
put '45.07,-115.826,Lick Creek Warm Spring,Elk City,Hotspring,91,33';
|
|
put '42.337,-111.726,Treasureton Hot Springs,Preston,Hotspring,95,35';
|
|
put '44.382,-114.088,Little Antelope Flat Warm Spring,Challis,Hotspring,93,34';
|
|
put '43.21,-111.495,Brockman Creek Hot Spring,Driggs,Hotspring,95,35';
|
|
put '44.398,-115.149,Cape Horn Warm Springs,Challis,Hotspring,95,35';
|
|
put '42.337,-114.509,Nat-Soo-Pah Warm Spring,Twin Falls,Hotspring,97,36';
|
|
put '44.9,-115.505,Hot Creek Warm Spring,Challis,Hotspring,97,36';
|
|
put '42.405,-114.142,Artesian City Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '42.762,-115.739,Indian Bathtub Hot Springs,Twin Falls,Hotspring,99,37';
|
|
put '43.227,-111.109,Alpine Warm Spring,Driggs,Hotspring,99,37';
|
|
put '42.545,-112.906,Rockland Warm Springs,Pocatello,Hotspring,100,38';
|
|
put '43.805,-114.585,Russian John Hot Spring,Hailey,Hotspring,100,38';
|
|
put '43.779,-114.539,Easley Hot Springs,Hailey,Hotspring,100,38';
|
|
put '44.26,-114.838,Mormon Bend Hot Spring,Challis,Hotspring,100,38';
|
|
put '44.64,-113.504,Big Eightmile Creek Warm Spring,Dubois,Hotspring,91,33';
|
|
put '42.339,-112.436,Kent Warm Spring,Pocatello,Hotspring,75,24';
|
|
put '42.957,-112.458,Tadpole Warm Spring,Pocatello,Hotspring,68,20';
|
|
put '43.607,-111.189,Taylor Springs,Driggs,Hotspring,68,20';
|
|
put '43.972,-116.325,Sweet Warm Spring,Boise,Hotspring,68,20';
|
|
put '44.717,-115.703,Dollar Creek Warm Spring,Challis,Hotspring,68,20';
|
|
put '42.625,-113.107,Lake Walcott Hot Spring,Pocatello,Hotspring,70,21';
|
|
put '42.015,-114.237,Thoroughbred Warm Springs,Twin Falls,Hotspring,69,21';
|
|
put '42.928,-111.592,Blackfoot Reservoir Warm Spring,Preston,Hotspring,72,22';
|
|
put '42.286,-113.446,"Rice Spring, Ward Spring",Pocatello,Hotspring,72,22';
|
|
put '42.085,-113.564,Grape Creek Warm Spring,Pocatello,Hotspring,72,22';
|
|
put '43.66,-111.715,Elkhorn Warm Spring,Driggs,Hotspring,72,22';
|
|
put '43.367,-113.884,Rush Warm Spring,Idaho Falls,Hotspring,72,22';
|
|
put '44.306,-117.042,Weiser Warm Springs,Baker,Hotspring,72,22';
|
|
put '45.344,-114.463,Owl Creek Hot Springs,Elk City,Hotspring,122,50';
|
|
put '44.454,-112.696,Big Spring,Dubois,Hotspring,73,23';
|
|
put '44.269,-113.449,Barney Hot Springs,Dubois,Hotspring,82,28';
|
|
put '43.5,-115.308,Towne Creek Warm Spring,Hailey,Hotspring,75,24';
|
|
put '43.161,-116.332,Thomas Flats Warm Spring,Boise,Hotspring,75,24';
|
|
put '44.612,-113.363,Whittaker Warm Springs,Dubois,Hotspring,75,24';
|
|
put '42.173,-112.239,Malad Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.156,-112.348,Pleasantview Warm Springs,Pocatello,Hotspring,77,25';
|
|
put '42.025,-112.226,Prices Warm Spring,Pocatello,Hotspring,77,25';
|
|
put '42.865,-116.368,Lower Birch Spring,Jordan Valley,Hotspring,77,25';
|
|
put '43.423,-111.414,Fall Creek Mineral Springs,Driggs,Hotspring,77,25';
|
|
put '42.986,-111.743,Blackfoot River Warm Spring,Preston,Hotspring,79,26';
|
|
put '42.426,-111.378,Pescadero Warm Spring,Preston,Hotspring,79,26';
|
|
put '44.091,-111.458,Ashton Warm Spring,Ashton,Hotspring,79,26';
|
|
put '42.056,-112.246,Woodruff Hot Spring,Pocatello,Hotspring,81,27';
|
|
put '43.831,-116.396,Highland Land Co Warm Spring,Boise,Hotspring,73,23';
|
|
put '44.847,-115.696,Holdover Hot Spring,Challis,Hotspring,117,47';
|
|
put '43.047,-114.929,Hot Sulphur Lake,Hailey,Hotspring,81,27';
|
|
put '43.603,-115.07,Baumgartner Hot Spring,Hailey,Hotspring,111,44';
|
|
put '44.465,-116.037,Belvidere Hot Spring,Baker,Hotspring,111,44';
|
|
put '42.621,-112.008,Lava Hot Springs,Pocatello,Hotspring,113,45';
|
|
put '43.823,-115.327,Weatherby Hot Spring,Hailey,Hotspring,113,45';
|
|
put '43.335,-115.044,Wolf Hot Spring,Hailey,Hotspring,113,45';
|
|
put '44.905,-113.929,Goldbug Hot Spring,Dubois,Hotspring,113,45';
|
|
put '45.095,-113.836,Salmon Hot Spring,Dillon,Hotspring,113,45';
|
|
put '45.277,-115.912,Burgdorf Hot Springs,Elk City,Hotspring,113,45';
|
|
put '44.836,-114.79,Hospital Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.72,-114.016,Cronks Canyon Hot Spring,Challis,Hotspring,115,46';
|
|
put '44.721,-115.207,Pistol Creek Hot Springs,Challis,Hotspring,115,46';
|
|
put '43.791,-111.435,Pincock (Green Canyon) Hot Springs,Driggs,Hotspring,111,44';
|
|
put '43.414,-116.707,Givens Hot Springs,Boise,Hotspring,117,47';
|
|
put '45.503,-114.463,Horse Creek Hot Springs,Elk City,Hotspring,109,43';
|
|
put '46.464,-115.035,Weir Creek Hot Springs,Hamilton,Hotspring,117,47';
|
|
put '42.115,-111.264,Bear Lake Hot Springs,Preston,Hotspring,118,48';
|
|
put '42.173,-113.861,Oakley Hot Spring,Pocatello,Hotspring,118,48';
|
|
put '46.463,-114.872,Jerry Johnson Hot Springs,Hamilton,Hotspring,118,48';
|
|
put '43.644,-111.687,Heise Hot Springs,Driggs,Hotspring,120,49';
|
|
put '44.799,-114.806,Lower Loon Creek Hot Spring,Challis,Hotspring,120,49';
|
|
put '44.253,-115.891,Rocky Canyon Hot Springs,Challis,Hotspring,120,49';
|
|
put '46.316,-115.258,Stanley Hot Springs,Hamilton,Hotspring,120,49';
|
|
put '43.779,-115.486,Brown Creek Hot Spring,Hailey,Hotspring,122,50';
|
|
put '44.628,-114.601,Shower Bath Springs,Challis,Hotspring,122,50';
|
|
put '44.171,-114.624,Slate Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '44.392,-115.834,Ground Hog Hot Springs,Challis,Hotspring,100,38';
|
|
put '42.797,-115.723,"Bat Hot Spring, Pence Hot Spring",Twin Falls,Hotspring,117,47';
|
|
put '42.767,-115.725,Lower Indian Bathtub Hot Springs,Twin Falls,Hotspring,108,42';
|
|
put '42.102,-113.632,Durfee Spring,Pocatello,Hotspring,102,39';
|
|
put '44.33,-115.802,Silver Creek Hot Spring,Challis,Hotspring,102,39';
|
|
put '42.447,-113.523,Marsh Creek Hot Spring,Pocatello,Hotspring,104,40';
|
|
put '42.449,-113.511,Marsh Gully Hot Springs,Pocatello,Hotspring,106,41';
|
|
put '42.798,-115.742,Bruneau Hot Spring,Twin Falls,Hotspring,106,41';
|
|
put '43.576,-114.83,Preis Hot Spring,Hailey,Hotspring,106,41';
|
|
put '43.677,-116.208,Terteling Hot Springs,Boise,Hotspring,106,41';
|
|
put '44.254,-114.443,Sullivan Hot Springs,Challis,Hotspring,106,41';
|
|
put '44.224,-114.929,Stanley Hot Spring,Challis,Hotspring,106,41';
|
|
put '44.101,-114.865,Rosalys Warm Spring,Challis,Hotspring,106,41';
|
|
put '44.06,-115.819,Danskin Creek Hot Spring,Challis,Hotspring,106,41';
|
|
put '45.852,-114.937,Running Warm Springs,Elk City,Hotspring,106,41';
|
|
put '43.363,-113.779,Milford Sweat Hot Spring,Idaho Falls,Hotspring,111,44';
|
|
put '46.466,-114.939,Colgate Warm Springs,Hamilton,Hotspring,106,41';
|
|
put '44.626,-115.749,Trail Creek Hot Spring,Challis,Hotspring,122,50';
|
|
put '43.816,-115.863,Warm Springs,Hailey,Hotspring,108,42';
|
|
put '43.76,-115.56,Pool Creek Hot Spring,Hailey,Hotspring,108,42';
|
|
put '45.042,-114.616,Snowshoe Johnsons Hot Spring,Elk City,Hotspring,108,42';
|
|
put '42.388,-112.085,Downata Hot Springs,Pocatello,Hotspring,109,43';
|
|
put '42.013,-114.504,Magic Hot Springs,Twin Falls,Hotspring,109,43';
|
|
put '42.779,-115.715,Buckaroo Hot Spring,Twin Falls,Hotspring,109,43';
|
|
put '43.99,-114.8,Pierson Hot Springs,Hailey,Hotspring,109,43';
|
|
put '43.038,-114.988,Tschanne Hot Spring,Hailey,Hotspring,109,43';
|
|
put '44.523,-114.173,Beardsley Hot Springs,Challis,Hotspring,109,43';
|
|
put '44.733,-115.018,Sunflower Flat Hot Spring,Challis,Hotspring,109,43';
|
|
put '44.516,-115.295,Dagger Creek Hot Spring,Challis,Hotspring,110,43';
|
|
put '44.971,-116.203,Krigbaum Hot Springs,Baker,Hotspring,109,43';
|
|
put '45.416,-116.172,Riggins Hot Springs,Grangeville,Hotspring,106,41';
|
|
put '42.735,-73.2,Sand Spring,Albany,Hotspring,75,24';
|
|
put '46.106,-114.004,Sleeping Child Hot Springs,Hamilton,Hotspring,122,50';
|
|
put '45.697,-114.365,Blue Joint Hot Springs 2,Elk City,Hotspring,84,29';
|
|
put '44.769,-111.649,Sloan Cow Camp Spring,Ashton,Hotspring,86,30';
|
|
put '47.632,-112.855,Medicine (Sun River) Springs,Choteau,Hotspring,86,30';
|
|
put '45.75,-113.938,Gallogly Spring,Dillon,Hotspring,100,38';
|
|
put '47.33,-114.789,Quinns Hot Springs,Wallace,Hotspring,109,43';
|
|
put '45.171,-112.153,Puller Hot Springs,Dillon,Hotspring,111,44';
|
|
put '46.728,-114.533,"Lolo Hot Springs, Granite Springs",Hamilton,Hotspring,111,44';
|
|
put '45.337,-110.691,Chico Hot Springs,Bozeman,Hotspring,113,45';
|
|
put '47.607,-114.663,Camas Hot Springs,Wallace,Hotspring,113,45';
|
|
put '45.841,-114.038,Medicine Hot Springs,Elk City,Hotspring,117,47';
|
|
put '45.458,-113.109,Elkhorn Hot Springs,Dillon,Hotspring,118,48';
|
|
put '45.027,-112.844,Mcmenomey Ranch Spring,Dillon,Hotspring,68,20';
|
|
put '45.792,-112.126,Renova Hot Springs,Dillon,Hotspring,122,50';
|
|
put '44.701,-111.878,Staudenmeyer Springs,Ashton,Hotspring,82,28';
|
|
put '45.602,-111.9,Potosi Warm Springs,Bozeman,Hotspring,124,51';
|
|
put '45.575,-111.683,Norris Hot Springs,Bozeman,Hotspring,127,53';
|
|
put '45.462,-112.475,New Biltmore Hot Springs,Dillon,Hotspring,127,53';
|
|
put '45.66,-111.186,Bozeman Hot Springs,Bozeman,Hotspring,131,55';
|
|
put '45.896,-112.233,Pipestone Hot Springs,Dillon,Hotspring,135,57';
|
|
put '46.547,-110.903,White Sulphur Springs,White Sulphur,Hotspring,136,58';
|
|
put '46.448,-111.982,Alhambra Hot Springs,White Sulphur,Hotspring,138,59';
|
|
put '45.757,-110.256,Hunters Hot Springs,Bozeman,Hotspring,140,60';
|
|
put '45.368,-113.403,Jardine Hot Spring,Dillon,Hotspring,140,60';
|
|
put '46.596,-112.108,Broadwater (Helena) Hot Springs,Butte,Hotspring,151,66';
|
|
put '44.984,-111.613,Wolf Creek Hot Springs,Ashton,Hotspring,154,68';
|
|
put '45.685,-112.295,Silver Star Hot Springs,Dillon,Hotspring,163,73';
|
|
put '45.59,-111.899,Potosi Hot Springs,Bozeman,Hotspring,122,50';
|
|
put '45.105,-112.751,Browns Springs,Dillon,Hotspring,75,24';
|
|
put '46.718,-113.306,Bearmouth Warm Spring 2,Butte,Hotspring,68,20';
|
|
put '46.717,-113.32,Bearmouth Warm Spring 1,Butte,Hotspring,68,20';
|
|
put '47.217,-109.471,Brooks Warm Spring,Lewistown,Hotspring,68,20';
|
|
put '45.708,-110.976,Bridger Canyon Warm Spring,Bozeman,Hotspring,70,21';
|
|
put '46.795,-108.883,Durfee Creek Springs,Roundup,Hotspring,70,21';
|
|
put '46.704,-113.452,Nimrod Springs,Butte,Hotspring,70,21';
|
|
put '47.876,-108.656,Landusky Springs,Lewistown,Hotspring,70,21';
|
|
put '45.032,-110.667,Bear Creek Springs,Bozeman,Hotspring,72,22';
|
|
put '45.111,-112.714,Lovells Hot Spring,Dillon,Hotspring,72,22';
|
|
put '46.106,-112.903,Anaconda Hot Springs,Butte,Hotspring,72,22';
|
|
put '45.235,-112.135,Trudau Warm Springs,Dillon,Hotspring,73,23';
|
|
put '45.698,-114.382,Blue Joint Hot Spring 1,Elk City,Hotspring,84,29';
|
|
put '45.037,-111.953,Vigilante Spring,Bozeman,Hotspring,75,24';
|
|
put '45.608,-110.571,Carter Bridge Warm Springs,Bozeman,Hotspring,82,28';
|
|
put '46.355,-111.565,Bedford Hot Springs,White Sulphur,Hotspring,74,24';
|
|
put '45.553,-110.142,Anderson Springs,Bozeman,Hotspring,77,25';
|
|
put '45.42,-112.692,Apex Warm Spring,Dillon,Hotspring,77,25';
|
|
put '46.607,-112.776,Garrison Warm Springs,Butte,Hotspring,77,25';
|
|
put '47.843,-108.598,The (Landusky) Plunge,Lewistown,Hotspring,77,25';
|
|
put '44.785,-111.649,West Fork Swimming Hole,Ashton,Hotspring,79,26';
|
|
put '46.61,-112.555,Avon Warm Spring,Butte,Hotspring,79,26';
|
|
put '46.334,-112.886,Deerlodge Prison Ranch Springs,Butte,Hotspring,79,26';
|
|
put '47.994,-108.445,Lodgepole (Big Warm) Springs,Lewistown,Hotspring,79,26';
|
|
put '47.451,-114.648,Green Springs,Wallace,Hotspring,79,26';
|
|
put '45.392,-112.452,Beaverhead Rock Spring,Dillon,Hotspring,81,27';
|
|
put '44.704,-111.892,Andersons Pasture Springs,Ashton,Hotspring,82,28';
|
|
put '47.971,-108.395,Little Warm Springs,Lewistown,Hotspring,73,23';
|
|
put '46.198,-112.094,Boulder Hot Springs,Butte,Hotspring,169,76';
|
|
put '46.178,-112.794,Warm Springs (State Hospital),Butte,Hotspring,172,78';
|
|
put '45.367,-111.726,Ennis Hot Springs,Bozeman,Hotspring,181,83';
|
|
put '46.044,-112.811,Gregson Hot Springs,Butte,Hotspring,158,70';
|
|
put '45.09,-110.774,Laduke (Corwin) Hot Spring,Bozeman,Hotspring,154,68';
|
|
put '35.897,-82.826,Hot Springs,Knoxville,Hotspring,108,42';
|
|
put '32.644,-108.128,Apache Tejo Warm Spring,Silver City,Hotspring,97,36';
|
|
put '33.135,-107.254,Truth Or Consequences,Tularosa,Hotspring,113,45';
|
|
put '36.305,-106.053,Ojo Caliente (Arsenic Spring),Aztec,Hotspring,111,44';
|
|
put '33.162,-108.209,Spring (Hot),Clifton,Hotspring,111,44';
|
|
put '36.508,-105.722,Manby Hot Springs,Raton,Hotspring,100,38';
|
|
put '35.849,-106.629,Spence Hot Springs,Albuquerque,Hotspring,100,38';
|
|
put '35.972,-106.56,San Antonio Warm Spring,Albuquerque,Hotspring,101,38';
|
|
put '35.82,-106.627,Mccauley Hot Springs,Albuquerque,Hotspring,99,37';
|
|
put '35.793,-106.685,Soda Dam Hot Springs,Albuquerque,Hotspring,117,47';
|
|
put '33.831,-108.8,(Upper) Frisco Hot Spring,Clifton,Hotspring,98,37';
|
|
put '35.646,-106.888,Warm Springs,Albuquerque,Hotspring,129,54';
|
|
put '36.324,-105.606,Ponce De Leon Springs,Raton,Hotspring,93,34';
|
|
put '34.038,-106.94,"Socorro Spring, Sedillo Spring",Socorro,Hotspring,93,34';
|
|
put '33.293,-108.282,"Spring Mfg Two, Spring Mfg Three",Clifton,Hotspring,99,37';
|
|
put '35.592,-106.753,Indian Springs,Albuquerque,Hotspring,123,51';
|
|
put '32.501,-106.926,Radium Springs,Las Cruces,Hotspring,127,53';
|
|
put '33.274,-108.25,Spring Mfg Four,Clifton,Hotspring,93,34';
|
|
put '35.938,-106.646,San Antonio Hot Spring,Albuquerque,Hotspring,129,54';
|
|
put '33.244,-108.88,San Francisco Hot Springs,Clifton,Hotspring,120,49';
|
|
put '32.748,-107.836,Mimbres Hot Springs,Las Cruces,Hotspring,136,58';
|
|
put '35.653,-105.29,Montezuma Hot Springs,Santa Fe,Hotspring,138,59';
|
|
put '33.233,-108.235,Spring (Hot),Clifton,Hotspring,149,65';
|
|
put '33.199,-108.209,Gila Hot Springs,Clifton,Hotspring,151,66';
|
|
put '33.108,-108.483,Turkey Creek Hot Spring,Clifton,Hotspring,165,74';
|
|
put '35.772,-106.69,Jemez Springs,Albuquerque,Hotspring,169,76';
|
|
put '35.908,-106.615,Sulphur Springs,Albuquerque,Hotspring,189,87';
|
|
put '33.237,-108.88,Hot Springs,Clifton,Hotspring,H,H';
|
|
put '32.562,-108.027,Kennecott Warm Springs,Silver City,Hotspring,W,W';
|
|
put '32.554,-107.994,Faywood Hot Springs,Las Cruces,Hotspring,129,54';
|
|
put '33.898,-108.501,Aragon Springs,Clifton,Hotspring,70,21';
|
|
put '34.847,-107.091,Spring (Salt),Socorro,Hotspring,76,24';
|
|
put '34.903,-107.085,El Ojo Escondido,Socorro,Hotspring,73,23';
|
|
put '35.06,-107.133,Alamos Spring,Albuquerque,Hotspring,72,22';
|
|
put '34.912,-108.951,Rainbow Spring,Saint Johns,Hotspring,71,22';
|
|
put '34.698,-107.129,Spring,Socorro,Hotspring,71,22';
|
|
put '32.455,-104.489,Indian Big Spring,Carlsbad,Hotspring,79,26';
|
|
put '34.995,-106.454,Clear Water Spring,Socorro,Hotspring,69,21';
|
|
put '32.821,-108.408,Ash Spring,Silver City,Hotspring,72,22';
|
|
put '32.83,-109.047,Goat Camp Spring,Silver City,Hotspring,69,21';
|
|
put '35.548,-106.827,San Ysidro Warm Springs,Albuquerque,Hotspring,68,20';
|
|
put '34.116,-106.98,Ojitos Springs,Socorro,Hotspring,68,20';
|
|
put '32.248,-104.411,Mosley Spring,Carlsbad,Hotspring,68,20';
|
|
put '33.708,-109.025,Frieborn Canyon Spring,Clifton,Hotspring,92,33';
|
|
put '33.192,-108.18,Lyons Hunting Lodge Hot Springs,Clifton,Hotspring,126,52';
|
|
put '35.601,-106.86,Phillips Springs,Albuquerque,Hotspring,70,21';
|
|
put '33.285,-108.262,Spring Mfg One,Clifton,Hotspring,88,31';
|
|
put '33.306,-108.324,The Meadows Warm Spring,Clifton,Hotspring,91,33';
|
|
put '34.049,-106.939,Cook Spring,Socorro,Hotspring,70,21';
|
|
put '32.795,-107.276,Derry Warm Springs,Las Cruces,Hotspring,92,33';
|
|
put '32.884,-108.358,Allen Springs,Silver City,Hotspring,78,26';
|
|
put '33.279,-107.563,Warm Springs,Tularosa,Hotspring,87,31';
|
|
put '32.606,-107.19,Souse Springs,Las Cruces,Hotspring,88,31';
|
|
put '34.808,-107.091,Spring (Salt),Socorro,Hotspring,86,30';
|
|
put '35.54,-106.854,San Ysidro Hot Springs,Albuquerque,Hotspring,85,29';
|
|
put '36.368,-106.059,Statue Spring,Aztec,Hotspring,83,28';
|
|
put '34.833,-107.091,Laguna Pueblo Seeps,Socorro,Hotspring,82,28';
|
|
put '33.572,-107.593,Ojo Caliente,Tularosa,Hotspring,83,28';
|
|
put '34.854,-107.088,Laguna Pueblo Springs,Socorro,Hotspring,80,27';
|
|
put '32.843,-108.512,Mangas Springs,Silver City,Hotspring,81,27';
|
|
put '34.769,-107.085,Spring (Salt),Socorro,Hotspring,78,26';
|
|
put '34.032,-106.777,Ojo De Las Canas,Socorro,Hotspring,79,26';
|
|
put '40.972,-119.007,Black Rock Hot Spring,Lovelock,Hotspring,136,58';
|
|
put '38.899,-119.41,Nevada (Hinds) Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '38.922,-118.198,Wedell Hot Springs,Walker Lake,Hotspring,144,62';
|
|
put '41.183,-114.991,Hot Springs,Wells,Hotspring,142,61';
|
|
put '38.437,-116.277,Hot Creek Valley Spring,Tonopah,Hotspring,142,61';
|
|
put '41.788,-114.735,Mineral Hot Spring,Wells,Hotspring,140,60';
|
|
put '37.825,-117.337,Alkali Hot Spring,Goldfield,Hotspring,140,60';
|
|
put '41.412,-114.675,Wine Cup Ranch Springs,Wells,Hotspring,138,59';
|
|
put '40.404,-116.517,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.417,-116.507,Crescent Valley Hot Springs,Winnemucca,Hotspring,138,59';
|
|
put '40.603,-116.463,Horseshoe Ranch Springs,Winnemucca,Hotspring,136,58';
|
|
put '41.378,-119.182,Springs (Hot),Vya,Hotspring,136,58';
|
|
put '39.883,-114.893,Cherry Creek Hot Springs,Ely,Hotspring,144,62';
|
|
put '40.922,-117.108,Hot Pot (Blossom Hot Springs),Winnemucca,Hotspring,136,58';
|
|
put '41.721,-118.505,Howard Hot Spring,Vya,Hotspring,135,57';
|
|
put '41.421,-117.388,The Hot Springs,Mcdermitt,Hotspring,135,57';
|
|
put '40.418,-117.415,Buffalo Springs,Winnemucca,Hotspring,162,72';
|
|
put '39.031,-116.666,Dianas Punch Bowl,Millett,Hotspring,138,59';
|
|
put '39.404,-116.347,Klobe (Bartholomae) Hot Spring,Millett,Hotspring,156,69';
|
|
put '36.975,-116.721,Hicks Hot Springs,Death Valley,Hotspring,109,43';
|
|
put '40.178,-117.496,Home Station Ranch Hot Spring,Winnemucca,Hotspring,135,57';
|
|
put '39.797,-118.067,Dixie Hot Springs,Reno,Hotspring,162,72';
|
|
put '39.904,-116.588,Walti Hot Springs,Millett,Hotspring,162,72';
|
|
put '38.981,-119.833,Walleys Hot Springs,Walker Lake,Hotspring,160,71';
|
|
put '38.464,-115.792,Chimney Warm Spring,Lund,Hotspring,160,71';
|
|
put '39.328,-116.858,Spencer Hot Springs,Millett,Hotspring,162,72';
|
|
put '41.108,-117.578,Hot Springs,Mcdermitt,Hotspring,158,70';
|
|
put '36.002,-114.742,Spring,Las Vegas,Hotspring,145,63';
|
|
put '41.576,-115.181,Hot Creek Springs,Wells,Hotspring,151,66';
|
|
put '40.954,-117.488,Golconda Hot Spring (South),Winnemucca,Hotspring,151,66';
|
|
put '40.22,-116.068,Bruffeys Hot Springs,Winnemucca,Hotspring,149,65';
|
|
put '40.249,-115.409,Smith Ranch Springs,Elko,Hotspring,149,65';
|
|
put '41.867,-114.692,San Jacinto Ranch Spring,Wells,Hotspring,148,64';
|
|
put '40.765,-116.04,Hot Sulphur Springs,Winnemucca,Hotspring,147,64';
|
|
put '38.188,-116.373,Warm Springs,Tonopah,Hotspring,145,63';
|
|
put '41.567,-118.564,Dyke Hot Springs,Vya,Hotspring,158,70';
|
|
put '38.365,-115.867,Abel Spring,Lund,Hotspring,115,46';
|
|
put '41.929,-114.071,Nile Spring,Wells,Hotspring,109,43';
|
|
put '39.193,-119.752,Carson Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.512,-119.907,Lawton Hot Springs,Reno,Hotspring,120,49';
|
|
put '39.944,-119.509,Anaho Island Spring,Reno,Hotspring,120,49';
|
|
put '37.761,-117.632,Silverpeak Hot Spring,Goldfield,Hotspring,118,48';
|
|
put '37.621,-114.51,Caliente Hot Springs,Caliente,Hotspring,118,48';
|
|
put '39.058,-119.742,Saratoga Hot Spring,Reno,Hotspring,122,50';
|
|
put '39.308,-117.552,Hot Springs,Millett,Hotspring,115,46';
|
|
put '40.673,-116.838,Hot Springs,Winnemucca,Hotspring,122,50';
|
|
put '39.08,-116.639,Potts Ranch Hot Springs,Millett,Hotspring,113,45';
|
|
put '38.388,-115.866,Coyote Hole Spring,Lund,Hotspring,113,45';
|
|
put '41.753,-118.841,Warm Springs,Vya,Hotspring,112,44';
|
|
put '41.386,-114.165,Spring (Hot),Wells,Hotspring,111,44';
|
|
put '40.961,-117.494,Golconda Hot Spring (North),Winnemucca,Hotspring,165,74';
|
|
put '40.313,-117.07,Mound Springs,Winnemucca,Hotspring,109,43';
|
|
put '40.585,-115.285,Sulphur Hot Springs,Elko,Hotspring,205,96';
|
|
put '39.059,-119.815,Hobo Hot Springs,Reno,Hotspring,114,46';
|
|
put '40.191,-117.107,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '40.819,-115.777,Hot Hole,Elko,Hotspring,133,56';
|
|
put '39.286,-119.84,Bowers Mansion Hot Spring,Reno,Hotspring,133,56';
|
|
put '41.809,-118.861,Painted Hills Mine,Vya,Hotspring,131,55';
|
|
put '41.925,-118.805,Bog Hot Springs,Vya,Hotspring,131,55';
|
|
put '41.647,-115.775,Wild Horse Hot Springs,Wells,Hotspring,129,54';
|
|
put '40.183,-117.102,Hot Springs Ranch,Winnemucca,Hotspring,129,54';
|
|
put '40.08,-117.604,Mccoy Springs,Winnemucca,Hotspring,120,49';
|
|
put '41.353,-119.216,Spring (Hot),Vya,Hotspring,127,53';
|
|
put '41.357,-119.188,Springs (Hot),Vya,Hotspring,133,56';
|
|
put '40.198,-117.103,Hot Springs,Winnemucca,Hotspring,127,53';
|
|
put '39.42,-119.738,Dimonte Spring,Reno,Hotspring,127,53';
|
|
put '38.952,-115.23,Williams Hot Spring,Lund,Hotspring,127,53';
|
|
put '41.261,-115.305,Hot Springs,Wells,Hotspring,126,52';
|
|
put '39.041,-116.663,Hot Spring,Millett,Hotspring,124,51';
|
|
put '41.365,-119.221,Spring (Hot),Vya,Hotspring,122,50';
|
|
put '41.159,-114.986,"Threemile Spring, Sulphur Hot Spr",Wells,Hotspring,122,50';
|
|
put '41.339,-119.192,Springs (Hot),Vya,Hotspring,127,53';
|
|
put '39.893,-116.649,Little Hot Springs,Millett,Hotspring,H,H';
|
|
put '39.787,-119.011,Bradys Hot Springs,Reno,Hotspring,209,98';
|
|
put '41.175,-115.278,Hot Spring,Wells,Hotspring,H,H';
|
|
put '41.145,-114.994,Hot Spring,Wells,Hotspring,H,H';
|
|
put '40.864,-117.349,Sulphur Spring,Winnemucca,Hotspring,H,H';
|
|
put '39.733,-119.039,Eagle Salt Works Spring,Reno,Hotspring,H,H';
|
|
put '39.281,-118.42,Sand Springs,Reno,Hotspring,H,H';
|
|
put '38.81,-116.397,Fish Springs,Tonopah,Hotspring,W,W';
|
|
put '39.559,-117.427,Petersons Mill Hot Spring,Millett,Hotspring,H,H';
|
|
put '38.339,-116.662,Warm Spring,Tonopah,Hotspring,W,W';
|
|
put '38.859,-119.175,Hot Spring,Walker Lake,Hotspring,H,H';
|
|
put '39.995,-117.854,Senator Fumaroles,Millett,Hotspring,B,B';
|
|
put '39.565,-118.856,(Soda Lake Area),Reno,Hotspring,210,99';
|
|
put '40.141,-119.687,The Needle Rocks Hot Springs,Lovelock,Hotspring,208,98';
|
|
put '40.146,-119.673,The Needle Rocks Hot Spring,Lovelock,Hotspring,208,98';
|
|
put '40.662,-119.365,Great Boiling Spring (Gerlach),Lovelock,Hotspring,208,98';
|
|
put '39.388,-119.743,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.866,-118.017,Dixie Comstock Mine,Reno,Hotspring,H,H';
|
|
put '40.746,-116.689,White House Spring,Winnemucca,Hotspring,W,W';
|
|
put '39.98,-119.502,Pyramid Island Hot Spring,Reno,Hotspring,.,.';
|
|
put '41.934,-118.808,Warm Springs,Vya,Hotspring,W,W';
|
|
put '41.385,-116.058,Petaini Springs,Mcdermitt,Hotspring,W,W';
|
|
put '41.064,-115.389,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.066,-114.99,Spring,Wells,Hotspring,W,W';
|
|
put '41.355,-114.133,Warm Springs,Wells,Hotspring,W,W';
|
|
put '41.148,-116.733,Hot Lake,Mcdermitt,Hotspring,H,H';
|
|
put '40.684,-116.153,Ellison Ranch Warm Spring,Winnemucca,Hotspring,W,W';
|
|
put '40.604,-117.648,Leach Hot Springs,Winnemucca,Hotspring,207,97';
|
|
put '40.751,-115.035,Warm Springs,Elko,Hotspring,W,W';
|
|
put '40.782,-115.363,Warm Spring,Elko,Hotspring,W,W';
|
|
put '39.529,-116.388,Warm Spring,Millett,Hotspring,W,W';
|
|
put '39.072,-115.635,Big Blue Spring,Ely,Hotspring,W,W';
|
|
put '38.95,-119.388,Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.965,-118.689,Double Spring,Walker Lake,Hotspring,W,W';
|
|
put '38.458,-117.303,Indian Springs,Tonopah,Hotspring,W,W';
|
|
put '40.592,-116.157,Raine Ranch Springs,Winnemucca,Hotspring,W,W';
|
|
put '39.941,-116.681,Hot Springs,Millett,Hotspring,180,82';
|
|
put '40.567,-116.588,Beowawe Hot Springs (The Geysers),Winnemucca,Hotspring,208,98';
|
|
put '40.761,-117.492,Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '40.653,-119.378,Mud Springs,Lovelock,Hotspring,184,84';
|
|
put '38.768,-119.174,Wilson Hot Spring,Walker Lake,Hotspring,183,84';
|
|
put '41.921,-118.709,Baltazor Hot Spring,Vya,Hotspring,181,83';
|
|
put '40.857,-119.328,Fly Ranch (Wards) Hot Springs,Lovelock,Hotspring,180,82';
|
|
put '39.597,-119.11,Patua Hot Springs (Fernley),Reno,Hotspring,187,86';
|
|
put '39.028,-117.136,Mcleod Ranch Hot Spring,Millett,Hotspring,180,82';
|
|
put '40.316,-116.433,Hot Spring,Winnemucca,Hotspring,186,86';
|
|
put '38.521,-116.365,Hot Creek Ranch Hot Spring,Tonopah,Hotspring,180,82';
|
|
put '41.051,-119.028,Double Hot Springs,Vya,Hotspring,178,81';
|
|
put '40.003,-117.718,Hyder Hot Springs,Winnemucca,Hotspring,176,80';
|
|
put '39.665,-114.807,Monte Neva Hot Springs,Ely,Hotspring,176,80';
|
|
put '40.368,-117.327,Buffalo Valley Hot Springs,Winnemucca,Hotspring,174,79';
|
|
put '40.699,-116.133,Hot Springs (Carlin),Winnemucca,Hotspring,174,79';
|
|
put '41.052,-118.717,Macfarlane Hot Spring,Vya,Hotspring,170,77';
|
|
put '39.342,-118.578,Borax Spring,Reno,Hotspring,180,82';
|
|
put '39.484,-119.804,Moana Springs,Reno,Hotspring,199,93';
|
|
put '41.243,-114.947,Twelvemile Spring,Wells,Hotspring,102,39';
|
|
put '39.38,-119.74,Steamboat Springs,Reno,Hotspring,205,96';
|
|
put '39.558,-116.36,Bartine Hot Springs,Millett,Hotspring,108,42';
|
|
put '39.954,-117.917,Fumaroles,Millett,Hotspring,204,96';
|
|
put '40.389,-119.402,Hot Seeps (San Emidio Desert),Lovelock,Hotspring,203,95';
|
|
put '38.822,-117.183,Darroughs Hot Springs,Tonopah,Hotspring,203,95';
|
|
put '40.088,-117.725,Sou (Seven Devils) Hot Springs,Winnemucca,Hotspring,185,85';
|
|
put '41.363,-118.788,Pinto Hot Springs,Vya,Hotspring,199,93';
|
|
put '40.408,-117.883,Kyle Hot Springs,Winnemucca,Hotspring,171,77';
|
|
put '41.357,-118.809,West Pinto Hot Spring,Vya,Hotspring,198,92';
|
|
put '39.316,-117.549,Hot Springs,Millett,Hotspring,198,92';
|
|
put '41.468,-116.15,Hot Sulphur Springs (Tuscarora),Mcdermitt,Hotspring,194,90';
|
|
put '40.813,-115.778,Elko Hot Spring,Elko,Hotspring,190,88';
|
|
put '39.208,-118.723,"Lee Hot Springs, Allen Springs",Reno,Hotspring,190,88';
|
|
put '40.262,-119.379,Boiling Springs,Lovelock,Hotspring,187,86';
|
|
put '40.77,-119.113,Butte Springs (Trego Hot Springs),Lovelock,Hotspring,187,86';
|
|
put '39.161,-119.183,Wabuska Hot Springs,Reno,Hotspring,201,94';
|
|
put '39.814,-115.612,Giocoecha Warm Springs,Ely,Hotspring,76,24';
|
|
put '36.389,-114.433,Blue Point Spring,Las Vegas,Hotspring,82,28';
|
|
put '37.016,-117.211,Seep,Goldfield,Hotspring,77,25';
|
|
put '37.751,-116.274,Cedar Spring,Goldfield,Hotspring,77,25';
|
|
put '37.896,-114.227,Flatnose Ranch Spring,Caliente,Hotspring,77,25';
|
|
put '36.207,-115.983,Pahrump (Bennetts) Spring,Las Vegas,Hotspring,77,25';
|
|
put '41.775,-115.921,Rizzi Ranch Hot Spring,Wells,Hotspring,106,41';
|
|
put '35.944,-114.731,Hot Spring,Kingman,Hotspring,78,26';
|
|
put '41.884,-114.117,Gambles Hole,Wells,Hotspring,104,40';
|
|
put '36.565,-115.671,Indian Springs,Las Vegas,Hotspring,78,26';
|
|
put '39.547,-114.915,Campbell Ranch Springs,Ely,Hotspring,76,24';
|
|
put '38.423,-115.022,Flag Springs,Lund,Hotspring,75,24';
|
|
put '38.44,-115.011,Butterfield Springs,Lund,Hotspring,75,24';
|
|
put '37.997,-118.039,Fish Spring,Mariposa,Hotspring,75,24';
|
|
put '37.029,-116.719,Springs,Goldfield,Hotspring,75,24';
|
|
put '36.426,-116.411,Ash Tree Spring,Death Valley,Hotspring,75,24';
|
|
put '36.033,-115.888,Browns Spring,Las Vegas,Hotspring,75,24';
|
|
put '41.322,-119.206,Springs,Vya,Hotspring,75,24';
|
|
put '41.706,-118.261,Ninemile Springs,Vya,Hotspring,79,26';
|
|
put '35.964,-114.743,Hot Spring,Kingman,Hotspring,82,28';
|
|
put '41.763,-118.279,Fivemile Spring,Vya,Hotspring,81,27';
|
|
put '39.457,-119.722,Huffaker Springs,Reno,Hotspring,81,27';
|
|
put '38.992,-117.042,Charnock (Big Blue) Springs,Tonopah,Hotspring,80,27';
|
|
put '36.402,-116.302,Davis Ranch Springs,Death Valley,Hotspring,81,27';
|
|
put '36.45,-116.313,Spring,Death Valley,Hotspring,81,27';
|
|
put '39.792,-114.692,Lower Shellbourne Spring,Ely,Hotspring,77,25';
|
|
put '41.338,-119.168,Springs,Vya,Hotspring,79,26';
|
|
put '41.022,-119.275,Caine Spring,Vya,Hotspring,73,23';
|
|
put '41.05,-117.1,Hot Springs Ranch Springs,Mcdermitt,Hotspring,79,26';
|
|
put '40.079,-116.035,Flynn Ranch Springs,Winnemucca,Hotspring,78,26';
|
|
put '40.325,-116.058,Hot Springs,Winnemucca,Hotspring,79,26';
|
|
put '36.414,-116.292,Spring,Death Valley,Hotspring,79,26';
|
|
put '36.173,-115.191,Las Vegas Springs,Las Vegas,Hotspring,79,26';
|
|
put '36.174,-115.479,White Rock Spring,Las Vegas,Hotspring,78,26';
|
|
put '36.565,-115.623,Spring,Las Vegas,Hotspring,79,26';
|
|
put '36.491,-116.342,"Fairbanks Spring, Soda Spring",Death Valley,Hotspring,81,27';
|
|
put '38.654,-114.633,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '36.363,-116.271,Bole Spring,Death Valley,Hotspring,72,22';
|
|
put '36.999,-116.706,Spring,Death Valley,Hotspring,72,22';
|
|
put '36.942,-115.425,Ash Creek Spring,Las Vegas,Hotspring,72,22';
|
|
put '38.796,-119.65,Doud Springs,Walker Lake,Hotspring,70,21';
|
|
put '38.622,-115.047,Emigrant Springs,Lund,Hotspring,70,21';
|
|
put '38.927,-115.082,Preston Springs,Lund,Hotspring,70,21';
|
|
put '36.147,-115.893,Manse Ranch Spring,Las Vegas,Hotspring,75,24';
|
|
put '38.645,-114.632,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '38.574,-115.522,Tom Spring,Lund,Hotspring,72,22';
|
|
put '38.671,-114.628,Geyser Ranch Springs,Lund,Hotspring,70,21';
|
|
put '37.783,-114.528,Bennett Springs,Caliente,Hotspring,70,21';
|
|
put '37.86,-114.321,Delmues Springs,Caliente,Hotspring,70,21';
|
|
put '36.408,-116.313,Davis Ranch Spring,Death Valley,Hotspring,70,21';
|
|
put '36.567,-114.446,Seep,Las Vegas,Hotspring,70,21';
|
|
put '41.369,-114.187,Gamble Spring,Wells,Hotspring,69,20';
|
|
put '39.901,-115.868,Thompson Ranch Spring,Ely,Hotspring,68,20';
|
|
put '38.633,-114.638,Wambolt Springs,Lund,Hotspring,70,21';
|
|
put '37.906,-118.171,Sand Spring,Mariposa,Hotspring,74,23';
|
|
put '36.486,-114.329,Springs,Las Vegas,Hotspring,77,25';
|
|
put '41.354,-119.116,Mustang Springs,Vya,Hotspring,73,23';
|
|
put '41.746,-119.791,Warm Springs,Vya,Hotspring,73,23';
|
|
put '41.258,-118.937,Cane Springs,Vya,Hotspring,74,23';
|
|
put '40.103,-119.884,Fish Springs,Lovelock,Hotspring,73,23';
|
|
put '39.853,-119.719,Spring,Reno,Hotspring,73,23';
|
|
put '39.832,-116.069,Sulphur Spring,Millett,Hotspring,74,23';
|
|
put '36.363,-116.263,Spring,Death Valley,Hotspring,72,22';
|
|
put '38.554,-115.531,Kate Spring,Lund,Hotspring,73,23';
|
|
put '37.074,-116.691,Spring,Goldfield,Hotspring,72,22';
|
|
put '37.979,-117.993,Gap Spring,Goldfield,Hotspring,73,23';
|
|
put '41.591,-119.862,Twin (Vya) Spring,Vya,Hotspring,71,22';
|
|
put '40.763,-119.172,Coyote Spring,Lovelock,Hotspring,72,22';
|
|
put '40.127,-116.884,Springs,Winnemucca,Hotspring,72,22';
|
|
put '40.187,-116.805,Spring,Winnemucca,Hotspring,72,22';
|
|
put '40.967,-114.515,Johnson Ranch Springs,Elko,Hotspring,72,22';
|
|
put '36.205,-115.141,Kyle Spring,Las Vegas,Hotspring,75,24';
|
|
put '39.8,-114.653,Upper Shellbourne Spring,Ely,Hotspring,74,23';
|
|
put '36.428,-116.303,Button Springs,Death Valley,Hotspring,93,34';
|
|
put '38.383,-115.153,Hot Creek Ranch Spring,Lund,Hotspring,90,32';
|
|
put '39.283,-114.866,Lackawanna Hot Springs,Ely,Hotspring,95,35';
|
|
put '38.532,-116.465,Upper Warm Spring,Tonopah,Hotspring,95,35';
|
|
put '38.823,-116.717,South Mosquito Creek Ranch Springs,Tonopah,Hotspring,95,35';
|
|
put '40.829,-117.306,Brooks Spring,Winnemucca,Hotspring,93,34';
|
|
put '40.992,-117.763,Spring,Winnemucca,Hotspring,93,34';
|
|
put '41.971,-114.574,Warm Springs,Wells,Hotspring,95,35';
|
|
put '38.95,-115.7,Big Warm Spring,Lund,Hotspring,93,34';
|
|
put '37.463,-115.192,Ash Springs,Caliente,Hotspring,97,36';
|
|
put '36.464,-116.319,Parent Springs,Death Valley,Hotspring,93,34';
|
|
put '38.352,-115.181,Moon River Spring,Lund,Hotspring,92,33';
|
|
put '36.402,-116.274,"Point of Rocks Springs, King Sprin",Death Valley,Hotspring,91,33';
|
|
put '36.421,-116.322,Crystal Pool,Death Valley,Hotspring,91,33';
|
|
put '36.425,-116.291,Devils Hole,Death Valley,Hotspring,92,33';
|
|
put '39.068,-119.786,Springs,Reno,Hotspring,90,32';
|
|
put '38.954,-117.049,Big Blue (A) Spring,Tonopah,Hotspring,90,32';
|
|
put '40.087,-114.647,Collar And Elbow Spring,Elko,Hotspring,93,34';
|
|
put '36.378,-114.443,Rogers Spring,Las Vegas,Hotspring,82,28';
|
|
put '39.943,-116.073,Shipley Hot Spring,Millett,Hotspring,106,41';
|
|
put '38.698,-116.435,"Upper Warm Spring, Warm Spring",Tonopah,Hotspring,106,41';
|
|
put '41.53,-118.57,Spring,Vya,Hotspring,104,40';
|
|
put '41.877,-115.628,Rowland Hot Springs,Wells,Hotspring,104,40';
|
|
put '40.035,-117.604,Lower Ranch Hot Springs,Winnemucca,Hotspring,104,40';
|
|
put '40.187,-116.79,Chillis Hot Spring,Winnemucca,Hotspring,102,39';
|
|
put '39.988,-116.044,Siri Ranch Spring,Millett,Hotspring,95,35';
|
|
put '39.421,-119.758,Zolezzi Spring,Reno,Hotspring,102,39';
|
|
put '38.531,-116.405,Old Dugan Ranch Hot Springs,Tonopah,Hotspring,102,39';
|
|
put '36.968,-116.723,Burrell Hot Spring,Death Valley,Hotspring,102,39';
|
|
put '38.343,-118.103,Soda Springs,Walker Lake,Hotspring,100,38';
|
|
put '38.556,-115.767,"Lockes Big Spring, Hay Corral Spr",Lund,Hotspring,100,38';
|
|
put '38.594,-115.138,Moorman Spring,Lund,Hotspring,100,38';
|
|
put '38.398,-115.862,Storm Spring,Lund,Hotspring,99,37';
|
|
put '41.19,-115.287,Hot Spring,Wells,Hotspring,97,36';
|
|
put '37.822,-117.48,Pearl Hot Springs,Goldfield,Hotspring,97,36';
|
|
put '39.159,-119.737,Nevada State Prison Spring,Reno,Hotspring,75,24';
|
|
put '40.025,-117.646,Spring,Winnemucca,Hotspring,83,28';
|
|
put '40.83,-119.538,Springs,Lovelock,Hotspring,84,29';
|
|
put '39.442,-119.743,Double Diamond Spring,Reno,Hotspring,84,29';
|
|
put '39.413,-114.779,Mcgill Spring,Ely,Hotspring,84,29';
|
|
put '39.458,-114.756,Schoolhouse Spring,Ely,Hotspring,84,29';
|
|
put '36.375,-116.274,Big (Ash Meadows) Spring,Death Valley,Hotspring,83,28';
|
|
put '38.292,-114.272,Hammond Ranch Spring,Lund,Hotspring,84,29';
|
|
put '41.398,-119.165,Spring,Vya,Hotspring,84,29';
|
|
put '41.732,-119.785,Seeps (Hills Warm Spring),Vya,Hotspring,83,28';
|
|
put '38.563,-115.528,Blue Eagle Springs,Lund,Hotspring,84,29';
|
|
put '40.873,-117.937,Rose Creek Spring,Winnemucca,Hotspring,83,28';
|
|
put '39.917,-114.667,Spring,Ely,Hotspring,83,28';
|
|
put '36.39,-116.278,Jack Rabbit Spring,Death Valley,Hotspring,82,28';
|
|
put '36.437,-116.206,Spring,Death Valley,Hotspring,82,28';
|
|
put '38.937,-115.695,Little Warm Spring,Lund,Hotspring,90,32';
|
|
put '36.479,-116.326,Rogers Spring,Death Valley,Hotspring,82,28';
|
|
put '40.29,-116.049,Carlotti Ranch Springs,Winnemucca,Hotspring,102,39';
|
|
put '36.468,-116.325,Longstreet Spring,Death Valley,Hotspring,82,28';
|
|
put '36.722,-114.716,Muddy Spring,Las Vegas,Hotspring,90,32';
|
|
put '37.532,-115.233,Crystal Springs,Caliente,Hotspring,90,32';
|
|
put '37.598,-115.215,Hiko Spring,Caliente,Hotspring,90,32';
|
|
put '36.404,-116.383,Spring,Death Valley,Hotspring,90,32';
|
|
put '37.996,-116.389,Reveille Mill Spring,Goldfield,Hotspring,84,29';
|
|
put '36.71,-114.714,Moapa Warm Springs,Las Vegas,Hotspring,90,32';
|
|
put '35.982,-114.748,Hot Springs,Kingman,Hotspring,86,30';
|
|
put '40.929,-116.895,Izzenhood Ranch Springs,Winnemucca,Hotspring,88,31';
|
|
put '37.807,-114.38,Panaca Spring,Caliente,Hotspring,88,31';
|
|
put '36.942,-116.729,Spring,Death Valley,Hotspring,88,31';
|
|
put '41.98,-114.376,Hot Spring,Wells,Hotspring,86,30';
|
|
put '36.433,-116.308,Scruggs Springs,Death Valley,Hotspring,86,30';
|
|
put '40.952,-114.751,Ralphs Warm Springs,Elko,Hotspring,86,30';
|
|
put '39.526,-118.876,Soda Lake,Reno,Hotspring,86,30';
|
|
put '38.027,-116.683,Spring,Tonopah,Hotspring,86,30';
|
|
put '37.741,-115.753,Sand Spring,Caliente,Hotspring,86,30';
|
|
put '36.918,-116.744,Beatty Municipal Spring,Death Valley,Hotspring,88,31';
|
|
put '38.255,-116.829,Saulsbury Warm Spring,Tonopah,Hotspring,86,30';
|
|
put '42.48,-73.37,Lebanon Spring,Albany,Hotspring,72,22';
|
|
put '44.241,-122.058,Bigelow Hot Springs,Salem,Hotspring,142,61';
|
|
put '44.862,-121.201,Kahneeta Hot Springs,Bend,Hotspring,126,52';
|
|
put '44.927,-117.939,Radium Hot Springs,Baker,Hotspring,135,57';
|
|
put '44.354,-118.574,Blue Mountain Hot Springs,Canyon City,Hotspring,136,58';
|
|
put '44.936,-122.173,Bagby Hot Springs,Salem,Hotspring,136,58';
|
|
put '43.944,-118.136,Beulah Hot Springs,Burns,Hotspring,140,60';
|
|
put '43.763,-117.156,Mitchell Butte Hot Spring,Boise,Hotspring,144,62';
|
|
put '42.116,-121.287,Oregon Hot Springs (Big Hot Spring,Klamath Falls,Hotspring,142,61';
|
|
put '45.151,-118.659,Lehman Springs,Pendleton,Hotspring,142,61';
|
|
put '43.719,-121.209,East Lake Hot Springs,Crescent,Hotspring,144,62';
|
|
put '43.469,-118.202,Luce Hot Springs,Burns,Hotspring,145,63';
|
|
put '45.018,-117.625,Medical Hot Springs,Grangeville,Hotspring,140,60';
|
|
put '44.867,-121.228,Springs,Bend,Hotspring,125,52';
|
|
put '42.188,-118.383,Flagstaff Butte Hot Spring,Adel,Hotspring,126,52';
|
|
put '44.451,-119.105,Mount Vernon Hot Springs,Canyon City,Hotspring,121,49';
|
|
put '42.977,-117.061,Canters Hot Spring,Jordan Valley,Hotspring,120,49';
|
|
put '43.294,-122.367,Umpqua Hot Springs,Roseburg,Hotspring,117,47';
|
|
put '44.002,-119.647,Weberg Hot Spring,Canyon City,Hotspring,115,46';
|
|
put '43.739,-117.178,Deer Butte Hot Spring,Boise,Hotspring,115,46';
|
|
put '43.795,-117.958,Jonesboro Warm Spring,Boise,Hotspring,112,45';
|
|
put '42.075,-119.927,Hallinan Spring,Adel,Hotspring,113,45';
|
|
put '42.297,-119.776,Fisher Hot Springs,Adel,Hotspring,154,68';
|
|
put '45.013,-117.885,Kropp Hot Spring,Grangeville,Hotspring,109,43';
|
|
put '42.221,-120.368,Hunters Hot Springs,Klamath Falls,Hotspring,205,96';
|
|
put '44.083,-122.233,Cougar Reservoir Hot Springs,Salem,Hotspring,111,44';
|
|
put '44.023,-117.46,Neal Hot Springs,Baker,Hotspring,189,87';
|
|
put '42.431,-121.963,Eagle Point Spring,Klamath Falls,Hotspring,95,35';
|
|
put '43.689,-122.372,Kitson Hot Springs,Roseburg,Hotspring,109,43';
|
|
put '44.813,-117.765,Spring (Hot),Baker,Hotspring,W,W';
|
|
put '43.776,-118.047,Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.793,-118.472,Sitz Warm Spring,Burns,Hotspring,W,W';
|
|
put '43.86,-118.288,Altnow Hot Spring,Burns,Hotspring,W,W';
|
|
put '43.893,-117.596,Springs,Boise,Hotspring,W,W';
|
|
put '45.206,-117.912,Union Station Hot Springs,Grangeville,Hotspring,H,H';
|
|
put '44.208,-117.455,Jamieson Hot Springs,Baker,Hotspring,H,H';
|
|
put '42.338,-118.602,Hot Springs,Adel,Hotspring,207,97';
|
|
put '44.782,-121.975,Breitenbush Hot Springs,Bend,Hotspring,198,92';
|
|
put '42.219,-119.877,Warner Valley Ranch,Adel,Hotspring,198,92';
|
|
put '42.156,-120.345,Barry Ranch Hot Springs,Klamath Falls,Hotspring,190,88';
|
|
put '44.193,-122.049,Belknap Springs,Salem,Hotspring,160,71';
|
|
put '45.021,-122.009,Austin Hot Springs,Vancouver,Hotspring,186,86';
|
|
put '42.676,-118.344,Mickey Springs,Adel,Hotspring,187,86';
|
|
put '44.153,-122.098,Foley Springs,Salem,Hotspring,178,81';
|
|
put '45.244,-117.958,Hot Lake Springs,Grangeville,Hotspring,176,80';
|
|
put '42.544,-118.533,Alvord Hot Springs,Adel,Hotspring,174,79';
|
|
put '43.441,-118.638,Crane Hot Springs,Burns,Hotspring,172,78';
|
|
put '42.226,-119.881,Crump Geyser (Crump Spring),Adel,Hotspring,172,78';
|
|
put '43.727,-117.203,Snively Hot Spring,Boise,Hotspring,170,77';
|
|
put '42.174,-121.615,Olene Gap Hot Springs,Klamath Falls,Hotspring,165,74';
|
|
put '43.708,-122.288,Mccredie Springs,Roseburg,Hotspring,163,73';
|
|
put '43.982,-117.233,Vale Hot Springs,Boise,Hotspring,163,73';
|
|
put '42.162,-120.344,Leithead Hot Spring,Klamath Falls,Hotspring,162,72';
|
|
put '45.372,-121.697,Mount Hood Fumaroles,The Dalles,Hotspring,194,90';
|
|
put '43.264,-119.015,Dunn Spring,Burns,Hotspring,70,21';
|
|
put '42.873,-122.167,Annie Spring,Medford,Hotspring,77,25';
|
|
put '42.133,-121.219,Wilkersons Hot Spring,Klamath Falls,Hotspring,76,24';
|
|
put '43.272,-119.293,Basque Spring,Burns,Hotspring,74,23';
|
|
put '43.276,-119.34,Double O Spring,Burns,Hotspring,74,23';
|
|
put '44.073,-119.427,Brisbois Ranch Springs,Canyon City,Hotspring,72,22';
|
|
put '43.265,-119.276,Johnson Spring,Burns,Hotspring,72,22';
|
|
put '43.281,-119.311,Double O Barnyard Spring,Burns,Hotspring,72,22';
|
|
put '43.501,-119.091,Roadland Spring,Burns,Hotspring,72,22';
|
|
put '43.529,-119.081,Goodman Spring,Burns,Hotspring,72,22';
|
|
put '43.703,-117.19,South Black Willow Spring,Boise,Hotspring,71,22';
|
|
put '42.307,-119.875,Moss Ranch Spring,Adel,Hotspring,72,22';
|
|
put '43.758,-118.067,Juntura Warm Spring 1,Burns,Hotspring,77,25';
|
|
put '43.732,-121.252,Paulina Springs,Crescent,Hotspring,70,21';
|
|
put '42.176,-121.828,Howard Holiday,Klamath Falls,Hotspring,77,25';
|
|
put '43.477,-119.075,Baker Spring,Burns,Hotspring,70,21';
|
|
put '42.178,-121.801,Hardboard Spring,Klamath Falls,Hotspring,70,21';
|
|
put '42.325,-120.327,White Rock Ranch Hot Spring,Klamath Falls,Hotspring,71,21';
|
|
put '43.252,-119.258,Hughet Spring,Burns,Hotspring,68,20';
|
|
put '42.38,-120.33,Bean Hot Spring,Klamath Falls,Hotspring,69,20';
|
|
put '42.933,-120.642,Lost Cabin Spring,Klamath Falls,Hotspring,68,20';
|
|
put '42.998,-120.725,Buckhorn Creek Springs,Klamath Falls,Hotspring,68,20';
|
|
put '42.688,-117.905,Tudors Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.756,-117.55,Scott Spring,Jordan Valley,Hotspring,68,20';
|
|
put '42.725,-120.646,Summer Lake Hot Spring,Klamath Falls,Hotspring,109,43';
|
|
put '43.757,-118.092,Juntura Warm Spring 2,Burns,Hotspring,95,35';
|
|
put '44.374,-118.738,Limekiln Hot Spring,Canyon City,Hotspring,70,21';
|
|
put '42.221,-122.742,Jackson Hot Springs,Medford,Hotspring,95,35';
|
|
put '44.892,-119.141,Ritter Hot Springs,Canyon City,Hotspring,106,41';
|
|
put '43.808,-122.309,Wall Creek Warm Springs,Roseburg,Hotspring,106,41';
|
|
put '43.395,-118.308,Springs (Hot),Burns,Hotspring,106,41';
|
|
put '43.302,-117.383,Hot Spring,Boise,Hotspring,106,41';
|
|
put '44.28,-118.956,Joaquin Miller Hot Springs,Canyon City,Hotspring,104,40';
|
|
put '42.501,-119.693,Antelope Hot Springs,Adel,Hotspring,104,40';
|
|
put '45.129,-118.738,Hidaway Springs,Pendleton,Hotspring,100,38';
|
|
put '44.975,-118.044,Fisher Hot Springs,Canyon City,Hotspring,99,37';
|
|
put '44.033,-117.449,Bully Creek Spring,Baker,Hotspring,99,37';
|
|
put '42.93,-120.798,Pardon Warm Spring,Klamath Falls,Hotspring,76,24';
|
|
put '42.327,-118.602,Borax Lake (Hot Lake),Adel,Hotspring,97,36';
|
|
put '42.161,-121.627,Crystal Spring,Klamath Falls,Hotspring,78,26';
|
|
put '45.741,-118.233,Bingham Springs,Pendleton,Hotspring,93,34';
|
|
put '42.889,-118.898,Fivemile Spring (Hoghouse Hot Sprs,Adel,Hotspring,80,27';
|
|
put '43.54,-119.081,Millpond Hot Spring,Burns,Hotspring,79,26';
|
|
put '45.891,-116.873,Cook Creek Hot Spring,Grangeville,Hotspring,97,36';
|
|
put '45.295,-121.731,Swim Warm Springs,The Dalles,Hotspring,79,26';
|
|
put '42.04,-120.924,Warm Spring,Klamath Falls,Hotspring,92,33';
|
|
put '44.779,-117.811,Sam O Spring,Baker,Hotspring,80,27';
|
|
put '44.538,-117.417,Nelson Spring,Baker,Hotspring,80,27';
|
|
put '45.631,-119.703,Well Spring,Pendleton,Hotspring,80,27';
|
|
put '42.287,-119.867,Moss Ranch Springs,Adel,Hotspring,83,28';
|
|
put '45.061,-118.455,Warm Mineral Spring,Pendleton,Hotspring,83,28';
|
|
put '43.95,-119.634,Warm Springs,Burns,Hotspring,84,29';
|
|
put '45.295,-117.806,Warm Spring,Grangeville,Hotspring,85,29';
|
|
put '42.815,-118.899,Warm Springs,Adel,Hotspring,89,32';
|
|
put '43.452,-103.508,Hot Brook Springs,Hot Springs,Hotspring,75,24';
|
|
put '43.442,-103.481,Hot Springs,Hot Springs,Hotspring,87,31';
|
|
put '29.178,-102.953,Rio Grande Village Spring,Emory Peak,Hotspring,97,36';
|
|
put '30.823,-105.315,Indian Hot Springs,Marfa,Hotspring,117,47';
|
|
put '30.038,-104.598,Ruidosa Hot Springs,Marfa,Hotspring,113,45';
|
|
put '29.182,-102.992,Hot Springs,Emory Peak,Hotspring,106,41';
|
|
put '30.21,-104.562,Capote Springs,Marfa,Hotspring,99,37';
|
|
put '30.133,-104.602,Nixon Spring,Marfa,Hotspring,90,32';
|
|
put '29.787,-104.462,Springs (Las Cienegas),Presidio,Hotspring,86,30';
|
|
put '30.861,-105.34,Red Bull Spring,Marfa,Hotspring,99,37';
|
|
put '38.85,-112.49,Hatton Hot Spring,Richfield,Hotspring,100,38';
|
|
put '40.176,-111.801,Bird Island,Salt Lake City,Hotspring,86,30';
|
|
put '41.917,-111.958,Gancheff Spring,Ogden,Hotspring,88,31';
|
|
put '37.942,-112.438,Lefevre,Cedar City,Hotspring,90,32';
|
|
put '37.335,-113.687,Veyo Hot Spring,Cedar City,Hotspring,90,32';
|
|
put '40.332,-111.891,Fault Zone Spring,Salt Lake City,Hotspring,90,32';
|
|
put '40.146,-111.806,Lincoln Point Warm Springs,Salt Lake City,Hotspring,90,32';
|
|
put '38.186,-112.912,Us Blm,Richfield,Hotspring,91,33';
|
|
put '41.833,-112.454,Blue Creek Spring,Brigham City,Hotspring,82,28';
|
|
put '40.526,-111.488,Midway Hot Springs,Salt Lake City,Hotspring,100,38';
|
|
put '40.525,-111.468,Midway Hot Springs,Salt Lake City,Hotspring,104,40';
|
|
put '40.038,-111.529,Castilla Springs,Salt Lake City,Hotspring,104,40';
|
|
put '38.217,-112.904,Dotsons (Radium) Warm Spring,Richfield,Hotspring,91,33';
|
|
put '40.465,-109.221,Split Mountain Warm Springs,Vernal,Hotspring,86,30';
|
|
put '40.788,-112.017,Hobo Warm Spring,Tooele,Hotspring,84,29';
|
|
put '40.788,-111.899,Wasatch Hot Springs,Salt Lake City,Hotspring,108,42';
|
|
put '39.35,-113.515,Tule Spring,Delta,Hotspring,82,28';
|
|
put '39.424,-113.485,Coyote Spring,Delta,Hotspring,82,28';
|
|
put '39.842,-113.392,Fish Springs,Delta,Hotspring,82,28';
|
|
put '39.887,-113.413,North Springs,Delta,Hotspring,82,28';
|
|
put '41.756,-113.603,Warm Spring,Brigham City,Hotspring,81,27';
|
|
put '41.038,-111.656,Como Springs,Ogden,Hotspring,81,27';
|
|
put '40.397,-112.421,Morgans Warm Spring,Tooele,Hotspring,80,27';
|
|
put '39.464,-114.038,Gandy Warm Springs,Ely,Hotspring,81,27';
|
|
put '40.447,-110.828,Warm Springs,Salt Lake City,Hotspring,79,26';
|
|
put '37.7,-110.421,Warm Spring,Escalante,Hotspring,79,26';
|
|
put '40.502,-114.038,Blue Lake Spring,Elko,Hotspring,84,29';
|
|
put '38.503,-112.849,Roosevelt Hot Springs,Richfield,Hotspring,133,56';
|
|
put '38.774,-112.096,Richfield Warm Springs,Richfield,Hotspring,73,23';
|
|
put '40.488,-111.911,Crystal Hot Springs,Salt Lake City,Hotspring,187,86';
|
|
put '38.186,-113.197,Thermo Hot Springs,Richfield,Hotspring,185,85';
|
|
put '38.172,-113.204,Thermo Hot Springs,Richfield,Hotspring,181,83';
|
|
put '39.613,-112.729,"Baker (Abraham, Crater) Hot Spring",Delta,Hotspring,180,82';
|
|
put '38.639,-112.098,Red Hill Hot Spring,Richfield,Hotspring,171,77';
|
|
put '38.633,-112.107,Monroe (Cooper) Hot Springs,Richfield,Hotspring,169,76';
|
|
put '38.613,-112.202,Joseph Hot Springs,Richfield,Hotspring,147,64';
|
|
put '39.906,-113.43,Wilson Health Springs,Delta,Hotspring,142,61';
|
|
put '41.138,-112.175,Hooper Hot Springs,Brigham City,Hotspring,140,60';
|
|
put '41.338,-112.031,Utah Hot Springs,Brigham City,Hotspring,138,59';
|
|
put '38.864,-112.506,Meadow Hot Springs,Richfield,Hotspring,106,41';
|
|
put '40.815,-111.918,Becks Hot Spring,Salt Lake City,Hotspring,133,56';
|
|
put '37.189,-113.272,Dixie (Laverkin) Hot Springs,Cedar City,Hotspring,108,42';
|
|
put '41.659,-112.087,Crystal (Madsens) Hot Springs,Brigham City,Hotspring,129,54';
|
|
put '41.855,-112.158,Udy Hot Springs,Brigham City,Hotspring,124,51';
|
|
put '41.578,-112.23,Stinking Hot Springs,Brigham City,Hotspring,118,48';
|
|
put '40.517,-111.475,Midway Hot Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.536,-111.478,Warm Ditch Spring,Salt Lake City,Hotspring,115,46';
|
|
put '40.35,-111.905,Saratoga Hot Springs,Salt Lake City,Hotspring,111,44';
|
|
put '40.353,-111.895,Crater Hot Spring,Salt Lake City,Hotspring,111,44';
|
|
put '41.901,-112.999,Coyote Spring,Brigham City,Hotspring,109,43';
|
|
put '41.687,-113.986,Spring (Hot),Brigham City,Hotspring,108,42';
|
|
put '41.582,-112.256,Little Mountain Hot Spring,Brigham City,Hotspring,108,42';
|
|
put '41.822,-113.263,L.G. Carter Springs,Brigham City,Hotspring,77,25';
|
|
put '41.236,-111.924,Ogden Hot Spring,Ogden,Hotspring,135,57';
|
|
put '37.178,-113.634,Snow Spring,Cedar City,Hotspring,70,21';
|
|
put '38.34,-113.22,Woodhouse Spring,Richfield,Hotspring,72,22';
|
|
put '38.155,-112.901,Willow Spring,Richfield,Hotspring,72,22';
|
|
put '38.56,-112.578,Sulphurdale,Richfield,Hotspring,72,22';
|
|
put '38.981,-111.829,Salt Spring,Salina,Hotspring,72,22';
|
|
put '37.174,-112.535,Red Canyon,Cedar City,Hotspring,72,22';
|
|
put '41.808,-113.327,W.R. Carter Springs,Brigham City,Hotspring,70,21';
|
|
put '41.818,-113.311,Larson Springs,Brigham City,Hotspring,70,21';
|
|
put '41.829,-113.654,Head Spring,Brigham City,Hotspring,70,21';
|
|
put '40.653,-112.907,Redlum Spring,Tooele,Hotspring,70,21';
|
|
put '40.458,-111.929,Camp Williams,Salt Lake City,Hotspring,70,21';
|
|
put '40.647,-112.524,Grantsville Warm Springs,Tooele,Hotspring,77,25';
|
|
put '39.183,-111.691,Sterling (Peacock) Warm Spring,Price,Hotspring,72,22';
|
|
put '39.246,-111.645,Livingston Warm Springs,Price,Hotspring,73,23';
|
|
put '38.138,-112.863,Big Maple Spring,Richfield,Hotspring,70,21';
|
|
put '37.393,-113.61,Irvine Spring,Cedar City,Hotspring,70,21';
|
|
put '41.563,-113.954,Kimber (Rose) Spring,Brigham City,Hotspring,68,20';
|
|
put '41.614,-113.613,Warm Spring,Brigham City,Hotspring,68,20';
|
|
put '41.328,-111.826,Patio Springs,Ogden,Hotspring,68,20';
|
|
put '40.172,-112.426,Davis,Tooele,Hotspring,68,20';
|
|
put '40.118,-111.337,Diamond Fork Warm Springs,Salt Lake City,Hotspring,68,20';
|
|
put '39.249,-113.877,Knoll Springs,Delta,Hotspring,68,20';
|
|
put '39.403,-113.863,Twin Springs,Delta,Hotspring,68,20';
|
|
put '39.788,-111.881,Ray Lunt Spring,Price,Hotspring,68,20';
|
|
put '38.762,-112.87,Springs,Richfield,Hotspring,68,20';
|
|
put '38.77,-112.871,Coyote Spring,Richfield,Hotspring,68,20';
|
|
put '37.937,-112.424,Tebbs,Cedar City,Hotspring,68,20';
|
|
put '37.096,-113.447,Warner Valley Spring,Cedar City,Hotspring,70,21';
|
|
put '40.565,-112.738,Deseret Livestock South Springs,Tooele,Hotspring,73,23';
|
|
put '37.158,-113.399,Virgin River Spring,Cedar City,Hotspring,70,21';
|
|
put '39.899,-112.045,Springs,Delta,Hotspring,72,22';
|
|
put '38.603,-112.111,Johnson Warm Spring,Richfield,Hotspring,77,25';
|
|
put '41.722,-112.266,Bothwell Warm Springs,Brigham City,Hotspring,75,24';
|
|
put '40.538,-112.747,Deseret Livestock,Tooele,Hotspring,75,24';
|
|
put '40.733,-112.621,Utah Fish And Game Dept,Tooele,Hotspring,75,24';
|
|
put '40.228,-111.867,Warm Springs,Salt Lake City,Hotspring,75,24';
|
|
put '37.137,-113.513,Warm Spring,Cedar City,Hotspring,75,24';
|
|
put '37.138,-113.528,Green Spring,Cedar City,Hotspring,75,24';
|
|
put '37.166,-113.383,Berry Springs,Cedar City,Hotspring,75,24';
|
|
put '41.834,-112.054,Cutler Warm Spring,Brigham City,Hotspring,73,23';
|
|
put '40.614,-112.709,Horseshoe Springs,Tooele,Hotspring,73,23';
|
|
put '41.239,-112.413,Compton Spring,Brigham City,Hotspring,72,22';
|
|
put '40.743,-112.642,Big Warm Springs,Tooele,Hotspring,72,22';
|
|
put '40.558,-112.739,Deseret Livestock South Spring,Tooele,Hotspring,72,22';
|
|
put '40.39,-112.424,Russells Warm Springs,Tooele,Hotspring,72,22';
|
|
put '41.831,-113.391,Pugsley,Brigham City,Hotspring,73,23';
|
|
put '41.449,-112.442,Poulsen Spring (Salt),Brigham City,Hotspring,72,22';
|
|
put '40.167,-111.622,Wood Springs,Salt Lake City,Hotspring,73,23';
|
|
put '40.234,-111.865,Warm Springs,Salt Lake City,Hotspring,77,25';
|
|
put '39.955,-111.858,Goshen Warm Srings,Price,Hotspring,73,23';
|
|
put '39.334,-113.518,South Tule Spring,Delta,Hotspring,77,25';
|
|
put '39.616,-112.803,Fumarole Butte,Delta,Hotspring,73,23';
|
|
put '40.545,-111.928,East Jordan Canal,Salt Lake City,Hotspring,73,23';
|
|
put '41.643,-112.281,Springs,Brigham City,Hotspring,72,22';
|
|
put '37.29,-80.619,New River White Sulphur Springs,Bluefield,Hotspring,85,29';
|
|
put '37.997,-79.83,Hot Springs,Roanoke,Hotspring,106,41';
|
|
put '37.898,-79.462,Rockbridge Baths,Roanoke,Hotspring,72,22';
|
|
put '38.055,-79.78,Warm Springs,Charlottesvill,Hotspring,95,35';
|
|
put '37.963,-79.861,Healing Springs,Roanoke,Hotspring,86,30';
|
|
put '38.238,-79.65,Bragg Spring,Charlottesvill,Hotspring,75,24';
|
|
put '37.645,-80.238,Sweet Chalybeate Spring,Bluefield,Hotspring,75,24';
|
|
put '38.218,-79.673,Bolar Spring,Charlottesvill,Hotspring,73,23';
|
|
put '37.86,-79.988,Layton Spring,Roanoke,Hotspring,72,22';
|
|
put '37.87,-79.933,Falling Spring,Roanoke,Hotspring,77,25';
|
|
put '37.16,-80.806,Alum Springs,Bluefield,Hotspring,72,22';
|
|
put '46.852,-121.758,Mt Rainier Fumaroles,Yakima,Hotspring,162,72';
|
|
put '46.738,-121.562,Ohanapecosh Hot Springs,Yakima,Hotspring,122,50';
|
|
put '47.707,-121.155,Scenic Hot Springs,Wenatchee,Hotspring,122,50';
|
|
put '47.969,-123.864,Sol Duc Hot Springs,Seattle,Hotspring,122,50';
|
|
put '48.974,-119.475,Hot Lake,Okanogan,Hotspring,122,50';
|
|
put '45.658,-121.962,Moffetts (Bonneville) Hot Springs,The Dalles,Hotspring,97,36';
|
|
put '48.906,-119.455,Poison Lake,Okanogan,Hotspring,122,50';
|
|
put '45.701,-121.728,Collins Hot Springs,The Dalles,Hotspring,122,50';
|
|
put '47.484,-121.391,Goldmeyer Hot Springs,Wenatchee,Hotspring,127,53';
|
|
put '46.202,-121.492,Mount Adams Fumaroles,Yakima,Hotspring,150,66';
|
|
put '46.198,-122.197,Mt St Helens Fumaroles,Hoquiam,Hotspring,190,88';
|
|
put '48.789,-121.804,Dorr Fumarole Field,Concrete,Hotspring,194,90';
|
|
put '48.77,-121.813,Sherman Crater Fumaroles,Concrete,Hotspring,266,130';
|
|
put '45.723,-121.927,Rock Creek Hot Springs,The Dalles,Hotspring,H,H';
|
|
put '48.15,-121.062,Gamma Hot Springs,Concrete,Hotspring,140,60';
|
|
put '46.378,-122.265,Green River Soda Spring,Hoquiam,Hotspring,86,30';
|
|
put '46.575,-121.706,Packwood Hot Spring,Yakima,Hotspring,100,38';
|
|
put '47.201,-121.536,Lester Hot Springs,Wenatchee,Hotspring,120,49';
|
|
put '46.024,-118.771,Warm Springs Canyon Warm Spring,Walla Walla,Hotspring,72,22';
|
|
put '46.345,-121.6,Orr Creek Warm Springs,Yakima,Hotspring,72,22';
|
|
put '46.041,-121.181,Fish Hatchery Warm Spring,Yakima,Hotspring,75,24';
|
|
put '46.752,-121.814,Longmire Mineral Springs,Yakima,Hotspring,77,25';
|
|
put '47.892,-121.342,Garland Mineral Springs,Wenatchee,Hotspring,84,29';
|
|
put '46.452,-120.956,Simcoe Soda Springs,Yakima,Hotspring,90,32';
|
|
put '48.254,-121.17,Sulphur Creek Hot Springs,Concrete,Hotspring,99,37';
|
|
put '48.118,-121.192,Kennedy Hot Spring,Concrete,Hotspring,100,38';
|
|
put '48.763,-121.667,Baker Hot Spring,Concrete,Hotspring,108,42';
|
|
put '47.977,-123.682,Olympic Hot Springs,Seattle,Hotspring,118,48';
|
|
put '45.728,-121.8,St Martins Hot Springs,The Dalles,Hotspring,120,49';
|
|
put '45.821,-121.133,Klickitat Mineral Springs,The Dalles,Hotspring,81,27';
|
|
put '38.163,-79.975,Minnehaha Springs,Charlottesvill,Hotspring,70,21';
|
|
put '37.63,-80.24,Old Sweet Spring,Bluefield,Hotspring,73,23';
|
|
put '39.618,-78.23,Berkeley Springs,Cumberland,Hotspring,72,22';
|
|
put '38.605,-79.353,Thorn Spring,Charlottesvill,Hotspring,72,22';
|
|
put '39.471,-77.877,Swan Pond Spring,Baltimore,Hotspring,72,22';
|
|
put '44.29,-110.504,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.691,-110.728,Geyser Springs Group,Ashton,Hotspring,201,94';
|
|
put '44.554,-110.812,Fountain Group,Ashton,Hotspring,201,94';
|
|
put '44.543,-110.859,Fairy Springs,Ashton,Hotspring,201,94';
|
|
put '44.485,-110.852,"Biscuit Basin, Sapphire Pool",Ashton,Hotspring,201,94';
|
|
put '44.48,-110.85,Cascade Group,Ashton,Hotspring,201,94';
|
|
put '44.46,-110.844,Black Sand Basin,Ashton,Hotspring,201,94';
|
|
put '44.459,-110.835,Myriad Group,Ashton,Hotspring,201,94';
|
|
put '44.307,-110.526,"Hot Springs,heart Lake Geyser Basi",Ashton,Hotspring,201,94';
|
|
put '44.354,-110.8,Shoshone Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.568,-110.805,Quagmire Group,Ashton,Hotspring,203,95';
|
|
put '44.537,-110.801,"White Dome Geyser, Surprise Pool",Ashton,Hotspring,203,95';
|
|
put '44.52,-110.828,Flood Group,Ashton,Hotspring,203,95';
|
|
put '44.471,-110.843,"Daisy Group, Sentinel Geysers",Ashton,Hotspring,203,95';
|
|
put '44.466,-110.839,"Middle Group,tortoise Shell,inkwel",Ashton,Hotspring,203,95';
|
|
put '44.46,-110.828,"Geyser Hill Group, Old Faithful Ge",Ashton,Hotspring,203,95';
|
|
put '44.908,-110.393,Calcite Springs,Ashton,Hotspring,201,94';
|
|
put '44.417,-110.57,West Thumb Geyser Basin,Ashton,Hotspring,203,95';
|
|
put '44.459,-110.817,Southeastern Group,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.581,Potts Hot Spring Basin,Ashton,Hotspring,203,95';
|
|
put '44.421,-110.952,Smoke Jumper Hot Springs,Ashton,Hotspring,198,92';
|
|
put '44.684,-110.753,Monument Geyser Basin,Ashton,Hotspring,197,92';
|
|
put '44.679,-110.746,Beryl Spring,Ashton,Hotspring,198,92';
|
|
put '44.544,-110.258,Turbid Springs,Ashton,Hotspring,198,92';
|
|
put '44.53,-110.297,Steamboat Springs,Ashton,Hotspring,198,92';
|
|
put '44.518,-110.813,"Hot Springs, Rabbit Creek Group",Ashton,Hotspring,198,92';
|
|
put '44.514,-110.828,Rabbit Creek Group,Ashton,Hotspring,198,92';
|
|
put '44.484,-110.873,Mystic Falls Springs,Ashton,Hotspring,198,92';
|
|
put '44.739,-110.324,Josephs Coat Springs,Ashton,Hotspring,199,93';
|
|
put '44.75,-110.714,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.282,-110.506,Rustic Geyser,Ashton,Hotspring,199,93';
|
|
put '44.571,-110.811,Morning Mist Springs,Ashton,Hotspring,205,96';
|
|
put '44.733,-110.703,Cistern Spring,Ashton,Hotspring,199,93';
|
|
put '44.697,-110.724,Gibbon Hill Geyser,Ashton,Hotspring,199,93';
|
|
put '44.693,-110.738,Artists Paintpots,Ashton,Hotspring,199,93';
|
|
put '44.69,-110.384,Hot Springs on Bog Creek,Ashton,Hotspring,199,93';
|
|
put '44.526,-110.835,Excelsior Geyser Crater,Ashton,Hotspring,199,93';
|
|
put '44.418,-110.805,Lone Star Geyser,Ashton,Hotspring,199,93';
|
|
put '44.309,-110.654,Hot Springs on Lewis Lake,Ashton,Hotspring,199,93';
|
|
put '44.469,-110.828,Solitary Geyser,Ashton,Hotspring,198,92';
|
|
put '44.433,-110.813,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.766,-110.3,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.61,-110.438,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.607,-110.617,Hot Springs East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.601,-110.632,Gas Vent East of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.595,-110.622,Gas Vents Southeast of Mary Lake,Ashton,Hotspring,H,H';
|
|
put '44.572,-110.691,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.553,-110.301,Beach Springs,Ashton,Hotspring,H,H';
|
|
put '44.551,-110.85,Springs on Fairy Creek,Ashton,Hotspring,H,H';
|
|
put '44.616,-110.616,Highland Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.438,-110.977,Hot Springs on Continental Divide,Ashton,Hotspring,H,H';
|
|
put '44.617,-110.432,Mud Geysers,Ashton,Hotspring,H,H';
|
|
put '44.404,-110.824,Hot Springs on Upper Firehole Rive,Ashton,Hotspring,H,H';
|
|
put '44.498,-109.193,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.495,-109.222,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.482,-109.204,Buffalo Bill Reservoir Springs,Cody,Hotspring,W,W';
|
|
put '44.841,-110.167,"Hot, on Lamar River",Ashton,Hotspring,W,W';
|
|
put '44.734,-110.029,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.708,-110.471,Warm Spring,Ashton,Hotspring,W,W';
|
|
put '44.701,-110.036,Hot Springs,Ashton,Hotspring,W,W';
|
|
put '44.508,-110.832,Midway Picnic Ground,Ashton,Hotspring,H,H';
|
|
put '44.715,-110.555,Gas Vents,Ashton,Hotspring,H,H';
|
|
put '44.563,-110.834,River Group,Ashton,Hotspring,205,96';
|
|
put '44.544,-110.788,"Black Warrior Group, Shelf Spring",Ashton,Hotspring,205,96';
|
|
put '44.115,-110.684,Huckleberry Hot Springs,Ashton,Hotspring,B,B';
|
|
put '44.842,-110.732,Apollinaris Spring,Ashton,Hotspring,H,H';
|
|
put '44.825,-110.675,Gas Vents at Horseshoe Hill,Ashton,Hotspring,H,H';
|
|
put '44.781,-110.738,Steam Vents at Roaring Mountain,Ashton,Hotspring,H,H';
|
|
put '44.743,-110.242,Hot Spring Basin Group,Ashton,Hotspring,198,92';
|
|
put '44.752,-110.256,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.612,-110.618,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.741,-110.699,Gas Vent,Ashton,Hotspring,H,H';
|
|
put '44.566,-110.871,"Flat Cone Spring, Steep Cone",Ashton,Hotspring,205,96';
|
|
put '44.711,-110.468,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.708,-110.461,Forest Springs,Ashton,Hotspring,H,H';
|
|
put '44.672,-110.236,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.667,-110.282,Hot Springs,Ashton,Hotspring,H,H';
|
|
put '44.656,-110.572,Violet Springs,Ashton,Hotspring,H,H';
|
|
put '44.642,-110.238,Hot Spring,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.234,The Mudkettles,Ashton,Hotspring,H,H';
|
|
put '44.634,-110.226,The Mushpots,Ashton,Hotspring,H,H';
|
|
put '44.532,-110.874,"Imperial Geyser, Spray Geyser",Ashton,Hotspring,192,89';
|
|
put '42.545,-106.725,Alcova Hot Springs,Casper,Hotspring,129,54';
|
|
put '42.75,-109.616,Steele Hot Springs,Lander,Hotspring,102,39';
|
|
put '43.37,-110.445,Granite Hot Spring,Driggs,Hotspring,106,41';
|
|
put '43.008,-108.835,Washakie Mineral Hot Springs,Thermopolis,Hotspring,111,44';
|
|
put '43.907,-110.198,North Buffalo Fork Springs,Driggs,Hotspring,113,45';
|
|
put '43.365,-110.443,Granite Falls Hot Springs,Driggs,Hotspring,112,45';
|
|
put '42.817,-110.997,Johnson Springs,Preston,Hotspring,115,46';
|
|
put '44.723,-110.358,Hot Spring on Moss Creek,Ashton,Hotspring,115,46';
|
|
put '44.681,-110.326,Hot Springs on Upper Sour Creek,Ashton,Hotspring,194,90';
|
|
put '41.45,-106.804,Saratoga Hot Springs,Rawlins,Hotspring,129,54';
|
|
put '44.671,-110.786,Secret Valley Hot Springs,Ashton,Hotspring,95,35';
|
|
put '44.625,-110.433,Mud Volcano,Ashton,Hotspring,131,55';
|
|
put '43.654,-108.194,Thermopolis Hot Springs,Thermopolis,Hotspring,133,56';
|
|
put '44.985,-110.689,Hot River,Ashton,Hotspring,136,58';
|
|
put '44.588,-110.341,Ebro Springs,Ashton,Hotspring,136,58';
|
|
put '44.55,-110.805,Fountain Paint Pot,Ashton,Hotspring,136,58';
|
|
put '44.169,-110.583,Snake Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.157,-110.699,Crawfish Creek Hot Springs,Ashton,Hotspring,136,58';
|
|
put '44.165,-110.723,Crawfish Creek Hot Springs,Ashton,Hotspring,138,59';
|
|
put '44.711,-110.741,Chocolate Pots,Ashton,Hotspring,124,51';
|
|
put '43.56,-109.732,Geyser (Warm Spring Creek Springs),Thermopolis,Hotspring,84,29';
|
|
put '43.489,-109.605,Jakeys Fork Spring,Thermopolis,Hotspring,68,20';
|
|
put '44.749,-108.188,Little Sheep Mountain Spring,Cody,Hotspring,68,20';
|
|
put '42.249,-104.781,Warm Springs (Immigrants Washtub),Torrington,Hotspring,70,21';
|
|
put '44.608,-108.138,Sheep Mountain Springs,Cody,Hotspring,70,21';
|
|
put '43.583,-108.213,Wind River Canyon Spring,Thermopolis,Hotspring,72,22';
|
|
put '42.702,-107.105,Horse Creek Springs,Casper,Hotspring,75,24';
|
|
put '44.511,-109.156,Needle Hot Springs,Cody,Hotspring,75,24';
|
|
put '43.52,-109.669,Little Warm Spring,Thermopolis,Hotspring,77,25';
|
|
put '43.3,-110.775,Astoria Mineral Hot Springs,Driggs,Hotspring,99,37';
|
|
put '43.543,-110.741,Abercrombie Warm Springs,Driggs,Hotspring,81,27';
|
|
put '44.513,-109.115,De Maris Springs,Cody,Hotspring,97,36';
|
|
put '42.665,-105.394,Douglas Hot Springs,Torrington,Hotspring,86,30';
|
|
put '43.471,-110.835,Boyles Hill Springs,Driggs,Hotspring,86,30';
|
|
put '43.282,-110.019,Kendall Warm Spring,Driggs,Hotspring,86,30';
|
|
put '44.662,-110.768,Iron Spring,Ashton,Hotspring,86,30';
|
|
put '42.492,-108.172,Sweetwater Station Warm Springs,Lander,Hotspring,90,32';
|
|
put '44.742,-110.579,Wolf Lake Springs,Ashton,Hotspring,91,33';
|
|
put '44.513,-109.129,Shoshone Hot Springs,Cody,Hotspring,95,35';
|
|
put '42.828,-110.999,Auburn Hot Springs,Preston,Hotspring,144,62';
|
|
put '43.639,-110.615,Kelly Warm Spring,Driggs,Hotspring,81,27';
|
|
put '44.532,-110.796,Five Sisters Springs,Ashton,Hotspring,192,89';
|
|
put '44.582,-110.314,Vermilion Springs,Ashton,Hotspring,140,60';
|
|
put '44.521,-110.275,Butte Springs,Ashton,Hotspring,187,86';
|
|
put '44.478,-110.867,Hillside Springs,Ashton,Hotspring,187,86';
|
|
put '44.752,-110.418,Hot Springs at Sevenmile Hole,Ashton,Hotspring,189,87';
|
|
put '44.401,-110.936,Hot Springs on Continental Divide,Ashton,Hotspring,189,87';
|
|
put '44.769,-110.269,Rainbow Springs,Ashton,Hotspring,190,88';
|
|
put '44.628,-110.433,Sulphur Caldron,Ashton,Hotspring,190,88';
|
|
put '44.702,-110.767,Sylvan Springs,Ashton,Hotspring,192,89';
|
|
put '44.529,-110.791,White Creek Group,Ashton,Hotspring,185,85';
|
|
put '44.564,-110.869,Queens Laundry,Ashton,Hotspring,192,89';
|
|
put '44.697,-110.375,Hot Springs on Bog Creek,Ashton,Hotspring,185,85';
|
|
put '44.285,-110.9,Bechler River Hot Springs,Ashton,Hotspring,194,90';
|
|
put '44.797,-110.725,Amphitheater Springs,Ashton,Hotspring,196,91';
|
|
put '44.766,-110.429,Washburn Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.756,-110.308,Coffee Pot Hot Springs,Ashton,Hotspring,196,91';
|
|
put '44.591,-110.321,Hot Springs at Sulphur Hills,Ashton,Hotspring,196,91';
|
|
put '44.556,-110.832,River Group,Ashton,Hotspring,196,91';
|
|
put '44.422,-110.574,West Thumb Geyser Basin,Ashton,Hotspring,196,91';
|
|
put '44.786,-110.74,Semi-Centennial Geyser,Ashton,Hotspring,198,92';
|
|
put '44.653,-110.482,Sulphur Springs,Ashton,Hotspring,194,89';
|
|
put '44.41,-110.953,Summit Lake Hot Springs,Ashton,Hotspring,162,72';
|
|
put '44.761,-110.73,Bijah Spring,Ashton,Hotspring,198,92';
|
|
put '44.781,-110.699,Whiterock Springs,Ashton,Hotspring,144,62';
|
|
put '44.739,-110.258,Hot Spring Basin Group,Ashton,Hotspring,153,67';
|
|
put '44.754,-110.403,Sevenmile Hole,Ashton,Hotspring,154,68';
|
|
put '44.276,-110.636,Hot Springs on Lewis Lake,Ashton,Hotspring,154,68';
|
|
put '44.598,-110.236,Hot Springs In Pelican Valley,Ashton,Hotspring,156,69';
|
|
put '44.142,-110.656,South Entrance Hot Springs,Ashton,Hotspring,156,69';
|
|
put '44.753,-110.724,"Roadside Springs, Frying Pan Sprin",Ashton,Hotspring,158,70';
|
|
put '44.733,-110.712,Horseshoe Spring,Ashton,Hotspring,187,86';
|
|
put '43.958,-110.696,Jackson Lake Hot Springs,Driggs,Hotspring,162,72';
|
|
put '44.187,-110.726,Hot Springs,Ashton,Hotspring,142,61';
|
|
put '44.967,-110.708,Mammoth Hot Springs,Ashton,Hotspring,163,73';
|
|
put '44.475,-110.843,Morning Glory Pool,Ashton,Hotspring,163,73';
|
|
put '44.204,-110.486,Hot Springs on Upper Snake River,Ashton,Hotspring,167,75';
|
|
put '44.299,-110.517,"Heart Lake Geyser Basin, Middle Gr",Ashton,Hotspring,174,79';
|
|
put '44.671,-110.29,Ponuntpa Springs Group,Ashton,Hotspring,180,82';
|
|
put '44.244,-111.022,Boundary Creek Hot Springs,Ashton,Hotspring,181,83';
|
|
put '44.414,-110.817,"Lone Star Geyser Basin, Footbridge",Ashton,Hotspring,183,84';
|
|
put '44.722,-110.701,Echinus Geyser,Ashton,Hotspring,185,85';
|
|
put '44.461,-110.854,Emerald Pool,Ashton,Hotspring,158,70';
|
|
put ';;;;';
|
|
put 'run;';
|
|
put '* ServiceInit end;';
|
|
put '* Service start;';
|
|
put '/**';
|
|
put '@file';
|
|
put '@brief Loads a file from frontend to a user provided location';
|
|
put '@details Returns a directory listing if successful.';
|
|
put 'The macros shown below are compiled from the SASjs CORE library (or the';
|
|
put 'sasjs/macros project directory) when running the `sasjs cb` command. This is';
|
|
put 'why you see them in the service, but not in the file in the GIT repository.';
|
|
put '<h4> SAS Macros </h4>';
|
|
put '@li mp_abort.sas';
|
|
put '@li mf_isdir.sas';
|
|
put '@li mp_dirlist.sas';
|
|
put '@li mp_binarycopy.sas';
|
|
put '@li mp_webin.sas';
|
|
put '**/';
|
|
put '%mp_abort(iftrue= (%mf_isdir(&path) = 0)';
|
|
put ',mac=&_program..sas';
|
|
put ',msg=%str(File path (&path) is not a valid directory)';
|
|
put ')';
|
|
put '/*';
|
|
put 'Straighten up the _webin_xxx variables';
|
|
put '*/';
|
|
put '%mp_webin()';
|
|
put '/* setup the output destination */';
|
|
put '%let outloc=&path/&_webin_filename1;';
|
|
put 'filename fileout "&outloc";';
|
|
put '/* send the data */';
|
|
put '%mp_binarycopy(inref=&_webin_fileref1, outref=fileout)';
|
|
put '%mp_abort(iftrue= (&syscc ge 4)';
|
|
put ',mac=&_program..sas';
|
|
put ',msg=%str(Error occurred reading &_webin_fileref1 and writing to &outloc)';
|
|
put ')';
|
|
put '/* success - lets create a directory listing */';
|
|
put '%mp_dirlist(path=&path,outds=dirlist)';
|
|
put 'proc sort data=dirlist;';
|
|
put 'by filepath;';
|
|
put 'run;';
|
|
put '/* now send it back to the frontend */';
|
|
put '%webout(OPEN)';
|
|
put '%webout(OBJ,dirlist)';
|
|
put '%webout(CLOSE)';
|
|
put '* Service end;';
|
|
|
|
run;
|
|
%mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes)
|
|
filename sascode clear;
|
|
|
|
|