Slides for paper 131-27

advertisement
Self Serve Census Data for
Neighborhoods and other Custom
Aggregations
A SAS/IntrNet Applicaton
Larry Hoyle
Policy Research Institute
University of Kansas
LarryHoyle@ku.edu
The home page
Define a new area – top down
Links to Tract and Block Maps
Census Bureau Tract Maps
Johnson County Tracts - Zoom
Census Bureau Block Maps
Pick Part of Johnson County
Pick 2 Tracts
Johnson County – 2 tracts
Naming the area with 2 tracts
Email sent announcing creation
The definition has been stored
A printable profile
A profile with a larger font
A population pyramid
Defining an area from an address
Choosing a block, width, and height
The rectangle can be modified or saved
Recalling or Using a Previous Defined Area
SF1 Profile for the custom area
Displaying defined geography
A few techniques
• Thousands of potential macro variables
• Email the area name
• HTML with pagination for legacy code
Areas - HTML form
Radio buttons require a separate name for each geographic unit.
<td>
<input type="radio"
name="G20001" value="K"></td>
<td>
<input type="radio"
name="G20001" value="S"></td>
<td>
<input type="radio"
name="G20001" value="D" CHECKED></td>
<td >Allen County <A href="http:
Areas - HTML form details
Geocode values won’t work
as macro variable names.
so
recode GEOCODE to
FORMVAL which can be a
macro variable name.
formval
G20045_0005X02_2
G20045_0005X02_3001
G20045_0005X02_3002
G20045_0005X02_3003
GeoCode
20045-0005.02-2
20045-0005.02-3001
20045-0005.02-3002
20045-0005.02-3003
Areas - Thousands of Macro Variables
How do you deal with
thousands of potential
macro variable names?
proc sql;
create table mvars as
select name,value
from sashelp.vmacro
where scope='GLOBAL' and upcase(substr(name,1,1))="G";
One alternative: begin names with a unique letter and
extract from sashelp.vmacro
Email a notice - code
filename mymail email "pri@ku.edu"
subject="new custom area";
data _null_;
file mymail;
set areas.areaPWs;
where areaNum=&newAnum ;
put areaNum= / customArea= / created= /
keepdays= / creatorIP=/ email=;
run;
Email a notice - message
areaNum=49
customArea=KCSAS2tracts
created=04JAN2002:15:13:46
keepdays=180
creatorip=129.237.xxx.xxx
email=LarryHoyle@ku.edu
Legacy printer output to HTML - template
ods path work.template(update)
sashelp.tmplmst(read);
proc template;
define style Styles.myHtm;
parent = styles.default;
Legacy printer output to HTML - fonts
replace fonts
"Fonts used in my HTML style" /
'TitleFont2' = ("Arial, Helvetica, Helv",4,Bold Italic)
'TitleFont' = ("Arial, Helvetica, Helv",5,Bold Italic)
'StrongFont' = ("Arial, Helvetica, Helv",4,Bold)
'EmphasisFont' = ("Arial, Helvetica, Helv",3,Italic)
'FixedEmphasisFont' = ("Courier",&fontSize.,Italic)
'FixedStrongFont' = ("Courier",&fontSize.,Bold)
'FixedHeadingFont' = ("Courier",&fontSize.)
'BatchFixedFont' = ("Courier",&fontSize.)
'FixedFont' = ("Courier",&fontSize.)
'headingEmphasisFont' = ("Arial, Helvetica, Helv",4,Bold Italic)
'headingFont' = ("Arial, Helvetica, Helv",4,Bold)
'docFont' = ("Arial, Helvetica, Helv",3);
FontSize macro variable
fs=upcase(symget("fontSize"));
select (fs);
when('M') call symput("fontSize","10.0pt");
when('L') call symput("fontSize","14.0pt");
otherwise call symput("fontSize","6.7pt");
end;
Legacy printer output to HTML - batch
replace Batch from Output
"Controls batch mode output." /
font = fonts('BatchFixedFont')
cellheight=8.5pt
cellpadding = .5pt
cellspacing = 0.25pt
frame=void
rules = NONE
foreground = colors('batchfg')
background = colors('batchbg');
Legacy printer output to HTML - ODS
ods html file=_webout( NO_Bottom_Matter
title="Custom Area SF1 Profile &areaNum")
style=myHtm CSS ;
ods listing close;
ods noproctitle;
These slides can be found at
http://www.ku.edu/pri/ksdata/sashttp/sugi27.
Larry Hoyle
LarryHoyle@ku.edu
(785) 864-9110
Policy Research Institute
The University of Kansas
1541 Lilac Lane, Suite 607
Lawrence, Kansas 66044
http://www.ku.edu/pri
Download