forked from laironald/PythonBase
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgeoPut.py
242 lines (204 loc) · 43.5 KB
/
geoPut.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
lblTxt = {'pat':{u'345': u'COMPUTER GRAPHICS PROCESSING AND SELECTIVE VISUAL DISPLAY SYSTEMS', u'346': u'RECORDERS', u'347': u'INCREMENTAL PRINTING OF SYMBOLIC INFORMATION', u'340': u'COMMUNICATIONS: ELECTRICAL', u'341': u'CODED DATA GENERATION OR CONVERSION', u'342': u'COMMUNICATIONS: DIRECTIVE RADIO WAVE SYSTEMS AND DEVICES (E.G., RADAR, RADIO NAVIGATION', u'343': u'COMMUNICATIONS: RADIO WAVE ANTENNAS', u'348': u'TELEVISION', u'349': u'LIQUID CRYSTAL CELLS, ELEMENTS AND SYSTEMS', u'719': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: INTERPROGRAM COMMUNICATION OR INTERPROCESS COMMUNICATION (IPC)', u'718': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: VIRTUAL MACHINE TASK OR PROCESS MANAGEMENT OR TASK MANAGEMENT/CONTROL', u'717': u'DATA PROCESSING: SOFTWARE DEVELOPMENT, INSTALLATION, AND MANAGEMENT', u'716': u'COMPUTER-AIDED DESIGN AND ANALYSIS OF CIRCUITS AND SEMICONDUCTOR MASKS', u'715': u'DATA PROCESSING: PRESENTATION PROCESSING OF DOCUMENT', u'714': u'ERROR DETECTION/CORRECTION AND FAULT DETECTION/RECOVERY', u'713': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: SUPPORT', u'712': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: PROCESSING ARCHITECTURES AND INSTRUCTION PROCESSING (E.G., PROCESSORS)', u'711': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: MEMORY', u'710': u'ELECTRICAL COMPUTERS AND DIGITAL DATA PROCESSING SYSTEMS: INPUT/OUTPUT', u'298': u'LAND VEHICLES: DUMPING', u'299': u'MINING OR IN SITU DISINTEGRATION OF HARD MATERIAL', u'296': u'LAND VEHICLES: BODIES AND TOPS', u'297': u'CHAIRS AND SEATS', u'294': u'HANDLING: HAND AND HOIST-LINE IMPLEMENTS', u'295': u'RAILWAY WHEELS AND AXLES', u'292': u'CLOSURE FASTENERS', u'293': u'VEHICLE FENDERS', u'290': u'PRIME-MOVER DYNAMO PLANTS', u'291': u'TRACK SANDERS', u'199': u'TYPE CASTING', u'198': u'CONVEYORS: POWER-DRIVEN', u'194': u'CHECK-ACTUATED CONTROL MECHANISMS', u'196': u'MINERAL OILS: APPARATUS', u'191': u'ELECTRICITY: TRANSMISSION TO VEHICLES', u'190': u'TRUNKS AND HAND-CARRIED LUGGAGE', u'193': u'CONVEYORS, CHUTES, SKIDS, GUIDES, AND WAYS', u'192': u'CLUTCHES AND POWER-STOP CONTROL', u'270': u'SHEET-MATERIAL ASSOCIATING', u'271': u'SHEET FEEDING OR DELIVERING', u'273': u'AMUSEMENT DEVICES: GAMES', u'276': u'TYPESETTING', u'277': u'SEAL FOR A JOINT OR JUNCTURE', u'278': u'LAND VEHICLES: ANIMAL DRAFT APPLIANCES', u'279': u'CHUCKS OR SOCKETS', u'524': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES\xa0', u'525': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES\xa0\xa0', u'526': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES', u'527': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES\xa0', u'520': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES', u'521': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES', u'522': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES', u'523': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES\xa0\xa0', u'528': u'SYNTHETIC RESINS OR NATURAL RUBBERS -- PART OF THE CLASS 520 SERIES', u'449': u'BEE CULTURE', u'442': u'FABRIC (WOVEN, KNITTED, OR NONWOVEN TEXTILE OR CLOTH, ETC.)', u'441': u'BUOYS, RAFTS, AND AQUATIC DEVICES', u'440': u'MARINE PROPULSION', u'446': u'AMUSEMENT DEVICES: TOYS', u'445': u'ELECTRIC LAMP OR SPACE DISCHARGE COMPONENT OR DEVICE MANUFACTURING', u'108': u'HORIZONTALLY SUPPORTED PLANAR SURFACES', u'109': u'SAFES, BANK PROTECTION, OR A RELATED DEVICE', u'102': u'AMMUNITION AND EXPLOSIVES', u'100': u'PRESSES', u'101': u'PRINTING', u'106': u'COMPOSITIONS: COATING OR PLASTIC', u'104': u'RAILWAYS', u'105': u'RAILWAY ROLLING STOCK', u'902': u'ELECTRONIC FUNDS TRANSFER', u'903': u'HYBRID ELECTRIC VEHICLES (HEVS)', u'901': u'ROBOTS', u'33': u'GEOMETRICAL INSTRUMENTS', u'30': u'CUTLERY', u'37': u'EXCAVATING', u'36': u'BOOTS, SHOES, AND LEGGINGS', u'34': u'DRYING AND GAS OR VAPOR CONTACT WITH SOLIDS', u'438': u'SEMICONDUCTOR DEVICE MANUFACTURING: PROCESS', u'439': u'ELECTRICAL CONNECTORS', u'436': u'CHEMISTRY: ANALYTICAL AND IMMUNOLOGICAL TESTING', u'434': u'EDUCATION AND DEMONSTRATION', u'435': u'CHEMISTRY: MOLECULAR BIOLOGY AND MICROBIOLOGY', u'432': u'HEATING', u'433': u'DENTISTRY', u'430': u'RADIATION IMAGERY CHEMISTRY: PROCESS, COMPOSITION, OR PRODUCT THEREOF', u'431': u'COMBUSTION', u'338': u'ELECTRICAL RESISTORS', u'335': u'ELECTRICITY: MAGNETICALLY OPERATED SWITCHES, MAGNETS, AND ELECTROMAGNETS', u'334': u'TUNERS', u'337': u'ELECTRICITY: ELECTROTHERMALLY OR THERMALLY ACTUATED SWITCHES', u'336': u'INDUCTOR DEVICES', u'331': u'OSCILLATORS', u'330': u'AMPLIFIERS', u'333': u'WAVE TRANSMISSION LINES AND NETWORKS', u'332': u'MODULATORS', u'850': u'SCANNING-PROBE TECHNIQUES OR APPARATUS; APPLICATIONS OF SCANNING-PROBE TECHNIQUES, E.G., SCANNING PROBE MICROSCOPY [SPM]', u'99': u'FOODS AND BEVERAGES: APPARATUS', u'91': u'MOTORS: EXPANSIBLE CHAMBER TYPE', u'92': u'EXPANSIBLE CHAMBER DEVICES', u'95': u'GAS SEPARATION: PROCESSES', u'96': u'GAS SEPARATION: APPARATUS', u'150': u'PURSES, WALLETS, AND PROTECTIVE COVERS', u'D21': u'GAMES, TOYS, AND SPORTS GOODS', u'558': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES\xa0', u'554': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES\xa0', u'D34': u'MATERIAL OR ARTICLE HANDLING EQUIPMENT', u'556': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'D32': u'WASHING, CLEANING, OR DRYING MACHINE', u'D30': u'ANIMAL HUSBANDRY', u'552': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'238': u'RAILWAYS: SURFACE TRACK', u'239': u'FLUID SPRINKLING, SPRAYING, AND DIFFUSING', u'234': u'SELECTIVE CUTTING (E.G., PUNCHING)', u'235': u'REGISTERS', u'236': u'AUTOMATIC TEMPERATURE AND HUMIDITY REGULATION', u'237': u'HEATING SYSTEMS', u'231': u'WHIPS AND WHIP APPARATUS', u'232': u'DEPOSIT AND COLLECTION RECEPTACLES', u'147': u'COOPERING', u'144': u'WOODWORKING', u'142': u'WOOD TURNING', u'140': u'WIREWORKING', u'141': u'FLUENT MATERIAL HANDLING, WITH RECEIVER OR RECEIVER COACTING MEANS', u'148': u'METAL TREATMENT', u'149': u'EXPLOSIVE AND THERMIC COMPOSITIONS OR CHARGES', u'564': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'132': u'TOILET', u'131': u'TOBACCO', u'137': u'FLUID HANDLING', u'136': u'BATTERIES: THERMOELECTRIC AND PHOTOELECTRIC', u'135': u'TENT, CANOPY, UMBRELLA, OR CANE', u'134': u'CLEANING AND LIQUID CONTACT WITH SOLIDS', u'494': u'IMPERFORATE BOWL: CENTRIFUGAL SEPARATORS', u'139': u'TEXTILES: WEAVING', u'138': u'PIPES AND TUBULAR CONDUITS', u'492': u'ROLL OR ROLLER', u'493': u'MANUFACTURING CONTAINER OR TUBE FROM PAPER; OR OTHER MANUFACTURING FROM A SHEET OR WEB', u'24': u'BUCKLES, BUTTONS, CLASPS, ETC.', u'26': u'TEXTILES: CLOTH FINISHING', u'27': u'UNDERTAKING', u'23': u'CHEMISTRY: PHYSICAL PROCESSES', u'28': u'TEXTILES: MANUFACTURING', u'29': u'METAL WORKING', u'407': u'CUTTERS, FOR SHAPING', u'406': u'CONVEYORS: FLUID CURRENT', u'405': u'HYDRAULIC AND EARTH ENGINEERING', u'404': u'ROAD STRUCTURE, PROCESS, OR APPARATUS', u'403': u'JOINTS AND CONNECTIONS', u'402': u'BINDER DEVICE RELEASABLY ENGAGING APERTURE OR NOTCH OF SHEET', u'401': u'COATING IMPLEMENTS WITH MATERIAL SUPPLY', u'400': u'TYPEWRITING MACHINES', u'930': u'PEPTIDE OR PROTEIN SEQUENCE', u'409': u'GEAR CUTTING, MILLING, OR PLANING', u'408': u'CUTTING BY USE OF ROTATING AXIALLY MOVING TOOL', u'379': u'TELEPHONIC COMMUNICATIONS', u'378': u'X-RAY OR GAMMA RAY SYSTEMS OR DEVICES', u'370': u'MULTIPLEX COMMUNICATIONS', u'373': u'INDUSTRIAL ELECTRIC HEATING FURNACES', u'372': u'COHERENT LIGHT GENERATORS', u'375': u'PULSE OR DIGITAL COMMUNICATIONS', u'374': u'THERMAL MEASURING AND TESTING', u'377': u'ELECTRICAL PULSE COUNTERS, PULSE DIVIDERS, OR SHIFT REGISTERS: CIRCUITS AND SYSTEMS', u'376': u'INDUCED NUCLEAR REACTIONS: PROCESSES, SYSTEMS, AND ELEMENTS', u'708': u'ELECTRICAL COMPUTERS: ARITHMETIC PROCESSING AND CALCULATING', u'709': u'ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: MULTICOMPUTER DATA TRANSFERRING', u'704': u'DATA PROCESSING:SPEECH SIGNAL PROCESSING, LINGUISTICS, LANGUAGE TRANSLATION, AND AUDIO COMPRESSION/DECOMPRESSION', u'705': u'DATA PROCESSING:FINANCIAL, BUSINESS PRACTICE, MANAGEMENT, OR COST/PRICE DETERMINATION', u'706': u'DATA PROCESSING:ARTIFICIAL INTELLIGENCE', u'707': u'DATA PROCESSING:DATABASE AND FILE MANAGEMENT OR DATA STRUCTURES', u'700': u'DATA PROCESSING:GENERIC CONTROL SYSTEMS OR SPECIFIC APPLICATIONS', u'701': u'DATA PROCESSING:VEHICLES, NAVIGATION, AND RELATIVE LOCATION', u'702': u'DATA PROCESSING:MEASURING, CALIBRATING, OR TESTING', u'703': u'DATA PROCESSING:STRUCTURAL DESIGN, MODELING, SIMULATION, AND EMULATION', u'392': u'ELECTRIC RESISTANCE HEATING DEVICES', u'89': u'ORDNANCE', u'396': u'PHOTOGRAPHY', u'82': u'TURNING', u'83': u'CUTTING', u'399': u'ELECTROPHOTOGRAPHY', u'398': u'OPTICAL COMMUNICATIONS', u'86': u'AMMUNITION AND EXPLOSIVE-CHARGE MAKING', u'87': u'TEXTILES: BRAIDING, NETTING, AND LACE MAKING', u'84': u'MUSIC', u'7': u'COMPOUND TOOLS', u'585': u'CHEMISTRY OF HYDROCARBON COMPOUNDS', u'588': u'HAZARDOUS OR TOXIC WASTE DESTRUCTION OR CONTAINMENT', u'245': u'WIRE FABRICS AND STRUCTURE', u'244': u'AERONAUTICS AND ASTRONAUTICS', u'246': u'RAILWAY SWITCHES AND SIGNALS', u'241': u'SOLID MATERIAL COMMINUTION OR DISINTEGRATION', u'242': u'WINDING, TENSIONING, OR GUIDING', u'249': u'STATIC MOLDS', u'248': u'SUPPORTS', u'518': u'CHEMISTRY: FISCHER-TROPSCH PROCESSES; OR PURIFICATION OR RECOVERY OF PRODUCTS THEREOF', u'510': u'CLEANING COMPOSITIONS FOR SOLID SURFACES, AUXILIARY COMPOSITIONS THEREFOR, OR PROCESSES OF PREPARING THE COMPOSITIONS', u'512': u'PERFUME COMPOSITIONS', u'514': u'DRUG, BIO-AFFECTING AND BODY TREATING COMPOSITIONS', u'516': u'COLLOID SYSTEMS AND WETTING AGENTS; SUBCOMBINATIONS THEREOF; PROCESSES OF MAKING, STABILIZING, BREAKING, OR INHIBITING', u'623': u'PROSTHESIS (I.E., ARTIFICIAL BODY MEMBERS), PARTS THEREOF, OR AIDS AND ACCESSORIES THEREFOR', u'450': u'FOUNDATION GARMENTS', u'451': u'ABRADING', u'452': u'BUTCHERING', u'453': u'COIN HANDLING', u'454': u'VENTILATION', u'455': u'TELECOMMUNICATIONS', u'178': u'TELEGRAPHY', u'177': u'WEIGHING SCALES', u'175': u'BORING OR PENETRATING THE EARTH', u'174': u'ELECTRICITY: CONDUCTORS AND INSULATORS', u'173': u'TOOL DRIVING OR IMPACTING', u'172': u'EARTH WORKING', u'171': u'UNEARTHING PLANTS OR BURIED OBJECTS', u'977': u'NANOTECHNOLOGY', u'976': u'NUCLEAR TECHNOLOGY', u'D99': u'MISCELLANEOUS', u'182': u'FIRE ESCAPE, LADDER, OR SCAFFOLD', u'180': u'MOTOR VEHICLES', u'181': u'ACOUSTICS', u'186': u'MERCHANDISING', u'187': u'ELEVATOR, INDUSTRIAL LIFT TRUCK, OR STATIONARY LIFT FOR VEHICLE', u'184': u'LUBRICATION', u'185': u'MOTORS: SPRING, WEIGHT, OR ANIMAL POWERED', u'188': u'BRAKES', u'12': u'BOOT AND SHOE MAKING', u'15': u'BRUSHING, SCRUBBING, AND GENERAL CLEANING', u'14': u'BRIDGES', u'16': u'MISCELLANEOUS HARDWARE (E.G., BUSHING, CARPET FASTERNER, CASTER, DOOR CLOSER, PANEL HANGER, ATTACHABLE OR ADJUNCT HANDLE, HINGE, WINDOW SASH BALANCE, ETC.', u'19': u'TEXTILES: FIBER PREPARATION', u'568': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'63': u'JEWELRY', u'322': u'ELECTRICITY: SINGLE GENERATOR SYSTEMS', u'323': u'ELECTRICITY: POWER SUPPLY OR REGULATION SYSTEMS', u'320': u'ELECTRICITY: BATTERY OR CAPACITOR CHARGING OR DISCHARGING', u'326': u'ELECTRONIC DIGITAL LOGIC CIRCUITRY', u'327': u'MISCELLANEOUS ACTIVE ELECTRICAL NONLINEAR DEVICES, CIRCUITS, AND SYSTEMS', u'324': u'ELECTRICITY: MEASURING AND TESTING', u'329': u'DEMODULATORS', u'562': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'201': u'DISTILLATION: PROCESSES, THERMOLYTIC', u'200': u'ELECTRICITY: CIRCUIT MAKERS AND BREAKERS', u'203': u'DISTILLATION: PROCESSES, SEPARATORY', u'202': u'DISTILLATION: APPARATUS', u'205': u'ELECTROLYSIS: PROCESSES, COMPOSITIONS USED THEREIN, AND METHODS OF PREPARING THE COMPOSITIONS', u'204': u'CHEMISTRY: ELECTRICAL AND WAVE ENERGY', u'206': u'SPECIAL RECEPTACLE OR PACKAGE', u'209': u'CLASSIFYING, SEPARATING, AND ASSORTING SOLIDS', u'208': u'MINERAL OILS: PROCESSES AND PRODUCTS', u'76': u'METAL TOOLS AND IMPLEMENTS, MAKING', u'75': u'SPECIALIZED METALLURGICAL PROCESSES, COMPOSITIONS FOR USE THEREIN, CONSOLIDATED METAL POWDER COMPOSITIONS, AND LOOSE METAL PARTICULATE MIXTURES', u'74': u'MACHINE ELEMENT OR MECHANISM', u'73': u'MEASURING AND TESTING', u'72': u'METAL DEFORMING', u'71': u'CHEMISTRY: FERTILIZERS', u'70': u'LOCKS', u'79': u'METAL TOOLS AND IMPLEMENTS, MAKING', u'D8': u'TOOLS AND HARDWARE', u'D9': u'PACKAGES AND CONTAINERS FOR GOODS', u'D6': u'FURNISHINGS', u'D7': u'EQUIPMENT FOR PREPARING OR SERVING FOOD OR DRINK NOT ELSEWHERE SPECIFIED', u'D4': u'BRUSHWARE', u'D5': u'TEXTILE OR PAPER YARD GOODS; SHEET MATERIAL', u'D2': u'APPAREL AND HABERDASHERY', u'D3': u'TRAVEL GOODS AND PERSONAL BELONGINGS', u'D1': u'EDIBLE PRODUCTS', u'540': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES\xa0', u'546': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES\xa0', u'544': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'8': u'BLEACHING AND DYEING; FLUID TREATMENT AND CHEMICAL MODIFICATION OF TEXTILES AND FIBERS', u'548': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES\xa0', u'549': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'68': u'TEXTILES: FLUID TREATING APPARATUS', u'122': u'LIQUID HEATERS AND VAPORIZERS', u'123': u'INTERNAL-COMBUSTION ENGINES', u'124': u'MECHANICAL GUNS AND PROJECTORS', u'125': u'STONE WORKING', u'126': u'STOVES AND FURNACES', u'127': u'SUGAR, STARCH, AND CARBOHYDRATES', u'128': u'SURGERY', u'2': u'APPAREL', u'414': u'MATERIAL OR ARTICLE HANDLING', u'415': u'ROTARY KINETIC FLUID MOTORS OR PUMPS', u'416': u'FLUID REACTION SURFACES (I.E., IMPELLERS)', u'417': u'PUMPS', u'410': u'FREIGHT ACCOMMODATION ON FREIGHT CARRIER', u'411': u'EXPANDED, THREADED, DRIVEN, HEADED, TOOL-DEFORMED, OR LOCKED-THREADED FASTENER', u'412': u'BOOKBINDING: PROCESS AND APPARATUS', u'413': u'SHEET METAL CONTAINER MAKING', u'418': u'ROTARY EXPANSIBLE CHAMBER DEVICES', u'419': u'POWDER METALLURGY PROCESSES', u'318': u'ELECTRICITY: MOTIVE POWER SYSTEMS', u'313': u'ELECTRIC LAMP AND DISCHARGE DEVICES', u'312': u'SUPPORTS: CABINET STRUCTURE', u'310': u'ELECTRICAL GENERATOR OR MOTOR STRUCTURE', u'315': u'ELECTRIC LAMP AND DISCHARGE DEVICES: SYSTEMS', u'314': u'ELECTRIC LAMP AND DISCHARGE DEVICES: CONSUMABLE ELECTRODES', u'368': u'HOROLOGY: TIME MEASURING SYSTEMS OR DEVICES', u'369': u'DYNAMIC INFORMATION STORAGE OR RETRIEVAL', u'366': u'AGITATING', u'367': u'COMMUNICATIONS, ELECTRICAL: ACOUSTIC WAVE SYSTEMS AND DEVICES', u'365': u'STATIC INFORMATION STORAGE AND RETRIEVAL', u'362': u'ILLUMINATION', u'363': u'ELECTRIC POWER CONVERSION SYSTEMS', u'360': u'DYNAMIC MAGNETIC INFORMATION STORAGE OR RETRIEVAL', u'361': u'ELECTRICITY: ELECTRICAL SYSTEMS AND DEVICES', u'380': u'CRYPTOGRAPHY', u'381': u'ELECTRICAL AUDIO SIGNAL PROCESSING SYSTEMS AND DEVICES', u'382': u'IMAGE ANALYSIS', u'383': u'FLEXIBLE BAGS', u'384': u'BEARINGS', u'385': u'OPTICAL WAVEGUIDES', u'386': u'MOTION VIDEO SIGNAL PROCESSING FOR RECORDING OR REPRODUCING', u'388': u'ELECTRICITY: MOTOR CONTROL SYSTEMS', u'D14': u'RECORDING, COMMUNICATION, OR INFORMATION RETRIEVAL EQUIPMENT', u'D15': u'MACHINES NOT ELSEWHERE SPECIFIED', u'D16': u'PHOTOGRAPHY AND OPTICAL EQUIPMENT', u'D17': u'MUSICAL INSTRUMENTS', u'D10': u'MEASURING, TESTING, OR SIGNALLING INSTRUMENTS', u'D11': u'JEWELRY, SYMBOLIC INSIGNIA, AND ORNAMENTS', u'D12': u'TRANSPORTATION', u'D13': u'EQUIPMENT FOR PRODUCTION, DISTRIBUTION, OR TRANSFORMATION OF ENERGY', u'570': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'D18': u'PRINTING AND OFFICE MACHINERY', u'D19': u'OFFICE SUPPLIES; ARTISTS` AND TEACHERS` MATERIALS', u'60': u'POWER PLANTS', u'258': u'RAILWAY MAIL DELIVERY', u'152': u'RESILIENT TIRES AND WHEELS', u'65': u'GLASS MANUFACTURING', u'66': u'TEXTILES: KNITTING', u'252': u'COMPOSITIONS', u'69': u'LEATHER MANUFACTURES', u'250': u'RADIANT ENERGY', u'251': u'VALVES AND VALVE ACTUATION', u'256': u'FENCES', u'257': u'ACTIVE SOLID-STATE DEVICES (E.G., TRANSISTORS, SOLID-STATE DIODES)', u'254': u'IMPLEMENTS OR APPARATUS FOR APPLYING PUSHING OR PULLING FORCE', u'156': u'ADHESIVE BONDING AND MISCELLANEOUS CHEMICAL MANUFACTURE', u'508': u'SOLID ANTI-FRICTION DEVICES, MATERIALS THEREFOR, LUBRICANT OR SEPARANT COMPOSITIONS FOR MOVING SOLID SURFACES, AND MISCELLANEOUS MINERAL OIL COMPOSITIONS', u'506': u'COMBINATORIAL CHEMISTRY TECHNOLOGY: METHOD, LIBRARY, APPARATUS', u'507': u'EARTH BORING, WELL TREATING, AND OIL FIELD CHEMISTRY', u'504': u'PLANT PROTECTING AND REGULATING COMPOSITIONS', u'505': u'SUPERCONDUCTOR TECHNOLOGY: APPARATUS, MATERIAL, PROCESS', u'502': u'CATALYST, SOLID SORBENT, OR SUPPORT THEREFOR: PRODUCT OR PROCESS OF MAKING', u'503': u'RECORD RECEIVER HAVING PLURAL INTERACTIVE LEAVES OR A COLORLESS COLOR FORMER, METHOD OF USE, OR DEVELOPER THEREFOR', u'501': u'COMPOSITIONS: CERAMIC', u'464': u'ROTARY SHAFTS, GUDGEONS, HOUSINGS, AND FLEXIBLE COUPLINGS FOR ROTARY SHAFTS', u'460': u'CROP THRESHING OR SEPARATING', u'463': u'AMUSEMENT DEVICES: GAMES', u'462': u'BOOKS, STRIPS, AND LEAVES FOR MANIFOLDING', u'38': u'TEXTILES: IRONING OR SMOOTHING', u'168': u'FARRIERY', u'169': u'FIRE EXTINGUISHERS', u'164': u'METAL FOUNDING', u'165': u'HEAT EXCHANGE', u'166': u'WELLS', u'160': u'FLEXIBLE OR PORTABLE CLOSURE, PARTITION, OR PANEL', u'162': u'PAPER MAKING AND FIBER LIBERATION', u'163': u'NEEDLE AND PIN MAKING', u'PLT': u'PLANTS', u'968': u'HOROLOGY', u'356': u'OPTICS: MEASURING AND TESTING', u'355': u'PHOTOCOPYING', u'353': u'OPTICS: IMAGE PROJECTORS', u'352': u'OPTICS: MOTION PICTURES', u'351': u'OPTICS: EYE EXAMINING, VISION TESTING AND CORRECTING', u'800': u'MULTICELLULAR LIVING ORGANISMS AND UNMODIFIED PARTS THEREOF AND RELATED PROCESSES', u'359': u'OPTICAL: SYSTEMS AND ELEMENTS', u'358': u'FACSIMILE AND STATIC PRESENTATION PROCESSING', u'216': u'ETCHING A SUBSTRATE: PROCESSES', u'217': u'WOODEN RECEPTACLES', u'215': u'BOTTLES AND JARS', u'212': u'TRAVERSING HOISTS', u'213': u'RAILWAY DRAFT APPLIANCE', u'210': u'LIQUID PURIFICATION OR SEPARATION', u'211': u'SUPPORTS: RACKS', u'218': u'HIGH-VOLTAGE SWITCHES WITH ARC PREVENTING OR EXTINGUISHING DEVICES', u'219': u'ELECTRIC HEATING', u'289': u'KNOTS AND KNOT TYING', u'4': u'BATHS, CLOSETS, SINKS, AND SPITTOONS', u'281': u'BOOKS, STRIPS, AND LEAVES', u'280': u'LAND VEHICLES', u'283': u'PRINTED MATTER', u'285': u'PIPE JOINTS OR COUPLINGS', u'261': u'GAS AND LIQUID CONTACT APPARATUS', u'260': u'CHEMISTRY OF CARBON COMPOUNDS', u'267': u'SPRING DEVICES', u'266': u'METALLURGICAL APPARATUS', u'264': u'PLASTIC AND NONMETALLIC ARTICLE SHAPING OR TREATING: PROCESSES', u'269': u'WORK HOLDERS', u'59': u'CHAIN, STAPLE, AND HORSESHOE MAKING', u'55': u'GAS SEPARATION', u'54': u'HARNESS FOR WORKING ANIMAL', u'57': u'TEXTILES: SPINNING, TWISTING, AND TWINING', u'56': u'HARVESTERS', u'51': u'ABRASIVE TOOL MAKING PROCESS, MATERIAL, OR COMPOSITION', u'62': u'REFRIGERATION', u'53': u'PACKAGE MAKING', u'52': u'STATIC STRUCTURES (E.G., BUILDINGS)', u'536': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'534': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'532': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'530': u'CHEMISTRY: NATURAL RESINS OR DERIVATIVES; PEPTIDES OR PROTEINS; LIGNINS OR REACTION PRODUCTS THEREOF', u'987': u'ORGANIC COMPOUNDS CONTAINING A Bi, Sb, As, OR P ATOM OR CONTAINING A METAL ATOM OF THE 6TH TO 8TH GROUP OF THE PERIODIC SYSTEM', u'984': u'MUSICAL INSTRUMENTS', u'114': u'SHIPS', u'117': u'SINGLE-CRYSTAL, ORIENTED-CRYSTAL, AND EPITAXY GROWTH PROCESSES; NON-COATING APPARATUS THEREFOR', u'116': u'SIGNALS AND INDICATORS', u'111': u'PLANTING', u'110': u'FURNACES', u'112': u'SEWING', u'119': u'ANIMAL HUSBANDRY', u'118': u'COATING APPARATUS', u'G9B': u'INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER', u'429': u'CHEMISTRY: ELECTRICAL CURRENT PRODUCING APPARATUS, PRODUCT, AND PROCESS', u'428': u'STOCK MATERIAL OR MISCELLANEOUS ARTICLES', u'420': u'ALLOYS OR METALLIC COMPOSITIONS', u'423': u'CHEMISTRY OF INORGANIC COMPOUNDS', u'422': u'CHEMICAL APPARATUS AND PROCESS DISINFECTING, DEODORIZING, PRESERVING, OR STERILIZING', u'425': u'PLASTIC ARTICLE OR EARTHENWARE SHAPING OR TREATING: APPARATUS', u'424': u'DRUG, BIO-AFFECTING AND BODY TREATING COMPOSITIONS', u'427': u'COATING PROCESSES', u'426': u'FOOD OR EDIBLE MATERIAL: PROCESSES, COMPOSITIONS, AND PRODUCTS', u'300': u'BRUSH, BROOM, AND MOP MAKING', u'301': u'LAND VEHICLES: WHEELS AND AXLES', u'303': u'FLUID-PRESSURE AND ANALOGOUS BRAKE SYSTEMS', u'305': u'WHEEL SUBSTITUTES FOR LAND VEHICLES', u'307': u'ELECTRICAL TRANSMISSION OR INTERCONNECTION SYSTEMS', u'D29': u'EQUIPMENT FOR SAFETY, PROTECTION, AND RESCUE (1)', u'D28': u'COSMETIC PRODUCTS AND TOILET ARTICLES', u'560': u'ORGANIC COMPOUNDS -- PART OF THE CLASS 532-570 SERIES', u'D20': u'SALES AND ADVERTISING EQUIPMENT', u'D23': u'ENVIRONMENTAL HEATING AND COOLING; FLUID HANDLING AND SANITARY EQUIPMENT', u'D22': u'ARMS, PYROTECHNICS, HUNTING AND FISHING EQUIPMENT', u'D25': u'BUILDING UNITS AND CONSTRUCTION ELEMENTS', u'D24': u'MEDICAL AND LABORATORY EQUIPMENT', u'D27': u"TOBACCO AND SMOKERS' SUPPLIES", u'D26': u'LIGHTING', u'229': u'ENVELOPES, WRAPPERS, AND PAPERBOARD BOXES', u'228': u'METAL FUSION BONDING', u'227': u'ELONGATED-MEMBER-DRIVING APPARATUS', u'226': u'ADVANCING MATERIAL OF INDETERMINATE LENGTH', u'225': u'SEVERING BY TEARING OR BREAKING', u'224': u'PACKAGE AND ARTICLE CARRIERS', u'223': u'APPAREL APPARATUS', u'222': u'DISPENSING', u'221': u'ARTICLE DISPENSING', u'220': u'RECEPTACLES', u'726': u'INFORMATION SECURITY', u'725': u'INTERACTIVE VIDEO DISTRIBUTION SYSTEMS', u'720': u'DYNAMIC OPTICAL INFORMATION STORAGE OR RETRIEVAL', u'604': u'SURGERY', u'607': u'SURGERY: LIGHT,THERMAL, AND ELECTRICAL APPLICATION', u'606': u'SURGERY', u'601': u'SURGERY: KINESITHERAPY', u'600': u'SURGERY', u'157': u'WHEELWRIGHT MACHINES', u'602': u'SURGERY: SPLINT, BRACE, OR BANDAGE', u'159': u'CONCENTRATING EVAPORATORS', u'81': u'TOOLS', u'48': u'GAS: HEATING AND ILLUMINATING', u'49': u'MOVABLE OR REMOVABLE CLOSURES', u'47': u'PLANT HUSBANDRY', u'44': u'FUEL AND RELATED COMPOSITIONS', u'42': u'FIREARMS', u'43': u'FISHING, TRAPPING, AND VERMIN DESTROYING', u'40': u'CARD, PICTURE, OR SIGN EXHIBITING', u'5': u'BEDS', u'483': u'TOOL CHANGING', u'482': u'EXERCISE DEVICES', u'472': u'AMUSEMENT DEVICES', u'473': u'GAMES USING TANGIBLE PROJECTILE', u'470': u'THREADED, HEADED FASTENER, OR WASHER MAKING: PROCESS AND APPARATUS', u'476': u'FRICTION GEAR TRANSMISSION SYSTEMS OR COMPONENTS', u'477': u'INTERRELATED POWER DELIVERY CONTROLS, INCLUDING ENGINE CONTROL', u'474': u'ENDLESS BELT POWER TRANSMISSION SYSTEMS OR COMPONENTS', u'475': u'PLANETARY GEAR TRANSMISSION SYSTEMS OR COMPONENTS'},
'grant':{'165': 'inflammatory inflammation tnf cytokines cytokine ', '133': 'channel ion_channel current voltage subunit ', '132': 'material devices electronic semiconductor film ', '131': 'cell formation developmental neural genes ', '130': 'repeat disease expansion muscular dystrophy ', '137': 'human metabolism p450 adduct ahr ', '136': 'patient marker clinical tumor biomarker ', '135': 'ca2 calcium transport transporter cell ', '134': 'receptor nuclear kappab ligand activation ', '139': 'drug cocaine drug_abuse addiction opioid ', '138': 'receptor agonist antagonist nmda ligand ', '166': 'patient surgery surgical clinical treatment ', '24': 'hiv aids risk sexual prevention ', '25': 'level low found high rate ', '26': 'optical laser light high system ', '27': 'beta cell iron pancreatic islet ', '20': 'cox acid prostaglandin page pge2 ', '21': 'receptor camp growth_factor egfr signaling ', '22': 'sensor system device devices technology ', '23': 'equation theory mathematical nonlinear system ', '160': 'matrix mmp extracellular cell ecm ', '28': 'disease autoimmune sle complement patient ', '29': 'microbial organism bacteria fungal bacterial ', '161': 'heat shock taste myc temperature ', '4': 'human monkey primate animal rhesus ', '8': 'treatment depression patient symptom medication ', '163': 'infection bacterial bacteria virulence antibiotic ', '119': 'ecosystem forest environmental land ecological ', '120': 'alcohol ethanol drinking olfactory consumption ', '121': 'conference workshop meeting researcher field ', '122': 'retinal eye retina lens vision ', '123': 'theory group geometry algebraic number ', '124': 'human animal model mouse mice ', '125': 'software system security user tool ', '126': 'east_asia hand location student relationship ', '127': 'mitochondrial oxidative_stress oxygen ros oxidative ', '128': 'clinical patient trial center subject ', '129': 'system control design complex component ', '167': 'quantum magnetic physic material spin ', '118': 'disease diseases disorder human als ', '59': 'cancer_center clinical center member medicine ', '58': 'site sites element zinc integration ', '55': 'species population evolution behavior genetic ', '54': 'genes genetic region gene strain ', '57': 'center san carolina north south ', '56': 'smoking nicotine tobacco smoker cessation ', '51': 'facility instrument equipment instrumentation acquisition ', '50': 'candidate clinical independent plan skill ', '53': 'clinical clinical_trial protocol group patient ', '52': 'species evolution evolutionary group diversity ', '164': 'cost need current increase high ', '199': 'signaling pathway cell regulation signal ', '179': 'cell gamma ifn cytokine th2 ', '200': 'system computing power design performance ', '195': 'phosphorylation protein kinase tyrosine kinases ', '194': 'tumor agent drug resistance cancer ', '197': 'health community population disparities minority ', '178': 'insulin diabetes glucose diabetic metabolic ', '191': 'stress hormone pituitary gnrh axis ', '190': 'adolescent behavior social risk relationship ', '193': 'microscopy imaging cell electron fluorescence ', '192': 'cell stem_cell differentiation progenitor hematopoietic ', '115': 'cell expression protein culture assay ', '114': 'question address remain recent answer ', '88': 'genes genetic function mutant drosophila ', '89': 'tumor growth cancer prostate_cancer human ', '111': 'vaccine vaccines against protective protection ', '110': 'language speech word reading linguistic ', '113': 'mechanical material properties structural strain ', '112': 'american public native media indian ', '82': 'mice mouse gene mutant expression ', '83': 'enzyme enzymes substrate pathway mechanism ', '80': 'alzheimer_disease amyloid dementia abeta brain ', '81': 'star solar observation space astronomy ', '86': 'genetic genes gene polymorphism association ', '87': 'pain chronic nerve sensory peripheral ', '84': 'aging age older adult elderly ', '85': 'energy process manufacturing material high ', '198': 'circadian epilepsy clock rhythm seizures ', '3': 'water carbon organic gas chemical ', '177': 'social african_american group ethnic population ', '7': 'risk risk_factor cohort control population ', '108': 'women estrogen sex female steroid ', '109': 'tissue samples specimen tissues blood ', '102': 'cell antigen class mhc tumor ', '103': 'treatment clinical therapeutic strategies therapies ', '100': 'breast_cancer breast tuberculosis women brca1 ', '101': 'injury stroke ischemia brain ischemic ', '106': 'plant arabidopsis crop insect seed ', '107': 'care patient physician medical management ', '104': 'technology engineering team technologies community ', '105': 'committee grant review funding scientific ', '39': 'protein structure structural structures nmr ', '38': 'imaging mri image pet contrast ', '33': 'igf dietary vitamin diet level ', '32': 'dopamine disease parkinson neuron cartilage ', '31': 'cell notch neuron neural neuronal ', '30': 'brain cognitive functional fmri function ', '37': 'expression genes gene regulation transcription_factor ', '36': 'data model statistical estimation statistic ', '35': 'object computer image human motion ', '34': 'hypertension blood_pressure vascular mechanism sympathetic ', '176': 'bone osteoblast formation osteoporosis skeletal ', '60': 'vascular platelet atherosclerosis smooth_muscle coronary ', '61': 'biology student sciences faculty biological ', '62': 'infection host innate immune pathogen ', '63': 'response differences factor responses individual ', '64': 'material properties nano nanoparticles nanotechnology ', '65': 'modification carbohydrate glycoprotein glycosylation sugar ', '66': 'core services facility data resource ', '67': 'binding domain protein interaction structural ', '68': 'cell adhesion integrin migration interaction ', '69': 'international collaboration collaborative countries institute ', '175': 'chromatin transcription gene promoter histone ', '174': 'disorder psychiatric autism adhd anxiety ', '173': 'axon neuron nerve growth axonal ', '172': 'lung airway asthma pulmonary respiratory ', '171': 'health services care mental_health health_care ', '170': 'tumor radiation treatment therapy dose ', '181': 'model data experimental prediction modeling ', '182': 'actin myosin protein filament rho ', '183': 'cancer prevention ovarian prostate_cancer control ', '180': 'methylation cancer colon crc dna ', '2': 'genes genome genomic gene_expression microarray ', '162': 'social cultural local political history ', '187': 'treatment intervention drug substance_abuse substance ', '184': 'mantle seismic earth fault rock ', '6': 'brain neuronal cns neuron nervous_system ', '186': 'protein assay detection mass_spectrometry mass ', '188': 'student faculty biomedical summer graduate ', '189': 'health data longitudinal cohort outcomes ', '196': 'intervention group control month randomized ', '185': 'memory learning plasticity synaptic hippocampal ', '99': 'signal processing temporal spatial information ', '98': 'hearing hair auditory ear loss ', '168': 'sleep physic experiment nuclear neutron ', '169': 'student undergraduate education graduate graduate_student ', '91': 'apoptosis cell apoptotic cell_death induced ', '90': 'oral dental gland salivary periodontal ', '93': 'infection viral virus hpv ebv ', '92': 'drug compound inhibitor target activity ', '95': 'flow fluid transport wave dynamic ', '94': 'intestinal mucosal epithelial_cell gastric gut ', '97': 'climate model atmospheric data global ', '96': 'exposure environmental health chemical exposures ', '11': 'economic policy market decision public ', '10': 'activation pathway kinase signaling ras ', '13': 'hiv infection viral infected virus ', '12': 'polymer surface liquid properties molecular ', '15': 'school teacher student mathematic education ', '14': 'worker safety disaster event emergency ', '17': 'isoform factor splicing alternative variant ', '16': 'phase product commercial technology test ', '19': 'visual cortical movement cortex neural ', '18': 'social cognitive task individual processes ', '117': 'behavior behavioral neural brain amygdala ', '116': 'vascular endothelial_cell angiogenesis endothelial vegf ', '151': 'student stem college engineering faculty ', '150': 'ocean marine sea water coastal ', '153': 'dna repair replication strand dna_damage ', '152': 'muscle exercise motor skeletal_muscle muscles ', '155': 'skin tgf beta melanoma human ', '154': 'obesity weight body food energy ', '157': 'test assessment measures measurement testing ', '156': 'center core clinical cores health ', '159': 'chemistry reaction metal chemical transfer ', '158': 'student learning course curriculum education ', '48': 'dynamic simulation model computational modeling ', '49': 'dna replication cell recombination protein ', '46': 'data information database tool web ', '47': 'trainees clinical faculty fellow postdoctoral ', '44': 'infection host disease parasite malaria ', '45': 'reproductive bladder sperm male germ ', '42': 'tissue delivery engineering implant scaffold ', '43': 'p53 cell_cycle cell cyclin protein ', '40': 'protein function nuclear cell cellular ', '41': 'cell antigen cd4 tolerance tcr ', '1': 'cell protein motor microtubule division ', '5': 'cell receptor neutrophil chemokine macrophages ', '9': 'patient drug dose therapy treatment ', '146': 'rna mrna protein translation mechanism ', '147': 'children child parent family childhood ', '144': 'algorithm computational optimization design techniques ', '145': 'cardiac heart myocardial heart_failure ventricular ', '142': 'virus viral infection hcv viruses ', '143': 'liver lipid cholesterol hepatic lipoprotein ', '140': 'ice record sediment climate past ', '141': 'renal kidney disease cvd risk_factor ', '148': 'vector gene gene_therapy delivery expression ', '149': 'infant fetal maternal pregnancy birth ', '77': 'neuron synaptic cell activity release ', '76': 'increased level activity expression mechanism ', '75': 'antibodies antibody protein peptide peptides ', '74': 'membrane protein cell fusion lipid ', '73': 'transplantation donor transplant leukemia graft ', '72': 'network communication wireless internet design ', '71': 'molecular cellular mechanism approaches biology ', '70': 'wound collagen healing fibroblast fibrosis ', '79': 'mutation gene patient defect syndrome ', '78': 'synthesis product synthetic natural compound '}}
lblTbl = {"pat":"pat", "app":"pat", "grant":"grant", "pub":"grant"}
class geo:
def __init__(self, cfg, table=""):
import MySQL
self.table = table
self.m = MySQL.MySQL(cfg=cfg, table=table)
def dataBoxed(self, params):
"""
Based on the posMin[] and posMax[] parameters, grabs the right data!
"""
import json
where = []
where.append("lat between %s and %s" % (params['posMin[]'][0], params['posMax[]'][0]))
where.append("lng between %s and %s" % (params['posMin[]'][1], params['posMax[]'][1]))
query = "SELECT * FROM %sGeo WHERE %s LIMIT 10" % (self.table, " AND ".join(where))
self.m.c.execute(query)
json = json.dumps({'data':self.m.c.fetchall()})
return json
def search(self, params, path, orgNum=100, orgEach=5):
import datetime, SQLite, senAdd, os, random, json, types
import memcache, zipfile
self.table = params['table']
def infoSearch(var, typ="str", blank=False):
if blank:
if var in params:
return params[var]
else:
return None
else:
ret = var in params and ((typ=="int") and (int)(params[var]) or params[var]) or None
return (ret!="" and ret!=None) and ret or None
cd = infoSearch('CD', 'int')
state = infoSearch('State')
if state==None:
return ""
if cd==0 or cd=='0':
cd=None
mc = memcache.Client(['127.0.0.1:11211'], debug=0)
mckey = "geoPut_"+"|".join([type(params[var])==types.ListType and ",".join(params[var]) or params[var] for var in params])
#mc.flush_all()
#mc.delete(mckey)
if len(mckey)<=250:
jsonout = mc.get(mckey)
else:
jsonout = None
if jsonout==None or len(jsonout)<100:
output = '%s/sqlite/%s%s-%s.s3' % ("/".join(path.split("/")[:-1]), self.table, state, cd!=None and cd or "")
s = SQLite.SQLite(output)
#s.c.execute("DROP TABLE %sGeo" % self.table)
if not(s.tables("%sGeo" % self.table)):
tbl = self.table
def tableIt(table):
cols = self.m.columns(output=False, table=table)
s.c.execute("CREATE TABLE IF NOT EXISTS %s (%s)" % (table, ", ".join([x for x in cols])))
return cols
tableIt('%sGeo' % tbl)
if cd==0 or cd==None:
query = "SELECT * FROM %sGeo WHERE Level=1 AND State=%%s" % tbl
self.m.c.execute(query, (state,))
else:
query = "SELECT * FROM %sGeo WHERE CD=%%s AND State=%%s" % tbl
self.m.c.execute(query, (cd, state))
data = self.m.c.fetchall()
s.addSQL(data=data, table='%sGeo' % tbl)
#s.index(["IDNum"], table='%sGeo' % tbl)
s.index(["Year"], table='%sGeo' % tbl)
s.index(["Org"], table='%sGeo' % tbl)
s.index(["Lat", "Lng"], table='%sGeo' % tbl)
#---------------#
# Assign colors #
#---------------#
column = s.columns(output=False, table="%sGeo" % tbl)
data = zip(*data)
colors = [x[1] for x in senAdd.colors]
colX = []
for w in [[[x, y] for y in colors if x!=y] for x in colors]:
colX.extend(w)
lbl = senAdd.flatten([x.split("/") for x in data[column.index("Label")] if x is not None])
lbl = sorted([[x, lbl.count(x)] for x in set(lbl)], key=lambda x:x[1], reverse=True)
org = s.c.execute("SELECT Org, count(*) as cnt FROM %sGeo GROUP BY Org HAVING Org!='' ORDER BY cnt DESC" % tbl).fetchall()
def setColors(lst, rand=True):
col = rand and random.sample(colX, len(colX)) or colX
def hexIt():
return hex(int(256*random.random()))[-2:].replace("x", "0")
def colHex():
heX = "#%s%s%s" % (hexIt(), hexIt(), hexIt())
return [senAdd.colGrad("#FFFFFF", heX, 35), heX]
lstDct = dict([[x[0], (i<len(col)) and col[i] or colHex()] for i,x in enumerate(lst)])
lstDct[""] = ["#ffffff", "#cccccc"]
return lstDct
lblDct = setColors(lbl)
orgDct = setColors(org)
s.c.execute("CREATE TABLE IF NOT EXISTS %sColors (Key, Color1, Color2, Type, UNIQUE(Key, Type));" % tbl)
s.c.executemany("INSERT OR IGNORE INTO %sColors VALUES (?, ?, ?, ?)" % tbl, [[x[0], x[1][0], x[1][1], 'Label'] for x in lblDct.items()])
s.c.executemany("INSERT OR IGNORE INTO %sColors VALUES (?, ?, ?, ?)" % tbl, [[x[0], x[1][0], x[1][1], 'Org'] for x in orgDct.items()])
s.index(['Key', 'Type'], table="%sColors" % tbl)
#OTHER PARAMETERS GET FILTERED HERE
year = infoSearch('year')
amt = infoSearch('amt')
agency = infoSearch('agency')
org = infoSearch('Org[]', blank=True)
label = infoSearch('Label[]', blank=True)
if type(org)!=types.ListType and org!=None:
org = [org]
if type(label)!=types.ListType and label!=None:
label = [label]
where = []
if year!=None:
if len(str(year).split("-"))>1:
where.append("Year BETWEEN %s AND %s" % tuple(year.split("-")))
else:
where.append("Year=%s" % year)
if amt!=None:
if len(str(amt).split("-"))>1:
where.append("Amount BETWEEN %s AND %s" % tuple([float(x)*1000000.0 for x in amt.split("-")]))
else:
where.append("Amount=%s" % (float(amt)*1000000.0))
#patent specific
if agency!=None and agency!="":
where.append("'/'||Agency||'/' LIKE '%%/%s/%%'" % agency)
degree = infoSearch('degree')
if self.table=="pat" and degree!=None:
where.append("degree <= %s" % degree.split("-")[-1])
if org!=None:
where.append("Org in ('%s')" % "', '".join(org))
if label!=None:
labelStr = []
for x in label:
labelStr.append("'/'||Label||'/' LIKE '%%/%s/%%'" % x)
where.append("(%s)" % (" OR ".join(labelStr)))
where = " AND ".join(where)
if where!="":
where = "WHERE %s" % where
#Don't need colors now
#cols = dict([["%s|%s" % (x[0], x[3]), [x[1], x[2]]] for x in s.c.execute("SELECT * FROM %sColors" % self.table).fetchall()])
#orgs = dict([x[:2] for x in s.c.execute("SELECT Org, OrgName, count(*) as cnt FROM %sGeo GROUP BY Org ORDER BY cnt DESC LIMIT %d" % (self.table, orgNum)).fetchall()])
orgs = dict([x for x in s.c.execute("SELECT Org, OrgName as cnt FROM %sGeo GROUP BY Org" % (self.table)).fetchall()])
if self.table=="grant":
column = ['City', 'Org', 'Label', 'Agency', 'Lng', 'Lat', 'cnt', 'amt']
data = s.c.execute("SELECT City, GROUP_CONCAT(Org,'/'), GROUP_CONCAT(Label,'/'), GROUP_CONCAT(Agency,'/'), Lng, Lat, count(*) AS cnt, sum(Amount) AS amt FROM %sGeo %s GROUP BY Agency, Lat,Lng" % (self.table, where)).fetchall()
else:
column = ['City', 'Org', 'Label', 'Agency', 'Lng', 'Lat', 'cnt']
data = s.c.execute("SELECT City, GROUP_CONCAT(Org,'/'), GROUP_CONCAT(Label,'/'), GROUP_CONCAT(Agency,'/'), Lng, Lat, count(*) AS cnt FROM %sGeo %s GROUP BY Lat,Lng" % (self.table, where)).fetchall()
data = zip(*data)
def splitCount(lists):
retLst = []
for lst in lists:
if lst==None:
retLst.append("")
elif len(str(lst).split("/"))==1:
retLst.append(lst)
else:
lst = lst.split("/")
lst = sorted([[x, lst.count(x)] for x in set(lst)], key=lambda x:x[1], reverse=True)[:orgEach]
lst = "/".join(["~".join([x[0], str(x[1])]) for x in lst])
retLst.append(lst)
return retLst
marks = {}
for i,x in enumerate(data):
marks[column[i]] = splitCount(x)
#Determine relevant Colors
col = {}
for x in set(data[column.index("Org")]):
if x!=None:
for y in x.split("/"):
k = y.split("~")[0]
key = "%s|%s" % (k, "Org")
if k in orgs and key not in col:
#col[key] = [cols[key], orgs[k]] ##THIS IS COLOR
col[key] = [[], orgs[k]] ##COLOR NOT NEEDED NOW
#WE ONLY NEED TOP ONES.. LIKE TOP100
clsCnt = {}
for x in set(data[column.index("Label")]):
if x!=None:
for y in x.split("/"):
k = y.split("~")[0]
if k not in clsCnt:
clsCnt[k] = 0
clsCnt[k] = clsCnt[k] + 1
#key = "%s|%s" % (k, "Label")
#col[key] = [cols[key], k in lblTxt[self.table] and lblTxt[self.table][k] or k] ##THIS IS COLOR
#clsCnt = sorted(clsCnt.items(), reverse=True, key=lambda x:x[1])[:orgNum]
clsCnt = sorted(clsCnt.items(), reverse=True, key=lambda x:x[1])
for x in clsCnt:
k = x[0]
key = "%s|%s" % (k, "Label")
col[key] = [[], k in lblTxt[lblTbl[self.table]] and lblTxt[lblTbl[self.table]][k] or k]
#########################
s.close()
def cleanJSON(string):
import re
## #H000123 > H123
## string = re.sub("([A-Z])([0]+)([0-9]+)", lambda x:x.group(1)+x.group(3), string)
#1.599999 > 1.6
string = re.sub("([0-9]+[.][0-9]+?)([0-8])[9]{4,}[0-9]+", lambda x:x.group(1)+str(int(x.group(2))+1), string)
#1.100001 > 1.1
string = re.sub("([0-9]+[.][0-9]+?)[0]{4,}[0-9]+", lambda x:x.group(1), string)
string = re.sub(" +", " ", string)
return string
jsonout = cleanJSON(json.dumps({'marks':marks, 'colors':col}))
mc.set(mckey, jsonout)
return jsonout