{"id":991,"date":"2016-08-07T17:38:19","date_gmt":"2016-08-08T01:38:19","guid":{"rendered":"https:\/\/depts.washington.edu\/funlab\/?page_id=991"},"modified":"2016-08-07T17:38:19","modified_gmt":"2016-08-08T01:38:19","slug":"cityscape-project","status":"publish","type":"page","link":"https:\/\/wp.ece.uw.edu\/funlab\/research\/archived-projects\/software-defined-wireless-networks\/cityscape-project\/","title":{"rendered":"Cityscape Spectrum Observatory"},"content":{"rendered":"<p><strong>Website<\/strong>: <a href=\"https:\/\/cityscape.cloudapp.net\">https:\/\/cityscape.cloudapp.net<\/a><\/p>\n<p style=\"text-align: left\">Links and documentation:<\/p>\n<ol>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Cityscape-Technical-report.pdf\">Cityscape Technical report<\/a><\/li>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/projects\/software-defined-wireless-networks\/cityscape-project\/cityscape-deployments\">CityScape Deployments<\/a><\/li>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/cityscape-project-spectrum-plots\/\">Spectrum Plots<\/a><\/li>\n<li style=\"text-align: left\">CityScape test suite\n<ul>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/City_Scape_Test_Suite_-_User_Manual.pdf\">CityScape Test Suite Use Manual <\/a><\/li>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/cityscape-testsuite-recommanded_configurations.pdf\">CityScape Test Suite Recommended Settings<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/CityScapeSpectrumObservatory-ReleaseNotes-v9.docx\">CityScape Release Notes <\/a><\/li>\n<li style=\"text-align: left\"><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/CityScape-Station-Installation-Operation-Manual-v18.pdf\">CityScape Installation &amp; Operation Guide<\/a><\/li>\n<\/ol>\n<p style=\"text-align: center\">Architecture<\/p>\n<p>ScanFile: This is the file format that all wireless spectrum data will be stored in on the client and what raw data will be stored in on the server.<\/p>\n<p>Scanner Service: This scanner service is responsible for communicating with the RF sensor and then writing a file in the ScanFile format with the feature vectors that we are trying to extract such as max, min and average power over a specific time period.<\/p>\n<p>Upload Service: The upload service is responsible for reliably uploading the ScanFiles to the Azure cloud and then sending a notification to the Upload Web Service when the upload is complete.<\/p>\n<p>Upload Web Service: The upload web service is responsible for queueing complete ScanFile uploads for processing by the data processor worker role to the correct storage account.<\/p>\n<p>Data Processor Worker Role: The data processor is responsible for processing the uploaded ScanFiles and aggregating the information within those files to Azure tables.<\/p>\n<p>Azure Table Storage: All of the aggregated data for time periods such as Hourly, Daily, Weekly, and Monthly are stored in Azure. Additionally, all of the metadata for the website operation is stored in Azure.<\/p>\n<p>Azure Blob Storage: All of the raw ScanFiles are stored in blob storage within Azure.<\/p>\n<p><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-994 aligncenter\" src=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM.png\" alt=\"Screen Shot 2016-07-22 at 4.37.37 PM\" width=\"641\" height=\"633\" srcset=\"https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM.png 1226w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM-300x296.png 300w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM-1024x1011.png 1024w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-07-22-at-4.37.37-PM-768x758.png 768w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/deployment-fig.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1084\" src=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/deployment-fig.png\" alt=\"\" width=\"1384\" height=\"774\" srcset=\"https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/deployment-fig.png 1384w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/deployment-fig-300x168.png 300w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/deployment-fig-1024x573.png 1024w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/deployment-fig-768x430.png 768w\" sizes=\"auto, (max-width: 1384px) 100vw, 1384px\" \/><\/a><\/p>\n<p style=\"text-align: center\">Figure: CityScape set-up<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\">Knobs available on CityScape\u00a0observatory:<\/p>\n<ol>\n<li>Name &#8211;\u00a0Name of the device. This is used for logging purposes only.\u00a0Type: String,\u00a0Value: Limit to 64 characters or less<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Device type \u2013\u00a0Type of the device to scan the data. The values are determined by devices that have been supported in the code base.\u00a0Type: String,\u00a0Value: Usrp<\/li>\n<\/ol>\n<ol start=\"3\">\n<li>Start frequency in Hz \u2013\u00a0Frequency, inclusive, at which device should start collecting data.\u00a0Type: Int,\u00a0Value: 50000000 (WBX), 2200000000 (SBX)<\/li>\n<\/ol>\n<ol start=\"4\">\n<li>Stop frequency in Hz \u2013\u00a0Frequency, inclusive, at which device should stop collecting data.\u00a0Type: Int,\u00a0Value: 2200000000 (WBX), 4400000000 (SBX)<\/li>\n<\/ol>\n<ol start=\"5\">\n<li>Device address \u2013\u00a0Address of the device that is being communicated with.\u00a0Type: String,\u00a0Value: 192.168.10.2<\/li>\n<li>Gain \u2013\u00a0To adjust the gain (dB) of the USRP. Only applies to USRPs.\u00a0Type: Int,\u00a0Value: 38<\/li>\n<li>Antenna port \u2013\u00a0Antenna receiver port on the USRP.\u00a0Type: String,\u00a0Value: RX1 or RX2<\/li>\n<\/ol>\n<ol start=\"8\">\n<li>Scan pattern \u2013<\/li>\n<\/ol>\n<ul>\n<li>Standard scan: Based on the start and stop frequencies, the USRP is tuned to take multiple snapshots. The number of snapshots is decided by the instantaneous bandwidth chosen and is given by<\/li>\n<\/ul>\n<p style=\"text-align: center\">Number of snapshots = (Stop frequency \u2013 Start frequency) \/ Instantaneous bandwidth<\/p>\n<p>The center frequency of the USRP is retuned sequentially from the lowest to the highest frequency. The below diagram describes the process.<\/p>\n<p><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-995 aligncenter\" src=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM.png\" alt=\"Screen Shot 2016-08-07 at 6.22.58 PM\" width=\"616\" height=\"195\" srcset=\"https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM.png 1460w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM-300x95.png 300w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM-1024x324.png 1024w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.22.58-PM-768x243.png 768w\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" \/><\/a><\/p>\n<ul>\n<li>DC spike adaptive scan: To remove the DC spike at the USRP center frequency, this scan method is used. First, a standard scan (discussed in part a.) is implemented. Second, a standard scan with a new start frequency is implemented. The new start frequency is given by<\/li>\n<\/ul>\n<p style=\"text-align: center\">f<sub>new start<\/sub> = f<sub>start<\/sub> + (1\/3)*(Instantaneous bandwidth)<\/p>\n<p style=\"text-align: center\">= f<sub>start<\/sub> + f<sub>offset<\/sub><\/p>\n<p>For the power spectral density charts, the FFT of both the scans are taken and for every snapshot in the first scan, the center 1\/3<sup>rd<\/sup> of the FFT values are replaced by the corresponding FFT values from the second scan. The below diagram describes the same.<\/p>\n<p><a href=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-996 aligncenter\" src=\"https:\/\/depts.washington.edu\/funlab\/wp-content\/uploads\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM.png\" alt=\"Screen Shot 2016-08-07 at 6.23.23 PM\" width=\"609\" height=\"307\" srcset=\"https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM.png 1516w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM-300x151.png 300w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM-1024x516.png 1024w, https:\/\/wp.ece.uw.edu\/wp-content\/uploads\/sites\/36\/2016\/08\/Screen-Shot-2016-08-07-at-6.23.23-PM-768x387.png 768w\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" \/><\/a><\/p>\n<p>Type: String,\u00a0Value: \u201cStandardScan\u201d or \u201cDCSpikeAdaptiveScan\u201d<\/p>\n<ol start=\"9\">\n<li>Communication channel \u2013\u00a0String that specifies the communication channel being used.\u00a0Type: String,\u00a0Value: \u201caddr\u201d \u2013 IP based communications, \u201cserial\u201d \u2013 USB based communications.<\/li>\n<\/ol>\n<ol start=\"10\">\n<li>Locking communication channel \u2013\u00a0Applies only if the hardware has a call to see if the sensor is locked after tuning to a new frequency.\u00a0Type: Boolean,\u00a0Value: N200 \u2013 true,\u2028B200 \u2013 false.<\/li>\n<\/ol>\n<ol start=\"11\">\n<li>Instantaneous bandwidth \u2013\u00a0Value entered should be in Hz.\u00a0Type: Int,\u00a0Value: 25000000<\/li>\n<\/ol>\n<ol start=\"12\">\n<li>Tune sleep \u2013\u00a0The duration of time to wait after tuning the USRP center frequency.\u00a0Type: Int,\u00a0Value: 0 (in seconds)<\/li>\n<\/ol>\n<ol start=\"13\">\n<li>Samples per snapshot \u2013\u00a0Indicates number of samples to capture for each snapshot.\u00a0Type: Int,\u00a0Value: 512, 1024, etc.<\/li>\n<\/ol>\n<ol start=\"14\">\n<li>Number of snapshots per channel visit \u2013\u00a0Number of samples to take before retuning the RF sensor.\u00a0Type: Int,\u00a0Value: 1<\/li>\n<\/ol>\n<ol start=\"15\">\n<li>Number of snapshots to throw away \u2013\u00a0Number of snapshots to throw away after tuning the RF Sensor.\u00a0Type: Int,\u00a0Value: 0<\/li>\n<\/ol>\n<ol start=\"16\">\n<li>GPS enabled \u2013\u00a0This will output GPS data to the scan files and the raw IQ data files if the device supports GPS.\u00a0Type: Boolean,\u00a0Value: true or false<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>Experiment 1: Time averaged PSD<\/p>\n<ol>\n<li>Minutes of data per upload file \u2013\u00a0Minutes of data after which an upload file is written and a new one is started. This value must be greater than or equal to 60.\u00a0Type: Int,\u00a0Value: 60<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Minutes of data per sweep \u2013\u00a0Seconds of data per sample data captured within a scan file. A maximum, minimum and average will be calculated for this time period.\u00a0Type: Int,\u00a0Value: 60<\/li>\n<\/ol>\n<p>Experiment 2: Raw IQ<\/p>\n<ol>\n<li>Output data \u2013\u00a0Used to determine if a raw IQ data files are written. The default value is \u2018true\u2019. This is only supported if the device supports this.\u00a0Type: Boolean,\u00a0Value: true or false<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Start frequency in Hz \u2013\u00a0Frequency, inclusive, at which device should start collecting data.\u00a0Type: Int,\u00a0Value: frequency in Hz<\/li>\n<\/ol>\n<ol start=\"3\">\n<li>Stop frequency in Hz \u2013\u00a0Frequency, inclusive, at which device should stop collecting data.\u00a0Type: Int,\u00a0Value: frequency in Hz<\/li>\n<\/ol>\n<ol start=\"4\">\n<li>Seconds of data per upload file \u2013\u00a0Seconds of data written to a file before creating another one.\u00a0Type: Int,\u00a0Value: 300 (for 5 min of data in each file)<\/li>\n<\/ol>\n<ol start=\"5\">\n<li>Retention seconds \u2013\u00a0This value is used to determine of how long a Raw IQ data file can be retained on the disk (time to live). This is to prevent the scenario where all the disk space is consumed with raw data files.\u00a0Type: Int,\u00a0Value: 3600 (for 1 hour)<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Website: https:\/\/cityscape.cloudapp.net Links and documentation: Cityscape Technical report CityScape Deployments Spectrum Plots CityScape test suite CityScape Test Suite Use Manual CityScape Test Suite Recommended Settings CityScape Release Notes CityScape Installation &amp; Operation Guide Architecture ScanFile: This is the file format that all wireless spectrum data will be stored in on the client and what raw &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/wp.ece.uw.edu\/funlab\/research\/archived-projects\/software-defined-wireless-networks\/cityscape-project\/\">Continue reading<\/a><\/p>\n","protected":false},"author":71,"featured_media":0,"parent":171,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-full-width.php","meta":{"inline_featured_image":false,"footnotes":""},"tags":[],"class_list":["post-991","page","type-page","status-publish","hentry","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/pages\/991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/comments?post=991"}],"version-history":[{"count":0,"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/pages\/991\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/pages\/171"}],"wp:attachment":[{"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/media?parent=991"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.ece.uw.edu\/funlab\/wp-json\/wp\/v2\/tags?post=991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}